< 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: 45
Coverable lines: 45
Total lines: 63
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                  COALESCE(sit.denominacion, '') AS SituacionNombre,
 030                  COALESCE(u.denominacion, '')   AS UnidadNombre,
 031                  COALESCE(su.denominacion, '')  AS CompaniaNombre,
 032                  pa.acreedor_id         AS AcreedorId,
 033                  pa.acreedor_codigo     AS AcreedorCodigo,
 034                  pa.acreedor_nombre     AS AcreedorNombre,
 035                  pa.monto_solicitado    AS MontoSolicitado,
 036                  pa.monto_aplicado_calculado AS MontoAplicado,
 037                  pa.monto_no_aplicado_calculado AS MontoNoAplicado,
 038                  pa.estado              AS Estado,
 039                  pa.observaciones       AS Observaciones
 040                FROM v_planilla_ajuste pa
 041                JOIN personas p ON p.id = pa.persona_id
 042                LEFT JOIN LATERAL (
 043                  SELECT rl.situacion_id, rl.unidad_id, rl.sub_unidad_id
 044                  FROM relaciones_laborales rl
 045                  WHERE rl.persona_id = pa.persona_id AND rl.estado = 'activo'
 046                  ORDER BY rl.fecha_inicio DESC
 047                  LIMIT 1
 048                ) rl ON true
 049                LEFT JOIN situaciones sit ON sit.id = rl.situacion_id
 050                LEFT JOIN unidades u ON u.id = rl.unidad_id
 051                LEFT JOIN sub_unidades su ON su.id = rl.sub_unidad_id
 052                WHERE pa.periodo_id = {periodoId}
 053                  AND pa.estado IN ('parcial', 'deficit', 'no_revista')
 054                ORDER BY
 055                  COALESCE(sit.denominacion, ''),
 056                  COALESCE(u.denominacion, ''),
 057                  COALESCE(su.denominacion, ''),
 058                  p.primer_apellido,
 059                  pa.acreedor_nombre
 060                """)
 061            .ToListAsync(ct);
 062    }
 63}