public ResponseBussiness <OperationResponse> FinalizarVenta(FinalizarVentaRequest finalizarVentaRequest) { TokenDto token = new TokenService().Get(); ResponseBussiness <OperationResponse> response = new SalesBusiness(token).FinalizarVenta(finalizarVentaRequest); return(response); }
private OperationResponse TiempoAire(FinalizarVentaRequest request) { OperationResponse response = new OperationResponse(); response.CodeNumber = "1"; VentaResponse venta = this.repository.ObtenerVentaPorFolio(request.FolioVenta, 0); TiempoAireRequest tiempoAireRequest = new TiempoAireRequest(); tiempoAireRequest.Monto = float.Parse(venta.Lineas[0].ImporteVentaLineaNeto.ToString()); tiempoAireRequest.Telefono = venta.Lineas[0].Articulo.InformacionProveedorExternoTA.NumeroTelefonico; tiempoAireRequest.SkuCode = venta.Lineas[0].Articulo.InformacionProveedorExternoTA.SkuCompania; ResponseBussiness <OperationResponse> resultTA = new TiempoAireBusiness(this.token).AddTiempoAire(tiempoAireRequest, venta.Lineas[0].Articulo.Sku, venta.FolioVenta); if (resultTA.Data.CodeNumber == "1") { repository.RegistrarRecargaTelefonicaExitosa(request.FolioVenta, this.token.CodeBox, this.token.CodeStore, tiempoAireRequest.Telefono, int.Parse(tiempoAireRequest.Monto.ToString()), resultTA.Data.CodeDescription); } else { response.CodeNumber = resultTA.Data.CodeNumber; response.CodeDescription = resultTA.Data.CodeDescription; } return(response); }
private OperationResponse PagoTCMM(FinalizarVentaRequest request) { OperationResponse response = new OperationResponse(); response.CodeNumber = "1"; VentaResponse venta = this.repository.ObtenerVentaPorFolio(request.FolioVenta, 0); foreach (LineaTicket linea in venta.Lineas) { if (linea.TipoDetalleVenta == "46") { PagoTCMMRequest pago = new PagoTCMMRequest(); pago.ModoEntrada = 12; pago.NumeroCaja = token.CodeBox; pago.NumeroTienda = token.CodeStore; pago.Transaccion = venta.NumeroTransaccion; pago.Importe = linea.Articulo.PrecioConImpuestos; pago.NumeroTarjeta = linea.Articulo.InformacionPagoTCMM.NumeroTarjeta; response = new MelodyMilanoBusiness(this.token).RealizarPago(pago); if (response.CodeNumber == "1") { OperationResponse operationResponseAutoriacion = this.repository.RegistrarAutorizacionPagoTCMM(request.FolioVenta, pago.NumeroTarjeta, response.CodeDescription); } } } return(response); }
/// <summary> /// Finalización de venta /// </summary> /// <param name="finalizarVentaRequest">Objeto de peticion de la venta a finalizar</param> /// <returns></returns> public ResponseBussiness <OperationResponse> FinalizarVenta(FinalizarVentaRequest finalizarVentaRequest) { return(tryCatch.SafeExecutor(() => { return FinalizarVentaInternal(finalizarVentaRequest); })); }
private OperationResponse ActivarTarjetaRegalo(FinalizarVentaRequest request) { OperationResponse response = new OperationResponse(); response.CodeNumber = "1"; TarjetaRegalosBusiness business = new TarjetaRegalosBusiness(this.token); foreach (InformacionFoliosTarjeta informacion in request.InformacionFoliosTarjeta) { var respuesta = business.ActivarTarjeta(this.token.CodeEmployee, informacion.FolioTarjeta.ToString(), request.FolioVenta); if (response.CodeNumber == "0") { response.CodeDescription = respuesta.Data.CodeDescription; } } return(response); }
private OperationResponse PagoVentaCreditoMayorista(FinalizarVentaRequest request) { OperationResponse response = new OperationResponse(); response.CodeNumber = "1"; VentaResponse venta = this.repository.ObtenerVentaPorFolio(request.FolioVenta, 0); foreach (LineaTicket linea in venta.Lineas) { if (linea.TipoDetalleVenta == "43") { PagoCreditoMayoristaRequest pago = new PagoCreditoMayoristaRequest(); pago.CodigoMayorista = venta.CodigoMayorista; pago.FolioOperacionAsociada = venta.FolioVenta; pago.ImportePago = linea.Articulo.PrecioConImpuestos; response = new MayoristasBusiness(this.token).PagoCreditoMayorista(pago, venta.NumeroTransaccion); response.CodeNumber = "1"; } } return(response); }
private OperationResponse PagoServicios(FinalizarVentaRequest request) { OperationResponse response = new OperationResponse(); response.CodeNumber = "1"; VentaResponse venta = this.repository.ObtenerVentaPorFolio(request.FolioVenta, 0); PagoServiciosRequest pago = new PagoServiciosRequest(); pago.Cuenta = venta.Lineas[0].Articulo.InformacionProveedorExternoAsociadaPS.Cuenta; pago.SkuCodePagoServicio = venta.Lineas[0].Articulo.InformacionProveedorExternoAsociadaPS.SkuCompania; pago.SkuCode = venta.Lineas[0].Articulo.Sku; pago.InfoAdicional = venta.Lineas[0].Articulo.InformacionProveedorExternoAsociadaPS.InfoAdicional; ResponseBussiness <OperationResponse> resultTA = new AdministracionPagoServiciosBusiness(this.token).PagoServicio(pago, float.Parse(venta.Lineas[0].Articulo.PrecioConImpuestos.ToString()), request.FolioVenta); if (resultTA.Data.CodeNumber != "1") { response.CodeNumber = resultTA.Data.CodeNumber; response.CodeDescription = resultTA.Data.CodeDescription; } return(response); }
private ResponseBussiness <OperationResponse> FinalizarVentaInternal(FinalizarVentaRequest finalizarVentaRequest) { return(tryCatch.SafeExecutor(() => { OperationResponse result = new OperationResponse(); string mensajeVentaFinalizada = "Venta finalizada exitosamente. "; using (TransactionScope scope = new TransactionScope()) { result = repository.FinalizarVenta(token.CodeStore, token.CodeBox, token.CodeEmployee, finalizarVentaRequest, "REGULAR"); // Procesamos promociones que generan Cupones CuponPromocionalVenta[] cuponesPromocionalesEncontrados = descuentosPromocionesRepository.ProcesarPromocionesCupones(finalizarVentaRequest.cabeceraVentaRequest.FolioOperacion, token.CodeStore, token.CodeBox); foreach (var cupon in cuponesPromocionalesEncontrados) { CuponPersistirResponse cuponPersistirResponse = new CuponPersistirResponse(); cuponPersistirResponse = repository.PersistirCuponPromocionalGenerado(cupon); mensajeVentaFinalizada += "Cupón Generado: " + cupon.MensajeCupon + " $" + cupon.ImporteDescuento + ". "; } // Procesamos descuentos por mercancía dañada o picos de mercancía descuentoMercanciaDaniadaBusiness.ProcesarDescuentosExternosPicosMercancia(finalizarVentaRequest.FolioVenta); // ******************************************* INVOCAR A MÉTODOS DE ACUERDO A CADA TIPO DE VENTA FINALIZADA // TIPO DE VENTA/DEVOLUCIÓN REGULAR CONSIDERANDO TARJETAS DE REGALO if (result.CodeNumber.Equals("332") && (finalizarVentaRequest.TipoCabeceraVenta == "1")) { OperationResponse respuesta = this.ActivarTarjetaRegalo(finalizarVentaRequest); if (respuesta.CodeNumber == "1") { result.CodeDescription = mensajeVentaFinalizada; ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token); imprimeTicketsMM.PrintTicket(finalizarVentaRequest.FolioVenta, false); scope.Complete(); } else { result.CodeDescription = respuesta.CodeDescription; } } // TIPO DE VENTA PAGO TCMM if (result.CodeNumber.Equals("332") && finalizarVentaRequest.TipoCabeceraVenta == "46") { OperationResponse respuesta = this.PagoTCMM(finalizarVentaRequest); if (respuesta.CodeNumber == "1") { result.CodeDescription = mensajeVentaFinalizada; ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token); imprimeTicketsMM.PrintTicket(finalizarVentaRequest.FolioVenta, false); scope.Complete(); } else { result.CodeDescription = respuesta.CodeDescription; } } // TIPO DE VENTA MAYORISTA CONSIDERANDO TARJETAS DE REGALO else if (result.CodeNumber.Equals("332") && finalizarVentaRequest.TipoCabeceraVenta == "2") { var respuesta = this.PagoVentaCreditoMayorista(finalizarVentaRequest); if (respuesta.CodeNumber == "1") { // Se procesan las tarjetas de regalo en caso de aplicar OperationResponse operationResponse = this.ActivarTarjetaRegalo(finalizarVentaRequest); if (operationResponse.CodeNumber == "1") { result.CodeDescription = mensajeVentaFinalizada; ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token); imprimeTicketsMM.PrintTicket(finalizarVentaRequest.FolioVenta, false); scope.Complete(); } else { result.CodeDescription = respuesta.CodeDescription; } } else { result.CodeDescription = respuesta.CodeDescription; } } // TIPO DE VENTA EMPLEADO CONSIDERANDO TARJETAS DE REGALO else if (result.CodeNumber.Equals("332") && finalizarVentaRequest.TipoCabeceraVenta == "4") { OperationResponse respuesta = this.ActivarTarjetaRegalo(finalizarVentaRequest); if (respuesta.CodeNumber == "1") { result.CodeDescription = mensajeVentaFinalizada; ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token); imprimeTicketsMM.PrintTicket(finalizarVentaRequest.FolioVenta, false); scope.Complete(); } else { result.CodeDescription = respuesta.CodeDescription; } } // TIPO DE VENTA TIEMPO AIRE else if (result.CodeNumber.Equals("332") && finalizarVentaRequest.TipoCabeceraVenta == "5") { var respuesta = this.TiempoAire(finalizarVentaRequest); if (respuesta.CodeNumber == "1") { ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token); imprimeTicketsMM.PrintTicket(finalizarVentaRequest.FolioVenta, false); scope.Complete(); } else { result.CodeNumber = respuesta.CodeNumber; result.CodeDescription = respuesta.CodeDescription; } } // TIPO DE VENTA PAGO DE SERVICIOS else if (result.CodeNumber.Equals("332") && finalizarVentaRequest.TipoCabeceraVenta == "6") { var respuesta = this.PagoServicios(finalizarVentaRequest); if (respuesta.CodeNumber == "1") { ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token); imprimeTicketsMM.PrintTicket(finalizarVentaRequest.FolioVenta, false); scope.Complete(); } else { result.CodeNumber = respuesta.CodeNumber; result.CodeDescription = respuesta.CodeDescription; } } // SE TRATA DE UNA DEVOLUCIÓN CONSIDERANDO TARJETAS DE REGALO else if (result.CodeNumber.Equals("399")) { OperationResponse respuesta = this.ActivarTarjetaRegalo(finalizarVentaRequest); if (respuesta.CodeNumber == "1") { result.CodeDescription = mensajeVentaFinalizada; ImprimeTicketsMM imprimeTicketsMM = new ImprimeTicketsMM(token); imprimeTicketsMM.PrintTicket(finalizarVentaRequest.FolioVenta, false); scope.Complete(); } else { result.CodeDescription = respuesta.CodeDescription; } } } return result; })); }