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, }); }
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); } }