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