using Exferia_Aplicacion.General;
using Exferia_Aplicacion.ListadosSeleccion_Generales;
using Exferia_Aplicacion.Visualizacion;
using Exferia_Controles;
using Exferia_EntityFramework;
using Exferia_Formularios;
using Exferia_General;
using Exferia_Informes._0_Modelos;
using Exferia_Informes._3_Vistas.Controladoras;
using Exferia_Informes._3_Vistas.Listados;
using Exferia_Informes._3_Vistas.ListadosSeleccion;
using Exferia_Informes.General;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using static Exferia_Aplicacion.General.Enumerados;
using static Exferia_Informes.General.Variables_Informes;

namespace Exferia_Informes._3_Vistas
{
    public partial class P_ConfiguracionVencimiento_Socios : Exferia_Formularios.P_Base_Mantenimientos
    {
        #region Variables Generales
        private P_ConfiguracionVencimiento_Socios_Controladora g_obj_Controladora;

        private bool g_bol_ConstructorPantalla_Terminado_Correctamente = true;
        public PRV_OpcionesDetalle g_mdl_PRV_OpcionesDetalle = null;

        internal List<INTERNO_Permisos_Modelo> g_lst_INTERNO_Permisos_Modelo = null;

        //Variables paginador......................................................................................
        public Funciones_Paginador g_obj_Funciones_Paginador;
        private System.Windows.Forms.Timer g_timer_Paginar = new System.Windows.Forms.Timer();

        #endregion

        #region Objetos en Pantalla
        //Exferia_Label
        internal Exferia_Label Exferia_Label_Codigo { get{ return ex_lbl_P_ConfiguracionVencimiento_Socios_Codigo; } }
        internal Exferia_Label Exferia_Label_Descripcion { get{ return ex_lbl_P_ConfiguracionVencimiento_Socios_Descripcion; } }
        internal Exferia_Label Exferia_Label_ColumnaIzquierda { get{ return ex_lbl_P_ConfiguracionVencimiento_Socios_ColumnaIzquierda_AltaBaja; } }
        internal Exferia_Label Exferia_Label_ColumnaDerecha { get{ return ex_lbl_P_ConfiguracionVencimiento_Socios_ColumnaDerecha_AltaBaja; } }

        //Exferia_TextBox
        internal Exferia_TextBox Exferia_TextBox_Codigo { get{ return ex_txt_P_ConfiguracionVencimiento_Socios_Codigo; } }
        internal Exferia_TextBox Exferia_TextBox_Descripcion { get{ return ex_txt_P_ConfiguracionVencimiento_Socios_Descripcion; } }
        internal Exferia_TextBox Exferia_TextBox_Empresa { get { return ex_txt_P_ConfiguracionVencimiento_Socios_Empresa; } }
        internal Exferia_TextBox Exferia_TextBox_Presidente_Nombre { get { return ex_txt_P_ConfiguracionVencimiento_Socios_Presidente_Nombre; } }
        internal Exferia_TextBox Exferia_TextBox_Presidente_Cargo { get { return ex_txt_P_ConfiguracionVencimiento_Socios_Presidente_Cargo; } }
        internal Exferia_TextBox Exferia_TextBox_Responsable_Nombre { get { return ex_txt_P_ConfiguracionVencimiento_Socios_Responsable_Nombre; } }
        internal Exferia_TextBox Exferia_TextBox_Responsable_Cargo { get { return ex_txt_P_ConfiguracionVencimiento_Socios_Responsable_Cargo; } }
        
