public IActionResult AgregarNuevoPedidoRetail([FromBody] PedidoRetailDTO pPedidoRetailDTO) { try { if (pPedidoRetailDTO == null) { return(BadRequest("Pedido Retail a grabar no puede ser nulo.")); } var estadoPedidoRetailAgregado = _IServicioAplicacionPedidos.AgregarNuevoPedidoRetail(pPedidoRetailDTO); if (estadoPedidoRetailAgregado == null) { return(BadRequest( new ResultadoServicio <ResultadoPedidoRetailGrabadoDTO>(6, "Creacion de nuevo Pedido Retail fallo.", "", null, null) )); } return(Ok(estadoPedidoRetailAgregado)); } catch (Exception ex) { return(BadRequest( new ResultadoServicio <ResultadoPedidoRetailGrabadoDTO>(6, "Creacion de nuevo Pedido Retail fallo.", ex.Message, null, null) )); } }
public ResultadoServicio <ResultadoPedidoRetailGrabadoDTO> AgregarNuevoPedidoRetail(PedidoRetailDTO pPedidoRetailDTO) { var pedidoRetailExistente = _IRepositorioPedidoRetail.ObtenerPorNumeroPedido(pPedidoRetailDTO.Correlativo); if (pedidoRetailExistente != null) { LogFactory.CrearLog().LogWarning(Mensajes.advertencia_PedidoRetailYaRegistrado); throw new ArgumentException(Mensajes.advertencia_PedidoRetailYaRegistrado); } var nuevoPedidoRetail = CrearNuevoPedidoRetail(pPedidoRetailDTO); GrabarTransaccionNuevoPedidoRetail(nuevoPedidoRetail); if (nuevoPedidoRetail != null) { return(new ResultadoServicio <ResultadoPedidoRetailGrabadoDTO>(7, Mensajes.advertencia_ExitosaCreacionNuevoPedidoRetail, string.Empty, nuevoPedidoRetail.ProyectadoComo <ResultadoPedidoRetailGrabadoDTO>(), null)); } else { LogFactory.CrearLog().LogWarning(Mensajes.advertencia_FalloCreacionNuevoPedidoRetail); return(new ResultadoServicio <ResultadoPedidoRetailGrabadoDTO>(6, Mensajes.advertencia_FalloCreacionNuevoPedidoRetail, string.Empty, nuevoPedidoRetail.ProyectadoComo <ResultadoPedidoRetailGrabadoDTO>(), null)); } }
public void AgregarNuevoPedidoRetail_Test() { var correlativo = 1778; var ruCliente = "20167930868"; var codigoMoneda = "PEN"; var codigoTarjeta = "01"; var numeroDocumentoNuevo = "B04300212012"; var codigoAlmacen = "24"; var nuevoPedidoRetail = new PedidoRetailDTO() { Correlativo = correlativo, 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", DireccionCliente = "LIMA 100", Placa = "SQL-2020", NumeroVale = 7777, TipoCambio = 3.56M, NumeroPuntos = 60, Kilometraje = 45, TransaccionPendiente = true, TipoVenta = "A", TransaccionProcesada = false, AplicaDescuentoCupon = false, CentroDeCosto = "0000-1111102222", CodigoTipoDocumento = "12", CodigoTipoPago = "01", CodigoAlmacen = codigoAlmacen, CodigoMoneda = codigoMoneda, CodigoCondicionPago = "00", CodigoVendedor = "76408758", CodigoUsuarioDeSistema = "VENDPLAYA", CodigoImpuestoIgv = "IV", CodigoImpuestoIsc = "SC ", CodigoCliente = ruCliente, CodigoClaseTipoCambio = "TCONV", CodigoTarjetaPromocion = "232323", CodigoPuntoDeVenta = "PTOVTA02", CodigoTipoNegocio = "2", }; nuevoPedidoRetail.PedidoRetailDetalles = new List <PedidoRetailDetalleDTO>() { new PedidoRetailDetalleDTO { Secuencia = 1, NumeroTurno = 1, PorcentajeImpuestoIgv = 19, PorcentajeImpuestoIsc = 0, TotalNacional = 23.00M, TotalExtranjera = 0, ImpuestoNacional = 12, ImpuestoExtranjera = 4, EsInventariable = false, EnInventarioFisico = false, Precio = 12.90M, PrecioVenta = 12.90M, CostoEstandarNacional = 0, CostoEstandarExtranjera = 0, CodigoArticuloAlterno = "", DescripcionArticulo = "ARTICULO PRUEBA", Cantidad = 1, EsFormula = 0, NumeroPeaje = "", CodigoAlmacen = codigoAlmacen, CodigoArticulo = "40101", CodigoUnidadDeMedida = "UND" }, new PedidoRetailDetalleDTO { Secuencia = 2, NumeroTurno = 1, PorcentajeImpuestoIgv = 19, PorcentajeImpuestoIsc = 0, TotalNacional = 23.00M, TotalExtranjera = 0, ImpuestoNacional = 12, ImpuestoExtranjera = 4, EsInventariable = false, EnInventarioFisico = false, Precio = 12.90M, PrecioVenta = 12.90M, CostoEstandarNacional = 0, CostoEstandarExtranjera = 0, CodigoArticuloAlterno = "", DescripcionArticulo = "ARTICULO PRUEBA", Cantidad = 1, EsFormula = 0, NumeroPeaje = "", CodigoAlmacen = codigoAlmacen, CodigoArticulo = "40101", CodigoUnidadDeMedida = "UND" } }; nuevoPedidoRetail.PedidoRetailConTarjetas = new List <PedidoRetailConTarjetaDTO>() { new PedidoRetailConTarjetaDTO { Secuencia = 1, NumeroTarjeta = "2356", TotalTarjetaNacional = 23.0M, TotalTarjetaExtranjera = 0, EsTransaccionPinPad = 0, TipoTarjeta = "A", DNIAsociadoATarjeta = "", DescripcionTarjeta = "VISA", CodigoTarjeta = codigoTarjeta, CodigoMoneda = codigoMoneda } }; nuevoPedidoRetail.PedidoRetailConVales = new List <PedidoRetailConValeDTO>() { new PedidoRetailConValeDTO { NumeroVale = 5466 } }; ResultadoServicio <ResultadoPedidoRetailGrabadoDTO> categorias = _IServicioAplicacionPedidos .AgregarNuevoPedidoRetail(nuevoPedidoRetail); ResultadoServicio <PedidoRetailDTO> pedidoRetailPorCorrelativoBuscado = _IServicioAplicacionPedidos .BuscarPedidoRetailPorNumero(correlativo); Assert.True(categorias.Dato.Correlativo == pedidoRetailPorCorrelativoBuscado.Dato.Correlativo); Assert.True(categorias.Dato.RucCliente.Trim() == pedidoRetailPorCorrelativoBuscado.Dato.RucCliente.Trim()); }
PedidoRetail CrearNuevoPedidoRetail(PedidoRetailDTO pPedidoRetailDTO) { try { PedidoRetail nuevoPedido = PedidoRetailFactory.CrearPedidoRetail(pPedidoRetailDTO.Correlativo, pPedidoRetailDTO.NumeroDocumento, pPedidoRetailDTO.AfectaInventario, pPedidoRetailDTO.FechaDocumento, pPedidoRetailDTO.FechaProceso, pPedidoRetailDTO.Periodo, pPedidoRetailDTO.TotalNacional, pPedidoRetailDTO.TotalExtranjera, pPedidoRetailDTO.SubTotalNacional, pPedidoRetailDTO.SubTotalExtranjera, pPedidoRetailDTO.ImpuestoIgvNacional, pPedidoRetailDTO.ImpuestoIgvExtranjera, pPedidoRetailDTO.ImpuestoIscNacional, pPedidoRetailDTO.ImpuestoIscExtranjera, pPedidoRetailDTO.TotalNoAfectoNacional, pPedidoRetailDTO.TotalNoAfectoExtranjera, pPedidoRetailDTO.PorcentajeDescuentoPrimero, pPedidoRetailDTO.PorcentajeDescuentoSegundo, pPedidoRetailDTO.TotalDescuentoNacional, pPedidoRetailDTO.TotalDescuentoExtranjera, pPedidoRetailDTO.TotalVueltoNacional, pPedidoRetailDTO.TotalVueltoExtranjera, pPedidoRetailDTO.TotalEfectivoNacional, pPedidoRetailDTO.TotalEfectivoExtranjera, pPedidoRetailDTO.RucCliente, pPedidoRetailDTO.NombreCompletoCliente, pPedidoRetailDTO.DireccionCliente, pPedidoRetailDTO.Placa, pPedidoRetailDTO.NumeroVale, pPedidoRetailDTO.TipoCambio, pPedidoRetailDTO.NumeroPuntos, pPedidoRetailDTO.Kilometraje, pPedidoRetailDTO.TransaccionPendiente, pPedidoRetailDTO.TipoVenta, pPedidoRetailDTO.TransaccionProcesada, pPedidoRetailDTO.AplicaDescuentoCupon, pPedidoRetailDTO.CentroDeCosto, pPedidoRetailDTO.CodigoTipoDocumento, pPedidoRetailDTO.CodigoTipoPago, pPedidoRetailDTO.CodigoAlmacen, pPedidoRetailDTO.CodigoMoneda, pPedidoRetailDTO.CodigoCondicionPago, pPedidoRetailDTO.CodigoVendedor, pPedidoRetailDTO.CodigoUsuarioDeSistema, pPedidoRetailDTO.CodigoImpuestoIgv, pPedidoRetailDTO.CodigoImpuestoIsc, pPedidoRetailDTO.CodigoCliente, pPedidoRetailDTO.CodigoClaseTipoCambio, pPedidoRetailDTO.CodigoTarjetaPromocion, pPedidoRetailDTO.CodigoPuntoDeVenta, pPedidoRetailDTO.CodigoTipoNegocio); //Detalle de Pedido if (pPedidoRetailDTO.PedidoRetailDetalles != null && pPedidoRetailDTO.PedidoRetailDetalles.Any()) { foreach (var pedidoDetalle in pPedidoRetailDTO.PedidoRetailDetalles) { //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.AgregarNuevoPedidoRetailDetalle(pedidoDetalle.Secuencia, pedidoDetalle.NumeroTurno, 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.CodigoArticuloAlterno, pedidoDetalle.DescripcionArticulo, pedidoDetalle.Cantidad, pedidoDetalle.EsFormula, pedidoDetalle.NumeroPeaje, pedidoDetalle.CodigoArticulo, pedidoDetalle.CodigoUnidadDeMedida); } } //pago con tarjeta if (pPedidoRetailDTO.PedidoRetailConTarjetas != null && pPedidoRetailDTO.PedidoRetailConTarjetas.Any()) { foreach (var pedidoConTarjeta in pPedidoRetailDTO.PedidoRetailConTarjetas) { var moneda = _IRepositorioMoneda.ObtenerPorCodigo(pedidoConTarjeta.CodigoMoneda); if (moneda == null) { LogFactory.CrearLog().LogWarning(Mensajes.advertencia_MonedaAsociadoAPagoVentaConTarjetaNoExiste); throw new ArgumentException(Mensajes.advertencia_MonedaAsociadoAPagoVentaConTarjetaNoExiste); } var tarjeta = _IRepositorioTarjeta.ObtenerPorCodigo(pedidoConTarjeta.CodigoTarjeta); if (tarjeta == null) { LogFactory.CrearLog().LogWarning(Mensajes.advertencia_TarjetaAsociadoAPagoVentaConTarjetaNoExiste); throw new ArgumentException(Mensajes.advertencia_TarjetaAsociadoAPagoVentaConTarjetaNoExiste); } var pedidoPagaTarjeta = nuevoPedido.AgregarNuevoPedidoRetailConTarjeta(pedidoConTarjeta.Secuencia, pedidoConTarjeta.NumeroTarjeta, pedidoConTarjeta.TotalTarjetaNacional, pedidoConTarjeta.TotalTarjetaExtranjera, pedidoConTarjeta.EsTransaccionPinPad, pedidoConTarjeta.TipoTarjeta, pedidoConTarjeta.DNIAsociadoATarjeta, pedidoConTarjeta.DescripcionTarjeta, pedidoConTarjeta.CodigoTarjeta); } } //Pago Con Vale if (pPedidoRetailDTO.PedidoRetailConVales != null && pPedidoRetailDTO.PedidoRetailConVales.Any()) { foreach (var pedidoConVale in pPedidoRetailDTO.PedidoRetailConVales) { var pedidoPagaVale = nuevoPedido.AgregarNuevoPedidoRetailConVale(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; } }