public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { ExtendedDataEntity[] dataEntitys = e.Result.FindByEntityKey("FBillHead"); if (dataEntitys == null || dataEntitys.Count() == 0) { return; } foreach (var dataEntity in dataEntitys) { DynamicObject data = dataEntity.DataEntity; //往来单位类型=客户,一级业务员=往来单位.一级业务员 if (Convert.ToString(data["CONTACTUNITTYPE"]).EqualsIgnoreCase("BD_Customer")) { DynamicObject contact = data["CONTACTUNIT"] as DynamicObject; BusinessInfo customerBusinfo = ((FormMetadata)Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>().Load(this.Context, "BD_Customer")).BusinessInfo; DynamicObject customer = Kingdee.BOS.App.ServiceHelper.GetService <IViewService>().LoadSingle(this.Context, contact["Id"], customerBusinfo.GetDynamicObjectType()); if (customer != null) { data["FJNFistSaler_Id"] = customer["JN_SalesId_Id"]; } Kingdee.BOS.ServiceHelper.DBServiceHelper.LoadReferenceObject(this.Context, new DynamicObject[] { data }, e.TargetBusinessInfo.GetDynamicObjectType()); } } }
public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { base.AfterConvert(e); //设置采购部门 this.info = e.TargetBusinessInfo; Kingdee.K3.SCM.Contracts.ICommonService commonService = Kingdee.K3.SCM.Contracts.ServiceFactory.GetCommonService(base.Context); ExtendedDataEntity[] entityArray = e.Result.FindByEntityKey("FBillHead"); BaseDataField Deptfield = this.info.GetField("FPurchaseDeptId") as BaseDataField; if ((entityArray != null) && (entityArray.Length > 0)) { foreach (ExtendedDataEntity entity in entityArray) { DynamicObject dataEntity = entity.DataEntity; long num = Convert.ToInt64(dataEntity["PurchaseDeptId_id"]); long orgId = Convert.ToInt64(dataEntity["PurchaseOrgId_id"]); if (num <= 0L) { long num3 = commonService.GetUserOperatorId(base.Context, base.Context.UserId, orgId, "CGY"); long num4 = commonService.GetMyDepartment(base.Context, base.Context.UserId).FirstOrDefault <long>(); FieldUtils.SetBaseDataFieldValue(base.Context, Deptfield, dataEntity, num4); } } } }
/// <summary> /// 转换完之后对目标单FLot_Text赋值源单FLot_Text /// </summary> /// <param name="e"></param> public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { base.AfterConvert(e); if (dicSrcLot == null) { return; } // 取下推生成的全部单据 ExtendedDataEntity[] billDataEntitys = e.Result.FindByEntityKey("FBillHead"); if (billDataEntitys == null) { return; } foreach (ExtendedDataEntity billDataEntity in billDataEntitys) { DynamicObject dyBillHead = billDataEntity.DataEntity; if (dyBillHead == null) { continue; } // 取单据体明细行集合 DynamicObjectCollection entryRows = dyBillHead["POOrderEntry"] as DynamicObjectCollection; if (entryRows == null) { continue; } foreach (DynamicObject entryRow in entryRows) { if (entryRow == null) { continue; } // 取每行的源单及源单单据体内码 DynamicObjectCollection linkRows = entryRow["FPOOrderEntry_Link"] as DynamicObjectCollection; if (linkRows == null || linkRows.Count <= 0) { continue; } // TODO: 根据目标单的来源单,进行后续处理 if (dicSrcLot.ContainsKey(Convert.ToInt64(linkRows[0]["SId"]))) { entryRow["FLot_Text"] = dicSrcLot[Convert.ToInt64(linkRows[0]["SId"])]["F_JN_Lot_Text"]; } #region //List<long> srcBillIds = new List<long>(); //List<long> srcEntryIds = new List<long>(); //foreach (var linkRow in linkRows) //{ // long srcBillId = Convert.ToInt64(linkRow["SBillId"]); // long srcEntryId = Convert.ToInt64(linkRow["SId"]); // srcBillIds.Add(srcBillId); // srcEntryIds.Add(srcEntryId); //} #endregion } } }
public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { base.AfterConvert(e); ExtendedDataEntity[] entityArray = e.Result.FindByEntityKey("FbillHead"); if (entityArray == null || entityArray.Count() <= 0) { return; } List <long> lstMaterialID = new List <long>(); foreach (ExtendedDataEntity entity in entityArray) { if (!lstMaterialID.Contains(Convert.ToInt64(entity.DataEntity["MaterialId_Id"]))) { lstMaterialID.Add(Convert.ToInt64(entity.DataEntity["MaterialId_Id"])); } } if (lstMaterialID.Count() <= 0) { return; } SqlParam param = new SqlParam("@FID", KDDbType.udt_inttable, lstMaterialID.ToArray()); string strSql = string.Format(@"select a.FID,a.FMaterialId from T_ENG_BOM a INNER JOIN TABLE(fn_StrSplit(@FID,',',1)) b on a.FMaterialId=b.FID "); DynamicObjectCollection dycBomCollections = DBUtils.ExecuteDynamicObject(this.Context, strSql, null, null, CommandType.Text, new SqlParam[] { param }); if (dycBomCollections == null || dycBomCollections.Count() <= 0) { return; } foreach (ExtendedDataEntity entity in entityArray) { DynamicObject dycBom = entity["BomId"] as DynamicObject; if (dycBom == null || Convert.ToInt64(dycBom["Id"]) == 0) { DynamicObject dycSelect = dycBomCollections.Where(o => Convert.ToInt64(o["FMaterialId"]) == Convert.ToInt64(entity.DataEntity["MaterialId_Id"])).FirstOrDefault(); if (dycSelect != null) { entity.DataEntity["BomId_Id"] = dycSelect["FID"]; } } Kingdee.BOS.ServiceHelper.DBServiceHelper.LoadReferenceObject(this.Context, new DynamicObject[] { entity.DataEntity }, e.TargetBusinessInfo.GetDynamicObjectType()); } }
/// <summary> /// 单据转换后事件 /// </summary> /// <param name="e"></param> public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { base.AfterConvert(e); ExtendedDataEntity[] assemblies = e.Result.FindByEntityKey("FBillHead");//下游单据 foreach (ExtendedDataEntity extendedDataEntity in assemblies) { DynamicObject parents = extendedDataEntity.DataEntity as DynamicObject; DynamicObjectCollection Entry = parents["Entity"] as DynamicObjectCollection;//主表体 if (Entry == null || Entry.Count == 0) { continue; } foreach (DynamicObject item in Entry) { long qcschemeId = Convert.ToInt64(item["QCSchemeId_Id"]); //质检方案Id string sql = string.Format(@"select A.FINSPECTITEMID,B.FSAMPLESCHEMEID,B.FANALYSISMETHOD,B.FDEFECTLEVEL,B.FDESTRUCTINSPECT, B.FKEYINSPECT,B.FQUALITYSTDID,B.FINSPECTMETHODID,B.FINSPECTINSTRUMENTID,B.FINSPECTBASISID,B.FUNITID from T_QM_QCSCHEMEENTRY A inner join T_QM_INSPECTITEM B on A.FINSPECTITEMID=B.FID where A.FID={0}", qcschemeId); DynamicObjectCollection inspectItem = DBUtils.ExecuteDynamicObject(this.Context, sql, null, null, System.Data.CommandType.Text, null); //检验项目 if (inspectItem == null || inspectItem.Count == 0) { continue; } DynamicObjectCollection inspectEntry = item["ItemDetail"] as DynamicObjectCollection;//检验项目子单据体 foreach (DynamicObject inspect in inspectItem) { DynamicObject newData = inspectEntry.DynamicCollectionItemPropertyType.CreateInstance() as DynamicObject;//新建子单据体分录 newData["InspectItemId_Id"] = inspect["FINSPECTITEMID"]; newData["SampleSchemeId_Id"] = inspect["FSAMPLESCHEMEID"]; newData["AnalysisMethod"] = inspect["FANALYSISMETHOD"]; newData["DefectLevel1"] = inspect["FDEFECTLEVEL"]; newData["DestructInspect"] = Convert.ToInt32(inspect["FDESTRUCTINSPECT"]) == 0 ? false : true; newData["KeyInspect"] = Convert.ToInt32(inspect["FKEYINSPECT"]) == 0 ? false : true; newData["QualityStdId_Id"] = inspect["FQUALITYSTDID"]; newData["InspectMethodId_Id"] = inspect["FINSPECTMETHODID"]; newData["InspectInstrumentId_Id"] = inspect["FINSPECTINSTRUMENTID"]; newData["InspectBasisId_Id"] = inspect["FINSPECTBASISID"]; newData["UnitId_Id"] = inspect["FUNITID"]; inspectEntry.Add(newData); } } Kingdee.BOS.Contracts.ServiceFactory.GetService <IDBService>(this.Context).LoadReferenceObject(this.Context, new DynamicObject[] { parents }, e.TargetBusinessInfo.GetDynamicObjectType(), false);//重新加载一次信息,刷新出基础资料(当基础资料只有ID有值时) } }
/// <summary> /// 最后触发:单据转换后事件 /// </summary> /// <param name="e"/> public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { ExtendedDataEntity[] array = e.Result.FindByEntityKey("FBillHead"); foreach (ExtendedDataEntity extendedDataEntity in array) { long orgid = Convert.ToInt32(extendedDataEntity.DataEntity["FPAYORGID"]); DynamicObjectCollection dynamicObjectCollection = (extendedDataEntity.DataEntity["PAYBILLENTRY"] as DynamicObjectCollection); if (dynamicObjectCollection == null) { continue; } BaseDataField priceListDataField = e.TargetBusinessInfo.GetField("FPriceListId") as BaseDataField; foreach (DynamicObject dyentry in dynamicObjectCollection) { long materialid = Convert.ToInt32(dyentry["MaterialId_Id"]); List <long> lMaterList = new List <long>(); lMaterList.Add(materialid); DynamicObjectCollection bomDataCollection = CommonServiceHelper.GetAcctBookData(this.Context, orgid, materialid, materialid); DynamicObject listdObjects = null; if (bomDataCollection == null) { continue; } listdObjects = bomDataCollection.FirstOrDefault(); if (listdObjects != null) { decimal amount, Qty, Price; Qty = Convert.ToDecimal(dyentry["Qty"]); Price = Convert.ToDecimal(listdObjects["FPRICE"]); amount = Qty * Price; dyentry["Amount"] = amount; dyentry["Price"] = listdObjects["FPRICE"]; dyentry["TaxPrice"] = listdObjects["FPRICE"]; } } } }
public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { ExtendedDataEntity[] dataEntitys = e.Result.FindByEntityKey("FBillHead"); if (dataEntitys == null || dataEntitys.Count() == 0) { return; } //入库单新增视图 IDynamicFormView targetView = (IDynamicFormView)this.CreateTargetBillView(e.TargetBusinessInfo); foreach (var dataEntity in dataEntitys) { DynamicObject data = dataEntity.DataEntity; (targetView as IBillView).OpenParameter.PkValue = 0; (targetView as IBillView).OpenParameter.Status = OperationStatus.ADDNEW; targetView.Refresh(); targetView.Model.DataObject = data; //执行操作 DoExecute(targetView); } targetView.Close(); }
public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { base.AfterConvert(e); //获取头数据 var headEntity = e.Result.FindByEntityKey("FBillHead"); //获取元数据 用于获取源单需要转化的动态集合 object[] pkids = sourceDataCollection.Select(p => p["FID"]).Distinct().ToArray(); FormMetadata metadata = MetaDataServiceHelper.Load(this.Context, "PAEZ_ICMO") as FormMetadata; DynamicObject[] objs = BusinessDataServiceHelper.Load(this.Context, pkids, metadata.BusinessInfo.GetDynamicObjectType()); Entity FEntityWorkSeq = e.TargetBusinessInfo.GetEntity("FEntity"); Entity FentityICMO = e.TargetBusinessInfo.GetEntity("FEntityICMOIN"); DynamicObjectCollection sourceProdPlanCollection = null; DynamicObjectCollection sourceICMOCollection = null; foreach (var extendDataEntity in headEntity) { DynamicObjectCollection objectProdPlanCollect = extendDataEntity["FEntity"] as DynamicObjectCollection; DynamicObjectCollection objectMetailICOMCollection = extendDataEntity["PAEZ_SHWorkMaterialIN"] as DynamicObjectCollection; for (int i = objectProdPlanCollect.Count - 1; i >= 0; i--) { objectProdPlanCollect.RemoveAt(i); } DynamicObjectCollection objectICMO = null; foreach (var sourceItem in objs) { sourceProdPlanCollection = sourceItem["PAEZ_ICMO_Entry_ProProcedure"] as DynamicObjectCollection; sourceICMOCollection = sourceItem["PAEZ_ICMO_Entry_ICItem"] as DynamicObjectCollection; } foreach (var sourceItem in sourceProdPlanCollection) { DynamicObject objectProdPlan = new DynamicObject(FEntityWorkSeq.DynamicObjectType); objectProdPlan["seq"] = sourceItem["seq"]; objectProdPlan["F_PAEZ_ProduceID_Id"] = sourceItem["F_PAEZ_ProduceID_Id"]; objectProdPlan["F_PAEZ_ProduceID"] = sourceItem["F_PAEZ_ProduceID"]; objectProdPlan["F_PAEZ_Times"] = sourceItem["F_PAEZ_Times"]; objectProdPlan["F_PAEZ_Equipment_Id"] = sourceItem["F_PAEZ_MachineID_Id"]; objectProdPlan["F_PAEZ_Equipment"] = sourceItem["F_PAEZ_MachineID"]; objectProdPlan["F_PAEZ_Rolling"] = sourceItem["F_PAEZ_Rolling"]; objectProdPlan["F_PAEZ_Notes"] = sourceItem["F_PAEZ_Notes"]; objectProdPlanCollect.Add(objectProdPlan); } foreach (var sourceItem in sourceICMOCollection) { DynamicObject sourceICMO = new DynamicObject(FentityICMO.DynamicObjectType); sourceICMO["Seq"] = sourceItem["seq"]; sourceICMO["F_PAEZ_Material"] = sourceItem["F_PAEZ_ICItemID"]; //原料代码 sourceICMO["F_PAEZ_Material_Id"] = sourceItem["F_PAEZ_ICItemID_Id"]; //ID // sourceICMO["F_PAEZ_BaseProperty"] = sourceItem["F_PAEZ_ICItemName"]; //原料名称 // sourceICMO["F_PAEZ_BaseProperty2_Id"] = sourceItem["F_PAEZ_ICItemMaterial"]; //材质 sourceICMO["F_PAEZ_IcItemLevel"] = sourceItem["F_PAEZ_IcItemLevel"]; //等级 sourceICMO["F_PAEZ_Model"] = sourceItem["F_PAEZ_ICItemModel"]; //规格 sourceICMO["F_PAEZ_LotMa"] = sourceItem["F_PAEZ_Lot"]; //批号 sourceICMO["F_PAEZ_ReelItemIN"] = sourceItem["F_PAEZ_ICItemReelNO"]; //卷号 sourceICMO["F_PAEZ_MaWeight"] = sourceItem["F_PAEZ_ICItemWeight"]; //重量 sourceICMO["F_PAEZ_UnitIDMAWeight"] = sourceItem["F_PAEZ_ICItemWeightUNITID"]; //重量单位 sourceICMO["F_PAEZ_QtyMa"] = sourceItem["F_PAEZ_IcItemQty"]; //数量 sourceICMO["F_PAEZ_UnitID1"] = sourceItem["F_PAEZ_ICItemQtyUnitID"]; //数量单位 sourceICMO["F_PAEZ_MaWidth"] = sourceItem["F_PAEZ_ICItemWidth"]; //宽度 sourceICMO["F_PAEZ_MaThickness"] = sourceItem["F_PAEZ_ICItemThickness"]; //厚度 sourceICMO["F_PAEZ_MaLength"] = sourceItem["F_PAEZ_ICItemLength"]; //长度 sourceICMO["F_PAEZ_MaWidthRE"] = sourceItem["F_PAEZ_ICItemRefWidth"]; //参宽 sourceICMO["F_PAEZ_MaThicknessRE"] = sourceItem["F_PAEZ_ICItemRefThickness"]; //參厚 sourceICMO["F_PAEZ_CCONTENTSItemIN"] = sourceItem["F_PAEZ_ICItemCContents"]; //碳含量 sourceICMO["F_PAEZ_CRCONTENTSItemIN"] = sourceItem["F_PAEZ_ICItemCRContents"]; //铬含量 sourceICMO["F_PAEZ_PRODUCTEDGEItemIN"] = sourceItem["F_PAEZ_ICItemEdge"]; //边部状况 // sourceICMO["F_PAEZ_StockLot"] = sourceItem["F_PAEZ_LotStock"]; //库存批次 objectMetailICOMCollection.Add(sourceICMO); } } }
public override void AfterConvert(Kingdee.BOS.Core.Metadata.ConvertElement.PlugIn.Args.AfterConvertEventArgs e) { ExtendedDataEntity[] dataEntits = e.Result.FindByEntityKey("FBillHead"); //取单据数据包 List <long> lstMoEntryIds = new List <long>(); //生产订单分录id if (dataEntits != null && dataEntits.Count() > 0) { foreach (var entity in dataEntits) { DynamicObjectCollection entry = entity["Entity"] as DynamicObjectCollection; if (entry == null || entry.Count <= 0) { continue; } foreach (var item in entry) { lstMoEntryIds.Add(Convert.ToInt64(item["MoEntryId"]));//生产订单分录Id } } } if (lstMoEntryIds.Count > 0) { Entity enitty = e.TargetBusinessInfo.GetEntity("FEntity"); List <DynamicObject> lstEntry = new List <DynamicObject>(); string sql = string.Format(@" SELECT DISTINCT FENTRYID,FLOT,FLOT_TEXT FROM T_PRD_MOENTRY WHERE FENTRYID IN ({0})", string.Join <long>(",", lstMoEntryIds)); DynamicObjectCollection dyn = DBUtils.ExecuteDynamicObject(this.Context, sql); if (dyn != null && dyn.Count() > 0) { Dictionary <long, DynamicObject> dicLot = dyn.ToDictionary <DynamicObject, long, DynamicObject>(p => Convert.ToInt64(p["FENTRYID"]), p => p); if (dicLot.Count() > 0) { foreach (var entity in dataEntits) { DynamicObjectCollection entry = entity["Entity"] as DynamicObjectCollection; if (entry == null || entry.Count <= 0) { continue; } foreach (var item in entry) { long entryId = Convert.ToInt64(item["MoEntryId"]);//生产订单分录Id if (dicLot.ContainsKey(entryId)) { DynamicObject lot = dicLot[entryId]; item["F_JN_MaterialLot_Id"] = Convert.ToInt64(lot["FLOT"]); item["F_JN_MaterialLot_Text"] = Convert.ToString(lot["FLOT_TEXT"]); lstEntry.Add(item); } } } } } if (lstEntry.Count() > 0) { Kingdee.BOS.Contracts.ServiceFactory.GetService <IDBService>(this.Context).LoadReferenceObject(base.Context, lstEntry.ToArray(), enitty.DynamicObjectType, false); } } base.AfterConvert(e); }