예제 #1
0
        protected void ProcesarPay_Click(object sender, EventArgs e)
        {
            var dataSche = (Dictionary <string, object>)Session["changingschedule"];


            var idMemberDetails   = 0;
            var typeChangeSend    = 0m;
            var typeChangecurrent = 0m;

            typeChangecurrent = decimal.Parse(User.Identity.Name.Split('¬')[4]);

            BrWallet brWallet     = new BrWallet();
            var      amountWallet = decimal.Parse(brWallet.GetAmount(User.Identity.Name.Split('¬')[1]));

            if (!(amountWallet > 0))
            {
                MessageError.Text = "ocurrio un error";
                return;
            }

            string currencyCode = ddlcurrencyCode.SelectedValue;

            if (Session["quotePay"] == null || Session["numCuota"] == null)
            {
                MessageError.Text = "Ocurrio un error.";
                return;
            }
            var totalPay = decimal.Parse(Session["quotePay"].ToString());

            var description = Session["numCuota"].ToString();

            var methods2 = "AFTER";

            var recibe = string.Empty;

            if (NowReceipt.Checked)
            {
                if (!Recibo.HasFile)
                {
                    MessageError.Text = "No hay imagen.";
                    return;
                }

                string[] arraynombreArchivo2 = Recibo.FileName.Split('.');

                int indice = (arraynombreArchivo2.Length - 1);

                string extension = arraynombreArchivo2[indice];

                var nameFile = Guid.NewGuid().ToString();

                recibe = $"{nameFile}.{extension}";
                string filePath = "~/Resources/RecibosRegister/" + recibe;

                Recibo.SaveAs(Server.MapPath(filePath));

                methods2 = "NOW";
            }


            if (Session["StatusCalendar"] == null || Session["CurrencyCode"] == null)
            {
                MessageError.Text = "Ocurrio un error.";
                return;
            }

            idMemberDetails = int.Parse(Session["StatusCalendar"].ToString());

            BrMembershipPayDetail brMembership = new BrMembershipPayDetail();
            var response = brMembership.GetQuote(idMemberDetails, User.Identity.Name.Split('¬')[1]).Split('|');

            if (decimal.Parse(response[0]) == 0)
            {
                MessageError.Text = "Ocurrio un error.";
                return;
            }
            var amount          = decimal.Parse(response[0]);
            var currencycodecro = response[2];

            var typechangecro = decimal.Parse(response[4]);



            BrTypeChange tc = new BrTypeChange();
            MyMessages   mm = new MyMessages();
            MyFunctions  mf = new MyFunctions();

            var arraytypechan           = tc.GetTypesChange().Split('|');
            var typeChangeVentaCurrent  = decimal.Parse(arraytypechan[0]);
            var typechangecompraCurrent = decimal.Parse(arraytypechan[1]);

            decimal amountRestan      = 0;
            decimal amountWalletSoles = 0;


            var    idInfo         = idMemberDetails.ToString();
            var    imgTicketWalle = "";
            var    namePeson      = User.Identity.Name.Split('¬')[0];
            var    dateCurrent    = DateTime.Now.ToString("yyyy-MM-dd").Split('-');
            string tranferId      = "";
            string numReceipt     = "0";
            string datecomplete   = dateCurrent[2] + " de " + mf.GetMonth(dateCurrent[1]) + " del " + dateCurrent[0];
            string nAffiliate     = "";
            string hour           = DateTime.Now.ToString("HH:mm:ss");

            namePeson = mm.ToCapitalize(namePeson);
            var moneyStatus = 1;

            if (currencycodecro == "PEN")
            {
                if (currencyCode == "PEN")
                {
                    typeChangeSend    = typechangecompraCurrent;
                    amountWalletSoles = amountWallet * typechangecompraCurrent;

                    amountRestan = amount - amountWalletSoles;

                    imgTicketWalle = GetRecibo(tranferId, User.Identity.Name.Split('¬')[1], numReceipt, datecomplete, nAffiliate, "", namePeson, hour, amountWalletSoles.ToString("0.00") + " PEN Atravez del Wallet", "", $" {description}");

                    if (!NowReceipt.Checked)
                    {
                        SendEmailAmountRestante(amountRestan.ToString("0.00"), amountWalletSoles.ToString("0.00"), amount.ToString("0.00"), idInfo, description, currencyCode);
                    }
                }

                if (currencyCode == "USD")
                {
                    typeChangeSend = typechangecro;

                    amountRestan = (amount / typechangecro) - amountWallet;

                    imgTicketWalle = GetRecibo(tranferId, User.Identity.Name.Split('¬')[1], numReceipt, datecomplete, nAffiliate, "", namePeson, hour, amountWallet.ToString() + " USD Atravez del Wallet", "", $" {description}");

                    if (!NowReceipt.Checked)
                    {
                        SendEmailAmountRestante(amountRestan.ToString("0.00"), amountWallet.ToString("0.00"), (amount / typechangecro).ToString("0.00"), idInfo, description, currencyCode);
                    }
                }
            }

            if (currencycodecro == "USD")
            {
                if (currencyCode == "USD")
                {
                    amountRestan = amount - amountWallet;

                    imgTicketWalle = GetRecibo(tranferId, User.Identity.Name.Split('¬')[1], numReceipt, datecomplete, nAffiliate, "", namePeson, hour, amountWallet.ToString() + " USD Atravez del Wallet", "", $" {description}");

                    if (!NowReceipt.Checked)
                    {
                        SendEmailAmountRestante(amountRestan.ToString("0.00"), amountWallet.ToString("0.00"), amount.ToString("0.00"), idInfo, description, currencyCode);
                    }
                }

                amount         = amount * typechangecompraCurrent;
                typeChangeSend = typechangecompraCurrent;

                if (currencyCode == "PEN")
                {
                    amountWalletSoles = amountWallet * typechangecompraCurrent;
                    amountRestan      = amount - amountWalletSoles;

                    imgTicketWalle = GetRecibo(tranferId, User.Identity.Name.Split('¬')[1], numReceipt, datecomplete, nAffiliate, "", namePeson, hour, amountWalletSoles.ToString() + " PEN Atravez del Wallet", "", $" {description}");

                    if (!NowReceipt.Checked)
                    {
                        SendEmailAmountRestante(amountRestan.ToString("0.00"), amountWalletSoles.ToString("0.00"), amount.ToString("0.00"), idInfo, description, currencyCode);
                    }
                }
            }


            //dos es que wallet es una parte del pago de una cuota
            var typeInfo         = "2";
            var walleOperationId = "2";

            MessageError.Text   = string.Empty;
            MessageWarning.Text = string.Empty;
            MessageSucces.Text  = string.Empty;

            bool IsPay = brMembership.IsPayQuote(idMemberDetails.ToString());

            if (!IsPay)
            {
                MessageWarning.Text = "Tu Cuota ya esta Pagada.Verifica tu cronograma de pagos.";
                return;
            }


            var action       = dataSche["Action"];
            var valueQuote   = Convert.ToDouble(dataSche["ValueQuote"]);
            var numQuote     = Convert.ToDouble(dataSche["NumQuote"]);
            var idMembership = Convert.ToInt32(dataSche["IdMembership"]);

            var lastpaydate = Convert.ToDateTime(dataSche["PayDate"]);

            var smallDate = DateTime.Now - lastpaydate;

            var numberDays = smallDate.Days;


            int numQuotes = int.Parse(numQuote.ToString());

            BrMembershipPayDetail payDetail = new BrMembershipPayDetail();
            bool responseb = payDetail.PutQuotesChangingSchedule(idMembership, numQuotes, recibe, 2);

            if (numberDays > 0)
            {
                BrDaysFree brDaysFree = new BrDaysFree();
                var        dataanw    = brDaysFree.Put(User.Identity.Name.Split('¬')[1], numberDays, idMembership);
            }



            if (amountWallet > 0)
            {
                if (string.IsNullOrEmpty(recibe))
                {
                    recibe += $"{imgTicketWalle}";
                }
                else
                {
                    recibe += $"~{imgTicketWalle}";
                }
                //amount | @idInfo | @typeInfo | @walletOperationId | @currencyCode | @typeChange | idmembershipDetail | imgTicket
                string data   = $"{(amountWallet * typeChangeSend).ToString()}|{idInfo}|{typeInfo}|{walleOperationId}|PEN|{typeChangeSend}|{idMemberDetails.ToString()}|{recibe}";
                bool   answer = brWallet.Put(data, User.Identity.Name.Split('¬')[1], moneyStatus);

                //Extorno

                if (!answer)
                {
                    MessageError.Text = "Ocurrio un error.";
                    return;
                }
            }
            //MessageSucces.Text = "Su Pago de Realizo Con Exito.";

            /*=============================================================================================================================*/

            var amountOthers = amount;
            //esta en estado pendienete
            var statusPay = 4;

            if (methods2 == "NOW")
            {
                statusPay = 2;
            }

            //marcar como pagado en la tabla membershipdetails

            //TODO: Agregar los detalles del pago
            BrUser brUser = new BrUser();

            bool habiliAccount = brUser.BiPayQuote(idMemberDetails, recibe, amountWallet * typeChangeSend, amountRestan, "WALLET", methods2, statusPay, typeChangeSend);

            var amountTot = amountWallet + amountRestan;



            if (habiliAccount)
            {
                Response.Redirect("EndPaymentQuote.aspx");
            }
        }
