< Summary

Information
Class: FAU.Logica.DTOs.ResultadoIrpf
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/ResultadoIrpf.cs
Line coverage
100%
Covered lines: 7
Uncovered lines: 0
Coverable lines: 7
Total lines: 70
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
get_IngresoGravado()100%11100%
get_Deducciones()100%11100%
get_TasaDeduccionProfesional()100%11100%
get_TotalDeducciones()100%11100%
get_BaseImponibleNeta()100%11100%
get_TotalIrpf()100%11100%
get_DetallePorFranja()100%11100%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/ResultadoIrpf.cs

#LineLine coverage
 1namespace FAU.Logica.DTOs;
 2
 3/// <summary>
 4/// Resultado del cálculo IRPF (output del IrpfCalculator).
 5/// Contiene el IRPF total, deducciones, y desglose por franja para auditoría.
 6/// </summary>
 7public class ResultadoIrpf
 8{
 9    /// <summary>
 10    /// Ingreso gravado (base antes de deducciones)
 11    /// </summary>
 812    public decimal IngresoGravado { get; set; }
 13
 14    /// <summary>
 15    /// Desglose de deducciones aplicadas
 16    /// </summary>
 1817    public DetalleDeduccionesResultado Deducciones { get; set; } = new();
 18
 19    /// <summary>
 20    /// Tasa de deducción profesional aplicada: 0.08 (8%) o 0.14 (14%)
 21    /// </summary>
 622    public decimal TasaDeduccionProfesional { get; set; }
 23
 24    /// <summary>
 25    /// Total de deducciones = aportes + hijos + cónyuge + profesional
 26    /// </summary>
 827    public decimal TotalDeducciones { get; set; }
 28
 29    /// <summary>
 30    /// Base imponible neta = IngresoGravado - TotalDeducciones
 31    /// Clampeado a 0 si es negativo.
 32    /// </summary>
 933    public decimal BaseImponibleNeta { get; set; }
 34
 35    /// <summary>
 36    /// IRPF total calculado = suma de IRPF por franja
 37    /// </summary>
 938    public decimal TotalIrpf { get; set; }
 39
 40    /// <summary>
 41    /// Desglose de IRPF por franja (1-7 filas, solo franjas con impuesto > 0)
 42    /// </summary>
 1543    public List<DetalleFranjaResultado> DetallePorFranja { get; set; } = new();
 44}
 45
 46/// <summary>
 47/// Desglose de deducciones en el resultado
 48/// </summary>
 49public class DetalleDeduccionesResultado
 50{
 51    /// <summary>
 52    /// Deducción por aportes jubilatorios = Montepio + FONASA + FRL
 53    /// </summary>
 54    public decimal Aportes { get; set; }
 55
 56    /// <summary>
 57    /// Deducción por hijos menores o con discapacidad
 58    /// </summary>
 59    public decimal Hijos { get; set; }
 60
 61    /// <summary>
 62    /// Deducción por cónyuge sin ingresos
 63    /// </summary>
 64    public decimal Conyuge { get; set; }
 65
 66    /// <summary>
 67    /// Deducción profesional = IngresoGravado * TasaDeduccionProfesional
 68    /// </summary>
 69    public decimal Profesional { get; set; }
 70}