Exemple #1
0
        public IActionResult AgregarNuevoPedidoEESS([FromBody] PedidoEESSDTO pPedidoEESSDTO)
        {
            try
            {
                if (pPedidoEESSDTO == null)
                {
                    return(BadRequest("Pedido EESS a grabar no puede ser nulo."));
                }

                var estadoPedidoEESSAgregado = _IServicioAplicacionPedidos.AgregarNuevoPedidoEESS(pPedidoEESSDTO);
                if (estadoPedidoEESSAgregado == null)
                {
                    return(BadRequest(
                               new ResultadoServicio <ResultadoPedidoEESSGrabadoDTO>(6, "Creacion de nuevo Pedido EESS fallo.", "", null, null)
                               ));
                }

                return(Ok(estadoPedidoEESSAgregado));
            }
            catch (Exception ex)
            {
                return(BadRequest(
                           new ResultadoServicio <ResultadoPedidoEESSGrabadoDTO>(6, "Creacion de nuevo Pedido EESS fallo.", ex.Message, null, null)
                           ));
            }
        }
        public ResultadoServicio <ResultadoPedidoEESSGrabadoDTO> AgregarNuevoPedidoEESS(PedidoEESSDTO pPedidoEESSDTO)
        {
            var pedidoEESSExistente = _IRepositorioPedidoEESS.ObtenerPorNumeroPedido(pPedidoEESSDTO.Correlativo);

            if (pedidoEESSExistente != null)
            {
                LogFactory.CrearLog().LogWarning(Mensajes.advertencia_PedidoEESSYaRegistrado);
                throw new ArgumentException(Mensajes.advertencia_PedidoEESSYaRegistrado);
            }

            var nuevoPedidoEESS = CrearNuevoPedidoEESS(pPedidoEESSDTO);

            GrabarTransaccionNuevoPedidoEESS(nuevoPedidoEESS);

            if (nuevoPedidoEESS != null)
            {
                return(new ResultadoServicio <ResultadoPedidoEESSGrabadoDTO>(7, Mensajes.advertencia_ExitosaCreacionNuevoPedidoEESS,
                                                                             string.Empty, nuevoPedidoEESS.ProyectadoComo <ResultadoPedidoEESSGrabadoDTO>(), null));
            }
            else
            {
                LogFactory.CrearLog().LogWarning(Mensajes.advertencia_FalloCreacionNuevoPedidoEESS);
                return(new ResultadoServicio <ResultadoPedidoEESSGrabadoDTO>(6, Mensajes.advertencia_FalloCreacionNuevoPedidoEESS,
                                                                             string.Empty, nuevoPedidoEESS.ProyectadoComo <ResultadoPedidoEESSGrabadoDTO>(), null));
            }
        }
