publicvoidCreateNewStockAssembly(BCE.Data.DBSettingdbSetting,StockAssemblySourcesource){BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblyCommandcmd=BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblyCommand.Create(dbSetting);BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblydoc=cmd.AddNew();doc.DocNo=source.DocNo;doc.DocDate=source.DocDate;doc.ItemCode=source.ItemCode;doc.Qty=source.Quantity;doc.Location=source.Location??doc.Location;if(source.Project!=null)doc.ProjNo=source.Project;if(source.Department!=null)doc.DeptNo=source.Department;doc.RefDocNo=source.ReferenceNo;//Item's UOM is always Base UOMsource.Detail.ForEach(s=>AddStockAssemblyDetail(s,doc.AddDetail));try{doc.Save();//Log Successful}catch(BCE.Application.AppExceptionex){//Log error}}publicvoidAddStockAssemblyDetail(StockAssemblyDetailSourcesource,Func<BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblyDetail>addDetail){BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblyDetaildtl=addDetail();dtl.ItemCode=source.ItemCode;dtl.Description=source.Description??dtl.Description;dtl.Location=source.Location??dtl.Location;if(source.Project!=null)dtl.ProjNo=source.Project;if(source.Department!=null)dtl.DeptNo=source.Department;dtl.Qty=source.Quantity;dtl.ItemCost=source.UnitCost;dtl.OverHeadCost=source.OverheadCost;//Item's UOM is always Base UOM}