예제 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            MyConstants mc = new MyConstants();

            try
            {
                var dataSche = (Dictionary <string, object>)Session["changingschedule"];

                string token        = "";
                int    numberQuotes = 0;

                token        = Request["token"].ToString();
                numberQuotes = int.Parse(Request["numcuotes"].ToString());

                string codeCurrency = Request["typeCurrency"].ToString();

                var newUserName = User.Identity.Name.Split('¬')[1];

                var idMemberDetails = 0;


                BrTypeChange brTypeChange = new BrTypeChange();
                var          arrayTypes   = brTypeChange.GetTypesChange().Split('|');

                var tcBuy  = decimal.Parse(arrayTypes[1]);
                var tcSale = decimal.Parse(arrayTypes[0]);

                if (Session["quotePay"] == null || Session["numCuota"] == null)
                {
                    //MessageError.Text = "Ocurrio un error.";
                    return;
                }
                var totalPay = decimal.Parse(Session["quotePay"].ToString());

                var description = Session["numCuota"].ToString();

                var methods2 = "CULQI";

                var recibe = string.Empty;


                if (Session["StatusCalendar"] == null || Session["CurrencyCode"] == null)
                {
                    //MessageError.Text = "Ocurrio un error.";
                    return;
                }

                idMemberDetails = int.Parse(Session["StatusCalendar"].ToString());

                //monto| fecha de expiration |codecurrency | description| typechange
                BrMembershipPayDetail brMembership = new BrMembershipPayDetail();
                var response = brMembership.GetQuote(idMemberDetails, User.Identity.Name.Split('¬')[1]).Split('|');

                if (decimal.Parse(response[0]) == 0)
                {
                    //MessageError.Text = "Ocurrio un error.";
                    return;
                }
                var amountCro = decimal.Parse(response[0]);

                var codeCurrencyCro = response[2];
                var tcCrono         = decimal.Parse(response[4]);

                var idInfo = idMemberDetails.ToString();
                //dos es que wallet es una parte del pago de una cuota
                var typeInfo         = "2";
                var walleOperationId = "2";


                bool IsPay = brMembership.IsPayQuote(idMemberDetails.ToString());

                if (!IsPay)
                {
                    //MessageWarning.Text = "Tu Cuota ya esta Pagada.Verifica tu cronograma de pagos.";
                    return;
                }

                BrWallet    brWallet   = new BrWallet();
                MyMessages  myMessages = new MyMessages();
                MyFunctions mf         = new MyFunctions();

                var amountWallet = decimal.Parse(brWallet.GetAmount(User.Identity.Name.Split('¬')[1]));



                BrPerson brPerson   = new BrPerson();
                var      dataPerson = brPerson.GetByUserName(newUserName).Split('|');
                PayCulqi payCulqi   = new PayCulqi();


                decimal surcharge         = (1 + mc.Surcharge);
                var     amountRestan      = 0m;
                var     amountPayCulqires = 0d;

                var tcSend = 0m;

                if (codeCurrencyCro == "USD")
                {
                    if (codeCurrency == "PEN")
                    {
                        tcSend            = tcSale;
                        amountRestan      = ((amountCro - amountWallet) * tcSale) * surcharge;
                        amountPayCulqires = double.Parse(amountRestan.ToString());
                    }
                    if (codeCurrency == "USD")
                    {
                        tcSend            = tcBuy;
                        amountRestan      = (amountCro - amountWallet) * surcharge;
                        amountPayCulqires = double.Parse(amountRestan.ToString());
                    }
                }

                if (codeCurrencyCro == "PEN")
                {
                    if (codeCurrency == "USD")
                    {
                        tcSend            = tcCrono;
                        amountRestan      = ((amountCro * tcCrono) - amountWallet) * surcharge;
                        amountPayCulqires = double.Parse(amountRestan.ToString());
                    }
                    if (codeCurrency == "PEN")
                    {
                        tcSend            = tcBuy;
                        amountRestan      = (amountCro - (amountWallet * tcBuy)) * surcharge;
                        amountPayCulqires = double.Parse(amountRestan.ToString());
                    }
                }

                string[] culqiAnwser = payCulqi.newPayment(newUserName, dataPerson[1], amountPayCulqires, token, numberQuotes, codeCurrency).Split('¬');
                if (culqiAnwser[0] == "false")
                {
                    Response.Write("false¬" + culqiAnwser[1]);
                    return;
                }



                var namePeson = User.Identity.Name.Split('¬')[0];

                var dateCurrent = DateTime.Now.ToString("yyyy-MM-dd").Split('-');

                string tranferId    = "";
                string numReceipt   = "0";
                string datecomplete = dateCurrent[2] + " de " + mf.GetMonth(dateCurrent[1]) + " del " + dateCurrent[0];
                string nAffiliate   = "";

                string hour = DateTime.Now.ToString("HH:mm:ss");

                namePeson = myMessages.ToCapitalize(namePeson);
                var moneyStatus = 1;

                string imgTicketWalle = "";

                var action       = dataSche["Action"];
                var valueQuote   = Convert.ToDouble(dataSche["ValueQuote"]);
                var numQuote     = Convert.ToDouble(dataSche["NumQuote"]);
                var idMembership = Convert.ToInt32(dataSche["IdMembership"]);

                var lastpaydate = Convert.ToDateTime(dataSche["PayDate"]);

                var smallDate = DateTime.Now - lastpaydate;

                var numberDays = smallDate.Days;


                int numQuotes = int.Parse(numQuote.ToString());

                BrMembershipPayDetail payDetail = new BrMembershipPayDetail();
                bool responseb = payDetail.PutQuotesChangingSchedule(idMembership, numQuotes, recibe, 2);

                if (numberDays > 0)
                {
                    BrDaysFree brDaysFree = new BrDaysFree();
                    var        dataanw    = brDaysFree.Put(User.Identity.Name.Split('¬')[1], numberDays, idMembership);
                }


                if (amountWallet > 0)
                {
                    imgTicketWalle = GetRecibo(tranferId, User.Identity.Name.Split('¬')[1], numReceipt, datecomplete, nAffiliate, "", namePeson, hour, amountWallet.ToString() + $" USD  Atravez de Wallet.", "", $" {description}", "WL");


                    //amount | @idInfo | @typeInfo | @walletOperationId | @currencyCode | @typeChange | idmembershipDetail | imgTicket
                    string data   = $"{(amountWallet * tcSend).ToString()}|{idInfo}|{typeInfo}|{walleOperationId}|PEN|{tcSend}|{idMemberDetails.ToString()}|{imgTicketWalle}";
                    bool   answer = brWallet.Put(data, User.Identity.Name.Split('¬')[1], moneyStatus);

                    //Extorno

                    if (!answer)
                    {
                        //MessageError.Text = "Ocurrio un error.";
                        return;
                    }
                }
                //MessageSucces.Text = "Su Pago de Realizo Con Exito.";

                /*=============================================================================================================================*/

                var amountOthers = amountCro;
                //esta en estado pendienete
                var statusPay = 1;


                //marcar como pagado en la tabla membershipdetails

                //TODO: Agregar los detalles del pago
                BrUser brUser      = new BrUser();
                var    recibeCulqi = GetRecibo(tranferId, User.Identity.Name.Split('¬')[1], numReceipt, datecomplete, nAffiliate, "", namePeson, hour, amountRestan.ToString("0.00") + $" {codeCurrency}  Atravez de Culqi.", "", $" {description}", "CQ");

                //recibe
                bool habiliAccount = brUser.BiPayQuote(idMemberDetails, imgTicketWalle + '~' + recibeCulqi, amountWallet, amountRestan, "WALLET", methods2, statusPay, tcBuy);


                var urlRedirect = "EndPaymendMbs";


                Response.Write($"true¬{urlRedirect}.aspx");
            }
            catch (Exception ex)
            {
                Email email = new Email();
                email.SendEmail(mc.ErrorEmail, "error-inresorts", ex.StackTrace + '¬' + DateTime.Now.ToLongDateString(), false);
                Response.Write("false¬ocurrio un error");
            }
        }
