35 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
		
		
			
		
	
	
			35 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
|  | using System; | ||
|  | using System.ComponentModel.DataAnnotations; | ||
|  | 
 | ||
|  | namespace GestionIntegral.Api.Dtos.Distribucion | ||
|  | { | ||
|  |     public class EntradaSalidaCanillaItemDto | ||
|  |     { | ||
|  |         [Required(ErrorMessage = "El ID de la publicación es obligatorio.")] | ||
|  |         public int IdPublicacion { get; set; } | ||
|  | 
 | ||
|  |         [Required(ErrorMessage = "La cantidad de salida es obligatoria.")] | ||
|  |         [Range(0, int.MaxValue, ErrorMessage = "La cantidad de salida debe ser un número positivo o cero.")] | ||
|  |         public int CantSalida { get; set; } | ||
|  | 
 | ||
|  |         [Required(ErrorMessage = "La cantidad de entrada es obligatoria.")] | ||
|  |         [Range(0, int.MaxValue, ErrorMessage = "La cantidad de entrada debe ser un número positivo o cero.")] | ||
|  |         public int CantEntrada { get; set; } | ||
|  |          | ||
|  |         [StringLength(150)] | ||
|  |         public string? Observacion { get; set; } // Observación por línea | ||
|  | 
 | ||
|  |         // Validar que CantEntrada no sea mayor que CantSalida | ||
|  |         [CustomValidation(typeof(EntradaSalidaCanillaItemDto), nameof(ValidateCantidades))] | ||
|  |         public string? CantidadesError { get; set; }  | ||
|  | 
 | ||
|  |         public static ValidationResult? ValidateCantidades(EntradaSalidaCanillaItemDto item, ValidationContext context) | ||
|  |         { | ||
|  |             if (item.CantEntrada > item.CantSalida) | ||
|  |             { | ||
|  |                 return new ValidationResult("La cantidad de entrada (devolución) no puede ser mayor a la cantidad de salida (retiro) para esta publicación.", new[] { nameof(CantEntrada) }); | ||
|  |             } | ||
|  |             return ValidationResult.Success; | ||
|  |         } | ||
|  |     } | ||
|  | } |