Exemple #1
0
        public override AnalisisDeLicenciaOrdinaria GetAnalisisCalculoVacacionesPara(IRepositorioLicencia repositorio_licencia, IRepositorioDePersonas repositorio_personas, Persona unaPersona, DateTime fecha_de_consulta)
        {
            var analisis       = new AnalisisDeLicenciaOrdinaria();
            var vacas_perdidas = new List <VacacionesPermitidas>();
            var saldo          = new SaldoLicencia();

            saldo.Detalle = new List <SaldoLicenciaDetalle>();

            unaPersona.TipoDePlanta = repositorio_personas.GetTipoDePlantaActualDe(unaPersona);
            var calculador_de_vacaciones = new CalculadorDeVacaciones(repositorio_licencia);

            var aprobadas = this.LicenciasAprobadasPara(repositorio_licencia, unaPersona);
            List <SolicitudesDeVacaciones> solicitudes = new List <SolicitudesDeVacaciones>(aprobadas.ToArray());

            this.LicenciasPendientesPara(repositorio_licencia, unaPersona).ForEach(pendiente => solicitudes.Add(pendiente));
            solicitudes = solicitudes.OrderBy(s => s.Persona.Documento).ThenBy(t => t.Desde()).ToList();
            var permitidas_descontando_perdidas = this.LicenciasPermitidasPara(repositorio_licencia, unaPersona, vacas_perdidas);
            var vacaciones_solicitables         = calculador_de_vacaciones.DiasSolicitables(permitidas_descontando_perdidas, solicitudes, fecha_de_consulta, unaPersona, analisis, vacas_perdidas);
            var permitidas_calculadas           = this.LicenciasCalculadasPara(repositorio_licencia, unaPersona);

            vacaciones_solicitables.ForEach(vac_solic => saldo.Detalle.Add(new SaldoLicenciaDetalle {
                Periodo = vac_solic.Periodo(), Disponible = vac_solic.CantidadDeDias()
            }));
            analisis.SetCalculoSinDescuento(permitidas_calculadas);
            analisis.Saldo = vacaciones_solicitables;
            return(analisis);
        }
Exemple #2
0
 public TipoDePlanta InstanciaDeSubclase(IRepositorioLicencia repo)
 {
     if (this.Id == 22)
     {
         return(new TipoDePlantaContratado());
     }
     else
     {
         return(new TipoDePlantaGeneral(this._Id, this._Descripcion, repo));
     }
 }
Exemple #3
0
        public override SaldoLicencia RealizarCalculoDeSaldo(IRepositorioLicencia repositorio_licencia, IRepositorioDePersonas repositorio_personas, Persona unaPersona, DateTime fecha_de_consulta)
        {
            SaldoLicencia saldo = new SaldoLicencia();

            saldo.Detalle = new List <SaldoLicenciaDetalle>();
            //ProrrogaLicenciaOrdinaria prorroga;
            unaPersona.TipoDePlanta = repositorio_personas.GetTipoDePlantaActualDe(unaPersona);
            CalculadorDeVacaciones         calculador_de_vacaciones = new CalculadorDeVacaciones(repositorio_licencia);
            List <SolicitudesDeVacaciones> solicitudes = new List <SolicitudesDeVacaciones>(this.LicenciasAprobadasPara(repositorio_licencia, unaPersona).ToArray());

            this.LicenciasPendientesPara(repositorio_licencia, unaPersona).ForEach(pendiente => solicitudes.Add(pendiente));
            var vacas_perdidas = new List <VacacionesPermitidas>();
            List <VacacionesSolicitables> vacaciones_solicitables = calculador_de_vacaciones.DiasSolicitables(this.LicenciasPermitidasPara(repositorio_licencia, unaPersona, vacas_perdidas), solicitudes, fecha_de_consulta, unaPersona, new AnalisisDeLicenciaOrdinaria(), vacas_perdidas);

            vacaciones_solicitables.ForEach(vac_solic => saldo.Detalle.Add(new SaldoLicenciaDetalle {
                Periodo = vac_solic.Periodo(), Disponible = vac_solic.CantidadDeDias()
            }));

            return(saldo);
        }
Exemple #4
0
 public override SaldoLicencia RealizarCalculoDeSaldo(IRepositorioLicencia repo_licencias, IRepositorioDePersonas repositorio_personas, Persona unaPersona, DateTime fecha_de_consulta)
 {
     return(repo_licencias.CargarSaldoLicenciaGeneralDe(this, unaPersona));
 }
Exemple #5
0
 public virtual SaldoLicencia RealizarCalculoDeSaldo(IRepositorioLicencia iRepositorioLicencia, IRepositorioDePersonas repositorio_personas, Persona persona, DateTime fecha_de_consulta)
 {
     throw new Exception("Responsabilidad de la subclase");
 }
Exemple #6
0
 public virtual AnalisisDeLicenciaOrdinaria GetAnalisisCalculoVacacionesPara(IRepositorioLicencia iRepositorioLicencia, IRepositorioDePersonas repositorio_personas, Persona persona, DateTime fecha_de_consulta)
 {
     throw new Exception("Responsabilidad de la subclase");
 }
Exemple #7
0
 public List <VacacionesPendientesDeAprobacion> LicenciasPendientesPara(IRepositorioLicencia repositorio_licencia, Persona persona)
 {
     return(repositorio_licencia.GetVacacionesPendientesPara(persona, this));
 }
Exemple #8
0
 public List <VacacionesAprobadas> LicenciasAprobadasPara(IRepositorioLicencia repositorio_licencia, Persona persona)
 {
     return(repositorio_licencia.GetVacacionesAprobadasPara(persona, this));
 }
Exemple #9
0
 public List <VacacionesPermitidas> LicenciasPermitidasPara(IRepositorioLicencia repositorio_licencia, Persona persona, List <VacacionesPermitidas> perdidas)
 {
     return(repositorio_licencia.GetVacacionPermitidaDescontandoPerdidasPara(persona, this, perdidas));// ObtenerLicenciasPermitidasPara(persona);
 }
Exemple #10
0
 public List <VacacionesPermitidas> LicenciasCalculadasPara(IRepositorioLicencia repositorio_licencia, Persona persona)
 {
     return(repositorio_licencia.GetVacasPermitidasPara(persona, this));
 }
Exemple #11
0
 public TipoDePlantaGeneral(int id, string descripcion, IRepositorioLicencia repo)
 {
     this._id            = id;
     this._descripcion   = descripcion;
     this._repoLicencias = repo;
 }
Exemple #12
0
 public CalculadorDeVacaciones(IRepositorioLicencia repo_licencia)
 {
     this._repositorio_licencia = repo_licencia;
 }
Exemple #13
0
 public ServicioDeLicencias(IRepositorioLicencia repo_licencia)
 {
     this._repositorio_licencia = repo_licencia;
 }