protected void gvEmpresas_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "btnCredencialesLigas")
            {
                int         index        = Convert.ToInt32(e.CommandArgument.ToString());
                GridViewRow Seleccionado = gvEmpresas.Rows[index];
                GridView    valor        = (GridView)sender;
                Guid        dataKeys     = Guid.Parse(valor.DataKeys[Seleccionado.RowIndex].Value.ToString());
                ViewState["UidCliente"] = dataKeys;

                //lblTituloModal.Text = "Visualización de la Franquicia";

                parametrosEntradaServices.ObtenerParametrosEntradaCliente(dataKeys);
                txtIdCompany.Text = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.IdCompany;
                txtIdBranch.Text  = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.IdBranch;
                txtUsuario.Text   = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchUsuario;
                txtPassword.Text  = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchPassword;

                if (!string.IsNullOrEmpty(txtIdCompany.Text) && !string.IsNullOrEmpty(txtIdBranch.Text))
                {
                    txtMoneda.Text     = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchModena;
                    txtCanal.Text      = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchCanal;
                    txtData.Text       = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchData0;
                    txtUrl.Text        = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchUrl;
                    txtSemillaAES.Text = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchSemillaAES;

                    ViewState["AccionParametros"] = "ActualizarParametros";
                    btnGuardarCredenciales.Text   = "<i class=" + "material-icons>" + "refresh </i> Actualizar";
                }
                else
                {
                    ViewState["AccionParametros"] = "GuardarParametros";
                    btnGuardarCredenciales.Text   = "<i class=" + "material-icons>" + "check </i> Guardar";
                }

                ScriptManager.RegisterStartupScript(this, this.GetType(), "FormScript", "showModalCredenciales()", true);
            }

            if (e.CommandName == "btnPromociones")
            {
                int         index        = Convert.ToInt32(e.CommandArgument.ToString());
                GridViewRow Seleccionado = gvEmpresas.Rows[index];
                GridView    valor        = (GridView)sender;
                Guid        dataKeys     = Guid.Parse(valor.DataKeys[Seleccionado.RowIndex].Value.ToString());
                ViewState["UidCliente"] = dataKeys;

                //lblTituloModal.Text = "Visualización de la Franquicia";

                promocionesServices.CargarPromociones();

                promocionesServices.lsCBLPromocionesModel.Clear();
                promocionesServices.CargarPromociones(dataKeys);

                if (promocionesServices.lsCBLPromocionesModel.Count >= 1)
                {
                    ViewState["AccionPromociones"] = "ActualizarPromociones";
                    btnGuardarPromociones.Text     = "<i class=" + "material-icons>" + "refresh </i> Actualizar";
                }
                else
                {
                    ViewState["AccionPromociones"] = "GuardarPromociones";
                    btnGuardarPromociones.Text     = "<i class=" + "material-icons>" + "check </i> Guardar";
                }

                gvPromociones.DataSource = promocionesServices.lsPromociones;
                gvPromociones.DataBind();

                ScriptManager.RegisterStartupScript(this, this.GetType(), "FormScript", "showModalPromociones()", true);
            }
        }
        protected void btnGenerarPago_Click(object sender, EventArgs e)
        {
            string MontoMin = "50.00";
            string MontoMax = "15000.00";

            if (txtImporte.EmptyTextBox())
            {
                pnlAlert.Visible     = true;
                lblMensajeAlert.Text = "El campo <b>Importe</b> es obligatorio.";
                divAlert.Attributes.Add("class", "alert alert-danger alert-dismissible fade show");
                return;
            }
            if (txtImporteTotal.EmptyTextBox())
            {
                pnlAlert.Visible     = true;
                lblMensajeAlert.Text = "El campo <b>Total a pagar</b> es obligatorio.";
                divAlert.Attributes.Add("class", "alert alert-danger alert-dismissible fade show");
                return;
            }

            if (decimal.Parse(txtImporte.Text) >= decimal.Parse(MontoMin) && decimal.Parse(txtImporte.Text) <= decimal.Parse(MontoMax))
            {
            }
            else
            {
                txtImporte.BackColor = System.Drawing.Color.FromName("#f2dede");
                pnlAlert.Visible     = true;
                lblMensajeAlert.Text = "El importe mínimo es de <b>$50.00</b> y el máximo es de <b>$15,000.00.</b>";
                divAlert.Attributes.Add("class", "alert alert-danger alert-dismissible fade show");
                return;
            }

            pnlDatosComercio.Visible = false;
            pnlCorreo.Visible        = false;
            pnlIframe.Visible        = false;

            btnGenerarLigas.Visible = false;

            string identificador = eventosServices.eventosRepository.eventosGridViewModel.VchNombreEvento;
            string concepto      = eventosServices.eventosRepository.eventosGridViewModel.VchConcepto;

            DateTime HoraDelServidor = DateTime.Now;
            DateTime hoy             = TimeZoneInfo.ConvertTimeBySystemTimeZoneId(HoraDelServidor, TimeZoneInfo.Local.Id, "Eastern Standard Time (Mexico)");

            string vencimiento = hoy.ToString("dd/MM/yyyy");

            if (eventosServices.eventosRepository.eventosGridViewModel.BitFHFin)
            {
                vencimiento = eventosServices.eventosRepository.eventosGridViewModel.DtFHFin.ToString("dd/MM/yyyy");
            }

            int     intCorreo    = 1;
            decimal importeTotal = decimal.Parse(txtImporte.Text);

            string url  = string.Empty;
            bool   resu = false;

            parametrosEntradaServices.ObtenerParametrosEntradaCliente(Guid.Parse(ViewState["UidClienteLocal"].ToString()));

            string id_company = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.IdCompany;
            string id_branch  = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.IdBranch;
            string user       = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchUsuario;
            string pwd        = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchPassword;
            string moneda     = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchModena;
            string canal      = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchCanal;
            string semillaAES = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchSemillaAES;
            string urlGen     = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchUrl;
            string data0      = parametrosEntradaServices.parametrosEntradaRepository.parametrosEntrada.VchData0;

            if (!string.IsNullOrEmpty(id_company) && !string.IsNullOrEmpty(id_branch) && !string.IsNullOrEmpty(user) && !string.IsNullOrEmpty(pwd) && !string.IsNullOrEmpty(moneda) && !string.IsNullOrEmpty(canal) && !string.IsNullOrEmpty(semillaAES) && !string.IsNullOrEmpty(urlGen) && !string.IsNullOrEmpty(data0))
            {
                Guid UidLigaAsociado = Guid.NewGuid();

                usuariosCompletosServices.SelectUsClienteEventoUsuarioFinal(Guid.Parse(ViewState["UidUsuarioLocal"].ToString()));
                promocionesServices.CargarPromocionesEventoUsuarioFinal(Guid.Parse(ViewState["UidClienteLocal"].ToString()), Guid.Parse(ViewState["UidEvento"].ToString()));

                foreach (var item in usuariosCompletosServices.lsEventoLiga)
                {
                    if (ddlFormasPago.SelectedValue != "contado")
                    {
                        DateTime thisDay         = DateTime.Now;
                        string   ReferenciaCobro = item.IdCliente.ToString() + item.IdUsuario.ToString() + thisDay.ToString("ddMMyyyyHHmmssfff");

                        foreach (var itPromo in promocionesServices.lsEventosGenerarLigasModel.Where(x => x.UidPromocion == Guid.Parse(ddlFormasPago.SelectedValue)).ToList())
                        {
                            decimal Valor   = itPromo.DcmComicion * importeTotal / 100;
                            decimal Importe = Valor + importeTotal;

                            string promocion = itPromo.VchDescripcion.Replace(" MESES", "");

                            DateTime thisDay2   = DateTime.Now;
                            string   Referencia = item.IdCliente.ToString() + item.IdUsuario.ToString() + thisDay2.ToString("ddMMyyyyHHmmssfff");

                            url = GenLigaPara(id_company, id_branch, user, pwd, Referencia, Importe, moneda, canal, promocion, intCorreo, vencimiento, item.StrCorreo, concepto, semillaAES, data0, urlGen);

                            if (url.Contains("https://"))
                            {
                                if (usuariosCompletosServices.GenerarLigasPagosEvento(url, concepto, Importe, Referencia, item.UidUsuario, identificador, thisDay, DateTime.Parse(vencimiento), "EVENTO", UidLigaAsociado, itPromo.UidPromocion, Guid.Parse(ViewState["UidEvento"].ToString()), Guid.Parse(ViewState["UidClienteLocal"].ToString())))
                                {
                                    ViewState["IdReferenciaCobroEvento"] = Referencia;
                                    pnlAcordiones.Visible    = false;
                                    pnlDatosComercio.Visible = false;
                                    pnlCorreo.Visible        = false;
                                    pnlIframe.Visible        = true;

                                    btnCerrar.Visible  = false;
                                    btnAceptar.Visible = true;

                                    ifrLiga.Src = url;

                                    resu = true;
                                }
                            }
                            else
                            {
                                resu = false;
                                break;
                            }
                        }
                    }
                    else if (ddlFormasPago.SelectedValue == "contado")
                    {
                        DateTime thisDay         = DateTime.Now;
                        string   ReferenciaCobro = item.IdCliente.ToString() + item.IdUsuario.ToString() + thisDay.ToString("ddMMyyyyHHmmssfff");

                        string urlCobro = GenLigaPara(id_company, id_branch, user, pwd, ReferenciaCobro, importeTotal, moneda, canal, "C", intCorreo, vencimiento, item.StrCorreo, concepto, semillaAES, data0, urlGen);

                        if (urlCobro.Contains("https://"))
                        {
                            if (usuariosCompletosServices.GenerarLigasPagosEvento(urlCobro, concepto, importeTotal, ReferenciaCobro, item.UidUsuario, identificador, thisDay, DateTime.Parse(vencimiento), "EVENTO", Guid.Empty, Guid.Empty, Guid.Parse(ViewState["UidEvento"].ToString()), Guid.Parse(ViewState["UidClienteLocal"].ToString())))
                            {
                                ViewState["IdReferenciaCobroEvento"] = ReferenciaCobro;
                                pnlAcordiones.Visible    = false;
                                pnlDatosComercio.Visible = false;
                                pnlCorreo.Visible        = false;
                                pnlIframe.Visible        = true;

                                btnCerrar.Visible  = false;
                                btnAceptar.Visible = true;

                                ifrLiga.Src = urlCobro;

                                resu = true;
                            }
                        }
                        else
                        {
                            resu = false;
                        }
                    }
                }

                if (resu)
                {
                }
                else
                {
                    if (!string.IsNullOrEmpty(url))
                    {
                        pnlAlert.Visible     = true;
                        lblMensajeAlert.Text = "<b>¡Lo sentimos! </b> " + url + "." + "<br /> Las credenciales proporcionadas no son correctos, por favor contacte a los administradores.";
                        divAlert.Attributes.Add("class", "alert alert-danger alert-dismissible fade show");
                    }
                    else
                    {
                        pnlAlert.Visible     = true;
                        lblMensajeAlert.Text = "<b>¡Lo sentimos! </b> Las credenciales proporcionadas no son correctos, por favor contacte a los administradores.";
                        divAlert.Attributes.Add("class", "alert alert-danger alert-dismissible fade show");
                    }
                }
            }
            else
            {
                pnlAlert.Visible     = true;
                lblMensajeAlert.Text = "<b>¡Lo sentimos! </b> Esta empresa no cuenta con credenciales para generar ligas, por favor contacte a los administradores.";
                divAlert.Attributes.Add("class", "alert alert-danger alert-dismissible fade show");
            }
        }