< 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: 6
Uncovered lines: 0
Coverable lines: 6
Total lines: 43
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%

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
 15public class DescuentosLegalesCalculator : IDescuentosLegalesCalculator
 16{
 17    /// <summary>
 18    /// Calcula Montepio aplicando la tasa sobre la base SDL.
 19    /// </summary>
 20    public decimal CalcularMontepio(decimal baseSdl, decimal tasaMontepio)
 21    {
 1622        var monto = baseSdl * tasaMontepio;
 1623        return Math.Round(monto, 2, MidpointRounding.AwayFromZero);
 24    }
 25
 26    /// <summary>
 27    /// Calcula FONASA aplicando la tasa sobre la base SDL.
 28    /// </summary>
 29    public decimal CalcularFonasa(decimal baseSdl, decimal tasaFonasa)
 30    {
 1631        var monto = baseSdl * tasaFonasa;
 1632        return Math.Round(monto, 2, MidpointRounding.AwayFromZero);
 33    }
 34
 35    /// <summary>
 36    /// Calcula FRL aplicando la tasa sobre la base SDL.
 37    /// </summary>
 38    public decimal CalcularFrl(decimal baseSdl, decimal tasaFrl)
 39    {
 1640        var monto = baseSdl * tasaFrl;
 1641        return Math.Round(monto, 2, MidpointRounding.AwayFromZero);
 42    }
 43}