< 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
91%
Covered lines: 34
Uncovered lines: 3
Coverable lines: 37
Total lines: 89
Line coverage: 91.8%
Branch coverage
83%
Covered branches: 15
Total branches: 18
Branch coverage: 83.3%
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{
 497    public long PeriodoId { get; init; }
 4008    public ParametroPeriodo ParametroPeriodo { get; init; } = null!;
 5549    public IReadOnlyDictionary<long, IReadOnlyDictionary<int, RemuneracionGrado>> RemuneracionesPorGrado { get; init; } 
 14810    public IReadOnlyDictionary<long, IReadOnlyList<TablaPermanencia>> PermanenciasPorEscalafon { get; init; } = new Dict
 12011    public IReadOnlyList<FranjaIrpf> FranjasIrpf { get; init; } = Array.Empty<FranjaIrpf>();
 39712    public IReadOnlyList<CatalogoItem> CatalogoItems { get; init; } = Array.Empty<CatalogoItem>();
 11213    public IReadOnlyDictionary<long, IReadOnlyList<BeneficioSocial>> BeneficiosPorPersona { get; init; } = new Dictionar
 11214    public IReadOnlyDictionary<long, IReadOnlyList<ItemLoteCompensacion>> CompensacionesPorPersona { get; init; } = new 
 9615    public IReadOnlyDictionary<long, NovedadPeriodo?> NovedadesPorPersona { get; init; } = new Dictionary<long, NovedadP
 16    // beneficioId → hijos registrados (para ASIGNACION_FAMILIAR)
 11117    public IReadOnlyDictionary<long, IReadOnlyList<BeneficioSocialBeneficiario>> BeneficiariosPorBeneficio { get; init; 
 18
 19    // Instructivos DFC — tipoFranja → registro vigente
 11120    public IReadOnlyDictionary<string, InstructivoAsigFamiliar> InstructivoAsigFamiliar { get; init; } = new Dictionary<
 21    // Instructivos DFC — numCategoria → registro vigente
 11122    public IReadOnlyDictionary<int, InstructivoPsf> InstructivoPsf { get; init; } = new Dictionary<int, InstructivoPsf>(
 23    // Tabla hogar constituido — tramos ordenados (hasta_haberes ASC, NULL al final)
 11124    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)
 8827    public IReadOnlyDictionary<long, IReadOnlyList<Aguinaldo>> AguinaldosPorPersona { get; init; } = new Dictionary<long
 28
 29    // Diferencias de haberes por ascenso (OG 042.615) — cargado desde compensaciones_diferencia_ascenso
 11130    public IReadOnlyDictionary<long, CompensacionDiferenciaAscenso> CompensacionesDiferenciaAscensoPorPersona { get; ini
 31
 32    // Descuentos personales aprobados por persona (COFAnS, retención, comedor)
 8033    public IReadOnlyDictionary<long, IReadOnlyList<DescuentoPersonalPeriodo>> DescuentosPersonalesPorPersona { get; init
 34
 35    public RemuneracionGrado? ObtenerRemuneracion(long gradoId, int codigoItem)
 36    {
 44537        if (RemuneracionesPorGrado.TryGetValue(gradoId, out var items) && items.TryGetValue(codigoItem, out var remunera
 38        {
 12939            return remuneracion;
 40        }
 41
 31642        return null;
 43    }
 44
 45    public TablaPermanencia? ObtenerPermanencia(long escalafonId, int aniosServicio)
 46    {
 4047        if (PermanenciasPorEscalafon.TryGetValue(escalafonId, out var filas))
 48        {
 849            return filas.FirstOrDefault(p => p.AniosDesde <= aniosServicio && aniosServicio <= p.AniosHasta);
 50        }
 51
 3652        return null;
 53    }
 54
 55    public IReadOnlyList<BeneficioSocial> ObtenerBeneficios(long personaId)
 56    {
 3257        return BeneficiosPorPersona.TryGetValue(personaId, out var beneficios)
 3258            ? beneficios
 3259            : Array.Empty<BeneficioSocial>();
 60    }
 61
 62    public IReadOnlyList<ItemLoteCompensacion> ObtenerCompensaciones(long personaId)
 63    {
 3264        return CompensacionesPorPersona.TryGetValue(personaId, out var items)
 3265            ? items
 3266            : Array.Empty<ItemLoteCompensacion>();
 67    }
 68
 69    public NovedadPeriodo? ObtenerNovedad(long personaId)
 70    {
 1671        return NovedadesPorPersona.TryGetValue(personaId, out var novedad)
 1672            ? novedad
 1673            : null;
 74    }
 75
 76    public CompensacionDiferenciaAscenso? ObtenerDiferenciaAscenso(long personaId)
 77    {
 3178        return CompensacionesDiferenciaAscensoPorPersona.TryGetValue(personaId, out var diff)
 3179            ? diff
 3180            : null;
 81    }
 82
 83    public IReadOnlyList<DescuentoPersonalPeriodo> ObtenerDescuentosPersonales(long personaId)
 84    {
 085        return DescuentosPersonalesPorPersona.TryGetValue(personaId, out var descuentos)
 086            ? descuentos
 087            : Array.Empty<DescuentoPersonalPeriodo>();
 88    }
 89}