Beispiel #1
0
        /// <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;
            }));
        }
Beispiel #2
0
        /// <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);
        }