protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (ValidarSesion())
                {
                    if (!Page.IsPostBack)
                    {
                        Session["PosBackPagos" + Session.SessionID] = null;
                        ValidarPermisos();
                        if (sesion.Cu_Modif_Pass_Voluntario == false)
                        {
                            RAM1.ResponseScripts.Add("AbrirContrasenas(); return false;");
                            return;
                        }
                        CargarCentros();
                        Inicializar();

                        Random randObj = new Random(DateTime.Now.Millisecond);
                        HF_ClvPag.Value = randObj.Next().ToString();



                        CN_CapPago cn_cappago = new CN_CapPago();
                        Pago       pag        = new Pago();
                        pag.Id_Emp = sesion.Id_Emp;
                        pag.Id_Cd  = sesion.Id_Cd_Ver;
                        int verificador = 0;
                        cn_cappago.PermitirExtemporaneo(pag, sesion.Emp_Cnx, ref verificador);

                        HF_EXT.Value = verificador.ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                ErrorManager(ex, new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name);
            }
        }
        protected void rg_ItemCommand(object source, GridCommandEventArgs e)
        {
            try
            {
                Session["PosBackPagos" + Session.SessionID] = null;
                DateTime      fechaPeriodoInicio = sesion.CalendarioIni;
                DateTime      fechaPeriodoFinal  = sesion.CalendarioFin;
                GridItem      gi = e.Item;
                List <string> statusPosibles;
                switch (e.CommandName)
                {
                case "Baja":
                    statusPosibles = new List <string>()
                    {
                        "C", "I"
                    };
                    if (!statusPosibles.Contains(gi.Cells[8].Text.ToUpper()))
                    {
                        Alerta("El pago se encuentra en estatus no válido para realizar la baja");
                        e.Canceled = true;
                        return;
                    }
                    if (gi.Cells[3].Text.Replace("&nbsp;", "") != "")
                    {
                        Alerta("No es posible cancelar un pago externo");
                        e.Canceled = true;
                        return;
                    }
                    if (!Convert.ToBoolean(gi.Cells[10].Text))
                    {
                        if (Convert.ToDateTime(gi.Cells[12].Text) < fechaPeriodoInicio || Convert.ToDateTime(gi.Cells[12].Text) > fechaPeriodoFinal)
                        {
                            Alerta("El pago no se encuentra en el periodo actual");
                            e.Canceled = true;
                            return;
                        }
                    }
                    else
                    {
                        CN_CapPago cn_cappago = new CN_CapPago();
                        Pago       pag        = new Pago();
                        pag.Id_Emp    = sesion.Id_Emp;
                        pag.Id_Cd     = sesion.Id_Cd_Ver;
                        pag.Pag_Fecha = Convert.ToDateTime(gi.Cells[12].Text);
                        int verificador = 0;
                        cn_cappago.PermitirExtemporaneo(pag, sesion.Emp_Cnx, ref verificador);
                        if (!Convert.ToBoolean(verificador))
                        {
                            Alerta("Ya se ha efectuado el cierre extemporáneo de pagos, no es posible dar de baja el pago");
                            e.Canceled = true;
                            return;
                        }
                    }
                    if (!_PermisoEliminar)
                    {
                        Alerta("No tiene permiso para eliminar el registro");
                        e.Canceled = true;
                        return;
                    }
                    Baja(gi.Cells[2].Text.ToUpper());
                    break;

                case "Imprimir":
                    statusPosibles = new List <string>()
                    {
                        "C", "I", "B"
                    };
                    if (!statusPosibles.Contains(gi.Cells[8].Text.ToUpper()))
                    {
                        Alerta("El pago se encuentra en estatus no válido para realizar la impresión");
                        e.Canceled = true;
                        return;
                    }
                    if (!_PermisoImprimir)
                    {
                        Alerta("No tiene permiso para imprimir el registro");
                        e.Canceled = true;
                        return;
                    }
                    Imprimir(gi.Cells[2].Text.ToUpper(), gi.Cells[4].Text.ToUpper().Replace("&NBSP;", ""), gi.Cells[6].Text.ToUpper(), gi.Cells[14].Text.ToUpper());
                    break;

                case "Editar":
                    string Id_Emp = sesion.Id_Emp.ToString();
                    string Id_Cd  = sesion.Id_Cd_Ver.ToString();
                    statusPosibles = new List <string>()
                    {
                        "C"
                    };
                    if (!statusPosibles.Contains(gi.Cells[8].Text.ToUpper()))
                    {
                        RAM1.ResponseScripts.Add("OpenAlert('El pago se encuentra en estatus no válido para realizar la modificación','" + Id_Emp + "','" + Id_Cd + "','" + gi.Cells[2].Text + "','False','False')");
                        //Alerta("El pago se encuentra en estatus no válido para realizar la modificación");
                        e.Canceled = true;
                        return;
                    }
                    if (!Convert.ToBoolean(gi.Cells[10].Text))
                    {
                        if (Convert.ToDateTime(gi.Cells[12].Text) < fechaPeriodoInicio || Convert.ToDateTime(gi.Cells[12].Text) > fechaPeriodoFinal)
                        {
                            RAM1.ResponseScripts.Add("OpenAlert('El pago no se encuentra en el periodo actual','" + Id_Emp + "','" + Id_Cd + "','" + gi.Cells[2].Text + "','False','False')");
                            //Alerta("El pago no se encuentra en el periodo actual");
                            e.Canceled = true;
                            return;
                        }
                        if (!_PermisoModificar)
                        {
                            RAM1.ResponseScripts.Add("OpenAlert('No tiene permiso para modificar el registro','" + Id_Emp + "','" + Id_Cd + "','" + gi.Cells[2].Text + "','False','False')");
                            //Alerta("No tiene permiso para modificar el registro");
                            e.Canceled = true;
                            return;
                        }
                        Session["PostBackPagos" + Session.SessionID] = false;
                        RAM1.ResponseScripts.Add("return AbrirVentana_Pagos_Edicion('" + gi.Cells[2].Text + "','" + _PermisoGuardar + "','" + _PermisoModificar + "')");
                    }
                    else
                    {
                        CN_CapPago cn_cappago = new CN_CapPago();
                        Pago       pag        = new Pago();
                        pag.Id_Emp    = sesion.Id_Emp;
                        pag.Id_Cd     = sesion.Id_Cd_Ver;
                        pag.Pag_Fecha = Convert.ToDateTime(gi.Cells[12].Text);
                        int verificador = 0;
                        cn_cappago.PermitirExtemporaneo(pag, sesion.Emp_Cnx, ref verificador);
                        if (!Convert.ToBoolean(verificador))
                        {
                            RAM1.ResponseScripts.Add("OpenAlertExp('Ya se ha efectuado el cierre extemporáneo de pagos, no es posible modificar el pago','" + Id_Emp + "','" + Id_Cd + "','" + gi.Cells[2].Text + "','False','False')");
                            //Alerta("El pago no se encuentra en el periodo actual");
                            e.Canceled = true;
                            return;
                        }

                        if (!_PermisoModificar)
                        {
                            RAM1.ResponseScripts.Add("OpenAlertExp('No tiene permiso para modificar el registro','" + Id_Emp + "','" + Id_Cd + "','" + gi.Cells[2].Text + "','False','False')");
                            //Alerta("No tiene permiso para modificar el registro");
                            e.Canceled = true;
                            return;
                        }
                        Session["PostBackPagos" + Session.SessionID] = false;
                        RAM1.ResponseScripts.Add("return AbrirVentana_PagosExp_Edicion('" + gi.Cells[2].Text + "','" + _PermisoGuardar + "','" + _PermisoModificar + "')");
                    }

                    break;
                }
            }
            catch (Exception ex)
            {
                ErrorManager(ex, new System.Diagnostics.StackTrace().GetFrame(0).GetMethod().Name);
            }
        }