public void AddALaAuthorizacionDelPeriodo(LogCalculoVacaciones log, int periodo) { var lineas_del_periodo = lineas.FindAll(l => l.PeriodoAutorizado == periodo); var index_of_primer_linea_proximo_periodo = IndexOfPrimerLineaProximoPeriodo(periodo); lineas.Insert(index_of_primer_linea_proximo_periodo, log); //throw new NotImplementedException(); }
public void LasAutorizadasSinDescontarSon(List <VacacionesPermitidas> vacas_perdidas, List <VacacionesPermitidas> permitidas) { List <LogCalculoVacaciones> perdidas = new List <LogCalculoVacaciones>(); permitidas.ForEach(perm => { var linea_del_periodo = lineas.Find(l => l.PeriodoAutorizado == perm.Periodo); if (linea_del_periodo != null) { if (linea_del_periodo.CantidadDiasAutorizados != perm.CantidadDeDias()) { var dias_perdidos = perm.CantidadDeDias() - linea_del_periodo.CantidadDiasAutorizados; linea_del_periodo.CantidadDiasAutorizados = perm.CantidadDeDias(); var per = new LogCalculoVacaciones(); per.PeriodoAutorizado = perm.Periodo; per.CantidadDiasDescontados = dias_perdidos; per.PerdidaExplicitamente = true; var vp = vacas_perdidas.Find(v => v.Periodo == perm.Periodo); if (vp != null) { per.Observacion = vp.Observacion; } perdidas.Add(per); } } }); perdidas.ForEach(p => { var index = 0; var found = false; var primera = lineas.Find(l => l.PeriodoAutorizado == p.PeriodoAutorizado); index = lineas.IndexOf(primera) + 1; for (int i = lineas.IndexOf(primera) + 1; i < lineas.Count; i++) { if (lineas[i].PeriodoAutorizado == 0 && !found) { index = i; } else { found = true; } } p.PeriodoAutorizado = 0; lineas.Insert(index, p); }); }
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(); } }
private static bool lineaConAcarreoDeLineaAnterior(LogCalculoVacaciones linea) { return(linea.LicenciaDesde.Equals(DateTime.MinValue) && linea.CantidadDiasDescontados != 0); }
protected bool HaySolicitudPosteriorA(LogCalculoVacaciones logCalculoVacaciones) { var lineas_posteriores = lineas.GetRange(this.lineas.IndexOf(logCalculoVacaciones), lineas.Count - this.lineas.IndexOf(logCalculoVacaciones)); return(lineas_posteriores.Any(l => !l.LicenciaDesde.Equals(DateTime.MinValue))); }
public void Add(LogCalculoVacaciones logCalculoVacaciones) { lineas.Add(logCalculoVacaciones); }
protected bool LineaCompleta(LogCalculoVacaciones linea) { return(!(linea.LicenciaDesde.Equals(DateTime.MinValue) && linea.CantidadDiasDescontados == 0)); }