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

320 lines
13 KiB
C#

using Exferia_Aplicacion.General;
using Exferia_Aplicacion.Visualizacion;
using Exferia_Controles;
using Exferia_Controles.ControlesAuxiliares;
using Exferia_EntityFramework;
using Exferia_General;
using Exferia_KairosPRO._4_Vistas.Controladoras;
using Exferia_KairosPRO._4_Vistas.ControlesPersonalizados_DentroPaneles;
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_Pausas_Detalle : Exferia_Formularios.P_Base_Mantenimientos
{
#region Variables Generales
private P_Pausas_Detalle_Controladora g_obj_Controladora;
public 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;
//Variables paginador
public Funciones_Paginador g_obj_Funciones_Paginador;
private Timer g_timer_Paginar = new Timer();
#endregion
#region Objetos en Pantalla
//Exferia_comboBox
internal Exferia_ComboBox Exferia_ComboBox_Tipo { get { return ex_cbo_P_Pausas_Detalle_Tipo; } }
internal Exferia_ComboBox Exferia_comboBox_InicioFin { get { return ex_cbo_P_Pausas_InicioFin; } }
internal Exferia_ComboBox Exferia_comboBox_TipoDispositivo { get { return ex_cbo_P_Pausas_TipoDispositivo; } }
//Exferia_checkBox
internal Exferia_CheckBox Exferia_checkBox_Anulado { get{ return ex_chk_P_Pausas_Anulado; } }
//Exferia_FechaSeleccion
internal Exferia_FechaSeleccion Exferia_FechaSeleccion_Pausa { get { return ex_usc_P_Pausas_Detalle_FechaHora; } }
//Exferia_F3
internal Exferia_F3 Exferia_F3_Terminal { get { return ex_usc_P_Pausas_Detalle_Terminal; } }
internal Exferia_F3_SoloSeleccion Exferia_F3_DispositivoModelo { get { return ex_usc_P_Pausas_Detalle_DispositivoModelo; } }
//Exferia_Label
internal Exferia_Label Exferia_Label_Jornada { get { return ex_lbl_P_Pausas_Detalle_Jornada; } }
internal Exferia_Label Exferia_Label_Hora { get { return ex_lbl_P_Pausas_Detalle_Hora; }}
internal Exferia_Label Exferia_Label_Tipo { get { return ex_lbl_P_Pausas_Detalle_Tipo; } }
//Mapa
internal CTU_Mapa CTU_Mapa { get { return ctu_P_Pausas_Mapa; } }
//PicturaBox
internal PictureBox PictureBox_FotoPausa { get { return pcb_P_Pausas_Detalle_FotoPausa; } }
//Exferia_Panel_degradado
internal Exferia_Panel_Degradado Exferia_Panel_Degradado_Pausas { get { return ex_pnl_P_Pausas_Detalle_JornadaPausas; } }
//Exferia_TextBox
internal Exferia_TextBox Exferia_TextBox_Observaciones { get { return ex_txt_P_Pausas_Detalle_Observaciones; } }
internal Exferia_TextBox_ConMascara Exferia_TextBox_Hora { get { return ex_txt_P_Pausas_Detalle_Hora; } }
#endregion
#region Constructor
public P_Pausas_Detalle(INTERNO_ValoresGenerales_Modelo _mdl_INTERNO_ValoresGenerales_Modelo,
DateTime _dtt_FechaTrabajo,
PRV_OpcionesDetalle _mdl_PRV_OpcionesDetalle,
KRSS_Pausas _mdl_KRSS_Pausas,
KRS_JornadasCabecera _mdl_KRS_JornadasCabecera,
DateTime _dtt_Dia_De_Hoy,
long _lng_idEmpleado)
{
InitializeComponent();
Repintar.Empezar(this);
Repintar.Empezar(CTU_Mapa);
CheckForIllegalCrossThreadCalls = false;
//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_Pausas_Detalle_Controladora(this, _dtt_Dia_De_Hoy, _mdl_KRS_JornadasCabecera, _lng_idEmpleado);
//relleno el modelo con la Pausa
g_obj_Controladora.g_mdl_KRSS_Pausas = _mdl_KRSS_Pausas;
//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 pueden bloquear o de slol lectura
ex_btn_P_Pausas_Detalle_Guardar.Exferia_Button_Bloqueable = false;
//Mirar si no se puede Borrar entonces se bloquea de CheckBox de anular
if ((P_Base_TipoAperturaPantalla != 0 && Datos_Generales.Permisos_Comprobar(g_mdl_PRV_OpcionesDetalle.opcion, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Borrar, false)) == false)
{
//Bloqueo el CheckBox de anular
ex_chk_P_Pausas_Anulado.Enabled = false;
}
//Titulo de la Pantalla .............................................................................
P_Base_TituloPantalla = g_mdl_PRV_OpcionesDetalle.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_Pausas_Detalle) + "/" + nameof(P_Pausas_Detalle));
}
}
//....................................................................................................
//Bloquear pantalla hasta que termine la carga por defecto .....
Enabled = false;
//.............................................................
//Rellenar los F3 ..............................................
//Terminal
ex_usc_P_Pausas_Detalle_Terminal.Exferia_F3_PRINCIPAL_Opcion_BuscarDatos = Variables.G_STR_OPCION_KRS_TERMINALES;
ex_usc_P_Pausas_Detalle_Terminal.Exferia_F3_PRINCIPAL_BUSCARTITULO = false;
ex_usc_P_Pausas_Detalle_Terminal.Exferia_F3_PRINCIPAL_Obligatorio = false;
ex_usc_P_Pausas_Detalle_Terminal.Exferia_F3_PantallaContenedora = this;
//Dispositivo
ex_usc_P_Pausas_Detalle_DispositivoModelo.Exferia_F3_SoloSeleccion_PRINCIPAL_Opcion_BuscarDatos = Variables.G_STR_OPCION_KRSS_DISPOSITIVOSMODELO;
ex_usc_P_Pausas_Detalle_DispositivoModelo.Exferia_F3_SoloSeleccion_PRINCIPAL_Obligatorio = true;
ex_usc_P_Pausas_Detalle_DispositivoModelo.Exferia_F3_SoloSeleccion_PRINCIPAL_BUSCARTITULO = false;
ex_usc_P_Pausas_Detalle_DispositivoModelo.Exferia_F3_SoloSeleccion_PantallaContenedora = this;
ex_usc_P_Pausas_Detalle_FechaHora.Exferia_FechaSeleccion_Fecha = _dtt_Dia_De_Hoy.ToString();
}
catch (Control_Errores)
{ }
catch (Exception ex)
{
//No se muestra mensaje pero se guarda en el log
Control_Errores.Errores_Log("", ex, nameof(P_Pausas_Detalle) + "/" + nameof(P_Pausas_Detalle));
}
finally
{
//Bloquear pantalla hasta que termine la carga por defecto .....
this.Enabled = true;
//.............................................................
}
}
#endregion
#region Inicio de Pantalla
private void P_Pausas_Detalle_shown(object sender, EventArgs e)
{
try
{
if (g_bol_ConstructorPantalla_Terminado_Correctamente)
{
//Si el Tipo de Apertira de Pantalla es Añair(g_int_tipoAperturaPantalla = 0), se desactivan los botones correcpondientes
//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;
//Poner Teto predeterminado y foco
ex_txt_P_Pausas_Detalle_Hora.Focus();
g_obj_Controladora.RecargarDatos(-1);
g_obj_Controladora.g_bol_Termino_CargaDatos_Inicial = false;
}
//Modificar
else
{
g_obj_Controladora.RecargarDatos(g_obj_Controladora.g_mdl_KRSS_Pausas.id);
}
}
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_Pausas_Detalle) + "/" + nameof(P_Pausas_Detalle_shown));
Mensajes.MostrarMensaje(Mensajes.G_STR_MENSAJES_GENERAL_ERROR_CARGARDATOSPANTALLA());
Salir_P_Base();
}
}
#endregion
#region Botones Grabar, Borrar, BorrarImagen , BuscarImagen y Eventos
private void ex_btn_P_Pausas_Detalle_Guardar_Click(object sender, EventArgs e)
{
Grabar();
}
private void Grabar()
{
if (Datos_Generales.Permisos_Comprobar(g_mdl_PRV_OpcionesDetalle.opcion, g_lst_INTERNO_Permisos_Modelo, (int)G_ENUM_PERMISOS.Modificar, true))
{
g_obj_Controladora.GrabarDatos(true);
}
}
private void ex_btn_P_Pausas_BorrarImagen_Click(object sender, EventArgs e)
{
pcb_P_Pausas_Detalle_FotoPausa.Image = null;
pcb_P_Pausas_Detalle_FotoPausa.Tag = "";
g_obj_Controladora.g_img_Foto_Pausa = null;
}
#endregion
private void ex_cbo_P_Pausas_TipoDispositivo_SelectedIndexChanged(object sender, EventArgs e)
{
if (ex_cbo_P_Pausas_TipoDispositivo.SelectedItem != null)
{
if (((INTERNO_ComboBox_Modelo)ex_cbo_P_Pausas_TipoDispositivo.SelectedItem).Identificador == Variables.G_INT_TIPODISPOSITIVO_OFICINA_CODIGO.ToString())
{
ex_usc_P_Pausas_Detalle_Terminal.Visible = true;
}
else
{
ex_usc_P_Pausas_Detalle_Terminal.Visible = false;
}
}
}
#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;
}
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_CheckBox_CheckedChanged(object sender, EventArgs e)
{
Controlar_Modificaciones();
}
private void Controlar_Modificaciones_ComboBox_SelectedIndexChanged(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
#region Eventos de TabPage
private void ex_tbc_P_Pausas_Detalle_Selected(object sender, TabControlEventArgs e)
{
if (e != null)
{
//Cargar el Mapa solo si se selecciona en la pestaña
if (e.TabPage.Text.Equals("Mapa"))
{
g_obj_Controladora.RecargarMapa();
}
}
}
#endregion
}
}