예제 #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    string quotesPendiente = "";
                    string namePeson = "";
                    string token = "", emailNewUser = "", userName = "", codeMembers = "";
                    int    numberQuotes = 0, idMemberDetails = 0;
                    double amountPay    = 0;
                    string currencyCode = string.Empty;

                    BrUser           brUser     = new BrUser();
                    BrPayments       brPayments = new BrPayments();
                    BrTypeMembership brTypeMemb = new BrTypeMembership();

                    string[] dataLogin = HttpContext.Current.User.Identity.Name.Split('¬');
                    userName = dataLogin[1];

                    token        = Request["tokenid"].ToString();
                    numberQuotes = int.Parse(Request["ddlQuote"].ToString());
                    currencyCode = Request["ddlcurrencyCode"].ToString();



                    if (numberQuotes < 0 || numberQuotes > 32)
                    {
                        Response.Write("false¬" + "Numero de Cuotas No Valido");
                        return;
                    }

                    codeMembers = Session["carrito"].ToString().Split('|')[6];

                    string   dataBdd       = Session["datos"].ToString();
                    string[] arraycontacto = dataBdd.Split('$')[3].Split('|');
                    string[] arrayperson   = dataBdd.Split('$')[0].Split('|');

                    //correo = arraycontacto[0];
                    namePeson = arrayperson[0] + " " + arrayperson[1];

                    string[] acarrito       = Session["carrito"].ToString().Split('|');
                    string   TypeMembership = acarrito[6];

                    string cronograma = Session["cronograma"].ToString();
                    //string respData = brPayments.PersonGetData(userName);
                    string respData = "";
                    respData = respData + '^' + cronograma;

                    double amountFinanciade = 0;
                    string cronogramaYa     = Session["cronogramaYa"].ToString();



                    string[] array1     = Session["cronogramaYa"].ToString().Split('^');
                    string[] datosMem   = array1[0].Split('|');
                    string[] array2     = array1[1].Split('~');
                    string[] cuotas     = array2[0].Split('¬');
                    string   cronoActiv = "";
                    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") + "¬";
                        }
                    }
                    string codeCurrency = Session["TypeCurrency"].ToString();

                    int    ansNmembershi = brUser.RegisterNmembership(TypeMembership + '|' + userName, amountFinanciade.ToString(), Int32.Parse(Session["membPred"].ToString()), codeCurrency);
                    bool   isRegister    = false;
                    string exchange      = Session["carrito"].ToString().Split('|')[4];

                    var typeChange = double.Parse(exchange);

                    if (Session["codeUpgrate"] != null)
                    {
                        //si es upgrate

                        isRegister = brPayments.GetCalculatePaymentScheduleUpgrate(respData, userName, ansNmembershi, exchange, 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, userName, ansNmembershi, exchange, 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, userName, 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, userName, ansNmembershi, codeUpgrate);
                    }

                    //validamos si tiene consumo
                    if (!isRegister)
                    {
                        Response.Write("false¬Ha Ocurrido Un Error al Intentar Registrar el Cronograma de Pagos del Usuario");
                        return;
                    }

                    string[] username_idmen_amount_email = brUser.GetAmountPay(ansNmembershi).Split('|');

                    if (username_idmen_amount_email.Length < 4)
                    {
                        Response.Write("false¬Ha Ocurrido Un Error al Intentar Obtener el monto a Pagar");
                        return;
                    }
                    idMemberDetails = int.Parse(username_idmen_amount_email[1]);
                    amountPay       = double.Parse(username_idmen_amount_email[2]);
                    emailNewUser    = username_idmen_amount_email[3];

                    username_idmen_amount_email = null;
                    brPayments = null;
                    brUser     = null;

                    if (idMemberDetails <= 0 || amountPay <= 0)
                    {
                        Response.Write("false¬Ha Ocurrido Un Error al Intentar Registrar al Usuario");
                        return;
                    }

                    if (currencyCode == "USD")
                    {
                        amountPay = amountPay / typeChange;
                    }

                    PayCulqi payCulqi    = new PayCulqi();
                    string[] culqiAnwser = payCulqi.newPayment(userName, emailNewUser, amountPay, token, numberQuotes, currencyCode).Split('¬');
                    if (culqiAnwser[0] == "false")
                    {
                        Response.Write("false¬" + culqiAnwser[1]);
                        return;
                    }
                    //marcar como pagado en la tabla membershipdetails
                    BrMembershipPayDetail brMembershipPayDetail = new BrMembershipPayDetail();

                    if (Session["codeUpgrate"] != null)
                    {
                        bool habiliAccount = brMembershipPayDetail.UpgrateStatusPaymentInitial(ansNmembershi, 1, "");

                        //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.");
                            return;
                        }
                    }
                    else
                    {
                        var dateCurrent = DateTime.Now.ToString("yyyy-MM-dd").Split('-');;

                        string tranferId  = culqiAnwser[2] == null ? "" : culqiAnwser[2];
                        string numReceipt = "0";
                        string date       = dateCurrent[2] + " de " + GetMonth(dateCurrent[1]) + " del " + dateCurrent[0];
                        string nAffiliate = "";

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


                        //cvbc
                        string nameTicket = GetRecibo(tranferId, userName, numReceipt, date, nAffiliate, TypeMembership, namePeson, hour, detalle, quotesPendiente);


                        bool habiliAccount = brMembershipPayDetail.UpgrateStatusPaymentInitial(ansNmembershi, 0, nameTicket);

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

                    Email oEmail      = new Email();
                    bool  awnserEmail = oEmail.SubmitEmail(emailNewUser, "[RIBERA DEL RIO - PAGO]", "Ud. Ha efectuado su pago en Ribera del Rio con Exito.");
                    if (!awnserEmail)
                    {
                        Response.Write("false¬" + culqiAnwser[1] + "\n" + "Ocurrio un Error al intentar enviar un Email de conformidad con su compra");
                        return;
                    }
                    //ejecutamos el core para los puntos de equipo
                    //BrCore_Automation brCore_Automation = new BrCore_Automation();
                    // bool isCoreRegister = brCore_Automation.ExecuteCore();
                    var urlRedire = string.Empty;

                    var codeMemb = TypeMembership.Trim();

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

                    Response.Write($"true¬{urlRedire}.aspx");
                    return;
                }
            }
            catch (Exception ex)
            {
                Response.Redirect("error.aspx?error=" + ex.Message, true);
            }
        }