< Summary

Information
Class: FAU.Logica.Services.DescuentosLegalesCalculator
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Services/DescuentosLegalesCalculator.cs
Line coverage
100%
Covered lines: 8
Uncovered lines: 0
Coverable lines: 8
Total lines: 58
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
CalcularMontepio(...)100%11100%
CalcularFonasa(...)100%11100%
CalcularFrl(...)100%11100%
CalcularSanidad(...)100%11100%

File(s)

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

#LineLine coverage
 1namespace FAU.Logica.Services;
 2
 3/// <summary>
 4/// Calculadora de descuentos legales (Montepio, FONASA, FRL).
 5/// Métodos puros que reciben la base sobre la que se aplican las tasas y
 6/// retornan el monto correspondiente, redondeado a 2 decimales.
 7/// </summary>
 8public interface IDescuentosLegalesCalculator
 9{
 10    decimal CalcularMontepio(decimal baseSdl, decimal tasaMontepio);
 11    decimal CalcularFonasa(decimal baseSdl, decimal tasaFonasa);
 12    decimal CalcularFrl(decimal baseSdl, decimal tasaFrl);
 13
 14    /// <summary>
 15    /// Sanidad Militar (Art. 94 Ley 18.834): aplica el porcentaje del tramo
 16    /// sobre la base sujeta a montepío.
 17    /// </summary>
 18    decimal CalcularSanidad(decimal baseMontepio, decimal porcentajeTramo);
 19}
 20
 21public class DescuentosLegalesCalculator : IDescuentosLegalesCalculator
 22{
 23    /// <summary>
 24    /// Calcula Montepio aplicando la tasa sobre la base SDL.
 25    /// </summary>
 26    public decimal CalcularMontepio(decimal baseSdl, decimal tasaMontepio)
 27    {
 3228        var monto = baseSdl * tasaMontepio;
 3229        return Math.Round(monto, 2, MidpointRounding.AwayFromZero);
 30    }
 31
 32    /// <summary>
 33    /// Calcula FONASA aplicando la tasa sobre la base SDL.
 34    /// </summary>
 35    public decimal CalcularFonasa(decimal baseSdl, decimal tasaFonasa)
 36    {
 3237        var monto = baseSdl * tasaFonasa;
 3238        return Math.Round(monto, 2, MidpointRounding.AwayFromZero);
 39    }
 40
 41    /// <summary>
 42    /// Calcula FRL aplicando la tasa sobre la base SDL.
 43    /// </summary>
 44    public decimal CalcularFrl(decimal baseSdl, decimal tasaFrl)
 45    {
 3246        var monto = baseSdl * tasaFrl;
 3247        return Math.Round(monto, 2, MidpointRounding.AwayFromZero);
 48    }
 49
 50    /// <summary>
 51    /// Calcula Sanidad Militar aplicando el porcentaje del tramo sobre la base sujeta a montepío.
 52    /// </summary>
 53    public decimal CalcularSanidad(decimal baseMontepio, decimal porcentajeTramo)
 54    {
 255        var monto = baseMontepio * porcentajeTramo;
 256        return Math.Round(monto, 2, MidpointRounding.AwayFromZero);
 57    }
 58}