public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { if (UnitDODate.Equals(DateTimeOffset.MinValue) || UnitDODate == null) { yield return(new ValidationResult("Tgl. Delivery Order harus diisi", new List <string> { "UnitDODate" })); } if (UnitRequest == null || string.IsNullOrWhiteSpace(UnitRequest.Id)) { yield return(new ValidationResult("Unit yang meminta haris diisi", new List <string> { "UnitRequest" })); } if (UnitDOType == "TRANSFER" && (StorageRequest == null || string.IsNullOrWhiteSpace(StorageRequest._id))) { yield return(new ValidationResult("Gudang yang meminta harus diisi", new List <string> { "StorageRequest" })); } if (UnitDOType == "TRANSFER" && (UnitSender == null || string.IsNullOrWhiteSpace(UnitSender.Id))) { yield return(new ValidationResult("Unit yang mengirim harus diisi", new List <string> { "UnitSender" })); } if (UnitDOType == "TRANSFER" && UnitSender.Id == UnitRequest.Id) { yield return(new ValidationResult("Unit yang meminta dan Unit yang mengirim tidak boleh sama", new List <string> { "UnitSender" })); } if (Storage == null) { yield return(new ValidationResult("Gudang yang mengirim harus diisi", new List <string> { "Storage" })); } if (string.IsNullOrWhiteSpace(RONo)) { yield return(new ValidationResult("No RO harus diisi", new List <string> { "RONo" })); } else { int itemErrorCount = 0; if (Items == null || Items.Count(i => i.IsSave) <= 0) { yield return(new ValidationResult("Item is required", new List <string> { "ItemsCount" })); } else { string itemError = "["; foreach (var item in Items) { itemError += "{"; if (item.IsSave) { if (item.Quantity == 0) { itemErrorCount++; itemError += "Quantity: 'Jumlah tidak boleh 0', "; } else { PurchasingDbContext dbContext = (PurchasingDbContext)validationContext.GetService(typeof(PurchasingDbContext)); var URNItem = dbContext.GarmentUnitReceiptNoteItems.AsNoTracking().FirstOrDefault(x => x.Id == item.URNItemId); if (URNItem != null) { var UDOItem = dbContext.GarmentUnitDeliveryOrderItems.AsNoTracking().FirstOrDefault(x => x.Id == item.Id); var quantity = URNItem.SmallQuantity - URNItem.OrderQuantity + (decimal)(UDOItem != null ? UDOItem.Quantity : 0); if ((decimal)item.Quantity > quantity) { itemErrorCount++; itemError += $"Quantity: 'Jumlah tidak boleh lebih dari {quantity}', "; } } } } itemError += "}, "; } itemError += "]"; if (itemErrorCount > 0) { yield return(new ValidationResult(itemError, new List <string> { "Items" })); } } } }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { IGarmentUnitDeliveryOrderFacade unitDeliveryOrderFacade = validationContext == null ? null : (IGarmentUnitDeliveryOrderFacade)validationContext.GetService(typeof(IGarmentUnitDeliveryOrderFacade)); if (ExpenditureDate.Equals(DateTimeOffset.MinValue) || ExpenditureDate == null) { yield return(new ValidationResult("Tanggal Pengeluaran Diperlukan", new List <string> { "ExpenditureDate" })); } else if (UnitDODate > ExpenditureDate) { yield return(new ValidationResult($"Tanggal Pengeluaran Tidak boleh kurang dari {UnitDODate.ToOffset(new TimeSpan(7, 0, 0)).ToString("dd/MM/yyyy", new CultureInfo("id-ID"))}", new List <string> { "ExpenditureDate" })); } if (UnitDONo == null) { yield return(new ValidationResult("Nomor Delivery Order Diperlukan", new List <string> { "UnitDONo" })); } int itemErrorCount = 0; if (this.Items == null || Items.Count(i => i.IsSave) <= 0) { yield return(new ValidationResult("Item is required", new List <string> { "ItemsCount" })); } else { string itemError = "["; foreach (var item in Items) { itemError += "{"; if (item.IsSave) { var unitDO = unitDeliveryOrderFacade.ReadById((int)UnitDOId); if (unitDO != null) { var unitDOItem = unitDO.Items.Where(s => s.Id == item.UnitDOItemId).FirstOrDefault(); if (unitDOItem != null) { if ((double)item.Quantity > unitDOItem.Quantity) { itemErrorCount++; itemError += "Quantity: 'Jumlah tidak boleh lebih dari " + unitDOItem.Quantity + "', "; } } } PurchasingDbContext dbContext = (PurchasingDbContext)validationContext.GetService(typeof(PurchasingDbContext)); var UENItem = dbContext.GarmentUnitExpenditureNoteItems.AsNoTracking().FirstOrDefault(x => x.Id == item.Id); if (UENItem != null) { if ((double)item.Quantity > UENItem.Quantity) { itemErrorCount++; itemError += "Quantity: 'Jumlah tidak boleh lebih dari " + UENItem.Quantity + "', "; } } if (item.Quantity <= 0) { itemErrorCount++; itemError += "Quantity: 'Jumlah harus lebih dari 0', "; } } itemError += "}, "; } itemError += "]"; if (itemErrorCount > 0) { yield return(new ValidationResult(itemError, new List <string> { "Items" })); } } }
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext) { if (UnitDODate.Equals(DateTimeOffset.MinValue) || UnitDODate == null) { yield return new ValidationResult("Tgl. Delivery Order harus diisi", new List<string> { "UnitDODate" }); } if (DateTimeOffset.Compare(DateTimeOffset.Now, UnitDODate) < 0) { yield return new ValidationResult("Tgl. Delivery Order tidak boleh lebih dari hari ini", new List<string> {"UnitDODate"}); //menambah kondisi validasi } if (UnitDOType != "RETUR" && UnitDOType != "MARKETING" &&(UnitRequest == null || string.IsNullOrWhiteSpace(UnitRequest.Id))) { yield return new ValidationResult("Unit yang meminta harus diisi", new List<string> { "UnitRequest" }); } if (UnitDOType == "TRANSFER" && (StorageRequest == null || string.IsNullOrWhiteSpace(StorageRequest._id))) { yield return new ValidationResult("Gudang yang meminta harus diisi", new List<string> { "StorageRequest" }); } if ((UnitDOType == "TRANSFER" || UnitDOType == "RETUR" || UnitDOType == "MARKETING") && (UnitSender == null || string.IsNullOrWhiteSpace(UnitSender.Id))) { yield return new ValidationResult("Unit yang mengirim harus diisi", new List<string> { "UnitSender" }); } if (UnitDOType == "TRANSFER" && UnitSender.Id == UnitRequest.Id) { yield return new ValidationResult("Unit yang meminta dan Unit yang mengirim tidak boleh sama", new List<string> { "UnitSender" }); } if (UnitDOType != "RETUR" && UnitDOType != "MARKETING" && string.IsNullOrWhiteSpace(Article)) { yield return new ValidationResult("Artikel harus diisi", new List<string> { "Article" }); } if (Storage == null) { yield return new ValidationResult("Gudang yang mengirim harus diisi", new List<string> { "Storage" }); } if (UnitDOType == "LAIN-LAIN" && string.IsNullOrWhiteSpace(OtherDescription)) { yield return new ValidationResult("Keterangan Lain-lain harus diisi", new List<string> { "OtherDescription" }); } if (UnitDOType != "RETUR" && UnitDOType != "MARKETING" && string.IsNullOrWhiteSpace(RONo) ) { yield return new ValidationResult("No RO harus diisi", new List<string> { "RONo" }); } else { int itemErrorCount = 0; if (Items == null || Items.Count(i => i.IsSave) <= 0) { yield return new ValidationResult("Item is required", new List<string> { "ItemsCount" }); } else { string itemError = "["; foreach (var item in Items) { itemError += "{"; if (item.IsSave) { if (item.Quantity == 0) { itemErrorCount++; itemError += "Quantity: 'Jumlah tidak boleh 0', "; } else if(UnitDOType == "RETUR") { if (item.Quantity > item.ReturQtyCheck) { itemErrorCount++; itemError += $"Quantity: 'Jumlah tidak boleh lebih dari {item.ReturQtyCheck}', "; } } else { PurchasingDbContext dbContext = (PurchasingDbContext)validationContext.GetService(typeof(PurchasingDbContext)); var DOItem = dbContext.GarmentDOItems.AsNoTracking().FirstOrDefault(x => x.Id == item.DOItemsId); if (DOItem != null) { var UDOItem = dbContext.GarmentUnitDeliveryOrderItems.AsNoTracking().FirstOrDefault(x => x.Id == item.Id); var quantity =Math.Round(DOItem.RemainingQuantity + (decimal)(UDOItem != null ? UDOItem.Quantity : 0),2); if ((decimal)item.Quantity > quantity) { itemErrorCount++; itemError += $"Quantity: 'Jumlah tidak boleh lebih dari {quantity}', "; } } } } itemError += "}, "; } itemError += "]"; if (itemErrorCount > 0) yield return new ValidationResult(itemError, new List<string> { "Items" }); } } }