< Summary

Information
Class: FAU.Logica.DTOs.DetalleDeduccionesResultado
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/ResultadoIrpf.cs
Line coverage
100%
Covered lines: 4
Uncovered lines: 0
Coverable lines: 4
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_Aportes()100%11100%
get_Hijos()100%11100%
get_Conyuge()100%11100%
get_Profesional()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>
 12    public decimal IngresoGravado { get; set; }
 13
 14    /// <summary>
 15    /// Desglose de deducciones aplicadas
 16    /// </summary>
 17    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>
 22    public decimal TasaDeduccionProfesional { get; set; }
 23
 24    /// <summary>
 25    /// Total de deducciones = aportes + hijos + cónyuge + profesional
 26    /// </summary>
 27    public decimal TotalDeducciones { get; set; }
 28
 29    /// <summary>
 30    /// Base imponible neta = IngresoGravado - TotalDeducciones
 31    /// Clampeado a 0 si es negativo.
 32    /// </summary>
 33    public decimal BaseImponibleNeta { get; set; }
 34
 35    /// <summary>
 36    /// IRPF total calculado = suma de IRPF por franja
 37    /// </summary>
 38    public decimal TotalIrpf { get; set; }
 39
 40    /// <summary>
 41    /// Desglose de IRPF por franja (1-7 filas, solo franjas con impuesto > 0)
 42    /// </summary>
 43    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>
 1854    public decimal Aportes { get; set; }
 55
 56    /// <summary>
 57    /// Deducción por hijos menores o con discapacidad
 58    /// </summary>
 1559    public decimal Hijos { get; set; }
 60
 61    /// <summary>
 62    /// Deducción por cónyuge sin ingresos
 63    /// </summary>
 1164    public decimal Conyuge { get; set; }
 65
 66    /// <summary>
 67    /// Deducción profesional = IngresoGravado * TasaDeduccionProfesional
 68    /// </summary>
 1969    public decimal Profesional { get; set; }
 70}