protected void ddlCuentaBancaria_DataBound(object sender, EventArgs e)
 {
     try
     {
         parametros = Session["Parametros"] as Parametros;
         AppSettingsReader settings  = new AppSettingsReader();
         short             modulo    = Convert.ToSByte(settings.GetValue("Modulo", typeof(string)).ToString());
         string            parametro = parametros.ValorParametro(modulo, "Cuenta Sobregiro");
         //if (ddlCuentaBancaria.SelectedItem == null) return;
         if (ddlCuentaBancaria.SelectedItem.Text.Trim().Equals(parametro.Trim()))
         {
             tabNuevaConciliacion.Tabs[2].Visible = false;
             btnGuardarConciliacionTipo2.Visible  = true;
             btnSiguienteExterno.Visible          = false;
         }
         else
         {
             tabNuevaConciliacion.Tabs[2].Visible = true;
             btnGuardarConciliacionTipo2.Visible  = false;
             btnSiguienteExterno.Visible          = true;
         }
     }
     catch (NullReferenceException ex)
     {
         (Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).ImplementadorMensajes.MostrarMensaje("El Banco Seleccionado no tiene asociada ninguna Cuenta Bancaria.");
     }
     catch (Exception ex)
     {
         (Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).ImplementadorMensajes.MostrarMensaje("Error Cargar Cuenta Bancaria:\n" + ex.Message);
     }
 }
    protected void ddlTipoConciliacion_SelectedIndexChanged(object sender, EventArgs e)
    {
        usuario    = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
        parametros = Session["Parametros"] as Parametros;
        AppSettingsReader settings  = new AppSettingsReader();
        short             modulo    = Convert.ToSByte(settings.GetValue("Modulo", typeof(string)).ToString());
        string            parametro = parametros.ValorParametro(modulo, "Cuenta Sobregiro");

        if (ddlTipoConciliacion.SelectedItem.Text.Equals("CONCILIACION DE INGRESOS POR COBRANZA A ABONAR") || ddlCuentaBancaria.SelectedItem.Text.Trim().Equals(parametro.Trim()) || ddlTipoConciliacion.SelectedItem.Text.Equals("CONCILIACION DE INGRESOS Y EGRESOS SIN ARCHIVO"))
        //if (ddlTipoConciliacion.SelectedItem.Text.Equals("CONCILIACION DE INGRESOS POR COBRANZA A ABONAR"))
        {
            tabNuevaConciliacion.Tabs[2].Visible = false;
            btnGuardarConciliacionTipo2.Visible  = true;
            btnSiguienteExterno.Visible          = false;
        }
        else
        {
            tabNuevaConciliacion.Tabs[2].Visible = true;
            btnGuardarConciliacionTipo2.Visible  = false;
            btnSiguienteExterno.Visible          = true;
        }

        if (ddlTipoConciliacion.SelectedItem.Text.Equals("CONCILIACION DE INGRESOS POR COBRANZA A ABONAR PEDIDO"))
        {
            tabNuevaConciliacion.Tabs[2].Visible = false;
            btnGuardarConciliacionTipo2.Visible  = true;
            btnSiguienteExterno.Visible          = false;
        }
    }
    protected void btnAplicarPagos_Click(object sender, ImageClickEventArgs e)
    {
        try
        {
            movimientoCajaAlta = HttpContext.Current.Session["MovimientoCaja"] as MovimientoCaja;
            //Leer la InfoActual Conciliacion
            cargarInfoConciliacionActual();
            if (movimientoCajaAlta != null && movimientoCajaAlta.Caja != 0)
            {
                if (grvPagos.Rows.Count > 0)
                {
                    if (movimientoCajaAlta.Guardar())
                    {
                        lanzarReporteComprobanteDeCaja(movimientoCajaAlta);
                        Consulta_MovimientoCaja(corporativoConciliacion, sucursalConciliacion, añoConciliacion, mesConciliacion, folioConciliacion);
                        Consulta_TransaccionesAPagar(corporativoConciliacion, sucursalConciliacion, añoConciliacion, mesConciliacion, folioConciliacion);
                        GenerarTablaReferenciasAPagarPedidos();
                        LlenaGridViewReferenciasPagos();

                        parametros = (SeguridadCB.Public.Parametros)HttpContext.Current.Session["Parametros"];
                        string aplicacobranza = parametros.ValorParametro(30, "AplicaCobranza");
                        if (aplicacobranza == "1")
                        {
                            usuario = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
                            string strUsuario = usuario.IdUsuario.Trim();

                            List <ReferenciaConciliadaPedido> _listaReferenciaConciliadaPagos = (List <ReferenciaConciliadaPedido>)HttpContext.Current.Session["LIST_REF_PAGAR"];

                            Cobranza cobranza = Conciliacion.RunTime.App.Cobranza.CrearObjeto();
                            /*Charcar si quedaran como constantes*/
                            cobranza.FCobranza      = DateTime.Now;
                            cobranza.UsuarioCaptura = strUsuario;
                            cobranza.ListaReferenciaConciliadaPedido = _listaReferenciaConciliadaPagos;
                            int idCobranza = cobranza.GuardarProcesoCobranza();
                            lanzarReporteCobranza(idCobranza);
                        }
                    }
                    else
                    {
                        App.ImplementadorMensajes.MostrarMensaje("Error al aplicar el pago de los pedidos. Verifique");
                    }
                }
                else
                {
                    App.ImplementadorMensajes.MostrarMensaje("No existe ningun pedidos para aplicar pagos. Verifique");
                }
            }
            else
            {
                App.ImplementadorMensajes.MostrarMensaje("No puede aplicar pagos. Verifique: Caja 0 no existe");
            }
        }
        catch (Exception ex)
        {
            App.ImplementadorMensajes.MostrarMensaje(ex.Message);
        }
    }
    /// <summary>
    /// Consulta si la cuenta seleccionado pertenece a las cuentas que solo
    /// requieren el Archivo Externo para crear la Conciliacion

    public bool CuentaSoloExternoConciliacion(string cuentaBancaria)
    {
        parametros = Session["Parametros"] as Parametros;
        AppSettingsReader settings  = new AppSettingsReader();
        short             modulo    = Convert.ToSByte(settings.GetValue("Modulo", typeof(string)).ToString());
        string            parametro = parametros.ValorParametro(modulo, "Cuentas Solo Externos");

        return(Array.FindAll(parametro.Split(new[] { ',' }), s => s.Trim().Equals(cuentaBancaria.Trim())).Length > 0);
        //return parametro.Split(new Char[] {','}).ToString().Contains(cuentaBancaria);
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        seguridad = new SeguridadCB.Seguridad();
        try
        {
            if (HttpContext.Current.Request.UrlReferrer != null)
            {
                if ((!HttpContext.Current.Request.UrlReferrer.AbsoluteUri.Contains("SitioConciliacion")) || (HttpContext.Current.Request.UrlReferrer.AbsoluteUri.Contains("Acceso.aspx")))
                {
                    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
                    HttpContext.Current.Response.Cache.SetAllowResponseInBrowserHistory(false);
                    Response.Cache.SetExpires(DateTime.Now);
                }
            }
            parametros = (SeguridadCB.Public.Parametros)HttpContext.Current.Session["Parametros"];
            AppSettingsReader settings = new AppSettingsReader();
            NumMesesAnterior = parametros.ValorParametro(Convert.ToSByte(settings.GetValue("Modulo", typeof(sbyte))), "NunMesesAnterior");
            if (!IsPostBack)
            {
                objApp = new Conciliacion.RunTime.App();
                Session["nuevaconciliacionobjApp"] = objApp;
                (Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).ImplementadorMensajes.ContenedorActual = this;

                usuario = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
                if (ddlEmpresa.Items.Count == 0)
                {
                    Carga_Corporativo();
                }
                Carga_Banco(Convert.ToInt32(ddlEmpresa.SelectedItem.Value));
                Carga_CuentaBancaria(Convert.ToInt32(ddlEmpresa.SelectedItem.Value),
                                     Convert.ToSByte(ddlBanco.SelectedItem.Value));
                Carga_TipoConciliacion(usuario.IdUsuario);
                Carga_GrupoConciliacion(Consultas.ConfiguracionGrupo.ConAccesoTotal, usuario.IdUsuario);
                Carga_SucursalCorporativo(Conciliacion.RunTime.ReglasDeNegocio.Consultas.ConfiguracionIden0.Sin0,
                                          Convert.ToInt32(ddlEmpresa.SelectedItem.Value));
                //Inhabilitar las pestaña de EXTERNOS E INTERNOS al cargar la VISTA
                tabNuevaConciliacion.Tabs[1].Enabled = false;
                tabNuevaConciliacion.Tabs[2].Enabled = false;
                Carga_TipoFuenteInformacionExternoInterno(
                    Conciliacion.RunTime.ReglasDeNegocio.Consultas.ConfiguracionTipoFuente.TipoFuenteInformacionExterno);
                Carga_TipoFuenteInformacionExternoInterno(
                    Conciliacion.RunTime.ReglasDeNegocio.Consultas.ConfiguracionTipoFuente.TipoFuenteInformacionInterno);
            }
        }
        catch (Exception ex)
        {
            (Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).ImplementadorMensajes.MostrarMensaje("Error: Cargar Vista" + ex.Message);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Conciliacion.RunTime.App.ImplementadorMensajes.ContenedorActual = this;
        try
        {
            if (HttpContext.Current.Request.UrlReferrer != null)
            {
                if ((!HttpContext.Current.Request.UrlReferrer.AbsoluteUri.Contains("SitioConciliacion")) || (HttpContext.Current.Request.UrlReferrer.AbsoluteUri.Contains("Acceso.aspx")))
                {
                    HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.ServerAndNoCache);
                    HttpContext.Current.Response.Cache.SetAllowResponseInBrowserHistory(false);
                }
            }
            if (!Page.IsPostBack)
            {
                usuario    = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
                parametros = (SeguridadCB.Public.Parametros)HttpContext.Current.Session["Parametros"];

                corporativoConciliacion = Convert.ToInt32(Request.QueryString["Corporativo"]);
                sucursalConciliacion    = Convert.ToInt16(Request.QueryString["Sucursal"]);
                añoConciliacion         = Convert.ToInt32(Request.QueryString["Año"]);
                folioConciliacion       = Convert.ToInt32(Request.QueryString["Folio"]);
                mesConciliacion         = Convert.ToSByte(Request.QueryString["Mes"]);
                tipoConciliacion        = Convert.ToSByte(Request.QueryString["TipoConciliacion"]);
                LlenarBarraEstado();
                Carga_FormasConciliacion(tipoConciliacion);
                cargar_ComboCampoFiltroDestino(tipoConciliacion, rdbFiltrarEn.SelectedItem.Value);
                enlazarCampoFiltrar();
                activarControles(tipoCampoSeleccionado());
                //CARGAR LAS TRANSACCIONES CONCILIADAS POR EL CRITERIO DE AUTOCONCILIACIÓN
                Consulta_MovimientoCaja(corporativoConciliacion, sucursalConciliacion, añoConciliacion, mesConciliacion, folioConciliacion);
                Consulta_TransaccionesAPagar(corporativoConciliacion, sucursalConciliacion, añoConciliacion, mesConciliacion, folioConciliacion);
                GenerarTablaReferenciasAPagarPedidos();
                LlenaGridViewReferenciasPagos();

                tdExportar.Attributes.Add("class", "iconoOpcion bg-color-grisClaro02");
                imgExportar.Enabled = false;
            }
        }
        catch (Exception ex) { App.ImplementadorMensajes.MostrarMensaje(ex.Message); }
    }
    protected void btnGuardarConciliacion_Click(object sender, EventArgs e)
    {
        usuario    = (SeguridadCB.Public.Usuario)HttpContext.Current.Session["Usuario"];
        parametros = Session["Parametros"] as Parametros;
        AppSettingsReader settings  = new AppSettingsReader();
        short             modulo    = Convert.ToSByte(settings.GetValue("Modulo", typeof(string)).ToString());
        string            parametro = parametros.ValorParametro(modulo, "Cuenta Sobregiro");

        if (ddlTipoConciliacion.SelectedItem.Text.Equals("CONCILIACION DE INGRESOS POR COBRANZA A ABONAR PEDIDO") || ddlTipoConciliacion.SelectedItem.Text.Equals("CONCILIACION DE INGRESOS Y EGRESOS SIN ARCHIVO") || ddlTipoConciliacion.SelectedItem.Text.Equals("CONCILIACION DE INGRESOS POR COBRANZA A ABONAR") || ddlCuentaBancaria.SelectedItem.Text.Trim().Equals(parametro.Trim()))
        {
            if (AgregarArchivoExterno())
            {
                if (GuardarConciliacionSinInterno(usuario.IdUsuario))
                {
                    limpiarVariablesSession();
                    Response.Redirect("~/Inicio.aspx");
                }
            }
        }
        else
        {
            if ((Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).Conciliacion.ListaArchivos.Count < 1)
            {
                (Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).ImplementadorMensajes.MostrarMensaje("Aún no ha agregado ningún archivo interno.");
            }
            else
            {
                if (AgregarArchivoExterno())
                {
                    if (GuardarConciliacion(usuario.IdUsuario))
                    {
                        (Session["nuevaconciliacionobjApp"] as Conciliacion.RunTime.App).Conciliacion.ListaArchivos.Clear();
                        limpiarVariablesSession();
                        Response.Redirect("~/Inicio.aspx");
                    }
                }
            }
        }
    }
    protected void btnEntrar_Click1(object sender, EventArgs e)
    {
        Page.Validate();
        if (Page.IsValid)
        {
            System.Threading.Thread.Sleep(2000);
            ConfiguraConexion();
            Session["AppCadenaConexion"] = cn.ConnectionString;
            SeguridadCB.Seguridad seguridad = new SeguridadCB.Seguridad();
            //seguridad.Conexion = cn;
            try
            {
                if (seguridad.ExisteUsuarioActivo(txtUsuario.Text.Trim()))
                {
                    this.usuario = seguridad.DatosUsuario(txtUsuario.Text.Trim());
                    if (seguridad.ComparaClaves(txtClave.Text.Trim().ToUpper(), usuario))
                    {
                        AppSettingsReader settings = new AppSettingsReader();
                        this.modulo = settings.GetValue("Modulo", typeof(string)).ToString();

                        this.modulos     = seguridad.Modulos(this.usuario.IdUsuario);
                        this.operaciones = seguridad.Operaciones(modulo, this.usuario.IdUsuario);
                        if (this.operaciones.TieneAcceso)
                        {
                            this.parametros = seguridad.Parametros(modulo, this.usuario.Corporativo, this.usuario.Sucursal);
                            Session.Add("Operaciones", this.operaciones);
                            Session.Add("Usuario", this.usuario);
                            Session.Add("Conexion", this.cn);
                            Session.Add("Parametros", this.parametros);
                            Session.Add("PiePagina", this.usuario.Nombre.Trim() + " (" + this.usuario.IdUsuario + ") conectado a [" + this.cn.DataSource + "]." + this.cn.Database);
                            Response.Redirect("~/Inicio.aspx", true);
                        }
                        else
                        {
                            Mensaje("Usted no tiene acceso al módulo.");
                            txtUsuario.Focus();
                        }
                    }
                    else
                    {
                        Mensaje("La clave es incorrecta, verifique.");
                        txtClave.Focus();
                    }
                }
                else
                {
                    Mensaje("El usuario no existe o se encuentra inactivo.");
                    txtUsuario.Focus();
                }
            }
            catch (SqlException ex)
            {
                switch (ex.Number)
                {
                case 18452:
                case 18456:
                    Mensaje("No se ha logrado abrir la conexión, revise el nombre de usuario y la contraseña.");
                    txtUsuario.Focus();
                    break;

                case 4060:
                    Mensaje("La base de datos no está disponible, comuníquelo al área de sistemas.");
                    break;

                case 17:
                    Mensaje("El servidor no está disponible, comuníquelo al área de sistemas.");
                    break;

                default:
                    Mensaje("Ha ocurrido el siguiente error: " + ex.Message);
                    break;
                }
            }
            catch (Exception ex)
            {
                Mensaje("Ha ocurrido el siguiente error: " + ex.Message);
            }
        }
    }