Beispiel #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="consultaValeFinlagRequest"></param>
 /// <returns></returns>
 public ResponseBussiness <ConsultaValeFinlagResult> ConsultarVale(ConsultaValeFinlagRequest consultaValeFinlagRequest)
 {
     return(tryCatch.SafeExecutor(() =>
     {
         return ConsultarValeInternal(consultaValeFinlagRequest);
     }));
 }
Beispiel #2
0
        private ConsultaTramaImpresionResult ObtenerTramaImpresionInternal(ConsultaValeFinlagRequest consultaValeFinlagRequest)
        {
            ConsultaTramaImpresionResult consultaValeFinlagResult = new ConsultaTramaImpresionResult();
            DataTable tablaRespuestaProxy = proxy.TramaImpresion(consultaValeFinlagRequest.FolioVale, infoService.UserName, infoService.Password);

            consultaValeFinlagResult = ConvertTramaImpresion(tablaRespuestaProxy).FirstOrDefault();
            return(consultaValeFinlagResult);
        }
Beispiel #3
0
        /// <summary>
        /// Método de la capa business para aplicar el vale de finlag
        /// </summary>
        /// <param name="aplicaValeRequest"></param>
        /// <returns></returns>
        public ResponseBussiness <OperationResponse> ProcesarAplicarValeFinlag(AplicaValeRequest aplicaValeRequest)
        {
            return(tryCatch.SafeExecutor(() =>
            {
                using (TransactionScope scope = new TransactionScope())
                {
                    OperationResponse operationResponse = new OperationResponse();

                    // Se procesa en el servicio externo de Finlag para procesar la venta
                    var respuestaWS = AplicarValeInternal(aplicaValeRequest);
                    // Se procesa el movimiento Pago localmente
                    if (respuestaWS.NumeroCodigo == 100)
                    {
                        // Si resultado OK se solicita y persiste la trama de impresión
                        ConsultaValeFinlagRequest consultaValeFinlagRequest = new ConsultaValeFinlagRequest();
                        consultaValeFinlagRequest.FolioVale = aplicaValeRequest.FolioVale;
                        ConsultaTramaImpresionResult consultaTramaImpresionResult = this.ObtenerTramaImpresion(consultaValeFinlagRequest);
                        finlagRepository.ProcesarTramaImpresion(token.CodeStore, token.CodeBox, token.CodeEmployee, aplicaValeRequest.FolioOperacionAsociada, consultaTramaImpresionResult);

                        // -------------- Si resultado OK se procesa el pago Finlag en base de datos localmente

                        // Se procesan las promociones por venta
                        foreach (var item in aplicaValeRequest.DescuentosPromocionalesPorVentaAplicados.DescuentoPromocionesAplicados)
                        {
                            OperationResponse response = new OperationResponse();
                            response = paymentProcessingRepository.PersistirPromocionesVenta(aplicaValeRequest.FolioOperacionAsociada, token.CodeStore, token.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 aplicaValeRequest.DescuentosPromocionalesPorLineaAplicados.DescuentoPromocionesAplicados)
                        {
                            OperationResponse response = new OperationResponse();
                            response = paymentProcessingRepository.PersistirPromocionesLineaVenta(aplicaValeRequest.FolioOperacionAsociada, token.CodeStore, token.CodeBox, item.Secuencia, item.ImporteDescuento
                                                                                                  , item.CodigoPromocionAplicado, item.DescripcionCodigoPromocionAplicado, item.PorcentajeDescuento, item.CodigoRazonDescuento, item.FormaPagoCodigoPromocionAplicado);
                        }

                        // Se persiste la información del cobro
                        operationResponse = finlagRepository.ProcesarMovimientoAplicarVale(token.CodeStore, token.CodeBox, token.CodeEmployee, aplicaValeRequest);
                        scope.Complete();
                        return operationResponse;
                    }
                    else
                    {
                        // Si resultado ERROR se regresa
                        operationResponse.CodeNumber = respuestaWS.NumeroCodigo.ToString();
                        operationResponse.CodeDescription = respuestaWS.DescripcionCodigo;
                        return operationResponse;
                    }
                }
            }));
        }
Beispiel #4
0
        private ConsultaValeFinlagResult ConsultarValeInternal(ConsultaValeFinlagRequest consultaValeFinlagRequest)
        {
            ConsultaValeFinlagResult consultaValeFinlagResult = new ConsultaValeFinlagResult();
            var tablaRespuestaProxy = proxy.ConsultaVale(consultaValeFinlagRequest.FolioVale, infoService.UserName, infoService.Password);

            try
            {
                consultaValeFinlagResult = ConvertConsultaVale(tablaRespuestaProxy).FirstOrDefault();
            }
            catch (Exception exception)
            {
                consultaValeFinlagResult = ConvertEstatusVale(tablaRespuestaProxy).FirstOrDefault();
            }
            return(consultaValeFinlagResult);
        }
Beispiel #5
0
        public ResponseBussiness <ConsultaValeFinlagResult> ConsultaValeFinlag(ConsultaValeFinlagRequest consultaValeFinlagRequest)
        {
            TokenDto token = new TokenService().Get();

            return(new FinlagBusiness(token).ConsultarVale(consultaValeFinlagRequest));
        }
Beispiel #6
0
        public ResponseBussiness <ConsultaTramaImpresionResult> ObtenerTramaImpresion(ConsultaValeFinlagRequest consultaValeFinlagRequest)
        {
            TokenDto token = new TokenService().Get();

            return(new FinlagBusiness(token).ObtenerTramaImpresion(consultaValeFinlagRequest));
        }
Beispiel #7
0
 /// <summary>
 /// Método para obtener la trama de impresión de Finlag
 /// </summary>
 /// <param name="consultaValeFinlagRequest"></param>
 /// <returns></returns>
 public ResponseBussiness <ConsultaTramaImpresionResult> ObtenerTramaImpresion(ConsultaValeFinlagRequest consultaValeFinlagRequest)
 {
     return(tryCatch.SafeExecutor(() =>
     {
         return ObtenerTramaImpresionInternal(consultaValeFinlagRequest);
     }));
 }