< Summary

Information
Class: FAU.Logica.Calculadores.SitCadeteCalculator
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Calculadores/SitCadeteCalculator.cs
Line coverage
100%
Covered lines: 12
Uncovered lines: 0
Coverable lines: 12
Total lines: 43
Line coverage: 100%
Branch coverage
75%
Covered branches: 3
Total branches: 4
Branch coverage: 75%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
CalcularItemsBase(...)100%22100%
AgregarItemsDecreto(...)100%11100%
DebeCalcularSDL(...)100%11100%
CalcularDedicacionIntegral(...)50%22100%

File(s)

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

#LineLine coverage
 1using FAU.Entidades;
 2using FAU.Logica.DTOs;
 3
 4namespace FAU.Logica.Calculadores;
 5
 6public class SitCadeteCalculator : CalculadorHaberesBase
 7{
 8    protected override decimal CalcularItemsBase(
 9        RelacionLaboral funcionario, InsumosPeriodo insumos, Acumuladores acumuladores, ResultadoCalculo resultado)
 10    {
 11        // 011.000 — Sueldo Básico cadete (monto fijo según instructivo por grado/año de cursada)
 312        var rem1 = insumos.ObtenerRemuneracion(funcionario.GradoId, 11000);
 313        if (rem1 is not null)
 14        {
 215            AgregarItem(11000, rem1.Monto, insumos, acumuladores, resultado);
 216            return rem1.Monto; // wpara53 = sueldo base, base para SDL y DI
 17        }
 118        resultado.Incidencias.Add($"Sin remuneración de sueldo base para grado {funcionario.GradoId}");
 119        return 0m;
 20    }
 21
 22    protected override decimal AgregarItemsDecreto(
 23        RelacionLaboral funcionario, InsumosPeriodo insumos, Acumuladores acumuladores, ResultadoCalculo resultado)
 24    {
 25        // Aprendices y cadetes tienen los mismos ítems de decreto que subalternos.
 26        // Los montos son distintos (menores) pero las fórmulas aplican igual.
 327        return base.AgregarItemsDecreto(funcionario, insumos, acumuladores, resultado);
 28    }
 29
 30    // Cadetes y aprendices no tienen SDL (orden=0 < 2, igual que SDO_1RA).
 31    protected override bool DebeCalcularSDL(RelacionLaboral funcionario, InsumosPeriodo insumos)
 232        => false;
 33
 34    // DI al 30% igual que subalterno (orden < 2).
 35    protected override void CalcularDedicacionIntegral(
 36        decimal wPara10, RelacionLaboral funcionario,
 37        InsumosPeriodo insumos, Acumuladores acumuladores, ResultadoCalculo resultado)
 38    {
 239        if (wPara10 <= 0) return;
 240        var di = Math.Round(wPara10 * 0.30m, 2);
 241        AgregarItem(43004, di, insumos, acumuladores, resultado);
 242    }
 43}