568 lines
28 KiB
C#
568 lines
28 KiB
C#
using Exferia_Aplicacion.General;
|
|
using Exferia_Aplicacion.Visualizacion;
|
|
using Exferia_EntityFramework;
|
|
using Exferia_KairosPRO.General;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
|
|
namespace Exferia_KairosPRO._4_Vistas
|
|
{
|
|
public partial class PE_FiltrosCalendario : Exferia_Formularios.P_Base
|
|
{
|
|
#region Variables privadas
|
|
private GEN_EjerciciosActivos_Empresa g_mdl_GEN_EjerciciosActivos_Empresa=null;
|
|
private List<INTERNO_CodigoDescripcion_Modelo> g_lst_Dias = new List<INTERNO_CodigoDescripcion_Modelo>();
|
|
private List<INTERNO_CodigoDescripcion_Modelo> g_lst_Meses = new List<INTERNO_CodigoDescripcion_Modelo>();
|
|
|
|
public List<DateTime> g_lst_Fechas_Dias = new List<DateTime>();
|
|
#endregion
|
|
|
|
#region Constructor
|
|
public PE_FiltrosCalendario(GEN_EjerciciosActivos_Empresa _mdl_GEN_EjerciciosActivos_Empresa)
|
|
{
|
|
InitializeComponent();
|
|
|
|
Repintar.Empezar(this);
|
|
|
|
g_mdl_GEN_EjerciciosActivos_Empresa = _mdl_GEN_EjerciciosActivos_Empresa;
|
|
|
|
Cargar_Dias();
|
|
Cargar_Meses();
|
|
}
|
|
#endregion
|
|
|
|
#region Cargar Meses, Dias
|
|
private void Cargar_Meses()
|
|
{
|
|
try
|
|
{
|
|
//Pintar los Dias
|
|
int int_MesesTotales = Math.Abs((g_mdl_GEN_EjerciciosActivos_Empresa.temporadaFechaFin.Month - g_mdl_GEN_EjerciciosActivos_Empresa.temporadaFechaInicio.Month) + 12 * (g_mdl_GEN_EjerciciosActivos_Empresa.temporadaFechaFin.Year - g_mdl_GEN_EjerciciosActivos_Empresa.temporadaFechaInicio.Year));
|
|
|
|
int int_Inicial_Mes = g_mdl_GEN_EjerciciosActivos_Empresa.temporadaFechaInicio.Month;
|
|
int int_Inicial_Anyo = g_mdl_GEN_EjerciciosActivos_Empresa.temporadaFechaInicio.Year;
|
|
for (int int_Contador=0; int_Contador<= int_MesesTotales; int_Contador ++)
|
|
{
|
|
if (int_Inicial_Mes == 1)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("1_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_ENERO + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 2)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("2_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_FEBRERO + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 3)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("3_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_MARZO + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 4)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("4_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_ABRIL + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 5)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("5_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_MAYO + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 6)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("6_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_JUNIO + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 7)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("7_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_JULIO + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 8)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("8_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_AGOSTO + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 9)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("9_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_SEPTIEMBRE + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 10)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("10_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_OCTUBRE + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 11)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("11_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_NOVIEMBRE + " " + int_Inicial_Anyo));
|
|
}
|
|
else if (int_Inicial_Mes == 12)
|
|
{
|
|
g_lst_Meses.Add(new INTERNO_CodigoDescripcion_Modelo("12_" + int_Inicial_Anyo, Variables.G_STR_CALENDARIO_MES_DICIEMBRE + " " + int_Inicial_Anyo));
|
|
}
|
|
|
|
|
|
//Sumar Mes y año si hiciera falta ........
|
|
if (int_Inicial_Mes == 12)
|
|
{
|
|
int_Inicial_Mes = 1;
|
|
int_Inicial_Anyo += 1;
|
|
}
|
|
else
|
|
{
|
|
int_Inicial_Mes += 1;
|
|
}
|
|
//.........................................
|
|
|
|
}
|
|
|
|
//Añadir al CheckboxList
|
|
ex_chklst_Meses.DataSource = g_lst_Meses;
|
|
ex_chklst_Meses.DisplayMember = nameof(INTERNO_CodigoDescripcion_Modelo.Descripcion);
|
|
ex_chklst_Meses.ValueMember = nameof(INTERNO_CodigoDescripcion_Modelo.Codigo);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Control_Errores.Errores_Log("", ex, nameof(PE_FiltrosCalendario) + "" + nameof(Cargar_Meses));
|
|
}
|
|
}
|
|
|
|
private void Cargar_Dias()
|
|
{
|
|
try
|
|
{
|
|
//Rellenar el Listado de Dias de la Semana
|
|
g_lst_Dias.Add(new INTERNO_CodigoDescripcion_Modelo(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_LUNES, Variables.G_STR_CALENDARIO_DIASEMANA_LUNES));
|
|
g_lst_Dias.Add(new INTERNO_CodigoDescripcion_Modelo(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_MARTES, Variables.G_STR_CALENDARIO_DIASEMANA_MARTES));
|
|
g_lst_Dias.Add(new INTERNO_CodigoDescripcion_Modelo(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_MIERCOLES, Variables.G_STR_CALENDARIO_DIASEMANA_MIERCOLES));
|
|
g_lst_Dias.Add(new INTERNO_CodigoDescripcion_Modelo(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_JUEVES, Variables.G_STR_CALENDARIO_DIASEMANA_JUEVES));
|
|
g_lst_Dias.Add(new INTERNO_CodigoDescripcion_Modelo(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_VIERNES, Variables.G_STR_CALENDARIO_DIASEMANA_VIERNES));
|
|
g_lst_Dias.Add(new INTERNO_CodigoDescripcion_Modelo(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_SABADO, Variables.G_STR_CALENDARIO_DIASEMANA_SABADO));
|
|
g_lst_Dias.Add(new INTERNO_CodigoDescripcion_Modelo(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_DOMINGO, Variables.G_STR_CALENDARIO_DIASEMANA_DOMINGO));
|
|
|
|
//Añadir al CheckboxList
|
|
ex_chklst_Dias.DataSource = g_lst_Dias;
|
|
ex_chklst_Dias.DisplayMember = nameof(INTERNO_CodigoDescripcion_Modelo.Descripcion);
|
|
ex_chklst_Dias.ValueMember = nameof(INTERNO_CodigoDescripcion_Modelo.Codigo);
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
Control_Errores.Errores_Log("", ex, nameof(PE_FiltrosCalendario) + "" + nameof(Cargar_Dias));
|
|
}
|
|
}
|
|
#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;
|
|
}
|
|
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)
|
|
{
|
|
P_Base_SeModificoDatosPantalla = true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region Botones Filtros, Confirmar
|
|
private void ex_btn_PE_FiltrosCalendario_Click(object sender, EventArgs e)
|
|
{
|
|
g_lst_Fechas_Dias.Clear();
|
|
Confirmar();
|
|
}
|
|
|
|
private void Confirmar()
|
|
{
|
|
try
|
|
{
|
|
//Validaciones
|
|
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo_VALIDACION = ValidarDatos();
|
|
if (mdl_ValorDevuelto_Modelo_VALIDACION.TodoCorrecto == false)
|
|
{
|
|
if (mdl_ValorDevuelto_Modelo_VALIDACION.Mensaje.Trim().Length > 0)
|
|
{
|
|
Mensajes.MostrarMensaje(mdl_ValorDevuelto_Modelo_VALIDACION.Mensaje);
|
|
|
|
//Poner el Foco en el objeto que tuvoel problema en validar
|
|
if (mdl_ValorDevuelto_Modelo_VALIDACION.Objeto != null)
|
|
{
|
|
Funciones.Poner_Foco_Objeto(null,mdl_ValorDevuelto_Modelo_VALIDACION.Objeto);
|
|
}
|
|
}
|
|
}
|
|
//Todo Correcto
|
|
else
|
|
{
|
|
List<INTERNO_CodigoDescripcion_Modelo> lst_Meses_Seleccionados = ex_chklst_Meses.CheckedItems.Cast<INTERNO_CodigoDescripcion_Modelo>().ToList();
|
|
List<INTERNO_CodigoDescripcion_Modelo> lst_Dias_Seleccionados = ex_chklst_Dias.CheckedItems.Cast<INTERNO_CodigoDescripcion_Modelo>().ToList();
|
|
|
|
int int_SemanaInicial = int.Parse(ex_txt_PE_FiltrosCalendario_SemenaInicio.Text);
|
|
int int_IntervaloSemanas = int.Parse(ex_txt_PE_FiltrosCalendario_IntervalosSemanas.Text);
|
|
|
|
//Mes y año Inicial
|
|
string[] arr_MesAnyo_Inicial= lst_Meses_Seleccionados[0].Codigo.Split('_');
|
|
int int_Inicial_Mes = int.Parse(arr_MesAnyo_Inicial[0]);
|
|
int int_Inicial_Anyo = int.Parse(arr_MesAnyo_Inicial[1]);
|
|
|
|
//Mes y año Final
|
|
string[] arr_MesAnyo_Final = lst_Meses_Seleccionados[lst_Meses_Seleccionados.Count-1].Codigo.Split('_');
|
|
int int_Final_Mes = int.Parse(arr_MesAnyo_Final[0]);
|
|
int int_Final_Anyo = int.Parse(arr_MesAnyo_Final[1]);
|
|
|
|
int int_MesesTotales = Math.Abs((int_Final_Mes - int_Inicial_Mes) + 12 * (int_Final_Anyo - int_Inicial_Anyo));
|
|
|
|
int int_CalculoIntervaloSemana = -1;
|
|
for (int int_Contador=0; int_Contador<= int_MesesTotales; int_Contador++)
|
|
{
|
|
//Listado de Semanas Por Mes
|
|
List<INTERNA_SEMANAS> lst_INTERNA_SEMANAS = Devolver_Semanas_Mes(int_Inicial_Mes, int_Inicial_Anyo);
|
|
|
|
//Semana que Empiezo a coger los dias
|
|
for (int int_Contador_Semanas = (int_SemanaInicial-1); int_Contador_Semanas < lst_INTERNA_SEMANAS.Count; int_Contador_Semanas++)
|
|
{
|
|
//Si es la primera o si ya se salto las semanas del intervalo
|
|
if ((int_CalculoIntervaloSemana==-1) || int_IntervaloSemanas == int_CalculoIntervaloSemana)
|
|
{
|
|
//Esta Seleccionado
|
|
if (lst_Meses_Seleccionados.Where(m => m.Codigo.Equals(int_Inicial_Mes + "_" + int_Inicial_Anyo)).FirstOrDefault() != null)
|
|
{
|
|
//Añadir dias de la semana ..............................................................................................................
|
|
//Dias entre Fechas
|
|
TimeSpan obj_TimeSpan = lst_INTERNA_SEMANAS[int_Contador_Semanas].Fecha_Hasta - lst_INTERNA_SEMANAS[int_Contador_Semanas].Fecha_Desde;
|
|
int intDiasTotales_EntreFechas = obj_TimeSpan.Days;
|
|
DateTime dtt_Fecha_Aux = lst_INTERNA_SEMANAS[int_Contador_Semanas].Fecha_Desde;
|
|
|
|
for (int int_Contador_EntreDias = 0; int_Contador_EntreDias <= intDiasTotales_EntreFechas; int_Contador_EntreDias++)
|
|
{
|
|
DayOfWeek dow_primerDia = new DateTime(dtt_Fecha_Aux.Year, dtt_Fecha_Aux.Month, dtt_Fecha_Aux.Day).DayOfWeek;
|
|
|
|
//Dias de la Semana
|
|
if (dow_primerDia.Equals(DayOfWeek.Monday))
|
|
{
|
|
if (lst_Dias_Seleccionados.Where(m => m.Codigo.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_LUNES)).FirstOrDefault() != null)
|
|
{
|
|
g_lst_Fechas_Dias.Add(dtt_Fecha_Aux);
|
|
}
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Tuesday))
|
|
{
|
|
if (lst_Dias_Seleccionados.Where(m => m.Codigo.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_MARTES)).FirstOrDefault() != null)
|
|
{
|
|
g_lst_Fechas_Dias.Add(dtt_Fecha_Aux);
|
|
}
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Wednesday))
|
|
{
|
|
if (lst_Dias_Seleccionados.Where(m => m.Codigo.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_MIERCOLES)).FirstOrDefault() != null)
|
|
{
|
|
g_lst_Fechas_Dias.Add(dtt_Fecha_Aux);
|
|
}
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Thursday))
|
|
{
|
|
if (lst_Dias_Seleccionados.Where(m => m.Codigo.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_JUEVES)).FirstOrDefault() != null)
|
|
{
|
|
g_lst_Fechas_Dias.Add(dtt_Fecha_Aux);
|
|
}
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Friday))
|
|
{
|
|
if (lst_Dias_Seleccionados.Where(m => m.Codigo.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_VIERNES)).FirstOrDefault() != null)
|
|
{
|
|
g_lst_Fechas_Dias.Add(dtt_Fecha_Aux);
|
|
}
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Saturday))
|
|
{
|
|
if (lst_Dias_Seleccionados.Where(m => m.Codigo.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_SABADO)).FirstOrDefault() != null)
|
|
{
|
|
g_lst_Fechas_Dias.Add(dtt_Fecha_Aux);
|
|
}
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Sunday))
|
|
{
|
|
if (lst_Dias_Seleccionados.Where(m => m.Codigo.Equals(Variables.G_STR_CALENDARIO_DIASEMANA_INICIAL_DOMINGO)).FirstOrDefault() != null)
|
|
{
|
|
g_lst_Fechas_Dias.Add(dtt_Fecha_Aux);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
dtt_Fecha_Aux = dtt_Fecha_Aux.AddDays(1);
|
|
}
|
|
//..........................................................................................................................................
|
|
}
|
|
|
|
int_CalculoIntervaloSemana = 0;
|
|
}
|
|
else
|
|
{
|
|
int_CalculoIntervaloSemana += 1;
|
|
}
|
|
}
|
|
int_SemanaInicial = 1;
|
|
|
|
|
|
//El ultimo dia del mes anterior no fue un domingo, pues calculo intervalo se reinicia ...................................
|
|
int int_TotalDias_Del_Mes = DateTime.DaysInMonth(int_Inicial_Anyo, int_Inicial_Mes);
|
|
DayOfWeek dow_UltimoDiaMes = new DateTime(int_Inicial_Anyo, int_Inicial_Mes, int_TotalDias_Del_Mes).DayOfWeek;
|
|
if (!dow_UltimoDiaMes.Equals(DayOfWeek.Sunday))
|
|
{
|
|
if (int_CalculoIntervaloSemana==0)
|
|
{
|
|
int_CalculoIntervaloSemana = int_IntervaloSemanas;
|
|
}
|
|
else
|
|
{
|
|
int_CalculoIntervaloSemana -= 1;
|
|
}
|
|
|
|
}
|
|
//.........................................................................................................................
|
|
|
|
//Sumar Mes y año si hiciera falta ........
|
|
if (int_Inicial_Mes == 12)
|
|
{
|
|
int_Inicial_Mes = 1;
|
|
int_Inicial_Anyo += 1;
|
|
}
|
|
else
|
|
{
|
|
int_Inicial_Mes += 1;
|
|
}
|
|
//.........................................
|
|
}
|
|
|
|
this.Close();
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Control_Errores.Errores_Log("", ex, nameof(PE_FiltrosCalendario) + "/" + nameof(Confirmar));
|
|
}
|
|
}
|
|
|
|
private List<INTERNA_SEMANAS> Devolver_Semanas_Mes(int _int_Mes,int _int_Anyo)
|
|
{
|
|
List<INTERNA_SEMANAS> lst_INTERNA_SEMANAS = new List<INTERNA_SEMANAS>();
|
|
|
|
int int_TotalDias_Del_Mes = DateTime.DaysInMonth(_int_Anyo, _int_Mes);
|
|
DayOfWeek dow_primerDia = new DateTime(_int_Anyo, _int_Mes, 1).DayOfWeek;
|
|
|
|
//Dias de la Semena a SUmar para llegar al fin de la semana
|
|
int int_DiasASumar = 0;
|
|
if (dow_primerDia.Equals(DayOfWeek.Monday))
|
|
{
|
|
int_DiasASumar = 6;
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Tuesday))
|
|
{
|
|
int_DiasASumar = 5;
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Wednesday))
|
|
{
|
|
int_DiasASumar = 4;
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Thursday))
|
|
{
|
|
int_DiasASumar = 3;
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Friday))
|
|
{
|
|
int_DiasASumar = 2;
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Saturday))
|
|
{
|
|
int_DiasASumar = 1;
|
|
}
|
|
else if (dow_primerDia.Equals(DayOfWeek.Sunday))
|
|
{
|
|
int_DiasASumar = 0;
|
|
}
|
|
|
|
//Primera Semana .............................................................
|
|
INTERNA_SEMANAS mdl_INTERNA_SEMANAS = new INTERNA_SEMANAS();
|
|
mdl_INTERNA_SEMANAS.Numero = 1;
|
|
DateTime dtt_FechaInicio_Semana = new DateTime(_int_Anyo, _int_Mes, 1);
|
|
mdl_INTERNA_SEMANAS.Fecha_Desde = dtt_FechaInicio_Semana;
|
|
|
|
DateTime dtt_FechaFin_Semana = dtt_FechaInicio_Semana.AddDays(int_DiasASumar);
|
|
mdl_INTERNA_SEMANAS.Fecha_Hasta = dtt_FechaFin_Semana;
|
|
//Add
|
|
lst_INTERNA_SEMANAS.Add(mdl_INTERNA_SEMANAS);
|
|
//............................................................................
|
|
|
|
//Resto de las Semanas
|
|
for (int int_Contador_PorSemena = 1; int_Contador_PorSemena <= 5; int_Contador_PorSemena++)
|
|
{
|
|
if (dtt_FechaFin_Semana.AddDays(1).Month > _int_Mes || dtt_FechaFin_Semana.AddDays(1).Year> _int_Anyo)
|
|
{
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
dtt_FechaFin_Semana = dtt_FechaFin_Semana.AddDays(1);
|
|
|
|
//Siguiente Semana .............................................................
|
|
INTERNA_SEMANAS mdl_INTERNA_SEMANAS_Siguiente = new INTERNA_SEMANAS();
|
|
mdl_INTERNA_SEMANAS_Siguiente.Numero = (int_Contador_PorSemena + 1);
|
|
mdl_INTERNA_SEMANAS_Siguiente.Fecha_Desde = dtt_FechaFin_Semana;
|
|
|
|
if (dtt_FechaFin_Semana.AddDays(6).Month > _int_Mes || dtt_FechaFin_Semana.AddDays(6).Year > _int_Anyo)
|
|
{
|
|
mdl_INTERNA_SEMANAS_Siguiente.Fecha_Hasta = new DateTime(_int_Anyo, _int_Mes, int_TotalDias_Del_Mes);
|
|
lst_INTERNA_SEMANAS.Add(mdl_INTERNA_SEMANAS_Siguiente);
|
|
break;
|
|
}
|
|
else
|
|
{
|
|
dtt_FechaFin_Semana = dtt_FechaFin_Semana.AddDays(6);
|
|
mdl_INTERNA_SEMANAS_Siguiente.Fecha_Hasta = dtt_FechaFin_Semana;
|
|
}
|
|
|
|
//Add
|
|
lst_INTERNA_SEMANAS.Add(mdl_INTERNA_SEMANAS_Siguiente);
|
|
//............................................................................
|
|
}
|
|
}
|
|
|
|
return lst_INTERNA_SEMANAS;
|
|
}
|
|
|
|
private INTERNO_ValorDevuelto_Modelo ValidarDatos()
|
|
{
|
|
INTERNO_ValorDevuelto_Modelo mdl_ValorDevuelto_Modelo = new INTERNO_ValorDevuelto_Modelo();
|
|
mdl_ValorDevuelto_Modelo.TodoCorrecto = true;
|
|
|
|
try
|
|
{
|
|
//Tiene que tener algun MES seleccionado
|
|
List<INTERNO_CodigoDescripcion_Modelo> lst_Meses_Seleccionados= ex_chklst_Meses.CheckedItems.Cast<INTERNO_CodigoDescripcion_Modelo>().ToList();
|
|
if (lst_Meses_Seleccionados==null || lst_Meses_Seleccionados.Count==0)
|
|
{
|
|
mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
|
|
mdl_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_GENERAL_VALIDACIONES_NOSELECCIONADO("Meses");
|
|
mdl_ValorDevuelto_Modelo.Objeto = ex_chklst_Meses;
|
|
}
|
|
|
|
if (mdl_ValorDevuelto_Modelo.TodoCorrecto)
|
|
{
|
|
//Tiene que tener algun Dia de la Semana seleccionado
|
|
List<INTERNO_CodigoDescripcion_Modelo> lst_DiasSemena_Seleccionados = ex_chklst_Dias.CheckedItems.Cast<INTERNO_CodigoDescripcion_Modelo>().ToList();
|
|
if (lst_DiasSemena_Seleccionados == null || lst_DiasSemena_Seleccionados.Count == 0)
|
|
{
|
|
mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
|
|
mdl_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_GENERAL_VALIDACIONES_NOSELECCIONADO("Días de la semana");
|
|
mdl_ValorDevuelto_Modelo.Objeto = ex_chklst_Dias;
|
|
}
|
|
}
|
|
|
|
//La SemanaInicial tiene que tener algo
|
|
if ((mdl_ValorDevuelto_Modelo.TodoCorrecto) && (ex_txt_PE_FiltrosCalendario_SemenaInicio.Text.Trim().Length == 0))
|
|
{
|
|
mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
|
|
mdl_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_GENERAL_VALIDACIONES_VACIO(ex_txt_PE_FiltrosCalendario_SemenaInicio_Titulo.Text);
|
|
mdl_ValorDevuelto_Modelo.Objeto = ex_txt_PE_FiltrosCalendario_SemenaInicio;
|
|
}
|
|
|
|
|
|
//El Intervalor entre semanas tiene que tener algo
|
|
if ((mdl_ValorDevuelto_Modelo.TodoCorrecto) && (ex_txt_PE_FiltrosCalendario_IntervalosSemanas.Text.Trim().Length == 0))
|
|
{
|
|
mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
|
|
mdl_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_GENERAL_VALIDACIONES_VACIO(ex_txt_PE_FiltrosCalendario_IntervalosSemanas_Titulo.Text);
|
|
mdl_ValorDevuelto_Modelo.Objeto = ex_txt_PE_FiltrosCalendario_IntervalosSemanas;
|
|
}
|
|
|
|
}
|
|
catch (Control_Errores)
|
|
{
|
|
mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
|
|
mdl_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_MENSAJES_GENERAL_ERROR_VALIDARDATOSPANTALLA();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Control_Errores.Errores_Log("", ex, nameof(PE_FiltrosCalendario) + "/" + nameof(ValidarDatos));
|
|
|
|
mdl_ValorDevuelto_Modelo.TodoCorrecto = false;
|
|
mdl_ValorDevuelto_Modelo.Mensaje = Mensajes.G_STR_MENSAJES_GENERAL_ERROR_VALIDARDATOSPANTALLA();
|
|
}
|
|
|
|
return mdl_ValorDevuelto_Modelo;
|
|
}
|
|
#endregion
|
|
|
|
internal class INTERNA_SEMANAS
|
|
{
|
|
public int Numero { get; set; }
|
|
public DateTime Fecha_Desde { get; set; }
|
|
public DateTime Fecha_Hasta { get; set; }
|
|
|
|
}
|
|
|
|
#region Botones Seleccionar Todo Meses, Dias / Deseleccionar Todo Mesas, Dias
|
|
private void ex_btn_Seleccionar_Meses_Click(object sender, EventArgs e)
|
|
{
|
|
Seleccionar_Todo_Meses();
|
|
}
|
|
private void Seleccionar_Todo_Meses()
|
|
{
|
|
for(int int_contador = 0; int_contador < ex_chklst_Meses.Items.Count; int_contador++)
|
|
{
|
|
ex_chklst_Meses.SetItemCheckState(int_contador, CheckState.Checked);
|
|
}
|
|
}
|
|
|
|
private void ex_btn_Seleccionar_Dias_Click(object sender, EventArgs e)
|
|
{
|
|
Seleccionar_Todo_Dias();
|
|
}
|
|
private void Seleccionar_Todo_Dias()
|
|
{
|
|
for(int int_contador = 0; int_contador < ex_chklst_Dias.Items.Count; int_contador++)
|
|
{
|
|
ex_chklst_Dias.SetItemCheckState(int_contador, CheckState.Checked);
|
|
}
|
|
}
|
|
|
|
private void ex_btn_Deseleccionar_Meses_Click(object sender, EventArgs e)
|
|
{
|
|
Deseleccionar_Todo_Meses();
|
|
}
|
|
private void Deseleccionar_Todo_Meses()
|
|
{
|
|
for(int int_contador = 0; int_contador < ex_chklst_Meses.Items.Count; int_contador++)
|
|
{
|
|
ex_chklst_Meses.SetItemCheckState(int_contador, CheckState.Unchecked);
|
|
}
|
|
}
|
|
|
|
private void ex_btn_Deseleccionar_Dias_Click(object sender, EventArgs e)
|
|
{
|
|
Deseleccionar_Todo_Dias();
|
|
}
|
|
private void Deseleccionar_Todo_Dias()
|
|
{
|
|
for(int int_contador = 0; int_contador < ex_chklst_Dias.Items.Count; int_contador++)
|
|
{
|
|
ex_chklst_Dias.SetItemCheckState(int_contador, CheckState.Unchecked);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
}
|
|
}
|