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 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 _lst_KRSS_Fichajes, List _lst_KRSS_Pausas, string _str_Nombre, DateTime _dtt_Dia_Seleccionado, INTERNO_KRS_Empleados_Modelo _mdl_INTERNO_KRS_Empleados_Modelo, List _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 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)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 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)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 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 } }