/// <summary> /// /// </summary> /// <param name="consultaValeFinlagRequest"></param> /// <returns></returns> public ResponseBussiness <ConsultaValeFinlagResult> ConsultarVale(ConsultaValeFinlagRequest consultaValeFinlagRequest) { return(tryCatch.SafeExecutor(() => { return ConsultarValeInternal(consultaValeFinlagRequest); })); }
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); }
/// <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; } } })); }
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); }
public ResponseBussiness <ConsultaValeFinlagResult> ConsultaValeFinlag(ConsultaValeFinlagRequest consultaValeFinlagRequest) { TokenDto token = new TokenService().Get(); return(new FinlagBusiness(token).ConsultarVale(consultaValeFinlagRequest)); }
public ResponseBussiness <ConsultaTramaImpresionResult> ObtenerTramaImpresion(ConsultaValeFinlagRequest consultaValeFinlagRequest) { TokenDto token = new TokenService().Get(); return(new FinlagBusiness(token).ObtenerTramaImpresion(consultaValeFinlagRequest)); }
/// <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); })); }