Exferia/Exferia_KairosPro/Exferia_KairosPRO/4_Vistas/P_Incidencias.cs

377 lines
16 KiB
C#

using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Visualizacion;
using Exferia_Controles;
using Exferia_EntityFramework;
using Exferia_General;
using Exferia_KairosPRO._4_Vistas.Controladoras;
using Exferia_KairosPRO.General;
using System;
using System.Collections.Generic;
using System.Threading;
using System.Windows.Forms;
using static Exferia_Aplicacion.General.Enumerados;
namespace Exferia_KairosPRO._4_Vistas
{
public partial class P_Incidencias : Exferia_Formularios.P_Base_Mantenimientos
{
#region Variables Generales
private P_Incidencias_Controladora g_obj_Controladora;
public bool g_bol_ConstructorPantalla_Terminado_Correctamente = true;
public PRV_OpcionesDetalle g_mdl_PRV_Opciones_Detalle = null;
internal List<INTERNO_Permisos_Modelo> g_lst_INTERNO_Permisos_Modelo = null;
//Timer Buscar
private System.Windows.Forms.Timer g_timer_Buscar_Empleados = new System.Windows.Forms.Timer();
#endregion
#region Objetos en Pantalla
//Exferia_CheckBox
internal Exferia_CheckBox Exferia_CheckBox_PalabraCompleta { get { return ex_chk_P_Incidencias_PalabraCompleta; } }
internal Exferia_CheckBox Exferia_CheckBox_MayusculasMinusculas { get { return ex_chk_P_Incidencias_MayusculasMinusculas; } }
//Exferia_DataGriView
internal Exferia_DataGridView Exferia_DataGridView_Empleados { get { return ex_dgv_P_Incidencias_Empleados; } }
//Exferia_DateTimePicker
internal Exferia_DateTimePicker Exferia_DateTimePicker_Meses { get { return ex_dtp_P_Incidencias_Meses; } }
//Exferia_NumericUpDown
internal Exferia_NumericUpDown Exferia_NumericUpDown_Anyo { get { return ex_nud_P_Incidencias_Anyo; } }
//Exferia_Panel_Degradado
internal Exferia_Panel_Degradado Exferia_Panel_Degradado_Calendario { get { return ex_pnl_P_Incidencias_Calendario; } }
//Exferia_TextBox
internal Exferia_TextBox Exferia_TextBox_Buscar { get { return ex_txt_P_Incidencias_Buscar; } }
#endregion
#region Constructor
public P_Incidencias(INTERNO_ValoresGenerales_Modelo _mdl_INTERNO_ValoresGenerales_Modelo, DateTime _dtt_FechaTrabajo, PRV_OpcionesDetalle _mdl_PRV_OpcionesDetalle)
{
InitializeComponent();
Repintar.Empezar(this);
//Comrpobamos que el codigo cliente exista y este bien
if (Variables.G_LNG_IDCLIENTE_LICENCIAVALIDADO.Equals(-1))
{
//Tendriamos que avisar y no dejar abrir la pantalla
Mensajes.MostrarMensaje(Mensajes.G_STR_LICENCIA_VALIDACIONES_LICENCIANOESTAACTIVA);
}
//Empresa Seleccionada y fecha de trabajo
P_Base_ValoresGenerales = _mdl_INTERNO_ValoresGenerales_Modelo;
P_Base_FechaTrabajo = _dtt_FechaTrabajo;
ex_nud_P_Incidencias_Anyo.Exferia_NumericUpDown_Value = P_Base_FechaTrabajo.Year;
ex_dtp_P_Incidencias_Meses.Exferia_DateTimePicker_Value = P_Base_FechaTrabajo;
//Instanciar Controladora
g_obj_Controladora = new P_Incidencias_Controladora(this);
//Deseleccionar la row de DataGrid para cargar calendario
ex_dgv_P_Incidencias_Empleados.ClearSelection();
//Datos de Opciones detalle
g_mdl_PRV_Opciones_Detalle = _mdl_PRV_OpcionesDetalle;
//Buscar los Permisos
g_lst_INTERNO_Permisos_Modelo = Datos_Generales.Permisos_Buscar(g_mdl_PRV_Opciones_Detalle.opcion);
//Mirrar si hay que bloquear los controles, si solo puede ver los datos
if ((P_Base_TipoAperturaPantalla != 0 && Datos_Generales.Permisos_Comprobar(g_mdl_PRV_Opciones_Detalle.opcion,g_lst_INTERNO_Permisos_Modelo,(int)G_ENUM_PERMISOS.Modificar,false)) == false)
{
//Bloquear los controles
SoloLectura.Empezar(this,true);
}
ex_dtp_P_Incidencias_Meses.Enabled = true;
//No bloqeuar el año
ex_nud_P_Incidencias_Anyo.Exferia_NumericUpDown_ReadOnly = false;
//Rellenar la leyenda de colores
Rellenar_Leyenda();
//Titulo de la Pantalla
P_Base_TituloPantalla = g_mdl_PRV_Opciones_Detalle.descripcion_TituloMantenimiento;
try
{
//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_Incidencias) + "/" + nameof(P_Incidencias));
}
}
//..................................................................................................................................
//Bloquear pantalla hasta que termine la carga por defecto.....
Enabled = false;
//.............................................................
}
catch (Control_Errores)
{
g_bol_ConstructorPantalla_Terminado_Correctamente = false;
}
catch (Exception ex)
{
g_bol_ConstructorPantalla_Terminado_Correctamente = false;
Control_Errores.Errores_Log("", ex, nameof(P_Incidencias) + "/" + nameof(P_Incidencias));
}
finally
{
//Bloquear pantalla hasta que termine la carga por defecto .............
Enabled = true;
//......................................................................
}
}
#endregion
#region Inicio de pantalla
private void P_Incidencias_Load(object sender, EventArgs e)
{
try
{
//Configurar el Timer para Busqueda en el Listado #####################################################
g_timer_Buscar_Empleados.Interval = 1000;
g_timer_Buscar_Empleados.Tick += delegate (object s, EventArgs ee)
{
g_timer_Buscar_Empleados.Stop();
g_obj_Controladora.Rellenar_DataGrid_Empleados(ex_txt_P_Incidencias_Buscar.Text);
};
}
catch (Exception ex)
{
//No se muestra mensaje pero se guarda en el log
Control_Errores.Errores_Log(ex.Message, ex, nameof(P_Incidencias) + "/" + nameof(P_Incidencias_Load));
g_bol_ConstructorPantalla_Terminado_Correctamente = false;
}
}
private void P_Incidencias_Shown(object sendern, EventArgs e)
{
try
{
g_obj_Controladora.CargaInicial(-1);
}
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_Incidencias) + "/" + nameof(P_Incidencias_Shown));
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
Salir_P_Base();
}
}
#endregion
#region Empleado
private void ex_txt_P_Incidencias_Buscar_Exferia_TextBox_Evento_TextChanged(object sender, EventArgs e)
{
if (g_obj_Controladora != null)
{
g_timer_Buscar_Empleados.Stop();
g_timer_Buscar_Empleados.Start();
}
}
private void ex_chk_P_Incidencias_PalabraCompleta_CheckedChanged(object sender, EventArgs e)
{
if (g_obj_Controladora != null)
{
g_timer_Buscar_Empleados.Stop();
g_timer_Buscar_Empleados.Start();
}
}
private void ex_chk_P_Incidencias_MayusculasMinusculas_CheckedChanged(object sender, EventArgs e)
{
if (g_obj_Controladora != null)
{
g_timer_Buscar_Empleados.Stop();
g_timer_Buscar_Empleados.Start();
}
}
#endregion
#region Procedimientos heredados de la clase P_Base
public override void P_Base_ActualizarRegistro_ConObjeto(object _obj, G_ENUM_TIPOACCION _enum_TipoAccion)
{
try
{
g_obj_Controladora.CargaInicial(g_obj_Controladora.g_lng_idEmpleado_Seleccionado);
}
catch (Exception ex)
{
Mensajes.MostrarMensaje(ex.Message);
}
}
#endregion
#region Eventos
private void ex_dtp_P_Incidencias_Meses_ValueChanged(object sender, EventArgs e)
{
try
{
if (ex_dgv_P_Incidencias_Empleados.SelectedRows.Count > 0)
{
if (g_obj_Controladora != null)
{
g_obj_Controladora.g_int_Mes = ex_dtp_P_Incidencias_Meses.Exferia_DateTimePicker_Mes;
g_obj_Controladora.CargaInicial(g_obj_Controladora.g_lng_idEmpleado_Seleccionado);
}
}
else
{
if (g_obj_Controladora != null)
{
g_obj_Controladora.Cargar_Calendario(ex_dtp_P_Incidencias_Meses.Exferia_DateTimePicker_Mes);
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(P_Incidencias) + "/" + nameof(ex_dtp_P_Incidencias_Meses_ValueChanged));
}
}
private void ex_nud_P_Incidencias_Anyo_ValueChanged(object sender, EventArgs e)
{
try
{
if (e != null)
{
if (ex_dgv_P_Incidencias_Empleados.SelectedRows.Count > 0)
{
Exferia_NumericUpDown Exferia_NumericUpDown_Anyo = (Exferia_NumericUpDown)sender;
if (Exferia_NumericUpDown_Anyo.Exferia_NumericUpDown_Value.ToString().Trim().Length == 4)
{
int int_Anyo = Convert.ToInt32(Exferia_NumericUpDown_Anyo.Exferia_NumericUpDown_Value);
if (int_Anyo > 1990 && int_Anyo < 3000)
{
g_obj_Controladora.CargaInicial(g_obj_Controladora.g_lng_idEmpleado_Seleccionado);
}
}
}
else
{
if (g_obj_Controladora != null)
{
if (g_obj_Controladora.g_bol_Termino_CargaInicial)
{
Exferia_NumericUpDown Exferia_NumericUpDown_Anyo = (Exferia_NumericUpDown)sender;
if (Exferia_NumericUpDown_Anyo.Exferia_NumericUpDown_Value.ToString().Trim().Length == 4)
{
int int_Anyo = Convert.ToInt32(Exferia_NumericUpDown_Anyo.Exferia_NumericUpDown_Value);
if (int_Anyo > 1990 && int_Anyo < 3000)
{
g_obj_Controladora.CargaInicial(ex_dtp_P_Incidencias_Meses.Exferia_DateTimePicker_Mes);
}
}
}
}
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message,ex,nameof(P_Incidencias)+"/"+nameof(ex_nud_P_Incidencias_Anyo_ValueChanged));
}
}
private void ex_dgv_P_Incidencias_Empleados_SelectionChanged(object sender, EventArgs e)
{
try
{
if (g_obj_Controladora!=null &&
g_obj_Controladora.g_bol_Termino_CargaInicial &&
g_obj_Controladora.g_bol_Cargando_Empleados==false)
{
if (ex_dgv_P_Incidencias_Empleados.SelectedRows.Count > 0)
{
g_obj_Controladora.g_int_Mes = ex_dtp_P_Incidencias_Meses.Exferia_DateTimePicker_Mes;
g_obj_Controladora.ActualizarDatos(long.Parse(ex_dgv_P_Incidencias_Empleados.SelectedRows[0].Cells[0].Value.ToString()));
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(P_Incidencias) + "/" + nameof(ex_dgv_P_Incidencias_Empleados_SelectionChanged));
}
}
#endregion
#region Abrir Fichajes
private void Abrir_Fichajes(object sender, INTERNO_EventArgs e)
{
if (g_obj_Controladora!=null)
{
g_obj_Controladora.Abrir_Fichajes(e.NumeroObjeto);
}
}
#endregion
#region Rellenar Leyenda
private void Rellenar_Leyenda()
{
//Dia Fichajes Sin Validar
ex_pnl_P_Incidencias_Dia_Fichajes_SinValidar.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_SINVALIDAR;
ex_pnl_P_Incidencias_Dia_Fichajes_SinValidar.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_SINVALIDAR;
ex_pnl_P_Incidencias_Dia_Fichajes_SinValidar.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_BORDE_CELDA;
//Dia Fichajes Validado Sin Incidencias
ex_pnl_P_Incidencias_Dia_Fichajes_ValidadosSinIncidencias.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VALIDADO_SININCIDENCIAS;
ex_pnl_P_Incidencias_Dia_Fichajes_ValidadosSinIncidencias.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VALIDADO_SININCIDENCIAS;
ex_pnl_P_Incidencias_Dia_Fichajes_ValidadosSinIncidencias.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_BORDE_CELDA;
//Dia Fichajes Validado Con Incidencias
ex_pnl_P_Incidencias_Dia_Fichajes_ValidadosConIncidencias.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VALIDADO_CONINCIDENCIAS;
ex_pnl_P_Incidencias_Dia_Fichajes_ValidadosConIncidencias.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VALIDADO_CONINCIDENCIAS;
ex_pnl_P_Incidencias_Dia_Fichajes_ValidadosConIncidencias.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_BORDE_CELDA;
//Dia sin Fichajes
ex_pnl_P_Incidencias_Dia_Sin_Fichajes.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_SINFICHAJES;
ex_pnl_P_Incidencias_Dia_Sin_Fichajes.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_SINFICHAJES;
ex_pnl_P_Incidencias_Dia_Sin_Fichajes.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_BORDE_CELDA;
//Dia Vacio
ex_pnl_P_Incidencias_Dia_Vacio.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VACIO;
ex_pnl_P_Incidencias_Dia_Vacio.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VACIO;
ex_pnl_P_Incidencias_Dia_Vacio.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_BORDE_CELDA;
}
#endregion
}
}