< Summary

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

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
ValidarAsync()100%66100%

File(s)

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

#LineLine coverage
 1using FAU.DataAccess;
 2using FAU.Entidades;
 3using FAU.Logica.DTOs;
 4using Microsoft.EntityFrameworkCore;
 5
 6namespace FAU.Logica.Services.InsumoValidators;
 7
 8public class TablasReferenciaValidator : InsumoValidatorBase
 9{
 10    private readonly ApplicationDbContext _context;
 11
 2912    public TablasReferenciaValidator(ApplicationDbContext context)
 13    {
 2914        _context = context;
 2915    }
 16
 17    public override async Task<List<ItemInsumoDto>> ValidarAsync(Periodo periodo)
 18    {
 1119        var items = new List<ItemInsumoDto>();
 1120        var fechaInicio = new DateTime(periodo.Anio, periodo.Mes, 1, 0, 0, 0, DateTimeKind.Utc);
 21
 1122        var tieneRemuneraciones = await _context.RemuneracionesGrado
 1123            .AsNoTracking()
 1124            .AnyAsync(r => r.VigenteDesde <= fechaInicio && (r.VigenteHasta == null || r.VigenteHasta >= fechaInicio));
 25
 1126        if (!tieneRemuneraciones)
 227            items.Add(Bloqueante(
 228                clave: "SinRemuneraciones",
 229                tipo: "tabla_referencia",
 230                descripcion: "No existen remuneraciones de grado vigentes para el período"));
 31
 1132        var tieneFranjas = await _context.FranjasIrpf
 1133            .AsNoTracking()
 1134            .AnyAsync(f => f.VigenteDesde <= fechaInicio && (f.VigenteHasta == null || f.VigenteHasta >= fechaInicio));
 35
 1136        if (!tieneFranjas)
 237            items.Add(Bloqueante(
 238                clave: "SinFranjasIrpf",
 239                tipo: "tabla_referencia",
 240                descripcion: "No existen franjas IRPF vigentes para el período"));
 41
 1142        var tieneFuncionarios = await _context.RelacionesLaborales
 1143            .AsNoTracking()
 1144            .AnyAsync(r => r.Estado == EstadoRelacion.Activo);
 45
 1146        if (!tieneFuncionarios)
 247            items.Add(Bloqueante(
 248                clave: "SinFuncionarios",
 249                tipo: "tabla_referencia",
 250                descripcion: "No hay funcionarios activos en el padrón"));
 51
 1152        return items;
 1153    }
 54}