Exemple #3
0
        public void AgregarNuevoPedidoEESS_Test()
        {
            var correlativo          = 2001;
            var ruCliente            = "20482215999";
            var codigoMoneda         = "PEN";
            var codigoTarjeta        = "01";
            var numeroDocumentoNuevo = "B04300212011";
            var codigoAlmacen        = "24";

            var nuevoPedidoEESS = new PedidoEESSDTO()
            {
                Correlativo                = correlativo,
                NumeroCara                 = "03",
                NumeroDocumento            = numeroDocumentoNuevo,
                AfectaInventario           = true,
                FechaDocumento             = DateTime.Now,
                FechaProceso               = DateTime.Now,
                Periodo                    = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString(),
                TotalNacional              = 50.00M,
                TotalExtranjera            = 16.66M,
                SubTotalNacional           = 45.50M,
                SubTotalExtranjera         = 23.65M,
                ImpuestoIgvNacional        = 12.23M,
                ImpuestoIgvExtranjera      = 25.56M,
                ImpuestoIscNacional        = 0,
                ImpuestoIscExtranjera      = 0,
                TotalNoAfectoNacional      = 0,
                TotalNoAfectoExtranjera    = 0,
                PorcentajeDescuentoPrimero = 0,
                PorcentajeDescuentoSegundo = 0,
                TotalDescuentoNacional     = 0,
                TotalDescuentoExtranjera   = 0,
                TotalVueltoNacional        = 2.5M,
                TotalVueltoExtranjera      = 0.00M,
                TotalEfectivoNacional      = 60.00M,
                TotalEfectivoExtranjera    = 0.00M,
                RucCliente                 = ruCliente,
                NombreCompletoCliente      = "PTS S.A - VENTA DE PRUEBA 2",
                Placa                       = "SQL-2020",
                NumeroVale                  = 7777,
                TipoCambio                  = 3.56M,
                ProcesadoCierreZ            = false,
                ProcesadoCierreX            = false,
                NumeroPuntos                = 60,
                NombreTerminal              = "PC-100",
                Kilometraje                 = 45,
                DireccionCliente            = "LIMA 100",
                TipoCliente                 = 1,
                DescripcionTipoCliente      = "",
                DescripcionEstado           = "ACTIVO",
                TipoCambioClienteCredito    = 3.35m,
                DiasDeGraciaClienteCredito  = 4,
                LimiteCreditoClienteCredito = 24.89M,
                DeudaClienteClienteCredito  = 45.78M,
                PlusCreditoClienteCredito   = 23.9M,
                Afecto                      = false,
                NumeroTarjeta               = "7898",
                PagoTarjeta                 = 1,
                DescripcionTarjeta          = "VISA",

                CodigoTipoDocumento    = "12",
                CodigoTipoPago         = "01",
                CodigoAlmacen          = "24",
                CodigoMoneda           = codigoMoneda,
                CodigoEstadoDocumento  = "OK",
                CodigoCondicionPago    = "00",
                CodigoVendedor         = "76408758",
                CodigoUsuarioDeSistema = "VENDPLAYA",
                CodigoImpuestoIgv      = "IV",
                CodigoImpuestoIsc      = "SC",
                CodigoCliente          = ruCliente,
                CodigoClaseTipoCambio  = "TCONV",
                CodigoPuntoDeVenta     = "PTOVTA02",
                CodigoEstado           = "1",
                CodigoMonedaCredito    = "PEN",
                CodigoClaseTipoCambioClienteCredito = "TCONV",
                CodigoTarjetaPromocion = "232323",
                CodigoTarjeta          = codigoTarjeta,
                CodigoMonedaTarjeta    = codigoMoneda
            };

            nuevoPedidoEESS.PedidoEESSDetalles = new List <PedidoEESSDetalleDTO>()
            {
                new PedidoEESSDetalleDTO {
                    // Correlativo = correlativo,
                    Secuencia = 1,
                    // NumeroDocumento = "",
                    // FechaDocumento = "",
                    // FechaProceso = "",
                    // Periodo = "",
                    // ProcesadoCierreZ = "",
                    // ProcesadoCierreX = "",
                    NumeroTurno = 1,
                    // NumeroCara = "",
                    NumeroTransaccionCombustible  = "7452",
                    PorcentajeDescuentoPrimero    = 0,
                    PorcentajeDescuentoSegundo    = 0,
                    PorcentajeDescuentoNacional   = 0,
                    PorcentajeDescuentoExtranjera = 0,
                    PorcentajeImpuestoIgv         = 19,
                    PorcentajeImpuestoIsc         = 0,
                    TotalNacional           = 23.00M,
                    TotalExtranjera         = 0,
                    ImpuestoNacional        = 12.90M,
                    ImpuestoExtranjera      = 0,
                    EsInventariable         = true,
                    EnInventarioFisico      = true,
                    Precio                  = 2.6M,
                    PrecioVenta             = 2.6M,
                    CostoEstandarNacional   = 0,
                    CostoEstandarExtranjera = 0,
                    DescripcionArticulo     = "ARTICULO PRUEBA",
                    Cantidad                = 1,
                    EsFormula               = 0,
                    EsArticuloCombustible   = true,
                    NumeroPeaje             = "",

                    // CodigoTipoDocumento  = "",
                    CodigoAlmacen  = codigoAlmacen,
                    CodigoArticulo = "40101",
                    // CodigoMoneda = "",
                    // CodigoEstadoDocumento = "",
                    // CodigoPuntoDeVenta = "",
                    CodigoUnidadDeMedida = "UND",
                    // CodigoUsuarioDeSistema = "",
                    CodigoArticuloAlterno = ""
                },
                new PedidoEESSDetalleDTO {
                    // Correlativo = correlativo,
                    Secuencia = 2,
                    // NumeroDocumento = "",
                    // FechaDocumento = "",
                    // FechaProceso = "",
                    // Periodo = "",
                    // ProcesadoCierreZ = "",
                    // ProcesadoCierreX = "",
                    NumeroTurno = 1,
                    // NumeroCara = "",
                    NumeroTransaccionCombustible  = "7452",
                    PorcentajeDescuentoPrimero    = 0,
                    PorcentajeDescuentoSegundo    = 0,
                    PorcentajeDescuentoNacional   = 0,
                    PorcentajeDescuentoExtranjera = 0,
                    PorcentajeImpuestoIgv         = 19,
                    PorcentajeImpuestoIsc         = 0,
                    TotalNacional           = 23.00M,
                    TotalExtranjera         = 0,
                    ImpuestoNacional        = 12.90M,
                    ImpuestoExtranjera      = 0,
                    EsInventariable         = true,
                    EnInventarioFisico      = true,
                    Precio                  = 2.6M,
                    PrecioVenta             = 2.6M,
                    CostoEstandarNacional   = 0,
                    CostoEstandarExtranjera = 0,
                    DescripcionArticulo     = "ARTICULO PRUEBA",
                    Cantidad                = 1,
                    EsFormula               = 0,
                    EsArticuloCombustible   = true,
                    NumeroPeaje             = "",

                    // CodigoTipoDocumento  = "",
                    CodigoAlmacen  = codigoAlmacen,
                    CodigoArticulo = "40101",
                    // CodigoMoneda = "",
                    // CodigoEstadoDocumento = "",
                    // CodigoPuntoDeVenta = "",
                    CodigoUnidadDeMedida = "UND",
                    // CodigoUsuarioDeSistema = "",
                    CodigoArticuloAlterno = ""
                }
            };

            nuevoPedidoEESS.PedidoEESSConVales = new List <PedidoEESSConValeDTO>()
            {
                new PedidoEESSConValeDTO {
                    // Correlativo = correlativo,
                    NumeroVale = 7777,
                    // CodigoCliente = "",
                    // CodigoAlmacen = ""
                }
            };

            ResultadoServicio <ResultadoPedidoEESSGrabadoDTO> pedidoEESSCreado = _IServicioAplicacionPedidos
                                                                                 .AgregarNuevoPedidoEESS(nuevoPedidoEESS);

            ResultadoServicio <PedidoEESSDTO> pedidoEESPorCorrelativoBuscado = _IServicioAplicacionPedidos
                                                                               .BuscarPedidoEESSPorNumero(correlativo);

            Assert.True(pedidoEESSCreado.Dato.Correlativo == pedidoEESPorCorrelativoBuscado.Dato.Correlativo);
            Assert.True(pedidoEESSCreado.Dato.RucCliente.Trim() == pedidoEESPorCorrelativoBuscado.Dato.RucCliente.Trim());
        }
        PedidoEESS CrearNuevoPedidoEESS(PedidoEESSDTO pPedidoEESSDTO)
        {
            try
            {
                PedidoEESS nuevoPedido = PedidoEESSFactory.CrearPedidoEESS(pPedidoEESSDTO.Correlativo, pPedidoEESSDTO.NumeroCara, pPedidoEESSDTO.NumeroDocumento,
                                                                           pPedidoEESSDTO.AfectaInventario, pPedidoEESSDTO.FechaDocumento, pPedidoEESSDTO.FechaProceso,
                                                                           pPedidoEESSDTO.Periodo, pPedidoEESSDTO.TotalNacional, pPedidoEESSDTO.TotalExtranjera,
                                                                           pPedidoEESSDTO.SubTotalNacional, pPedidoEESSDTO.SubTotalExtranjera, pPedidoEESSDTO.ImpuestoIgvNacional,
                                                                           pPedidoEESSDTO.ImpuestoIgvExtranjera, pPedidoEESSDTO.ImpuestoIscNacional, pPedidoEESSDTO.ImpuestoIscExtranjera,
                                                                           pPedidoEESSDTO.TotalNoAfectoNacional, pPedidoEESSDTO.TotalNoAfectoExtranjera, pPedidoEESSDTO.PorcentajeDescuentoPrimero,
                                                                           pPedidoEESSDTO.PorcentajeDescuentoSegundo, pPedidoEESSDTO.TotalDescuentoNacional, pPedidoEESSDTO.TotalDescuentoExtranjera,
                                                                           pPedidoEESSDTO.TotalVueltoNacional, pPedidoEESSDTO.TotalVueltoExtranjera, pPedidoEESSDTO.TotalEfectivoNacional,
                                                                           pPedidoEESSDTO.TotalEfectivoExtranjera, pPedidoEESSDTO.RucCliente, pPedidoEESSDTO.NombreCompletoCliente,
                                                                           pPedidoEESSDTO.Placa, pPedidoEESSDTO.NumeroVale, pPedidoEESSDTO.TipoCambio,
                                                                           pPedidoEESSDTO.ProcesadoCierreZ, pPedidoEESSDTO.ProcesadoCierreX, pPedidoEESSDTO.NumeroPuntos,
                                                                           pPedidoEESSDTO.NombreTerminal, pPedidoEESSDTO.Kilometraje, pPedidoEESSDTO.DireccionCliente,
                                                                           pPedidoEESSDTO.TipoCliente, pPedidoEESSDTO.DescripcionTipoCliente, pPedidoEESSDTO.DescripcionEstado,
                                                                           pPedidoEESSDTO.TipoCambioClienteCredito, pPedidoEESSDTO.DiasDeGraciaClienteCredito, pPedidoEESSDTO.LimiteCreditoClienteCredito,
                                                                           pPedidoEESSDTO.DeudaClienteClienteCredito, pPedidoEESSDTO.PlusCreditoClienteCredito, pPedidoEESSDTO.Afecto,
                                                                           pPedidoEESSDTO.NumeroTarjeta, pPedidoEESSDTO.PagoTarjeta, pPedidoEESSDTO.DescripcionTarjeta,
                                                                           pPedidoEESSDTO.CodigoTipoDocumento, pPedidoEESSDTO.CodigoTipoPago, pPedidoEESSDTO.CodigoAlmacen,
                                                                           pPedidoEESSDTO.CodigoMoneda, pPedidoEESSDTO.CodigoEstadoDocumento, pPedidoEESSDTO.CodigoCondicionPago,
                                                                           pPedidoEESSDTO.CodigoVendedor, pPedidoEESSDTO.CodigoUsuarioDeSistema, pPedidoEESSDTO.CodigoImpuestoIgv,
                                                                           pPedidoEESSDTO.CodigoImpuestoIsc, pPedidoEESSDTO.CodigoCliente, pPedidoEESSDTO.CodigoClaseTipoCambio,
                                                                           pPedidoEESSDTO.CodigoPuntoDeVenta, pPedidoEESSDTO.CodigoEstado, pPedidoEESSDTO.CodigoMonedaCredito,
                                                                           pPedidoEESSDTO.CodigoClaseTipoCambioClienteCredito, pPedidoEESSDTO.CodigoTarjetaPromocion, pPedidoEESSDTO.CodigoTarjeta,
                                                                           pPedidoEESSDTO.CodigoMonedaTarjeta);

                //Detalle de Pedido
                if (pPedidoEESSDTO.PedidoEESSDetalles != null && pPedidoEESSDTO.PedidoEESSDetalles.Any())
                {
                    foreach (var pedidoDetalle in pPedidoEESSDTO.PedidoEESSDetalles)
                    {
                        //Obtener Articulo y Precio
                        var articulo = _IRepositorioArticulo.ObtenerPorCodigo(pedidoDetalle.CodigoArticulo, pedidoDetalle.CodigoAlmacen);
                        if (articulo == null)
                        {
                            LogFactory.CrearLog().LogWarning(Mensajes.advertencia_ArticuloAsociadoAVentaDetalleNoExiste);
                            throw new ArgumentException(Mensajes.advertencia_ArticuloAsociadoAVentaDetalleNoExiste);
                        }

                        var detalleDePedido = nuevoPedido.AgregarNuevoPedidoEESSDetalle(pedidoDetalle.Secuencia, pedidoDetalle.NumeroTurno, pedidoDetalle.NumeroTransaccionCombustible,
                                                                                        pedidoDetalle.PorcentajeDescuentoPrimero, pedidoDetalle.PorcentajeDescuentoSegundo, pedidoDetalle.PorcentajeDescuentoNacional,
                                                                                        pedidoDetalle.PorcentajeDescuentoExtranjera, pedidoDetalle.PorcentajeImpuestoIgv, pedidoDetalle.PorcentajeImpuestoIsc,
                                                                                        pedidoDetalle.TotalNacional, pedidoDetalle.TotalExtranjera, pedidoDetalle.ImpuestoNacional,
                                                                                        pedidoDetalle.ImpuestoExtranjera, pedidoDetalle.EsInventariable, pedidoDetalle.EnInventarioFisico,
                                                                                        pedidoDetalle.Precio, pedidoDetalle.PrecioVenta, pedidoDetalle.CostoEstandarNacional,
                                                                                        pedidoDetalle.CostoEstandarExtranjera, pedidoDetalle.DescripcionArticulo, pedidoDetalle.Cantidad,
                                                                                        pedidoDetalle.EsFormula, pedidoDetalle.EsArticuloCombustible, pedidoDetalle.NumeroPeaje,
                                                                                        pedidoDetalle.CodigoArticulo, pedidoDetalle.CodigoUnidadDeMedida, pedidoDetalle.CodigoArticuloAlterno);
                    }
                }

                //Pago Con Vale
                if (pPedidoEESSDTO.PedidoEESSConVales != null && pPedidoEESSDTO.PedidoEESSConVales.Any())
                {
                    foreach (var pedidoConVale in pPedidoEESSDTO.PedidoEESSConVales)
                    {
                        var pedidoPagaVale = nuevoPedido.AgregarNuevoPedidoEESSConVale(pedidoConVale.NumeroVale);
                    }
                }

                return(nuevoPedido);
            }
            catch (Exception ex)
            {
                string detallesAsicionales = string.Empty;
                string cadenaExcepcion     = ex.Message;

                if (ex.InnerException != null)
                {
                    detallesAsicionales = " .Detalles Interno: " + ex.InnerException != null && ex.InnerException.InnerException != null ?
                                          ex.InnerException.InnerException.Message : "Ver Detalles.";
                }

                LogFactory.CrearLog().LogWarning(cadenaExcepcion + detallesAsicionales);
                throw;
            }
        }