示例#1
0
 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;
            }
        }
示例#3
0
        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;
            }
        }