public void SaveHeader() { var dyeingPlanlist = new ObservableCollection <TblDyeingPlanACC>(); foreach (var item in HeaderViewModel.DyeingViewModelList) { var dyeingplanrow = new TblDyeingPlanACC(); dyeingplanrow.InjectFrom(item); dyeingplanrow.TblDyeingPlanDetailsAccs = new ObservableCollection <TblDyeingPlanDetailsAcc>(); GenericMapper.InjectFromObCollection(dyeingplanrow.TblDyeingPlanDetailsAccs, item.DetailsViewModel); dyeingPlanlist.Add(dyeingplanrow); } var summaryList = new ObservableCollection <TblDyeingSummaryAcc>(); GenericMapper.InjectFromObCollection(summaryList, DyeingSummeryViewModelList); foreach (var row in DyeingSummeryViewModelList) { var sumRow = FabricStorageList.Where( x => x.CONFIGID == row.ColorName && x.INVENTSITEID == row.Size && x.itemid == row.FabricCode).Sum(w => w.QuantityPerMeter); row.Valid = row.CalculatedTotalQty <= (double)sumRow.Value; } if (DyeingSummeryViewModelList.Count(x => x.Valid) != 0) { _webService.SaveDyeingHeaderListAccAsync(new TblDyeingPlanHeaderAcc().InjectFrom(HeaderViewModel) as TblDyeingPlanHeaderAcc , dyeingPlanlist, summaryList); } else { MessageBox.Show("Some Of The Quantities Doesn't Exists In the Warehouse"); } }
public void GenerateSummary() { if (HeaderViewModel.Iserial != 0) { _webService.GetDyeingSummaryAccAsync(HeaderViewModel.Iserial); return; } if (DyeingSummeryViewModelList.Select(x => x.DyeingHeader).FirstOrDefault() == 0) { DyeingSummeryViewModelList = new ObservableCollection <DyeingSummeryViewModel>(); var dyeingSummaryTemp = new ObservableCollection <DyeingSummeryViewModel>(); foreach (var color in ColorHeader) { foreach (var planRow in HeaderViewModel.DyeingViewModelList) { if (planRow.DetailsViewModel.Count(x => x.FabricColorName == color.ColorName) != 0) { var colorRow = planRow.DetailsViewModel.FirstOrDefault(x => x.FabricColorName == color.ColorName); dyeingSummaryTemp.Add(new DyeingSummeryViewModel { CalculatedTotalQty = colorRow.FabricColorValue, ColorName = colorRow.FabricColorName, DyedFabric = planRow.DyedFabric, DyeingHeader = planRow.DyeingHeader, Iserial = planRow.Iserial, FabricCode = planRow.FabricCode, Unit = planRow.Unit, Size = colorRow.Size, }); } } } var s = from d in dyeingSummaryTemp group d by new { d.ColorName, d.DyedFabric, d.Size, d.FabricCode, d.Unit, } into g select new DyeingSummeryViewModel { CalculatedTotalQty = g.Sum(x => x.CalculatedTotalQty), ColorName = g.Key.ColorName, DyedFabric = g.Key.DyedFabric, Size = g.Key.Size, FabricCode = g.Key.FabricCode, Vendor = DefaultDyeingVendor, Unit = g.Key.Unit, }; foreach (var items in s) { foreach (var lotsDetailsCreation in HeaderViewModel.DyeingViewModelList.Where(x => x.FabricCode == items.FabricCode)) { var colorInSalesorder = lotsDetailsCreation.DetailsViewModel.FirstOrDefault(w => w.Size == items.Size); var lotsdetail = new List <TblDyeingPlanLotsDetailsViewModel>(); if (colorInSalesorder != null) { // MasterLotRow.RequiredQuantity // double Req = 0; lotsdetail.Add(new TblDyeingPlanLotsDetailsViewModel { SalesOrder = colorInSalesorder.SalesOrder, RequiredQuantity = colorInSalesorder.FabricColorValue, Saved = true // Req= Req+ ColorInSalesorder.FabricColorValue, }); } var row = new TblDyeingPlanLotsMasterViewModel(); row.FabricCode = items.FabricCode; row.Unit = items.Unit; row.Config = colorInSalesorder.OldColor; row.DyeingsSummaryPlanIserial = items.Iserial; row.RequiredQuantity = items.CalculatedTotalQty; row.FabricStoragePerFabricList = FabricStorageList.Where(x => x.itemid == items.FabricCode && x.CONFIGID == colorInSalesorder.OldColor && x.INVENTSIZEID == items.Size).ToList(); row.BatchNo = items.Batchno; row.AvaliableQuantity = (double)FabricStorageList.Where(x => x.itemid == items.FabricCode && x.CONFIGID == colorInSalesorder.OldColor && x.INVENTSIZEID == items.Size ).Sum(x => x.QuantityPerMeter); row.AvaliableQuantityOrg = (double)FabricStorageList.Where(x => x.itemid == items.FabricCode && x.CONFIGID == colorInSalesorder.OldColor && x.INVENTSIZEID == items.Size ).Sum(x => x.QuantityPerMeter); row.LotsDetailsList = new ObservableCollection <TblDyeingPlanLotsDetailsViewModel>(lotsdetail); items.LotsMasterList.Add(row); } DyeingSummeryViewModelList.Add(items); CalcfabricAgain(items.FabricCode); } SummaryPagedCollection = new PagedCollectionView(DyeingSummeryViewModelList); SummaryPagedCollection.GroupDescriptions.Add(new PropertyGroupDescription("FabricCode")); } }