Ejemplo n.º 1
0
        public static TblDyeingPlanViewModel VmMapToDyeingPLanEstimated(EstimatedDyedMain_Result dyeingObject, List <DyeingColorQuantitiesRequired_Result> dyeingDetailsObject, int batchNo, ObservableCollection <ColorHeader> colorHeader)
        {
            var dyeingPLanDetail = new ObservableCollection <TblDyeingPlanDetailViewModel>();

            foreach (var variable in colorHeader.Distinct())
            {
                var list = dyeingDetailsObject.Where(x => x.FabricColor == variable.ColorName);
                if (list != null && list.Any())
                {
                    dyeingPLanDetail.Insert(colorHeader.IndexOf(variable), new TblDyeingPlanDetailViewModel
                    {
                        FabricColorName  = list.FirstOrDefault().FabricColor,
                        FabricColorValue = Math.Round(Convert.ToSingle(list.Sum(x => x.Total)), 3),
                        BatchNo          = batchNo = batchNo + 1,
                        SalesOrder       = dyeingObject.SalesOrderID,
                        Size             = list.FirstOrDefault().Size,
                        OldColor         = list.FirstOrDefault().OldColor
                    });
                }
                else
                {
                    dyeingPLanDetail.Insert(colorHeader.IndexOf(variable), new TblDyeingPlanDetailViewModel
                    {
                        FabricColorName  = "",
                        FabricColorValue = 0,
                        BatchNo          = batchNo = 0,
                        SalesOrder       = "",
                        OldColor         = ""
                    });
                }
            }
            return(new TblDyeingPlanViewModel
            {
                SalesOrder = dyeingObject.SalesOrderID,
                DyeingClass = int.Parse(dyeingObject.DyeingClass),
                Unit = dyeingObject.Unit,
                FabricCode = dyeingObject.FabricCode,
                Style = dyeingObject.Style,
                DetailsViewModel = dyeingPLanDetail,
                CalculatedTotalQty = dyeingPLanDetail.Sum(x => x.FabricColorValue),
                DyedFabric = dyeingObject.DyedCode,
            });
        }
Ejemplo n.º 2
0
        public List <EstimatedDyedMain_Result> GetEstimatedDyeingListFromProduction(int iserial, out List <DyeingColorQuantitiesRequired_Result> ColorsValues, out int BatchNo, out List <TblPurchaseOrderDetail> purchaseDetailList, out List <TblService> Services)
        {
            using (var entities = new WorkFlowManagerDBEntities())
            {
                Services = new List <TblService>();
                var production = entities.TblPurchaseOrderHeaders.Include("TblPurchaseOrderDetails.TblPurchaseOrderDetailBreakDowns.BOM1.BomFabricBoms").Include("TblPurchaseOrderDetails.TblPurchaseOrderDetailBreakDowns.BOM1.TblSalesOrder1.TblStyle1").Include("TblPurchaseOrderDetails.TblColor").Where(x => x.TblGeneratePurchaseHeader == iserial && x.TblPurchaseHeaderType == 1);
                var dyeinglist = new List <EstimatedDyedMain_Result>();
                purchaseDetailList = new List <TblPurchaseOrderDetail>();
                ColorsValues       = new List <DyeingColorQuantitiesRequired_Result>();
                foreach (var tblPurchaseOrderHeader in production)
                {
                    foreach (var purchaseDetail in tblPurchaseOrderHeader.TblPurchaseOrderDetails)
                    {
                        purchaseDetailList.Add(purchaseDetail);
                        foreach (var purchaseDetailBreakDown in purchaseDetail.TblPurchaseOrderDetailBreakDowns)
                        {
                            var firstrow = 0;
                            try
                            {
                                firstrow = purchaseDetailBreakDown.BOM1.BomFabricBoms.FirstOrDefault(x => x.ItemType != "Service").Item;
                            }
                            catch (Exception)
                            {
                                throw new Exception("Sales Order:" + purchaseDetailBreakDown.BOM1.TblSalesOrder1.SalesOrderCode + " fabric :" + purchaseDetail.ItemId + " Needs To Be Revised ");
                            }

                            var rowFabric      = entities.tbl_FabricAttriputes.FirstOrDefault(w => w.Iserial == firstrow);
                            var listofiserials = purchaseDetailBreakDown.BOM1.BomFabricBoms.Where(x => x.ItemType == "Service")
                                                 .Select(x => x.Item);
                            Services.AddRange(entities.TblServices.Where(x => listofiserials.Contains(x.Iserial)).ToList());
                            var fabric      = entities.tbl_FabricAttriputes.Include("tbl_lkp_UoM").FirstOrDefault(x => x.FabricID == purchaseDetail.ItemId);
                            var dyeingclass = entities.tbl_lkp_DyingClassification.FirstOrDefault(
                                x => x.Iserial == fabric.DyingClassificationID);
                            if (dyeingclass != null)
                            {
                                if (rowFabric != null)
                                {
                                    if (fabric != null)
                                    {
                                        var newdyeingRow = new EstimatedDyedMain_Result
                                        {
                                            DyedGroupAname = dyeingclass.Aname,
                                            DyedGroupEname = dyeingclass.Ename,
                                            DyeingClass    = dyeingclass.Iserial.ToString(),
                                            FabricCode     = rowFabric.FabricID,
                                            FabricName     = rowFabric.FabricDescription,
                                            Unit           = fabric.tbl_lkp_UoM.Code,
                                            SalesOrderID   = purchaseDetailBreakDown.BOM1.TblSalesOrder1.SalesOrderCode,
                                            Style          = purchaseDetailBreakDown.BOM1.TblSalesOrder1.TblStyle1.StyleCode,
                                            DyedCode       = fabric.FabricID,
                                            DyedName       = fabric.FabricDescription,
                                        };
                                        if (!dyeinglist.Contains(newdyeingRow))
                                        {
                                            dyeinglist.Add(newdyeingRow);
                                        }
                                    }
                                }
                            }

                            if (dyeingclass != null)
                            {
                                if (fabric != null)
                                {
                                    ColorsValues.Add(new DyeingColorQuantitiesRequired_Result
                                    {
                                        BOM_FabricType = "Knitted",
                                        Brand_Ename    = "tt",
                                        DyeingClass    = dyeingclass.Iserial.ToString(),
                                        SalesOrderID   = purchaseDetailBreakDown.BOM1.TblSalesOrder1.SalesOrderCode,
                                        styleheader    = purchaseDetailBreakDown.BOM1.TblSalesOrder1.TblStyle1.StyleCode,
                                        Fabric_Code    = fabric.FabricID,
                                        Fabric_Ename   = fabric.FabricDescription,
                                        FabricColor    = purchaseDetail.TblColor.Code,
                                        OldColor       = "",
                                        Season_Name    = "tt",
                                        Size           = "",
                                        unitid         = fabric.tbl_lkp_UoM.Code,
                                        Total          = purchaseDetailBreakDown.Qty
                                    });
                                }
                            }
                        }
                    }
                }
                try
                {
                    BatchNo = (from b in entities.TblDyeingPlanDetails
                               select b.BatchNoCreated).Max();
                }
                catch (Exception)
                {
                    BatchNo = 0;
                }
                return(dyeinglist);
            }
        }