public OutsoleWHDeliveryDetailWindow_1(string outsoleCode, List <OutsoleMaterialModel> outsoleMaterialList, List <OutsoleReleaseMaterialModel> outsoleReleaseList, List <SizeRunModel> sizeRunList, OutsoleSuppliersModel supplier, List <OrdersModel> orderList) { this.outsoleCode = outsoleCode; this.orderList = orderList; this.outsoleMaterialList = outsoleMaterialList; this.outsoleReleaseList = outsoleReleaseList; this.sizeRunList = sizeRunList; this.supplier = supplier; bwLoad = new BackgroundWorker(); bwLoad.DoWork += new DoWorkEventHandler(bwLoad_DoWork); bwLoad.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwLoad_RunWorkerCompleted); bwExportExcel = new BackgroundWorker(); bwExportExcel.DoWork += new DoWorkEventHandler(bwExportExcel_DoWork); bwExportExcel.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwExportExcel_RunWorkerCompleted); bwExportExcel.WorkerSupportsCancellation = true; sewingMasterList = new List <SewingMasterModel>(); outsoleRawMaterial = new List <OutsoleRawMaterialModel>(); excelExportList = new List <ExportExcelModel>(); def = new PrivateDefineModel(); InitializeComponent(); }
public OutsoleMaterialRejectReportWindow() { bwLoadData = new BackgroundWorker(); bwLoadData.WorkerSupportsCancellation = true; bwLoadData.DoWork += new DoWorkEventHandler(bwLoadData_DoWork); bwLoadData.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwLoadData_RunWorkerCompleted); bwLoadBalance = new BackgroundWorker(); bwLoadBalance.WorkerSupportsCancellation = true; bwLoadBalance.DoWork += new DoWorkEventHandler(bwLoadBalance_DoWork); bwLoadBalance.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwLoadBalance_RunWorkerCompleted); bwLoadAll = new BackgroundWorker(); bwLoadAll.WorkerSupportsCancellation = true; bwLoadAll.DoWork += new DoWorkEventHandler(bwLoadAll_DoWork); bwLoadAll.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwLoadAll_RunWorkerCompleted); outsoleMaterialRejectList = new List <OutsoleMaterialModel>(); outsoleSupplierList = new List <OutsoleSuppliersModel>(); orderList = new List <OrdersModel>(); outsoleRawMaterialList = new List <OutsoleRawMaterialModel>(); outsoleMaterialBalanceReportList = new List <OutsoleMaterialBalanceReportModel>(); //outsoleMaterialRejectReportList = new List<OutsoleMaterialBalanceReportModel>(); outsoleMaterialAllReportList = new List <OutsoleMaterialBalanceReportModel>(); sizeRunList = new List <SizeRunModel>(); def = new PrivateDefineModel(); dtRejectAssemblyStockfit = new DataTable(); InitializeComponent(); }
public PrintSizeRunWindow(string productNoListPar) { this.productNoListPar = productNoListPar; bwPreview = new BackgroundWorker(); bwPreview.DoWork += BwPreview_DoWork; bwPreview.RunWorkerCompleted += BwPreview_RunWorkerCompleted; printSizeRunList = new List <PrintSizeRunModel>(); privateDef = new PrivateDefineModel(); InitializeComponent(); }
public SummarySewingReportWindow() { sewingMasterViewList = new List <SewingMasterViewModel>(); sewingMasterViewModelNewList = new List <SewingMasterViewModelNew>(); productionMemoList = new List <ProductionMemoModel>(); offDayList = new List <OffDayModel>(); rawMaterialViewModelNewList = new List <RawMaterialViewModelNew>(); privateDefine = new PrivateDefineModel(); bwLoad = new BackgroundWorker(); bwLoad.WorkerSupportsCancellation = true; bwLoad.DoWork += BwLoad_DoWork; bwLoad.RunWorkerCompleted += BwLoad_RunWorkerCompleted; InitializeComponent(); }
public CutprepMasterFilterWindow() { bwLoad = new BackgroundWorker(); bwLoad.WorkerSupportsCancellation = true; bwLoad.DoWork += new DoWorkEventHandler(bwLoad_DoWork); bwLoad.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwLoad_RunWorkerCompleted); orderList = new List <OrdersModel>(); rawMaterialList = new List <RawMaterialModel>(); sewingMasterList = new List <SewingMasterModel>(); lineFilterViewList = new List <LineFilterViewModel>(); etdFilterViewList = new List <ETDFilterViewModel>(); cutprepMasterExportViewList = new List <CutprepMasterExportViewModel>(); cutprepMasterExportViewFilteredList = new ObservableCollection <CutprepMasterExportViewModel>(); dtDefault = new DateTime(2000, 1, 1); dtNothing = new DateTime(1999, 12, 31); productionMemoList = new List <ProductionMemoModel>(); offDayList = new List <OffDayModel>(); privateDefine = new PrivateDefineModel(); InitializeComponent(); }
public ImportSizeRunNewWindow(AccountModel acc) { this.acc = acc; filePath = ""; sizeRunList = new List <SizeRunModel>(); ordersToImportList = new List <OrdersModel>(); ordersList = new List <OrdersModel>(); privateDef = new PrivateDefineModel(); bwLoad = new BackgroundWorker(); bwLoad.DoWork += new DoWorkEventHandler(bwLoad_DoWork); bwLoad.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwLoad_RunWorkerCompleted); bwImport = new BackgroundWorker(); bwImport.DoWork += new DoWorkEventHandler(bwImport_DoWork); bwImport.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bwImport_RunWorkerCompleted); bwImportOrders = new BackgroundWorker(); bwImportOrders.DoWork += BwImportOrders_DoWork; bwImportOrders.RunWorkerCompleted += BwImportOrders_RunWorkerCompleted; sizeRunToImportList = new List <SizeRunModel>(); InitializeComponent(); }
private void BwPreview_DoWork(object sender, DoWorkEventArgs e) { printSizeRunList = new List <PrintSizeRunModel>(); var lisfOfPOSearch = e.Argument as List <String>; privateDef = PrivateDefineController.GetDefine(); foreach (var po in lisfOfPOSearch.Distinct().ToList()) { printSizeRunList.AddRange(PrintSizeRunController.GetByPO(po.Trim().ToUpper().ToString())); } // CREATE COLUMNS Dispatcher.Invoke(new Action(() => { DataTable dt = new DataTable(); dgSizeRun.Columns.Clear(); // Column ProductNo dt.Columns.Add("ProductNo", typeof(String)); DataGridTemplateColumn colPO = new DataGridTemplateColumn(); colPO.Header = String.Format("ProductNo"); DataTemplate templatePO = new DataTemplate(); FrameworkElementFactory tblPO = new FrameworkElementFactory(typeof(TextBlock)); templatePO.VisualTree = tblPO; tblPO.SetValue(TextBlock.TextProperty, ""); tblPO.SetBinding(TextBlock.TextProperty, new Binding(String.Format("ProductNo"))); tblPO.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblPO.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colPO.CellTemplate = templatePO; colPO.ClipboardContentBinding = new Binding(String.Format("ProductNo")); dgSizeRun.Columns.Add(colPO); // Column EFD dt.Columns.Add("EFD", typeof(String)); DataGridTemplateColumn colEFD = new DataGridTemplateColumn(); colEFD.Header = String.Format("EFD"); DataTemplate templateEFD = new DataTemplate(); FrameworkElementFactory tblEFD = new FrameworkElementFactory(typeof(TextBlock)); templateEFD.VisualTree = tblEFD; tblEFD.SetValue(TextBlock.TextProperty, ""); tblEFD.SetBinding(TextBlock.TextProperty, new Binding(String.Format("EFD"))); tblEFD.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblEFD.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colEFD.CellTemplate = templateEFD; colEFD.ClipboardContentBinding = new Binding(String.Format("EFD")); dgSizeRun.Columns.Add(colEFD); // Column ShoeName dt.Columns.Add("ShoeName", typeof(String)); DataGridTemplateColumn colShoeName = new DataGridTemplateColumn(); colShoeName.Header = String.Format("Shoe Name"); DataTemplate templateShoeName = new DataTemplate(); FrameworkElementFactory tblShoeName = new FrameworkElementFactory(typeof(TextBlock)); templateShoeName.VisualTree = tblShoeName; tblShoeName.SetValue(TextBlock.TextProperty, ""); tblShoeName.SetBinding(TextBlock.TextProperty, new Binding(String.Format("ShoeName"))); tblShoeName.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblShoeName.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colShoeName.CellTemplate = templateShoeName; colShoeName.ClipboardContentBinding = new Binding(String.Format("ShoeName")); dgSizeRun.Columns.Add(colShoeName); // Column SewingStart dt.Columns.Add("SewingStartDate", typeof(String)); DataGridTemplateColumn colSewStart = new DataGridTemplateColumn(); colSewStart.Header = String.Format("Sewing Start"); DataTemplate templateSewStart = new DataTemplate(); FrameworkElementFactory tblSewStart = new FrameworkElementFactory(typeof(TextBlock)); templateSewStart.VisualTree = tblSewStart; tblSewStart.SetValue(TextBlock.TextProperty, ""); tblSewStart.SetBinding(TextBlock.TextProperty, new Binding(String.Format("SewingStartDate"))); tblSewStart.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblSewStart.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colSewStart.CellTemplate = templateSewStart; colSewStart.ClipboardContentBinding = new Binding(String.Format("SewingStartDate")); dgSizeRun.Columns.Add(colSewStart); var sizeNoRawList = printSizeRunList.Select(s => s.SizeNo).Distinct().ToList(); var regex = new Regex("[a-z]|[A-Z]"); var sizeNoList = sizeNoRawList.Select(s => s).Distinct().OrderBy(s => regex.IsMatch(s) ? Double.Parse(regex.Replace(s, "100")) : Double.Parse(s)).ToList(); foreach (var sizeNo in sizeNoList) { string sizeNoVar = sizeNo.Contains(".") ? sizeNo.Replace(".", "@").ToString() : sizeNo; dt.Columns.Add(String.Format("Column{0}", sizeNoVar), typeof(String)); DataGridTemplateColumn colQuantity = new DataGridTemplateColumn(); colQuantity.Header = String.Format(sizeNo); colQuantity.Width = 40; DataTemplate templateQuantity = new DataTemplate(); FrameworkElementFactory tblQuantity = new FrameworkElementFactory(typeof(TextBlock)); templateQuantity.VisualTree = tblQuantity; tblQuantity.SetBinding(TextBlock.TextProperty, new Binding(String.Format("Column{0}", sizeNoVar))); tblQuantity.SetValue(TextBlock.PaddingProperty, new Thickness(3, 3, 3, 3)); tblQuantity.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblQuantity.SetValue(TextBlock.HorizontalAlignmentProperty, HorizontalAlignment.Center); colQuantity.CellTemplate = templateQuantity; colQuantity.ClipboardContentBinding = new Binding(String.Format("Column{0}", sizeNoVar)); dgSizeRun.Columns.Add(colQuantity); } // Binding Data var productNoList = printSizeRunList.Select(s => s.ProductNo).Distinct().ToList(); //if (productNoList.Count() > 0) // productNoList = productNoList.OrderBy(o => o).ToList(); foreach (var productNo in productNoList) { var printSizeRunFirst = printSizeRunList.FirstOrDefault(f => f.ProductNo == productNo); var printSizeListByPO = printSizeRunList.Where(w => w.ProductNo == productNo).ToList(); DataRow dr = dt.NewRow(); dr["ProductNo"] = productNo; dr["EFD"] = String.Format("{0:MM/dd/yyy}", printSizeRunFirst.EFD); dr["SewingStartDate"] = String.Format("{0:MM/dd/yyy}", printSizeRunFirst.SewingStartDate); dr["ShoeName"] = printSizeRunFirst.ShoeName; foreach (var printSizeRun in printSizeListByPO) { var psrBySize = printSizeListByPO.FirstOrDefault(f => f.SizeNo == printSizeRun.SizeNo); string sizeNoVar = printSizeRun.SizeNo.Contains(".") ? printSizeRun.SizeNo.Replace(".", "@").ToString() : printSizeRun.SizeNo; dr[String.Format("Column{0}", sizeNoVar)] = psrBySize.Quantity; } dt.Rows.Add(dr); } dgSizeRun.ItemsSource = dt.AsDataView(); })); }
private void bwLoad_DoWork(object sender, DoWorkEventArgs e) { try { orderList = OrdersController.Select(); rawMaterialList = RawMaterialController.Select(); sewingMasterList = SewingMasterController.Select(); productionMemoList = ProductionMemoController.Select(); offDayList = OffDayController.Select(); privateDefine = PrivateDefineController.GetDefine(); } catch (Exception ex) { Dispatcher.Invoke(new Action(() => { MessageBox.Show(ex.Message, this.Title, MessageBoxButton.OK, MessageBoxImage.Error); })); return; } _SEW_VS_OTHERS_CUT_A = privateDefine.SewingVsOthersCutTypeA; _SEW_VS_OTHERS_CUT_B = privateDefine.SewingVsOthersCutTypeB; //sewingMasterList.RemoveAll(s => DateTimeHelper.Create(s.SewingBalance) != dtDefault && DateTimeHelper.Create(s.SewingBalance) != dtNothing); sewingMasterList = sewingMasterList.OrderBy(s => s.Sequence).ToList(); int[] materialIdUpperArray = { 1, 2, 3, 4, 10 }; int[] materialIdSewingArray = { 5, 7 }; int[] materialIdOutsoleArray = { 6 }; foreach (SewingMasterModel sewingMaster in sewingMasterList) { CutprepMasterExportViewModel cutprepMasterExportView = new CutprepMasterExportViewModel(); cutprepMasterExportView.Sequence = sewingMaster.Sequence; cutprepMasterExportView.ProductNo = sewingMaster.ProductNo; OrdersModel order = orderList.FirstOrDefault(f => f.ProductNo == sewingMaster.ProductNo); string memoId = ""; if (order != null) { cutprepMasterExportView.Country = order.Country; cutprepMasterExportView.ShoeName = order.ShoeName; cutprepMasterExportView.ArticleNo = order.ArticleNo; cutprepMasterExportView.PatternNo = order.PatternNo; cutprepMasterExportView.Quantity = order.Quantity; cutprepMasterExportView.ETD = order.ETD; List <ProductionMemoModel> productionMemoByProductionNumberList = productionMemoList.Where(p => p.ProductionNumbers.Contains(order.ProductNo) == true).ToList(); for (int p = 0; p <= productionMemoByProductionNumberList.Count - 1; p++) { ProductionMemoModel productionMemo = productionMemoByProductionNumberList[p]; memoId += productionMemo.MemoId; if (p < productionMemoByProductionNumberList.Count - 1) { memoId += "\n"; } } cutprepMasterExportView.MemoId = memoId; } MaterialArrivalViewModel materialArrivalUpper = MaterialArrival(order.ProductNo, materialIdUpperArray); cutprepMasterExportView.IsUpperMatsArrivalOk = false; if (materialArrivalUpper != null) { cutprepMasterExportView.UpperMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalUpper.Date); cutprepMasterExportView.IsUpperMatsArrivalOk = materialArrivalUpper.IsMaterialArrivalOk; } cutprepMasterExportView.SewingLine = sewingMaster.SewingLine; cutprepMasterExportView.SewingStartDate = sewingMaster.SewingStartDate; cutprepMasterExportView.SewingQuota = sewingMaster.SewingQuota; cutprepMasterExportView.SewingBalance = sewingMaster.SewingBalance; cutprepMasterExportView.CutAStartDate = sewingMaster.CutAStartDate; cutprepMasterExportView.CutAFinishDate = sewingMaster.CutAFinishDate; cutprepMasterExportView.CutAQuota = sewingMaster.CutAQuota; cutprepMasterExportView.AutoCut = sewingMaster.AutoCut; cutprepMasterExportView.LaserCut = sewingMaster.LaserCut; cutprepMasterExportView.HuasenCut = sewingMaster.HuasenCut; cutprepMasterExportView.CutABalance = sewingMaster.CutABalance; cutprepMasterExportView.PrintingBalance = sewingMaster.PrintingBalance; cutprepMasterExportView.H_FBalance = sewingMaster.H_FBalance; cutprepMasterExportView.EmbroideryBalance = sewingMaster.EmbroideryBalance; cutprepMasterExportView.CutBBalance = sewingMaster.CutBBalance; // Cut type A before sewing 18days var cutTypeABeforeSewing = sewingMaster.SewingStartDate.AddDays(-_SEW_VS_OTHERS_CUT_A); var dtCheckOffDateCutTypeAList = CheckOffDay(cutTypeABeforeSewing, sewingMaster.SewingStartDate); // Cut type B before sewing 10days var cutTypeBBeforeSewing = sewingMaster.SewingStartDate.AddDays(-_SEW_VS_OTHERS_CUT_B); var dtCheckOffDateCutTypeBList = CheckOffDay(cutTypeBBeforeSewing, sewingMaster.SewingStartDate); var firstDateCheckOffCutTypeA = String.Format("{0:M/d}", dtCheckOffDateCutTypeAList.FirstOrDefault()); var firstDateCheckOffCutTypeB = String.Format("{0:M/d}", dtCheckOffDateCutTypeBList.FirstOrDefault()); if (!String.IsNullOrEmpty(sewingMaster.CutBStartDate)) { cutprepMasterExportView.CutBStartDate = sewingMaster.CutBStartDate; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.CutBStartDate = firstDateCheckOffCutTypeB; } else { cutprepMasterExportView.CutBStartDate = ""; } if (!String.IsNullOrEmpty(sewingMaster.AtomCutA)) { cutprepMasterExportView.AtomCutA = sewingMaster.AtomCutA; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.AtomCutA = firstDateCheckOffCutTypeA; } else { cutprepMasterExportView.AtomCutA = ""; } if (!String.IsNullOrEmpty(sewingMaster.AtomCutB)) { cutprepMasterExportView.AtomCutB = sewingMaster.AtomCutB; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.AtomCutB = firstDateCheckOffCutTypeB; } else { cutprepMasterExportView.AtomCutB = ""; } if (!String.IsNullOrEmpty(sewingMaster.LaserCutA)) { cutprepMasterExportView.LaserCutA = sewingMaster.LaserCutA; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.LaserCutA = firstDateCheckOffCutTypeA; } else { cutprepMasterExportView.LaserCutA = ""; } if (!String.IsNullOrEmpty(sewingMaster.LaserCutB)) { cutprepMasterExportView.LaserCutB = sewingMaster.LaserCutB; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.LaserCutB = firstDateCheckOffCutTypeB; } else { cutprepMasterExportView.LaserCutB = ""; } if (!String.IsNullOrEmpty(sewingMaster.HuasenCutA)) { cutprepMasterExportView.HuasenCutA = sewingMaster.HuasenCutA; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.HuasenCutA = firstDateCheckOffCutTypeA; } else { cutprepMasterExportView.HuasenCutA = ""; } if (!String.IsNullOrEmpty(sewingMaster.HuasenCutB)) { cutprepMasterExportView.HuasenCutB = sewingMaster.HuasenCutB; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.HuasenCutB = firstDateCheckOffCutTypeB; } else { cutprepMasterExportView.HuasenCutB = ""; } if (!String.IsNullOrEmpty(sewingMaster.ComelzCutA)) { cutprepMasterExportView.ComelzCutA = sewingMaster.ComelzCutA; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.ComelzCutA = firstDateCheckOffCutTypeA; } else { cutprepMasterExportView.ComelzCutA = ""; } if (!String.IsNullOrEmpty(sewingMaster.ComelzCutB)) { cutprepMasterExportView.ComelzCutB = sewingMaster.ComelzCutB; } else if (sewingMaster.SewingStartDate != dtDefault) { cutprepMasterExportView.ComelzCutB = firstDateCheckOffCutTypeB; } else { cutprepMasterExportView.ComelzCutB = ""; } cutprepMasterExportViewList.Add(cutprepMasterExportView); } }
public PrintSizeRunReportWindow(List <PrintSizeRunModel> printSizeRunList, PrivateDefineModel privateDef) { this.printSizeRunList = printSizeRunList; this.privateDef = privateDef; InitializeComponent(); }
private void bwLoad_DoWork(object sender, DoWorkEventArgs e) { sewingMasterList = SewingMasterController.Select(); outsoleRawMaterial = OutsoleRawMaterialController.Select(); var productNoList = orderList.Select(s => s.ProductNo).Distinct().ToList(); sewingMasterList = sewingMasterList.Where(w => productNoList.Contains(w.ProductNo)).ToList(); outsoleRawMaterial = outsoleRawMaterial.Where(w => productNoList.Contains(w.ProductNo) && w.OutsoleSupplierId == supplier.OutsoleSupplierId).ToList(); def = PrivateDefineController.GetDefine(); var regex = new Regex("[a-z]|[A-Z]"); var sizeNoList = sizeRunList.Select(s => s.SizeNo).Distinct().OrderBy(s => regex.IsMatch(s) ? Double.Parse(regex.Replace(s, "100")) : Double.Parse(s)).ToList(); // Create Column DataTable dt = new DataTable(); Dispatcher.Invoke(new Action(() => { // Column OutsoleCode dt.Columns.Add("ProductNo", typeof(String)); DataGridTemplateColumn colPO = new DataGridTemplateColumn(); colPO.Header = String.Format("ProductNo"); DataTemplate tplPO = new DataTemplate(); FrameworkElementFactory tblPO = new FrameworkElementFactory(typeof(TextBlock)); tplPO.VisualTree = tblPO; tblPO.SetBinding(TextBlock.TextProperty, new Binding(String.Format("ProductNo"))); tblPO.SetValue(TextBlock.FontWeightProperty, FontWeights.SemiBold); tblPO.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblPO.SetValue(TextBlock.PaddingProperty, new Thickness(3, 2, 3, 2)); colPO.CellTemplate = tplPO; colPO.SortMemberPath = "ProductNo"; colPO.ClipboardContentBinding = new Binding(String.Format("ProductNo")); dgWHDeliveryDetail.Columns.Add(colPO); // Column ArticleNo dt.Columns.Add("ArticleNo", typeof(String)); DataGridTemplateColumn colArticleNo = new DataGridTemplateColumn(); colArticleNo.Header = String.Format("ArticleNo"); DataTemplate tplArticleNo = new DataTemplate(); FrameworkElementFactory tblArticleNo = new FrameworkElementFactory(typeof(TextBlock)); tplArticleNo.VisualTree = tblArticleNo; tblArticleNo.SetBinding(TextBlock.TextProperty, new Binding(String.Format("ArticleNo"))); tblArticleNo.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblArticleNo.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colArticleNo.CellTemplate = tplArticleNo; colArticleNo.SortMemberPath = "ArticleNo"; colArticleNo.ClipboardContentBinding = new Binding(String.Format("ArticleNo")); dgWHDeliveryDetail.Columns.Add(colArticleNo); // Column OrderEFD dt.Columns.Add("OrderEFD", typeof(DateTime)); DataGridTemplateColumn colEFDOrder = new DataGridTemplateColumn(); colEFDOrder.Header = String.Format("Order\nEFD"); DataTemplate tplEFDOrder = new DataTemplate(); FrameworkElementFactory tblEFDOrder = new FrameworkElementFactory(typeof(TextBlock)); tplEFDOrder.VisualTree = tblEFDOrder; Binding bindingOrderEFD = new Binding(); bindingOrderEFD.Path = new PropertyPath("OrderEFD"); bindingOrderEFD.StringFormat = "dd-MMM"; //tblEFDOrder.SetBinding(TextBlock.TextProperty, new Binding(String.Format("OrderEFD"))); tblEFDOrder.SetBinding(TextBlock.TextProperty, bindingOrderEFD); tblEFDOrder.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblEFDOrder.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colEFDOrder.SortMemberPath = "OrderEFD"; colEFDOrder.ClipboardContentBinding = bindingOrderEFD; colEFDOrder.CellTemplate = tplEFDOrder; dgWHDeliveryDetail.Columns.Add(colEFDOrder); // Column DeliveryEFD dt.Columns.Add("DeliveryEFD", typeof(DateTime)); DataGridTemplateColumn colEFDDelivery = new DataGridTemplateColumn(); colEFDDelivery.Header = String.Format("Delivery\nEFD"); DataTemplate tplEFDDelivery = new DataTemplate(); FrameworkElementFactory tblEFDDelivery = new FrameworkElementFactory(typeof(TextBlock)); tplEFDDelivery.VisualTree = tblEFDDelivery; Binding bindingDeliveryEFD = new Binding(); bindingDeliveryEFD.Path = new PropertyPath("DeliveryEFD"); bindingDeliveryEFD.StringFormat = "dd-MMM"; //tblEFDDelivery.SetBinding(TextBlock.TextProperty, new Binding(String.Format("DeliveryEFD"))); tblEFDDelivery.SetBinding(TextBlock.TextProperty, bindingDeliveryEFD); tblEFDDelivery.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblEFDDelivery.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colEFDDelivery.SortMemberPath = "DeliveryEFD"; colEFDDelivery.ClipboardContentBinding = bindingDeliveryEFD; colEFDDelivery.CellTemplate = tplEFDDelivery; dgWHDeliveryDetail.Columns.Add(colEFDDelivery); // Column SewingStart dt.Columns.Add("SewingStartDate", typeof(DateTime)); DataGridTemplateColumn colSewingStart = new DataGridTemplateColumn(); colSewingStart.Header = String.Format("Sewing\nStart"); DataTemplate tplSewingStart = new DataTemplate(); FrameworkElementFactory tblSewingStart = new FrameworkElementFactory(typeof(TextBlock)); tplSewingStart.VisualTree = tblSewingStart; Binding bindingSewingStart = new Binding(); bindingSewingStart.Path = new PropertyPath("SewingStartDate"); bindingSewingStart.StringFormat = "dd-MMM"; //tblSewingStart.SetBinding(TextBlock.TextProperty, new Binding(String.Format("SewingStartDate"))); tblSewingStart.SetBinding(TextBlock.TextProperty, bindingSewingStart); tblSewingStart.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblSewingStart.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colSewingStart.SortMemberPath = "SewingStartDate"; colSewingStart.ClipboardContentBinding = bindingSewingStart; colSewingStart.CellTemplate = tplSewingStart; dgWHDeliveryDetail.Columns.Add(colSewingStart); // Column QuantityOrder dt.Columns.Add("QuantityOrder", typeof(Int32)); DataGridTemplateColumn colQtyOrder = new DataGridTemplateColumn(); colQtyOrder.Header = String.Format("Quantity\nOrder"); DataTemplate tplQtyOrder = new DataTemplate(); FrameworkElementFactory tblQtyOrder = new FrameworkElementFactory(typeof(TextBlock)); tplQtyOrder.VisualTree = tblQtyOrder; tblQtyOrder.SetBinding(TextBlock.TextProperty, new Binding(String.Format("QuantityOrder"))); tblQtyOrder.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Center); tblQtyOrder.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblQtyOrder.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colQtyOrder.CellTemplate = tplQtyOrder; colQtyOrder.SortMemberPath = "QuantityOrder"; colQtyOrder.ClipboardContentBinding = new Binding(String.Format("QuantityOrder")); dgWHDeliveryDetail.Columns.Add(colQtyOrder); // Column Release dt.Columns.Add("Release", typeof(Int32)); DataGridTemplateColumn colRelease = new DataGridTemplateColumn(); colRelease.Header = String.Format("Release"); DataTemplate tplRelease = new DataTemplate(); FrameworkElementFactory tblRelease = new FrameworkElementFactory(typeof(TextBlock)); tplRelease.VisualTree = tblRelease; tblRelease.SetBinding(TextBlock.TextProperty, new Binding(String.Format("Release"))); tblRelease.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Center); tblRelease.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblRelease.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colRelease.CellTemplate = tplRelease; colRelease.SortMemberPath = "Release"; colRelease.ClipboardContentBinding = new Binding(String.Format("Release")); dgWHDeliveryDetail.Columns.Add(colRelease); // Column Delivery dt.Columns.Add("Delivery", typeof(Int32)); DataGridTemplateColumn colDelivery = new DataGridTemplateColumn(); colDelivery.Header = String.Format("Delivery"); DataTemplate tplDelivery = new DataTemplate(); FrameworkElementFactory tblDelivery = new FrameworkElementFactory(typeof(TextBlock)); tplDelivery.VisualTree = tblDelivery; tblDelivery.SetBinding(TextBlock.TextProperty, new Binding(String.Format("Delivery"))); tblDelivery.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Center); tblDelivery.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblDelivery.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colDelivery.CellTemplate = tplDelivery; colDelivery.SortMemberPath = "Delivery"; colDelivery.ClipboardContentBinding = new Binding(String.Format("Delivery")); dgWHDeliveryDetail.Columns.Add(colDelivery); // Column Reject dt.Columns.Add("Reject", typeof(Int32)); DataGridTemplateColumn colReject = new DataGridTemplateColumn(); colReject.Header = String.Format("Reject"); DataTemplate tplReject = new DataTemplate(); FrameworkElementFactory tblReject = new FrameworkElementFactory(typeof(TextBlock)); tplReject.VisualTree = tblReject; tblReject.SetBinding(TextBlock.TextProperty, new Binding(String.Format("Reject"))); tblReject.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Center); tblReject.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblReject.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colReject.CellTemplate = tplReject; colReject.SortMemberPath = "Reject"; colReject.ClipboardContentBinding = new Binding(String.Format("Reject")); dgWHDeliveryDetail.Columns.Add(colReject); // Column SizeNo for (int i = 0; i < sizeNoList.Count(); i++) { var sizeRun_Size = sizeRunList.FirstOrDefault(w => w.SizeNo == sizeNoList[i]); if (sizeRun_Size == null) { continue; } string outsoleSize = "", midsoleSize = ""; if (sizeRun_Size != null) { outsoleSize = sizeRun_Size.OutsoleSize; midsoleSize = sizeRun_Size.MidsoleSize; } string sizeID = sizeRun_Size.SizeNo.Contains(".") == true ? sizeRun_Size.SizeNo.Replace(".", "@") : sizeRun_Size.SizeNo; dt.Columns.Add(String.Format("Column{0}", sizeID), typeof(String)); dt.Columns.Add(String.Format("ColumnBackground{0}", sizeID), typeof(SolidColorBrush)); dt.Columns.Add(String.Format("ColumnForeground{0}", sizeID), typeof(SolidColorBrush)); dt.Columns.Add(String.Format("ColumnTooltip{0}", sizeID), typeof(String)); DataGridTemplateColumn colSize = new DataGridTemplateColumn(); if (def.ShowOSSizeValue) { colSize.Header = String.Format("{0}\n{1}\n", sizeNoList[i], outsoleSize); } else { colSize.Header = String.Format("\n{0}\n", sizeNoList[i], ""); } colSize.MinWidth = 35; DataTemplate tplSize = new DataTemplate(); FrameworkElementFactory tblSize = new FrameworkElementFactory(typeof(TextBlock)); tplSize.VisualTree = tblSize; tblSize.SetBinding(TextBlock.TextProperty, new Binding(String.Format("Column{0}", sizeID))); tblSize.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Center); tblSize.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblSize.SetValue(TextBlock.PaddingProperty, new Thickness(3, 3, 3, 3)); tblSize.SetValue(TextBlock.BackgroundProperty, new Binding(String.Format("ColumnBackground{0}", sizeID))); tblSize.SetValue(TextBlock.ForegroundProperty, new Binding(String.Format("ColumnForeground{0}", sizeID))); tblSize.SetValue(TextBlock.ToolTipProperty, new Binding(String.Format("ColumnTooltip{0}", sizeID))); colSize.CellTemplate = tplSize; colSize.ClipboardContentBinding = new Binding(String.Format("Column{0}", sizeID)); dgWHDeliveryDetail.Columns.Add(colSize); } // Column Balance dt.Columns.Add("TotalBalance", typeof(Int32)); DataGridTemplateColumn colBalance = new DataGridTemplateColumn(); colBalance.Header = String.Format("Total\nBalance"); DataTemplate tplBalance = new DataTemplate(); FrameworkElementFactory tblBalance = new FrameworkElementFactory(typeof(TextBlock)); tplBalance.VisualTree = tblBalance; tblBalance.SetBinding(TextBlock.TextProperty, new Binding(String.Format("TotalBalance"))); tblBalance.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Center); tblBalance.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblBalance.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colBalance.CellTemplate = tplBalance; colBalance.SortMemberPath = "TotalBalance"; colBalance.ClipboardContentBinding = new Binding(String.Format("TotalBalance")); dgWHDeliveryDetail.Columns.Add(colBalance); // Column Reject dt.Columns.Add("ReleasePainting", typeof(Int32)); DataGridTemplateColumn colReleasePainting = new DataGridTemplateColumn(); colReleasePainting.Header = String.Format("Release\nPainting"); DataTemplate tplReleasePainting = new DataTemplate(); FrameworkElementFactory tblReleasePainting = new FrameworkElementFactory(typeof(TextBlock)); tplReleasePainting.VisualTree = tblReleasePainting; tblReleasePainting.SetBinding(TextBlock.TextProperty, new Binding(String.Format("ReleasePainting"))); tblReleasePainting.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Center); tblReleasePainting.SetValue(TextBlock.VerticalAlignmentProperty, VerticalAlignment.Center); tblReleasePainting.SetValue(TextBlock.PaddingProperty, new Thickness(3, 0, 0, 0)); colReleasePainting.CellTemplate = tplReleasePainting; colReleasePainting.SortMemberPath = "ReleasePainting"; colReleasePainting.ClipboardContentBinding = new Binding(String.Format("ReleasePainting")); dgWHDeliveryDetail.Columns.Add(colReleasePainting); })); // Binding Data if (productNoList.Count > 0) { productNoList = productNoList.OrderBy(o => o).ToList(); } foreach (var productNo in productNoList) { DataRow dr = dt.NewRow(); var order_PO = orderList.FirstOrDefault(w => w.ProductNo == productNo); var osMaterial_PO = outsoleMaterialList.Where(w => w.ProductNo == productNo).ToList(); var osRawMaterial_PO = outsoleRawMaterial.FirstOrDefault(w => w.ProductNo == productNo); var sewingMaster_PO = sewingMasterList.FirstOrDefault(w => w.ProductNo == productNo); var osRelease_PO = outsoleReleaseList.Where(w => w.ProductNo == productNo).ToList(); var contentStatusList = new List <ContentStatus>(); var sizeRunList_PO = sizeRunList.Where(w => w.ProductNo == productNo).ToList(); for (int i = 0; i < sizeNoList.Count(); i++) { string sizeNo = sizeNoList[i]; var contentStatus = new ContentStatus(); var sizeRun_Size = sizeRunList_PO.FirstOrDefault(w => w.SizeNo == sizeNo); string sizeID = sizeNo.Contains(".") == true?sizeNo.Replace(".", "@") : sizeNo; // if has balance, show balance = qty - delivery + reject // if contains reject highlight int qtyOrder_Size = sizeRun_Size != null ? sizeRun_Size.Quantity : 0; int qtyDelivery_Size = osMaterial_PO.FirstOrDefault(w => w.SizeNo == sizeNo) != null?osMaterial_PO.FirstOrDefault(w => w.SizeNo == sizeNo).Quantity : 0; int qtyReject_Size = osMaterial_PO.FirstOrDefault(w => w.SizeNo == sizeNo) != null?osMaterial_PO.FirstOrDefault(w => w.SizeNo == sizeNo).QuantityReject : 0; // Default Color contentStatus.WidthDefaultCell = 5; contentStatus.BorderColorCell = System.Drawing.Color.LightGray; contentStatus.ForegroundCell = System.Drawing.Color.Black; contentStatus.BackgroundCell = System.Drawing.Color.Transparent; int qtyBalance_Size = qtyOrder_Size - qtyDelivery_Size; if (qtyBalance_Size > 0) { dr[String.Format("Column{0}", sizeID)] = qtyBalance_Size; dr[String.Format("ColumnBackground{0}", sizeID)] = Brushes.Tomato; contentStatus.Quantity = qtyBalance_Size; } if (qtyReject_Size > 0) { dr[String.Format("Column{0}", sizeID)] = qtyReject_Size; dr[String.Format("ColumnForeground{0}", sizeID)] = Brushes.Red; contentStatus.Quantity = qtyReject_Size; contentStatus.ForegroundCell = System.Drawing.Color.Red; if (qtyBalance_Size > 0) { int qtyBalanceTotal = qtyBalance_Size + qtyReject_Size; dr[String.Format("Column{0}", sizeID)] = qtyBalanceTotal; dr[String.Format("ColumnBackground{0}", sizeID)] = Brushes.Yellow; dr[String.Format("ColumnTooltip{0}", sizeID)] = String.Format("Balance: {0}\nReject : {1}", qtyBalance_Size, qtyReject_Size); contentStatus.Quantity = qtyBalanceTotal; contentStatus.BackgroundCell = System.Drawing.Color.Yellow; } } // //if (qtyBalance_Size > 0 || qtyReject_Size > 0) contentStatusList.Add(contentStatus); } var articleNo = order_PO != null ? order_PO.ArticleNo : ""; var orderEFD = order_PO != null ? order_PO.ETD : new DateTime(2000, 1, 1); var delEFD = osRawMaterial_PO != null ? osRawMaterial_PO.ETD : new DateTime(2000, 1, 1); var sewStart = sewingMaster_PO != null ? sewingMaster_PO.SewingStartDate : new DateTime(2000, 1, 1); var release = osRelease_PO.Sum(s => s.Quantity); var qtyOrder = sizeRunList_PO.Sum(s => s.Quantity); var qtyDelivery = osMaterial_PO.Sum(s => s.Quantity); var qtyReject = osMaterial_PO.Sum(s => s.QuantityReject); var qtyReleasePainting = osMaterial_PO.FirstOrDefault().TotalReleasePainting; dr["ProductNo"] = productNo; dr["ArticleNo"] = articleNo; dr["OrderEFD"] = orderEFD; dr["DeliveryEFD"] = delEFD; dr["SewingStartDate"] = sewStart; dr["QuantityOrder"] = qtyOrder; dr["Release"] = release; dr["Delivery"] = qtyDelivery; dr["Reject"] = qtyReject; dr["TotalBalance"] = qtyOrder - qtyDelivery + qtyReject; dr["ReleasePainting"] = qtyReleasePainting; dt.Rows.Add(dr); var excelExportModel = new ExportExcelModel() { ProductNo = productNo, ArticleNo = articleNo, OrderEFD = orderEFD, DeliveryEFD = delEFD, SewingStartDate = sewStart, QuantityOrder = qtyOrder, Release = release, Delivery = qtyDelivery, Reject = qtyReject, ContentStatusList = contentStatusList, TotalBalance = qtyOrder - qtyDelivery + qtyReject, TotalReleasePainting = qtyReleasePainting, }; excelExportList.Add(excelExportModel); } DataRow drTotal = dt.NewRow(); drTotal["ProductNo"] = "Total"; drTotal["QuantityOrder"] = string.Format("{0:#,0}", dt.Compute("Sum(QuantityOrder)", "").ToString()); drTotal["Release"] = string.Format("{0:#,0}", dt.Compute("Sum(Release)", "").ToString()); drTotal["Delivery"] = string.Format("{0:#,0}", dt.Compute("Sum(Delivery)", "").ToString()); drTotal["Reject"] = string.Format("{0:#,0}", dt.Compute("Sum(Reject)", "").ToString()); drTotal["TotalBalance"] = string.Format("{0:#,0}", dt.Compute("Sum(TotalBalance)", "").ToString()); drTotal["ReleasePainting"] = string.Format("{0:#,0}", dt.Compute("Sum(ReleasePainting)", "").ToString()); dt.Rows.Add(drTotal); e.Result = dt; }
private void bwLoad_DoWork(object sender, DoWorkEventArgs e) { Excel.Application excelApplication = new Excel.Application(); Excel.Workbook excelWorkbook = excelApplication.Workbooks.Open(filePath); //excelApplication.Visible = true; Excel.Worksheet excelWorksheet; Excel.Range excelRange; try { privateDef = PrivateDefineController.GetDefine(); var regex = new Regex("[a-z]|[A-Z]"); excelWorksheet = (Excel.Worksheet)excelWorkbook.Worksheets[1]; excelRange = excelWorksheet.UsedRange; progressBar.Dispatcher.Invoke((Action)(() => progressBar.Maximum = excelRange.Rows.Count)); int noOfPO = 0; for (int i = 5; i <= excelRange.Rows.Count; i++) { var productNoValue = (excelRange.Cells[i, 4] as Excel.Range).Value2; if (productNoValue != null) { noOfPO++; string productNo = productNoValue.ToString(); // Order var order = new OrdersModel(); string UCustomerCode = ""; var uCustomerCodeValue = (excelRange.Cells[i, 2] as Excel.Range).Value2; if (uCustomerCodeValue != null) { UCustomerCode = uCustomerCodeValue.ToString(); } order.UCustomerCode = UCustomerCode; string GTNPONo = ""; var GTNPONoValue = (excelRange.Cells[i, 3] as Excel.Range).Value2; if (GTNPONoValue != null) { GTNPONo = GTNPONoValue.ToString(); } order.GTNPONo = GTNPONo; order.ProductNo = productNo; double csdOADate = 0; Double.TryParse((excelRange.Cells[i, 5] as Excel.Range).Value2.ToString(), out csdOADate); DateTime csd = DateTime.FromOADate(csdOADate); order.ETD = csd.AddDays(-10); string articleNo = (excelRange.Cells[i, 6] as Excel.Range).Value2.ToString(); order.ArticleNo = articleNo; string shoeName = (excelRange.Cells[i, 7] as Excel.Range).Value2.ToString(); order.ShoeName = shoeName; int quantity = 0; int.TryParse((excelRange.Cells[i, 8] as Excel.Range).Value2.ToString(), out quantity); order.Quantity = quantity; string patternNo = (excelRange.Cells[i, 12] as Excel.Range).Value2.ToString(); order.PatternNo = patternNo; var midsoleCodeValue = (excelRange.Cells[i, 13] as Excel.Range).Value2; string midsoleCode = ""; if (midsoleCodeValue != null) { midsoleCode = midsoleCodeValue.ToString(); } order.MidsoleCode = midsoleCode; var outsoleCodeValue = (excelRange.Cells[i, 14] as Excel.Range).Value2; string outsoleCode = ""; if (outsoleCodeValue != null) { outsoleCode = outsoleCodeValue.ToString(); } order.OutsoleCode = outsoleCode; var lastCodeValue = (excelRange.Cells[i, 15] as Excel.Range).Value2; string lastCode = ""; if (lastCodeValue != null) { lastCode = lastCodeValue.ToString(); } order.LastCode = lastCode; var countryValue = (excelRange.Cells[i, 16] as Excel.Range).Value2; string country = ""; if (countryValue != null) { country = countryValue.ToString(); } order.Country = country; order.Reviser = acc.UserName; ordersList.Add(order); //for (int j = 17; j <= 65; j++) // Size Run int noOfColumnLoad = privateDef != null ? privateDef.NoOfColumnOrderExcelFile : 100; for (int j = 18; j <= privateDef.NoOfColumnOrderExcelFile; j++) { var qtyValue = (excelRange.Cells[i, j] as Excel.Range).Value2; var sizeNoValue = (excelRange.Cells[i - noOfPO, j] as Excel.Range).Value2; var osSizeValue = (excelRange.Cells[i - noOfPO - 1, j] as Excel.Range).Value2; var midSizeValue = (excelRange.Cells[i - noOfPO - 2, j] as Excel.Range).Value2; var lastSizeValue = (excelRange.Cells[i - noOfPO - 3, j] as Excel.Range).Value2; if (qtyValue != null && sizeNoValue != null) { int qty = 0; int.TryParse(qtyValue.ToString(), out qty); //string sizeNo = (excelRange.Cells[1, j] as Excel.Range).Value2.ToString(); string sizeNo = sizeNoValue.ToString(); string outsoleSize = osSizeValue != null?osSizeValue.ToString() : sizeNo; string midsoleSize = midSizeValue != null?midSizeValue.ToString() : sizeNo; string lastSize = lastSizeValue != null?lastSizeValue.ToString() : sizeNo; SizeRunModel sizeRun = new SizeRunModel { ProductNo = productNo, SizeNo = regex.IsMatch(sizeNo) ? regex.Replace(sizeNo, "") : sizeNo, OutsoleSize = regex.IsMatch(outsoleSize) ? regex.Replace(outsoleSize, "") : outsoleSize, MidsoleSize = regex.IsMatch(midsoleSize) ? regex.Replace(midsoleSize, "") : midsoleSize, LastSize = regex.IsMatch(lastSize) ? regex.Replace(lastSize, "") : lastSize, Quantity = qty, }; sizeRunList.Add(sizeRun); } } } else { i = i + 4; noOfPO = 0; } progressBar.Dispatcher.Invoke((Action)(() => progressBar.Value = i)); } } catch { sizeRunList.Clear(); } finally { excelWorkbook.Close(false, Missing.Value, Missing.Value); excelApplication.Quit(); } }
private void bwLoadData_DoWork(object sender, DoWorkEventArgs e) { outsoleMaterialRejectList = OutsoleMaterialController.SelectReject(); outsoleSupplierList = OutsoleSuppliersController.Select(); orderList = OrdersController.SelectByOutsoleMaterialReject(); outsoleRawMaterialList = OutsoleRawMaterialController.Select(); sizeRunList = SizeRunController.SelectIsEnable(); def = PrivateDefineController.GetDefine(); DataTable dt = new OutsoleMaterialRejectDataSet().Tables["OutsoleMaterialRejectTable"]; DataTable dt1 = new OutsoleMaterialRejectDataSet().Tables["OutsoleMaterialRejectTable"]; var regex = new Regex(@"[a-z]|[A-Z]"); foreach (OutsoleMaterialModel outsoleMaterialReject in outsoleMaterialRejectList) { var outsoleSupplier = outsoleSupplierList.FirstOrDefault(f => f.OutsoleSupplierId == outsoleMaterialReject.OutsoleSupplierId); var order = orderList.FirstOrDefault(f => f.ProductNo == outsoleMaterialReject.ProductNo); var outsoleRawMaterial = outsoleRawMaterialList.FirstOrDefault(f => f.ProductNo == outsoleMaterialReject.ProductNo && f.OutsoleSupplierId == outsoleMaterialReject.OutsoleSupplierId); DataRow dr = dt.NewRow(); DataRow dr1 = dt1.NewRow(); dr["ProductNo"] = outsoleMaterialReject.ProductNo; dr1["ProductNo"] = outsoleMaterialReject.ProductNo; var productNoList = new List <String>(); if (order != null) { dr["OutsoleCode"] = order.OutsoleCode; dr1["OutsoleCode"] = order.OutsoleCode; dr["ETD"] = order.ETD; dr1["ETD"] = order.ETD; dr["ArticleNo"] = order.ArticleNo; dr1["ArticleNo"] = order.ArticleNo; productNoList = orderList.Where(w => w.OutsoleCode == order.OutsoleCode).Select(s => s.ProductNo).ToList(); } if (outsoleRawMaterial != null) { dr["SupplierETD"] = outsoleRawMaterial.ETD; dr1["SupplierETD"] = outsoleRawMaterial.ETD; } if (outsoleSupplier != null) { dr["OutsoleSupplier"] = outsoleSupplier.Name; dr1["OutsoleSupplier"] = outsoleSupplier.Name; } string sizeNoOutsole = outsoleMaterialReject.SizeNo; var sizeNo_OutsoleCode = sizeRunList.Where(w => productNoList.Contains(w.ProductNo) && w.SizeNo == sizeNoOutsole).FirstOrDefault(); if (sizeNo_OutsoleCode != null) { if (String.IsNullOrEmpty(sizeNo_OutsoleCode.OutsoleSize) == false) { sizeNoOutsole = sizeNo_OutsoleCode.OutsoleSize; } } string sizeNoString = regex.IsMatch(sizeNoOutsole) == true?regex.Replace(sizeNoOutsole, "") : sizeNoOutsole; double sizeNoDouble = 0; Double.TryParse(sizeNoString, out sizeNoDouble); dr["SizeNoDouble"] = sizeNoDouble; dr1["SizeNoDouble"] = sizeNoDouble; dr["SizeNo"] = outsoleMaterialReject.SizeNo; dr1["SizeNo"] = outsoleMaterialReject.SizeNo; if (def.ShowOSSizeValue) { dr["SizeOutsole"] = sizeNoOutsole; dr1["SizeOutsole"] = sizeNoOutsole; } if (outsoleMaterialReject.QuantityReject > 0) { dr["QuantityReject"] = outsoleMaterialReject.QuantityReject; dt.Rows.Add(dr); } if (outsoleMaterialReject.RejectAssembly > 0) { dr1["QuantityReject"] = outsoleMaterialReject.RejectAssembly; dt1.Rows.Add(dr1); } } dtRejectAssemblyStockfit = dt1; e.Result = dt; }