813 lines
37 KiB
C#
813 lines
37 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 System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using static Exferia_Aplicacion.General.Enumerados;
|
|
using System.Linq;
|
|
using Exferia_Formularios;
|
|
using Exferia_KairosPRO_EF;
|
|
using Exferia_KairosPRO._1_Modelos;
|
|
|
|
namespace Exferia_KairosPRO._4_Vistas
|
|
{
|
|
public partial class P_HorasExtrasCabecera : Exferia_Formularios.P_Base_Mantenimientos
|
|
{
|
|
#region Variables General
|
|
private P_HorasExtrasCabecera_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;
|
|
|
|
//Lineas
|
|
private INTERNO_ConfiguracionPantalla_Modelo g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS = null;
|
|
|
|
//Variables paginador
|
|
public Funciones_Paginador g_obj_Funciones_Paginador;
|
|
private Timer g_timer_Paginar = new Timer();
|
|
#endregion
|
|
|
|
#region Obtejos en pantalla
|
|
|
|
//Exferia_BarraProgreso
|
|
internal Exferia_BarraProgreso Exferia_BarraProgreso_Lineas { get { return ex_pgb_BarraProgreso_Lineas; } }
|
|
|
|
//Exferia_DataGridiew
|
|
internal Exferia_DataGridView Exferia_DataGridView_Lineas { get { return ex_dgv_P_HorasExtrasCabecera_Lineas; } }
|
|
|
|
//Exferia_Label
|
|
internal Exferia_Label Exferia_Label_Codigo { get { return ex_lbl_P_HorasExtrasCabecera_Codigo; } }
|
|
internal Exferia_Label Exferia_Label_Descripcion { get { return ex_lbl_P_HorasExtrasCabecera_Descripcion; } }
|
|
|
|
//Exferia_Paginador
|
|
internal Exferia_Paginador Exferia_Paginador_HorasExtrasCabecera { get { return ex_Paginador; } }
|
|
|
|
//Exferia_TextBox
|
|
internal Exferia_TextBox Exferia_TextBox_Codigo { get { return ex_txt_P_HorasExtrasCabecera_Codigo; } }
|
|
internal Exferia_TextBox Exferia_TextBox_Descripcion { get { return ex_txt_P_HorasExtrasCabecera_Descripcion; } }
|
|
#endregion
|
|
|
|
#region Constructor
|
|
public P_HorasExtrasCabecera(INTERNO_ValoresGenerales_Modelo _mdl_INTERNO_ValoresGenerales_Modelo, DateTime _dtt_FechaTrabajo, PRV_OpcionesDetalle _mdl_PRV_OpcionesDetalle)
|
|
{
|
|
InitializeComponent();
|
|
|
|
Repintar.Empezar(this);
|
|
|
|
CheckForIllegalCrossThreadCalls = false;
|
|
|
|
//Comprobamos 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);
|
|
Salir_P_Base();
|
|
}
|
|
|
|
//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_HorasExtrasCabecera_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 puedan poner bloqueados o solo de lectura
|
|
ex_btn_P_HorasExtrasCabecera_Borrar.Exferia_Button_Bloqueable = false;
|
|
ex_btn_P_HorasExtrasCabecera_Grabar.Exferia_Button_Bloqueable = false;
|
|
|
|
ex_btn_P_HorasExtrasCabecera_Lineas_Ver.Exferia_Button_Bloqueable = false;
|
|
ex_btn_P_HorasExtrasCabecera_Lineas_Filtros.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;
|
|
|
|
|
|
if (Variables.G_DCT_CONFIGURACIONPANTALLA != null && Variables.G_DCT_CONFIGURACIONPANTALLA.Count > 0)
|
|
{
|
|
//Lineas
|
|
if (Variables.G_DCT_CONFIGURACIONPANTALLA.ContainsKey(g_obj_Controladora.g_obj_ABS_Listado_Lineas.NOMBRELISTADO_ALMACENARCONFIGURACION()))
|
|
{
|
|
g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS = Variables.G_DCT_CONFIGURACIONPANTALLA[g_obj_Controladora.g_obj_ABS_Listado_Lineas.NOMBRELISTADO_ALMACENARCONFIGURACION()];
|
|
}
|
|
}
|
|
|
|
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_HorasExtrasCabecera) + "/" + nameof(P_HorasExtrasCabecera));
|
|
}
|
|
}
|
|
//..................................................................................................................................
|
|
|
|
//Bloquear pantalla hasta que termine la carga por defecto.....
|
|
Enabled = false;
|
|
//.............................................................
|
|
|
|
g_obj_Funciones_Paginador = new Funciones_Paginador();
|
|
}
|
|
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_HorasExtrasCabecera) + "/" + nameof(P_HorasExtrasCabecera));
|
|
}
|
|
finally
|
|
{
|
|
//Bloquear pantalla hasta que termine la carga por defecto .....
|
|
Enabled = true;
|
|
//.............................................................
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Inicio de pantalla
|
|
private void P_HorasExtrasCabecera_Load(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
#region TIMER 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();
|
|
}
|
|
|
|
};
|
|
#endregion
|
|
|
|
#region LINEAS
|
|
|
|
//Crear Columnas Listado
|
|
Crear_Columnas_Listado_Lineas();
|
|
|
|
#endregion
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
//No se muestra mensaje pero se guarda en el log
|
|
Control_Errores.Errores_Log("", ex, nameof(P_HorasExtrasCabecera) + "/" + nameof(P_HorasExtrasCabecera_Load));
|
|
|
|
g_bol_ConstructorPantalla_Terminado_Correctamente = false;
|
|
}
|
|
}
|
|
|
|
private void P_HorasExtrasCabecera_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";
|
|
|
|
g_obj_Controladora.g_bol_Termino_CargaDatos_Inicial = true;
|
|
|
|
ActivarBotones(false);
|
|
|
|
//Poner Texto predeterminado y foco
|
|
if ((P_Base_Campo_1 != null && P_Base_Campo_1.Trim().Length > 0) ||
|
|
(P_Base_Campo_2 != null && P_Base_Campo_2.Trim().Length > 0))
|
|
{
|
|
if (P_Base_Campo_1 != null && P_Base_Campo_1.Trim().Length > 0)
|
|
{
|
|
ex_txt_P_HorasExtrasCabecera_Codigo.Text = P_Base_Campo_1;
|
|
ex_txt_P_HorasExtrasCabecera_Descripcion.Exferia_TextBox_Foco();
|
|
}
|
|
if (P_Base_Campo_2 != null && P_Base_Campo_2.Trim().Length > 0)
|
|
{
|
|
ex_txt_P_HorasExtrasCabecera_Descripcion.Text = P_Base_Campo_2;
|
|
ex_txt_P_HorasExtrasCabecera_Codigo.Exferia_TextBox_Foco();
|
|
}
|
|
}
|
|
else
|
|
{
|
|
ex_txt_P_HorasExtrasCabecera_Codigo.Exferia_TextBox_Foco();
|
|
}
|
|
g_obj_Controladora.g_bol_Termino_CargaDatos_Inicial = false;
|
|
|
|
}
|
|
//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_HorasExtrasCabecera.PaginasTotales = g_obj_Funciones_Paginador.Numero_Paginas_Totales;
|
|
}
|
|
else
|
|
{
|
|
Exferia_Paginador_HorasExtrasCabecera.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_HorasExtrasCabecera) + "/" + nameof(P_HorasExtrasCabecera_Shown));
|
|
|
|
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
|
|
Salir_P_Base();
|
|
}
|
|
}
|
|
|
|
public void ActivarBotones(bool _bol_Activar)
|
|
{
|
|
if (Exferia_Paginador_HorasExtrasCabecera.Visible)
|
|
{
|
|
Exferia_Paginador_HorasExtrasCabecera.Visible = _bol_Activar;
|
|
}
|
|
|
|
if (ex_btn_P_HorasExtrasCabecera_Borrar.Enabled)
|
|
{
|
|
ex_btn_P_HorasExtrasCabecera_Borrar.Enabled = _bol_Activar;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Procedimientos heredados de la clase P_Base
|
|
//Se utiliza para actualizar los listados dentro de la pantalla, sin tener que guardar
|
|
public override void P_Base_ActualizarRegistro_ConObjeto(object _obj, G_ENUM_TIPOACCION _enum_TipoAccion)
|
|
{
|
|
try
|
|
{
|
|
if (_obj != null)
|
|
{
|
|
P_Base_SeModificoDatosPantalla = true;
|
|
|
|
if (_enum_TipoAccion.Equals(G_ENUM_TIPOACCION.INT_INSERTAR) ||
|
|
_enum_TipoAccion.Equals(G_ENUM_TIPOACCION.INT_MODIFICAR))
|
|
{
|
|
List<object> lst_obj = (List<object>)_obj;
|
|
string obj_Opcion = (string)lst_obj[0];
|
|
|
|
if (obj_Opcion.Equals(Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA))
|
|
{
|
|
g_obj_Controladora.Lineas_Actualizar_Registro((long)lst_obj[1], _enum_TipoAccion);
|
|
}
|
|
}
|
|
else if (_enum_TipoAccion.Equals(G_ENUM_TIPOACCION.INT_ELIMINAR))
|
|
{
|
|
List<object> lst_obj = (List<object>)_obj;
|
|
string obj_Opcion = (string)lst_obj[0];
|
|
|
|
if (obj_Opcion.Equals(Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA))
|
|
{
|
|
g_obj_Controladora.Lineas_Borrar_Registro((List<long>)lst_obj[1]);
|
|
}
|
|
}
|
|
|
|
P_Base_SeModificoDatosPantalla = false;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Mensajes.MostrarMensaje(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Botones Grabar, Borrar, BuscarCodigoSiguiente, Colores
|
|
private void ex_btn_P_AusenciasProgramdasTipos_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();
|
|
}
|
|
}
|
|
|
|
private void ex_btn_P_AusenciasProgramdasTipos_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_AusenciasProgramdasTipos_BuscarCodigoSiguiente_Click(object sender, EventArgs e)
|
|
{
|
|
BuscarCodigoSiguiente();
|
|
}
|
|
private void BuscarCodigoSiguiente()
|
|
{
|
|
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;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Lineas
|
|
|
|
private void Crear_Columnas_Listado_Lineas()
|
|
{
|
|
ex_dgv_P_HorasExtrasCabecera_Lineas.AutoGenerateColumns = false;
|
|
|
|
g_obj_Controladora.g_lst_ABS_Listado_KRS_HorasExtrasLineas = g_obj_Controladora.g_obj_ABS_Listado_Lineas.LISTADO_COLUMNAS().Values.ToList();
|
|
|
|
foreach (INTERNO_ABS_Listado_ColumnasDatos_Modelo mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo in g_obj_Controladora.g_lst_ABS_Listado_KRS_HorasExtrasLineas)
|
|
{
|
|
DataGridViewTextBoxColumn dgv_Columna = new DataGridViewTextBoxColumn();
|
|
dgv_Columna.DataPropertyName = mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Descripcion_Interna;
|
|
dgv_Columna.Name = mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Descripcion_Interna;
|
|
dgv_Columna.HeaderText = mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Descripcion_AMostrar;
|
|
|
|
//Poner visible o no .........................................................................
|
|
bool bol_Visible = true;
|
|
if (mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Oculto)
|
|
{
|
|
bol_Visible = false;
|
|
}
|
|
else if (g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS != null &&
|
|
g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNASAMOSTRAR != null &&
|
|
g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNASAMOSTRAR.Count > 0)
|
|
{
|
|
if (!g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNASAMOSTRAR.Contains(mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Descripcion_Interna))
|
|
{
|
|
bol_Visible = false;
|
|
}
|
|
}
|
|
else if (mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Mostrado_PorDefecto == false)
|
|
{
|
|
bol_Visible = false;
|
|
}
|
|
dgv_Columna.Visible = bol_Visible;
|
|
|
|
if (bol_Visible)
|
|
{
|
|
g_obj_Controladora.g_lst_ColumnasAMostrar_Lineas.Add(mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Descripcion_Interna);
|
|
}
|
|
//.....................................................................................................
|
|
|
|
//Poner Ancho Columna ................................................................................
|
|
if (g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS != null &&
|
|
g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNAS_ANCHO != null &&
|
|
g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNAS_ANCHO.Count > 0 &&
|
|
g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNAS_ANCHO.ContainsKey(mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Descripcion_Interna))
|
|
{
|
|
dgv_Columna.Width = g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNAS_ANCHO[mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Descripcion_Interna];
|
|
}
|
|
else
|
|
{
|
|
if (mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Ancho > 0)
|
|
{
|
|
dgv_Columna.Width = mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.Ancho;
|
|
}
|
|
}
|
|
//................................................................................................................
|
|
|
|
dgv_Columna.ReadOnly = true;
|
|
|
|
//Poner alineado segun tipo de datos ......................................................................................
|
|
if (mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.TipoDato.Equals(G_ENUM_TIPOSDATOS.DECIMAL) ||
|
|
mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.TipoDato.Equals(G_ENUM_TIPOSDATOS.LONG) ||
|
|
mdl_INTERNO_ABS_Listado_ColumnasDatos_Modelo.TipoDato.Equals(G_ENUM_TIPOSDATOS.INT))
|
|
{
|
|
dgv_Columna.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight;
|
|
}
|
|
else
|
|
{
|
|
dgv_Columna.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
|
|
}
|
|
//..............................................................................................................................
|
|
|
|
ex_dgv_P_HorasExtrasCabecera_Lineas.Columns.Add(dgv_Columna);
|
|
}
|
|
|
|
//Cambiar el orden de las columnas ........
|
|
if (g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS != null && g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNAS_ORDEN != null && g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNAS_ORDEN.Count > 0)
|
|
{
|
|
foreach (KeyValuePair<string, int> kvp_Valores in g_mdl_INTERNO_ConfiguracionPantalla_Modelo_LINEAS.LISTADO_COLUMNAS_ORDEN)
|
|
{
|
|
ex_dgv_P_HorasExtrasCabecera_Lineas.Columns[kvp_Valores.Key].DisplayIndex = kvp_Valores.Value;
|
|
}
|
|
}
|
|
//.........................................
|
|
}
|
|
|
|
#region Filtros
|
|
private void ex_btn_P_HorasExtrasCabecera_Lineas_Filtros_Click(object sender, EventArgs e)
|
|
{
|
|
MostrarOcultar_Columnas_Y_Fitros_Lineas(ex_btn_P_HorasExtrasCabecera_Lineas_Filtros.Location.X, 0);
|
|
}
|
|
private void MostrarOcultar_Columnas_Y_Fitros_Lineas(int _int_PosicionX, int _int_PosicionY)
|
|
{
|
|
try
|
|
{
|
|
PE_Listados_Filtros frm_PE_Listados_Filtros = new PE_Listados_Filtros(g_obj_Controladora.g_obj_ABS_Listado_Lineas, ex_dgv_P_HorasExtrasCabecera_Lineas.Columns, g_obj_Controladora.g_dct_ListadoFiltros_Lineas);
|
|
|
|
frm_PE_Listados_Filtros.ShowDialog();
|
|
|
|
if (frm_PE_Listados_Filtros.g_bol_BotonAceptar)
|
|
{
|
|
//Mostrar/Ocultar las Columnas que no esten en el Listado
|
|
g_obj_Controladora.g_lst_ColumnasAMostrar_Lineas = frm_PE_Listados_Filtros.g_lst_ColumnasAMostrar;
|
|
|
|
foreach (DataGridViewColumn dgvc_ColumnasActuales in ex_dgv_P_HorasExtrasCabecera_Lineas.Columns)
|
|
{
|
|
//Mostrar
|
|
if (g_obj_Controladora.g_lst_ColumnasAMostrar_Lineas.Contains(dgvc_ColumnasActuales.Name))
|
|
{
|
|
dgvc_ColumnasActuales.Visible = true;
|
|
}
|
|
//Ocultar
|
|
else
|
|
{
|
|
dgvc_ColumnasActuales.Visible = false;
|
|
}
|
|
}
|
|
|
|
//Rellenar los nuevos filtros
|
|
g_obj_Controladora.g_dct_ListadoFiltros_Lineas = frm_PE_Listados_Filtros.g_dct_ListadoFiltros.ToDictionary(entry => entry.Key, entry => entry.Value);
|
|
|
|
//Recargar el Listado
|
|
g_obj_Controladora.Rellenar_DataGrid_Lineas();
|
|
}
|
|
}
|
|
catch (Exception)
|
|
{ }
|
|
}
|
|
#endregion
|
|
|
|
private void ex_btn_P_HorasExtrasCabecera_Lineas_Add_Click(object sender, EventArgs e)
|
|
{
|
|
Add_Lineas();
|
|
}
|
|
private void Add_Lineas()
|
|
{
|
|
//Si el modelo es nulo primero guardamos
|
|
if (g_obj_Controladora.g_mdl_INTERNO_KRS_HorasExtrasCabecera_Modelo == null)
|
|
{
|
|
//Primero Grabo los datos y actualizo el Modelo
|
|
g_obj_Controladora.GrabarDatos();
|
|
|
|
//Te quedas esperando a que termine la tarea asincrona de grabar
|
|
while (g_obj_Controladora.g_obj_TareaAsincrona_GrabarDatos.IsBusy)
|
|
Application.DoEvents();
|
|
}
|
|
|
|
//Si termino correctmaente generamos la linea del resumen sino no
|
|
if (g_obj_Controladora.g_bol_GrabarDatos_TerminoCorrectamente)
|
|
{
|
|
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Anadir, true)))
|
|
{
|
|
INTERNO_OpcionesDetalle_Modelo mdl_INTERNO_OpcionesDetalle_Modelo = Datos_Generales.PRV_Opciones_Buscar_Detalles(Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA);
|
|
|
|
//Buscar Opciones Modelo
|
|
P_HorasExtrasLinea frm_P_HorasExtrasLinea = new P_HorasExtrasLinea(P_Base_ValoresGenerales,
|
|
P_Base_FechaTrabajo,
|
|
P_Base_TituloPantalla,
|
|
g_obj_Controladora.g_mdl_INTERNO_KRS_HorasExtrasCabecera_Modelo.id,
|
|
g_lst_INTERNO_Permisos_Modelo,
|
|
g_obj_Controladora.g_lst_INTERNO_KRS_HorasExtrasLineas_Listado_Modelo,
|
|
Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA);
|
|
|
|
//Se llamo desde una pantalla
|
|
frm_P_HorasExtrasLinea.P_Base_TipoAperturaPantalla = 0;
|
|
frm_P_HorasExtrasLinea.P_Base_PantallaPadre_IdentificadorTAG = this.Tag.ToString();
|
|
frm_P_HorasExtrasLinea.P_Base_PantallaOrigen = this;
|
|
frm_P_HorasExtrasLinea.P_Base_TituloPantalla_CaminoHormigas = mdl_INTERNO_OpcionesDetalle_Modelo.descripcion_TituloMantenimiento.ToUpper() + " -> Alta";
|
|
|
|
Funciones_PanelPrincipal.Cargar_PantallaEmpotrada(frm_P_HorasExtrasLinea, Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA);
|
|
}
|
|
else
|
|
{
|
|
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_NOTIENEPERMISO());
|
|
}
|
|
}
|
|
}
|
|
|
|
private void ex_btn_P_HorasExtrasCabecera_Lineas_Ver_Click(object sender, EventArgs e)
|
|
{
|
|
Ver_Lineas();
|
|
}
|
|
private void ex_dgv_P_HorasExtrasCabecera_Lineas_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
Ver_Lineas();
|
|
}
|
|
private void Ver_Lineas()
|
|
{
|
|
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Ver, true)))
|
|
{
|
|
//Ver si hay algunbo seleccionado
|
|
if (ex_dgv_P_HorasExtrasCabecera_Lineas.Rows.Count > 0 && ex_dgv_P_HorasExtrasCabecera_Lineas.SelectedRows.Count > 0)
|
|
{
|
|
INTERNO_OpcionesDetalle_Modelo mdl_INTERNO_OpcionesDetalle_Modelo = Datos_Generales.PRV_Opciones_Buscar_Detalles(Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA);
|
|
|
|
//Buscar Opciones Modelo
|
|
P_HorasExtrasLinea frm_P_HorasExtrasLinea = new P_HorasExtrasLinea(P_Base_ValoresGenerales,
|
|
P_Base_FechaTrabajo,
|
|
P_Base_TituloPantalla,
|
|
g_obj_Controladora.g_mdl_INTERNO_KRS_HorasExtrasCabecera_Modelo.id,
|
|
g_lst_INTERNO_Permisos_Modelo,
|
|
g_obj_Controladora.g_lst_INTERNO_KRS_HorasExtrasLineas_Listado_Modelo,
|
|
Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA);
|
|
|
|
//Se llamo desde una pantalla
|
|
frm_P_HorasExtrasLinea.P_Base_TipoAperturaPantalla = 1;
|
|
frm_P_HorasExtrasLinea.P_Base_id = long.Parse(ex_dgv_P_HorasExtrasCabecera_Lineas.SelectedRows[0].Cells[0].Value.ToString());
|
|
frm_P_HorasExtrasLinea.P_Base_PantallaPadre_IdentificadorTAG = this.Tag.ToString();
|
|
frm_P_HorasExtrasLinea.P_Base_PantallaOrigen = this;
|
|
frm_P_HorasExtrasLinea.P_Base_TituloPantalla_CaminoHormigas = mdl_INTERNO_OpcionesDetalle_Modelo.descripcion_TituloMantenimiento.ToUpper() + " -> Alta";
|
|
|
|
Funciones_PanelPrincipal.Cargar_PantallaEmpotrada(frm_P_HorasExtrasLinea, Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA);
|
|
}
|
|
else
|
|
{
|
|
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_LISTADOS_NOHAYREGISTROSSELECCIONADOS());
|
|
}
|
|
}
|
|
}
|
|
|
|
private void ex_btn_P_HorasExtrasCabecera_Lineas_Borrar_Click(object sender, EventArgs e)
|
|
{
|
|
Delete_Lineas();
|
|
}
|
|
private void Delete_Lineas()
|
|
{
|
|
if ((Datos_Generales.Permisos_Comprobar(Variables.G_STR_OPCION_KRS_HORASEXTRASLINEA, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Borrar, true)))
|
|
{
|
|
if (ex_dgv_P_HorasExtrasCabecera_Lineas.Rows.Count > 0 && ex_dgv_P_HorasExtrasCabecera_Lineas.SelectedRows.Count > 0)
|
|
{
|
|
List<long> lst_idLineas = new List<long>();
|
|
foreach (DataGridViewRow obj_DataGridViewRow in ex_dgv_P_HorasExtrasCabecera_Lineas.SelectedRows)
|
|
{
|
|
lst_idLineas.Add(Convert.ToInt64(obj_DataGridViewRow.Cells[nameof(KRS_HorasExtrasLineas.id)].Value.ToString()));
|
|
}
|
|
|
|
g_obj_Controladora.BorrarDatos_Lineas(lst_idLineas);
|
|
}
|
|
else
|
|
{
|
|
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_LISTADOS_HAYMASDEUNREGISTROSELECCIONADO());
|
|
}
|
|
}
|
|
}
|
|
|
|
private void ex_btn_P_HorasExtrasCabecera_Lineas_CambiarOrden_Click(object sender, EventArgs e)
|
|
{
|
|
CambiarOrden();
|
|
}
|
|
private void CambiarOrden()
|
|
{
|
|
try
|
|
{
|
|
|
|
|
|
//Ver si hay alguno seleccionado
|
|
string str_OrdenSeleccionado = "";
|
|
if (ex_dgv_P_HorasExtrasCabecera_Lineas.Rows.Count > 0 && ex_dgv_P_HorasExtrasCabecera_Lineas.SelectedRows.Count > 0)
|
|
{
|
|
//orden Antiguo del primer registro selccionado
|
|
str_OrdenSeleccionado = ex_dgv_P_HorasExtrasCabecera_Lineas.SelectedRows[0].Cells[nameof(INTERNO_KRS_HorasExtrasLineas_Listado_Modelo.ordenAplicacion)].Value.ToString();
|
|
|
|
//Lineas seleccionadas
|
|
List<long> lst_idsHorasExtrasLineas_Seleccionadas = new List<long>();
|
|
foreach (DataGridViewRow dgvr in ex_dgv_P_HorasExtrasCabecera_Lineas.SelectedRows)
|
|
{
|
|
lst_idsHorasExtrasLineas_Seleccionadas.Add(long.Parse(dgvr.Cells[0].Value.ToString()));
|
|
}
|
|
|
|
//Abrir la pantalla
|
|
PE_EscribirTextoNumero frm_PE_EscribirTextoNumero = new PE_EscribirTextoNumero("Seleccionar el orden", "Orden", G_ENUM_TEXTBOX_TIPODATO.Digitos, 4, 4, 0, str_OrdenSeleccionado);
|
|
frm_PE_EscribirTextoNumero.ShowDialog();
|
|
|
|
if (frm_PE_EscribirTextoNumero.PE_EscribirTextoNumero_Valor.Trim().Length > 0)
|
|
{
|
|
g_obj_Controladora.Lineas_Actualizar_Orden(lst_idsHorasExtrasLineas_Seleccionadas, int.Parse(frm_PE_EscribirTextoNumero.PE_EscribirTextoNumero_Valor.Trim()));
|
|
}
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Control_Errores.Errores_Log("", ex, nameof(P_HorasExtrasCabecera) + "/" + nameof(CambiarOrden));
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Eventos del paginador
|
|
protected void ctu_Paginacion_Primera_Click(object sender, EventArgs e)
|
|
{
|
|
if (g_obj_Controladora.ComprobarCambios()) //Si no han habido contratiempospasamos a la pagina indicada
|
|
{
|
|
if (g_obj_Funciones_Paginador.Primera())
|
|
{
|
|
//Asignando al control la pagina actual.
|
|
Exferia_Paginador_HorasExtrasCabecera.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();
|
|
}
|
|
}
|
|
}
|
|
|
|
private 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_HorasExtrasCabecera.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_HorasExtrasCabecera.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_HorasExtrasCabecera.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_HorasExtrasCabecera.txt_ValorPaginaActual - 1);
|
|
|
|
//Asignamos al control la pagina actual
|
|
Exferia_Paginador_HorasExtrasCabecera.PaginaActual = g_obj_Funciones_Paginador.GetPaginaActual();
|
|
|
|
//Regrescamos el listad 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 modifica algo
|
|
private void Controlar_Modificaciones_TextBox_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
|
|
|
|
|
|
}
|
|
}
|