Пример #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");
            }
        }