Ejemplo n.º 1
0
        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");
            }
        }
Ejemplo n.º 2
0
        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"));
            }
        }