Esempio n. 1
0
        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);
                    }
                }
            }
        }
Esempio n. 3
0
 /// <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
         }
     }
 }
Esempio n. 4
0
        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());
            }
        }
Esempio n. 5
0
 /// <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有值时)
     }
 }
Esempio n. 6
0
        /// <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"];
                    }
                }
            }
        }
Esempio n. 7
0
        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();
        }
Esempio n. 8
0
        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);
                }
            }
        }
Esempio n. 9
0
        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);
        }