private void BwLoad_DoWork(object sender, DoWorkEventArgs e) { materialPlanList = MaterialPlanController.GetMaterialPlanByPO(productNo); materialPlanList.ForEach(t => t.ActualDateString = t.ActualDate != dtDefault ? String.Format("{0:MM/dd}", t.ActualDate) : ""); supplierAccessoriesList = SupplierController.GetSuppliersAccessories(); sizeRunList = SizeRunController.Select(productNo); matsInspectionList = MaterialInspectController.GetMaterialInspectByPO(productNo); matsDeliveryList = MaterialDeliveryController.GetMaterialDeliveryByPO(productNo); }
private void BwUpload_DoWork(object sender, DoWorkEventArgs e) { try { if (eAction.Equals(EExcute.AddNew)) { // Delete Reject Current List First if (inspectListHasReject.Count() > 0) { foreach (var rejectItem in inspectListCurrent) { MaterialInspectController.Insert(rejectItem, insertQty: false, insertReject: false, deleteReject: true); } } // Add New foreach (var rejectItem in inspectListHasReject) { MaterialInspectController.Insert(rejectItem, insertQty: false, insertReject: true, deleteReject: false); } } else if (eAction.Equals(EExcute.Delete)) { foreach (var rejectItem in inspectListHasReject) { MaterialInspectController.Insert(rejectItem, insertQty: false, insertReject: false, deleteReject: true); } } // Update Reject Delivery MaterialDeliveryController.UpdateRejectWhenInspect(materialPlanChecking); e.Result = true; } catch (Exception ex) { Dispatcher.Invoke(new Action(() => { MessageBox.Show(ex.InnerException.InnerException.Message.ToString(), this.Title, MessageBoxButton.OK, MessageBoxImage.Error); })); eAction = EExcute.None; e.Result = false; } }
private void BwUpload_DoWork(object sender, DoWorkEventArgs e) { var deliveryOKList = e.Argument as List <MaterialInspectModel>; try { if (eAction == EExcute.AddNew) { foreach (var itemInsert in deliveryOKList) { MaterialInspectController.Insert(itemInsert, insertQty: true, insertReject: false, deleteReject: false); matsInspectionList.RemoveAll(r => r.SupplierId.Equals(itemInsert.SupplierId) && r.DeliveryDate.Equals(itemInsert.DeliveryDate) && r.SizeNo.Equals(itemInsert.SizeNo) && r.Quantity > 0); matsInspectionList.Add(itemInsert); } } else if (eAction == EExcute.Delete) { MaterialInspectController.DeleteByPOBySupplier(productNo, supplierClicked.SupplierId); matsInspectionList.RemoveAll(r => r.SupplierId.Equals(supplierClicked.SupplierId)); } e.Result = true; // Update ActualDate var deliveryListBySupp = matsInspectionList. GroupBy(g => g.SupplierId). Select(s => new { SupplierId = s.Key, TotalInspect = matsInspectionList.Where(w => w.SupplierId.Equals(s.Key)).Sum(sum => sum.Quantity), TotalReject = matsInspectionList.Where(w => w.SupplierId.Equals(s.Key)).Sum(r => r.Reject), MaxDeliveryDate = matsInspectionList.Where(w => w.SupplierId.Equals(s.Key)).Max(m => m.DeliveryDate) }).ToList(); foreach (var materialPlan in materialPlanList) { var deliveryBySupp = deliveryListBySupp.FirstOrDefault(f => f.SupplierId.Equals(materialPlan.SupplierId)); if (deliveryBySupp != null) { if (deliveryBySupp.TotalInspect.Equals(sizeRunList.Sum(s => s.Quantity))) { materialPlan.ActualDate = deliveryBySupp.MaxDeliveryDate.Date; } else { materialPlan.ActualDate = dtDefault; } } else { materialPlan.ActualDate = dtDefault; } MaterialPlanController.Insert(materialPlan, isUpdateActualDate: true); materialPlanList.ForEach(t => t.ActualDateString = t.ActualDate != dtDefault ? String.Format("{0:MM/dd}", t.ActualDate) : ""); } } catch (Exception ex) { Dispatcher.Invoke(new Action(() => { MessageBox.Show(ex.Message, this.Title, MessageBoxButton.OK, MessageBoxImage.Error); })); e.Result = false; } }