< Summary

Information
Class: FAU.Logica.DTOs.CreatePersonalRequest
Assembly: FAU.Logica
File(s): /home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/CreatePersonalRequest.cs
Line coverage
96%
Covered lines: 28
Uncovered lines: 1
Coverable lines: 29
Total lines: 94
Line coverage: 96.5%
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_Ci()100%11100%
get_PrimerNombre()100%11100%
get_SegundoNombre()100%11100%
get_PrimerApellido()100%11100%
get_SegundoApellido()100%11100%
get_FechaNacimiento()100%11100%
get_Email()100%11100%
get_Telefono()100%11100%
get_Direccion()100%11100%
get_CodigoPostal()100%11100%
get_Departamento()100%11100%
get_Localidad()100%11100%
get_GradoId()100%11100%
get_Ley()100%11100%
get_FechaIngreso()100%11100%
get_EscalafonId()100%11100%
get_SituacionId()100%11100%
get_ProgramaId()100%11100%
get_UnidadId()100%11100%
get_SubUnidadId()100%11100%
get_TipoMovimientoId()100%210%
get_Observaciones()100%11100%
get_RiesgoVuelo()100%11100%
get_PrimaTecnica()100%11100%
get_CategoriaViatico()100%11100%
get_UsaFonasa()100%11100%
get_AniosServicioAnterior()100%11100%
get_BancoId()100%11100%
get_NumeroCuenta()100%11100%

File(s)

/home/runner/work/Sistema.Liquidacion.BE/Sistema.Liquidacion.BE/FAU.Logica/DTOs/CreatePersonalRequest.cs

#LineLine coverage
 1using System.ComponentModel.DataAnnotations;
 2
 3namespace FAU.Logica.DTOs;
 4
 5/// <summary>
 6/// Request para crear alta de personal
 7/// </summary>
 8public class CreatePersonalRequest
 9{
 10    [Required(ErrorMessage = "La cédula es requerida")]
 11    [MinLength(6, ErrorMessage = "La cédula debe tener al menos 6 dígitos")]
 12    [MaxLength(12, ErrorMessage = "La cédula no puede superar los 12 caracteres")]
 2513    public string Ci { get; set; } = string.Empty;
 14
 15    [Required(ErrorMessage = "El primer nombre es requerido")]
 16    [MaxLength(100)]
 2217    public string PrimerNombre { get; set; } = string.Empty;
 18
 19    [MaxLength(100)]
 420    public string? SegundoNombre { get; set; }
 21
 22    [Required(ErrorMessage = "El primer apellido es requerido")]
 23    [MaxLength(100)]
 2224    public string PrimerApellido { get; set; } = string.Empty;
 25
 26    [MaxLength(100)]
 427    public string? SegundoApellido { get; set; }
 28
 29    [Required(ErrorMessage = "La fecha de nacimiento es requerida")]
 2330    public DateTime FechaNacimiento { get; set; }
 31
 32    [EmailAddress(ErrorMessage = "El email no es válido")]
 33    [MaxLength(150)]
 434    public string? Email { get; set; }
 35
 36    [MaxLength(30)]
 437    public string? Telefono { get; set; }
 38
 39    [MaxLength(200)]
 440    public string? Direccion { get; set; }
 41
 42    [MaxLength(10)]
 443    public string? CodigoPostal { get; set; }
 44
 45    [MaxLength(100)]
 446    public string? Departamento { get; set; }
 47
 48    [MaxLength(100)]
 449    public string? Localidad { get; set; }
 50
 51    [Required(ErrorMessage = "El grado es requerido")]
 1552    public long GradoId { get; set; }
 53
 54    /// Opcional. Si se omite, el régimen se calcula automáticamente según MONTEPIO.PRG:
 55    /// - AV (Oficiales) con >= 15 años al 28/02/2019 → "14.157" (Ley Vieja)
 56    /// - Otros con >= 3 años al 28/02/2019 → "14.157" (Ley Vieja)
 57    /// - Ingreso posterior a 28/02/2019 → "19.695" (Ley Nueva)
 58    [MaxLength(50)]
 459    public string? Ley { get; set; }
 60
 61    [Required(ErrorMessage = "La fecha de ingreso es requerida")]
 2562    public DateTime FechaIngreso { get; set; }
 63
 64    // Campos opcionales adicionales (internos)
 1465    public long? EscalafonId { get; set; }
 66
 67    [Required(ErrorMessage = "La situación es requerida")]
 1668    public long? SituacionId { get; set; }
 69
 470    public long? ProgramaId { get; set; }
 471    public long? UnidadId { get; set; }
 472    public long? SubUnidadId { get; set; }
 073    public long? TipoMovimientoId { get; set; }
 74
 75    [MaxLength(500)]
 476    public string? Observaciones { get; set; }
 77
 78    // Campos de compensación — determinan qué OGs se emiten desde el alta
 479    public decimal? RiesgoVuelo { get; set; }
 80
 81    [MaxLength(10)]
 482    public string? PrimaTecnica { get; set; }
 83
 484    public short? CategoriaViatico { get; set; }
 485    public bool? UsaFonasa { get; set; }
 486    public short? AniosServicioAnterior { get; set; }
 87
 88    // Datos bancarios (opcionales)
 989    public long? BancoId { get; set; }
 90
 91    [MaxLength(50)]
 492    public string? NumeroCuenta { get; set; }
 93}
 94