< Summary

Information
Class: FAU.Logica.Services.ReporteDeficitService
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/Services/ReporteDeficitService.cs
Line coverage
75%
Covered lines: 231
Uncovered lines: 73
Coverable lines: 304
Total lines: 478
Line coverage: 75.9%
Branch coverage
41%
Covered branches: 20
Total branches: 48
Branch coverage: 41.6%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

File(s)

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

#LineLine coverage
 1using System.Collections.Generic;
 2using System.Globalization;
 3using System.Linq;
 4using System.Text;
 5using System.Threading;
 6using System.Threading.Tasks;
 7using FAU.DataAccess.Repositories;
 8using FAU.Entidades;
 9using FAU.Logica.DTOs;
 10
 11namespace FAU.Logica.Services;
 12
 13public class ReporteDeficitService : IReporteDeficitService
 14{
 15    private const int AnchoLinea = 80;
 16    private const char SaltoPagina = '\f';
 17    private const char ControlImpresora = '\u0012';
 18    private const char LineaLegacy = '─';
 19    private const string NuevaLinea = "\r\n";
 20
 121    private static readonly CultureInfo CulturaMontos = CultureInfo.GetCultureInfo("en-US");
 22
 23    private readonly IReporteDeficitRepository _repo;
 24
 725    public ReporteDeficitService(IReporteDeficitRepository repo)
 26    {
 727        _repo = repo;
 728    }
 29
 30    public async Task<ReporteDeficitPorPersonaDto> ObtenerDeficitPorPersonaAsync(
 31        long periodoId, CancellationToken ct = default)
 32    {
 233        var filas = (await _repo.ObtenerPlanillaAjusteConRelacionAsync(periodoId, ct)).ToList();
 34
 235        var situaciones = filas
 336            .GroupBy(f => f.SituacionNombre)
 137            .OrderBy(g => g.Key)
 138            .Select(gSit => BuildGrupoSituacion(gSit.Key, gSit))
 239            .ToList();
 40
 241        return new ReporteDeficitPorPersonaDto
 242        {
 243            Situaciones     = situaciones,
 144            TotalSolicitado = situaciones.Sum(s => s.TotalSolicitado),
 145            TotalAplicado   = situaciones.Sum(s => s.TotalAplicado),
 146            TotalDeficit    = situaciones.Sum(s => s.TotalDeficit)
 247        };
 248    }
 49
 50    private static DeficitGrupoSituacionDto BuildGrupoSituacion(
 51        string situacion, IEnumerable<PlanillaAjusteConRelacionRow> filas)
 52    {
 153        var unidades = filas
 354            .GroupBy(f => f.UnidadNombre)
 155            .OrderBy(g => g.Key)
 156            .Select(gUni => BuildGrupoUnidad(gUni.Key, gUni))
 157            .ToList();
 58
 159        return new DeficitGrupoSituacionDto
 160        {
 161            Situacion       = situacion,
 162            Unidades        = unidades,
 163            TotalSolicitado = unidades.Sum(u => u.TotalSolicitado),
 164            TotalAplicado   = unidades.Sum(u => u.TotalAplicado),
 165            TotalDeficit    = unidades.Sum(u => u.TotalDeficit)
 166        };
 67    }
 68
 69    private static DeficitGrupoUnidadDto BuildGrupoUnidad(
 70        string unidad, IEnumerable<PlanillaAjusteConRelacionRow> filas)
 71    {
 172        var companias = filas
 373            .GroupBy(f => f.CompaniaNombre)
 174            .OrderBy(g => g.Key)
 175            .Select(gCia => BuildGrupoCompania(gCia.Key, gCia))
 176            .ToList();
 77
 178        return new DeficitGrupoUnidadDto
 179        {
 180            Unidad          = unidad,
 181            Companias       = companias,
 182            TotalSolicitado = companias.Sum(c => c.TotalSolicitado),
 183            TotalAplicado   = companias.Sum(c => c.TotalAplicado),
 184            TotalDeficit    = companias.Sum(c => c.TotalDeficit)
 185        };
 86    }
 87
 88    private static DeficitGrupoCompaniaDto BuildGrupoCompania(
 89        string compania, IEnumerable<PlanillaAjusteConRelacionRow> filas)
 90    {
 191        var personas = filas
 392            .GroupBy(f => new { f.PersonaId, f.Cedula, f.PersonaNombre })
 293            .OrderBy(g => g.Key.PersonaNombre)
 294            .Select(gPer => BuildPersona(gPer.Key.PersonaId, gPer.Key.Cedula, gPer.Key.PersonaNombre, gPer))
 195            .ToList();
 96
 197        return new DeficitGrupoCompaniaDto
 198        {
 199            Compania        = compania,
 1100            Personas        = personas,
 2101            TotalSolicitado = personas.Sum(p => p.TotalSolicitado),
 2102            TotalAplicado   = personas.Sum(p => p.TotalAplicado),
 2103            TotalDeficit    = personas.Sum(p => p.TotalDeficit)
 1104        };
 105    }
 106
 107    private static DeficitPersonaDto BuildPersona(
 108        long personaId, string cedula, string nombre, IEnumerable<PlanillaAjusteConRelacionRow> filas)
 109    {
 2110        var acreedores = filas
 3111            .OrderBy(f => f.AcreedorNombre)
 3112            .Select(f => new DeficitAcreedorFilaDto
 3113            {
 3114                AcreedorId      = f.AcreedorId,
 3115                AcreedorCodigo  = f.AcreedorCodigo,
 3116                AcreedorNombre  = f.AcreedorNombre,
 3117                MontoSolicitado = f.MontoSolicitado,
 3118                MontoAplicado   = f.MontoAplicado,
 3119                MontoDeficit    = f.MontoNoAplicado
 3120            })
 2121            .ToList();
 122
 2123        return new DeficitPersonaDto
 2124        {
 2125            PersonaId       = personaId,
 2126            Cedula          = cedula,
 2127            Nombre          = nombre,
 2128            Acreedores      = acreedores,
 3129            TotalSolicitado = acreedores.Sum(a => a.MontoSolicitado),
 3130            TotalAplicado   = acreedores.Sum(a => a.MontoAplicado),
 3131            TotalDeficit    = acreedores.Sum(a => a.MontoDeficit)
 2132        };
 133    }
 134
 135    public async Task<byte[]> GenerarTxtDeficitPorPersonaAsync(
 136        long periodoId, int anio, int mes, CancellationToken ct = default)
 137    {
 2138        var filas = (await _repo.ObtenerPlanillaAjusteConRelacionAsync(periodoId, ct)).ToList();
 2139        var sb = new StringBuilder();
 2140        var hoja = 1;
 2141        var primeraPagina = true;
 142
 2143        var grupos = filas
 1144            .GroupBy(f => new
 1145            {
 1146                f.SituacionCodigo,
 1147                f.UnidadCodigo,
 1148                f.CompaniaCodigo,
 1149                f.SituacionNombre,
 1150                f.UnidadNombre,
 1151                f.CompaniaNombre
 1152            })
 1153            .OrderBy(g => g.Key.SituacionCodigo)
 1154            .ThenBy(g => g.Key.UnidadCodigo)
 1155            .ThenBy(g => g.Key.CompaniaCodigo)
 1156            .ThenBy(g => g.Key.SituacionNombre)
 1157            .ThenBy(g => g.Key.UnidadNombre)
 1158            .ThenBy(g => g.Key.CompaniaNombre)
 2159            .ToList();
 160
 2161        if (grupos.Count == 0)
 162        {
 1163            AgregarEncabezadoPersona(sb, hoja, anio, mes);
 1164            return CodificarLegacy(sb.ToString());
 165        }
 166
 4167        foreach (var grupo in grupos)
 168        {
 1169            if (!primeraPagina)
 0170                sb.Append(SaltoPagina);
 171
 1172            AgregarEncabezadoPersona(sb, hoja++, anio, mes);
 1173            primeraPagina = false;
 174
 1175            AgregarLinea(sb);
 1176            AgregarLinea(sb);
 1177            AgregarLinea(sb, $"     Sit./Uni./Comp.{CodigoGrupo(grupo.Key.SituacionCodigo, 2)}/{CodigoGrupo(grupo.Key.Un
 178
 1179            var personas = grupo
 1180                .GroupBy(f => new { f.PersonaId, f.Cedula, f.PersonaNombre, f.GradoNombre })
 2181                .OrderBy(g => g.Key.PersonaNombre);
 182
 4183            foreach (var persona in personas)
 184            {
 1185                AgregarLinea(sb);
 1186                AgregarLinea(sb, $" {Fijo(persona.Key.GradoNombre, 12)} {Fijo(persona.Key.PersonaNombre, 60)}");
 1187                AgregarLinea(sb, $" {new string(' ',12)} {Fijo(persona.Key.PersonaNombre, 30)}  {persona.Key.Cedula}");
 188
 1189                var filasPersona = persona
 1190                    .OrderBy(f => CodigoNumerico(f.CodigoConcepto))
 1191                    .ThenBy(f => f.NombreConcepto)
 1192                    .ToList();
 193
 4194                for (var i = 0; i < filasPersona.Count; i++)
 195                {
 1196                    var fila = filasPersona[i];
 1197                    var marca = i == 0 ? "  ®" : "";
 1198                    AgregarLinea(sb,
 1199                        $" {Fijo(fila.CodigoConcepto, 15, derecha: true)} {Fijo(fila.NombreConcepto, 49)} {Monto(fila.Mo
 200                }
 201
 1202                AgregarLinea(sb,
 2203                    $"{new string(' ',47)}Total Deficit {Monto(filasPersona.Sum(f => f.MontoNoAplicado), 14)}");
 204            }
 205        }
 206
 1207        return CodificarLegacy(sb.ToString());
 2208    }
 209
 210    public async Task<ReporteDeficitPorAcreedorDto> ObtenerDeficitPorAcreedorAsync(
 211        long periodoId, CancellationToken ct = default)
 212    {
 2213        var filas = (await _repo.ObtenerPlanillaAjusteConRelacionAsync(periodoId, ct)).ToList();
 214
 2215        var acreedores = filas
 2216            .GroupBy(f => new { f.AcreedorId, f.AcreedorCodigo, f.AcreedorNombre })
 2217            .OrderBy(g => g.Key.AcreedorNombre)
 2218            .Select(gAcr =>
 2219            {
 2220                var personas = gAcr
 2221                    .OrderBy(f => f.PersonaNombre)
 2222                    .Select(f => new DeficitPersonaAcreedorFilaDto
 2223                    {
 2224                        Cedula        = f.Cedula,
 2225                        Nombre        = f.PersonaNombre,
 2226                        Estado        = f.Estado,
 2227                        Solicitado    = f.MontoSolicitado,
 2228                        Descontado    = f.MontoAplicado,
 2229                        Deficit       = f.MontoNoAplicado,
 2230                        Diferencia    = DiferenciaLegacy(f),
 2231                        Observaciones = f.Observaciones
 2232                    })
 2233                    .ToList();
 2234
 2235                return new DeficitGrupoAcreedorDto
 2236                {
 2237                    AcreedorId      = gAcr.Key.AcreedorId,
 2238                    AcreedorCodigo  = gAcr.Key.AcreedorCodigo,
 2239                    AcreedorNombre  = gAcr.Key.AcreedorNombre,
 2240                    Personas        = personas,
 2241                    TotalSolicitado = personas.Sum(p => p.Solicitado),
 2242                    TotalDescontado = personas.Sum(p => p.Descontado),
 2243                    TotalDeficit    = personas.Sum(p => p.Deficit),
 2244                    TotalDiferencia = personas.Sum(p => p.Diferencia)
 2245                };
 2246            })
 2247            .ToList();
 248
 2249        return new ReporteDeficitPorAcreedorDto
 2250        {
 2251            Acreedores      = acreedores,
 2252            TotalSolicitado = acreedores.Sum(a => a.TotalSolicitado),
 2253            TotalDescontado = acreedores.Sum(a => a.TotalDescontado),
 2254            TotalDeficit    = acreedores.Sum(a => a.TotalDeficit),
 2255            TotalDiferencia = acreedores.Sum(a => a.TotalDiferencia)
 2256        };
 2257    }
 258
 259    public async Task<byte[]> GenerarTxtDeficitPorAcreedorAsync(
 260        long periodoId, int anio, int mes, CancellationToken ct = default)
 261    {
 1262        var filas = (await _repo.ObtenerPlanillaAjusteConRelacionAsync(periodoId, ct)).ToList();
 1263        var sb = new StringBuilder();
 1264        var hoja = 1;
 265
 1266        var acreedores = filas
 0267            .GroupBy(f => new { f.AcreedorId, f.AcreedorCodigo, f.AcreedorNombre })
 0268            .OrderBy(g => g.Key.AcreedorNombre)
 1269            .ToList();
 270
 1271        if (acreedores.Count == 0)
 272        {
 1273            AgregarEncabezadoAcreedor(sb, hoja, "", "", anio, mes);
 1274            return CodificarLegacy(sb.ToString());
 275        }
 276
 0277        foreach (var acreedor in acreedores)
 278        {
 0279            var codigoReporte = CodigoAcreedorLegacy(acreedor);
 0280            AgregarEncabezadoAcreedor(sb, hoja++, codigoReporte, acreedor.Key.AcreedorNombre, anio, mes);
 281
 0282            var filasNormales = acreedor
 0283                .Where(f => !EsNoRevista(f.Estado))
 0284                .OrderBy(f => f.PersonaNombre)
 0285                .ToList();
 286
 0287            var filasNoRevista = acreedor
 0288                .Where(f => EsNoRevista(f.Estado))
 0289                .OrderBy(f => f.PersonaNombre)
 0290                .ToList();
 291
 0292            foreach (var fila in filasNormales)
 0293                AgregarLinea(sb, FormatearFilaAcreedor(fila));
 294
 0295            AgregarTotalesAcreedor(sb, filasNormales, "  Totales:");
 296
 0297            if (filasNoRevista.Count > 0)
 298            {
 0299                AgregarLinea(sb);
 300
 0301                foreach (var fila in filasNoRevista)
 302                {
 0303                    AgregarLinea(sb, FormatearFilaNoRevista(fila));
 0304                    AgregarLinea(sb);
 305                }
 306
 0307                AgregarTotalesNoRevista(sb, filasNoRevista);
 308            }
 309
 0310            var totalSolicitado = acreedor.Sum(f => f.MontoSolicitado);
 0311            AgregarLinea(sb);
 0312            AgregarLinea(sb, $"  Total solicitado {Monto(totalSolicitado, 17)}");
 0313            AgregarLinea(sb, $"    {new string(LineaLegacy, 17)}");
 314        }
 315
 0316        return CodificarLegacy(sb.ToString());
 1317    }
 318
 319    private static void AgregarEncabezadoPersona(StringBuilder sb, int hoja, int anio, int mes)
 320    {
 2321        AgregarLinea(sb);
 2322        AgregarLinea(sb, ControlImpresora.ToString());
 2323        AgregarLinea(sb, $" Inc.:03 Prog.:004 Sect.:34 U.Ej.:023 C.G.F.A.               Fecha:{DateTime.Today:dd/MM/yyyy
 2324        AgregarLinea(sb, $" DEPARTAMENTO DE RETRIBUCIONES PERSONALES    Prog: SUM38232    Hoja :{hoja,8}");
 2325        AgregarLinea(sb, Separador());
 2326        AgregarLinea(sb, Centrar($"Listado de Déficit por Funcionario * Presupuesto de {NombreMes(mes)} de {anio}"));
 2327        AgregarLinea(sb, Centrar("(Por Situacion, Unidad, Compañia)"));
 2328        AgregarLinea(sb, Separador());
 2329    }
 330
 331    private static void AgregarEncabezadoAcreedor(StringBuilder sb, int hoja, string codigo, string acreedor, int anio, 
 332    {
 1333        sb.Append(SaltoPagina);
 1334        AgregarLinea(sb);
 1335        AgregarLinea(sb);
 1336        AgregarLinea(sb, ControlImpresora.ToString());
 1337        AgregarLinea(sb, $" FUERZA AEREA.-                                              Fecha:{DateTime.Today:dd/MM/yyyy
 1338        AgregarLinea(sb, $" COMANDO GENERAL.-                                           Hoja :{hoja,10}");
 1339        AgregarLinea(sb, " DIRECCION DE ECONOMIA Y FINANZAS.-                          Prog:  SUM45037");
 1340        AgregarLinea(sb, Separador());
 1341        AgregarLinea(sb, Centrar($"Planilla de Ajuste de :  {codigo}   {acreedor}".TrimEnd()));
 1342        AgregarLinea(sb, Centrar("INSUFICIENCIAS DE LIQUIDO PRESUPUESTAL"));
 1343        AgregarLinea(sb, Separador());
 1344        AgregarLinea(sb);
 1345        AgregarLinea(sb, "Cédula  Ape. y Nomb.      Solicit.   Déficit    Diferencia    Descont.   Obs.");
 1346        AgregarLinea(sb, Separador());
 1347    }
 348
 349    private static string FormatearFilaAcreedor(PlanillaAjusteConRelacionRow fila)
 350    {
 0351        var diferencia = DiferenciaLegacy(fila);
 0352        var obs = diferencia - fila.MontoAplicado;
 353
 0354        return string.Concat(
 0355            Fijo(fila.Cedula, 8),
 0356            " ",
 0357            Fijo(fila.PersonaNombre, 18),
 0358            Monto(fila.MontoSolicitado, 12),
 0359            Monto(fila.MontoNoAplicado, 12),
 0360            Monto(diferencia, 13),
 0361            Monto(fila.MontoAplicado, 11),
 0362            Monto(obs, 10));
 363    }
 364
 365    private static string FormatearFilaNoRevista(PlanillaAjusteConRelacionRow fila)
 366    {
 0367        return string.Concat(
 0368            Fijo(fila.Cedula, 8),
 0369            " ",
 0370            Fijo(fila.PersonaNombre, 18),
 0371            Monto(fila.MontoSolicitado, 12),
 0372            " ",
 0373            new string(LineaLegacy, 10),
 0374            ">",
 0375            Monto(fila.MontoSolicitado, 13),
 0376            new string(' ', 13),
 0377            Fijo("BAJA", 8, derecha: true));
 378    }
 379
 380    private static void AgregarTotalesAcreedor(StringBuilder sb, IReadOnlyCollection<PlanillaAjusteConRelacionRow> filas
 381    {
 0382        if (filas.Count == 0)
 0383            return;
 384
 0385        var totalSolicitado = filas.Sum(f => f.MontoSolicitado);
 0386        var totalDeficit = filas.Sum(f => f.MontoNoAplicado);
 0387        var totalDiferencia = filas.Sum(DiferenciaLegacy);
 0388        var totalDescontado = filas.Sum(f => f.MontoAplicado);
 389
 0390        AgregarLinea(sb, $" {new string(' ',24)}{new string(LineaLegacy, 10)}   {new string(LineaLegacy, 10)} {new strin
 0391        AgregarLinea(sb, $"{etiqueta}{Monto(totalSolicitado, 24)}{Monto(totalDeficit, 14)} {new string(LineaLegacy, 7)}{
 0392        AgregarLinea(sb, $"{new string(' ',61)}{Monto(totalDiferencia, 13)}");
 0393    }
 394
 395    private static void AgregarTotalesNoRevista(StringBuilder sb, IReadOnlyCollection<PlanillaAjusteConRelacionRow> fila
 396    {
 0397        var total = filas.Sum(f => f.MontoSolicitado);
 398
 0399        AgregarLinea(sb, $" {new string(' ',24)}{new string(LineaLegacy, 10)} {new string(LineaLegacy, 10)} {new string(
 0400        AgregarLinea(sb, $"  Totales (NO REVISTAN):{Monto(total, 12)}{new string(LineaLegacy, 9)}>{Monto(total, 14)}");
 0401    }
 402
 403    private static decimal DiferenciaLegacy(PlanillaAjusteConRelacionRow fila) =>
 2404        fila.MontoSolicitado - fila.MontoNoAplicado;
 405
 406    private static string CodigoAcreedorLegacy(IEnumerable<PlanillaAjusteConRelacionRow> filas)
 407    {
 0408        var codigoConcepto = filas
 0409            .Select(f => f.CodigoConcepto)
 0410            .FirstOrDefault(c => !string.IsNullOrWhiteSpace(c));
 411
 0412        if (!string.IsNullOrWhiteSpace(codigoConcepto))
 0413            return codigoConcepto.Trim();
 414
 0415        return filas.Select(f => f.AcreedorCodigo).FirstOrDefault(c => !string.IsNullOrWhiteSpace(c))?.Trim() ?? "";
 416    }
 417
 418    private static bool EsNoRevista(string estado) =>
 0419        string.Equals(estado, "no_revista", StringComparison.OrdinalIgnoreCase);
 420
 421    private static int CodigoNumerico(string codigo) =>
 1422        int.TryParse(codigo, NumberStyles.Integer, CultureInfo.InvariantCulture, out var valor)
 1423            ? valor
 1424            : int.MaxValue;
 425
 426    private static string CodigoGrupo(string codigo, int ancho)
 427    {
 3428        var texto = string.IsNullOrWhiteSpace(codigo) ? "0" : codigo.Trim();
 3429        return Fijo(texto, ancho, derecha: true);
 430    }
 431
 432    private static string Monto(decimal monto, int ancho) =>
 2433        monto.ToString("#,##0.00", CulturaMontos).PadLeft(ancho);
 434
 435    private static string Fijo(string? valor, int ancho, bool derecha = false)
 436    {
 8437        var texto = string.IsNullOrWhiteSpace(valor) ? "" : valor.Trim();
 8438        if (texto.Length > ancho)
 0439            texto = texto[..ancho];
 440
 8441        return derecha ? texto.PadLeft(ancho) : texto.PadRight(ancho);
 442    }
 443
 444    private static string Centrar(string texto)
 445    {
 6446        if (texto.Length >= AnchoLinea)
 0447            return texto;
 448
 6449        var margen = (AnchoLinea - texto.Length) / 2;
 6450        return new string(' ', margen) + texto;
 451    }
 452
 453    private static string Separador() =>
 7454        $" {new string(LineaLegacy, AnchoLinea - 2)}";
 455
 456    private static string NombreMes(int mes)
 457    {
 2458        string[] meses =
 2459        {
 2460            "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
 2461            "Julio", "Agosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"
 2462        };
 463
 2464        return mes is >= 1 and <= 12 ? meses[mes - 1] : mes.ToString(CultureInfo.InvariantCulture);
 465    }
 466
 467    private static void AgregarLinea(StringBuilder sb, string linea = "")
 468    {
 37469        sb.Append(linea);
 37470        sb.Append(NuevaLinea);
 37471    }
 472
 473    private static byte[] CodificarLegacy(string texto)
 474    {
 3475        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
 3476        return Encoding.GetEncoding(850).GetBytes(texto);
 477    }
 478}

Methods/Properties

.cctor()
.ctor(FAU.DataAccess.Repositories.IReporteDeficitRepository)
ObtenerDeficitPorPersonaAsync()
BuildGrupoSituacion(System.String,System.Collections.Generic.IEnumerable`1<FAU.Entidades.PlanillaAjusteConRelacionRow>)
BuildGrupoUnidad(System.String,System.Collections.Generic.IEnumerable`1<FAU.Entidades.PlanillaAjusteConRelacionRow>)
BuildGrupoCompania(System.String,System.Collections.Generic.IEnumerable`1<FAU.Entidades.PlanillaAjusteConRelacionRow>)
BuildPersona(System.Int64,System.String,System.String,System.Collections.Generic.IEnumerable`1<FAU.Entidades.PlanillaAjusteConRelacionRow>)
GenerarTxtDeficitPorPersonaAsync()
ObtenerDeficitPorAcreedorAsync()
GenerarTxtDeficitPorAcreedorAsync()
AgregarEncabezadoPersona(System.Text.StringBuilder,System.Int32,System.Int32,System.Int32)
AgregarEncabezadoAcreedor(System.Text.StringBuilder,System.Int32,System.String,System.String,System.Int32,System.Int32)
FormatearFilaAcreedor(FAU.Entidades.PlanillaAjusteConRelacionRow)
FormatearFilaNoRevista(FAU.Entidades.PlanillaAjusteConRelacionRow)
AgregarTotalesAcreedor(System.Text.StringBuilder,System.Collections.Generic.IReadOnlyCollection`1<FAU.Entidades.PlanillaAjusteConRelacionRow>,System.String)
AgregarTotalesNoRevista(System.Text.StringBuilder,System.Collections.Generic.IReadOnlyCollection`1<FAU.Entidades.PlanillaAjusteConRelacionRow>)
DiferenciaLegacy(FAU.Entidades.PlanillaAjusteConRelacionRow)
CodigoAcreedorLegacy(System.Collections.Generic.IEnumerable`1<FAU.Entidades.PlanillaAjusteConRelacionRow>)
EsNoRevista(System.String)
CodigoNumerico(System.String)
CodigoGrupo(System.String,System.Int32)
Monto(System.Decimal,System.Int32)
Fijo(System.String,System.Int32,System.Boolean)
Centrar(System.String)
Separador()
NombreMes(System.Int32)
AgregarLinea(System.Text.StringBuilder,System.String)
CodificarLegacy(System.String)