public override List <CantidadDeDiasPorPeriodo> AnioMaximoImputable(SolicitudesDeVacaciones aprobadas) { var dias_primer_periodo = (new DateTime(GetAnioimputable(aprobadas.Hasta()), 11, 30) - aprobadas.Desde()).Days + 1; var dias_segundo_periodo = (aprobadas.Hasta() - new DateTime(GetAnioimputable(aprobadas.Hasta()), 12, 01)).Days + 1; return(new List <CantidadDeDiasPorPeriodo>() { new CantidadDeDiasPorPeriodo(GetAnioimputable(aprobadas.Desde()), dias_primer_periodo), new CantidadDeDiasPorPeriodo(GetAnioimputable(aprobadas.Hasta()), dias_segundo_periodo) }); }
public override List <CantidadDeDiasPorPeriodo> AnioMaximoImputable(SolicitudesDeVacaciones aprobadas) { var dias_periodo = aprobadas.CantidadDeDias(); return(new List <CantidadDeDiasPorPeriodo>() { new CantidadDeDiasPorPeriodo(GetAnioimputable(aprobadas.Hasta()), dias_periodo) }); }
public void Add(VacacionesPermitidas permitidas_consumibles, SolicitudesDeVacaciones solicitud, AnalisisDeLicenciaOrdinaria analisis) { var log = this.lineas.Find(l => l.PeriodoAutorizado == permitidas_consumibles.Periodo); if (analisis.LineaCompleta(log)) { log = new LogCalculoVacaciones() { PeriodoAutorizado = 0, CantidadDiasAutorizados = 0, CantidadDiasDescontados = solicitud.DiasYaImputados(), LicenciaDesde = solicitud.Desde(), LicenciaHasta = solicitud.Hasta() }; analisis.AddALaAuthorizacionDelPeriodo(log, permitidas_consumibles.Periodo); } else { log.CantidadDiasDescontados = solicitud.DiasYaImputados(); log.LicenciaDesde = solicitud.Desde(); log.LicenciaHasta = solicitud.Hasta(); } //var log = new LogCalculoVacaciones() { PeriodoAutorizado = 0, CantidadDiasAutorizados = 0, CantidadDiasDescontados = solicitud.DiasYaImputados(), LicenciaDesde = solicitud.Desde(), LicenciaHasta = solicitud.Hasta() }; //lineas.Add(log); }
public void Add(SolicitudesDeVacaciones aprobadas, VacacionesPermitidas primera_permitida_aplicable) { var linea = lineas.Find(l => l.PeriodoAutorizado.Equals(primera_permitida_aplicable.Periodo)); int index_of_primer_linea_proximo_periodo = IndexOfPrimerLineaProximoPeriodo(primera_permitida_aplicable.Periodo); if (LineaCompleta(linea)) { if (lineas.Count > index_of_primer_linea_proximo_periodo) { linea = lineas[index_of_primer_linea_proximo_periodo]; } if (lineaConAcarreoDeLineaAnterior(linea)) { index_of_primer_linea_proximo_periodo++; } linea = new LogCalculoVacaciones(); if (index_of_primer_linea_proximo_periodo > this.lineas.Count) { this.lineas.Add(linea); } else { this.lineas.Insert(index_of_primer_linea_proximo_periodo, linea); } } linea.CantidadDiasDescontados = aprobadas.CantidadDeDias(); if (!lineas.Any(l => l.LicenciaDesde.Equals(aprobadas.Desde()))) { linea.LicenciaDesde = aprobadas.Desde(); linea.LicenciaHasta = aprobadas.Hasta(); } }