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"); } }