Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 public ActionResult GenerateWorkDetail(WorkGeneratorViewModel viewmodel)
 {
     _workService.GenerateWorkDetail(viewmodel);
     _unitOfWork.SaveChanges();
     return(Json(new { success = true }, JsonRequestBehavior.AllowGet));
 }