< Summary

Information
Class: FAU.Logica.Services.AguinaldoBajaCalculator
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Services/AguinaldoBajaCalculator.cs
Line coverage
100%
Covered lines: 31
Uncovered lines: 0
Coverable lines: 31
Total lines: 52
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
Calcular(...)100%22100%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Services/AguinaldoBajaCalculator.cs

#LineLine coverage
 1using FAU.Logica.DTOs;
 2
 3namespace FAU.Logica.Services;
 4
 5public class AguinaldoBajaCalculator
 6{
 7    public AguinaldoBajaResultado Calcular(
 8        decimal totalHaberesGravados,
 9        short mesesComputados,
 10        List<FranjaIrpfCalculoDto> franjasCalculo,
 11        ParametrosIrpfDto parametrosIrpf,
 12        decimal tasaMontepio,
 13        decimal tasaSanidad)
 14    {
 315        var nominal = Math.Round(totalHaberesGravados / 12m, 2);
 16
 317        var irpfRequest = new CalcularIrpfRequest
 318        {
 319            IngresoGravados = nominal,
 320            Montepio = 0,
 321            Fonasa = 0,
 322            Frl = 0,
 323            Deducciones = new List<DeduccionDto>(),
 324            Parametros = parametrosIrpf,
 325            Franjas = franjasCalculo
 326        };
 327        var irpf = Math.Round(new IrpfCalculator().Calcular(irpfRequest).TotalIrpf, 2);
 28
 329        var montepio = Math.Round(nominal * tasaMontepio, 2);
 330        var sanidad = Math.Round(nominal * tasaSanidad, 2);
 331        var totalDescuentos = Math.Round(irpf + montepio + sanidad, 2);
 32
 333        var liquidoExacto = nominal - totalDescuentos;
 434        if (liquidoExacto < 0) liquidoExacto = 0m;
 35
 336        var liquido = Math.Round(liquidoExacto, 0);
 337        var redondeo = liquido - liquidoExacto;
 38
 339        return new AguinaldoBajaResultado
 340        {
 341            TotalHaberesGravados = totalHaberesGravados,
 342            MesesComputados = mesesComputados,
 343            Nominal = nominal,
 344            Irpf = irpf,
 345            Montepio = montepio,
 346            Sanidad = sanidad,
 347            TotalDescuentos = totalDescuentos,
 348            Liquido = liquido,
 349            Redondeo = redondeo
 350        };
 51    }
 52}