예제 #3
0
        protected void Page_Load(object sender, EventArgs e)
        {
            MyConstants mc = new MyConstants();

            try
            {
                string token        = "";
                int    numberQuotes = 0;

                token        = Request["token"].ToString();
                numberQuotes = int.Parse(Request["numcuotes"].ToString());

                //pagar con wallet
                BrWallet brWallet      = new BrWallet();
                var      amountWalletc = decimal.Parse(brWallet.GetAmount(User.Identity.Name.Split('¬')[1]));

                var amountTotal = 0m;

                if (Session["MontoWallet"] != null)
                {
                    amountTotal = decimal.Parse(Session["MontoWallet"].ToString());
                }


                var amountRestan = amountTotal - amountWalletc;

                //if (amountWalletc < quota)
                //{
                //    MessageError.Text = "No tiene el monto suficiente para realizar Pago.";
                //    return;
                //}

                var methods2 = "CULQI";

                var recibe = string.Empty;



                BrPayments brPayments    = new BrPayments();
                BrUser     brUser        = new BrUser();
                string     dataKitMember = Session["cronograma"].ToString();


                string date = dataKitMember.Split('$')[1];

                var cart = Session["carrito"].ToString();

                var arrayCart = cart.Split('|');
                var codeMemb  = arrayCart[6];

                string[] datos   = Session["datos"].ToString().Split('$');
                var      dataBdd = Session["datos"].ToString();



                if (Session["datos"] == null)
                {
                    Response.Write("false¬Ha Ocurrido Un Error, no hay datos.");
                    return;
                }
                string[] arraycontacto = datos[3].Split('|');
                string[] arrayperson   = datos[0].Split('|');


                string dni = arrayperson[5];

                var newUserName     = User.Identity.Name.Split('¬')[1];
                var emailNewUser    = arraycontacto[0].Trim();
                var codeCurrencyPay = Session["TypeCurrency"].ToString();



                string[] array1          = Session["cronogramaYa"].ToString().Split('^');
                string[] datosMem        = array1[0].Split('|');
                string[] array2          = array1[1].Split('~');
                string[] cuotas          = array2[0].Split('¬');
                string   cronoActiv      = "";
                var      quotesPendiente = (cuotas.Length - 2).ToString();
                for (int i = 0; i < cuotas.Length - 1; i++)
                {
                    var fila = cuotas[i].Split('|');
                    if (fila[0].Substring(0, 7) != "Inicial")
                    {
                        cronoActiv += DateTime.Parse(fila[1]).ToString("yyyy-MM-dd");
                        //amountFinanciade = double.Parse(fila[2].Replace("S/.", ""));
                        break;
                    }
                    else
                    {
                        cronoActiv += DateTime.Parse(fila[1]).ToString("yyyy-MM-dd") + "¬";
                    }
                }

                var respDataper = brPayments.PersonGetData(newUserName);

                string respData = string.Empty;
                respData = respData + '^' + dataKitMember;

                // isRegister = brPayments.GetCalculatePaymentSchedule(respData, newUserName);
                //string data2 = Session["financedAmount"].ToString();

                string data2 = "0";
                //string codeCurrency = Session["TypeCurrency"].ToString();



                var currencyCode = Session[""].ToString();

                PayCulqi payCulqi = new PayCulqi();

                string[] culqiAnwser = payCulqi.newPayment(newUserName, emailNewUser, double.Parse(amountRestan.ToString()), token, numberQuotes, codeCurrencyPay).Split('¬');
                if (culqiAnwser[0] == "false")
                {
                    Response.Write("false¬" + culqiAnwser[1]);
                    return;
                }


                Int32 ansNmembershi = brUser.RegisterNmembership(codeMemb + '|' + newUserName, data2, 1, codeCurrencyPay);

                BrTypeMembership brTypeMemb = new BrTypeMembership();
                string           typeChange = arrayCart[4];

                //var isRegister = brPayments.GetCalculatePaymentSchedule(respData, newUserName, ansNmembershi, typeChange, 1);
                bool isRegister = false;
                if (Session["codeUpgrate"] != null)
                {
                    //si es upgrate

                    isRegister = brPayments.GetCalculatePaymentScheduleUpgrate(respData, newUserName, ansNmembershi, typeChange, 1);
                    if (!isRegister)
                    {
                        Response.Write("false¬Ha Ocurrido Un Error al Intentar Registrar el Cronograma de Pagos del Usuario");
                        return;
                    }

                    if (Session["dateup"] != null)
                    {
                        string dateup = Session["dateup"].ToString();
                        bool   an     = brPayments.PutDateUpgrate(ansNmembershi, dateup);
                    }

                    //registramos si upgrate para
                }
                else
                {
                    //si no es upgrate

                    isRegister = brPayments.GetCalculatePaymentSchedule(respData, newUserName, ansNmembershi, typeChange, 1);
                    if (!isRegister)
                    {
                        Response.Write("false¬Ha Ocurrido Un Error al Intentar Registrar el Cronograma de Pagos del Usuario");
                        return;
                    }
                    //cronograma de activacion
                    BrActivation brActivation = new BrActivation();
                    bool         registerActi = brActivation.PutCronograma(cronoActiv, newUserName, ansNmembershi);
                }

                if (Session["codeUpgrate"] != null)
                {
                    //el id de account n membership del upgrate ¬ y el nuevo
                    int  codeUpgrate = int.Parse(Session["codeUpgrate"].ToString());
                    bool upgrate     = brTypeMemb.CancelMembershipUpgrate(codeUpgrate, ansNmembershi);
                    if (!upgrate)
                    {
                        Response.Write("false¬Ha Ocurrido Un Error al Intentar Registrar el Cronograma de Pagos del Usuario");
                        return;
                    }
                    BrActivation brActivation  = new BrActivation();
                    string       fechaAnterior = Session["fechaanterior"].ToString();
                    bool         registerActi  = brActivation.PutCronogramaUpgrade(fechaAnterior, newUserName, ansNmembershi, codeUpgrate);
                }
                //validamos si tiene consumo


                if (!isRegister)
                {
                    // "Ha Ocurrido Un Error al Intentar Registrar el Cronograma de Pagos del Usuario";
                    return;
                }

                //BrActivation brActivation = new BrActivation();
                //bool registerActi = brActivation.PutCronograma(cronoActiv, newUserName, ansNmembershi);

                //obtengo el monto a pagar

                string[] username_idmen_amount_email = brUser.getAmountPay(newUserName).Split('¬');
                if (username_idmen_amount_email.Length < 4)
                {
                    // "false¬Ha Ocurrido Un Error al Intentar Obtener el monto a Pagar";
                    return;
                }
                var idMemberDetails = int.Parse(username_idmen_amount_email[1]);
                var amountPay       = double.Parse(username_idmen_amount_email[2]);
                emailNewUser                = username_idmen_amount_email[3];
                codeCurrencyPay             = username_idmen_amount_email[4];
                date                        = null;
                username_idmen_amount_email = null;
                dataKitMember               = null;
                respData                    = null;


                var namePeson = arrayperson[0].Trim() + " " + arrayperson[1].Trim();

                var dateCurrent = DateTime.Now.ToString("yyyy-MM-dd").Split('-');;

                string tranferId    = "";
                string numReceipt   = "0";
                string datecomplete = dateCurrent[2] + " de " + GetMonth(dateCurrent[1]) + " del " + dateCurrent[0];
                string nAffiliate   = "";

                string     hour       = DateTime.Now.ToString("HH:mm:ss");
                string     detalle    = amountRestan.ToString();
                MyMessages myMessages = new MyMessages();
                namePeson = myMessages.ToCapitalize(namePeson);
                //cvbc
                var imgTicket = GetRecibo(tranferId, newUserName, numReceipt, datecomplete, nAffiliate, codeMemb, namePeson, hour, detalle, quotesPendiente, " Inicial 1");


                /*=============================================================================================================================*/

                //var currencyCode = Session["CurrencyCode"].ToString();
                BrMembershipPayDetail brMembership = new BrMembershipPayDetail();
                var response = brMembership.GetQuote(idMemberDetails, User.Identity.Name.Split('¬')[1]).Split('|');

                if (decimal.Parse(response[0]) == 0)
                {
                    // "Ocurrio un error.";
                    return;
                }
                var amount = decimal.Parse(response[0]).ToString();


                if (codeCurrencyPay == "USD")
                {
                    amount = (decimal.Parse(amount) * decimal.Parse(typeChange)).ToString();
                }


                var idInfo = idMemberDetails.ToString();
                //dos es que wallet es una parte del pago de una cuota
                var typeInfo         = "2";
                var walleOperationId = "2";


                bool IsPay = brMembership.IsPayQuote(idMemberDetails.ToString());

                if (!IsPay)
                {
                    // "Tu Cuota ya esta Pagada.Verifica tu cronograma de pagos.";
                    return;
                }


                var amountWallet = decimal.Parse(brWallet.GetAmount(User.Identity.Name.Split('¬')[1]));

                //if (amountWallet < decimal.Parse(amount))
                //{
                //    MessageError.Text = "No tiene el monto suficiente para realizar Pago.";
                //    return;
                //}

                imgTicket += recibe;

                var moneyStatus = 0;

                if (amountWallet > 0)
                {
                    var imgTicketWalle = GetRecibo(idMemberDetails.ToString(), newUserName, numReceipt, datecomplete, nAffiliate, codeMemb, namePeson, hour, amountWalletc.ToString(), quotesPendiente, " Inicial 1");
                    imgTicket += $"~{imgTicketWalle}";
                    //amount | @idInfo | @typeInfo | @walletOperationId | @currencyCode | @typeChange | idmembershipDetail | imgTicket
                    string data   = $"{amountWalletc}|{idInfo}|{typeInfo}|{walleOperationId}|PEN|{typeChange}|{idMemberDetails.ToString()}|{imgTicket}";
                    bool   answer = brWallet.Put(data, User.Identity.Name.Split('¬')[1], moneyStatus);

                    //Extorno

                    if (!answer)
                    {
                        // = "Ocurrio un error.";
                        return;
                    }
                }
                //MessageSucces.Text = "Su Pago de Realizo Con Exito.";

                /*=============================================================================================================================*/

                var amountOthers = amount;
                //esta en estado pendienete
                var statusPay = 1;

                //marcar como pagado en la tabla membershipdetails

                //TODO: Agregar los detalles del pago


                bool habiliAccount = brUser.BiPayQuote(idMemberDetails, imgTicket, amountWalletc, amountRestan, "WALLET", methods2, statusPay, decimal.Parse(typeChange));

                int nAfiliate = int.Parse(brUser.GetNafiliate(idMemberDetails));

                BrTypeMembership brTypeMembership = new BrTypeMembership();
                var correlativo = int.Parse(brTypeMembership.GetTotalMemberships(User.Identity.Name.Split('¬')[1]));

                correlativo--;

                if (correlativo < 0)
                {
                    correlativo = 0;
                }

                Cronograma2(nAfiliate, codeCurrencyPay, correlativo.ToString());

                // enviar el email de confirmacion con la data y lo redirecciona al post register
                if (!habiliAccount)
                {
                    Response.Write("false¬Ha Ocurrido un Error al Intentar Habilitar Su Cuenta.Sin embargo su Pago fue Exitoso");
                    return;
                }


                var urlRedirect = "EndPaymendMbs";

                if (codeMemb == "EXP" || codeMemb == "LHT" || codeMemb == "STD" ||
                    codeMemb == "PLUS" || codeMemb == "TOP" || codeMemb == "VIT")
                {
                    urlRedirect = "EndPaymendMbs";
                }
                if (codeMemb == "EVOL" || codeMemb == "MVC")
                {
                    urlRedirect = "EndPaymendMbs";
                }
                if (codeMemb == "SBY")
                {
                    urlRedirect = "EndPaymentSby";
                }


                Response.Write($"true¬{urlRedirect}.aspx");
            }
            catch (Exception ex)
            {
                Email email = new Email();
                email.SendEmail(mc.ErrorEmail, "error-inresorts", ex.StackTrace + '¬' + DateTime.Now.ToLongDateString(), false);
                Response.Write("false¬ocurrio un error");
            }
        }