< 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
99%
Covered lines: 301
Uncovered lines: 3
Coverable lines: 304
Total lines: 478
Line coverage: 99%
Branch coverage
77%
Covered branches: 37
Total branches: 48
Branch coverage: 77%
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
 1225    public ReporteDeficitService(IReporteDeficitRepository repo)
 26    {
 1227        _repo = repo;
 1228    }
 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    {
 3138        var filas = (await _repo.ObtenerPlanillaAjusteConRelacionAsync(periodoId, ct)).ToList();
 3139        var sb = new StringBuilder();
 3140        var hoja = 1;
 3141        var primeraPagina = true;
 142
 3143        var grupos = filas
 3144            .GroupBy(f => new
 3145            {
 3146                f.SituacionCodigo,
 3147                f.UnidadCodigo,
 3148                f.CompaniaCodigo,
 3149                f.SituacionNombre,
 3150                f.UnidadNombre,
 3151                f.CompaniaNombre
 3152            })
 3153            .OrderBy(g => g.Key.SituacionCodigo)
 3154            .ThenBy(g => g.Key.UnidadCodigo)
 3155            .ThenBy(g => g.Key.CompaniaCodigo)
 3156            .ThenBy(g => g.Key.SituacionNombre)
 3157            .ThenBy(g => g.Key.UnidadNombre)
 3158            .ThenBy(g => g.Key.CompaniaNombre)
 3159            .ToList();
 160
 3161        if (grupos.Count == 0)
 162        {
 1163            AgregarEncabezadoPersona(sb, hoja, anio, mes);
 1164            return CodificarLegacy(sb.ToString());
 165        }
 166
 10167        foreach (var grupo in grupos)
 168        {
 3169            if (!primeraPagina)
 1170                sb.Append(SaltoPagina);
 171
 3172            AgregarEncabezadoPersona(sb, hoja++, anio, mes);
 3173            primeraPagina = false;
 174
 3175            AgregarLinea(sb);
 3176            AgregarLinea(sb);
 3177            AgregarLinea(sb, $"     Sit./Uni./Comp.{CodigoGrupo(grupo.Key.SituacionCodigo, 2)}/{CodigoGrupo(grupo.Key.Un
 178
 3179            var personas = grupo
 3180                .GroupBy(f => new { f.PersonaId, f.Cedula, f.PersonaNombre, f.GradoNombre })
 6181                .OrderBy(g => g.Key.PersonaNombre);
 182
 12183            foreach (var persona in personas)
 184            {
 3185                AgregarLinea(sb);
 3186                AgregarLinea(sb, $" {Fijo(persona.Key.GradoNombre, 12)} {Fijo(persona.Key.PersonaNombre, 60)}");
 3187                AgregarLinea(sb, $" {new string(' ',12)} {Fijo(persona.Key.PersonaNombre, 30)}  {persona.Key.Cedula}");
 188
 3189                var filasPersona = persona
 3190                    .OrderBy(f => CodigoNumerico(f.CodigoConcepto))
 3191                    .ThenBy(f => f.NombreConcepto)
 3192                    .ToList();
 193
 12194                for (var i = 0; i < filasPersona.Count; i++)
 195                {
 3196                    var fila = filasPersona[i];
 3197                    var marca = i == 0 ? "  ®" : "";
 3198                    AgregarLinea(sb,
 3199                        $" {Fijo(fila.CodigoConcepto, 15, derecha: true)} {Fijo(fila.NombreConcepto, 49)} {Monto(fila.Mo
 200                }
 201
 3202                AgregarLinea(sb,
 6203                    $"{new string(' ',47)}Total Deficit {Monto(filasPersona.Sum(f => f.MontoNoAplicado), 14)}");
 204            }
 205        }
 206
 2207        return CodificarLegacy(sb.ToString());
 3208    }
 209
 210    public async Task<ReporteDeficitPorAcreedorDto> ObtenerDeficitPorAcreedorAsync(
 211        long periodoId, CancellationToken ct = default)
 212    {
 3213        var filas = (await _repo.ObtenerPlanillaAjusteConRelacionAsync(periodoId, ct)).ToList();
 214
 3215        var acreedores = filas
 2216            .GroupBy(f => new { f.AcreedorId, f.AcreedorCodigo, f.AcreedorNombre })
 2217            .OrderBy(g => g.Key.AcreedorNombre)
 3218            .Select(gAcr =>
 3219            {
 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();
 3234
 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                };
 3246            })
 3247            .ToList();
 248
 3249        return new ReporteDeficitPorAcreedorDto
 3250        {
 3251            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)
 3256        };
 3257    }
 258
 259    public async Task<byte[]> GenerarTxtDeficitPorAcreedorAsync(
 260        long periodoId, int anio, int mes, CancellationToken ct = default)
 261    {
 4262        var filas = (await _repo.ObtenerPlanillaAjusteConRelacionAsync(periodoId, ct)).ToList();
 4263        var sb = new StringBuilder();
 4264        var hoja = 1;
 265
 4266        var acreedores = filas
 4267            .GroupBy(f => new { f.AcreedorId, f.AcreedorCodigo, f.AcreedorNombre })
 3268            .OrderBy(g => g.Key.AcreedorNombre)
 4269            .ToList();
 270
 4271        if (acreedores.Count == 0)
 272        {
 1273            AgregarEncabezadoAcreedor(sb, hoja, "", "", anio, mes);
 1274            return CodificarLegacy(sb.ToString());
 275        }
 276
 12277        foreach (var acreedor in acreedores)
 278        {
 3279            var codigoReporte = CodigoAcreedorLegacy(acreedor);
 3280            AgregarEncabezadoAcreedor(sb, hoja++, codigoReporte, acreedor.Key.AcreedorNombre, anio, mes);
 281
 3282            var filasNormales = acreedor
 4283                .Where(f => !EsNoRevista(f.Estado))
 3284                .OrderBy(f => f.PersonaNombre)
 3285                .ToList();
 286
 3287            var filasNoRevista = acreedor
 4288                .Where(f => EsNoRevista(f.Estado))
 1289                .OrderBy(f => f.PersonaNombre)
 3290                .ToList();
 291
 12292            foreach (var fila in filasNormales)
 3293                AgregarLinea(sb, FormatearFilaAcreedor(fila));
 294
 3295            AgregarTotalesAcreedor(sb, filasNormales, "  Totales:");
 296
 3297            if (filasNoRevista.Count > 0)
 298            {
 1299                AgregarLinea(sb);
 300
 4301                foreach (var fila in filasNoRevista)
 302                {
 1303                    AgregarLinea(sb, FormatearFilaNoRevista(fila));
 1304                    AgregarLinea(sb);
 305                }
 306
 1307                AgregarTotalesNoRevista(sb, filasNoRevista);
 308            }
 309
 7310            var totalSolicitado = acreedor.Sum(f => f.MontoSolicitado);
 3311            AgregarLinea(sb);
 3312            AgregarLinea(sb, $"  Total solicitado {Monto(totalSolicitado, 17)}");
 3313            AgregarLinea(sb, $"    {new string(LineaLegacy, 17)}");
 314        }
 315
 3316        return CodificarLegacy(sb.ToString());
 4317    }
 318
 319    private static void AgregarEncabezadoPersona(StringBuilder sb, int hoja, int anio, int mes)
 320    {
 4321        AgregarLinea(sb);
 4322        AgregarLinea(sb, ControlImpresora.ToString());
 4323        AgregarLinea(sb, $" Inc.:03 Prog.:004 Sect.:34 U.Ej.:023 C.G.F.A.               Fecha:{DateTime.Today:dd/MM/yyyy
 4324        AgregarLinea(sb, $" DEPARTAMENTO DE RETRIBUCIONES PERSONALES    Prog: SUM38232    Hoja :{hoja,8}");
 4325        AgregarLinea(sb, Separador());
 4326        AgregarLinea(sb, Centrar($"Listado de Déficit por Funcionario * Presupuesto de {NombreMes(mes)} de {anio}"));
 4327        AgregarLinea(sb, Centrar("(Por Situacion, Unidad, Compañia)"));
 4328        AgregarLinea(sb, Separador());
 4329    }
 330
 331    private static void AgregarEncabezadoAcreedor(StringBuilder sb, int hoja, string codigo, string acreedor, int anio, 
 332    {
 4333        sb.Append(SaltoPagina);
 4334        AgregarLinea(sb);
 4335        AgregarLinea(sb);
 4336        AgregarLinea(sb, ControlImpresora.ToString());
 4337        AgregarLinea(sb, $" FUERZA AEREA.-                                              Fecha:{DateTime.Today:dd/MM/yyyy
 4338        AgregarLinea(sb, $" COMANDO GENERAL.-                                           Hoja :{hoja,10}");
 4339        AgregarLinea(sb, " DIRECCION DE ECONOMIA Y FINANZAS.-                          Prog:  SUM45037");
 4340        AgregarLinea(sb, Separador());
 4341        AgregarLinea(sb, Centrar($"Planilla de Ajuste de :  {codigo}   {acreedor}".TrimEnd()));
 4342        AgregarLinea(sb, Centrar("INSUFICIENCIAS DE LIQUIDO PRESUPUESTAL"));
 4343        AgregarLinea(sb, Separador());
 4344        AgregarLinea(sb);
 4345        AgregarLinea(sb, "Cédula  Ape. y Nomb.      Solicit.   Déficit    Diferencia    Descont.   Obs.");
 4346        AgregarLinea(sb, Separador());
 4347    }
 348
 349    private static string FormatearFilaAcreedor(PlanillaAjusteConRelacionRow fila)
 350    {
 3351        var diferencia = DiferenciaLegacy(fila);
 3352        var obs = diferencia - fila.MontoAplicado;
 353
 3354        return string.Concat(
 3355            Fijo(fila.Cedula, 8),
 3356            " ",
 3357            Fijo(fila.PersonaNombre, 18),
 3358            Monto(fila.MontoSolicitado, 12),
 3359            Monto(fila.MontoNoAplicado, 12),
 3360            Monto(diferencia, 13),
 3361            Monto(fila.MontoAplicado, 11),
 3362            Monto(obs, 10));
 363    }
 364
 365    private static string FormatearFilaNoRevista(PlanillaAjusteConRelacionRow fila)
 366    {
 1367        return string.Concat(
 1368            Fijo(fila.Cedula, 8),
 1369            " ",
 1370            Fijo(fila.PersonaNombre, 18),
 1371            Monto(fila.MontoSolicitado, 12),
 1372            " ",
 1373            new string(LineaLegacy, 10),
 1374            ">",
 1375            Monto(fila.MontoSolicitado, 13),
 1376            new string(' ', 13),
 1377            Fijo("BAJA", 8, derecha: true));
 378    }
 379
 380    private static void AgregarTotalesAcreedor(StringBuilder sb, IReadOnlyCollection<PlanillaAjusteConRelacionRow> filas
 381    {
 3382        if (filas.Count == 0)
 0383            return;
 384
 6385        var totalSolicitado = filas.Sum(f => f.MontoSolicitado);
 6386        var totalDeficit = filas.Sum(f => f.MontoNoAplicado);
 3387        var totalDiferencia = filas.Sum(DiferenciaLegacy);
 6388        var totalDescontado = filas.Sum(f => f.MontoAplicado);
 389
 3390        AgregarLinea(sb, $" {new string(' ',24)}{new string(LineaLegacy, 10)}   {new string(LineaLegacy, 10)} {new strin
 3391        AgregarLinea(sb, $"{etiqueta}{Monto(totalSolicitado, 24)}{Monto(totalDeficit, 14)} {new string(LineaLegacy, 7)}{
 3392        AgregarLinea(sb, $"{new string(' ',61)}{Monto(totalDiferencia, 13)}");
 3393    }
 394
 395    private static void AgregarTotalesNoRevista(StringBuilder sb, IReadOnlyCollection<PlanillaAjusteConRelacionRow> fila
 396    {
 2397        var total = filas.Sum(f => f.MontoSolicitado);
 398
 1399        AgregarLinea(sb, $" {new string(' ',24)}{new string(LineaLegacy, 10)} {new string(LineaLegacy, 10)} {new string(
 1400        AgregarLinea(sb, $"  Totales (NO REVISTAN):{Monto(total, 12)}{new string(LineaLegacy, 9)}>{Monto(total, 14)}");
 1401    }
 402
 403    private static decimal DiferenciaLegacy(PlanillaAjusteConRelacionRow fila) =>
 8404        fila.MontoSolicitado - fila.MontoNoAplicado;
 405
 406    private static string CodigoAcreedorLegacy(IEnumerable<PlanillaAjusteConRelacionRow> filas)
 407    {
 3408        var codigoConcepto = filas
 3409            .Select(f => f.CodigoConcepto)
 6410            .FirstOrDefault(c => !string.IsNullOrWhiteSpace(c));
 411
 3412        if (!string.IsNullOrWhiteSpace(codigoConcepto))
 2413            return codigoConcepto.Trim();
 414
 3415        return filas.Select(f => f.AcreedorCodigo).FirstOrDefault(c => !string.IsNullOrWhiteSpace(c))?.Trim() ?? "";
 416    }
 417
 418    private static bool EsNoRevista(string estado) =>
 8419        string.Equals(estado, "no_revista", StringComparison.OrdinalIgnoreCase);
 420
 421    private static int CodigoNumerico(string codigo) =>
 3422        int.TryParse(codigo, NumberStyles.Integer, CultureInfo.InvariantCulture, out var valor)
 3423            ? valor
 3424            : int.MaxValue;
 425
 426    private static string CodigoGrupo(string codigo, int ancho)
 427    {
 9428        var texto = string.IsNullOrWhiteSpace(codigo) ? "0" : codigo.Trim();
 9429        return Fijo(texto, ancho, derecha: true);
 430    }
 431
 432    private static string Monto(decimal monto, int ancho) =>
 40433        monto.ToString("#,##0.00", CulturaMontos).PadLeft(ancho);
 434
 435    private static string Fijo(string? valor, int ancho, bool derecha = false)
 436    {
 33437        var texto = string.IsNullOrWhiteSpace(valor) ? "" : valor.Trim();
 33438        if (texto.Length > ancho)
 0439            texto = texto[..ancho];
 440
 33441        return derecha ? texto.PadLeft(ancho) : texto.PadRight(ancho);
 442    }
 443
 444    private static string Centrar(string texto)
 445    {
 16446        if (texto.Length >= AnchoLinea)
 0447            return texto;
 448
 16449        var margen = (AnchoLinea - texto.Length) / 2;
 16450        return new string(' ', margen) + texto;
 451    }
 452
 453    private static string Separador() =>
 20454        $" {new string(LineaLegacy, AnchoLinea - 2)}";
 455
 456    private static string NombreMes(int mes)
 457    {
 4458        string[] meses =
 4459        {
 4460            "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio",
 4461            "Julio", "Agosto", "Setiembre", "Octubre", "Noviembre", "Diciembre"
 4462        };
 463
 4464        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    {
 134469        sb.Append(linea);
 134470        sb.Append(NuevaLinea);
 134471    }
 472
 473    private static byte[] CodificarLegacy(string texto)
 474    {
 7475        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
 7476        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)