예제 #1
0
 /// <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();
     }
 }
예제 #2
0
 /// <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;
 }
예제 #3
0
 /// <summary>
 /// Constructor por default
 /// </summary>
 public PaymentProcessingBusiness(TokenDto token)
 {
     this.repository          = new PaymentProcessingRepository();
     this.funcionesRepository = new FuncionesGeneralesCajaRepository();
     this.token = token;
 }
예제 #4
0
        /// <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);
                }
            }
        }