Example #1
0
        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)
            });
        }
Example #2
0
        public override List <CantidadDeDiasPorPeriodo> AnioMaximoImputable(SolicitudesDeVacaciones aprobadas)
        {
            var dias_periodo = aprobadas.CantidadDeDias();

            return(new List <CantidadDeDiasPorPeriodo>()
            {
                new CantidadDeDiasPorPeriodo(GetAnioimputable(aprobadas.Hasta()), dias_periodo)
            });
        }
Example #3
0
        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);
        }
Example #4
0
        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();
            }
        }