public void GenerateWorkDetail(WorkGeneratorViewModel viewmodel) { var orderdetail = this._orderdetailservice.Queryable().Include(x => x.Order).Where(x => x.Id == viewmodel.OrderDetailId).First(); var work = this.Queryable().Where(x => x.Id == viewmodel.WorkId).First(); var bomcomponents = this._bomservice.Queryable().Include(x => x.ParentComponent).Include(x => x.SKU).Where(x => viewmodel.WorkingBomComponents.Contains(x.Id)).ToList(); var list = new List <WorkDetail>(); foreach (var bom in bomcomponents) { WorkDetail item = new WorkDetail(); item.WorkId = work.Id; item.WorkNo = work.WorkNo; item.StockQty = 0; item.AltOrderProdctionDate = orderdetail.Order.OrderDate; item.AltProdctionDate1 = orderdetail.Order.OrderDate; item.AltProdctionDate2 = orderdetail.Order.OrderDate; item.AltProdctionDate3 = orderdetail.Order.OrderDate; item.AltProdctionDate4 = orderdetail.Order.OrderDate; item.AltProdctionDate5 = orderdetail.Order.OrderDate; item.BomComponentId = bom.Id; item.ParentBomComponentId = bom.ParentComponentId; item.ComponentSKUId = bom.SKUId; item.ConsumeQty = bom.ConsumeQty; item.GraphSKU = bom.GraphSKU; item.GraphVer = ""; item.OrderKey = orderdetail.OrderKey; item.ParentSKUId = bom.ParentComponent.SKUId; item.Remark1 = bom.Remark1; item.Remark2 = bom.Remark2; item.RequirementQty = orderdetail.Qty * bom.ConsumeQty; item.StockQty = 0; item.ProductionQty = orderdetail.Qty * bom.ConsumeQty; item.DoingQty = 0; item.FinishedQty = 0; var exists = _workdetailservice.Queryable().Where(x => x.WorkId == work.Id && x.ComponentSKUId == bom.SKUId && x.ParentSKUId == bom.ParentComponent.SKUId).Any(); if (!exists) { list.Add(item); } } this._workdetailservice.InsertRange(list); }
public ActionResult GenerateWorkDetail(WorkGeneratorViewModel viewmodel) { _workService.GenerateWorkDetail(viewmodel); _unitOfWork.SaveChanges(); return(Json(new { success = true }, JsonRequestBehavior.AllowGet)); }