2026-05-07 12:03:26 -03:00
|
|
|
using System;
|
2025-06-06 18:33:09 -03:00
|
|
|
using System.ComponentModel.DataAnnotations;
|
|
|
|
|
|
|
|
|
|
namespace GestionIntegral.Api.Dtos.Contables
|
|
|
|
|
{
|
|
|
|
|
public class AjusteSaldoRequestDto
|
|
|
|
|
{
|
|
|
|
|
[Required(ErrorMessage = "El tipo de destino es obligatorio ('Distribuidores' o 'Canillas').")]
|
|
|
|
|
[RegularExpression("^(Distribuidores|Canillas)$", ErrorMessage = "Destino debe ser 'Distribuidores' o 'Canillas'.")]
|
|
|
|
|
public string Destino { get; set; } = string.Empty;
|
|
|
|
|
|
|
|
|
|
[Required(ErrorMessage = "El ID del destinatario es obligatorio.")]
|
|
|
|
|
[Range(1, int.MaxValue, ErrorMessage = "ID de Destinatario inválido.")]
|
|
|
|
|
public int IdDestino { get; set; }
|
|
|
|
|
|
|
|
|
|
[Required(ErrorMessage = "El ID de la empresa es obligatorio.")]
|
|
|
|
|
[Range(1, int.MaxValue, ErrorMessage = "ID de Empresa inválido.")]
|
|
|
|
|
public int IdEmpresa { get; set; }
|
|
|
|
|
|
|
|
|
|
[Required(ErrorMessage = "El monto del ajuste es obligatorio.")]
|
|
|
|
|
// Permitir montos negativos para disminuir deuda o positivos para aumentarla
|
|
|
|
|
// No se usa Range aquí para permitir ambos signos. La validación de que no sea cero se puede hacer en el servicio.
|
2026-05-07 12:03:26 -03:00
|
|
|
public decimal MontoAjuste { get; set; }
|
2025-06-06 18:33:09 -03:00
|
|
|
|
|
|
|
|
[Required(ErrorMessage = "La justificación del ajuste es obligatoria.")]
|
|
|
|
|
[StringLength(250, MinimumLength = 5, ErrorMessage = "La justificación debe tener entre 5 y 250 caracteres.")]
|
|
|
|
|
public string Justificacion { get; set; } = string.Empty;
|
2026-05-07 12:03:26 -03:00
|
|
|
|
|
|
|
|
// Fecha lógica de la operación. Se valida contra el último cierre vigente
|
|
|
|
|
// del par (Distribuidor + Empresa) para bloquear ajustes en períodos cerrados.
|
|
|
|
|
// Distinta de FechaAjuste, que es el momento de ejecución del ajuste en el sistema.
|
|
|
|
|
[Required(ErrorMessage = "La fecha de operación es obligatoria.")]
|
|
|
|
|
public DateTime FechaOperacion { get; set; }
|
2025-06-06 18:33:09 -03:00
|
|
|
}
|
|
|
|
|
}
|