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;
 | |
|         }
 | |
|     }
 | |
| } |