/// <summary> /// Regresa el saldo maximo por el cual puede ser redimido el cupon /// </summary> /// <returns></returns> public CuponRedimirResponse SaldoRedimir(ValidarCuponRequest validarCuponRequest) { return(tryCatch.SafeExecutor(() => { CuponRedimirRequest cuponRedimirRequest = new CuponRedimirRequest(); CuponRedimirResponse cuponRedimirResponse = new CuponRedimirResponse(); ProxyCupones.Respuesta consultaCuponResponseWs = new ProxyCupones.Respuesta(); cuponRedimirRequest.FolioCupon = validarCuponRequest.FolioCupon; cuponRedimirRequest.FolioVenta = validarCuponRequest.FolioVenta; cuponRedimirRequest.CodigoCaja = this.token.CodeBox; cuponRedimirRequest.CodigoTienda = this.token.CodeStore; try { consultaCuponResponseWs = proxyCupones.ConsultaCupon(this.token.CodeStore, this.token.CodeBox, validarCuponRequest.FolioCupon); if (consultaCuponResponseWs.sError != "") { cuponRedimirRequest.Sesion = Convert.ToInt32(consultaCuponResponseWs.lSesion); // No encuentra el cupon en el WS de milano, busca localmente if (consultaCuponResponseWs.sError == "El folio de cupón no existe; Verifique") { cuponRedimirRequest.SaldoCupon = 0; cuponRedimirRequest.CodigoPromocion = 0; cuponRedimirResponse = repository.ValidarSaldo(cuponRedimirRequest); } else { cuponRedimirResponse.MensajeRedencion = consultaCuponResponseWs.sError; cuponRedimirResponse.Saldo = 0; } } else { cuponRedimirRequest.SaldoCupon = Convert.ToDouble(consultaCuponResponseWs.dSaldo); cuponRedimirRequest.CodigoPromocion = consultaCuponResponseWs.iCodigoPromocion; cuponRedimirRequest.Sesion = Convert.ToInt32(consultaCuponResponseWs.lSesion); cuponRedimirResponse = repository.ValidarSaldo(cuponRedimirRequest); } } catch (Exception exception) { TryCatchBusinessExecutor tryCatch = new TryCatchBusinessExecutor(); tryCatch.AddErrorLog <OperationResponse>(exception.Message, exception.StackTrace, "Servicio milano", exception.ToString(), "Error de comunicacion servicios milano"); cuponRedimirRequest.SaldoCupon = 0; cuponRedimirRequest.CodigoPromocion = 0; cuponRedimirRequest.Sesion = 0; cuponRedimirResponse = repository.ValidarSaldo(cuponRedimirRequest); } return cuponRedimirResponse; })); }
/// <summary> /// Realizar Venta de Cupón Promocional /// </summary> /// <param name="codigoCajero">Código del cajero</param> /// <param name="codigoTipoTrxCab">Código del tipo de transacción</param> /// <param name="folioVenta">Folio de la operacióna</param> /// <param name="folioCupon">Folio del cupón</param> /// <param name="transaccion">Transacción del sistema</param> /// <param name="montoPagado">Monto pagado</param> /// <returns></returns> public OperationResponse RealizarVentaCuponPromocional(int codigoCajero, string folioVenta, string folioCupon, int transaccion, decimal montoPagado, string codigoTipoTrxCab) { OperationResponse operation = new OperationResponse(); ProxyCupones.Respuesta respuesta = new ProxyCupones.Respuesta(); try { respuesta = proxyCupones.RealizarVenta(this.token.CodeStore, this.token.CodeBox, Int32.Parse(codigoTipoTrxCab), folioVenta, codigoCajero, folioCupon, transaccion, montoPagado); if (respuesta.sError == "") { CuponPersistirRequest cuponPersistirRequest = new CuponPersistirRequest(); cuponPersistirRequest.CodigoCaja = this.token.CodeBox; cuponPersistirRequest.CodigoTienda = this.token.CodeStore; cuponPersistirRequest.CodigoEmpleado = this.token.CodeEmployee; cuponPersistirRequest.FolioCupon = folioCupon; cuponPersistirRequest.FolioVenta = folioVenta; cuponPersistirRequest.Transaccion = transaccion; cuponPersistirRequest.MaximoRedencion = montoPagado; cuponPersistirRequest.Sesion = Convert.ToInt64(respuesta.lSesion); repository.PersistirCupon(cuponPersistirRequest); operation.CodeNumber = respuesta.sEstatus; operation.CodeDescription = respuesta.sMensaje; } else { operation.CodeNumber = "0"; operation.CodeDescription = respuesta.sError; } } catch (Exception ex) { operation.CodeNumber = "0"; operation.CodeDescription = ex.Message; } return(operation); }