private void CreateSOBom(List <UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHeadDTO> entityList) { using (ISession session = Session.Open()) { foreach (UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHeadDTO dto in entityList) { UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHead doc = UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHead.Create(); doc.Tier = dto.Tier; doc.SubKey = dto.SubKey; doc.SubkeyType = dto.SubkeyType; doc.ArrirmState = dto.ArrirmState; doc.ParentPart = dto.ParentPart;//母件 doc.BomMaster = dto.BomMaster; doc.BomCompont = dto.BomCompont; doc.Dosage = dto.Dosage; //用量 doc.DosageUnit = dto.DosageUnit; //用量单位 doc.SellNumber = dto.SellNumber; //销售数量 doc.SellUnit = dto.SellUnit; //销售单位 doc.Loss = dto.Loss; //固定损耗 doc.NeedNumber = dto.NeedNumber; //需求数量 doc.SourceType = dto.SourceType; doc.OrderHead = dto.OrderHead; doc.OrderLine = dto.OrderLine; foreach (OrderBomBE.OrderBomLineDTO lineDto in dto.OrderBomLine) { OrderBomBE.OrderBomLine line = OrderBomBE.OrderBomLine.Create(doc); line.SalesMan = lineDto.SalesMan; line.Department = lineDto.Department; line.SubKey = lineDto.SubKey; line.NeedNumber = lineDto.NeedNumber; line.NeedUom = lineDto.NeedUom; line.ProcurementQty = lineDto.ProcurementQty; } } session.Commit(); } }
public override object Do(object obj) { SOBomAddOrRemoveBP bpObj = (SOBomAddOrRemoveBP)obj; if (bpObj.InParams == null || bpObj.InParams.Count <= 0) { throw new Exception("未选择数据,请确认!"); } using (ISession sesion = Session.Open()) { #region 新增 if (bpObj.ActionType == 0) { OrderBomBE.OrderBomHead head = OrderBomBE.OrderBomHead.Finder.Find("OrderLine='" + bpObj.SOLineID + "' order by Tier desc"); if (head == null) { throw new Exception("未找到对应的销售订单行,请刷新!"); } int firstTier = Convert.ToInt32(head.Tier.Substring(0, head.Tier.IndexOf('.'))); int secondTier = Convert.ToInt32(head.Tier.Substring(head.Tier.IndexOf('.') + 1, head.Tier.Length - 2)); foreach (ReturnUpDownLineDto returnDTO in bpObj.InParams) { UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHead doc = UFIDA.U9.Cust.GS.FT.OrderBomBE.OrderBomHead.Create(); secondTier = secondTier + 1; doc.Tier = firstTier + "." + secondTier; ItemMaster item = ItemMaster.Finder.Find("ID='" + returnDTO.ItemInfo_ItemID + "'"); if (item == null) { throw new Exception("找不到对应的料品,请刷新!"); } doc.SubKey = item; doc.SubkeyType = ItemCategory.Finder.Find("Code='03'"); doc.ArrirmState = false; doc.ParentPart = head.ParentPart;//母件 //doc.BomMaster = head.BomMaster; //doc.BomCompont = dto.BomCompont; doc.Dosage = returnDTO.Qty; //用量 doc.DosageUnit = item.InventoryUOM; //用量单位 doc.SellNumber = returnDTO.Qty; //销售数量 doc.SellUnit = item.SalesUOM; //销售单位 doc.Loss = 1; //固定损耗 doc.NeedNumber = returnDTO.Qty; //需求数量 doc.SourceType = AllEnumBE.SourceTypeEnum.HandWork; doc.OrderLine = head.OrderLine; doc.OrderHead = head.OrderHead; OrderBomBE.OrderBomLine line = OrderBomBE.OrderBomLine.Create(doc); line.SalesMan = item.PurchaseInfo.Buyer; //line.Department = lineDto.Department; line.SubKey = item; line.NeedNumber = returnDTO.Qty; line.NeedUom = item.InventoryUOM; line.ProcurementQty = returnDTO.Qty; } } #endregion #region 除 if (bpObj.ActionType == 1) { foreach (ReturnUpDownLineDto returnDTO in bpObj.InParams) { OrderBomBE.OrderBomHead head = OrderBomBE.OrderBomHead.Finder.FindByID(returnDTO.SoID.ID); head.Remove(); } } #endregion sesion.Commit(); } return(null); }