/// <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> /// Valida el saldo del cupón /// </summary> /// <param name="cuponRedimirRequest"></param> /// <returns></returns> public CuponRedimirResponse ValidarSaldo(CuponRedimirRequest cuponRedimirRequest) { CuponRedimirResponse cuponRedimirResponse = new CuponRedimirResponse(); var parameters = new Dictionary <string, object>(); parameters.Add("@FolioVentaRedencion", cuponRedimirRequest.FolioVenta); parameters.Add("@FolioCupon", cuponRedimirRequest.FolioCupon); parameters.Add("@CodigoTienda", cuponRedimirRequest.CodigoTienda); parameters.Add("@CodigoCaja", cuponRedimirRequest.CodigoCaja); parameters.Add("@SaldoCupon", cuponRedimirRequest.SaldoCupon); parameters.Add("@CodigoPromocion", cuponRedimirRequest.CodigoPromocion); List <System.Data.SqlClient.SqlParameter> parametersOut = new List <System.Data.SqlClient.SqlParameter>(); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@MaximoRedencionOut", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Decimal, Precision = 11, Scale = 2 }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@MensajeRedencionOut", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 4000 }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@CodigoTipoTrxCab", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.NVarChar, Size = 4000 }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@Transaccion", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Int }); parametersOut.Add(new System.Data.SqlClient.SqlParameter() { ParameterName = "@EsRedimibleHoy", Direction = ParameterDirection.Output, SqlDbType = SqlDbType.Int }); var result = data.ExecuteProcedure("[dbo].[sp_vanti_PrmRedimirCupon]", parameters, parametersOut); cuponRedimirResponse.Saldo = Convert.ToDecimal(result["@MaximoRedencionOut"]); cuponRedimirResponse.MensajeRedencion = result["@MensajeRedencionOut"].ToString(); cuponRedimirResponse.CodigoTipoTrxCab = result["@CodigoTipoTrxCab"].ToString(); cuponRedimirResponse.Transaccion = Convert.ToInt32(result["@Transaccion"]); cuponRedimirResponse.EsRedimibleHoy = Convert.ToInt32(result["@EsRedimibleHoy"]); return(cuponRedimirResponse); }