        //Exferia_TextboxHTML
        internal Exferia_TextboxHTML Exferia_TextboxHTML_ColumnaIzquierda_AltaBaja { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaIzquierda_AltaBaja; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_ColumnaDerecha_AltaBaja { get{return ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaDerecha_AltaBaja; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_ColumnaIzquierda_Permanencia { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaIzquierda_Permanencia; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_ColumnaDerecha_Permanencia { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaDerecha_Permanencia; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_ColumnaIzquierda_Sancion { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaIzquierda_Sancion; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_ColumnaDerecha_Sancion { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaDerecha_Sancion; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_CartaInicial_Texto { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_CartaInicial_Texto; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_CartaInformativaCargoCuenta_Texto { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_CartaInformativaCargoCuenta_Texto; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_CartaNotificacionTasaAnual_Texto { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_CartaNotificacionTasaAnual_Texto; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_CartaBajaConDomiciliacion_Texto { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_CartaBajaConDomiciliacion_Texto; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_CartaBajaSinDomiciliacion_Texto { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_CartaBajaSinDomiciliacion_Texto; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_ProvidenciaApremioAEAT_Texto { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_ProvidenciaApremioAEAT_Texto; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_ContraportadaProvidenciaApremioAEAT_Texto { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_ContraportadaProvidenciaApremioAEAT_Texto; } }
        internal Exferia_TextboxHTML Exferia_TextboxHTML_Inferior_Texto { get { return ex_txtHTML_P_ConfiguracionVecimiento_Socios_Inferior_Texto; } }

        //PictureBox
        internal PictureBox PictureBox_LogoSuperiorIzquierda { get{ return pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda; } }
        internal PictureBox PictureBox_LogoSuperiorDerecha { get { return pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha; } }
        internal PictureBox PictureBox_LogoInferior { get { return pcb_P_ConfiguracionVencimiento_Socios_LogoInferior; } }
        internal PictureBox PictureBox_Responsable_Firma { get { return pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma; } }
        internal PictureBox PictureBox_Presidente_Firma { get { return pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma; } }
        internal PictureBox PictureBox_ReversoLogoSuperior { get { return pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior; } }

        //Exferia_F3_SoloSeleccion
        internal Exferia_F3_SoloSeleccion Exferia_F3_Soloseleccion_Ejercicio { get{ return ex_usc_F3_SoloSeleccion_P_ConfiguracionVencimiento_Socios_Ejercicio; } }

        //Exferia_Paginador
        internal Exferia_Paginador Exferia_Paginador { get{ return ex_Paginador; } }

        #endregion

        #region Constructor
        public P_ConfiguracionVencimiento_Socios(INTERNO_ValoresGenerales_Modelo _mdl_INTERNO_ValoresGenerales_Modelo, DateTime _dtt_FechaTrabajo, PRV_OpcionesDetalle _mdl_PRV_OpcionesDetalle)
        {
            InitializeComponent();

            Repintar.Empezar(this);

            CheckForIllegalCrossThreadCalls = false;

            //Empresa seleccionada y fecha de trabajo
            P_Base_ValoresGenerales = _mdl_INTERNO_ValoresGenerales_Modelo;
            P_Base_FechaTrabajo = _dtt_FechaTrabajo;

            //Instanciar Controladora
            g_obj_Controladora = new P_ConfiguracionVencimiento_Socios_Controladora(this);

            //Datos de Opciones detalle
            g_mdl_PRV_OpcionesDetalle = _mdl_PRV_OpcionesDetalle;

            //Buscar los Permisos
            g_lst_INTERNO_Permisos_Modelo = Datos_Generales.Permisos_Buscar(g_mdl_PRV_OpcionesDetalle.opcion);

            //Poner los Botones que no se Spueden poner bloqueados o de solo lectura
            ex_btn_P_ConfiguracionVencimiento_Borrar.Exferia_Button_Bloqueable = false;
            ex_btn_P_ConfiguracionVencimiento_Grabar.Exferia_Button_Bloqueable = false;

            //Mirar si hay que bloquear los controles, si solo puede ver los datos
            if ((P_Base_TipoAperturaPantalla != 0 && Datos_Generales.Permisos_Comprobar(g_mdl_PRV_OpcionesDetalle.opcion, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Modificar, false)) == false)
            {
                //Bloqueo los Controles
                SoloLectura.Empezar(this,true);
            }

            //Titulo de la Pantalla .............................................................................
            P_Base_TituloPantalla = _mdl_PRV_OpcionesDetalle.descripcion_TituloMantenimiento;

            try
            {

                //Tipo de campo Codigo, poner como numérico o texto ...............
                if (Variables.G_LST_GEN_CONFIGURACION_CAMPOCODIGO != null)
                {
                    //Si no existe es Text
                    if (Variables.G_LST_GEN_CONFIGURACION_CAMPOCODIGO.Where(m => m.nombreCampoCodigo.Equals(nameof(INF_ConfiguracionVencimientos_Socios.codigo)) && m.opcion.Equals(g_mdl_PRV_OpcionesDetalle.opcion)).FirstOrDefault() != null)
                    {
                        ex_txt_P_ConfiguracionVencimiento_Socios_Codigo.Exferia_TextBox_Tipos = G_ENUM_TEXTBOX_TIPODATO.Digitos;
                        ex_txt_P_ConfiguracionVencimiento_Socios_Codigo.Exferia_TextBox_Tipo_Decimal_Enteros = ex_txt_P_ConfiguracionVencimiento_Socios_Codigo.Exferia_TextBox_MaxLength;

                        g_obj_Controladora.g_bol_CampoCodigo_Numerico = true;
                    }
                }
                //................................................................................

                // Label con Empresa Seleccionada 
                if (P_Base_ValoresGenerales != null)
                {
                    try
                    {
                        P_Base_Mantenimientos_InformacionEmpresaSeleccionada = P_Base_ValoresGenerales.str_Empresa_Descripcion + " - " +
                                                                "(" + P_Base_FechaTrabajo.ToString("dd/MM/yyyy") + ")";
                    }
                    catch (Exception ex)
                    {
                        //No se muestra mensaje pero se guarda en el log
                        Control_Errores.Errores_Log("", ex, nameof(P_ConfiguracionVencimiento_Socios) + "/" + nameof(P_ConfiguracionVencimiento_Socios));
                    }
                }
                //....................................................................................................

                //Bloquear pantalla hasta que termine la carga por defecto .....
                Enabled = false;
                //.............................................................

                g_obj_Funciones_Paginador = new Funciones_Paginador();

                //Rellenar para los F3 .......................................

                //F3_Predefinido_Fichero
                ex_usc_F3_SoloSeleccion_P_ConfiguracionVencimiento_Socios_Ejercicio.Exferia_F3_SoloSeleccion_PRINCIPAL_Opcion_BuscarDatos = Variables.G_STR_OPCION_GEN_EJERCICIOACTIVO;
                ex_usc_F3_SoloSeleccion_P_ConfiguracionVencimiento_Socios_Ejercicio.Exferia_F3_SoloSeleccion_PantallaContenedora = this;
            }
            catch (Control_Errores)
            {
                g_bol_ConstructorPantalla_Terminado_Correctamente = false;
            }
            catch (Exception ex)
            {
                g_bol_ConstructorPantalla_Terminado_Correctamente = false;

                //No se muestra mensaje pero se guarda en el log
                Control_Errores.Errores_Log("", ex, nameof(P_ConfiguracionVencimiento_Socios) + "/" + nameof(P_ConfiguracionVencimiento_Socios));
            }
            finally
            {
                //Bloquear pantalla hasta que termine la carga por defecto .....
                Enabled = true;
                //.............................................................
            }
        }
        #endregion

        #region Inicio pantalla
        private void P_ConfiguracionVencimiento_Socios_Load(object sender, EventArgs e)
        {
            try
            {
                //Configurar el Timer para Paginacion ###############################################################
                g_timer_Paginar.Interval = 1000;
                g_timer_Paginar.Tick += delegate (object s, EventArgs ee)
                {
                    g_timer_Paginar.Stop();
                    try
                    {
                        g_obj_Controladora.RecargarDatos();
                    }
                    catch (Control_Errores)
                    {
                        Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
                        Salir_P_Base();
                    }

                };
            }
            catch (Exception ex)
            {
                //No se muestra mensaje pero se guarda en el log
                Control_Errores.Errores_Log("", ex, nameof(P_ConfiguracionVencimiento_Socios) + "/" + nameof(P_ConfiguracionVencimiento_Socios_Load));

                g_bol_ConstructorPantalla_Terminado_Correctamente = false;
            }
        }
        private void P_ConfiguracionVencimiento_Socios_Shown(object sender, EventArgs e)
        {
            try
            {
                if (g_bol_ConstructorPantalla_Terminado_Correctamente)
                {
                    // Si el Tipo de Apertura de Pantalla es Añadir(g_int_tipoAperturaPantalla = 0), se desactivan los botones correspondientes
                    // Añadir
                    if (this.P_Base_TipoAperturaPantalla == 0)
                    {
                        P_Base_TituloPantalla = P_Base_TituloPantalla + " - Añadir";

                        ActivarBotones(false);

                        //Se cambia el valor de la variable para no salte el evento de se modifico algo
                        g_obj_Controladora.g_bol_Termino_CargaDatos_Inicial = false;

                        ex_txt_P_ConfiguracionVencimiento_Socios_Codigo.Exferia_TextBox_Foco();

                        g_obj_Controladora.g_bol_Termino_CargaDatos_Inicial = true;
                    }
                    //Modificar
                    else
                    {
                        ActivarBotones(true);

                        //Paginacion
                        if (P_Base_PantallaOrigen != null &&
                           P_Base_PantallaOrigen.P_Base_Objetos_Filtrados != null &&
                           P_Base_PantallaOrigen.P_Base_Objetos_Filtrados.Count > 0)
                        {
                            g_obj_Funciones_Paginador.Listado_ARecorrer(P_Base_PantallaOrigen.P_Base_Objetos_Filtrados.ToList(), 1);

                            // Asignando las paginas totales
                            Exferia_Paginador.PaginasTotales = g_obj_Funciones_Paginador.Numero_Paginas_Totales;
                        }
                        else
                        {
                            Exferia_Paginador.Visible = false;
                        }

                        g_obj_Controladora.RecargarDatos();
                    }
                }
                else
                {
                    Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
                    Salir_P_Base();
                }
            }
            catch (Control_Errores)
            {
                Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
                Salir_P_Base();
            }
            catch (Exception ex)
            {
                //No se muestra mensaje pero se guarda en el log
                Control_Errores.Errores_Log("", ex, nameof(P_ConfiguracionVencimiento_Socios) + "/" + nameof(P_ConfiguracionVencimiento_Socios_Shown));

                Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
                Salir_P_Base();
            }
        }
        private void ActivarBotones(bool _bol_Activar)
        {
            if (Exferia_Paginador.Visible)
            {
                Exferia_Paginador.Visible = _bol_Activar;
            }

            if (ex_btn_P_ConfiguracionVencimiento_Borrar.Enabled)
            {
                ex_btn_P_ConfiguracionVencimiento_Borrar.Enabled = _bol_Activar;
            }
        }
        #endregion

        #region Procedimientos heredades de la clase P_Base
        public override void P_Base_ActualizarRegistro_ConObjeto(object _obj, G_ENUM_TIPOACCION _enum_TipoAccion)
        {
            try
            {
                //Poner como que se modifico algo
                P_Base_SeModificoDatosPantalla = true;
            }
            catch (Exception)
            {}
        }
        #endregion

        #region Boton Grabar,Borrar,BuscarCodigoSiguiente
        private void ex_btn_P_ConfiguracionVencimiento_Socios_Grabar_Click(object sender, EventArgs e)
        {
            Grabar();
        }
        private void Grabar()
        {
            if (//Añadir
                             (P_Base_TipoAperturaPantalla == 0 && Datos_Generales.Permisos_Comprobar(g_mdl_PRV_OpcionesDetalle.opcion, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Anadir, true)) ||
                             //Modificar
                             (P_Base_TipoAperturaPantalla != 0 && Datos_Generales.Permisos_Comprobar(g_mdl_PRV_OpcionesDetalle.opcion, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Modificar, true)))
            {
                g_obj_Controladora.GrabarDatos(true);
            }
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_Borrar_Click(object sender, EventArgs e)
        {
            Borrar();
        }
        private void Borrar()
        {
            if (Datos_Generales.Permisos_Comprobar(g_mdl_PRV_OpcionesDetalle.opcion, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Borrar, true))
            {
                g_obj_Controladora.BorrarDatos(true);
            }
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_BuscarCodigoSiguiente_Click(object sender, EventArgs e)
        {
            INTERNO_ValorDevuelto_Modelo mdl_INTERNO_ValorDevuelto_Modelo = g_obj_Controladora.Buscar_CodigoSiguiente();
            if (mdl_INTERNO_ValorDevuelto_Modelo.TodoCorrecto == false && mdl_INTERNO_ValorDevuelto_Modelo.Mensaje.Trim().Length > 0)
            {
                Mensajes.MostrarMensaje(mdl_INTERNO_ValorDevuelto_Modelo.Mensaje);
            }
            else
            {
                P_Base_SeModificoDatosPantalla = true;
            }
        }

        private void ex_btn_P_ConfiguracionVencimiento_CopiarDatosOtroAnyo_Click(object sender, EventArgs e)
        {
            Copiar_Datos_AnyoAnterior();
        }
        private void Copiar_Datos_AnyoAnterior()
        {
            try
            {
                List<dynamic> lst_Listado =g_obj_Controladora.Listado_ConfiguracionVencimiento_Socios();

                if (lst_Listado!=null && lst_Listado.Count>0)
                {
                    //Obtener el Listado .........................
                    ABS_ListadoSeleccion_INF_ConfiguracionVencimientos_Socios mdl_ABS_ListadoSeleccion_INF_ConfiguracionVencimientos_Socios = new ABS_ListadoSeleccion_INF_ConfiguracionVencimientos_Socios();

                    mdl_ABS_ListadoSeleccion_INF_ConfiguracionVencimientos_Socios.Registros = lst_Listado;

                    //Llamar al formualario de ListadoSeleccion
                    PE_Listados_SoloSeleccion frm_PE_Listados_SoloSeleccion = new PE_Listados_SoloSeleccion(mdl_ABS_ListadoSeleccion_INF_ConfiguracionVencimientos_Socios, P_Base_ValoresGenerales, P_Base_FechaTrabajo);
                    frm_PE_Listados_SoloSeleccion.ShowDialog();

                    //Si se selecciono algo lo cargo en le combo correspondiente
                    if (frm_PE_Listados_SoloSeleccion.g_dnm_RegistroSeleccionado != null)
                    {
                        INTERNO_INF_ConfiguracionVencimientos_Socios_Listado_Modelo mdl_INTERNO_INF_ConfiguracionVencimientos_Socios_Listado_Modelo = frm_PE_Listados_SoloSeleccion.g_dnm_RegistroSeleccionado;

                        g_obj_Controladora.Cargar_Datos_OtroAnyo(mdl_INTERNO_INF_ConfiguracionVencimientos_Socios_Listado_Modelo.id);
                    }
                }
            }
            catch (Control_Errores)
            {
                Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_GENERARDATOS());
            }
            catch (Exception ex)
            {
                Control_Errores.Errores_Log("", ex, nameof(P_ConfiguracionVencimiento_Socios) + "/" + nameof(Copiar_Datos_AnyoAnterior));
                Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_GENERARDATOS());
            }
        }
        #endregion

        #region Imagenes
        #region Logo Superior Izquierdo
        private void ex_btn_P_ConfiguracionVencimiento_BuscarImagen_LogoSuperiorIzquierda_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog obj_OpenFileDialog = new OpenFileDialog();
                obj_OpenFileDialog.Filter = "Archivos de Imagen JPG|*.jpg|Archivos de Imagen PNG|*.png|Todos los tipos|*.*";
                obj_OpenFileDialog.FileName = "";
                obj_OpenFileDialog.Title = "Buscar Imagen de Empresa";
                obj_OpenFileDialog.InitialDirectory = "C:\\";

                if (obj_OpenFileDialog.ShowDialog() == DialogResult.OK)
                {
                    if (pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image != null)
                    { pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image.Dispose(); }

                    g_obj_Controladora.g_img_Logo_Carta_SuperiorIzquierda_Real = Image.FromFile(obj_OpenFileDialog.FileName); ;

                    pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image = g_obj_Controladora.g_img_Logo_Carta_SuperiorIzquierda_Real;
                    pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Tag = obj_OpenFileDialog.FileName;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda, pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image);
                }
            }
            catch (Exception)
            { }
        }
        private void ex_btn_P_ConfiguracionVencimiento_CargarImagenAntigua_LogoSuperiorIzquierda_Click(object sender, EventArgs e)
        {
            try
            {

                if (g_obj_Controladora.g_arr_Logo_Carta_SuperiorIzquierda_Inicial != null)
                {
                    g_obj_Controladora.g_img_Logo_Carta_SuperiorIzquierda_Real = Funciones.Convertir_Arraybytes_Image(g_obj_Controladora.g_arr_Logo_Carta_SuperiorIzquierda_Inicial);

                    pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image = g_obj_Controladora.g_img_Logo_Carta_SuperiorIzquierda_Real;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda, pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image);
                }

            }
            catch (Exception)
            {}
        }
        private void ex_btn_P_ConfiguracionVencimiento_BorrarImagen_LogoSuperiorIzquierda_Click(object sender, EventArgs e)
        {
            pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image = null;
            pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Tag = "";
            g_obj_Controladora.g_img_Logo_Carta_SuperiorIzquierda_Real = null;
        }
        #endregion

        #region Logo Superior Derecha
        private void ex_btn_P_ConfiguracionVencimiento_BuscarImagen_LogoSuperiorDerecha_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog obj_OpenFileDialog = new OpenFileDialog();
                obj_OpenFileDialog.Filter = "Archivos de Imagen JPG|*.jpg|Archivos de Imagen PNG|*.png|Todos los tipos|*.*";
                obj_OpenFileDialog.FileName = "";
                obj_OpenFileDialog.Title = "Buscar Imagen de Empresa";
                obj_OpenFileDialog.InitialDirectory = "C:\\";

                if (obj_OpenFileDialog.ShowDialog() == DialogResult.OK)
                {
                    if (pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image != null)
                    { pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image.Dispose(); }

                    g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real = Image.FromFile(obj_OpenFileDialog.FileName);

                    pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image =g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real;
                    pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Tag = obj_OpenFileDialog.FileName;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha, pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image);
                }
            }
            catch (Exception)
            { }
        }
        private void ex_btn_P_ConfiguracionVencimiento_CargarImagenAntigua_LogoSuperiorDerecha_Click(object sender, EventArgs e)
        {
            try
            {

                if (g_obj_Controladora.g_arr_Logo_Carta_SuperiorDerecha_Inicial != null)
                {
                    g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real = Funciones.Convertir_Arraybytes_Image(g_obj_Controladora.g_arr_Logo_Carta_SuperiorDerecha_Inicial);

                    pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image = g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha, pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image);
                }
            }
            catch (Exception)
            {}
        }
        private void ex_btn_P_ConfiguracionVencimiento_BorrarImagen_LogoSuperiorDerecha_Click(object sender, EventArgs e)
        {
            pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image = null;
            pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Tag = "";
            g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real = null;
        }
        #endregion

        #region Logo Inferior 
        private void ex_btn_P_ConfiguracionVencimiento_BuscarImagen_Inferior_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog obj_OpenFileDialog = new OpenFileDialog();
                obj_OpenFileDialog.Filter = "Archivos de Imagen JPG|*.jpg|Archivos de Imagen PNG|*.png|Todos los tipos|*.*";
                obj_OpenFileDialog.FileName = "";
                obj_OpenFileDialog.Title = "Buscar Imagen ";
                obj_OpenFileDialog.InitialDirectory = "C:\\";

                if (obj_OpenFileDialog.ShowDialog() == DialogResult.OK)
                {
                    if (pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image != null)
                    { pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image.Dispose(); }

                    g_obj_Controladora.g_img_Logo_Carta_Inferior_Real = Image.FromFile(obj_OpenFileDialog.FileName);

                    pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image = g_obj_Controladora.g_img_Logo_Carta_Inferior_Real;
                    pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Tag = obj_OpenFileDialog.FileName;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_LogoInferior, pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image);
                }
            }
            catch (Exception)
            {}
        }
        private void ex_btn_P_ConfiguracionVencimiento_CargarImagenAntigua_Inferior_Click(object sender, EventArgs e)
        {
            try
            {

                if (g_obj_Controladora.g_arr_Logo_Carta_Inferior_Inicial != null)
                {
                    g_obj_Controladora.g_img_Logo_Carta_Inferior_Real = Funciones.Convertir_Arraybytes_Image(g_obj_Controladora.g_arr_Logo_Carta_Inferior_Inicial);

                    pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image = g_obj_Controladora.g_img_Logo_Carta_Inferior_Real;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_LogoInferior, pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image);
                }

            }
            catch (Exception)
            {}
        }
        private void ex_btn_P_ConfiguracionVencimiento_BorrarImagen_Inferior_Click(object sender, EventArgs e)
        {
            pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image = null;
            pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Tag = "";
            g_obj_Controladora.g_img_Logo_Carta_Inferior_Real = null;
        }
        #endregion

