< Summary

Information
Class: FAU.Logica.DTOs.InsumosPeriodo
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/InsumosPeriodo.cs
Line coverage
100%
Covered lines: 29
Uncovered lines: 0
Coverable lines: 29
Total lines: 69
Line coverage: 100%
Branch coverage
71%
Covered branches: 10
Total branches: 14
Branch coverage: 71.4%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/InsumosPeriodo.cs

#LineLine coverage
 1using FAU.Entidades;
 2
 3namespace FAU.Logica.DTOs;
 4
 5public sealed class InsumosPeriodo
 6{
 357    public long PeriodoId { get; init; }
 918    public ParametroPeriodo ParametroPeriodo { get; init; } = null!;
 2819    public IReadOnlyDictionary<long, IReadOnlyDictionary<int, RemuneracionGrado>> RemuneracionesPorGrado { get; init; } 
 8810    public IReadOnlyDictionary<long, IReadOnlyList<TablaPermanencia>> PermanenciasPorEscalafon { get; init; } = new Dict
 3711    public IReadOnlyList<FranjaIrpf> FranjasIrpf { get; init; } = Array.Empty<FranjaIrpf>();
 18312    public IReadOnlyList<CatalogoItem> CatalogoItems { get; init; } = Array.Empty<CatalogoItem>();
 3613    public IReadOnlyDictionary<long, IReadOnlyList<BeneficioSocial>> BeneficiosPorPersona { get; init; } = new Dictionar
 3614    public IReadOnlyDictionary<long, IReadOnlyList<ItemLoteCompensacion>> CompensacionesPorPersona { get; init; } = new 
 3615    public IReadOnlyDictionary<long, NovedadPeriodo?> NovedadesPorPersona { get; init; } = new Dictionary<long, NovedadP
 16    // beneficioId → hijos registrados (para ASIGNACION_FAMILIAR)
 3517    public IReadOnlyDictionary<long, IReadOnlyList<BeneficioSocialBeneficiario>> BeneficiariosPorBeneficio { get; init; 
 18
 19    // Instructivos DFC — tipoFranja → registro vigente
 3520    public IReadOnlyDictionary<string, InstructivoAsigFamiliar> InstructivoAsigFamiliar { get; init; } = new Dictionary<
 21    // Instructivos DFC — numCategoria → registro vigente
 3522    public IReadOnlyDictionary<int, InstructivoPsf> InstructivoPsf { get; init; } = new Dictionary<int, InstructivoPsf>(
 23    // Tabla hogar constituido — tramos ordenados (hasta_haberes ASC, NULL al final)
 3524    public IReadOnlyList<TablaHogarConstituido> TablaPorHogar { get; init; } = Array.Empty<TablaHogarConstituido>();
 25
 26    // Aguinaldos (SAC) del año por persona — usado por AguinaldoCalculator (SIT14/15/18/20)
 4327    public IReadOnlyDictionary<long, IReadOnlyList<Aguinaldo>> AguinaldosPorPersona { get; init; } = new Dictionary<long
 28
 29    public RemuneracionGrado? ObtenerRemuneracion(long gradoId, int codigoItem)
 30    {
 21731        if (RemuneracionesPorGrado.TryGetValue(gradoId, out var items) && items.TryGetValue(codigoItem, out var remunera
 32        {
 6133            return remuneracion;
 34        }
 35
 15636        return null;
 37    }
 38
 39    public TablaPermanencia? ObtenerPermanencia(long escalafonId, int aniosServicio)
 40    {
 2541        if (PermanenciasPorEscalafon.TryGetValue(escalafonId, out var filas))
 42        {
 843            return filas.FirstOrDefault(p => p.AniosDesde <= aniosServicio && aniosServicio <= p.AniosHasta);
 44        }
 45
 2146        return null;
 47    }
 48
 49    public IReadOnlyList<BeneficioSocial> ObtenerBeneficios(long personaId)
 50    {
 151        return BeneficiosPorPersona.TryGetValue(personaId, out var beneficios)
 152            ? beneficios
 153            : Array.Empty<BeneficioSocial>();
 54    }
 55
 56    public IReadOnlyList<ItemLoteCompensacion> ObtenerCompensaciones(long personaId)
 57    {
 158        return CompensacionesPorPersona.TryGetValue(personaId, out var items)
 159            ? items
 160            : Array.Empty<ItemLoteCompensacion>();
 61    }
 62
 63    public NovedadPeriodo? ObtenerNovedad(long personaId)
 64    {
 165        return NovedadesPorPersona.TryGetValue(personaId, out var novedad)
 166            ? novedad
 167            : null;
 68    }
 69}