public StockTransferNote_Item GetNewData(InventorySummaryViewModel inventorySummary) { return(new StockTransferNote_Item { ProductId = inventorySummary.productId, ProductCode = inventorySummary.productCode, ProductName = inventorySummary.productName, StockQuantity = inventorySummary.quantity, UomUnit = inventorySummary.uom, UomId = inventorySummary.uomId, TransferedQuantity = 1 }); }
public static InventorySummaryViewModel GetInventorySummary(HttpClientTestService client) { var response = client.GetAsync($"{APIEndpoint.Inventory}/inventory/inventory-summary?page=1&size=1").Result; response.EnsureSuccessStatusCode(); var data = response.Content.ReadAsStringAsync(); Dictionary <string, object> result = JsonConvert.DeserializeObject <Dictionary <string, object> >(data.Result.ToString()); List <InventorySummaryViewModel> list = JsonConvert.DeserializeObject <List <InventorySummaryViewModel> >(result["data"].ToString()); InventorySummaryViewModel inventorySummary = list.First(); return(inventorySummary); }
public StockTransferNoteViewModel MapToViewModel(StockTransferNote model) { StockTransferNoteViewModel viewModel = new StockTransferNoteViewModel(); PropertyCopier <StockTransferNote, StockTransferNoteViewModel> .Copy(model, viewModel); StorageViewModel SourceStorage = new StorageViewModel() { _id = model.SourceStorageId, code = model.SourceStorageCode, name = model.SourceStorageName }; StorageViewModel TargetStorage = new StorageViewModel() { _id = model.TargetStorageId, code = model.TargetStorageCode, name = model.TargetStorageName }; viewModel.SourceStorage = SourceStorage; viewModel.TargetStorage = TargetStorage; viewModel.StockTransferNoteItems = new List <StockTransferNote_ItemViewModel>(); if (model.StockTransferNoteItems != null) { foreach (StockTransferNote_Item stn in model.StockTransferNoteItems) { StockTransferNote_ItemViewModel stockTransferNoteItemViewModel = new StockTransferNote_ItemViewModel(); PropertyCopier <StockTransferNote_Item, StockTransferNote_ItemViewModel> .Copy(stn, stockTransferNoteItemViewModel); InventorySummaryViewModel Summary = new InventorySummaryViewModel() { productId = stn.ProductId, productCode = stn.ProductCode, productName = stn.ProductName, quantity = stn.StockQuantity, uomId = stn.UomId, uom = stn.UomUnit }; stockTransferNoteItemViewModel.Summary = Summary; viewModel.StockTransferNoteItems.Add(stockTransferNoteItemViewModel); } } return(viewModel); }
public InventorySummaryViewModel MapToViewModel(InventorySummary model) { var viewModel = new InventorySummaryViewModel() { code = model.No, productId = model.ProductId, productCode = model.ProductCode, productName = model.ProductName, uomId = model.UomId, uom = model.UomUnit, storageId = model.StorageId, storageCode = model.StorageCode, storageName = model.StorageName, stockPlanning = model.StockPlanning.ToString(), quantity = model.Quantity }; PropertyCopier <InventorySummary, InventorySummaryViewModel> .Copy(model, viewModel); return(viewModel); }
public InventorySummary MapToModel(InventorySummaryViewModel viewModel) { var model = new InventorySummary() { No = viewModel.code, ProductId = viewModel.productId, ProductCode = viewModel.productCode, ProductName = viewModel.productName, UomId = viewModel.uomId, UomUnit = viewModel.uom, StorageId = viewModel.storageId, StorageCode = viewModel.storageCode, StorageName = viewModel.storageName, StockPlanning = double.Parse(viewModel.stockPlanning), Quantity = viewModel.quantity }; PropertyCopier <InventorySummaryViewModel, InventorySummary> .Copy(viewModel, model); return(model); }
public MaterialsRequestNote_Item GetNewDataCustom() { ProductionOrderViewModel productionOrder = ProductionOrderDataUtil.GetProductionOrder(client); InventorySummaryViewModel product = InventorySummaryDataUtil.GetInventorySummary(client); return(new MaterialsRequestNote_Item { ProductionOrderId = "testCustom", ProductionOrderNo = "testCustomNo", ProductionOrderIsCompleted = false, OrderQuantity = (double)productionOrder.orderQuantity, OrderTypeId = productionOrder.orderType._id, OrderTypeCode = productionOrder.orderType.code, OrderTypeName = productionOrder.orderType.name, ProductId = product.productId, ProductCode = product.productCode, ProductName = product.productName, Grade = "A", Length = 5 }); }
public override StockTransferNote GetNewData() { StorageViewModel storage = StorageDataUtil.GetPrintingGreigeStorage(client); InventorySummaryViewModel inventorySummary = InventorySummaryDataUtil.GetInventorySummary(client); StockTransferNote TestData = new StockTransferNote { ReferenceNo = "Reference No Test", ReferenceType = "Reference Type Test", SourceStorageId = inventorySummary.storageId, SourceStorageCode = inventorySummary.storageCode, SourceStorageName = inventorySummary.storageName, TargetStorageId = storage._id, TargetStorageCode = storage.code, TargetStorageName = storage.name, IsApproved = false, StockTransferNoteItems = new List <StockTransferNote_Item> { stockTransferNoteItemDataUtil.GetNewData(inventorySummary) } }; return(TestData); }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { int Count = 0; if (this.Unit == null || string.IsNullOrWhiteSpace(this.Unit._id)) { yield return(new ValidationResult("Unit is required", new List <string> { "Unit" })); } if (string.IsNullOrWhiteSpace(this.Type)) { yield return(new ValidationResult("Type is required", new List <string> { "Type" })); } if (MaterialDistributionNoteItems.Count.Equals(0)) { yield return(new ValidationResult("Material Distribution Note Item is required", new List <string> { "MaterialDistributionNoteItemCollection" })); } else { string materialDistributionNoteItemError = "["; foreach (MaterialDistributionNoteItemViewModel mdni in this.MaterialDistributionNoteItems) { if (string.IsNullOrWhiteSpace(mdni.MaterialRequestNoteCode)) { Count++; materialDistributionNoteItemError += "{ MaterialRequestNote: 'SPB is required' }, "; } } if (Count.Equals(0)) { /* Get Inventory Summaries */ string inventorySummaryURI = "inventory/inventory-summary?order=%7B%7D&page=1&size=1000000000&"; MaterialDistributionNoteService Service = (MaterialDistributionNoteService)validationContext.GetService(typeof(MaterialDistributionNoteService)); HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Service.Token); List <string> products = new List <string>(); foreach (MaterialDistributionNoteItemViewModel mdni in this.MaterialDistributionNoteItems) { products.AddRange(mdni.MaterialDistributionNoteDetails.Select(p => p.Product.code).ToList()); } var storageName = this.Unit.name.Equals("PRINTING") ? "Gudang Greige Printing" : "Gudang Greige Finishing"; Dictionary <string, object> filter = new Dictionary <string, object> { { "storageName", storageName }, { "uom", "MTR" }, { "productCode", new Dictionary <string, object> { { "$in", products.ToArray() } } } }; var response = httpClient.GetAsync($@"{APIEndpoint.Inventory}{inventorySummaryURI}filter=" + JsonConvert.SerializeObject(filter)).Result.Content.ReadAsStringAsync(); Dictionary <string, object> result = JsonConvert.DeserializeObject <Dictionary <string, object> >(response.Result); var json = result.Single(p => p.Key.Equals("data")).Value; List <InventorySummaryViewModel> inventorySummaries = JsonConvert.DeserializeObject <List <InventorySummaryViewModel> >(json.ToString()); foreach (MaterialDistributionNoteItemViewModel mdni in this.MaterialDistributionNoteItems) { int CountDetail = 0; string materialDistributionNoteDetailError = "["; foreach (MaterialDistributionNoteDetailViewModel mdnd in mdni.MaterialDistributionNoteDetails) { InventorySummaryViewModel inventorySummary = inventorySummaries.SingleOrDefault(p => p.productCode.Equals(mdnd.Product.code) && p.uom.Equals("MTR")); materialDistributionNoteDetailError += "{"; if (inventorySummary == null) { CountDetail++; materialDistributionNoteDetailError += "Product: 'Product is not exists in the storage', "; } else { if (mdnd.Quantity == null) { CountDetail++; materialDistributionNoteDetailError += "Quantity: 'Quantity is required', "; } else if (mdnd.Quantity <= 0) { CountDetail++; materialDistributionNoteDetailError += "Quantity: 'Quantity must be greater than zero', "; } if (mdnd.ReceivedLength == null) { CountDetail++; materialDistributionNoteDetailError += "ReceivedLength: 'Length is required', "; } else if (mdnd.ReceivedLength <= 0) { CountDetail++; materialDistributionNoteDetailError += "ReceivedLength: 'Length must be greater than zero', "; } else if (mdnd.ReceivedLength > inventorySummary.quantity) { CountDetail++; materialDistributionNoteDetailError += "ReceivedLength: 'Length must be less than or equal than stock', "; } else { inventorySummary.quantity -= (double)mdnd.ReceivedLength; } if (mdnd.Supplier == null || string.IsNullOrWhiteSpace(mdnd.Supplier._id)) { CountDetail++; materialDistributionNoteDetailError += "Supplier: 'Supplier is required', "; } } materialDistributionNoteDetailError += "}, "; } materialDistributionNoteDetailError += "]"; if (CountDetail > 0) { Count++; materialDistributionNoteItemError += string.Concat("{ MaterialDistributionNoteDetails: ", materialDistributionNoteDetailError, " }, "); } else { materialDistributionNoteItemError += "{}, "; } } } materialDistributionNoteItemError += "]"; if (Count > 0) { yield return(new ValidationResult(materialDistributionNoteItemError, new List <string> { "MaterialDistributionNoteItems" })); } } }
public IEnumerable <ValidationResult> Validate(ValidationContext validationContext) { if (this.Unit == null || string.IsNullOrWhiteSpace(this.Unit._id)) { yield return(new ValidationResult("Unit harus diisi", new List <string> { "UnitId" })); } if (string.IsNullOrWhiteSpace(this.RequestType)) { yield return(new ValidationResult("Jenis Request harus diisi", new List <string> { "RequestType" })); } int Count = 0; string materialsRequestNote_ItemsError = "["; if (this.MaterialsRequestNote_Items == null || this.MaterialsRequestNote_Items.Count.Equals(0)) { yield return(new ValidationResult("Tabel dibawah harus diisi", new List <string> { "MaterialsRequestNote_Items" })); } else { foreach (MaterialsRequestNote_ItemViewModel materialsRequestNote_Item in this.MaterialsRequestNote_Items) { materialsRequestNote_ItemsError += "{"; if (materialsRequestNote_Item.Product == null || string.IsNullOrWhiteSpace(materialsRequestNote_Item.Product._id)) { Count++; materialsRequestNote_ItemsError += "ProductId: 'Barang harus diisi', "; } else if (materialsRequestNote_Item.Product.name != null || string.IsNullOrWhiteSpace(materialsRequestNote_Item.Product.name)) { string inventorySummaryURI = "inventory/inventory-summary?order=%7B%7D&page=1&size=1000000000&"; MaterialsRequestNoteService Service = (MaterialsRequestNoteService)validationContext.GetService(typeof(MaterialsRequestNoteService)); HttpClient httpClient = new HttpClient(); httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", Service.Token); List <string> products = new List <string>(); foreach (MaterialsRequestNote_ItemViewModel item in this.MaterialsRequestNote_Items) { products.Add(item.Product.code); } var storageName = this.Unit.name.Equals("PRINTING") ? "Gudang Greige Printing" : "Gudang Greige Finishing"; Dictionary <string, object> filter = new Dictionary <string, object> { { "storageName", storageName }, { "uom", "MTR" }, { "productCode", new Dictionary <string, object> { { "$in", products.ToArray() } } } }; var response = httpClient.GetAsync($@"{APIEndpoint.Inventory}{inventorySummaryURI}filter=" + JsonConvert.SerializeObject(filter)).Result.Content.ReadAsStringAsync(); Dictionary <string, object> result = JsonConvert.DeserializeObject <Dictionary <string, object> >(response.Result); var json = result.Single(p => p.Key.Equals("data")).Value; List <InventorySummaryViewModel> inventorySummaries = JsonConvert.DeserializeObject <List <InventorySummaryViewModel> >(json.ToString()); if (!(inventorySummaries.Count.Equals(0))) { InventorySummaryViewModel inventorySummary = inventorySummaries.SingleOrDefault(p => p.productCode.Equals(materialsRequestNote_Item.Product.code) && p.uom.Equals("MTR")); if (inventorySummary == null) { Count++; materialsRequestNote_ItemsError += "ProductId: 'Barang tidak ada pada inventori summeries', "; } } else { Count++; materialsRequestNote_ItemsError += "ProductId: 'Barang tidak ada pada inventori summeries', "; } } if (string.IsNullOrWhiteSpace(materialsRequestNote_Item.Grade)) { Count++; materialsRequestNote_ItemsError += "Grade: 'Grade harus diisi', "; } if (materialsRequestNote_Item.Length == null) { Count++; materialsRequestNote_ItemsError += "Length: 'Panjang harus diisi', "; } else if (materialsRequestNote_Item.Length <= 0) { Count++; materialsRequestNote_ItemsError += "Length: 'Panjang harus lebih besar dari 0', "; } if (!string.Equals(this.RequestType.ToUpper(), "TEST") && !string.Equals(this.RequestType.ToUpper(), "PEMBELIAN")) { if (materialsRequestNote_Item.ProductionOrder != null && materialsRequestNote_Item.Length > (materialsRequestNote_Item.ProductionOrder.orderQuantity * 1.05)) { Count++; materialsRequestNote_ItemsError += "Length: 'Panjang total tidak boleh lebih dari 105% toleransi', "; } if (materialsRequestNote_Item.ProductionOrder == null || string.IsNullOrWhiteSpace(materialsRequestNote_Item.ProductionOrder._id)) { Count++; materialsRequestNote_ItemsError += "ProductionOrderId: 'Surat Perintah Produksi harus diisi', "; } if (materialsRequestNote_Item.ProductionOrder != null) { int count = MaterialsRequestNote_Items .Count(c => string.Equals(c.ProductionOrder._id, materialsRequestNote_Item.ProductionOrder._id)); if (count > 1) { Count++; materialsRequestNote_ItemsError += "ProductionOrderId: 'Surat Perintah Produksi tidak boleh duplikat', "; } } } materialsRequestNote_ItemsError += "}, "; } } materialsRequestNote_ItemsError += "]"; if (Count > 0) { yield return(new ValidationResult(materialsRequestNote_ItemsError, new List <string> { "MaterialsRequestNote_Items" })); } }