using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Exferia_EntityFramework;
using Exferia_Aplicacion.General;
using Exferia_Controles;
using Exferia_Aplicacion.Visualizacion;
using Exferia_Formularios;

namespace Exferia_Maestros._3_Vistas.ControlesPersonalizados_DentroPaneles
{
    public partial class CTU_P_Empleado_Descendientes : UserControl
    {
        #region Propiedades Privadas
        private MAE_EmpleadosFiscal_Descendientes g_mdl_MAE_EmpleadosFiscal_Descendientes;
        private int g_int_NumeroObjeto;
        #endregion

        #region Eventos Públicos
        public event EventHandler<INTERNO_EventArgs> Boton_P_Empleado_DescendientesDelete_Click;
        public event KeyPressEventHandler TextBox_P_Empleado_Descendiente_KeyPress;
        public event EventHandler CheckBox_P_Empleado_Descendiente_CheckedChanged;
        public event EventHandler TextBox_P_Empleado_Descendiente_TextChanged;

        public event EventHandler CTU_P_Empleado_Descendiente_Changed;
        #endregion

        #region Propiedades Publicas
        public Exferia_TextBox CTU_P_Empleado_Descendientes_Control_AnyoNacimiento { get{ return ex_txt_P_Empleado_Descendientes_Anyo_Nacimiento; } }
        public Exferia_TextBox CTU_P_Empleado_Descendientes_Control_AnyoAdopcion { get{ return ex_txt_P_Empleado_Descendientes_Anyo_Adopcion; } }
        public Exferia_CheckBox CTU_P_Empleado_Descendientes_Control_Minusvalia_33_65 { get{ return ex_chk_P_Empleado_Descendientes_Minusvalia_33_65; } }
        public Exferia_CheckBox CTU_P_Empleado_Descendientes_Control_Minusvalia_Mayor_65 { get { return ex_chk_P_Empleado_Descendientes_Minusvalia_Mayor_65; } }
        public Exferia_CheckBox CTU_P_Empleado_Descendientes_Control_Minusvalia_MovilidadReducida { get{ return ex_chk_P_Empleado_Descendientes_Minusvalia_MovilidadReducida; } }
        public Exferia_CheckBox XTU_P_Empleado_Descendientes_Control_ComputoEnteros { get{ return ex_chk_P_Empleado_Descendientes_ComputoEnteros; } }

        public long CTU_P_Empleado_Descendiente_id
        {
            get
            {
                long lng_id = 1;
                if (g_mdl_MAE_EmpleadosFiscal_Descendientes != null)
                {
                    lng_id = g_mdl_MAE_EmpleadosFiscal_Descendientes.id;
                }
                return lng_id;
            }
        }

        public string CTU_P_Empleado_Descendiente_AnyoNacimiento { get{ return ex_txt_P_Empleado_Descendientes_Anyo_Nacimiento.Text; } }
        public string CTU_P_Empleado_Descendiente_AnyoAdopcion { get{ return ex_txt_P_Empleado_Descendientes_Anyo_Adopcion.Text; } }
        public bool CTU_P_Empleado_Descendiente_Minuvalia_33_65 { get{ return ex_chk_P_Empleado_Descendientes_Minusvalia_33_65.Checked; } }
        public bool CTU_P_Empleado_Descendiente_Minuvalia_Mayor_65 { get { return ex_chk_P_Empleado_Descendientes_Minusvalia_Mayor_65.Checked; } }
        public bool CTU_P_Empleado_Descendiente_Minuvalia_MovilidadReducida { get { return ex_chk_P_Empleado_Descendientes_Minusvalia_MovilidadReducida.Checked; } }
        public bool CTU_P_Empleado_Descendiente_ComputoEnteros { get { return ex_chk_P_Empleado_Descendientes_ComputoEnteros.Checked; } }

        public List<string> lst_Nombre_Objetos_Pantalla = new List<string>();
        #endregion

