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

846 lines
43 KiB
C#

using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Visualizacion;
using Exferia_Controles;
using Exferia_EntityFramework;
using Exferia_General;
using Exferia_KairosPRO._1_Modelos;
using Exferia_KairosPRO._2_Datos;
using Exferia_KairosPRO._4_Vistas.Controladoras;
using Exferia_KairosPRO.General;
using Exferia_KairosPRO_EF;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using static Exferia_Aplicacion.General.Enumerados;
namespace Exferia_KairosPRO._4_Vistas
{
public partial class P_Fichajes : Exferia_Formularios.P_Base_Mantenimientos
{
#region Variables Generales
private P_Fichajes_Controladora g_obj_Controladora;
public bool g_bol_ConstructorPantalla_Terminado_Correctamente = true;
public PRV_OpcionesDetalle g_mdl_PRV_Opciones_Detalle = null;
private KRSS_Fichajes_Datos g_obj_KRSS_Fichajes_Datos = new KRSS_Fichajes_Datos();
private DateTime g_dtt_Dia_Seleccionado;
internal List<INTERNO_Permisos_Modelo> g_lst_INTERNO_Permisos_Modelo = null;
public bool g_bol_ActualizarCalendario = false;
#endregion
#region Objetos en Pantalla
//Exferia_Button_ConBorde
internal Exferia_Button_ConBorde Exferia_Button_ConBorde_HorasExtras_Autorizar { get { return ex_btn_P_Fichajes_HorasExtras_Autorizar; } }
internal Exferia_Button_ConBorde Exferia_Button_ConBorde_HorasExtras_Rechazar { get { return ex_btn_P_Fichajes_HorasExtras_Rechazar; } }
internal Exferia_Button_ConBorde Exferia_Button_ConBorde_HorasExtras_Borrar { get { return ex_btn_P_Fichajes_HorasExtras_Borrar; } }
//Exferia_CheckBox
internal Exferia_CheckBox Exferia_CheckBox_Dia_Lunes { get { return ex_chk_P_Fichajes_Dia_Lunes; } }
internal Exferia_CheckBox Exferia_CheckBox_Dia_Martes { get { return ex_chk_P_Fichajes_Dia_Martes; } }
internal Exferia_CheckBox Exferia_CheckBox_Dia_Miercoles { get { return ex_chk_P_Fichajes_Dia_Miercoles; } }
internal Exferia_CheckBox Exferia_CheckBox_Dia_Jueves { get { return ex_chk_P_Fichajes_Dia_Jueves; } }
internal Exferia_CheckBox Exferia_CheckBox_Dia_Viernes { get { return ex_chk_P_Fichajes_Dia_Viernes; } }
internal Exferia_CheckBox Exferia_CheckBox_Dia_Sabado { get { return ex_chk_P_Fichajes_Dia_Sabado; } }
internal Exferia_CheckBox Exferia_CheckBox_Dia_Domingo { get { return ex_chk_P_Fichajes_Dia_Domingo; } }
//Exferia_ComboBox
internal Exferia_ComboBox Exferia_ComboBox_TiposDias { get { return ex_cbo_P_Fichajes_TiposDias; } }
internal Exferia_ComboBox Exferia_ComboBox_TiposAusenciasProgramadas { get { return ex_cbo_P_Fichajes_TiposAusenciasProgramadas; } }
//Exferia_DataGridView
internal Exferia_DataGridView Exferia_DataGridView_Fichajes { get { return ex_dgv_P_Fichajes; } }
internal Exferia_DataGridView Exferia_DataGridView_Pausas { get { return ex_dgv_P_Fichajes_Pausas; } }
//Exferia_F3
internal Exferia_F3 Exferia_F3_HorasExtrasCabecera { get { return ex_usc_F3_P_Fichajes_HorasExtrasCabecera; } }
//Exferia_Label
internal Exferia_Label Exferia_Label_Jornada { get { return ex_lbl_P_Fichajes_Jornada; } }
internal Exferia_Label Exferia_Label_PausasConfiguracion { get { return ex_lbl_P_Fichajes_PausasConfiguracion; } }
internal Exferia_Label Exferia_Label_HorasExtras_Totales_Reales { get { return ex_lbl_p_Fichajes_HorasExtras_Totales_Reales; } }
internal Exferia_Label Exferia_Label_HorasExtras_Totales_Convertidas { get { return ex_lbl_p_Fichajes_HorasExtras_Totales_Convertidas; } }
//Exferia_Label_SinColor
internal Exferia_Label_SinColor Exferia_Label_SinColor_GrabadasTitulo { get { return ex_lbl_P_Fichajes_GrabadasTitulo; } }
//Exferia_Panel_Degradado
internal Exferia_Panel_Degradado Exferia_Panel_Degradado_Lineas { get { return ex_pnl_P_Fichajes_JornadaLinea; } }
internal Exferia_Panel_Degradado Exferia_Panel_Degradado_Pausas { get { return ex_pnl_P_Fichajes_JornadaPausas; } }
//Exferia_TabControl
internal Exferia_TabControl Exferia_TabControl_JornadaHorasExtras { get { return ex_tab_P_Fichajes_JornadaHorasExtras; } }
//Panel
internal Panel Panel_HorasExtras { get { return pnl_HorasExtras; } }
//TabPage
internal TabPage TabPage_HorasExtras { get { return tbp_HorasExtras; } }
#endregion
#region Constructor
public P_Fichajes(INTERNO_ValoresGenerales_Modelo _mdl_INTERNO_ValoresGenerales_Modelo,
DateTime _dtt_FechaTrabajo,
PRV_OpcionesDetalle _mdl_PRV_OpcionesDetalle,
KRS_JornadasCabecera _mdl_KRS_JornadasCabecera,
List<KRSS_Fichajes> _lst_KRSS_Fichajes,
List<KRSS_Pausas> _lst_KRSS_Pausas,
string _str_Nombre,
DateTime _dtt_Dia_Seleccionado,
INTERNO_KRS_Empleados_Modelo _mdl_INTERNO_KRS_Empleados_Modelo,
List<KRS_DiasFestivos> _lst_KRS_DiasFestivos,
bool _bol_SeleccionarTabHorasExtras)
{
InitializeComponent();
Repintar.Empezar(this);
CheckForIllegalCrossThreadCalls = false;
//Empresa Seleccioonada y fecha de Trabajo
P_Base_ValoresGenerales = _mdl_INTERNO_ValoresGenerales_Modelo;
P_Base_FechaTrabajo = _dtt_FechaTrabajo;
//Instanciar Controladora
g_obj_Controladora = new P_Fichajes_Controladora(this, _dtt_Dia_Seleccionado, _mdl_KRS_JornadasCabecera, _mdl_INTERNO_KRS_Empleados_Modelo, _lst_KRS_DiasFestivos, _lst_KRSS_Fichajes, _lst_KRSS_Pausas, _bol_SeleccionarTabHorasExtras);
g_dtt_Dia_Seleccionado = _dtt_Dia_Seleccionado;
//Titulo de no autorizado
Exferia_Label_SinColor_GrabadasTitulo.Text = Mensajes.G_STR_KAIROSPRO_FICHAJES_HORASEXTRAS_PENDIENTES().ToUpper();
//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);
//Poner los botones que no se pueden poner bloqueado o de solo lectura
ex_btn_P_Fichajes_ADD.Exferia_Button_Bloqueable = false;
ex_btn_P_Fichajess_Ver.Exferia_Button_Bloqueable = false;
ex_btn_P_Fichajes_Borrar.Exferia_Button_Bloqueable = false;
ex_btn_P_Fichajes_Pausas_ADD.Exferia_Button_Bloqueable = false;
ex_btn_P_Fichajes_Pausas_Ver.Exferia_Button_Bloqueable = false;
ex_btn_P_Fichajes_Pausas_Borrar.Exferia_Button_Bloqueable = false;
ex_btn_P_Fichajes_HorasExtras_Autorizar.Exferia_Button_ConBorde_Bloqueable = false;
ex_btn_P_Fichajes_HorasExtras_Borrar.Exferia_Button_ConBorde_Bloqueable = false;
ex_btn_P_Fichajes_HorasExtras_Rechazar.Exferia_Button_ConBorde_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_Opciones_Detalle.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 = "Detalle de " + g_mdl_PRV_Opciones_Detalle.descripcion_TituloMantenimiento + " - " + _str_Nombre;
//Pone la columna de la fecha y la hora que ocupe todo el espacio
ex_dgv_P_Fichajes.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
ex_dgv_P_Fichajes.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
ex_dgv_P_Fichajes.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
ex_dgv_P_Fichajes.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
//Pone la columna de la fecha y la hora que ocupe todo el espacio y la de tipoPausa que ocupe solo lo que debe
ex_dgv_P_Fichajes_Pausas.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
ex_dgv_P_Fichajes_Pausas.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
ex_dgv_P_Fichajes_Pausas.Columns[3].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
ex_dgv_P_Fichajes_Pausas.Columns[4].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
ex_dgv_P_Fichajes_Pausas.Columns[5].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill;
//Rellenar la leyenda de colores
Rellenar_Leyenda();
try
{
//Empresa seleccionada y fecha de trabajo
P_Base_ValoresGenerales = _mdl_INTERNO_ValoresGenerales_Modelo;
P_Base_FechaTrabajo = _dtt_FechaTrabajo;
// 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_Fichajes) + "/" + nameof(P_Fichajes));
}
}
//....................................................................................................
//Bloquear pantalla hasta que termine la carga por defecto .....
Enabled = false;
//.............................................................
//Carga para los F3.....................................................
//HorasExtrasCabecera
ex_usc_F3_P_Fichajes_HorasExtrasCabecera.Exferia_F3_PRINCIPAL_Opcion_BuscarDatos = Variables.G_STR_OPCION_KRS_HORASEXTRASCABECERA;
ex_usc_F3_P_Fichajes_HorasExtrasCabecera.Exferia_F3_PantallaContenedora = this;
ex_usc_F3_P_Fichajes_HorasExtrasCabecera.Exferia_F3_PRINCIPAL_BUSCARTITULO = false;
}
catch (Control_Errores)
{ }
catch (Exception ex)
{
//No se muestra mensaje pero se guarda en el log
Control_Errores.Errores_Log("", ex, nameof(P_Fichajes) + "/" + nameof(P_Fichajes));
}
finally
{
//Bloquear pantalla hasta que termine la carga por defecto .....
this.Enabled = true;
//.............................................................
}
}
#endregion
#region Inicio Pantalla
private void P_Fichajes_Shown(object sender, EventArgs e)
{
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_Fichajes) + "/" + nameof(P_Fichajes_Shown));
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
Salir_P_Base();
}
}
#endregion
#region Rellenar Leyenda
private void Rellenar_Leyenda()
{
//Dia Fichajes Sin Validar
ex_pnl_P_Fichajes_Dia_Fichajes_SinValidar.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_SINVALIDAR;
ex_pnl_P_Fichajes_Dia_Fichajes_SinValidar.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_SINVALIDAR;
ex_pnl_P_Fichajes_Dia_Fichajes_SinValidar.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_BORDE_CELDA;
//Dia Fichajes Validado Sin Incidencias
ex_pnl_P_Fichajes_Dia_Fichajes_ValidadosSinIncidencias.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VALIDADO_SININCIDENCIAS;
ex_pnl_P_Fichajes_Dia_Fichajes_ValidadosSinIncidencias.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VALIDADO_SININCIDENCIAS;
ex_pnl_P_Fichajes_Dia_Fichajes_ValidadosSinIncidencias.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_BORDE_CELDA;
//Dia Fichajes Validado Con Incidencias
ex_pnl_P_Fichajes_Dia_Fichajes_ValidadosConIncidencias.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VALIDADO_CONINCIDENCIAS;
ex_pnl_P_Fichajes_Dia_Fichajes_ValidadosConIncidencias.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_VALIDADO_CONINCIDENCIAS;
ex_pnl_P_Fichajes_Dia_Fichajes_ValidadosConIncidencias.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_BORDE_CELDA;
//Dia Anulado
ex_pnl_P_Fichajes_Dia_Anulado.Exferia_Panel_Degradado_Color_Desde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_FICHAJESANULADOS;
ex_pnl_P_Fichajes_Dia_Anulado.Exferia_Panel_Degradado_Color_Hasta = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_FICHAJESANULADOS;
ex_pnl_P_Fichajes_Dia_Anulado.Exferia_Panel_Degradado_Color_Borde = Colores.G_COLOR_KAIROSPRO_FICHAJE_DIA_FICHAJESANULADOS;
}
#endregion
#region Procedimientos heredados de la clase P_Base
public override void P_Base_ActualizarRegistro_ConObjeto(object _obj, G_ENUM_TIPOACCION _enum_TipoAccion)
{
try
{
if (_obj.ToString().Equals(Variables.G_STR_OPCION_KRSS_FICHAJES))
{
//Recargo el listado con tdoo validado
g_obj_Controladora.g_lst_KRSS_Fichajes.Clear();
List<KRSS_Fichajes> lst_KRSS_Fichajes_TodoMes = Funciones_KairosPRO.Obtener_Fichajes_PorEmpleadoJornada(g_obj_Controladora.g_mdl_INTERNO_KRS_Empleados_Modelo, g_dtt_Dia_Seleccionado.Year, g_dtt_Dia_Seleccionado.Month, P_Base_ValoresGenerales.lng_idEmpresa);
object[] arr_ObjetosDevueltos = Funciones_KairosPRO.Obtener_Fichajes_PorEmpleadoJornada_Dia(g_obj_Controladora.g_mdl_INTERNO_KRS_Empleados_Modelo,
lst_KRSS_Fichajes_TodoMes,
g_obj_Controladora.g_lst_KRS_DiasFestivos,
g_dtt_Dia_Seleccionado.Year,
g_dtt_Dia_Seleccionado.Month,
g_dtt_Dia_Seleccionado.Day);
g_obj_Controladora.g_lst_KRSS_Fichajes = (List<KRSS_Fichajes>)arr_ObjetosDevueltos[0];
//Recargar Los Datos
g_obj_Controladora.RecargarDatos();
g_bol_ActualizarCalendario = true;
}
else if (_obj.ToString().Equals(Variables.G_STR_OPCION_KRSS_PAUSAS))
{
//Recargo el listado con tdoo validado
g_obj_Controladora.g_lst_KRSS_Pausas.Clear();
List<KRSS_Pausas> lst_KRSS_Pausas_TodoMes = Funciones_KairosPRO.Obtener_Pausas_PorEmpleadoJornada(g_obj_Controladora.g_mdl_INTERNO_KRS_Empleados_Modelo, g_dtt_Dia_Seleccionado.Year, g_dtt_Dia_Seleccionado.Month, P_Base_ValoresGenerales.lng_idEmpresa);
object[] arr_ObjetosDevueltos = Funciones_KairosPRO.Obtener_Pausas_PorEmpleadoJornada_Dia(g_obj_Controladora.g_mdl_INTERNO_KRS_Empleados_Modelo,
lst_KRSS_Pausas_TodoMes,
g_obj_Controladora.g_lst_KRS_DiasFestivos,
g_dtt_Dia_Seleccionado.Year,
g_dtt_Dia_Seleccionado.Month,
g_dtt_Dia_Seleccionado.Day);
g_obj_Controladora.g_lst_KRSS_Pausas = (List<KRSS_Pausas>)arr_ObjetosDevueltos[0];
//Recargar Los Datos
g_obj_Controladora.RecargarDatos();
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log("", ex, nameof(P_Fichajes) + "/" + nameof(P_Base_ActualizarRegistro_ConObjeto));
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
}
}
#endregion
#region Fichajes Botones ADD, Ver, Borrar y Métodos
private void ex_btn_P_Fichajes_ADD_Click(object sender, EventArgs e)
{
Fichaje_Add();
}
private void Fichaje_Add()
{
try
{
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRSS_FICHAJES, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Anadir, true)))
{
if (g_obj_Controladora.g_mdl_KRS_HorasExtrasCalculadasCabecera!=null)
{
Mensajes.MostrarMensaje(Mensajes.G_STR_KAIROSPRO_FICHAJES_HORASEXTRAS_TIENEHORASEXTRASGRABADAS());
}
else
{
KRSS_Fichajes mdl_KRSS_Fichajes = null;
P_Fichajes_Detalle frm_P_Fichajes_Detalle = new P_Fichajes_Detalle(this.P_Base_ValoresGenerales,
this.P_Base_FechaTrabajo,
g_mdl_PRV_Opciones_Detalle,
mdl_KRSS_Fichajes,
g_obj_Controladora.g_mdl_KRS_JornadasCabecera,
g_dtt_Dia_Seleccionado,
g_obj_Controladora.g_mdl_INTERNO_KRS_Empleados_Modelo.id,
g_obj_Controladora.g_mdl_KRS_HorasExtrasCalculadasCabecera!=null);
//Se llamo desde una pantalla
frm_P_Fichajes_Detalle.P_Base_TipoAperturaPantalla = 0;
frm_P_Fichajes_Detalle.P_Base_PantallaPadre_IdentificadorTAG = this.Tag.ToString();
frm_P_Fichajes_Detalle.P_Base_PantallaOrigen = this;
frm_P_Fichajes_Detalle.P_Base_TituloPantalla_CaminoHormigas = g_mdl_PRV_Opciones_Detalle.camposMostrar_TituloMantenimiento + " Detalle";
Funciones_PanelPrincipal.Cargar_PantallaEmpotrada(frm_P_Fichajes_Detalle, Variables.G_STR_OPCION_KRSS_FICHAJES);
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message,ex,nameof(P_Fichajes)+"/"+nameof(Fichaje_Add));
}
}
private void ex_btn_P_Fichajess_Ver_Click(object sender, EventArgs e)
{
Fichaje_Ver();
}
private void ex_dgv_P_Fichajes_Fichajes_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
Fichaje_Ver();
}
private void Fichaje_Ver()
{
try
{
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRSS_FICHAJES, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Ver, true)))
{
if (ex_dgv_P_Fichajes.Rows != null &&
ex_dgv_P_Fichajes.Rows.Count > 0 &&
ex_dgv_P_Fichajes.SelectedRows.Count > 0)
{
if (g_obj_Controladora.g_lst_KRSS_Fichajes != null && g_obj_Controladora.g_lst_KRSS_Fichajes.Count > 0)
{
KRSS_Fichajes mdl_KRSS_Fichajes = g_obj_Controladora.g_lst_KRSS_Fichajes.Find(x => x.id.Equals(ex_dgv_P_Fichajes.CurrentRow.Cells[0].Value));
P_Fichajes_Detalle frm_P_Fichajes_Detalle = new P_Fichajes_Detalle(this.P_Base_ValoresGenerales,
this.P_Base_FechaTrabajo,
g_mdl_PRV_Opciones_Detalle,
mdl_KRSS_Fichajes,
g_obj_Controladora.g_mdl_KRS_JornadasCabecera,
g_dtt_Dia_Seleccionado,
g_obj_Controladora.g_mdl_INTERNO_KRS_Empleados_Modelo.id,
g_obj_Controladora.g_mdl_KRS_HorasExtrasCalculadasCabecera != null);
//Se llamo desde una pantalla
frm_P_Fichajes_Detalle.P_Base_TipoAperturaPantalla = 1;
frm_P_Fichajes_Detalle.P_Base_PantallaPadre_IdentificadorTAG = this.Tag.ToString();
frm_P_Fichajes_Detalle.P_Base_PantallaOrigen = this;
frm_P_Fichajes_Detalle.P_Base_TituloPantalla_CaminoHormigas = g_mdl_PRV_Opciones_Detalle.camposMostrar_TituloMantenimiento + " Detalle";
Funciones_PanelPrincipal.Cargar_PantallaEmpotrada(frm_P_Fichajes_Detalle, Variables.G_STR_OPCION_KRSS_FICHAJES);
}
}
else
{
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_LISTADOS_NOHAYREGISTROSSELECCIONADOS());
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message, ex, nameof(P_Fichajes) + "/" + nameof(Fichaje_Ver));
}
}
private void ex_btn_P_Fichajes_Borrar_Click(object sender, EventArgs e)
{
Fichaje_Borrar();
}
private void Fichaje_Borrar()
{
try
{
if (Datos_Generales.Permisos_Comprobar(g_mdl_PRV_Opciones_Detalle.opcion, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Borrar, true))
{
if (g_obj_Controladora.g_mdl_KRS_HorasExtrasCalculadasCabecera != null)
{
Mensajes.MostrarMensaje(Mensajes.G_STR_KAIROSPRO_FICHAJES_HORASEXTRAS_TIENEHORASEXTRASGRABADAS());
}
else
{
if (ex_dgv_P_Fichajes.Rows != null &&
ex_dgv_P_Fichajes.Rows.Count > 0 &&
ex_dgv_P_Fichajes.SelectedRows.Count > 0)
{
if ((bool)ex_dgv_P_Fichajes.CurrentRow.Cells[1].Value)
{
g_obj_Controladora.DesAnularFichaje(long.Parse(ex_dgv_P_Fichajes.CurrentRow.Cells[0].Value.ToString()));
}
else
{
g_obj_Controladora.AnularFichaje(long.Parse(ex_dgv_P_Fichajes.CurrentRow.Cells[0].Value.ToString()));
}
}
else
{
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_LISTADOS_NOHAYREGISTROSSELECCIONADOS());
}
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message, ex, nameof(P_Fichajes) + "/" + nameof(Fichaje_Borrar));
}
}
//Para Anular y Desanular Fichajes Desde el CheckBox del DataGridView
private void ex_dgv_P_Fichajes_Fichajes_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
try
{
if (Datos_Generales.Permisos_Comprobar(g_mdl_PRV_Opciones_Detalle.opcion, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Borrar, true))
{
if (e.ColumnIndex == 1)
{
DataGridViewRow obj_DataGridViewRow = ex_dgv_P_Fichajes.Rows[e.RowIndex];
if ((bool)obj_DataGridViewRow.Cells[e.ColumnIndex].Value)
{
g_obj_Controladora.DesAnularFichaje((long)obj_DataGridViewRow.Cells[0].Value);
}
else
{
g_obj_Controladora.AnularFichaje((long)obj_DataGridViewRow.Cells[0].Value);
}
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message, ex, nameof(P_Fichajes) + "/" + nameof(ex_dgv_P_Fichajes_Fichajes_CellContentClick));
}
}
private void ex_dgv_P_Fichajes_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
if (e.ColumnIndex == 2)
{
e.CellStyle.BackColor = (Color)ex_dgv_P_Fichajes[6, e.RowIndex].Value;
e.CellStyle.SelectionBackColor = (Color)ex_dgv_P_Fichajes[6, e.RowIndex].Value;
}
}
catch (Exception)
{}
}
#endregion
#region Pausas Botones ADD, Ver, Borrar y Métodos
private void ex_btn_P_Fichajes_Pausas_ADD_Click(object sender, EventArgs e)
{
Pausa_Add();
}
private void Pausa_Add()
{
try
{
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRSS_PAUSAS, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Anadir, true)))
{
KRSS_Pausas mdl_KRSS_Pausas = null;
P_Pausas_Detalle frm_P_Pausas_Detalle = new P_Pausas_Detalle(this.P_Base_ValoresGenerales,
this.P_Base_FechaTrabajo,
g_mdl_PRV_Opciones_Detalle,
mdl_KRSS_Pausas,
g_obj_Controladora.g_mdl_KRS_JornadasCabecera,
g_dtt_Dia_Seleccionado,
g_obj_Controladora.g_mdl_INTERNO_KRS_Empleados_Modelo.id);
//Se llamo desde una pantalla
frm_P_Pausas_Detalle.P_Base_TipoAperturaPantalla = 0;
frm_P_Pausas_Detalle.P_Base_PantallaPadre_IdentificadorTAG = this.Tag.ToString();
frm_P_Pausas_Detalle.P_Base_PantallaOrigen = this;
frm_P_Pausas_Detalle.P_Base_TituloPantalla_CaminoHormigas = g_mdl_PRV_Opciones_Detalle.camposMostrar_TituloMantenimiento + " Detalle";
Funciones_PanelPrincipal.Cargar_PantallaEmpotrada(frm_P_Pausas_Detalle, Variables.G_STR_OPCION_KRSS_PAUSAS);
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message, ex, nameof(P_Fichajes) + "/" + nameof(Pausa_Add));
}
}
private void ex_btn_P_Fichajes_Pausas_Ver_Click(object sender, EventArgs e)
{
Pausa_Ver();
}
private void ex_dgv_P_Fichajes_Pausas_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
Pausa_Ver();
}
private void Pausa_Ver()
{
try
{
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRSS_PAUSAS, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Ver, true)))
{
if (ex_dgv_P_Fichajes_Pausas.Rows != null &&
ex_dgv_P_Fichajes_Pausas.Rows.Count > 0 &&
ex_dgv_P_Fichajes_Pausas.SelectedRows.Count > 0)
{
if (g_obj_Controladora.g_lst_KRSS_Pausas != null && g_obj_Controladora.g_lst_KRSS_Pausas.Count > 0)
{
KRSS_Pausas mdl_KRSS_Pausas = g_obj_Controladora.g_lst_KRSS_Pausas.Find(x => x.id.Equals(ex_dgv_P_Fichajes_Pausas.CurrentRow.Cells[0].Value));
P_Pausas_Detalle frm_P_Pausas_Detalle = new P_Pausas_Detalle(this.P_Base_ValoresGenerales,
this.P_Base_FechaTrabajo,
g_mdl_PRV_Opciones_Detalle,
mdl_KRSS_Pausas,
g_obj_Controladora.g_mdl_KRS_JornadasCabecera,
g_dtt_Dia_Seleccionado,
g_obj_Controladora.g_mdl_INTERNO_KRS_Empleados_Modelo.id);
//Se llamo desde una pantalla
frm_P_Pausas_Detalle.P_Base_TipoAperturaPantalla = 1;
frm_P_Pausas_Detalle.P_Base_PantallaPadre_IdentificadorTAG = this.Tag.ToString();
frm_P_Pausas_Detalle.P_Base_PantallaOrigen = this;
frm_P_Pausas_Detalle.P_Base_TituloPantalla_CaminoHormigas = g_mdl_PRV_Opciones_Detalle.camposMostrar_TituloMantenimiento + " Detalle";
Funciones_PanelPrincipal.Cargar_PantallaEmpotrada(frm_P_Pausas_Detalle, Variables.G_STR_OPCION_KRSS_PAUSAS);
}
}
else
{
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_LISTADOS_NOHAYREGISTROSSELECCIONADOS());
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message, ex, nameof(P_Fichajes) + "/" + nameof(Pausa_Ver));
}
}
private void ex_btn_P_Fichajes_Pausas_Borrar_Click(object sender, EventArgs e)
{
Pausa_Borrar();
}
private void Pausa_Borrar()
{
try
{
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRSS_PAUSAS, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Borrar, true)))
{
if (ex_dgv_P_Fichajes_Pausas.Rows != null &&
ex_dgv_P_Fichajes_Pausas.Rows.Count > 0 &&
ex_dgv_P_Fichajes_Pausas.SelectedRows.Count > 0)
{
if ((bool)ex_dgv_P_Fichajes_Pausas.CurrentRow.Cells[1].Value)
{
//g_obj_Controladora.DesAnularPausa(long.Parse(ex_dgv_P_Fichajes_Pausas.CurrentRow.Cells[0].Value.ToString()));
}
else
{
//g_obj_Controladora.AnularPausa(long.Parse(ex_dgv_P_Fichajes_Pausas.CurrentRow.Cells[0].Value.ToString()));
}
}
else
{
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_LISTADOS_NOHAYREGISTROSSELECCIONADOS());
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message, ex, nameof(P_Fichajes) + "/" + nameof(Pausa_Borrar));
}
}
private void ex_dgv_P_Fichajes_Pausas_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
try
{
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRSS_PAUSAS, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Borrar, true)))
{
if (e.ColumnIndex == 1)
{
DataGridViewRow obj_DataGridViewRow = ex_dgv_P_Fichajes_Pausas.Rows[e.RowIndex];
if ((bool)obj_DataGridViewRow.Cells[e.ColumnIndex].Value)
{
g_obj_Controladora.DesAnularPausa((long)obj_DataGridViewRow.Cells[0].Value);
}
else
{
g_obj_Controladora.AnularPausa((long)obj_DataGridViewRow.Cells[0].Value);
}
}
}
}
catch (Exception ex)
{
Control_Errores.Errores_Log(ex.Message, ex, nameof(P_Fichajes) + "/" + nameof(ex_dgv_P_Fichajes_Pausas_CellContentClick));
}
}
private void ex_dgv_P_Fichajes_Pausas_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
try
{
if (e.ColumnIndex ==3)
{
e.CellStyle.BackColor = (Color)ex_dgv_P_Fichajes_Pausas[7, e.RowIndex].Value;
e.CellStyle.SelectionBackColor = (Color)ex_dgv_P_Fichajes_Pausas[7, e.RowIndex].Value;
}
}
catch (Exception)
{ }
}
#endregion
#region HorasExtras
private void ex_btn_P_Fichajes_HorasExtras_Autorizar_Click(object sender, EventArgs e)
{
if (g_obj_Controladora != null)
{
g_obj_Controladora.HorasExtras_Grabar(true);
}
}
private void ex_btn_P_Fichajes_HorasExtras_Rechazar_Click(object sender, EventArgs e)
{
if (g_obj_Controladora != null)
{
g_obj_Controladora.HorasExtras_Grabar(false);
}
}
private void ex_btn_P_Fichajes_HorasExtras_Borrar_Click(object sender, EventArgs e)
{
if (g_obj_Controladora != null)
{
//Tiene que tener Permisos para Borrar las oras Extras
//Buscar los Permisos
List<INTERNO_Permisos_Modelo> lst_INTERNO_Permisos_Modelo = Datos_Generales.Permisos_Buscar(Variables.G_STR_OPCION_OTROS_KRSS_INCIDENCIAS);
if (Datos_Generales.Permisos_Comprobar(g_mdl_PRV_Opciones_Detalle.opcion, lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Borrar, true, nameof(ex_btn_P_Fichajes_HorasExtras_Borrar)))
{
// Preguntar si esta Seguro de Borrar
if (Mensajes.MostrarMensaje_Pregunta(Mensajes.G_STR_MENSAJES_GENERAL_PREGUNTA_BORRAR()))
{
g_obj_Controladora.HorasExtras_Borrar();
}
}
}
}
#region Tipos de dias
private void ex_cbo_P_Fichajes_TiposDias_SelectedIndexChanged(object sender, EventArgs e)
{
if (g_obj_Controladora != null &&
g_obj_Controladora.g_bol_Termino_CargaDatos_Inicial &&
ex_cbo_P_Fichajes_TiposDias.SelectedIndex > -1)
{
//Dias
if (((INTERNO_ComboBox_Modelo)ex_cbo_P_Fichajes_TiposDias.SelectedItem).Identificador.Equals(Variables_KairosPRO.G_MDL_TIPOHORAEXTRA_DIA.Codigo))
{
pnl_P_Fichajes_TipoAusenciaProgramada.Visible = false;
pnl_P_Fichajes_Dias.Visible = true;
//Si tien un dia Seleccioando se recalcula todo
if (Exferia_CheckBox_Dia_Lunes.Checked ||
Exferia_CheckBox_Dia_Martes.Checked ||
Exferia_CheckBox_Dia_Miercoles.Checked ||
Exferia_CheckBox_Dia_Jueves.Checked ||
Exferia_CheckBox_Dia_Viernes.Checked ||
Exferia_CheckBox_Dia_Sabado.Checked ||
Exferia_CheckBox_Dia_Domingo.Checked)
{
//recalcularLineas
if (g_obj_Controladora.g_bol_Termino_CargaDatosHorasExtras)
{
g_obj_Controladora.HorasExtras_CalcularLineas();
}
}
}
//Tipos de Ausencia programada
else if (((INTERNO_ComboBox_Modelo)ex_cbo_P_Fichajes_TiposDias.SelectedItem).Identificador.Equals(Variables_KairosPRO.G_MDL_TIPOHORAEXTRA_TIPOAUSENCIAPROGRAMADA.Codigo))
{
pnl_P_Fichajes_Dias.Visible = false;
pnl_P_Fichajes_TipoAusenciaProgramada.Visible = true;
if (g_obj_Controladora.g_bol_Termino_CargaDatosHorasExtras)
{
g_obj_Controladora.HorasExtras_CalcularLineas();
}
}
else
{
pnl_P_Fichajes_TipoAusenciaProgramada.Visible = false;
pnl_P_Fichajes_Dias.Visible = false;
//recalcularLineas
if (g_obj_Controladora.g_bol_Termino_CargaDatosHorasExtras)
{
g_obj_Controladora.HorasExtras_CalcularLineas();
}
}
}
}
#endregion
#region Dias
private bool g_bol_EjecutandoDias_Check = false;
private void ex_chk_P_Fichajes_Dia_CheckedChanged(object sender, EventArgs e)
{
if (g_obj_Controladora.g_bol_Termino_CargaDatosHorasExtras)
{
if (g_bol_EjecutandoDias_Check == false)
{
g_bol_EjecutandoDias_Check = true;
if (((Exferia_CheckBox)sender).Checked)
{
//Descheckear el resto
//Lunes
if (!((Exferia_CheckBox)sender).Name.Equals(ex_chk_P_Fichajes_Dia_Lunes.Name))
{ ex_chk_P_Fichajes_Dia_Lunes.Checked = false; }
//Martes
if (!((Exferia_CheckBox)sender).Name.Equals(ex_chk_P_Fichajes_Dia_Martes.Name))
{ ex_chk_P_Fichajes_Dia_Martes.Checked = false; }
//Miercoles
if (!((Exferia_CheckBox)sender).Name.Equals(ex_chk_P_Fichajes_Dia_Miercoles.Name))
{ ex_chk_P_Fichajes_Dia_Miercoles.Checked = false; }
//Jueves
if (!((Exferia_CheckBox)sender).Name.Equals(ex_chk_P_Fichajes_Dia_Jueves.Name))
{ ex_chk_P_Fichajes_Dia_Jueves.Checked = false; }
//Viernes
if (!((Exferia_CheckBox)sender).Name.Equals(ex_chk_P_Fichajes_Dia_Viernes.Name))
{ ex_chk_P_Fichajes_Dia_Viernes.Checked = false; }
//Sabado
if (!((Exferia_CheckBox)sender).Name.Equals(ex_chk_P_Fichajes_Dia_Sabado.Name))
{ ex_chk_P_Fichajes_Dia_Sabado.Checked = false; }
//Domingo
if (!((Exferia_CheckBox)sender).Name.Equals(ex_chk_P_Fichajes_Dia_Domingo.Name))
{ ex_chk_P_Fichajes_Dia_Domingo.Checked = false; }
//recalcularLineas
g_obj_Controladora.HorasExtras_CalcularLineas();
}
g_bol_EjecutandoDias_Check = false;
}
}
}
#endregion
private void ex_cbo_P_Fichajes_TiposAusenciasProgramadas_SelectedIndexChanged(object sender, EventArgs e)
{
if (g_obj_Controladora != null &&
g_obj_Controladora.g_bol_Termino_CargaDatos_Inicial &&
g_obj_Controladora.g_bol_Termino_CargaDatosHorasExtras &&
ex_cbo_P_Fichajes_TiposAusenciasProgramadas.SelectedIndex > -1)
{
//recalcularLineas
g_obj_Controladora.HorasExtras_CalcularLineas();
}
}
private void ex_btn_P_Fichajes_HorasExtras_Add_Click(object sender, EventArgs e)
{
if (g_obj_Controladora.g_mdl_INTERNO_KRS_HorasExtrasCabecera_Modelo != null)
{
g_obj_Controladora.Crear_CTU_P_Fichajes_HorasExtras(null);
}
else
{
Mensajes.MostrarMensaje(Mensajes.G_STR_GENERAL_VALIDACIONES_NOSELECCIONADO(ex_usc_F3_P_Fichajes_HorasExtrasCabecera.Exferia_F3_Titulo));
}
}
private void ex_usc_F3_P_Fichajes_HorasExtrasCabecera_Exferia_F3_Evento_TerminoBusqueda(object sender, EventArgs e)
{
g_obj_Controladora.HorasExtras_CargaDatos(ex_usc_F3_P_Fichajes_HorasExtrasCabecera.Exferia_F3_Id);
}
#endregion
#region Cierre de pantalla
private void P_Fichajes_FormClosing(object sender, FormClosingEventArgs e)
{
//Antes de hacer nada limpio la jornada linea
ex_pnl_P_Fichajes_JornadaLinea.Controls.Clear();
if (g_bol_ActualizarCalendario)
{
P_Base_PantallaOrigen.P_Base_ActualizarRegistro_ConObjeto(null, G_ENUM_TIPOACCION.INT_NADA);
}
}
#endregion
}
}