< Summary

Information
Class: FAU.DataAccess.Repositories.ReporteDeficitRepository
Assembly: FAU.DataAccess
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/ReporteDeficitRepository.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 52
Coverable lines: 52
Total lines: 70
Line coverage: 0%
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
.ctor(...)100%210%
ObtenerPlanillaAjusteConRelacionAsync()100%210%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.DataAccess/Repositories/ReporteDeficitRepository.cs

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Threading;
 3using System.Threading.Tasks;
 4using FAU.Entidades;
 5using Microsoft.EntityFrameworkCore;
 6
 7namespace FAU.DataAccess.Repositories;
 8
 9public class ReporteDeficitRepository : IReporteDeficitRepository
 10{
 11    private readonly ApplicationDbContext _context;
 12
 013    public ReporteDeficitRepository(ApplicationDbContext context)
 14    {
 015        _context = context;
 016    }
 17
 18    public async Task<IEnumerable<PlanillaAjusteConRelacionRow>> ObtenerPlanillaAjusteConRelacionAsync(
 19        long periodoId, CancellationToken ct = default)
 20    {
 021        return await _context.Database
 022            .SqlQuery<PlanillaAjusteConRelacionRow>($"""
 023                SELECT
 024                  pa.periodo_id          AS PeriodoId,
 025                  pa.persona_id          AS PersonaId,
 026                  pa.cedula              AS Cedula,
 027                  COALESCE(p.primer_apellido || ', ' || p.primer_nombre, pa.cedula)
 028                                         AS PersonaNombre,
 029                  pa.codigo_concepto     AS CodigoConcepto,
 030                  pa.nombre_concepto     AS NombreConcepto,
 031                  COALESCE(NULLIF(g.codigo, ''), g.denominacion, '') AS GradoNombre,
 032                  COALESCE(NULLIF(sit.codigo, ''), '') AS SituacionCodigo,
 033                  COALESCE(NULLIF(u.codigo, ''), '')   AS UnidadCodigo,
 034                  COALESCE(NULLIF(su.codigo, ''), '')  AS CompaniaCodigo,
 035                  COALESCE(sit.denominacion, '') AS SituacionNombre,
 036                  COALESCE(u.denominacion, '')   AS UnidadNombre,
 037                  COALESCE(su.denominacion, '')  AS CompaniaNombre,
 038                  pa.acreedor_id         AS AcreedorId,
 039                  pa.acreedor_codigo     AS AcreedorCodigo,
 040                  pa.acreedor_nombre     AS AcreedorNombre,
 041                  pa.monto_solicitado    AS MontoSolicitado,
 042                  pa.monto_aplicado_calculado AS MontoAplicado,
 043                  pa.monto_no_aplicado_calculado AS MontoNoAplicado,
 044                  pa.estado              AS Estado,
 045                  pa.observaciones       AS Observaciones
 046                FROM v_planilla_ajuste pa
 047                JOIN personas p ON p.id = pa.persona_id
 048                LEFT JOIN LATERAL (
 049                  SELECT rl.situacion_id, rl.unidad_id, rl.sub_unidad_id, rl.grado_id
 050                  FROM relaciones_laborales rl
 051                  WHERE rl.persona_id = pa.persona_id AND rl.estado = 'activo'
 052                  ORDER BY rl.fecha_inicio DESC
 053                  LIMIT 1
 054                ) rl ON true
 055                LEFT JOIN situaciones sit ON sit.id = rl.situacion_id
 056                LEFT JOIN unidades u ON u.id = rl.unidad_id
 057                LEFT JOIN sub_unidades su ON su.id = rl.sub_unidad_id
 058                LEFT JOIN grados g ON g.id = rl.grado_id
 059                WHERE pa.periodo_id = {periodoId}
 060                  AND pa.estado IN ('parcial', 'deficit', 'no_revista')
 061                ORDER BY
 062                  COALESCE(sit.denominacion, ''),
 063                  COALESCE(u.denominacion, ''),
 064                  COALESCE(su.denominacion, ''),
 065                  p.primer_apellido,
 066                  pa.acreedor_nombre
 067                """)
 068            .ToListAsync(ct);
 069    }
 70}