        #region Constructor
        public CTU_P_Empleado_Descendientes()
        {
            InitializeComponent();

            lst_Nombre_Objetos_Pantalla.Add(ex_txt_P_Empleado_Descendientes_Anyo_Nacimiento.Name);
            lst_Nombre_Objetos_Pantalla.Add(ex_txt_P_Empleado_Descendientes_Anyo_Adopcion.Name);
            lst_Nombre_Objetos_Pantalla.Add(ex_chk_P_Empleado_Descendientes_Minusvalia_33_65.Name);
            lst_Nombre_Objetos_Pantalla.Add(ex_chk_P_Empleado_Descendientes_ComputoEnteros.Name);
            lst_Nombre_Objetos_Pantalla.Add(ex_chk_P_Empleado_Descendientes_Minusvalia_Mayor_65.Name);
            lst_Nombre_Objetos_Pantalla.Add(ex_chk_P_Empleado_Descendientes_Minusvalia_MovilidadReducida.Name);
        }
        public CTU_P_Empleado_Descendientes(P_Base _frm_Pantalla_DeDondeereda,
                                             int _int_NumerObjeto,
                                             MAE_EmpleadosFiscal_Descendientes _mdl_MAE_EmpleadosFiscal_Descendientes)
        {
            InitializeComponent();

            Repintar.Empezar(this);

            g_int_NumeroObjeto = _int_NumerObjeto;
            g_mdl_MAE_EmpleadosFiscal_Descendientes = _mdl_MAE_EmpleadosFiscal_Descendientes;

            //Cargar los datos si los tuviera
            if (g_mdl_MAE_EmpleadosFiscal_Descendientes != null)
            {
                //AnyoNacimiento
                ex_txt_P_Empleado_Descendientes_Anyo_Nacimiento.Text = g_mdl_MAE_EmpleadosFiscal_Descendientes.anyoNacimiento.ToString();

                //AnyoAdopcion
                ex_txt_P_Empleado_Descendientes_Anyo_Adopcion.Text = g_mdl_MAE_EmpleadosFiscal_Descendientes.anyoAdopcion.ToString();

                //Minusvalia_33_65
                ex_chk_P_Empleado_Descendientes_Minusvalia_33_65.Checked = g_mdl_MAE_EmpleadosFiscal_Descendientes.discapacidad_Entre33Y65.Value;

                //Minusvalia_Mayor_65
                ex_chk_P_Empleado_Descendientes_Minusvalia_Mayor_65.Checked = g_mdl_MAE_EmpleadosFiscal_Descendientes.discapacidad_Mayor65.Value;

                //Minusvalia_MovilidadReducida
                ex_chk_P_Empleado_Descendientes_Minusvalia_MovilidadReducida.Checked = g_mdl_MAE_EmpleadosFiscal_Descendientes.discapacidad_AyudaMovilidadReducida.Value;

                //ComputoEnteros
                ex_chk_P_Empleado_Descendientes_ComputoEnteros.Checked = g_mdl_MAE_EmpleadosFiscal_Descendientes.computo_PorEnteroHijos.Value;
            }
        }
        #endregion

        private void ex_btn_P_Empleado_Descendientes_Borrar_click(object sender, EventArgs e)
        {
            //Para que salte el evento en el otro lado
            EventHandler<INTERNO_EventArgs> temp = Boton_P_Empleado_DescendientesDelete_Click;
            if (temp != null)
                temp(sender, new INTERNO_EventArgs(g_int_NumeroObjeto));
        }

        private void ex_txt_P_Empleado_Descendiente_KeyPress(object sender,KeyPressEventArgs e)
        {
            //Para que salte el evento en el otro lado
            KeyPressEventHandler temp = TextBox_P_Empleado_Descendiente_KeyPress;
            if (temp != null)
                temp(sender, e);

        }
        private void ex_chk_P_Empleado_Descendiente_CheckedChanged(object sender, EventArgs e)
        {
            //Para que salte el evento en el otro lado
            EventHandler temp = CheckBox_P_Empleado_Descendiente_CheckedChanged;
            if (temp != null)
                temp(sender, e);

            //Para que salte el evento en el otro lado
            EventHandler temp2 = CTU_P_Empleado_Descendiente_Changed;
            if (temp2 != null)
                temp2(sender, e);
        }

        private void ex_txt_P_Empleado_Descendiente_Exferia_TextBox_Evento_TextChanged(object sender, EventArgs e)
        {
            //Para que salte el evento en el otro lado
            EventHandler temp = TextBox_P_Empleado_Descendiente_TextChanged;
            if (temp != null)
                temp(sender, e);

            //Para que salte el evento en el otro lado
            EventHandler temp2 = CTU_P_Empleado_Descendiente_Changed;
            if (temp2 != null)
                temp2(sender, e);
        }

        public void VaciarControl()
        {
            ex_txt_P_Empleado_Descendientes_Anyo_Nacimiento.Text = "";
            ex_txt_P_Empleado_Descendientes_Anyo_Adopcion.Text = "";
            ex_chk_P_Empleado_Descendientes_Minusvalia_33_65.Checked = false;
            ex_chk_P_Empleado_Descendientes_Minusvalia_Mayor_65.Checked = false;
            ex_chk_P_Empleado_Descendientes_Minusvalia_MovilidadReducida.Checked = false;
            ex_chk_P_Empleado_Descendientes_ComputoEnteros.Checked = false;
        }
    }
}