        #region Firma Presidente
        private void ex_btn_P_ConfiguracionVencimiento_Presidente_BuscarImagen_Firma_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog obj_OpenFileDialog = new OpenFileDialog();
                obj_OpenFileDialog.Filter = "Archivos de Imagen JPG|*.jpg|Archivos de Imagen PNG|*.png|Todos los tipos|*.*";
                obj_OpenFileDialog.FileName = "";
                obj_OpenFileDialog.Title = "Buscar Imagen ";
                obj_OpenFileDialog.InitialDirectory = "C:\\";

                if (obj_OpenFileDialog.ShowDialog() == DialogResult.OK)
                {
                    if (pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image != null)
                    { pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image.Dispose(); }

                    g_obj_Controladora.g_img_Firma_Presidente_Real = Image.FromFile(obj_OpenFileDialog.FileName);

                    pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image = g_obj_Controladora.g_img_Firma_Presidente_Real;
                    pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Tag = obj_OpenFileDialog.FileName;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma, pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image);
                }
            }
            catch (Exception)
            { }
        }
        private void ex_btn_P_ConfiguracionVencimiento_Presidente_CargarImagenAntigua_Firma_Click(object sender, EventArgs e)
        {
            try
            {

                if (g_obj_Controladora.g_arr_Firma_Presidente_Inicial != null)
                {
                    g_obj_Controladora.g_img_Firma_Presidente_Real = Funciones.Convertir_Arraybytes_Image(g_obj_Controladora.g_arr_Firma_Presidente_Inicial);

                    pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image = g_obj_Controladora.g_img_Firma_Presidente_Real;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma, pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image);
                }

            }
            catch (Exception)
            {}
        }
        private void ex_btn_P_ConfiguracionVencimiento_Presidente_BorrarImagen_Firma_Click(object sender, EventArgs e)
        {
            pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image = null;
            pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Tag = "";
            g_obj_Controladora.g_img_Firma_Presidente_Real = null;
        }
        #endregion

        #region Firma Responsable
        private void ex_btn_P_ConfiguracionVencimiento_Responsable_BuscarImagen_Firma_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog obj_OpenFileDialog = new OpenFileDialog();
                obj_OpenFileDialog.Filter = "Archivos de Imagen JPG|*.jpg|Archivos de Imagen PNG|*.png|Todos los tipos|*.*";
                obj_OpenFileDialog.FileName = "";
                obj_OpenFileDialog.Title = "Buscar Imagen ";
                obj_OpenFileDialog.InitialDirectory = "C:\\";

                if (obj_OpenFileDialog.ShowDialog() == DialogResult.OK)
                {
                    if (pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image != null)
                    { pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image.Dispose(); }

                    g_obj_Controladora.g_img_Firma_Responsable_Real = Image.FromFile(obj_OpenFileDialog.FileName);

                    pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image = g_obj_Controladora.g_img_Firma_Responsable_Real;
                    pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Tag = obj_OpenFileDialog.FileName;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma, pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image);
                }
            }
            catch (Exception)
            { }
        }

        private void ex_btn_P_ConfiguracionVencimiento_Responsable_CargarImagenAntigua_Firma_Click(object sender, EventArgs e)
        {
            try
            {

                if (g_obj_Controladora.g_arr_Firma_Responsable_Inicial != null)
                {
                    g_obj_Controladora.g_img_Firma_Responsable_Real = Funciones.Convertir_Arraybytes_Image(g_obj_Controladora.g_arr_Firma_Responsable_Inicial);

                    pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image = g_obj_Controladora.g_img_Firma_Responsable_Real;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma, pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image);
                }

            }
            catch (Exception)
            {}

        }
        private void ex_btn_P_ConfiguracionVencimiento_Responsable_BorrarImagen_Firma_Click(object sender, EventArgs e)
        {
            pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image = null;
            pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Tag = "";
            g_obj_Controladora.g_img_Firma_Responsable_Real = null;
        }
        #endregion

        #region Reverso Logo Superior
        private void ex_btn_P_ConfiguracionVencimiento_BuscarImagen_ReversoLogoSuperior_Click(object sender, EventArgs e)
        {
            try
            {
                OpenFileDialog obj_OpenFileDialog = new OpenFileDialog();
                obj_OpenFileDialog.Filter = "Archivos de Imagen JPG|*.jpg|Archivos de Imagen PNG|*.png|Todos los tipos|*.*";
                obj_OpenFileDialog.FileName = "";
                obj_OpenFileDialog.Title = "Buscar logo";
                obj_OpenFileDialog.InitialDirectory = "C:\\";

                if (obj_OpenFileDialog.ShowDialog() == DialogResult.OK)
                {
                    if (pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Image != null)
                    { pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Image.Dispose(); }

                    g_obj_Controladora.g_img_Logo_Reverso_Superior_Real = Image.FromFile(obj_OpenFileDialog.FileName);

                    pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Image = g_obj_Controladora.g_img_Logo_Reverso_Superior_Real;
                    pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Tag = obj_OpenFileDialog.FileName;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior, pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Image);
                }
            }
            catch (Exception)
            { }
        }

        private void ex_btn_P_ConfiguracionVencimiento_CargarImagenAntigua_ReversoLogoSuperior_Click(object sender, EventArgs e)
        {
            try
            {

                if (g_obj_Controladora.g_arr_Logo_Carta_SuperiorDerecha_Inicial != null)
                {
                    g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real = Funciones.Convertir_Arraybytes_Image(g_obj_Controladora.g_arr_Logo_Carta_SuperiorDerecha_Inicial);

                    pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image = g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real;

                    Funciones.PictureBox_RedimencionarImagen(pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha, pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image);
                }
            }
            catch (Exception)
            { }
        }

        private void ex_btn_P_ConfiguracionVencimiento_BorrarImagen_ReversoLogoSuperior_Click(object sender, EventArgs e)
        {
            pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Image = null;
            pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Tag = "";
            g_obj_Controladora.g_img_Logo_Reverso_Superior_Real = null;
        }
        #endregion

        #endregion

        #region Carta Inicial
        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaInicial_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(Exferia_TextboxHTML_CartaInicial_Texto,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaInicial_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_Carta_Inicial);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        #region Contraportada Alta/baja
        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_ColumnaIzquierda_AltaBaja_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaIzquierda_AltaBaja,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_ColumnaDerecha_AltaBaja_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaDerecha_AltaBaja,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_AltaBaja_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios=g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios!=null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios,G_ENUM_TIPOS_INFORMES.inf_Vencimientos_ZEC,0);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }

        #endregion

        #region Contraportada Permanencia
        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_ColumnaIzquierda_Permanencia_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaIzquierda_Permanencia,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_ColumnaDerecha_Permanencia_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaDerecha_Permanencia,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_Permanencia_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_Vencimientos_ZEC, 1);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        #region Contraportada Sancion
        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_ColumnaIzquierda_Sancion_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaIzquierda_Sancion, 0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_ColumnaDerecha_Sancion_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(ex_txtHTML_P_ConfiguracionVecimiento_Socios_Contraportada_ColumnaDerecha_Sancion, 0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_Contraportada_Sancion_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_Vencimientos_ZEC, 1);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        #region Carta Informacion Cargo Cuenta
        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaInformativaCargoCuenta_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(ex_txtHTML_P_ConfiguracionVecimiento_Socios_CartaInformativaCargoCuenta_Texto,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaInformativaCargoCuenta_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_Carta_InformacionCargoCuenta);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        #region Carta Notificacion Tasa Anual
        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaNotificacionTasaAnual_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(Exferia_TextboxHTML_CartaNotificacionTasaAnual_Texto,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaNotificacionTasaAnual_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_Carta_NotificacionTasaAnual);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        #region Carta Baja con Domiciliacion
        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaBajaConDomiciliacion_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(Exferia_TextboxHTML_CartaBajaConDomiciliacion_Texto,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaBajaConDomiciliacion_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_Carta_Baja_ConDomiciliacion);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        #region Carta  Baja sin Domiciliacion
        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaBajaSinDomiciliacion_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(Exferia_TextboxHTML_CartaBajaSinDomiciliacion_Texto,0);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_CartaBajaSinDomiciliacion_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_Carta_Baja_SinDomiciliacion);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        #region Providencia de Apremio AEAT
        private void ex_btn_P_ConfiguracionVencimiento_Socios_ProvidenciaApremioAEAT_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(Exferia_TextboxHTML_ProvidenciaApremioAEAT_Texto,1);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_ProvidenciaApremioAEAT_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_ProvidenciaApremioAEAT);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        #region Providencia de Apremio AEAT Reverso
        private void ex_btn_P_ConfiguracionVencimiento_Socios_ContraportadaProvidenciaApremioAEAT_AddVariables_Click(object sender, EventArgs e)
        {
            Add_Variables_TextHTML(Exferia_TextboxHTML_ContraportadaProvidenciaApremioAEAT_Texto, 2);
        }

        private void ex_btn_P_ConfiguracionVencimiento_Socios_ContraportadaProvidenciaApremioAEAT_Previsualizacion_Click(object sender, EventArgs e)
        {
            INF_ConfiguracionVencimientos_Socios mdl_INF_ConfiguracionVencimientos_Socios = g_obj_Controladora.Rellenar_Modelo();
            if (mdl_INF_ConfiguracionVencimientos_Socios != null)
            {
                PI_Previsualizacion frm_PI_Previsualizacion = new PI_Previsualizacion(mdl_INF_ConfiguracionVencimientos_Socios, G_ENUM_TIPOS_INFORMES.inf_ProvidenciaApremioAEAT);
                frm_PI_Previsualizacion.ShowDialog();
            }
        }
        #endregion

        private void Add_Variables_TextHTML(Exferia_TextboxHTML _ex_txthtml_Auxiliar,int _int_TipoVariables)
        {
            //Obtener el Listado .........................
            ABS_ListadoSeleccion_Variables mdl_ABS_ListadoSeleccion_Variables = new ABS_ListadoSeleccion_Variables();

            //Listado de Variables ...........................................................
            List<INTERNO_CodigoDescripcion_Modelo> lst_INTERNO_CodigoDescripcion_Modelo = new List<INTERNO_CodigoDescripcion_Modelo>();
            lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_FECHAACTUAL_LARGA);
            lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_EJERCICIOACTUAL);
            lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_EJERCICIOSIGUIENTE);
            lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_NUMEROCUENTA);
            lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_NUMEROCUENTA_CONBLOOQUEO);

            //Providencia de Apremio
            if (_int_TipoVariables == 1)
            {
                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_IMPORTEPRINCIPALPENDIENTE);
                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_RECARGODEAPREMIO);
                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_INGRESOACUENTA);
                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_IMPORTETOTAL);

                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_RECARGODEAPREMIOREDUCIDO);

                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_FECHANOTIFICACION);
                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_FECHAVENCIMIENTOVOLUNTARIO);
                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_SOCIO);
            }
            else if (_int_TipoVariables == 2)
            {
                lst_INTERNO_CodigoDescripcion_Modelo.Add(Variables.G_MDL_PARAMETRO_INFORME_PROVIDENCIAAPREMIO_FECHACERTIFICACION);
            }
            //................................................................................

            mdl_ABS_ListadoSeleccion_Variables.Registros = lst_INTERNO_CodigoDescripcion_Modelo.Cast<dynamic>().ToList();

            //Llamar al formualario de ListadoSeleccion
            PE_Listados_SoloSeleccion frm_PE_Listados_SoloSeleccion = new PE_Listados_SoloSeleccion(mdl_ABS_ListadoSeleccion_Variables, P_Base_ValoresGenerales, P_Base_FechaTrabajo);
            frm_PE_Listados_SoloSeleccion.ShowDialog();

            //Si se selecciono algo lo cargo en le combo correspondiente
            if (frm_PE_Listados_SoloSeleccion.g_dnm_RegistroSeleccionado != null)
            {
                string str_Codigo = frm_PE_Listados_SoloSeleccion.g_dnm_RegistroSeleccionado.Codigo;

                //Copia a portapapeles
                Clipboard.SetText(str_Codigo);

                _ex_txthtml_Auxiliar.Pegar_Texto_Portapapeles();

                //Vaciar Portapapeles
                Clipboard.Clear();
            }
        }


        #region Eventos del paginador
        protected void ctu_Paginacion_Primera_Click(object sender, EventArgs e)
        {
            if (g_obj_Controladora.ComprobarCambios()) // Si no han habido contratiempos pasamos a la pagina indicada
            {
                if (g_obj_Funciones_Paginador.Primera())
                {
                    // Asignando al control la pagina actual.
                    Exferia_Paginador.PaginaActual = g_obj_Funciones_Paginador.GetPaginaActual();

                    // Refrescamos el listado a mostrar en el form.
                    P_Base_id = g_obj_Funciones_Paginador.Objeto_Devuelto.FirstOrDefault().ID;
                    g_timer_Paginar.Stop();
                    g_timer_Paginar.Start();
                }
            }
        }
        protected void ctu_Paginacion_Anterior_Click(object sender, EventArgs e)
        {
            if (g_obj_Controladora.ComprobarCambios()) // Si no han habido contratiempos pasamos a la pagina indicada
            {
                if (g_obj_Funciones_Paginador.Anterior())
                {
                    // Asignando al control la pagina actual.
                    Exferia_Paginador.PaginaActual = g_obj_Funciones_Paginador.GetPaginaActual();

                    // Refrescamos el listado a mostrar en el form.
                    P_Base_id = g_obj_Funciones_Paginador.Objeto_Devuelto.FirstOrDefault().ID;
                    g_timer_Paginar.Stop();
                    g_timer_Paginar.Start();
                }
            }
        }
        protected void ctu_Paginacion_Siguiente_Click(object sender, EventArgs e)
        {
            if (g_obj_Controladora.ComprobarCambios()) // Si no han habido contratiempos pasamos a la pagina indicada
            {
                if (g_obj_Funciones_Paginador.Siguiente())
                {
                    // Asignando al control la pagina actual.
                    Exferia_Paginador.PaginaActual = g_obj_Funciones_Paginador.GetPaginaActual();

                    // Refrescamos el listado a mostrar en el form.
                    P_Base_id = g_obj_Funciones_Paginador.Objeto_Devuelto.FirstOrDefault().ID;
                    g_timer_Paginar.Stop();
                    g_timer_Paginar.Start();
                }
            }
        }
        protected void ctu_Paginacion_Ultima_Click(object sender, EventArgs e)
        {
            if (g_obj_Controladora.ComprobarCambios()) // Si no han habido contratiempos pasamos a la pagina indicada
            {

                if (g_obj_Funciones_Paginador.Ultima())
                {
                    // Asignando al control la pagina actual.
                    Exferia_Paginador.PaginaActual = g_obj_Funciones_Paginador.GetPaginaActual();

                    // Refrescamos el listado a mostrar en el form.
                    P_Base_id = g_obj_Funciones_Paginador.Objeto_Devuelto.FirstOrDefault().ID;
                    g_timer_Paginar.Stop();
                    g_timer_Paginar.Start();
                }
            }
        }
        protected void txt_PaginaActual_KeyPress(object sender, KeyPressEventArgs e)
        {
            // Si pulsamos Enter.
            if (e.KeyChar.Equals('\r'))
            {
                if (g_obj_Controladora.ComprobarCambios()) // Si no han habido contratiempos pasamos a la pagina indicada
                {
                    // Asignamos a la paginacion el valor del textbox
                    g_obj_Funciones_Paginador.SetPaginaActual(Exferia_Paginador.txt_ValorPaginaActual - 1);

                    // Asignando al control la pagina actual.
                    Exferia_Paginador.PaginaActual = g_obj_Funciones_Paginador.GetPaginaActual();

                    // Refrescamos el listado a mostrar en el form.
                    P_Base_id = g_obj_Funciones_Paginador.Objeto_Devuelto.FirstOrDefault().ID;
                    g_timer_Paginar.Stop();
                    g_obj_Controladora.RecargarDatos();
                }
            }
        }
        #endregion

        #region Teclas de acceso rapido
        protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
        {
            // Salir sin Seleccionar
            if (keyData == Keys.F10)
            {
                Salir_P_Base();
                return true;
            }
            // Grabar
            else if (keyData == Keys.F2)
            {
                Grabar();
                
                return true;
            }
            // Borrar
            else if (keyData == Keys.F5)
            {
                Borrar();
                
                return true;
            }
            return base.ProcessCmdKey(ref msg, keyData);
        }
        #endregion

        #region Controlar si se modifico algo
        private void Controlar_Modificaciones_TextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            Controlar_Modificaciones();
        }
        private void Controlar_Modificaciones_CheckBox_CheckedChanged(object sender, EventArgs e)
        {
            Controlar_Modificaciones();
        }
        private void Controlar_Modificaciones_Exferia_FechaSeleccion_TextChanged(object sender, EventArgs e)
        {
            Controlar_Modificaciones();
        }
        private void Controlar_Modificaciones()
        {
            if (Enabled && g_obj_Controladora != null && g_obj_Controladora.g_bol_Termino_CargaDatos_Inicial)
            {
                P_Base_SeModificoDatosPantalla = true;
            }
        }












        #endregion

        private void P_ConfiguracionVencimiento_Socios_FormClosed(object sender, FormClosedEventArgs e)
        {
            //Liberar Image
            if (g_obj_Controladora!=null)
            {
                g_obj_Controladora.g_arr_Firma_Presidente_Inicial = null;
                if (g_obj_Controladora.g_img_Firma_Presidente_Real != null)
                { g_obj_Controladora.g_img_Firma_Presidente_Real.Dispose(); }
                if (pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image != null)
                {pcb_P_ConfiguracionVencimiento_Socios_Presidente_Firma.Image.Dispose();}

                g_obj_Controladora.g_arr_Firma_Responsable_Inicial = null;
                if (g_obj_Controladora.g_img_Firma_Responsable_Real != null)
                { g_obj_Controladora.g_img_Firma_Responsable_Real.Dispose(); }
                if (pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image != null)
                { pcb_P_ConfiguracionVencimiento_Socios_Responsable_Firma.Image.Dispose(); }

                g_obj_Controladora.g_arr_Logo_Carta_SuperiorIzquierda_Inicial = null;
                if (g_obj_Controladora.g_img_Logo_Carta_SuperiorIzquierda_Real != null)
                { g_obj_Controladora.g_img_Logo_Carta_SuperiorIzquierda_Real.Dispose(); }
                if (pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image != null)
                { pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorIzquierda.Image.Dispose(); }

                g_obj_Controladora.g_arr_Logo_Carta_SuperiorDerecha_Inicial = null;
                if (g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real != null)
                { g_obj_Controladora.g_img_Logo_Carta_SuperiorDerecho_Real.Dispose(); }
                if (pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image != null)
                { pcb_P_ConfiguracionVencimiento_Socios_LogoSuperiorDerecha.Image.Dispose(); }

                g_obj_Controladora.g_arr_Logo_Carta_Inferior_Inicial = null;
                if (g_obj_Controladora.g_img_Logo_Carta_Inferior_Real != null)
                { g_obj_Controladora.g_img_Logo_Carta_Inferior_Real.Dispose(); }
                if (pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image != null)
                { pcb_P_ConfiguracionVencimiento_Socios_LogoInferior.Image.Dispose(); }

                g_obj_Controladora.g_arr_Logo_Reverso_Superior_Inicial = null;
                if (g_obj_Controladora.g_img_Logo_Reverso_Superior_Real != null)
                { g_obj_Controladora.g_img_Logo_Reverso_Superior_Real.Dispose(); }
                if (pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Image != null)
                { pcb_P_ConfiguracionVencimiento_Socios_ReversoLogoSuperior.Image.Dispose(); }
            }
        }

        
    }
}
