private void bwLoadSupplier_DoWork(object sender, DoWorkEventArgs e) { outsoleSupplierList = OutsoleSuppliersController.Select(); orderList = OrdersController.Select(); outsoleRawMaterialList = OutsoleRawMaterialController.Select(); outsoleMaterialList = OutsoleMaterialController.Select(); }
private void bwInsert_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (OutsoleRawMaterialController.IsFull(sizeRunList, outsoleRawMaterialList, outsoleMaterialToInsertList) == true) { if (outsoleRawMaterialToInsertList.Count() > 0) { rawMaterial.ActualDate = outsoleRawMaterialToInsertList.Select(o => o.ActualDate).Max(); } else { rawMaterial.ActualDate = outsoleRawMaterialList.Select(o => o.ActualDate).Max(); } int balance = sizeRunList.Sum(s => s.Quantity) - sizeRunList.Select(s => outsoleMaterialToInsertList.Where(o => o.SizeNo == s.SizeNo).Min(o => (o.Quantity - o.QuantityReject))).Sum(); if (balance > 0) { rawMaterial.ActualDate = dtDefault; rawMaterial.Remarks = balance.ToString(); } } else { rawMaterial.ActualDate = dtDefault; rawMaterial.Remarks = (sizeRunList.Sum(s => s.Quantity) - sizeRunList.Select(s => outsoleMaterialToInsertList.Where(o => o.SizeNo == s.SizeNo).Min(o => (o.Quantity - o.QuantityReject))).Sum()).ToString(); } // Get total reject assembly. totalRejectAssemblyRespone = outsoleMaterialToInsertList.Sum(s => s.RejectAssembly); if (threadUpdateRawMaterial.IsBusy == false) { threadUpdateRawMaterial.RunWorkerAsync(); } }
private void bwLoadData_DoWork(object sender, DoWorkEventArgs e) { outsoleSupplierList = OutsoleSuppliersController.Select(); outsoleMaterialList = OutsoleMaterialController.Select(productNo); sizeRunList = SizeRunController.Select(productNo); outsoleRawMaterialList = OutsoleRawMaterialController.Select(productNo); outsoleMaterialRackPositionList = OutsoleMaterialRackPositionController.Select(productNo); }
private void bwInsert_DoWork(object sender, DoWorkEventArgs e) { // Delete RackPosition foreach (var rackModelDetele in outsoleMaterialRackPositionToDeleteList) { OutsoleMaterialRackPositionController.Delete(rackModelDetele); } // Update RackPosition foreach (var rackModelInsert in outsoleMaterialRackPositionToInsertList) { OutsoleMaterialRackPositionController.Insert(rackModelInsert); } foreach (OutsoleRawMaterialModel model in outsoleRawMaterialToInsertList) { OutsoleRawMaterialController.UpdateActualDate(model); } foreach (OutsoleMaterialModel model in outsoleMaterialToInsertList) { var osMaterialDB = OutsoleMaterialController.Select(model.ProductNo).Where(w => w.SizeNo == model.SizeNo && w.OutsoleSupplierId == model.OutsoleSupplierId).FirstOrDefault(); // Insert if (osMaterialDB == null) { OutsoleMaterialController.Insert(model); } // Update else { // Update Quantity if (osMaterialDB.Quantity != model.Quantity) { OutsoleMaterialController.Update(model, false, true, false); } // Update Reject if (osMaterialDB.QuantityReject != model.QuantityReject) { OutsoleMaterialController.Update(model, true, false, false); } // Update Reject Assembly if (osMaterialDB.RejectAssembly != model.RejectAssembly) { OutsoleMaterialController.Update(model, true, false, true); } } } }
private void bwReport_DoWork(object sender, DoWorkEventArgs e) { outsoleRawMaterialList = OutsoleRawMaterialController.Select(); outsoleMaterialList = OutsoleMaterialController.SelectByOutsoleRawMaterial(); sizeRunList = SizeRunController.SelectByOutsoleRawMaterial(); outsoleSupplierList = OutsoleSuppliersController.Select(); ordersList = OrdersController.SelectByOutsoleRawMaterial(); DataTable dt = new OutsoleDeliveryDataSet().Tables["OutsoleDeliveryTable"]; List <String> productNoList = outsoleRawMaterialList.Select(r => r.ProductNo).Distinct().ToList(); foreach (string productNo in productNoList) { OrdersModel order = ordersList.Where(o => o.ProductNo == productNo).FirstOrDefault(); List <OutsoleRawMaterialModel> outsoleRawMaterialOfProductNoList = outsoleRawMaterialList.Where(o => o.ProductNo == productNo).ToList(); List <SizeRunModel> sizeRunOfProductNoList = sizeRunList.Where(s => s.ProductNo == productNo).ToList(); List <OutsoleMaterialModel> outsoleMaterialOfProductNoList = outsoleMaterialList.Where(o => o.ProductNo == productNo).ToList(); foreach (OutsoleRawMaterialModel outsoleRawMaterial in outsoleRawMaterialOfProductNoList) { DateTime etd = outsoleRawMaterial.ETD.Date; bool isFull = OutsoleRawMaterialController.IsFull(sizeRunOfProductNoList, new List <OutsoleRawMaterialModel>() { outsoleRawMaterial, }, outsoleMaterialOfProductNoList); if (etd != new DateTime(2000, 1, 1) && etd == dateSearch.Date && isFull == false) { DataRow dr = dt.NewRow(); dr["ProductNo"] = productNo; if (order != null) { dr["ArticleNo"] = order.ArticleNo; dr["OutsoleCode"] = order.OutsoleCode; dr["Quantity"] = order.Quantity; dr["ETD"] = order.ETD; } dr["SupplierETD"] = etd; dr["Remarks"] = sizeRunOfProductNoList.Sum(s => (s.Quantity - outsoleMaterialOfProductNoList.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId && o.SizeNo == s.SizeNo).Sum(o => (o.Quantity - o.QuantityReject)))).ToString(); OutsoleSuppliersModel outsoleSupplier = outsoleSupplierList.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).FirstOrDefault(); if (outsoleSupplier != null) { dr["Supplier"] = outsoleSupplier.Name; } dt.Rows.Add(dr); } } } e.Result = dt; }
private void bwImport_DoWork(object sender, DoWorkEventArgs e) { foreach (OutsoleRawMaterialViewModel outsoleRawMaterialView in outsoleRawMaterialViewToImportList) { OutsoleRawMaterialModel model = new OutsoleRawMaterialModel { ProductNo = outsoleRawMaterialView.ProductNo, OutsoleSupplierId = outsoleRawMaterialView.Supplier.OutsoleSupplierId, ETD = outsoleRawMaterialView.ETDReal, }; OutsoleRawMaterialController.Insert(model); dgSizeRun.Dispatcher.Invoke((Action)(() => { dgSizeRun.SelectedItem = outsoleRawMaterialView; dgSizeRun.ScrollIntoView(outsoleRawMaterialView); })); } }
private void bwUpdateOutsoleMaterial_DoWork(object sender, DoWorkEventArgs e) { outsoleMaterialRejectUpdateList = new List <OutsoleMaterialModel>(); var outsoleMaterialDetailAferInsertList = OutsoleMaterialDetailController.Select(productNo).Where(w => w.OutsoleSupplierId == supplierClicked.OutsoleSupplierId).ToList(); var sizeNoList = outsoleMaterialDetailAferInsertList.Select(s => s.SizeNo).Distinct().ToList(); foreach (var sizeNo in sizeNoList) { var firstModel = outsoleMaterialDetailAferInsertList.FirstOrDefault(); var outsoleMaterialUpdateReject = new OutsoleMaterialModel() { ProductNo = firstModel.ProductNo, OutsoleSupplierId = firstModel.OutsoleSupplierId, SizeNo = sizeNo, QuantityReject = outsoleMaterialDetailAferInsertList.Where(w => w.SizeNo == sizeNo).Sum(s => s.Reject), }; outsoleMaterialRejectUpdateList.Add(outsoleMaterialUpdateReject); } foreach (var updateModel in outsoleMaterialRejectUpdateList) { OutsoleMaterialController.UpdateRejectFromOutsoleMaterialDetail(updateModel); } // Update Outsole RawMaterial. If Reject > 0 => Remove Actual Date var POAndSupplierHasRejectList = outsoleMaterialRejectUpdateList.Where(w => w.QuantityReject > 0).Select(s => new { ProductNo = s.ProductNo, OutsoleSupplierId = s.OutsoleSupplierId }).Distinct().ToList(); foreach (var p in POAndSupplierHasRejectList) { var updateModel = new OutsoleRawMaterialModel() { ProductNo = p.ProductNo, OutsoleSupplierId = p.OutsoleSupplierId, ActualDate = dtDefault }; OutsoleRawMaterialController.UpdateActualDate(updateModel); } }
private void bwInsert_DoWork(object sender, DoWorkEventArgs e) { rawMaterial.ETD = dtDefault; rawMaterial.IsETDUpdate = true; foreach (OutsoleRawMaterialViewModel outsoleRawMaterialView in outsoleRawMaterialViewToDeleteList) { int outsoleSupplierId = outsoleRawMaterialView.Supplier.OutsoleSupplierId; OutsoleRawMaterialController.Delete(productNo, outsoleSupplierId); } if (outsoleRawMaterialViewToInsertList.Count > 0) { rawMaterial.ETD = outsoleRawMaterialViewToInsertList.Max(o => o.ETDReal); } foreach (OutsoleRawMaterialViewModel outsoleRawMaterialView in outsoleRawMaterialViewToInsertList) { int outsoleSupplierId = outsoleRawMaterialView.Supplier.OutsoleSupplierId; DateTime etd = TimeHelper.Convert(outsoleRawMaterialView.ETD); if (etd != dtDefault && etd != dtNothing) { OutsoleRawMaterialModel model = new OutsoleRawMaterialModel { ProductNo = productNo, OutsoleSupplierId = outsoleSupplierId, ETD = etd, }; OutsoleRawMaterialController.Insert(model); if (model.ETD > rawMaterial.ETD) { rawMaterial.ETD = model.ETD.Date; } } } }
void threadLoad_DoWork(object sender, DoWorkEventArgs e) { //outsoleRawMaterialList = OutsoleRawMaterialController.Select(); outsoleRawMaterialList = OutsoleRawMaterialController.SelectFull(etdStartSelect, etdEndSelect); outsoleMaterialList = OutsoleMaterialController.SelectByOutsoleRawMaterialFull(etdStartSelect, etdEndSelect); sizeRunList = SizeRunController.SelectByOutsoleRawMaterialFull(etdStartSelect, etdEndSelect); outsoleSupplierList = OutsoleSuppliersController.Select(); orderList = OrdersController.SelectByOutsoleRawMaterialFull(etdStartSelect, etdEndSelect); sewingMasterList = SewingMasterController.SelectFull(etdStartSelect, etdEndSelect); List <String> productNoList = outsoleRawMaterialList.Select(r => r.ProductNo).Distinct().ToList(); foreach (string productNo in productNoList) { OrdersModel order = orderList.FirstOrDefault(f => f.ProductNo == productNo); List <OutsoleRawMaterialModel> outsoleRawMaterialList_D1 = outsoleRawMaterialList.Where(o => o.ProductNo == productNo).ToList(); List <SizeRunModel> sizeRunList_D1 = sizeRunList.Where(s => s.ProductNo == productNo).ToList(); List <OutsoleMaterialModel> outsoleMaterialList_D1 = outsoleMaterialList.Where(o => o.ProductNo == productNo).ToList(); var sewingMasterList_D1 = sewingMasterList.Where(w => w.ProductNo == productNo).ToList(); foreach (OutsoleRawMaterialModel outsoleRawMaterial in outsoleRawMaterialList_D1) { // 108a-2279 //bool isFull = OutsoleRawMaterialController.IsFull(sizeRunList_D1, new List<OutsoleRawMaterialModel>() { outsoleRawMaterial, }, outsoleMaterialList_D1); if ( //isFull == false && outsoleRawMaterial.ETD.Date != dtDefault //&& outsoleRawMaterial.ActualDate.Date == dtDefault ) { OutsoleDeliveryStatusViewModel outsoleDeliveryStatusView = new OutsoleDeliveryStatusViewModel(); outsoleDeliveryStatusView.ProductNo = productNo; if (order != null) { outsoleDeliveryStatusView.Country = order.Country; outsoleDeliveryStatusView.ShoeName = order.ShoeName; outsoleDeliveryStatusView.ArticleNo = order.ArticleNo; outsoleDeliveryStatusView.OutsoleCode = order.OutsoleCode; outsoleDeliveryStatusView.Quantity = order.Quantity; outsoleDeliveryStatusView.ETD = order.ETD; } OutsoleSuppliersModel outsoleSupplier = outsoleSupplierList.FirstOrDefault(f => f.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId); if (outsoleSupplier != null) { outsoleDeliveryStatusView.Supplier = outsoleSupplier.Name; } outsoleDeliveryStatusView.SupplierETD = outsoleRawMaterial.ETD; //outsoleDeliveryStatusView.Actual = sizeRunList_D1.Sum(s => (s.Quantity - outsoleMaterialList_D1.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId && o.SizeNo == s.SizeNo).Sum(o => (o.Quantity - o.QuantityReject)))).ToString(); //int actualQty = sizeRunList_D1.Sum(s => (outsoleMaterialList_D1.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId && o.SizeNo == s.SizeNo).Sum(o => (o.Quantity - o.QuantityReject)))); //int actualQty = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).Sum(s => s.Quantity - s.QuantityReject); int actualQty = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).Sum(s => s.Quantity); if (actualQty > 0) { outsoleDeliveryStatusView.ActualQuantity = actualQty.ToString(); } int rejectQty = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).Sum(s => s.QuantityReject); if (rejectQty > 0) { outsoleDeliveryStatusView.RejectQuantity = rejectQty.ToString(); } outsoleDeliveryStatusView.IsFinished = true; int balance = order.Quantity - actualQty + rejectQty; if (balance > 0) { //outsoleDeliveryStatusView.Balance = balance.ToString(); outsoleDeliveryStatusView.IsFinished = false; } if (outsoleRawMaterial.ActualDate != dtDefault) { outsoleDeliveryStatusView.Actual = string.Format("{0:M/d}", outsoleRawMaterial.ActualDate); } outsoleDeliveryStatusView.SewingStartDate = dtDefault; var sewingMasterModel = sewingMasterList_D1.FirstOrDefault(); if (sewingMasterModel != null) { outsoleDeliveryStatusView.SewingStartDate = sewingMasterModel.SewingStartDate; } outsoleDeliveryStatusViewList.Add(outsoleDeliveryStatusView); } } } }
private void bwLoad_DoWork(object sender, DoWorkEventArgs e) { orderList = OrdersController.Select(); rawMaterialList = RawMaterialController.Select(); sewingMasterList = SewingMasterController.Select(); outsoleMasterList = OutsoleMasterController.Select(); sockliningMasterList = SockliningMasterController.Select(); assemblyMasterList = AssemblyMasterController.Select(); productionMemoList = ProductionMemoController.Select(); outsoleRawMaterialList = OutsoleRawMaterialController.Select(); rawMaterialViewModelNewList = RawMaterialController.Select_1(); //sewingMasterList.RemoveAll(s => DateTimeHelper.Create(s.SewingBalance) != dtDefault && DateTimeHelper.Create(s.SewingBalance) != dtNothing); assemblyMasterList = assemblyMasterList.OrderBy(s => s.Sequence).ToList(); int[] materialIdUpperArray = { 1, 2, 3, 4, 10 }; int[] materialIdSewingArray = { 5, 7 }; int[] materialIdOutsoleArray = { 6 }; int[] materialIdAssemblyArray = { 8, 9 }; int[] materialIdCartonArray = { 11 }; foreach (AssemblyMasterModel assemblyMaster in assemblyMasterList) { AssemblyMasterExportViewModel assemblyMasterExportView = new AssemblyMasterExportViewModel(); assemblyMasterExportView.Sequence = assemblyMaster.Sequence; assemblyMasterExportView.ProductNo = assemblyMaster.ProductNo; OrdersModel order = orderList.Where(o => o.ProductNo == assemblyMaster.ProductNo).FirstOrDefault(); string memoId = ""; if (order != null) { assemblyMasterExportView.Country = order.Country; assemblyMasterExportView.ShoeName = order.ShoeName; assemblyMasterExportView.ArticleNo = order.ArticleNo; assemblyMasterExportView.LastCode = order.LastCode; assemblyMasterExportView.Quantity = order.Quantity; assemblyMasterExportView.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"; } } assemblyMasterExportView.MemoId = memoId; } //MaterialArrivalViewModel materialArrivalOutsole = MaterialArrival(order.ProductNo, materialIdOutsoleArray); //assemblyMasterExportView.IsOutsoleMatsArrivalOk = false; //if (materialArrivalOutsole != null) //{ // assemblyMasterExportView.OutsoleMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalOutsole.Date); // assemblyMasterExportView.IsOutsoleMatsArrivalOk = materialArrivalOutsole.IsMaterialArrivalOk; //} //// follow OutsoleRawMaterial //var osRawMaterial = outsoleRawMaterialList.Where(w => w.ProductNo == order.ProductNo).ToList(); //var actualDateList = osRawMaterial.Select(s => s.ActualDate).ToList(); //assemblyMasterExportView.IsOutsoleMatsArrivalOk = false; //if (actualDateList.Count() > 0 && actualDateList.Contains(dtDefault) == false) //{ // assemblyMasterExportView.OutsoleMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", actualDateList.Max()); // assemblyMasterExportView.IsOutsoleMatsArrivalOk = true; //} //else //{ // var etdDateList = osRawMaterial.Select(s => s.ETD).ToList(); // if (etdDateList.Count() > 0) // { // assemblyMasterExportView.OutsoleMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", etdDateList.Max()); // } //} assemblyMasterExportView.IsOutsoleMatsArrivalOk = false; var rawMaterialViewModelNew = rawMaterialViewModelNewList.FirstOrDefault(f => f.ProductNo == order.ProductNo); if (String.IsNullOrEmpty(rawMaterialViewModelNew.OUTSOLE_Remarks) && !String.IsNullOrEmpty(rawMaterialViewModelNew.OUTSOLE_ActualDate)) { assemblyMasterExportView.OutsoleMatsArrival = rawMaterialViewModelNew.OUTSOLE_ActualDate; assemblyMasterExportView.IsOutsoleMatsArrivalOk = true; } else { assemblyMasterExportView.OutsoleMatsArrival = rawMaterialViewModelNew.OUTSOLE_ETD; } MaterialArrivalViewModel materialArrivalAssembly = MaterialArrival(order.ProductNo, materialIdAssemblyArray); assemblyMasterExportView.IsAssemblyMatsArrivalOk = false; if (materialArrivalAssembly != null) { assemblyMasterExportView.AssemblyMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalAssembly.Date); assemblyMasterExportView.IsAssemblyMatsArrivalOk = materialArrivalAssembly.IsMaterialArrivalOk; } MaterialArrivalViewModel materialArrivalCarton = MaterialArrival(order.ProductNo, materialIdCartonArray); if (materialArrivalCarton != null) { assemblyMasterExportView.CartonMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalCarton.Date); } assemblyMasterExportView.AssemblyLine = assemblyMaster.AssemblyLine; assemblyMasterExportView.AssemblyStartDate = assemblyMaster.AssemblyStartDate; assemblyMasterExportView.AssemblyFinishDate = assemblyMaster.AssemblyFinishDate; assemblyMasterExportView.AssemblyQuota = assemblyMaster.AssemblyQuota; assemblyMasterExportView.AssemblyBalance = assemblyMaster.AssemblyBalance; SewingMasterModel sewingMaster = sewingMasterList.Where(o => o.ProductNo == assemblyMaster.ProductNo).FirstOrDefault(); if (sewingMaster != null) { assemblyMasterExportView.SewingStartDate = sewingMaster.SewingStartDate; assemblyMasterExportView.SewingFinishDate = sewingMaster.SewingFinishDate; assemblyMasterExportView.SewingBalance = sewingMaster.SewingBalance; } else { assemblyMasterExportView.SewingStartDate = dtDefault; assemblyMasterExportView.SewingFinishDate = dtDefault; assemblyMasterExportView.SewingBalance = ""; } OutsoleMasterModel outsoleMaster = outsoleMasterList.Where(o => o.ProductNo == assemblyMaster.ProductNo).FirstOrDefault(); if (outsoleMaster != null) { assemblyMasterExportView.OutsoleBalance = outsoleMaster.OutsoleBalance; } else { assemblyMasterExportView.OutsoleBalance = ""; } SockliningMasterModel sockliningMaster = sockliningMasterList.Where(o => o.ProductNo == assemblyMaster.ProductNo).FirstOrDefault(); if (sockliningMaster != null) { assemblyMasterExportView.InsoleBalance = sockliningMaster.InsoleBalance; assemblyMasterExportView.InsockBalance = sockliningMaster.InsockBalance; } else { assemblyMasterExportView.InsoleBalance = ""; assemblyMasterExportView.InsockBalance = ""; } assemblyMasterExportViewList.Add(assemblyMasterExportView); } }
private void bwLoadData_DoWork(object sender, DoWorkEventArgs e) { outsoleMaterialList = OutsoleMaterialController.Select(); outsoleReleaseMaterialList = OutsoleReleaseMaterialController.SelectByOutsoleMaterial(); //lay ra nhung order co outsolematerial roi orderList = OrdersController.SelectByOutsoleMaterial(); outsoleSupplierList = OutsoleSuppliersController.Select(); outsoleRawMaterialList = OutsoleRawMaterialController.Select(); var outsoleCodeList = orderList.Select(o => o.OutsoleCode).Distinct().ToList(); // Group By ProductNo //var outsoleMaterialGroupBy_ProductNo = from p in outsoleMaterialList // group p.Quantity by p.ProductNo into g // select new { ProductNo = g.Key, Quantities = g.ToList() }; //var productNoList_Test = outsoleMaterialGroupBy_ProductNo.OrderBy(o => o.ProductNo).Select(s => s.ProductNo).ToList(); //// PO has Quantity > 0 //var productNoList = outsoleMaterialGroupBy_ProductNo.Where(w => w.Quantities.Sum() > 0).OrderBy(o => o.ProductNo).Select(s => s.ProductNo).Distinct().ToList(); //var outsoleCodeList = orderList.Where(w => productNoList.Contains(w.ProductNo)).Select(s => s.OutsoleCode).Distinct().ToList(); foreach (string outsoleCode in outsoleCodeList) { var productNoList = orderList.Where(w => w.OutsoleCode == outsoleCode).Select(s => s.ProductNo).Distinct().ToList(); var outsoleMaterialList_D1 = outsoleMaterialList.Where(o => productNoList.Contains(o.ProductNo)).ToList(); var supplierId_OutsoleCode = outsoleMaterialList_D1.Select(o => o.OutsoleSupplierId).Distinct().ToList(); supplierIdShowList.AddRange(supplierId_OutsoleCode); } supplierIdShowList = supplierIdShowList.Distinct().OrderBy(s => s).ToList(); var dt = new DataTable(); Dispatcher.Invoke(new Action(() => { dt.Columns.Add("OutsoleCode", typeof(String)); DataGridTextColumn column1 = new DataGridTextColumn(); column1.Header = "O/S Code"; column1.Binding = new Binding("OutsoleCode"); column1.FontWeight = FontWeights.Bold; dgInventory.Columns.Add(column1); Binding bindingWidth1 = new Binding(); bindingWidth1.Source = column1; bindingWidth1.Path = new PropertyPath("ActualWidth"); ColumnDefinition cd1 = new ColumnDefinition(); cd1.SetBinding(ColumnDefinition.WidthProperty, bindingWidth1); gridTotal.ColumnDefinitions.Add(cd1); dt.Columns.Add("Quantity", typeof(Int32)); DataGridTextColumn column2 = new DataGridTextColumn(); column2.Header = "Quantity"; column2.Binding = new Binding("Quantity"); dgInventory.Columns.Add(column2); Binding bindingWidth2 = new Binding(); bindingWidth2.Source = column2; bindingWidth2.Path = new PropertyPath("ActualWidth"); ColumnDefinition cd2 = new ColumnDefinition(); cd2.SetBinding(ColumnDefinition.WidthProperty, bindingWidth2); gridTotal.ColumnDefinitions.Add(cd2); dt.Columns.Add("Matching", typeof(Int32)); DataGridTextColumn column3 = new DataGridTextColumn(); column3.Header = "Matching"; column3.Binding = new Binding("Matching"); dgInventory.Columns.Add(column3); Binding bindingWidth3 = new Binding(); bindingWidth3.Source = column3; bindingWidth3.Path = new PropertyPath("ActualWidth"); ColumnDefinition cd3 = new ColumnDefinition(); cd3.SetBinding(ColumnDefinition.WidthProperty, bindingWidth3); gridTotal.ColumnDefinitions.Add(cd3); dt.Columns.Add("RejectMaximum", typeof(Int32)); DataGridTextColumn column4 = new DataGridTextColumn(); column4.Header = "Reject"; column4.Binding = new Binding("RejectMaximum"); //Style headerRejectStyle = new Style(typeof(DataGridColumnHeader)); //Setter setterHRS = new Setter(); //setterHRS.Property = DataGridColumnHeader.ToolTipProperty; //setterHRS.Value = "RejectListMax()"; //headerRejectStyle.Setters.Add(setterHRS); //column4.HeaderStyle = headerRejectStyle; dgInventory.Columns.Add(column4); Binding bindingWidth4 = new Binding(); bindingWidth4.Source = column4; bindingWidth4.Path = new PropertyPath("ActualWidth"); ColumnDefinition cd4 = new ColumnDefinition(); cd4.SetBinding(ColumnDefinition.WidthProperty, bindingWidth4); gridTotal.ColumnDefinitions.Add(cd4); dgInventory.FrozenColumnCount = 4; for (int i = 0; i < supplierIdShowList.Count; i++) { var outsoleSupplier = outsoleSupplierList.FirstOrDefault(f => f.OutsoleSupplierId == supplierIdShowList[i]); if (outsoleSupplier != null) { dt.Columns.Add(String.Format("Column{0}", supplierIdShowList[i]), typeof(String)); DataGridTextColumn column = new DataGridTextColumn(); string supplierNameDisplay = outsoleSupplier.Name.Contains(" ") ? outsoleSupplier.Name.Replace(' ', '\n') : outsoleSupplier.Name; column.Header = supplierNameDisplay; //column.Width = 30; column.Binding = new Binding(String.Format("Column{0}", supplierIdShowList[i])); column.FontWeight = FontWeights.Bold; Style style = new Style(typeof(DataGridCell)); style.Setters.Add(new Setter(TextBlock.TextAlignmentProperty, TextAlignment.Center)); Setter setterBackground = new Setter(); setterBackground.Property = DataGridCell.BackgroundProperty; setterBackground.Value = new Binding(String.Format("Column{0}Background", supplierIdShowList[i])); style.Setters.Add(setterBackground); Setter setterToolTip = new Setter(); setterToolTip.Property = DataGridCell.ToolTipProperty; setterToolTip.Value = new Binding(String.Format("Column{0}ToolTip", supplierIdShowList[i])); style.Setters.Add(setterToolTip); column.CellStyle = style; dgInventory.Columns.Add(column); Binding bindingWidth = new Binding(); bindingWidth.Source = column; bindingWidth.Path = new PropertyPath("ActualWidth"); ColumnDefinition cd = new ColumnDefinition(); cd.SetBinding(ColumnDefinition.WidthProperty, bindingWidth); gridTotal.ColumnDefinitions.Add(cd); DataColumn columnBackground = new DataColumn(String.Format("Column{0}Background", supplierIdShowList[i]), typeof(SolidColorBrush)); DataColumn columnToolTip = new DataColumn(String.Format("Column{0}ToolTip", supplierIdShowList[i]), typeof(String)); columnBackground.DefaultValue = Brushes.Transparent; dt.Columns.Add(columnBackground); dt.Columns.Add(columnToolTip); } } })); // Load Data foreach (string outsoleCode in outsoleCodeList) { var dr = dt.NewRow(); dr["OutsoleCode"] = outsoleCode; var productNoList_OutsoleCode = orderList.Where(o => o.OutsoleCode == outsoleCode).Select(o => o.ProductNo).Distinct().ToList(); var outsoleMaterialList_D1 = outsoleMaterialList.Where(o => productNoList_OutsoleCode.Contains(o.ProductNo)).ToList(); var outsoleReleaseMaterialList_D1 = outsoleReleaseMaterialList.Where(o => productNoList_OutsoleCode.Contains(o.ProductNo)).ToList(); var supplierIdList = outsoleMaterialList_D1.Select(o => o.OutsoleSupplierId).Distinct().ToList(); var qtyTotalList = new List <Int32>(); var qtyRejectList = new List <Int32>(); // Create one more SupplierIDList foreach (Int32 supplierId in supplierIdList) { var outsoleMaterialList_D2 = outsoleMaterialList_D1.Where(o => o.OutsoleSupplierId == supplierId).ToList(); int qtyTotal = 0; int qtyRejectTotal = 0; foreach (string productNo in productNoList_OutsoleCode) { var outsoleMaterialList_D3 = outsoleMaterialList_D2.Where(o => o.ProductNo == productNo).ToList(); var outsoleReleaseMaterialList_D3 = outsoleReleaseMaterialList_D1.Where(o => o.ProductNo == productNo).ToList(); var sizeNoList = outsoleMaterialList.Where(o => o.ProductNo == productNo).Select(o => o.SizeNo).Distinct().ToList(); foreach (string sizeNo in sizeNoList) { int qtyMax = outsoleMaterialList_D3.Where(o => o.SizeNo == sizeNo).Sum(o => o.Quantity - o.QuantityReject); int qtyRelease = outsoleReleaseMaterialList_D3.Where(o => o.SizeNo == sizeNo).Sum(o => o.Quantity); int qtyReject = outsoleMaterialList_D3.Where(o => o.SizeNo == sizeNo).Sum(s => s.QuantityReject); int qty = qtyMax - qtyRelease; if (qty < 0) { qty = 0; } qtyTotal += qty; qtyRejectTotal += qtyReject; } } dr[String.Format("Column{0}", supplierId)] = "x"; dr[String.Format("Column{0}Background", supplierId)] = Brushes.Green; //var suppName = outsoleSupplierList.Where(w => w.OutsoleSupplierId == supplierId).Select(s => s.Name).FirstOrDefault(); var suppName = outsoleSupplierList.FirstOrDefault(f => f.OutsoleSupplierId == supplierId).Name; if (suppName != null) { //string toolTipDisplay = string.Format("{0}\n{1}", suppName, qtyRejectTotal.ToString()); //string toolTipShow = string.Format("Supplier: {0}\nQuantity Delivery {1}", suppName, qtyTotal.ToString()); dr[String.Format("Column{0}ToolTip", supplierId)] = string.Format("{0}{1}", suppName, qtyRejectTotal > 0 ? String.Format("\nQtyReject: {0}", qtyRejectTotal.ToString()) : ""); //suppName + "/n" + "Qty Reject: " + qtyRejectTotal.ToString(); } qtyTotalList.Add(qtyTotal); qtyRejectList.Add(qtyRejectTotal); } int qtyMatchTotal = 0; foreach (string productNo in productNoList_OutsoleCode) { var outsoleMaterialList_D2 = outsoleMaterialList_D1.Where(o => o.ProductNo == productNo).ToList(); var outsoleReleaseMaterialList_D2 = outsoleReleaseMaterialList_D1.Where(o => o.ProductNo == productNo).ToList(); var sizeNoList = outsoleMaterialList.Where(o => o.ProductNo == productNo).Select(o => o.SizeNo).Distinct().ToList(); foreach (string sizeNo in sizeNoList) { int qtyMin = outsoleMaterialList_D2.Where(o => o.SizeNo == sizeNo).Select(o => o.Quantity - o.QuantityReject).Min(); int qtyRelease = outsoleReleaseMaterialList_D2.Where(o => o.SizeNo == sizeNo).Sum(o => o.Quantity); int qtyMatch = qtyMin - qtyRelease; if (qtyMatch < 0) { qtyMatch = 0; } qtyMatchTotal += qtyMatch; } } //if (qtyTotalList.Sum() == 0 && qtyMatchTotal == 0 && qtyRejectList.Sum() == 0) // continue; dr["RejectMaximum"] = qtyRejectList.Max(); dr["Quantity"] = qtyTotalList.Max(); dr["Matching"] = qtyMatchTotal; dt.Rows.Add(dr); } Dispatcher.Invoke(new Action(() => { dgInventory.ItemsSource = dt.AsDataView(); TextBlock lblTotal = new TextBlock(); lblTotal.Text = "TOTAL"; lblTotal.Margin = new Thickness(1, 0, 0, 0); lblTotal.FontWeight = FontWeights.Bold; Border bdrTotal = new Border(); Grid.SetColumn(bdrTotal, 1); Grid.SetColumnSpan(bdrTotal, 2); bdrTotal.BorderThickness = new Thickness(1, 0, 1, 1); bdrTotal.BorderBrush = Brushes.Black; bdrTotal.Child = lblTotal; gridTotal.Children.Add(bdrTotal); TextBlock lblQuantityTotal = new TextBlock(); lblQuantityTotal.Text = dt.Compute("Sum(Quantity)", "").ToString(); lblQuantityTotal.Margin = new Thickness(1, 0, 0, 0); lblQuantityTotal.FontWeight = FontWeights.Bold; Border bdrQuantityTotal = new Border(); Grid.SetColumn(bdrQuantityTotal, 3); bdrQuantityTotal.BorderThickness = new Thickness(0, 0, 1, 1); bdrQuantityTotal.BorderBrush = Brushes.Black; bdrQuantityTotal.Child = lblQuantityTotal; gridTotal.Children.Add(bdrQuantityTotal); dgInventory.ItemsSource = dt.AsDataView(); TextBlock lblMatchingTotal = new TextBlock(); lblMatchingTotal.Text = dt.Compute("Sum(Matching)", "").ToString(); lblMatchingTotal.Margin = new Thickness(1, 0, 0, 0); lblMatchingTotal.FontWeight = FontWeights.Bold; Border bdrMatchingTotal = new Border(); Grid.SetColumn(bdrMatchingTotal, 4); bdrMatchingTotal.BorderThickness = new Thickness(0, 0, 1, 1); bdrMatchingTotal.BorderBrush = Brushes.Black; bdrMatchingTotal.Child = lblMatchingTotal; gridTotal.Children.Add(bdrMatchingTotal); dgInventory.ItemsSource = dt.AsDataView(); TextBlock lblRejectMaximunTotal = new TextBlock(); lblRejectMaximunTotal.Text = dt.Compute("Sum(RejectMaximum)", "").ToString(); lblRejectMaximunTotal.Margin = new Thickness(1, 0, 0, 0); lblRejectMaximunTotal.FontWeight = FontWeights.Bold; Border bdrRejectMaximumTotal = new Border(); Grid.SetColumn(bdrRejectMaximumTotal, 5); bdrRejectMaximumTotal.BorderThickness = new Thickness(0, 0, 1, 1); bdrRejectMaximumTotal.BorderBrush = Brushes.Black; bdrRejectMaximumTotal.Child = lblRejectMaximunTotal; gridTotal.Children.Add(bdrRejectMaximumTotal); dgInventory.ItemsSource = dt.AsDataView(); TextBlock lblTemporary = new TextBlock(); lblTemporary.Text = dt.Compute("Sum(Matching)", "").ToString(); lblTemporary.Margin = new Thickness(2, 2, 2, 2); lblTemporary.FontWeight = FontWeights.Bold; Border bdrMatching = new Border(); bdrMatching.BorderBrush = Brushes.Black; bdrMatching.BorderThickness = new Thickness(1, 1, 1, 1); bdrMatching.Child = lblTemporary; })); }
// Notifications private void bwLoadDelivery_DoWork(object sender, DoWorkEventArgs e) { outsoleSupplierList = OutsoleSuppliersController.Select(); outsoleMaterialList = OutsoleMaterialController.Select(); outsoleReleaseMaterialList = OutsoleReleaseMaterialController.SelectByOutsoleMaterial(); outsoleOutputList = OutsoleOutputController.SelectByAssemblyMaster(); sewingMasterList = SewingMasterController.Select(); assemblyMasterList = AssemblyMasterController.Select(); outsoleMasterList = OutsoleMasterController.Select(); orderList = OrdersController.Select(); outsoleRawMaterialList = OutsoleRawMaterialController.Select(); var outsoleCodeList = orderList.Select(o => o.OutsoleCode).Distinct().ToList(); DateTime dtNow = DateTime.Now; DateTime dtDefault = new DateTime(2000, 1, 1); DateTime deliveryEFDDate = dtDefault; // Delay Shipment Notifications foreach (var order in orderList) { bool needToShow = false; int assemblyBalance = 0, sewingBalance = 0, outsoleBalance = 0; var assemblyMaster = assemblyMasterList.FirstOrDefault(f => f.ProductNo == order.ProductNo); var sewingMaster = sewingMasterList.FirstOrDefault(f => f.ProductNo == order.ProductNo); var outsoleMaster = outsoleMasterList.FirstOrDefault(f => f.ProductNo == order.ProductNo); if (assemblyMaster == null || sewingMaster == null || outsoleMaster == null) { continue; } if (assemblyMaster.AssemblyBalance != "") { Int32.TryParse(assemblyMaster.AssemblyBalance, out assemblyBalance); } else { assemblyBalance = order.Quantity; } if (sewingMaster.SewingBalance != "") { Int32.TryParse(sewingMaster.SewingBalance, out sewingBalance); } else { sewingBalance = order.Quantity; } if (outsoleMaster.OutsoleBalance != "") { Int32.TryParse(outsoleMaster.OutsoleBalance, out outsoleBalance); } else { outsoleBalance = order.Quantity; } if (dtNow.AddDays(5) < order.ETD) { needToShow = false; } else { if (assemblyBalance > 0 || sewingBalance > 0 || outsoleBalance > 0) { needToShow = true; } if (assemblyBalance > 0 && sewingBalance == 0 && outsoleBalance == 0) { needToShow = false; } } if (needToShow == true) { var delayShipment = new DelayShipmentViewModel(); delayShipment.Style = order.ShoeName; delayShipment.ProductNo = order.ProductNo; delayShipment.OrderCSD = order.ETD.AddDays(10); if (assemblyBalance > 0) { delayShipment.AssemblyBalance = assemblyBalance; } if (sewingBalance > 0) { delayShipment.SewingBalance = sewingBalance; } if (outsoleBalance > 0) { delayShipment.OutsoleBalance = outsoleBalance; } if (delayShipment.OrderCSD < DateTime.Now.Date) { delayShipmentList.Add(delayShipment); } } } // OSWH Notifications foreach (string outsoleCode in outsoleCodeList) { var productNoList = orderList.Where(o => o.OutsoleCode == outsoleCode && o.IsEnable == true).Select(o => o.ProductNo).Distinct().ToList(); foreach (var productNo in productNoList) { var sewingMasterModel = sewingMasterList.Where(w => w.ProductNo == productNo).FirstOrDefault(); var orderModel = orderList.Where(w => w.ProductNo == productNo).FirstOrDefault(); if (sewingMasterModel == null || orderModel == null) { continue; } var outsoleMaterialList_D1 = outsoleMaterialList.Where(w => w.ProductNo == productNo).ToList(); var supplierIdList = outsoleMaterialList_D1.Select(s => s.OutsoleSupplierId).Distinct().ToList(); foreach (var supplierId in supplierIdList) { int quantityDelivery = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).Sum(s => s.Quantity) - outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).Sum(s => s.QuantityReject); int quantityDelivery1 = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).Sum(s => s.Quantity - s.QuantityReject); var outsoleMaterialDelivery = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).FirstOrDefault(); if (quantityDelivery > 0) { var outsoleRawMaterialModel = outsoleRawMaterialList.Where(w => w.ProductNo == productNo && w.OutsoleSupplierId == supplierId).FirstOrDefault(); if (outsoleRawMaterialModel != null) { deliveryEFDDate = outsoleRawMaterialModel.ETD; } if (deliveryEFDDate != dtDefault && deliveryEFDDate > dtNow.AddDays(15) && sewingMasterModel.SewingStartDate > dtNow.AddDays(25)) { var deliveryEarly = new NoticeOutsoleWHInventoryViewModel() { Style = orderModel.ShoeName, ProductNo = productNo, QuantityDelivery = quantityDelivery, Supplier = outsoleSupplierList.Where(w => w.OutsoleSupplierId == supplierId).Select(s => s.Name).FirstOrDefault(), OutsoleCode = outsoleCode, DeliveryEFDDate = deliveryEFDDate, SewingStartDate = sewingMasterModel.SewingStartDate, }; noticeOSWHInventoryDeliveryEarlyList.Add(deliveryEarly); } } var outsoleRawMaterialLateModel = outsoleRawMaterialList.Where(w => w.ETD <= dtNow && w.ProductNo == productNo && w.OutsoleSupplierId == supplierId).FirstOrDefault(); if (outsoleRawMaterialLateModel != null) { int quantityOrder = orderModel.Quantity; if (quantityOrder - quantityDelivery > 0) { var notDelivery = new NoticeOutsoleWHInventoryViewModel() { Style = orderModel.ShoeName, ProductNo = productNo, QuantityNotDelivery = quantityOrder - quantityDelivery, Supplier = outsoleSupplierList.Where(w => w.OutsoleSupplierId == supplierId).Select(s => s.Name).FirstOrDefault(), OutsoleCode = outsoleCode, DeliveryEFDDate = outsoleRawMaterialLateModel.ETD, OrderCSD = orderModel.ETD.AddDays(10) }; noticeOSWHInventoryNotDeliveryList.Add(notDelivery); } } int quantityReject = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).Sum(s => s.QuantityReject); var outsoleMaterialReject = outsoleMaterialList_D1.Where(w => w.OutsoleSupplierId == supplierId).FirstOrDefault(); // allways not null var outsoleRawMaterialReject = outsoleRawMaterialList.Where(w => w.ETD <= dtNow && w.ProductNo == productNo && w.OutsoleSupplierId == supplierId).FirstOrDefault(); if (quantityReject > 0 && outsoleMaterialReject.ModifiedTimeReject < dtNow.AddDays(-2) && outsoleRawMaterialReject != null) { var reject = new NoticeOutsoleWHInventoryViewModel() { Style = orderModel.ShoeName, ProductNo = productNo, OrderEFD = orderModel.ETD, QuantityReject = quantityReject, Supplier = outsoleSupplierList.Where(w => w.OutsoleSupplierId == supplierId).Select(s => s.Name).FirstOrDefault(), OutsoleCode = outsoleCode, DeliveryEFDDate = outsoleRawMaterialReject.ETD }; noticeOSWHInventoryRejectList.Add(reject); } } } } }
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 bwLoadData_DoWork(object sender, DoWorkEventArgs e) { var regex = new Regex(@"[a-z]|[A-Z]"); outsoleRawMaterialList = OutsoleRawMaterialController.Select(); outsoleMaterialList = OutsoleMaterialController.SelectByOutsoleRawMaterial(); sizeRunList = SizeRunController.SelectByOutsoleRawMaterial(); outsoleSupplierList = OutsoleSuppliersController.Select(); ordersList = OrdersController.SelectByOutsoleRawMaterial(); DataTable dt = new OutsoleDelayDataSet().Tables["OutsoleDelayTable"]; List <String> productNoList = outsoleRawMaterialList.Select(r => r.ProductNo).Distinct().ToList(); foreach (string productNo in productNoList) { OrdersModel order = ordersList.Where(o => o.ProductNo == productNo).FirstOrDefault(); List <OutsoleRawMaterialModel> outsoleRawMaterialList_D1 = outsoleRawMaterialList.Where(o => o.ProductNo == productNo).ToList(); List <SizeRunModel> sizeRunList_D1 = sizeRunList.Where(s => s.ProductNo == productNo).OrderBy(o => Double.Parse(regex.IsMatch(o.SizeNo) ? regex.Replace(o.SizeNo, "") : o.SizeNo)).ToList(); List <OutsoleMaterialModel> outsoleMaterialList_D1 = outsoleMaterialList.Where(o => o.ProductNo == productNo).ToList(); foreach (OutsoleRawMaterialModel outsoleRawMaterial in outsoleRawMaterialList_D1) { List <OutsoleMaterialModel> outsoleMaterialList_D2 = outsoleMaterialList_D1.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).ToList(); OutsoleSuppliersModel outsoleSupplier = outsoleSupplierList.Where(o => o.OutsoleSupplierId == outsoleRawMaterial.OutsoleSupplierId).FirstOrDefault(); DateTime etd = outsoleRawMaterial.ETD.Date; //bool isFull = OutsoleRawMaterialController.IsFull(sizeRunList_D1, new List<OutsoleRawMaterialModel>() { outsoleRawMaterial }, outsoleMaterialList_D1); //if (etd != new DateTime(2000, 1, 1) && etd < DateTime.Now.Date && isFull == false) if (etd != new DateTime(2000, 1, 1) && etd < DateTime.Now.Date) { foreach (SizeRunModel sizeRun in sizeRunList_D1) { int qtyDelay = sizeRun.Quantity - outsoleMaterialList_D2.Where(o => o.SizeNo == sizeRun.SizeNo).Sum(o => o.Quantity); if (qtyDelay > 0) { DataRow dr = dt.NewRow(); dr["ProductNo"] = productNo; string sizeNoString = regex.IsMatch(sizeRun.SizeNo) == true?regex.Replace(sizeRun.SizeNo, "") : sizeRun.SizeNo; double sizeNoDouble = 0; Double.TryParse(sizeNoString, out sizeNoDouble); dr["SizeNoDouble"] = sizeNoDouble; dr["SizeNo"] = sizeRun.SizeNo; dr["SupplierETD"] = outsoleRawMaterial.ETD; if (order != null) { dr["OutsoleCode"] = order.OutsoleCode; dr["ArticleNo"] = order.ArticleNo; dr["ETD"] = order.ETD; } if (outsoleSupplier != null) { dr["OutsoleSupplier"] = outsoleSupplier.Name; } dr["QuantityDelay"] = qtyDelay; dt.Rows.Add(dr); } } } } } e.Result = dt; }
private void bwLoad_DoWork(object sender, DoWorkEventArgs e) { orderList = OrdersController.Select(); rawMaterialList = RawMaterialController.Select(); sewingMasterList = SewingMasterController.Select(); outsoleMasterList = OutsoleMasterController.Select(); productionMemoList = ProductionMemoController.Select(); outsoleRawMaterialList = OutsoleRawMaterialController.Select(); rawMaterialViewModelNewList = RawMaterialController.Select_1(); //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) { SewingMasterExportViewModel sewingMasterExportView = new SewingMasterExportViewModel(); sewingMasterExportView.Sequence = sewingMaster.Sequence; sewingMasterExportView.ProductNo = sewingMaster.ProductNo; OrdersModel order = orderList.Where(o => o.ProductNo == sewingMaster.ProductNo).FirstOrDefault(); string memoId = ""; if (order != null) { sewingMasterExportView.Country = order.Country; sewingMasterExportView.ShoeName = order.ShoeName; sewingMasterExportView.ArticleNo = order.ArticleNo; sewingMasterExportView.PatternNo = order.PatternNo; sewingMasterExportView.Quantity = order.Quantity; sewingMasterExportView.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"; } } sewingMasterExportView.MemoId = memoId; } MaterialArrivalViewModel materialArrivalUpper = MaterialArrival(order.ProductNo, materialIdUpperArray); sewingMasterExportView.IsUpperMatsArrivalOk = false; if (materialArrivalUpper != null) { sewingMasterExportView.UpperMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalUpper.Date); sewingMasterExportView.IsUpperMatsArrivalOk = materialArrivalUpper.IsMaterialArrivalOk; } MaterialArrivalViewModel materialArrivalSewing = MaterialArrival(order.ProductNo, materialIdSewingArray); sewingMasterExportView.IsSewingMatsArrivalOk = false; if (materialArrivalSewing != null) { sewingMasterExportView.SewingMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalSewing.Date); sewingMasterExportView.IsSewingMatsArrivalOk = materialArrivalSewing.IsMaterialArrivalOk; } //MaterialArrivalViewModel materialArrivalOutsole = MaterialArrival(order.ProductNo, materialIdOutsoleArray); //sewingMasterExportView.IsOSMatsArrivalOk = false; //if (materialArrivalOutsole != null) //{ // sewingMasterExportView.OSMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalOutsole.Date); // sewingMasterExportView.IsOSMatsArrivalOk = materialArrivalOutsole.IsMaterialArrivalOk; //} // For Outsole Material //var osRawMaterial = outsoleRawMaterialList.Where(w => w.ProductNo == order.ProductNo).ToList(); //var actualDateList = osRawMaterial.Select(s => s.ActualDate).ToList(); //sewingMasterExportView.IsOSMatsArrivalOk = false; //if (actualDateList.Count() > 0 && actualDateList.Contains(dtDefault) == false) //{ // sewingMasterExportView.OSMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", actualDateList.Max()); // sewingMasterExportView.IsOSMatsArrivalOk = true; //} //else //{ // var etdDateList = osRawMaterial.Select(s => s.ETD).ToList(); // if (etdDateList.Count() > 0) // { // sewingMasterExportView.OSMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", etdDateList.Max()); // } //} var rawMaterialViewModelNew = rawMaterialViewModelNewList.FirstOrDefault(f => f.ProductNo == order.ProductNo); sewingMasterExportView.IsOSMatsArrivalOk = false; if (String.IsNullOrEmpty(rawMaterialViewModelNew.OUTSOLE_Remarks) && !String.IsNullOrEmpty(rawMaterialViewModelNew.OUTSOLE_ActualDate)) { sewingMasterExportView.OSMatsArrival = rawMaterialViewModelNew.OUTSOLE_ActualDate; sewingMasterExportView.IsOSMatsArrivalOk = true; } else { sewingMasterExportView.OSMatsArrival = rawMaterialViewModelNew.OUTSOLE_ETD; } sewingMasterExportView.SewingLine = sewingMaster.SewingLine; sewingMasterExportView.CutAStartDate = sewingMaster.CutAStartDate; sewingMasterExportView.SewingStartDate = sewingMaster.SewingStartDate; sewingMasterExportView.SewingFinishDate = sewingMaster.SewingFinishDate; sewingMasterExportView.SewingQuota = sewingMaster.SewingQuota; sewingMasterExportView.SewingBalance = sewingMaster.SewingBalance; sewingMasterExportView.CutABalance = sewingMaster.CutABalance; sewingMasterExportView.CutBBalance = sewingMaster.CutBBalance; OutsoleMasterModel outsoleMaster = outsoleMasterList.Where(o => o.ProductNo == sewingMaster.ProductNo).FirstOrDefault(); if (outsoleMaster != null) { sewingMasterExportView.OSBalance = outsoleMaster.OutsoleBalance; } else { sewingMasterExportView.OSBalance = ""; } sewingMasterExportViewList.Add(sewingMasterExportView); } }
private void bwLoad_DoWork(object sender, DoWorkEventArgs e) { orderList = OrdersController.Select(); rawMaterialList = RawMaterialController.Select(); sewingMasterList = SewingMasterController.Select(); outsoleMasterList = OutsoleMasterController.Select(); outsoleRawMaterialList = OutsoleRawMaterialController.Select(); outsoleReleaseMaterialList = OutsoleReleaseMaterialController.SelectByOutsoleMaster(); productionMemoList = ProductionMemoController.Select(); outsoleMaterialList = OutsoleMaterialController.Select(); rawMaterialViewModelNewList = RawMaterialController.Select_1(); //sewingMasterList.RemoveAll(s => DateTimeHelper.Create(s.SewingBalance) != dtDefault && DateTimeHelper.Create(s.SewingBalance) != dtNothing); outsoleMasterList = outsoleMasterList.OrderBy(s => s.Sequence).ToList(); int[] materialIdUpperArray = { 1, 2, 3, 4, 10 }; int[] materialIdSewingArray = { 5, 7 }; int[] materialIdOutsoleArray = { 6 }; foreach (OutsoleMasterModel outsoleMaster in outsoleMasterList) { OutsoleMasterExportViewModel outsoleMasterExportView = new OutsoleMasterExportViewModel(); outsoleMasterExportView.Sequence = outsoleMaster.Sequence; outsoleMasterExportView.ProductNo = outsoleMaster.ProductNo; OrdersModel order = orderList.FirstOrDefault(f => f.ProductNo == outsoleMaster.ProductNo); string memoId = ""; if (order != null) { outsoleMasterExportView.Country = order.Country; outsoleMasterExportView.ShoeName = order.ShoeName; outsoleMasterExportView.ArticleNo = order.ArticleNo; outsoleMasterExportView.OutsoleCode = order.OutsoleCode; outsoleMasterExportView.PatternNo = order.PatternNo; outsoleMasterExportView.Quantity = order.Quantity; outsoleMasterExportView.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"; } } outsoleMasterExportView.MemoId = memoId; } //MaterialArrivalViewModel materialArrivalOutsole = MaterialArrival(order.ProductNo, materialIdOutsoleArray); //outsoleMasterExportView.IsOutsoleMatsArrivalOk = false; //if (materialArrivalOutsole != null) //{ // outsoleMasterExportView.OutsoleMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", materialArrivalOutsole.Date); // outsoleMasterExportView.IsOutsoleMatsArrivalOk = materialArrivalOutsole.IsMaterialArrivalOk; //} // Update follow OutsoleRawMaterial //var osRawMaterial = outsoleRawMaterialList.Where(w => w.ProductNo == order.ProductNo).ToList(); //var actualDateList = osRawMaterial.Select(s => s.ActualDate).ToList(); //outsoleMasterExportView.IsOutsoleMatsArrivalOk = false; //if (actualDateList.Count() > 0 && actualDateList.Contains(dtDefault) == false) //{ // outsoleMasterExportView.OutsoleMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", actualDateList.Max()); // outsoleMasterExportView.IsOutsoleMatsArrivalOk = true; //} //else //{ // var etdDateList = osRawMaterial.Select(s => s.ETD).ToList(); // if (etdDateList.Count() > 0) // { // outsoleMasterExportView.OutsoleMatsArrival = String.Format(new CultureInfo("en-US"), "{0:dd-MMM}", etdDateList.Max()); // } //} outsoleMasterExportView.IsOutsoleMatsArrivalOk = false; var rawMaterialViewModelNew = rawMaterialViewModelNewList.FirstOrDefault(f => f.ProductNo == order.ProductNo); if (String.IsNullOrEmpty(rawMaterialViewModelNew.OUTSOLE_Remarks) && !String.IsNullOrEmpty(rawMaterialViewModelNew.OUTSOLE_ActualDate)) { outsoleMasterExportView.OutsoleMatsArrival = rawMaterialViewModelNew.OUTSOLE_ActualDate; outsoleMasterExportView.IsOutsoleMatsArrivalOk = true; } else { outsoleMasterExportView.OutsoleMatsArrival = rawMaterialViewModelNew.OUTSOLE_ETD; } outsoleMasterExportView.OutsoleLine = outsoleMaster.OutsoleLine; outsoleMasterExportView.OutsoleStartDate = outsoleMaster.OutsoleStartDate; outsoleMasterExportView.OutsoleFinishDate = outsoleMaster.OutsoleFinishDate; outsoleMasterExportView.OutsoleQuota = outsoleMaster.OutsoleQuota; outsoleMasterExportView.OutsoleBalance = outsoleMaster.OutsoleBalance; //RawMaterialModel outsoleRawMaterial = rawMaterialList.FirstOrDefault(f => f.ProductNo == outsoleMaster.ProductNo && materialIdOutsoleArray.Contains(f.MaterialTypeId)); //if (outsoleRawMaterial != null) //{ // outsoleMasterExportView.OutsoleWHBalance = outsoleRawMaterial.Remarks; //} //else //{ // outsoleMasterExportView.OutsoleWHBalance = ""; //} // Load Outsole_Remarks from OutsoleMaterial var outsoleMaterial_PO = outsoleMaterialList.Where(w => w.ProductNo == order.ProductNo).ToList(); var osMaterialSumBySupplier = outsoleMaterial_PO.GroupBy( g => g.OutsoleSupplierId) .Select(s => new { PO = order.ProductNo, Supplier = s.Key, ActualDelivery = outsoleMaterial_PO.Where(w => w.OutsoleSupplierId == s.Key) .Sum(su => su.Quantity - su.QuantityReject) }).ToList(); // if pot no one delivery. not show the balance quantity. if (osMaterialSumBySupplier.Count > 0 && order.Quantity - osMaterialSumBySupplier.Min(m => m.ActualDelivery) > 0) { // show the balance outsoleMasterExportView.OutsoleWHBalance = (order.Quantity - osMaterialSumBySupplier.Min(m => m.ActualDelivery)).ToString(); // if no one delivery, show blank if (outsoleMaterial_PO.Sum(s => s.Quantity) == 0) { outsoleMasterExportView.OutsoleWHBalance = ""; } } SewingMasterModel sewingMaster = sewingMasterList.FirstOrDefault(f => f.ProductNo == outsoleMaster.ProductNo); if (sewingMaster != null) { outsoleMasterExportView.SewingStartDate = sewingMaster.SewingStartDate; outsoleMasterExportView.SewingFinishDate = sewingMaster.SewingFinishDate; outsoleMasterExportView.SewingQuota = sewingMaster.SewingQuota; outsoleMasterExportView.SewingBalance = sewingMaster.SewingBalance; } else { outsoleMasterExportView.SewingStartDate = dtDefault; outsoleMasterExportView.SewingFinishDate = dtDefault; outsoleMasterExportView.SewingQuota = 0; outsoleMasterExportView.SewingBalance = ""; } List <OutsoleReleaseMaterialModel> outsoleReleaseMaterialList_D1 = outsoleReleaseMaterialList.Where(o => o.ProductNo == outsoleMaster.ProductNo).ToList(); int qtyReleased = outsoleReleaseMaterialList_D1.Sum(o => o.Quantity); outsoleMasterExportView.ReleasedQuantity = qtyReleased.ToString(); if (qtyReleased <= 0) { outsoleMasterExportView.ReleasedQuantity = ""; } if (qtyReleased >= outsoleMasterExportView.Quantity && outsoleReleaseMaterialList_D1.Count > 0) { DateTime releasedDate = outsoleReleaseMaterialList_D1.FirstOrDefault().ModifiedTime; outsoleMasterExportView.ReleasedQuantity = string.Format("{0:M/d}", releasedDate); } outsoleMasterExportViewList.Add(outsoleMasterExportView); } }
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; }