public GeneralResponse CreateDocument(DocumentoRQ documentoRQ) { IGeneralResponseRepository generalResponseRepository = new GeneralResponseRespository(); IDocumentoRepository documentoRepository; GeneralResponse generalResponse; int iResult = int.MinValue; try { documentoRepository = new DocumentoRepository(); iResult = documentoRepository.CreateDocument(documentoRQ); if (iResult > 0) { generalResponse = generalResponseRepository.getOK(iResult); } else if (iResult == 0) { generalResponse = generalResponseRepository.getErrorValidation("¡No se creó el documento!"); } else { generalResponse = generalResponseRepository.getErrorValidation("¡Ha ocurrido un error al guardar el documento!"); } } catch (Exception ex) { generalResponse = generalResponseRepository.getError(ex); throw; } return(generalResponse); }
public IActionResult CreateDocument([FromBody] DocumentoRQ request) { DocumentoBusinessManager documentoBusinessManager = new DocumentoBusinessManager(); try { _logger.LogTrace("> Inicia ejecución"); return(Ok(documentoBusinessManager.CreateDocument(request))); } catch (Exception ex) { _logger.LogError($"Error: {ex.Message}"); return(StatusCode(500, $"Error: {ex.Message}")); } }
public int CreateDocument(DocumentoRQ documentRequest) { int iResult = 0; Guid guid; PRUEBAS_APIContext context; string sSql = string.Empty; List <SqlParameter> parameters; try { sSql = @"EXEC [dbo].[SpPedidoVentaInsertCompleto1] @DOC_PREFIJO , @DOC_IDEMPRESA, @DOC_IDTERCERO, @DOC_IDSUCURSAL , @DOC_IDESTADO, @DOC_DESCRIPCION, @DOC_FECHA , @DOC_IDMONEDA, @DOC_IDPRIORIDAD, @DOC_IDCREADOR , @DOC_FCOMPROMISO, @DOC_SUBTOTAL, @DOC_IDDPTOASIGNADO , @DOC_TOTAL, @DOC_FCREACION, @DOC_IDBODEGA , @DOC_IDFORMAPAGO, @DOC_DESCUENTO, @DOC_DESCUENTO_ME , @DOC_DOCTERCERO, @DOC_IMPUESTOMAS, @DOC_IMPUESTOMAS_ME , @DOC_IMPUESTOMENOS, @DOC_IMPUESTOMENOS_ME, @DOC_NDECIMALES_ME , @DOC_PORCDESCUENTO, @DOC_TOTAL_ME, @DOC_TOTALCONIMPUESTO , @DOC_TOTALCONIMPUESTO_ME, @DOC_VLRTRM, @DOC_SUBTOTAL_ME , @COT_IDASESOR, @DOC_IDLISTA, @DOC_DTOXITEM , @DOC_APLICAIVA, @ORT_CTOTAL, @DOC_IDMEDIOPAGO , @DOC_DIRECCIONENTREGA, @DOC_IDCIUDADENTREGA, @DOC_IDCOP , @DOC_IDUSUMODIFICA, @DOC_EMAILCLIENTE, @DOC_NUMERO, @idProceso"; context = new PRUEBAS_APIContext(); ValidateDocumentRequest(documentRequest); SetDefaultValues(ref documentRequest); guid = InsertDocumentsItem(documentRequest.Items); parameters = SetParametersSpPedidoVentaInsertCompleto1(documentRequest, guid); context.Database.ExecuteSqlRaw(sSql, parameters); iResult = DeleteDocumentsItem(guid); } catch (Exception) { iResult = -1; throw; } return(iResult); }
private void SetDefaultValues(ref DocumentoRQ documentRequest) { documentRequest.Estado = "58d413d3-a5b0-4069-8bdc-9ea29646c81a"; documentRequest.Fecha = DateTime.Now; documentRequest.FechaCompromiso = documentRequest.Fecha.Value.AddDays(5); documentRequest.FechaCreacion = DateTime.Now; documentRequest.Descuento = documentRequest.Descuento <= 0 ? 0d : documentRequest.Descuento; documentRequest.Descuento_ME = documentRequest.Descuento_ME <= 0 ? 0d : documentRequest.Descuento_ME; documentRequest.ImpuestoMAS = documentRequest.ImpuestoMAS <= 0 ? 0d : documentRequest.ImpuestoMAS; documentRequest.ImpuestoMAS_ME = documentRequest.ImpuestoMAS_ME <= 0 ? 0d : documentRequest.ImpuestoMAS_ME; documentRequest.ImpuestoMENOS = documentRequest.ImpuestoMENOS <= 0 ? 0d : documentRequest.ImpuestoMENOS; documentRequest.ImpuestoMENOS_ME = documentRequest.ImpuestoMENOS_ME <= 0 ? 0d : documentRequest.ImpuestoMENOS_ME; documentRequest.NumeroDecimales_ME = documentRequest.NumeroDecimales_ME <= 0 ? 0 : documentRequest.NumeroDecimales_ME; documentRequest.PorcentajeDescuento = documentRequest.PorcentajeDescuento <= 0 ? 0d : documentRequest.PorcentajeDescuento; documentRequest.TotalME = documentRequest.TotalME <= 0 ? 0d : documentRequest.TotalME; documentRequest.TotalImpuesto = documentRequest.TotalImpuesto <= 0 ? 0d : documentRequest.TotalImpuesto; documentRequest.TotalImpuestoME = documentRequest.TotalImpuestoME <= 0 ? 0 : documentRequest.TotalImpuestoME; documentRequest.ValorTRM = documentRequest.ValorTRM <= 0 ? 0d : documentRequest.ValorTRM; documentRequest.SubtotalME = documentRequest.SubtotalME <= 0 ? 0d : documentRequest.SubtotalME; documentRequest.IdUsuarioModifica = documentRequest.Creador; }
private void ValidateDocumentRequest(DocumentoRQ documentRequest) { if (documentRequest == null) { throw new Exception("¡El documento no se ha podido crear porque está nulo o vacío!"); } if (documentRequest.Items.Count() <= 0) { throw new Exception("¡El documento no tiene items, no se creará el documento!"); } //Validar datos JSON if (documentRequest.Prefijo == null || documentRequest.Prefijo == "") { throw new Exception("¡El prefijo no puede ser nulo o vacío!"); } if (documentRequest.IdEmpresa == null || documentRequest.IdEmpresa == "") { throw new Exception("¡El IdEmpresa no puede ser nula o vacía!"); } if (documentRequest.Tercero <= 1) { throw new Exception("¡El Tercero no puede ser nula o vacía!"); } if (documentRequest.Sucursal <= 1) { throw new Exception("¡La Sucursal no puede ser nula o vacía!"); } if (documentRequest.Descripcion == null || documentRequest.Descripcion == "") { throw new Exception("¡La Descripcion no puede ser nula o vacía!"); } if (documentRequest.Moneda == null || documentRequest.Moneda == "") { throw new Exception("¡La Moneda no puede ser nula o vacía!"); } if (documentRequest.Creador <= 1) { throw new Exception("¡El Creador no puede ser nulo o vacío!"); } if (documentRequest.FechaCompromiso == null) { throw new Exception("¡La FechaCompromiso no puede ser nula o vacía!"); } if (documentRequest.Subtotal <= 0) { throw new Exception("¡El SubTotal no puede ser menor que 0!"); } if (documentRequest.DepartamentoAsignado == null || documentRequest.DepartamentoAsignado == "") { throw new Exception("¡El DepartamentoAsignado no puede ser nulo o vacío!"); } if (documentRequest.Total <= 0) { throw new Exception("¡El Total no puede ser menor que 0!"); } if (documentRequest.Bodega == null || documentRequest.Bodega == "") { throw new Exception("¡La bodega no puede ser nula o vacía!"); } if (documentRequest.FormaPago == null || documentRequest.FormaPago == "") { throw new Exception("¡La FormaPago no puede ser nula o vacía!"); } if (documentRequest.IdAsesor <= 0) { throw new Exception("¡La IdAsesor no puede ser nulo o vacío!"); } if (documentRequest.IdListaPrecio == null || documentRequest.IdListaPrecio == "") { throw new Exception("¡La IdListaPrecio no puede ser nulo o vacío!"); } if (documentRequest.CostoTotal < 0) { throw new Exception("El CostoTotal no puede ser menor que 0!"); } if (documentRequest.IdMedioPago == null || documentRequest.IdMedioPago == "") { throw new Exception("El IdMedioPago no puede ser nulo o vacío!"); } if (documentRequest.DireccionEntrega == null || documentRequest.DireccionEntrega == "") { throw new Exception("El DireccionEntrega no puede ser nulo o vacío!"); } if (documentRequest.CiudadEntrega < 0) { throw new Exception("La CiudadEntrega no puede ser nulo o vacío!"); } if (documentRequest.IdCentroOperativo == null || documentRequest.IdCentroOperativo == "") { throw new Exception("El IdCentroOperativo no puede ser nulo o vacío!"); } }
private List <SqlParameter> SetParametersSpPedidoVentaInsertCompleto1(DocumentoRQ documentRequest, Guid guid) { List <SqlParameter> parameters; try { parameters = new List <SqlParameter>(); parameters.Add(new SqlParameter() { ParameterName = "@DOC_PREFIJO", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 10, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Prefijo }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDEMPRESA", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 15, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.IdEmpresa }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDTERCERO", SqlDbType = System.Data.SqlDbType.BigInt, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Tercero }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDSUCURSAL", SqlDbType = System.Data.SqlDbType.BigInt, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Sucursal }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDESTADO", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 50, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Estado }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_DESCRIPCION", SqlDbType = System.Data.SqlDbType.NText, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Descripcion }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_FECHA", SqlDbType = System.Data.SqlDbType.DateTime, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Fecha }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDMONEDA", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 10, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Moneda }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDPRIORIDAD", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 5, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Prioridad }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDCREADOR", SqlDbType = System.Data.SqlDbType.BigInt, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Creador }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_FCOMPROMISO", SqlDbType = System.Data.SqlDbType.DateTime, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.FechaCompromiso }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_SUBTOTAL", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Subtotal }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDDPTOASIGNADO", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 10, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.DepartamentoAsignado }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_TOTAL", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Total }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_FCREACION", SqlDbType = System.Data.SqlDbType.DateTime, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.FechaCreacion }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDBODEGA", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 50, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Bodega }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDFORMAPAGO", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 5, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.FormaPago }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_DESCUENTO", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Descuento }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_DESCUENTO_ME", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Descuento_ME }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_DOCTERCERO", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 20, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Tercero }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IMPUESTOMAS", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.ImpuestoMAS }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IMPUESTOMAS_ME", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.ImpuestoMAS_ME }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IMPUESTOMENOS", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.ImpuestoMENOS }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IMPUESTOMENOS_ME", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.ImpuestoMENOS_ME }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_NDECIMALES_ME", SqlDbType = System.Data.SqlDbType.Int, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.NumeroDecimales_ME }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_PORCDESCUENTO", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.PorcentajeDescuento }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_TOTAL_ME", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.TotalME }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_TOTALCONIMPUESTO", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.TotalImpuesto }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_TOTALCONIMPUESTO_ME", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.TotalImpuestoME }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_VLRTRM", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.ValorTRM }); //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// parameters.Add(new SqlParameter() { ParameterName = "@DOC_SUBTOTAL_ME", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.SubtotalME }); parameters.Add(new SqlParameter() { ParameterName = "@COT_IDASESOR", SqlDbType = System.Data.SqlDbType.BigInt, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.IdAsesor }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDLISTA", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 5, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.IdListaPrecio }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_DTOXITEM", SqlDbType = System.Data.SqlDbType.Bit, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.DescuentotoItem }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_APLICAIVA", SqlDbType = System.Data.SqlDbType.Bit, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.AplicaIva }); parameters.Add(new SqlParameter() { ParameterName = "@ORT_CTOTAL", SqlDbType = System.Data.SqlDbType.Float, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.CostoTotal }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDMEDIOPAGO", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 5, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.IdMedioPago }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_DIRECCIONENTREGA", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 300, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.DireccionEntrega }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDCIUDADENTREGA", SqlDbType = System.Data.SqlDbType.BigInt, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.CiudadEntrega }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDCOP", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 15, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.IdCentroOperativo }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_IDUSUMODIFICA", SqlDbType = System.Data.SqlDbType.BigInt, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.Creador }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_EMAILCLIENTE", SqlDbType = System.Data.SqlDbType.NVarChar, Size = 50, Direction = System.Data.ParameterDirection.Input, Value = documentRequest.EmailCliente }); parameters.Add(new SqlParameter() { ParameterName = "@DOC_NUMERO", SqlDbType = System.Data.SqlDbType.BigInt, Direction = System.Data.ParameterDirection.Output }); parameters.Add(new SqlParameter() { ParameterName = "@idProceso", SqlDbType = System.Data.SqlDbType.UniqueIdentifier, Direction = System.Data.ParameterDirection.Input, Value = guid }); } catch (Exception) { throw; } return(parameters); }