//public override void OnQueryBuilderParemeter(QueryBuilderParemeterEventArgs e) //{ // e.SelectItems.Add(new SelectorItemInfo("F_SZXY_MOID")); //} ///// <summary> ///// 设置OnFieldMapping 事件启用 ///// </summary> ///// <param name="e"></param> //public override void OnBeforeFieldMapping(BeforeFieldMappingEventArgs e) //{ // base.OnBeforeFieldMapping(e); // e.FireFieldMappingEvent = true; //} //public long F_ZHAOBIAODAILI; ///// <summary> ///// 获取与处理源单数据 ///// </summary> ///// <param name="e"></param> //public override void OnFieldMapping(FieldMappingEventArgs e) //{ // List<Kingdee.BOS.Orm.DataEntity.DynamicObject> SrcData = e.ConvertSource as List<Kingdee.BOS.Orm.DataEntity.DynamicObject>; //} public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); IViewService Services = ServiceHelper.GetService <IViewService>(); //获取整个下推的数据 var dataObjs = e.Result.FindByEntityKey("FBillHead"); if (dataObjs != null) { foreach (var extendedDataEntity in dataObjs) { DynamicObjectCollection EntryCollect = null;// //获取目标单的明细信息 Entity entity = e.TargetBusinessInfo.GetEntity("FEntity"); DynamicObject BillObject = extendedDataEntity.DataEntity; EntryCollect = extendedDataEntity.DataEntity["Entity"] as DynamicObjectCollection;//生产领料单 if (EntryCollect != null && EntryCollect.Count > 0) { foreach (DynamicObject Row in EntryCollect) { string MoId = Convert.ToString(Row["MoId"]); //生产订单内码 int MoSeq = Convert.ToInt32(Row["MoEntrySeq"]); //生产订单行号 string FMATERIALID = Convert.ToString(Row["MaterialId_Id"]); //原料 //加载生产订单 if (MoId != "0") { DynamicObject MoObejct = Utils.LoadFIDBillObject(this.Context, "PRD_MO", MoId); long MoEntryId = 0;//生产订单分录内码 if (MoObejct["TreeEntity"] is DynamicObjectCollection MoEntry) { MoEntryId = Convert.ToInt64(MoEntry[MoSeq - 1]["Id"]); } if (MoObejct != null && !Convert.ToString(Row["MoEntrySeq"]).IsNullOrEmptyOrWhiteSpace() && !FMATERIALID.IsNullOrEmptyOrWhiteSpace()) { string MoBillNo = Convert.ToString(MoObejct["BillNo"]);//生产订单编号 string SelUseSql = "/*dialect*/select T1.FBILLNO,T1.FID,T2.FENTRYID,T2.FSEQ from T_PRD_PPBOM T1 left join T_PRD_PPBOMENTRY T2 on t1.FID=T2.FID " + $"where T1.FMOBILLNO = '{MoBillNo}' and T1.FMOENTRYSEQ = '{MoSeq}' and T2.FMATERIALID = '{FMATERIALID}'"; DataSet Ds = Utils.CBData(SelUseSql, Context); if (Ds != null && Ds.Tables.Count > 0 && Ds.Tables[0].Rows.Count > 0) { string UseFBILLNO = Convert.ToString(Ds.Tables[0].Rows[0]["FBILLNO"]); //用料清单编号 long UseFID = Convert.ToInt64(Ds.Tables[0].Rows[0]["FID"]); //用料清单ID long UseEntryId = Convert.ToInt64(Ds.Tables[0].Rows[0]["FENTRYID"]); //用料清单行Id string UseSeq = Convert.ToString(Ds.Tables[0].Rows[0]["FSEQ"]); //用料清单Seq Row["MoEntryId"] = MoEntryId; Row["PPBomEntryId"] = UseEntryId; //用料清单编号 Row["MoId"] = MoId; Row["MoEntrySeq"] = MoSeq; Row["PPBomBillNo"] = UseFBILLNO; } } } } } } } }
/// <summary> /// 成品明细对应的子键明细的数据实现 /// panqing 2016.08.15 /// </summary> /// <param name="e"></param> public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); IViewService Services = ServiceHelper.GetService <IViewService>(); //获取整个下推的数据 var dataObjs = e.Result.FindByEntityKey("FBillHead"); if (dataObjs != null) { foreach (var extendedDataEntity in dataObjs) { DynamicObjectCollection EntryCollect = null;//流延单 //获取目标单的明细信息(流延单) Entity entity = e.TargetBusinessInfo.GetEntity("FBillEntry"); DynamicObject BillObject = extendedDataEntity.DataEntity; EntryCollect = extendedDataEntity.DataEntity["SZXY_XYLYEntry"] as DynamicObjectCollection; //string BillNo = Convert.ToString(BillObject["BillNo"]); // DynamicObject orgObj = BillObject["F_SZXY_OrgId"] as DynamicObject; //移除目标单成品明细信息空行(选单时目标单会有空行) if (EntryCollect != null && EntryCollect.Count > 0) { foreach (DynamicObject Row in EntryCollect) { //DynamicObject newRow = new DynamicObject(entity.DynamicObjectType); string Date = Convert.ToString(Row["F_SZXY_Date"]); DynamicObject formulaObejct = Row["F_SZXY_Formula"] as DynamicObject; DynamicObject machineObejct = Row["F_SZXY_Machine"] as DynamicObject; string Seq = Convert.ToString(Row["F_SZXY_Seq"]); string rollNO = Convert.ToString(Row["F_SZXY_RollNo"]); if (!Date.IsNullOrEmptyOrWhiteSpace() && formulaObejct != null && machineObejct != null && !Seq.IsNullOrEmptyOrWhiteSpace() && !rollNO.IsNullOrEmptyOrWhiteSpace()) { string formulaNumber = Convert.ToString(formulaObejct["FNumber"]); string machineNumber = Convert.ToString(machineObejct["FNumber"]); // string org=Convert.ToString(orgObj["Number"]); Row["F_SZXY_PlasticNo"] = "C" + formulaNumber + Convert.ToDateTime(Row["F_SZXY_Date"]).ToString("yy-MM-dd") + machineNumber.Trim().Substring(1, machineNumber.Trim().Length - 1) + Seq + rollNO; Row["F_SZXY_InPutQty"] = ((Convert.ToDecimal(Row["F_SZXY_PLy"]) * (Convert.ToDecimal(Row["F_SZXY_Width"]) * Convert.ToDecimal(Row["F_SZXY_Len"]) / Convert.ToDecimal(1000)) * Convert.ToDecimal(0.91)) / Convert.ToDecimal(1000)) / Convert.ToDecimal(0.83); Row["F_SZXY_Output"] = (Convert.ToDecimal(Row["F_SZXY_PLy"]) * (Convert.ToDecimal(Row["F_SZXY_Width"]) * Convert.ToDecimal(Row["F_SZXY_Len"]) / Convert.ToDecimal(1000)) * Convert.ToDecimal(0.91)) / Convert.ToDecimal(1000); } //EntryCollect.Add(newRow);F_SZXY_Output } } } } }
public override void AfterConvert(AfterConvertEventArgs e) { //base.AfterConvert(e); ExtendedDataEntity[] source = e.Result.FindByEntityKey("FEntity"); string billTypeId = (source.FirstOrDefault <ExtendedDataEntity>().DataEntity.Parent as DynamicObject).GetDynamicObjectItemValue <string>("FBillTypeID_Id", null); DynamicObject billTypePara = Kingdee.K3.MFG.App.AppServiceContext.BusinessDataService.LoadBillTypePara(base.Context, "InspectBillTPS", billTypeId, true); this.SetPolicyQty(source, billTypePara); this.SetEntitySSInfoByQty(source, billTypePara); this.SetInspectItem(source, billTypePara); this.FillReferDetail(source, billTypePara); this.SplitData(e); ExtendedDataEntity[] entryDataes = e.Result.FindByEntityKey("FEntity"); this.BuildSerial(entryDataes); if (this.QCSNSplitEntry) { base.SplitSNEntrys(e.Result); } }
public override void AfterConvert(AfterConvertEventArgs e) { ExtendedDataEntity[] data = e.Result.FindByEntityKey("FBillHead"); if (data != null && data.Length > 0) { foreach (ExtendedDataEntity entity in data) { DynamicObject billObj = entity.DataEntity; long supplierId = Convert.ToInt64(billObj["SupplierId_Id"]); if (supplierId != 0) { var supplierObj = DealSupplierVMI(supplierId); if (supplierObj == null) { billObj["SupplierId_Id"] = 0; billObj["SupplierId"] = null; } } } } }
public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); ExtendedDataEntity[] array = e.Result.FindByEntityKey("FBillHead"); IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); FormMetadata bomMeta = metaService.Load(this.Context, "ENG_BOM", true) as FormMetadata; IViewService viewService = ServiceHelper.GetService <IViewService>(); foreach (ExtendedDataEntity item in array) { long orgId = Convert.ToInt64(item["SaleOrgId_Id"]); //long orgId = 100005; DynamicObjectCollection orderEntry = item["SaleOrderEntry"] as DynamicObjectCollection; if (orderEntry != null && orderEntry.Count() > 0) { foreach (DynamicObject order in orderEntry) { long materialId = Convert.ToInt64(order["MaterialId_Id"]); long AuxPropId_Id = Convert.ToInt64(order["AuxPropId_Id"]); string strSql = string.Format(@"/*dialect*/select FMASTERID from T_BD_MATERIAL where FMATERIALID = {0}", materialId); long masterid = DBUtils.ExecuteScalar <long>(this.Context, strSql, 0, null); if (masterid != 0) { //1上下文,2物料masterid,3辅助属性内码id, long bomId = BOMServiceHelper.GetDefaultBomKey(this.Context, masterid, orgId, AuxPropId_Id, Enums.Enu_BOMUse.TYBOM) > 0? BOMServiceHelper.GetDefaultBomKey(this.Context, masterid, orgId, AuxPropId_Id, Enums.Enu_BOMUse.TYBOM):0; if (bomId > 0) { DynamicObject bomObject = viewService.LoadSingle(this.Context, bomId, bomMeta.BusinessInfo.GetDynamicObjectType()); order["BomId"] = bomObject; order["BomId_Id"] = bomId; } } } } } }
public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); //获取整个下推的数据 var dataObjs = e.Result.FindByEntityKey("FBillHead"); if (dataObjs != null) { foreach (var extendedDataEntity in dataObjs) { DynamicObjectCollection EntryCollect = null; DynamicObject BillObject = extendedDataEntity.DataEntity; //生产入库单明细 EntryCollect = extendedDataEntity.DataEntity["Entity"] as DynamicObjectCollection; Entity entity2 = e.TargetBusinessInfo.GetEntity("FEntity_Link"); if (EntryCollect != null && EntryCollect.Count > 0) { foreach (DynamicObject row in EntryCollect) { string fmoent = ""; string sql = "select FENTRYID FROM T_PRD_MOENTRY where FID= " + row["MoId"] + "and FSEQ= " + row["MoEntrySeq"]; //sql拼接 DataSet sqltable = DBServiceHelper.ExecuteDataSet(this.Context, sql); //放入DataSet if (sqltable != null && sqltable.Tables.Count > 0 && sqltable.Tables[0].Rows.Count > 0) { fmoent = sqltable.Tables[0].Rows[0][0].ToString(); } //源单类型 row["SrcBillType"] = "PRD_MO"; //源单编号 row["SrcBillNo"] = row["MoBillNo"]; //源单内码 row["SrcInterId"] = row["MoId"]; //源单分录内码 row["SrcEntryId"] = fmoent; //源单行号 row["SrcEntrySeq"] = row["MoEntrySeq"]; DynamicObjectCollection linkCollect = row["FEntity_Link"] as DynamicObjectCollection; linkCollect[0]["RuleId"] = "PRD_MO2INSTOCK";//PRD_INSTOCK linkCollect[0]["STableName"] = "T_PRD_MOENTRY"; linkCollect[0]["SBillId"] = row["MoId"]; //生产订单分录内码 linkCollect[0]["SId"] = fmoent; } } } } }
public override void AfterConvert(AfterConvertEventArgs e) { ExtendedDataEntity[] entitys = e.Result.FindByEntityKey("FBillHead"); DataTable dataTable = new DataTable(); //dataTable.Columns.Add("FMaterialId"); dataTable.Columns.Add("FCOLOR"); List <long> lstAuxPropId = new List <long>(); #region 第一步获取物料+辅助属性集合 foreach (ExtendedDataEntity entity in entitys) { DynamicObjectCollection entryDatas = (DynamicObjectCollection)entity.DataEntity["TreeEntity"]; if (entryDatas != null && entryDatas.Count > 0) { foreach (var item in entryDatas) { DataRow dataRow = dataTable.NewRow(); // DynamicObject material = item["MaterialId"] as DynamicObject; //dataRow["FMaterialId"] = material != null ? Convert.ToInt64(material["Id"]) : 0; DynamicObject auxprop = item["AuxPropId"] as DynamicObject; string color = auxprop != null?Convert.ToString(auxprop["F100001_Id"]) : ""; dataRow["FCOLOR"] = color; dataTable.Rows.Add(dataRow); } } } if (dataTable.Rows.Count == 0) { return; } BatchSqlParam batchSqlParam = new BatchSqlParam("JHF_T_ROUTMATTAB", dataTable, ""); batchSqlParam.TableAliases = "TR"; // batchSqlParam.AddWhereExpression("FMaterialId", KDDbType.Int64, "F_JHF_MATERIALID", "TR"); batchSqlParam.AddWhereExpression("FCOLOR", KDDbType.String, "F_JHF_COLOR", "TR"); string selectFieldSql = " distinct TR.F_JHF_COLOR,TR.F_JHF_ROUTID"; string where = string.Format(" TR.FDOCUMENTSTATUS='C' AND TR.FFORBIDSTATUS='A' "); DynamicObjectCollection dyobjs = DBUtils.ExecuteDynamicObject(base.Context, batchSqlParam, selectFieldSql, where); Dictionary <string, long> dicMatRout = new Dictionary <string, long>(); if (dyobjs != null && dyobjs.Count > 0) { foreach (var objs in dyobjs) { string color = Convert.ToString(objs["F_JHF_COLOR"]); if (!dicMatRout.ContainsKey(color)) { dicMatRout.Add(color, Convert.ToInt64(objs["F_JHF_ROUTID"])); } } } #endregion #region 重新赋值工艺路线 foreach (ExtendedDataEntity entity in entitys) { DynamicObjectCollection entryDatas = (DynamicObjectCollection)entity.DataEntity["TreeEntity"]; if (entryDatas != null && entryDatas.Count > 0) { foreach (var item in entryDatas) { DynamicObject material = item["MaterialId"] as DynamicObject; string materialId = material != null?Convert.ToString(material["Id"]) : ""; DynamicObject auxprop = item["AuxPropId"] as DynamicObject; string color = auxprop != null?Convert.ToString(auxprop["F100001_Id"]) : ""; if (dicMatRout.ContainsKey(color)) { long rountId = dicMatRout[color]; //赋值工艺路线 SetRountIdFiled(e.TargetBusinessInfo, item, "RoutingId", "FRoutingId", rountId); } } } } #endregion }
/// <summary> /// 主单据体的字段携带完毕,与源单的关联关系创建好之后,触发此事件 /// </summary> /// <param name="e"></param> //public override void OnAfterCreateLink(CreateLinkEventArgs e) //{ // base.OnAfterCreateLink(e); // //源单 销售订单明细 // Entity srcFirstEntity = e.SourceBusinessInfo.GetEntity("FSaleOrderEntry"); // //目标单 直接调拨单明细 // Entity mainEntity = e.TargetBusinessInfo.GetEntity("FBillEntry"); // // 目标单关联子单据体 // Entity linkEntity = null; // Form form = e.TargetBusinessInfo.GetForm(); // if (form.LinkSet != null // && form.LinkSet.LinkEntitys != null // && form.LinkSet.LinkEntitys.Count != 0) // { // linkEntity = e.TargetBusinessInfo.GetEntity( // form.LinkSet.LinkEntitys[0].Key); // } // if (linkEntity == null) // { // return; // } // // 获取生成的全部下游单据 // ExtendedDataEntity[] billDataEntitys = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead"); // // 对下游单据,逐张单据进行处理 // foreach (var item in billDataEntitys) // { // DynamicObjectCollection directEntry = item["TransferDirectEntry"] as DynamicObjectCollection; // //合并之后的分录 为了不遍历每次增加 // DynamicObject entryEnd = directEntry[0] as DynamicObject; // //获取目标单组织 sql中使用 // DynamicObject org = item["StockOrgId"] as DynamicObject; // long orgId=Convert.ToInt64(org["Id"]); // decimal slamount = 0;//塑料箱总数 // decimal pmamount = 0;//泡沫箱总数 // for (int i=0;i< directEntry.Count; i++) // { // //目标单分录 // DynamicObject entry= directEntry[i] as DynamicObject; // //目标单物料 // DynamicObject material = entry["MaterialId"] as DynamicObject; // //目标单调拨数量 // decimal qty= Convert.ToDecimal(entry["QTY"]); // //物料获取装箱数 // decimal packQty= Convert.ToDecimal(material["FPACKQTY"]); // //物料获取箱套类型 // DynamicObjectCollection materialBase = material["MaterialBase"] as DynamicObjectCollection; // foreach (DynamicObject colourAll in materialBase) // { // string colour = Convert.ToString(colourAll["FBOXCOLOUR"]); // if (colour.Equals("1"))//塑料箱 // { // decimal slxAmount = Math.Ceiling(qty / packQty); // slamount = slamount + slxAmount; // } // if (colour.Equals("2"))//泡沫箱 // { // decimal pmxAmount = Math.Ceiling(qty / packQty); // pmamount = pmamount + pmxAmount; // } // } // } // //新增分录 判断两种箱套数量是否为空 // if (slamount != 0) // { // // 目标单添加新行,并接受源单字段值 // DynamicObject newRow = new DynamicObject(mainEntity.DynamicObjectType); // directEntry.Add(newRow); // //根据组织查询对应 箱套 // string sql = string.Format(@"select fmaterialid from t_bd_material where fnumber='07040000' and fuseorgid={0}", orgId); // long result = DBUtils.ExecuteScalar<long>(base.Context, sql, -1, null); // //调入货主类型 string // string ownerType = Convert.ToString(item["OwnerTypeIdHead"]); // //调出货主类型 string // string ownerOutType = Convert.ToString(item["OwnerTypeOutIdHead"]); // //调入货主 DynamicObject // DynamicObject owner = item["OwnerIdHead"] as DynamicObject; // //调出货主 DynamicObject // DynamicObject ownerOut = item["OwnerOutIdHead"] as DynamicObject; // //调入保管者类型 // string keeperType = item["OwnerTypeIdHead"] as string; // //调出保管者类型 // string keeperOutType = entryEnd["KeeperTypeId"] as string; // //调入保管者 // DynamicObject keeper = entryEnd["KeeperId"] as DynamicObject; // //调出保管者 // DynamicObject keeperOut = entryEnd["KeeperOutId"] as DynamicObject; // //调拨数量基本单位 BaseQty // decimal baseQty = Convert.ToDecimal( entryEnd["BaseQty"]); // //组织基础资料对象 // if (result !=0 && result != -1) // { // IMetaDataService metaService = ServiceHelper.GetService<IMetaDataService>();//元数据服务 // IViewService view = ServiceHelper.GetService<IViewService>();//界面服务 // FormMetadata Meta = metaService.Load(base.Context, "BD_MATERIAL") as FormMetadata;//获取基础资料元数据 // DynamicObject BasicObject = view.LoadSingle(base.Context, result, Meta.BusinessInfo.GetDynamicObjectType()); // //物料ID // long materialId = Convert.ToInt64(BasicObject["Id"]); // // 填写字段值 // DynamicObjectCollection materialStock = BasicObject["MaterialStock"] as DynamicObjectCollection; // DynamicObjectCollection materialBase = BasicObject["MaterialBase"] as DynamicObjectCollection; // //基本单位 // foreach(DynamicObject base2 in materialBase) // { // DynamicObject baseUnit = base2["BaseUnitId"] as DynamicObject; // newRow["BaseUnitId"] =baseUnit; // } // //单位 物料 // foreach (DynamicObject base1 in materialStock) // { // DynamicObject unit = base1["StoreUnitID"] as DynamicObject; // long unitId = Convert.ToInt64(unit["Id"]); // newRow["MaterialId"] = BasicObject; // newRow["MaterialId_Id"] = materialId; // newRow["QTY"] = slamount; // newRow["UnitId"] = unit; // newRow["UnitId_Id"] = unitId; // newRow["Seq"] = directEntry.Count; // //调入货主 // newRow["OwnerId"] = owner; // //调入货主类型 // newRow["OwnerTypeId"] = ownerType; // //调处货主 // newRow["FOwnerOutId"] = ownerOut; // //调出货主类型 // newRow["OwnerTypeOutId"] = ownerOutType; // //调入保管者类型 // newRow["KeeperTypeId"] = keeperOutType; // //调出保管者类型 // newRow["KeeperTypeOutId"] = keeperOutType; // //调入保管者 // newRow["KeeperId"] = owner; // //调出保管者 // newRow["KeeperOutId"] = ownerOut; // //调出数量(基本单位) // newRow["BaseQty"] = baseQty; // } // } // } // if(pmamount != 0) // { // // 目标单添加新行 // DynamicObject newRow = new DynamicObject(entryEnd.DynamicObjectType); // directEntry.Add(newRow); // //根据组织查询对应 箱套 // string sql = string.Format(@"select fmaterialid from t_bd_material where fnumber='07040004' and fuseorgid={0}", orgId); // long result = DBUtils.ExecuteScalar<long>(base.Context, sql, -1, null); // //组织基础资料对象 // if (result != 0 && result != -1) // { // IMetaDataService metaService = ServiceHelper.GetService<IMetaDataService>();//元数据服务 // IViewService view = ServiceHelper.GetService<IViewService>();//界面服务 // FormMetadata Meta = metaService.Load(base.Context, "BD_MATERIAL") as FormMetadata;//获取基础资料元数据 // DynamicObject BasicObject = view.LoadSingle(base.Context, result, Meta.BusinessInfo.GetDynamicObjectType()); // //物料ID // long materialId = Convert.ToInt64(BasicObject["Id"]); // // 填写字段值 // DynamicObjectCollection materialStock = BasicObject["MaterialStock"] as DynamicObjectCollection; // foreach(DynamicObject base1 in materialStock) // { // DynamicObject unit = base1["StoreUnitID"] as DynamicObject; // long unitId = Convert.ToInt64(unit["Id"]); // newRow["MaterialId"] = BasicObject; // newRow["MaterialId_Id"] = materialId; // newRow["QTY"] = pmamount; // newRow["UnitId"] = unit; // newRow["UnitId_Id"] = unitId; // newRow["Seq"] = directEntry.Count; // } // } // } // // TODO: 逐个填写其他字段值,示例代码略 // } //} public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); // 获取生成的全部下游单据 ExtendedDataEntity[] billDataEntitys = e.Result.FindByEntityKey("FBillHead"); Entity mainEntity = e.TargetBusinessInfo.GetEntity("FBillEntry"); Entity srcFirstEntity = e.SourceBusinessInfo.GetEntity("FSaleOrderEntry"); // 对下游单据,逐张单据进行处理 foreach (var item in billDataEntitys) { DynamicObjectCollection directEntry = item["TransferDirectEntry"] as DynamicObjectCollection; //合并之后的分录 为了不遍历每次增加 DynamicObject entryEnd = directEntry[0] as DynamicObject; //获取目标单组织 sql中使用 DynamicObject org = item["StockOrgId"] as DynamicObject; long orgId = Convert.ToInt64(org["Id"]); decimal slamount = 0; //塑料箱总数 decimal pmamount = 0; //泡沫箱总数 for (int i = 0; i < directEntry.Count; i++) { //目标单分录 DynamicObject entry = directEntry[i] as DynamicObject; //目标单物料 DynamicObject material = entry["MaterialId"] as DynamicObject; //目标单调拨数量 decimal qty = Convert.ToDecimal(entry["QTY"]); //物料获取装箱数 decimal packQty = Convert.ToDecimal(material["FPACKQTY"]); //物料获取箱套类型 DynamicObjectCollection materialBase = material["MaterialBase"] as DynamicObjectCollection; foreach (DynamicObject colourAll in materialBase) { string colour = Convert.ToString(colourAll["FBOXCOLOUR"]); if (colour.Equals("1"))//塑料箱 { decimal slxAmount = Math.Ceiling(qty / packQty); slamount = slamount + slxAmount; } if (colour.Equals("2"))//泡沫箱 { decimal pmxAmount = Math.Ceiling(qty / packQty); pmamount = pmamount + pmxAmount; } } } //新增分录 判断两种箱套数量是否为空 if (slamount != 0) { // 目标单添加新行,并接受源单字段值 DynamicObject newRow = new DynamicObject(mainEntity.DynamicObjectType); directEntry.Add(newRow); //根据组织查询对应 箱套 string sql = string.Format(@"select fmaterialid from t_bd_material where fnumber='07040000' and fuseorgid={0}", orgId); long result = DBUtils.ExecuteScalar <long>(base.Context, sql, -1, null); //调入货主类型 string string ownerType = Convert.ToString(item["OwnerTypeIdHead"]); //调出货主类型 string string ownerOutType = Convert.ToString(item["OwnerTypeOutIdHead"]); //调入货主 DynamicObject DynamicObject owner = entryEnd["OwnerId"] as DynamicObject; //调出货主 DynamicObject DynamicObject ownerOut = entryEnd["FOwnerOutId"] as DynamicObject; //调入保管者 DynamicObject keeper = entryEnd["KeeperId"] as DynamicObject; //调出保管者 DynamicObject keeperOut = entryEnd["KeeperOutId"] as DynamicObject; //调入保管者类型 string keeperType = entryEnd["OwnerTypeId"] as string; //调出保管者类型 string keeperOutType = entryEnd["KeeperTypeId"] as string; ////调拨数量基本单位 BaseQty //decimal baseQty = Convert.ToDecimal(entryEnd["BaseQty"]); //组织基础资料对象 if (result != 0 && result != -1) { IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务 IViewService view = ServiceHelper.GetService <IViewService>(); //界面服务 FormMetadata Meta = metaService.Load(base.Context, "BD_MATERIAL") as FormMetadata; //获取基础资料元数据 DynamicObject BasicObject = view.LoadSingle(base.Context, result, Meta.BusinessInfo.GetDynamicObjectType()); //物料ID long materialId = Convert.ToInt64(BasicObject["Id"]); // 填写字段值 DynamicObjectCollection materialStock = BasicObject["MaterialStock"] as DynamicObjectCollection; DynamicObjectCollection materialBase = BasicObject["MaterialBase"] as DynamicObjectCollection; ////基本单位 //foreach (DynamicObject base2 in materialBase) //{ // DynamicObject baseUnit = base2["BaseUnitId"] as DynamicObject; // newRow["BaseUnitId"] = baseUnit; //} //单位 物料 foreach (DynamicObject base1 in materialStock) { DynamicObject unit = base1["StoreUnitID"] as DynamicObject; long unitId = Convert.ToInt64(unit["Id"]); newRow["MaterialId"] = BasicObject; newRow["MaterialId_Id"] = materialId; newRow["QTY"] = slamount; newRow["UnitId"] = unit; newRow["UnitId_Id"] = unitId; newRow["Seq"] = directEntry.Count; newRow["DestMaterialId"] = BasicObject; newRow["BaseUnitId"] = unit; newRow["BaseUnitId_Id"] = unitId; //BaseUnitId //调入货主 newRow["OwnerId"] = owner; //调入货主类型 newRow["OwnerTypeId"] = ownerType; //调处货主 newRow["FOwnerOutId"] = ownerOut; //调出货主类型 newRow["OwnerTypeOutId"] = ownerOutType; //调入保管者类型 newRow["KeeperTypeId"] = keeperOutType; //调出保管者类型 newRow["KeeperTypeOutId"] = keeperOutType; //调入保管者 newRow["KeeperId"] = owner; //调出保管者 newRow["KeeperOutId"] = ownerOut; //调出数量(基本单位) newRow["BaseQty"] = slamount; } } } if (pmamount != 0) { // 目标单添加新行 DynamicObject newRow = new DynamicObject(entryEnd.DynamicObjectType); directEntry.Add(newRow); //根据组织查询对应 箱套 string sql = string.Format(@"select fmaterialid from t_bd_material where fnumber='07040004' and fuseorgid={0}", orgId); long result = DBUtils.ExecuteScalar <long>(base.Context, sql, -1, null); //组织基础资料对象 if (result != 0 && result != -1) { IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务 IViewService view = ServiceHelper.GetService <IViewService>(); //界面服务 FormMetadata Meta = metaService.Load(base.Context, "BD_MATERIAL") as FormMetadata; //获取基础资料元数据 DynamicObject BasicObject = view.LoadSingle(base.Context, result, Meta.BusinessInfo.GetDynamicObjectType()); //物料ID long materialId = Convert.ToInt64(BasicObject["Id"]); // 填写字段值 DynamicObjectCollection materialStock = BasicObject["MaterialStock"] as DynamicObjectCollection; foreach (DynamicObject base1 in materialStock) { DynamicObject unit = base1["StoreUnitID"] as DynamicObject; long unitId = Convert.ToInt64(unit["Id"]); newRow["MaterialId"] = BasicObject; newRow["MaterialId_Id"] = materialId; newRow["QTY"] = pmamount; newRow["UnitId"] = unit; newRow["UnitId_Id"] = unitId; newRow["Seq"] = directEntry.Count; newRow["DestMaterialId"] = BasicObject; //调出数量(基本单位) newRow["BaseQty"] = pmamount; } } } } }
public override void AfterConvert(AfterConvertEventArgs e) { }
private void SplitData(AfterConvertEventArgs e) { ExtendedDataEntity[] source = e.Result.FindByEntityKey("FEntity"); string billTypeId = (source.FirstOrDefault <ExtendedDataEntity>().DataEntity.Parent as DynamicObject).GetDynamicObjectItemValue <string>("FBillTypeID_Id", null); DynamicObject dynamicObject = Kingdee.K3.MFG.App.AppServiceContext.BusinessDataService.LoadBillTypePara(base.Context, "InspectBillTPS", billTypeId, true); string str2 = dynamicObject.GetDynamicObjectItemValue <string>("SPLITBY", null); if ((!dynamicObject.IsNullOrEmpty() && !str2.EqualsIgnoreCase("A")) && !str2.IsNullOrEmptyOrWhiteSpace()) { List <long> materialIds = (from s in source select s.DataEntity.GetDynamicValue <long>("MaterialId_Id", 0L)).ToList <long>(); Dictionary <long, Tuple <long, long> > inspectorInfo = Kingdee.K3.MFG.App.AppServiceContext.GetService <IInspectService>().GetInspectorInfo(base.Context, materialIds); if (!inspectorInfo.IsEmpty <KeyValuePair <long, Tuple <long, long> > >()) { ExtendedDataEntity[] entityArray2 = e.Result.FindByEntityKey("FBillHead"); List <ExtendedDataEntity> list2 = new List <ExtendedDataEntity>(); foreach (ExtendedDataEntity entity in entityArray2) { Dictionary <long, ExtendedDataEntity> dictionary2 = new Dictionary <long, ExtendedDataEntity>(); foreach (DynamicObject obj3 in entity.DataEntity.GetDynamicValue <DynamicObjectCollection>("Entity", null)) { Tuple <long, long> tuple; long key = obj3.GetDynamicValue <long>("MaterialId_Id", 0L); if (inspectorInfo.TryGetValue(key, out tuple)) { long num2 = str2.EqualsIgnoreCase("B") ? tuple.Item1 : tuple.Item2; if (dictionary2.Keys.Contains <long>(num2)) { dictionary2[num2].DataEntity.GetDynamicValue <DynamicObjectCollection>("Entity", null).Add(obj3); } else { ExtendedDataEntity entity2 = (ExtendedDataEntity)entity.Clone(); DynamicObjectCollection objects3 = entity2.DataEntity.GetDynamicValue <DynamicObjectCollection>("Entity", null); objects3.Clear(); objects3.Add(obj3); if (str2.EqualsIgnoreCase("B")) { entity2.DataEntity.SetDynamicObjectItemValue("InspectGroupId_Id", tuple.Item1); } else if (str2.EqualsIgnoreCase("C")) { entity2.DataEntity.SetDynamicObjectItemValue("InspectorId_Id", tuple.Item2); } dictionary2.Add(num2, entity2); } } } list2.AddRange(dictionary2.Values); dictionary2.Clear(); } DynamicObject[] col = (from s in list2 select s.DataEntity).ToArray <DynamicObject>(); if (!col.IsEmpty <DynamicObject>()) { Kingdee.K3.MFG.App.AppServiceContext.DBService.LoadReferenceObject(base.Context, col, col.FirstOrDefault <DynamicObject>().DynamicObjectType, true); for (int i = 0; i < entityArray2.Length; i++) { e.Result.RemoveExtendedDataEntity("FBillHead", 0);//原来e.Result.RemoveExtendedDataEntity("FBillHead",i) } e.Result.AddExtendedDataEntities("FBillHead", list2.ToArray()); } } } }
public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); }
public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); if (ConvertFldKey == null || ConvertFldKey.Count == 0) { return; } Field lotFld = e.TargetBusinessInfo.GetField(this.LotNoFldKey); Field matFld = e.TargetBusinessInfo.GetField(this.MatFldKey); Field auxFld = e.TargetBusinessInfo.GetField(this.AuxPropFldKey); Field OrgFld = e.TargetBusinessInfo.GetField(this.OrgIdFldKey);//增加组织属性 if (lotFld == null || matFld == null) { return; } ExtendedDataEntity[] HandDatas = e.Result.FindByEntityKey(OrgFld.EntityKey);//获取表单字段 long OrgVal = 0; foreach (ExtendedDataEntity HandData in HandDatas) { if (OrgFld != null)//取组织值 { var Org = OrgFld.GetFieldValue(HandData.DataEntity) as DynamicObject; if (Org != null) { OrgVal = Convert.ToInt64(Org["Id"]); } } ExtendedDataEntity[] dataEntities = e.Result.FindByEntityKey(lotFld.EntityKey); foreach (ExtendedDataEntity item in dataEntities) { var lotVal = lotFld.GetFieldValue(item.DataEntity); if (lotVal == null || string.IsNullOrEmpty(lotVal.ToString())) { continue; } var matVal = matFld.GetFieldValue(item.DataEntity) as DynamicObject; if (matVal == null) { continue; } JNQTYRatePara para = new JNQTYRatePara(); para.MaterialId = Convert.ToInt64(matVal["Id"]); para.MaterialNumber = Convert.ToString(matVal["Number"]); para.LotNumber = lotVal.ToString(); para.OrgId = OrgVal; if (auxFld != null) { var aux = auxFld.GetFieldValue(item.DataEntity) as DynamicObject; if (aux != null) { para.AuxPropId = Convert.ToInt64(aux["Id"]); } } decimal rate = YDLCommServiceHelper.MaterialUnitEnzymes(this.Context, para); if (rate == 0) { continue; } foreach (var fld in ConvertFldKey) { Field srcQtyFld = e.TargetBusinessInfo.GetField(fld.SrcQtyFldKey); Field destQtyFld = e.TargetBusinessInfo.GetField(fld.DestQtyFldKey); Field rateFld = e.TargetBusinessInfo.GetField(fld.ConverRateFldKey); if (srcQtyFld == null || destQtyFld == null || rateFld == null) { continue; } decimal srcQty = Convert.ToDecimal(srcQtyFld.DynamicProperty.GetValue(item.DataEntity)); rateFld.DynamicProperty.SetValue(item.DataEntity, rate); destQtyFld.DynamicProperty.SetValue(item.DataEntity, rate * srcQty); } } } }
public override void AfterConvert(AfterConvertEventArgs e) { base.AfterConvert(e); ServiceHelper.GetService <IMetaDataService>(); ExtendedDataEntity[] array = e.Result.FindByEntityKey("FBillHead"); for (int i = 0; i < array.Length; i++) { DynamicObjectCollection dynamicObjectCollection = array[i].DataEntity["TreeEntity"] as DynamicObjectCollection; for (int p = 0; p < dynamicObjectCollection.Count(); p++) { string FMaterialId = Convert.ToString(dynamicObjectCollection[p]["MaterialId_Id"]); //物料编码 DynamicObject bomObj = dynamicObjectCollection[p]["BomId"] as DynamicObject; string FNumber = Convert.ToString(bomObj["Number"]); //BOM版本 if (!String.IsNullOrEmpty(FMaterialId.Trim()) && !String.IsNullOrEmpty(FNumber.Trim())) { DynamicObject obj = getdataObj(FMaterialId, FNumber); if (obj != null) { double EC = Convert.ToDouble(obj["F_SCFG_EC"]); //延长米系数 dynamicObjectCollection[p]["F_scfg_EC"] = EC; double num = Convert.ToDouble(dynamicObjectCollection[0]["Qty"]); //数量 double ycm = EC * num; dynamicObjectCollection[p]["F_scfg_Qty1"] = ycm; //延长米 array[i]["F_scfg_MaterialId"] = FMaterialId; //物料编码 if (Convert.ToDouble(obj["F_SCFG_DIANYUN"]) != 0.00) { array[i]["F_scfg_Dianyun"] = getWorkHourData(ycm, Convert.ToDouble(obj["F_SCFG_DIANYUN"]));//电晕工时 } if (Convert.ToDouble(obj["F_SCFG_YINSHUASHANGBAN"]) != 0.00) { array[i]["F_scfg_Yinshuashangban"] = getWorkHourData(ycm, Convert.ToDouble(obj["F_SCFG_YINSHUASHANGBAN"]));//印刷上版(min) } if (Convert.ToDouble(obj["F_SCFG_YINSHUA"]) != 0.00) { array[i]["F_scfg_Yinshua"] = getWorkHourData(ycm, Convert.ToDouble(obj["F_SCFG_YINSHUA"]));//印刷(m/min) } if (Convert.ToDouble(obj["F_SCFG_TUBU"]) != 0.00) { array[i]["F_scfg_Tubu"] = getWorkHourData(ycm, Convert.ToDouble(obj["F_SCFG_TUBU"]));//涂布(m/min) } if (Convert.ToDouble(obj["F_SCFG_FUHE1"]) != 0.00) { array[i]["F_scfg_Fuhe1"] = getWorkHourData(ycm, Convert.ToDouble(obj["F_SCFG_FUHE1"]));//复合一(m/min) } if (Convert.ToDouble(obj["F_SCFG_FUHE2"]) != 0.00) { array[i]["F_scfg_Fuhe2"] = getWorkHourData(ycm, Convert.ToDouble(obj["F_SCFG_FUHE2"]));//复合二(m/min) } if (Convert.ToDouble(obj["F_SCFG_FUHE3"]) != 0.00) { array[i]["F_scfg_Fuhe3"] = getWorkHourData(ycm, Convert.ToDouble(obj["F_SCFG_FUHE3"]));//复合三(m/min) } if (Convert.ToDouble(obj["F_SCFG_FENQIE"]) != 0.00) { array[i]["F_scfg_Fenqie"] = getWorkHourData(ycm, Convert.ToDouble(obj["F_SCFG_FENQIE"]));//分切(m/min) } if (Convert.ToDouble(obj["F_SCFG_FENQIEZL"]) != 0.00) { array[i]["F_scfg_Fenqiezl"] = getWorkHourFQData(num, Convert.ToDouble(obj["F_SCFG_FENQIEZL"]));//分切重量(kg/h) } } } } } }