/// <summary> /// Constructor por default de la clase /// </summary> public MelodyMilanoBusiness(TokenDto token) { this.repository = new PaymentProcessingRepository(); this.melodyMilanoRepository = new MelodyMilanoRepository(); this.token = token; { credenciales = new CredencialesServicioExterno(); credenciales = new InformacionServiciosExternosBusiness().ObtenerCredencialesConsultaTCMM(); } }
/// <summary> /// /// </summary> /// <param name="token"></param> public FinlagBusiness(TokenDto token) { infoService = new InfoService(); externosRepository = new InformacionServiciosExternosRepository(); paymentProcessingRepository = new PaymentProcessingRepository(); finlagRepository = new FinlagRepository(); infoService = externosRepository.ObtenerInfoServicioExterno(22); proxy = new ProxyFinlag.VentasMilanoSoapClient(); proxy.Endpoint.Address = new System.ServiceModel.EndpointAddress(infoService.UrlService); this.token = token; }
/// <summary> /// Constructor por default /// </summary> public PaymentProcessingBusiness(TokenDto token) { this.repository = new PaymentProcessingRepository(); this.funcionesRepository = new FuncionesGeneralesCajaRepository(); this.token = token; }
/// <summary> /// Método para asociar las formas de pago a una transacción /// </summary> /// <param name="codeStore">Código de tienda</param> /// <param name="codeBox">Código de caja</param> /// <param name="codeEmployee">Código de empleado cajero</param> /// <param name="folioOperacion">Folio de la operación</param> /// <param name="formasPagoUtilizadas">Formas de pago utilizadas</param> /// <param name="clasificacionVenta">Clasificación de la venta</param> public void AsociarFormasPago(int codeStore, int codeBox, int codeEmployee, String folioOperacion, FormaPagoUtilizado[] formasPagoUtilizadas, string clasificacionVenta) { Divisa[] divisas = this.ObtenerFormasPagoEfectivoMonedaExtranjera(codeStore); List <string> listaDivisas = new List <string>(); foreach (Divisa divisa in divisas) { listaDivisas.Add(divisa.Codigo); } FormaPagoResponse[] formasPagoVales = this.getFormasPagoVales(codeStore); List <string> listaFormasPagoVales = new List <string>(); foreach (FormaPagoResponse formaPagoVale in formasPagoVales) { listaFormasPagoVales.Add(formaPagoVale.CodigoFormaPago); } PaymentProcessingRepository paymentProcessingRepository = new PaymentProcessingRepository(); foreach (var formaPagoUtilizada in formasPagoUtilizadas) { // Pagos que deben registrarse exitosamente al momento de finalizar if (formaPagoUtilizada.Estatus == "PP") { formaPagoUtilizada.Estatus = "PE"; // Pagos con Vales if (validarCodigoFormaPago(formaPagoUtilizada.CodigoFormaPagoImporte, listaFormasPagoVales.ToArray())) { paymentProcessingRepository.ProcesarMovimientoVales(codeStore, codeBox, codeEmployee, folioOperacion, formaPagoUtilizada, clasificacionVenta); // Se procesan las promociones por venta foreach (var item in formaPagoUtilizada.DescuentosPromocionalesPorVentaAplicados.DescuentoPromocionesAplicados) { OperationResponse response = new OperationResponse(); response = paymentProcessingRepository.PersistirPromocionesVenta(folioOperacion, codeStore, codeBox, item.ImporteDescuento , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado); } // Se procesan las promociones por línea de venta foreach (var item in formaPagoUtilizada.DescuentosPromocionalesPorLineaAplicados.DescuentoPromocionesAplicados) { OperationResponse response = new OperationResponse(); response = paymentProcessingRepository.PersistirPromocionesLineaVenta(folioOperacion, codeStore, codeBox, item.Secuencia, item.ImporteDescuento , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado); } } // Pagos con Efectivo y con Moneda Extranjera if (validarCodigoFormaPago(formaPagoUtilizada.CodigoFormaPagoImporte, listaDivisas.ToArray())) { paymentProcessingRepository.ProcesarMovimientoEfectivo(codeStore, codeBox, codeEmployee, folioOperacion, formaPagoUtilizada); // Se procesan las promociones por venta foreach (var item in formaPagoUtilizada.DescuentosPromocionalesPorVentaAplicados.DescuentoPromocionesAplicados) { OperationResponse response = new OperationResponse(); response = paymentProcessingRepository.PersistirPromocionesVenta(folioOperacion, codeStore, codeBox, item.ImporteDescuento , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado); } // Se procesan las promociones por línea de venta foreach (var item in formaPagoUtilizada.DescuentosPromocionalesPorLineaAplicados.DescuentoPromocionesAplicados) { OperationResponse response = new OperationResponse(); response = paymentProcessingRepository.PersistirPromocionesLineaVenta(folioOperacion, codeStore, codeBox, item.Secuencia, item.ImporteDescuento , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado); } } } // Pagos que ya estan registrados y solo deben asociarse al momento de finalizar if (formaPagoUtilizada.Estatus == "PR") { paymentProcessingRepository.AsociarMovimientoRegistrado(codeStore, codeBox, folioOperacion, formaPagoUtilizada); } } }