private void dgInventory_MouseDoubleClick(object sender, MouseButtonEventArgs e) { UpperComponentWHInventoryViewModel upperComponentWHInventoryView = (UpperComponentWHInventoryViewModel)dgInventory.CurrentItem; if (upperComponentWHInventoryView != null) { List <String> productNoList = upperComponentWHInventoryView.ProductNoList; List <Int32> upperComponentIDList = upperComponentMaterialList.Where(o => productNoList.Contains(o.ProductNo)).Select(o => o.UpperComponentID).Distinct().ToList(); UpperComponentWHInventoryDetailWindow window = new UpperComponentWHInventoryDetailWindow( productNoList, orderList.Where(o => productNoList.Contains(o.ProductNo)).ToList(), upperComponentMaterialList.Where(o => productNoList.Contains(o.ProductNo)).ToList(), //outsoleReleaseMaterialList.Where(o => productNoList.Contains(o.ProductNo)).ToList(), upperComponentList.Where(o => upperComponentIDList.Contains(o.UpperComponentID) == true).ToList() ); window.Title = String.Format("{0} for {1}", window.Title, upperComponentWHInventoryView.OutsoleCode); window.Show(); } }
private void bwLoadData_DoWork(object sender, DoWorkEventArgs e) { upperComponentList = UpperComponentController.Select(); upperComponentMaterialList = UpperComponentMaterialController.Select(); // lay ra nhung order da co uppercomponentrawmaterial orderList = OrdersController.SelectByUpperComponentRawMaterial(); var upperComponentInventoryViewList = new List <UpperComponentWHInventoryViewModel>(); List <String> outsoleCodeList = orderList.Select(o => o.OutsoleCode).Distinct().ToList(); foreach (string outsoleCode in outsoleCodeList) { List <String> productNoList = orderList.Where(o => o.OutsoleCode == outsoleCode).Select(o => o.ProductNo).Distinct().ToList(); List <UpperComponentMaterialModel> upperComponentMaterialList_D1 = upperComponentMaterialList.Where(o => productNoList.Contains(o.ProductNo)).ToList(); List <Int32> upperComponentIDList = upperComponentMaterialList_D1.Select(o => o.UpperComponentID).Distinct().ToList(); List <Int32> qtyTotalList = new List <Int32>(); foreach (var upperComponentID in upperComponentIDList) { List <UpperComponentMaterialModel> upperComponentMaterialList_D2 = upperComponentMaterialList_D1.Where(w => w.UpperComponentID == upperComponentID).ToList(); int qtyTotal = 0; foreach (var productNo in productNoList) { List <UpperComponentMaterialModel> upperComponentMaterialList_D3 = upperComponentMaterialList_D2.Where(w => w.ProductNo == productNo).ToList(); List <String> sizeNoList = upperComponentMaterialList.Where(o => o.ProductNo == productNo).Select(o => o.SizeNo).Distinct().ToList(); foreach (var sizeNo in sizeNoList) { int qty = upperComponentMaterialList_D3.Where(w => w.SizeNo == sizeNo).Sum(s => s.Quantity - s.QuantityReject); if (qty < 0) { qty = 0; } qtyTotal += qty; } } qtyTotalList.Add(qtyTotal); } int qtyMatchTotal = 0; foreach (var productNo in productNoList) { List <UpperComponentMaterialModel> upperComponentMaterialList_D2 = upperComponentMaterialList_D1.Where(w => w.ProductNo == productNo).ToList(); List <String> sizeNoList = upperComponentMaterialList.Where(o => o.ProductNo == productNo).Select(o => o.SizeNo).Distinct().ToList(); foreach (string sizeNo in sizeNoList) { int qtyMatch = upperComponentMaterialList_D2.Where(w => w.SizeNo == sizeNo).Select(s => s.Quantity - s.QuantityReject).Min(); if (qtyMatch < 0) { qtyMatch = 0; } qtyMatchTotal += qtyMatch; } } UpperComponentWHInventoryViewModel upperComponentWHInventoryView = new UpperComponentWHInventoryViewModel() { OutsoleCode = outsoleCode, ProductNoList = productNoList, UpperComponentIDList = upperComponentIDList, Quantity = qtyTotalList.Max(), Matching = qtyMatchTotal, }; if (upperComponentWHInventoryView.Quantity != 0) { upperComponentWHInventoryViewList.Add(upperComponentWHInventoryView); } } e.Result = upperComponentWHInventoryViewList; }