< Summary

Information
Class: FAU.Entidades.TablaPermanencia
Assembly: FAU.Entidades
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Entidades/TablaPermanencia.cs
Line coverage
84%
Covered lines: 11
Uncovered lines: 2
Coverable lines: 13
Total lines: 78
Line coverage: 84.6%
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
get_Id()100%11100%
get_EscalafonId()100%11100%
get_GradoId()100%11100%
get_MesesDesde()100%11100%
get_MesesHasta()100%11100%
get_MontoFijo()100%11100%
get_Porcentaje()100%11100%
get_AplicaRiesgoVuelo()100%11100%
get_VigenteDesde()100%11100%
get_VigenteHasta()100%11100%
get_Activo()100%11100%
get_Escalafon()100%210%
get_Grado()100%210%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Entidades/TablaPermanencia.cs

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2using System.ComponentModel.DataAnnotations.Schema;
 3
 4namespace FAU.Entidades;
 5
 6/// <summary>
 7/// Tabla de permanencia en el grado (equivalente a PERMANEN.DBF + PERMA2.DBF del legacy).
 8///
 9/// Estructura legacy:
 10///   - PERMANEN: para personal sin riesgo de vuelo
 11///   - PERMA2:   para personal con riesgo de vuelo
 12///
 13/// Se unifican en una sola tabla con <see cref="AplicaRiesgoVuelo"/>.
 14/// Los tramos son por MESES (no años) para replicar fielmente
 15/// <c>tiempo_pm</c> del FoxPro.
 16/// </summary>
 17[Table("tabla_permanencia")]
 18public class TablaPermanencia
 19{
 20    [Key]
 21    [Column("id")]
 3122    public long Id { get; set; }
 23
 24    [Required]
 25    [Column("escalafon_id")]
 3826    public long EscalafonId { get; set; }
 27
 28    [Required]
 29    [Column("grado_id")]
 3930    public long GradoId { get; set; }
 31
 32    /// <summary>Límite inferior del tramo en meses (inclusive).</summary>
 33    [Required]
 34    [Column("meses_desde")]
 3535    public short MesesDesde { get; set; }
 36
 37    /// <summary>Límite superior del tramo en meses (inclusive).</summary>
 38    [Required]
 39    [Column("meses_hasta")]
 4440    public short MesesHasta { get; set; }
 41
 42    /// <summary>
 43    /// Monto fijo de permanencia para este tramo (equivalente a <c>importe_pm</c>).
 44    /// En el legacy FoxPro solo existe monto fijo; se mantiene <see cref="Porcentaje"/>
 45    /// por compatibilidad futura.
 46    /// </summary>
 47    [Column("monto_fijo", TypeName = "numeric(14,2)")]
 3048    public decimal? MontoFijo { get; set; }
 49
 50    /// <summary>Porcentaje del sueldo base (reservado; legacy no lo usa).</summary>
 51    [Column("porcentaje", TypeName = "numeric(5,4)")]
 1952    public decimal? Porcentaje { get; set; }
 53
 54    /// <summary>
 55    /// true = filas provenientes de PERMA2.DBF (personal con riesgo de vuelo).
 56    /// false = filas provenientes de PERMANEN.DBF (personal sin riesgo de vuelo).
 57    /// </summary>
 58    [Required]
 59    [Column("aplica_riesgo_vuelo")]
 3060    public bool AplicaRiesgoVuelo { get; set; }
 61
 62    [Required]
 63    [Column("vigente_desde", TypeName = "date")]
 3064    public DateTime VigenteDesde { get; set; }
 65
 66    [Column("vigente_hasta", TypeName = "date")]
 1167    public DateTime? VigenteHasta { get; set; }
 68
 69    [Required]
 70    [Column("activo")]
 3471    public bool Activo { get; set; } = true;
 72
 73    [ForeignKey("EscalafonId")]
 074    public virtual Escalafon Escalafon { get; set; } = null!;
 75
 76    [ForeignKey("GradoId")]
 077    public virtual Grado Grado { get; set; } = null!;
 78}