< Summary

Information
Class: FAU.Logica.Calculadores.Sit70Calculator
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Calculadores/Sit70Calculator.cs
Line coverage
71%
Covered lines: 15
Uncovered lines: 6
Coverable lines: 21
Total lines: 49
Line coverage: 71.4%
Branch coverage
41%
Covered branches: 5
Total branches: 12
Branch coverage: 41.6%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
CalcularDedicacionIntegral(...)100%11100%
CalcularItemsBase(...)41.66%161270%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Calculadores/Sit70Calculator.cs

#LineLine coverage
 1using FAU.Entidades;
 2using FAU.Logica.DTOs;
 3
 4namespace FAU.Logica.Calculadores;
 5
 6public class Sit70Calculator : CalculadorHaberesBase
 7{
 8    // Personal Civil NO recibe DI (043.004): "Le corresponde al personal Militar Combatiente" — PDF
 9    protected override void CalcularDedicacionIntegral(
 10        decimal wPara10, RelacionLaboral funcionario,
 211        InsumosPeriodo insumos, Acumuladores acumuladores, ResultadoCalculo resultado) { }
 12
 13    protected override decimal CalcularItemsBase(
 14        RelacionLaboral funcionario, InsumosPeriodo insumos, Acumuladores acumuladores, ResultadoCalculo resultado)
 15    {
 16        // 011.000 — Sueldo Básico (obligatorio)
 217        var rem1 = insumos.ObtenerRemuneracion(funcionario.GradoId, 11000)
 218            ?? throw new InvalidOperationException($"Sin remuneración para grado {funcionario.GradoId} cod 11000");
 219        AgregarItem(11000, rem1.Monto, insumos, acumuladores, resultado);
 220        var wpara53 = rem1.Monto;
 21
 22        // 042.012 — Compensación al Cargo (obligatorio)
 223        var rem2 = insumos.ObtenerRemuneracion(funcionario.GradoId, 42012)
 224            ?? throw new InvalidOperationException($"Sin remuneración para grado {funcionario.GradoId} cod 42012");
 225        AgregarItem(42012, rem2.Monto, insumos, acumuladores, resultado);
 226        wpara53 += rem2.Monto;
 27
 28        // 041.003 — Permanencia en el Grado
 229        var anios = CalcularAniosServicio(funcionario, insumos);
 230        var permanencia = insumos.ObtenerPermanencia(funcionario.EscalafonId, anios);
 231        if (permanencia is not null)
 32        {
 033            var montoPermanencia = permanencia.Porcentaje.HasValue
 034                ? rem1.Monto * permanencia.Porcentaje.Value
 035                : permanencia.MontoFijo ?? 0m;
 036            if (montoPermanencia > 0)
 037                AgregarItem(41003, montoPermanencia, insumos, acumuladores, resultado);
 38        }
 39
 40        // 069.008 — Viático de Alimentación (confirmado por DFC 2026-06-09)
 241        var rem5 = insumos.ObtenerRemuneracion(funcionario.GradoId, 69008);
 242        if (rem5 is not null)
 043            AgregarItem(69008, rem5.Monto, insumos, acumuladores, resultado);
 44
 45        // Sin 015.000 ni 042.022 (personal civil)
 46
 247        return wpara53;
 48    }
 49}