Example #1
0
        public DynamicObject GetSimpleExtensionByNumber(String number)
        {
            FormMetadata meta = MetaDataServiceHelper.Load(context, Constant.FormID.WJ_Extension) as FormMetadata;

            // 构建查询参数,设置过滤条件
            QueryBuilderParemeter queryParam = new QueryBuilderParemeter
            {
                FormId       = Constant.FormID.WJ_Extension,
                BusinessInfo = meta.BusinessInfo,

                FilterClauseWihtKey = string.Format(" {0} = '{1}' ",
                                                    meta.BusinessInfo.GetForm().NumberFieldKey,
                                                    number)
            };

            var bdObjs = BusinessDataServiceHelper.Load(context,
                                                        meta.BusinessInfo.GetDynamicObjectType(),
                                                        queryParam);

            if (bdObjs.Length == 1)
            {
                return(bdObjs.FirstOrDefault());
            }
            else if (bdObjs.Length == 0)
            {
                return(null);
            }
            else
            {
                throw new Exception("编码 " + number + " formId " + Constant.FormID.WJ_Extension + "找到多个数据");
            }
        }
Example #2
0
        public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
        {
            base.BeforeExecuteOperationTransaction(e);

            if (e.DataEntitys.Count() < 1)
            {
                return;
            }
            var dataEntities = e.DataEntitys.ToArray();

            foreach (DynamicObject dataEntry in dataEntities)
            {
                DynamicObject BillEntry = dataEntry["BillEntry"].AsType <DynamicObjectCollection>().First();
                //获取收货通知数据
                string OrginBillNo  = BillEntry["OriginBillNo"].ToString();
                string OriginFormId = "BAH_WMS_InNotice";

                FormMetadata          meta       = MetaDataServiceHelper.Load(this.Context, OriginFormId) as FormMetadata;
                QueryBuilderParemeter queryParam = new QueryBuilderParemeter();
                queryParam.FormId       = OriginFormId;
                queryParam.BusinessInfo = meta.BusinessInfo;

                queryParam.FilterClauseWihtKey = string.Format(" {0} = '{1}' ", meta.BusinessInfo.GetBillNoField().Key, OrginBillNo);

                var objs = BusinessDataServiceHelper.Load(this.Context, meta.BusinessInfo.GetDynamicObjectType(), queryParam);

                if (objs[0]["FBAHGenTargetStatus"].ToString().Equals('B') == true)
                {
                    throw new Exception(string.Format("编号为{0}的收货通知已生成目标单据,不允许反审核!", OrginBillNo));
                }
            }
        }
Example #3
0
        private DynamicObject getbandobject(Context ctx, JNBandPara actband)
        {
            int actbandid = actband.bandid;

            DynamicObject[] bandIDs = BusinessDataServiceHelper.Load(ctx, new object[] { actbandid }, (MetaDataServiceHelper.Load(ctx, "CN_BANKACNT") as FormMetadata).BusinessInfo.GetDynamicObjectType());
            return(bandIDs.FirstOrDefault());
        }
        /// <summary>
        /// 提交
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="FormID"></param>
        /// <param name="ids"></param>
        /// <returns></returns>
        public IOperationResult SubmitBill(Context ctx, string FormID, object[] ids)
        {
            IMetaDataService metaService  = ServiceHelper.GetService <IMetaDataService>(); //元数据服务
            FormMetadata     Meta         = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据
            OperateOption    submitOption = OperateOption.Create();
            IOperationResult submitResult = BusinessDataServiceHelper.Submit(ctx, Meta.BusinessInfo, ids, "Submit", submitOption);

            return(submitResult);

            //IMetaDataService metaService = ServiceHelper.GetService<IMetaDataService>();
            //FormMetadata targetBillMeta = metaService.Load(ctx, FormID) as FormMetadata;
            //// 构建保存操作参数:设置操作选项值,忽略交互提示
            //OperateOption submitOption = OperateOption.Create();
            //// 忽略全部需要交互性质的提示,直接保存;
            ////saveOption.SetIgnoreWarning(true);              // 忽略交互提示
            ////saveOption.SetInteractionFlag(this.Option.GetInteractionFlag());        // 如果有交互,传入用户选择的交互结果
            //// using Kingdee.BOS.Core.Interaction;
            ////saveOption.SetIgnoreInteractionFlag(this.Option.GetIgnoreInteractionFlag());
            ////// 如下代码,强制要求忽略交互提示(演示案例不需要,注释掉)
            //submitOption.SetIgnoreWarning(true);
            ////// using Kingdee.BOS.Core.Interaction;
            //submitOption.SetIgnoreInteractionFlag(true);
            //// 调用保存服务,自动保存
            //ISubmitService submitService = ServiceHelper.GetService<ISubmitService>();
            //IOperationResult submitResult = submitService.Submit(ctx, targetBillMeta.BusinessInfo, ids, "Submit", submitOption);
            //return submitResult;
        }
Example #5
0
        public override void OnParseFilterOptions(ParseFilterOptionsEventArgs e)
        {
            string MaterialQualityDTF       = Convert.ToString(e.TargetData["F_PAEZ_Material_Id"]);
            string MaterialQualityFilterDTF = "";

            //先查物料表 查出物料ID 然后去即时库存表查
            DynamicObject[] lotMasters = null;
            string          filter     = string.Format("F_BEM_CZ ='{0}'", MaterialQualityDTF);
            OQLFilter       of         = OQLFilter.CreateHeadEntityFilter(filter);

            lotMasters = BusinessDataServiceHelper.Load(this.Context, "BD_MATERIAL", null, of);

            if (lotMasters.Count() > 0)
            {
                foreach (DynamicObject objma in lotMasters)
                {
                    materialList.Add(Convert.ToString(objma[0]));
                }
            }

            MaterialQualityFilterDTF = String.Format(" FMATERIALID in ('{0}')", string.Join("','", materialList));

            if (String.IsNullOrEmpty(e.FilterOptionsSQL))
            {
                e.FilterOptionsSQL = MaterialQualityFilterDTF;
            }
        }
        private void SaveCheckBill(IBillView billView, OperateOption saveOption)
        {
            // 设置FormId
            Form form = billView.BillBusinessInfo.GetForm();

            if (form.FormIdDynamicProperty != null)
            {
                form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id);
            }

            // 调用保存操作
            IOperationResult saveResult = BusinessDataServiceHelper.Save(this.Context, billView.BillBusinessInfo, billView.Model.DataObject, saveOption, "Save");

            if (saveResult.IsSuccess)
            {
                object[] primaryKeys = saveResult.SuccessDataEnity.Select(u => u.GetPrimaryKeyValue()).ToArray();

                // 提交
                OperateOption    submitOption = OperateOption.Create();
                IOperationResult submitResult = BusinessDataServiceHelper.Submit(this.Context, billView.BillBusinessInfo, primaryKeys, "Submit", submitOption);
                if (submitResult.IsSuccess)
                {
                    // 审核
                    OperateOption    auditOption = OperateOption.Create();
                    IOperationResult auditResult = BusinessDataServiceHelper.Audit(this.Context, billView.BillBusinessInfo, primaryKeys, auditOption);
                }
            }
        }
        private void GetCustInfo(long lCustid)
        {
            List <SelectorItemInfo> selector = new List <SelectorItemInfo> {
                new SelectorItemInfo("FWEBSITE"),
                new SelectorItemInfo("FFAX"),
                new SelectorItemInfo("FADDRESS")
            };
            OQLFilter ofilter = OQLFilter.CreateHeadEntityFilter($"FCustID={lCustid}");

            DynamicObject[] objArray = BusinessDataServiceHelper.Load(base.Context, "CRM_CUST", selector, ofilter);
            string          str      = "";
            string          str2     = "";
            string          str3     = "";

            if ((objArray != null) && (objArray.Length > 0))
            {
                DynamicObject obj2 = objArray[0];
                str  = obj2["WEBSITE"].ToString();
                str2 = obj2["FAX"].ToString();
                str3 = obj2["ADDRESS"].ToString();
                base.View.Model.SetValue("FHomePage", str);
                base.View.Model.SetValue("FFax", str2);
                base.View.Model.SetValue("FAddress", str3);
            }
        }
Example #8
0
        public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e)
        {
            var billGroups = e.DataEntitys;

            foreach (var billGroup in billGroups)
            {
                DynamicObjectCollection BILLENTRYDATAs = billGroup["PAYBILLENTRY"] as DynamicObjectCollection;
                foreach (var BILLENTRYDATA in BILLENTRYDATAs)
                {
                    string FBandStatus = Convert.ToString(BILLENTRYDATA["BankStatus"]);

                    string FSubmitStatus = Convert.ToString(BILLENTRYDATA["SubmitStatus"]);

                    Int32 EntryID = Convert.ToInt32(BILLENTRYDATA["Id"]);

                    if ((FBandStatus == "D" || FBandStatus == "E") && FSubmitStatus == "B")
                    {
                        BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FBankStatus", "A", "FEntryID", new object[] { EntryID });


                        BusinessDataServiceHelper.SetState(this.Context, "T_AP_PAYBILLENTRY_B", "FSubmitStatus", "A", "FEntryID", new object[] { EntryID });
                    }
                }
            }
        }
Example #9
0
 public override void BeginOperationTransaction(Kingdee.BOS.Core.DynamicForm.PlugIn.Args.BeginOperationTransactionArgs e)
 {
     base.BeginOperationTransaction(e);
     if (e.DataEntitys == null || e.DataEntitys.Count() <= 0)
     {
         return;
     }
     foreach (DynamicObject data in e.DataEntitys)
     {
         string        FCONTACTUNITTYPE = Convert.ToString(data["CONTACTUNITTYPE"]);
         int           FCONTACTUNIT_Id  = Convert.ToInt32(data["CONTACTUNIT_Id"]);
         DynamicObject FCONTACTUNIT     = data["CONTACTUNIT"] as DynamicObject;
         DynamicObject FJNFistSaler     = data["FJNFistSaler"] as DynamicObject;
         if (FCONTACTUNITTYPE == "BD_Customer" && FCONTACTUNIT != null && FJNFistSaler == null)
         {
             FormMetadata  formMetadata = MetaDataServiceHelper.Load(this.Context, "BD_Customer") as FormMetadata;
             DynamicObject CustObject   = BusinessDataServiceHelper.LoadSingle(
                 this.Context,
                 FCONTACTUNIT_Id,
                 formMetadata.BusinessInfo.GetDynamicObjectType());
             if (CustObject != null)
             {
                 DynamicObject Saler = CustObject["JN_SalesId"] as DynamicObject;
                 if (Saler != null)
                 {
                     int    Saler_Id = Convert.ToInt32(Saler["id"]);
                     int    billid   = Convert.ToInt32(data["id"]);
                     string strSQL   = string.Format("/*dialect*/update T_AR_RECEIVEBILL set FJNFISTSALER ={0} where fid={1}", Saler_Id, billid);
                     DBUtils.Execute(this.Context, strSQL);
                 }
             }
         }
         //AppServiceContext.SaveService.Save(this.Context, formMetadata.BusinessInfo, dataObjects);
     }
 }
Example #10
0
        }//end static method

        public static Context CreateInstanceFromCache(this Context ctx, string dataCenterId, long userId)
        {
            Context contextByDataCenterId = DataCenterService.GetDataCenterContextFromCache(dataCenterId);

            //处理用户登录名
            {
                FormMetadata metadata     = FormMetaDataCache.GetCachedFormMetaData(contextByDataCenterId, FormIdConst.SEC_User);
                BusinessInfo businessInfo = metadata.BusinessInfo.GetSubBusinessInfo(new List <string> {
                    "FNumber", "FUserAccount", "FName"
                });
                DynamicObject dataObject = BusinessDataServiceHelper.LoadFromCache(contextByDataCenterId, new object[] { userId }, businessInfo.GetDynamicObjectType()).FirstOrDefault();
                contextByDataCenterId.UserId = dataObject.PkId <long>();
                if (businessInfo.GetField("FNumber") != null)
                {
                    contextByDataCenterId.LoginName = dataObject.FieldProperty <string>(businessInfo.GetField("FNumber"));
                }
                if (businessInfo.GetField("FUserAccount") != null)
                {
                    contextByDataCenterId.LoginName = dataObject.FieldProperty <string>(businessInfo.GetField("FUserAccount"));
                }
                contextByDataCenterId.UserName = dataObject.FieldProperty <string>(businessInfo.GetField("FName"));
            }

            return(contextByDataCenterId);
        }//end static method
        /// <summary>
        /// 禁用单据
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="FormID">单据标识</param>
        /// <param name="ids">禁用单据内码集合</param>
        /// <param name="pkId">表主键列</param>
        /// <param name="tableName">表名</param>
        /// <param name="fieldName">禁用状态列</param>
        /// <param name="fieldValue">禁用值</param>
        /// <returns></returns>
        public void SetState(Context ctx, string FormID, object[] ids, string pkId, string tableName, string fieldName, string fieldValue)
        {
            IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务
            FormMetadata     Meta        = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据
            OperateOption    AuditOption = OperateOption.Create();

            BusinessDataServiceHelper.SetState(ctx, tableName, fieldName, fieldValue, pkId, ids);
        }
Example #12
0
        //数据同步
        public void dataSync(DynamicObject obj)
        {
            IBillView billView = this.CreateBillView(this.Context);

            ((IBillViewService)billView).LoadData();
            DynamicFormViewPlugInProxy eventProxy = billView.GetService <DynamicFormViewPlugInProxy>();

            eventProxy.FireOnLoad();
            this.FillBillPropertys(this.Context, billView, obj);
            IOperationResult saveResult = null;

            object[]         primaryKeys = null;
            IOperationResult auditResult = null;

            if (this.FormOperation.Operation.Equals("Save"))//保存
            {
                if (isExsit(Convert.ToInt64(obj["Id"])))
                {
                    updateAssistData(Convert.ToInt64(obj["Id"]), Convert.ToString(obj["Number"]), Convert.ToString(obj["Name"]));  //存在则修改
                }
                else  //不存则新增
                      // 调用保存操作
                {
                    OperateOption saveOption = OperateOption.Create();
                    // 调用保存操作
                    saveResult = BusinessDataServiceHelper.Save(this.Context, billView.BillBusinessInfo, billView.Model.DataObject, saveOption, "Save");
                }
            }
            else if (this.FormOperation.Operation.Equals("Submit"))//提交
            {
                updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "B");
            }
            else if (this.FormOperation.Operation.Equals("Audit"))//审核
            {
                updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "C");
            }
            else if (this.FormOperation.Operation.Equals("UnAudit"))          //反审核
            {
                if (getExsitOldData(Convert.ToString(obj["Number"])) != null) //判断辅助资料表是否有对应的老数据
                {
                    DynamicObject oo = getExsitOldData(Convert.ToString(obj["Number"]));
                    updateAssistDataOld(Convert.ToString(oo["fentryid"]), Convert.ToString(obj["Number"]));//如果存在则把外键编码字段关联上
                }
                updateAssistDataStatus(Convert.ToInt64(obj["Id"]), "D");
            }
            else if (this.FormOperation.Operation.Equals("Forbid"))//禁用
            {
                updateAssistForbidStatus(Convert.ToInt64(obj["Id"]), "B");
            }
            else if (this.FormOperation.Operation.Equals("Enable"))//反禁用
            {
                updateAssistForbidStatus(Convert.ToInt64(obj["Id"]), "A");
            }
            else if (this.FormOperation.Operation.Equals("Delete"))//删除
            {
                deleteData(Convert.ToInt64(obj["Id"]));
            }
        }
Example #13
0
        /// <summary>
        /// 另一种保存服务
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="FormID"></param>
        /// <param name="dyObject"></param>
        /// <returns></returns>
        public IOperationResult BatchSaveBill(Context ctx, string FormID, DynamicObject[] dyObject)
        {
            IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务
            FormMetadata     Meta        = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据
            OperateOption    SaveOption  = OperateOption.Create();
            IOperationResult SaveResult  = BusinessDataServiceHelper.Save(ctx, Meta.BusinessInfo, dyObject, SaveOption, "Save");

            return(SaveResult);
        }
        public IOperationResult AuditBill(Context ctx, string FormID, object[] ids)
        {
            IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务
            FormMetadata     Meta        = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据
            OperateOption    AuditOption = OperateOption.Create();
            IOperationResult AuditResult = BusinessDataServiceHelper.Audit(ctx, Meta.BusinessInfo, ids, AuditOption);

            return(AuditResult);
        }
Example #15
0
        }     //end method

        public static DynamicObject[] AutoSetBillNo(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, bool isUpdateMaxNum = true)
        {
            DynamicObject[] dataArray = dataObject.ToArray();
            if (dataArray.Any())
            {
                BusinessDataServiceHelper.GetBillNo(ctx, businessInfo, dataArray, isUpdateMaxNum);
            } //end if
            return(dataArray);
        }     //end method
Example #16
0
        /// <summary>
        /// 暂存单据
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="FormID"></param>
        /// <param name="dyObject"></param>
        /// <returns></returns>
        public IOperationResult DraftBill(Context ctx, string FormID, DynamicObject[] dyObject)
        {
            IMetaDataService metaService = ServiceHelper.GetService <IMetaDataService>(); //元数据服务
            FormMetadata     Meta        = metaService.Load(ctx, FormID) as FormMetadata; //获取元数据
            OperateOption    DraftOption = OperateOption.Create();
            IOperationResult DraftResult = BusinessDataServiceHelper.Draft(ctx, Meta.BusinessInfo, dyObject, DraftOption, "Draft");

            return(DraftResult);
        }
        /// <summary>
        /// 获取收货通知数据
        /// </summary>
        /// <param name="billno">收货通知单编号</param>
        /// <returns>返回服务结果。</returns>
        public ServiceResult ExecuteService(string billno)
        {
            var result = new ServiceResult <JSONObject>();
            var ctx    = this.KDContext.Session.AppContext;

            // 检查上下文对象
            if (this.IsContextExpired(result))
            {
                return(result);
            }
            // 检查传入参数
            if (string.IsNullOrWhiteSpace(billno))
            {
                result.Code    = (int)ResultCode.Fail;
                result.Message = "收货通知单编号不能为空!";
                return(result);
            }
            //获取相关信息
            try
            {
                //TODO:通过平台动态引擎获取数据
                var metadata       = FormMetaDataCache.GetCachedFormMetaData(ctx, "BAH_WMS_InNotice");
                var businessInfo   = metadata.BusinessInfo;
                var queryParameter = new QueryBuilderParemeter();
                queryParameter.FormId = businessInfo.GetForm().Id;
                queryParameter.FilterClauseWihtKey = "FDOCUMENTSTATUS = @FDOCUMENTSTATUS";
                queryParameter.SqlParams.Add(new SqlParam("@FDOCUMENTSTATUS", KDDbType.String, "C"));
                queryParameter.FilterClauseWihtKey = "FBillNo = @BillNo";
                queryParameter.SqlParams.Add(new SqlParam("@BillNo", KDDbType.String, billno));

                var               dataObjectCollection = BusinessDataServiceHelper.Load(ctx, businessInfo.GetDynamicObjectType(), queryParameter);
                JSONObject        Finaldata            = new JSONObject();
                List <JSONObject> return_data          = new List <JSONObject>();
                foreach (DynamicObject dataObject in dataObjectCollection)
                {
                    JSONObject data = new JSONObject();
                    data.Add("FID", dataObject["Id"].ToString());
                    data.Add("FNUMBER", dataObject["Number"].ToString());
                    data.Add("FName", dataObject["Name"].ToString());
                    return_data.Add(data);
                }
                Finaldata.Add("WareHouse", return_data);
                //返回数据
                result.Code    = (int)ResultCode.Success;
                result.Data    = Finaldata;
                result.Message = "成功返回数据!";
            }
            catch (Exception ex)
            {
                result.Code    = (int)ResultCode.Fail;
                result.Message = ex.Message;
            }
            return(result);
        }
Example #18
0
        }//end method

        public static void Delete(this IEnumerable <DynamicObject> dataObject, Context ctx, Func <DynamicObject, object> selector = null)
        {
            DynamicObject[] dataArray = dataObject.ToArray();
            if (dataArray.Any())
            {
                var group = dataArray.Select(data => new { DataEntity = data, DataType = data.DynamicObjectType })
                            .GroupBy(a => a.DataType)
                            .Select(g => new { DataType = g.Key, Ids = g.Select(a => a.DataEntity).Select(data => selector != null ? selector(data) : data.PkId()).ToArray() })
                            .ToList();

                group.ForEach(g => BusinessDataServiceHelper.Delete(ctx, g.Ids, g.DataType));
            } //end if
        }     //end method
Example #19
0
        }//end method

        public static IOperationResult DoNothing(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, string operationNumber, OperateOption option = null)
        {
            if (option == null)
            {
                option = OperateOption.Create();
            }
            option.SetIgnoreWarning(true);
            option.SetIgnoreInteractionFlag(true);

            IOperationResult result = BusinessDataServiceHelper.DoNothingWithDataEntity(ctx, businessInfo, dataObject.ToArray(), operationNumber, option);

            return(result);
        } //end method
Example #20
0
        /// <summary>
        /// 目标单单据构建完毕,且已经创建好与源单的关联关系之后,触发此事件
        /// </summary>
        /// <param name="e"></param>
        /// <remarks>
        /// 本事件的时机,刚好能够符合需求,
        /// 而AfterConvert事件,则在执行表单服务策略之后
        /// </remarks>
        public override void OnAfterCreateLink(CreateLinkEventArgs e)
        {
            // 目标单单据体元数据
            Entity entity = e.TargetBusinessInfo.GetEntity("FEntity");
            Entity es     = e.SourceBusinessInfo.GetEntity("FSaleOrderEntry");

            // 读取已经生成的付款单
            ExtendedDataEntity[] bills = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead");

            // 定义一个集合,存储新拆分出来的单据体行
            List <ExtendedDataEntity> newRows = new List <ExtendedDataEntity>();

            // 对目标单据进行循环
            foreach (var bill in bills)
            {
                // 取单据体集合
                DynamicObjectCollection rowObjs = entity.DynamicProperty.GetValue(bill.DataEntity)
                                                  as DynamicObjectCollection;
                // 对单据体进行循环:从后往前循环,新拆分的行,避开循环
                int      rowCount    = rowObjs.Count;
                int      newRowCount = 1;
                DateTime CreateDate  = Convert.ToDateTime(bill["CreateDate"]);
                for (int i = rowCount - 1; i >= 0; i--)
                {
                    DynamicObject rowObj = rowObjs[i];
                    //获取ID为149808的供应商(内蒙)
                    DynamicObject[] superIDs = BusinessDataServiceHelper.Load(this.Context, new object[] { 149808 }, (MetaDataServiceHelper.Load(this.Context, "BD_Supplier") as FormMetadata).BusinessInfo.GetDynamicObjectType());
                    rowObj["SuggestSupplierId"]    = superIDs[0];
                    rowObj["SuggestSupplierId_Id"] = 149808;
                    rowObj["SupplierId"]           = superIDs[0];
                    rowObj["SupplierId_Id"]        = 149808;

                    long          MaterialId = Convert.ToInt64(rowObj["MaterialId_Id"]);
                    long          SupplierId = 149808;
                    DynamicObject auxprop    = rowObj["AuxpropId"] as DynamicObject;
                    string        auxpropId  = "";
                    if (auxprop != null)
                    {
                        auxpropId = Convert.ToString(auxprop["F100001_Id"]);
                    }
                    DynamicObjectCollection prices = ServiceHelper.YDLCommServiceHelper.GetAuxpropPriceListId(this.Context, MaterialId, auxpropId, SupplierId, CreateDate);
                    if (prices.Count > 0)
                    {
                        rowObj["FTAXPRICE"]     = prices[0][2];
                        rowObj["EvaluatePrice"] = prices[0][1];
                        rowObj["FTAXRATE"]      = 17;
                    }
                }
            }
        }
        /// <summary>
        /// 提示是否分配
        /// </summary>
        /// <param name="_FCrmHolder"></param>
        /// <param name="_FCrmHdOrgID"></param>
        /// <param name="_FCrmHdDept"></param>
        private void ConfirmMsg()
        {
            string FDocumentStatus = CZ_GetValue("FDocumentStatus");

            if (FDocumentStatus == "Z")
            {
                this.View.BillModel.SetValue("FClueStatus", "2");
                return;
            }
            string _FCrmHolder  = CZ_GetValue("FCrmHolder", "Id");
            string _FCrmHdOrgID = CZ_GetValue("FCrmHdOrgID", "Id");
            string _FCrmHdDept  = CZ_GetValue("FCrmHdDept", "Id");

            if (_FCrmHolder != "" && _FCrmHdOrgID != "" && _FCrmHdDept != "")
            {
                string FCrmHolderName = CZ_GetValue("FCrmHolder", "Name");
                this.View.ShowMessage("是否确定将本条线索分配给" + FCrmHolderName + "?", MessageBoxOptions.YesNo,
                                      new Action <MessageBoxResult>((result) =>
                {
                    if (result == MessageBoxResult.Yes)
                    {
                        this.View.BillModel.SetValue("FClueStatus", "2");
                        //锁定持有信息
                        this.View.StyleManager.SetEnabled("FCrmHdOrgID", "", false);
                        this.View.StyleManager.SetEnabled("FCrmHdDept", "", false);
                        this.View.StyleManager.SetEnabled("FCrmHolder", "", false);

                        //保存单据
                        IOperationResult saveResult = BusinessDataServiceHelper.Save(
                            this.Context,
                            this.View.BillView.BillBusinessInfo,
                            this.View.BillModel.DataObject
                            );
                        this.View.Refresh();
                        this.View.ShowMessage("分配完成!", MessageBoxOptions.OK, new Action <MessageBoxResult>((rslt) =>
                        {
                            this.View.Close();
                        }));
                    }
                    else
                    {
                        this.View.BillModel.SetValue("FClueStatus", "1");
                        //解锁持有信息
                        this.View.StyleManager.SetEnabled("FCrmHdOrgID", "", true);
                        this.View.StyleManager.SetEnabled("FCrmHdDept", "", true);
                        this.View.StyleManager.SetEnabled("FCrmHolder", "", true);
                    }
                }));
            }
        }
Example #22
0
 public override void BeforeExecuteOperationTransaction(BeforeExecuteOperationTransaction e)
 {
     oldvaluesfoItem = new List <Dictionary <string, string> >();
     //newvaluesfoItem = new List<Dictionary<string, string>>();
     string[] arr = new string[e.SelectedRows.Count()];
     //DynamicObject[] newData = new DynamicObject[e.SelectedRows.Count()];
     for (int i = 0; i < arr.Length; i++)
     {
         //获取新值的DataEntity
         //newData[i] = e.SelectedRows.ElementAt(i).DataEntity;
         arr[i] = e.SelectedRows.ElementAt(i).DataEntity["id"].ToString();
     }
     DynamicObject[] oldData = BusinessDataServiceHelper.Load(this.Context, arr, BusinessInfo.GetDynamicObjectType());
     GetOldOrNewDataList(oldData, oldvaluesfoItem);
 }
Example #23
0
        }//end method

        public static IOperationResult Submit(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, OperateOption option = null, Func <DynamicObject, object> selector = null)
        {
            if (option == null)
            {
                option = OperateOption.Create();
            }
            option.SetIgnoreWarning(true);
            option.SetIgnoreInteractionFlag(true);

            object[] pkIds = selector != null?dataObject.Select(selector).ToArray() : dataObject.Select(data => data.PkId()).ToArray();

            IOperationResult result = BusinessDataServiceHelper.Submit(ctx, businessInfo, pkIds, "Submit", option);

            return(result);
        }//end method
        /// <summary>
        /// 保存物料,并显示保存结果
        /// </summary>
        /// <param name="billView"></param>
        /// <returns></returns>
        private void SaveMaterial(IBillView billView, OperateOption saveOption)
        {
            // 设置FormId
            Form form = billView.BillBusinessInfo.GetForm();

            if (form.FormIdDynamicProperty != null)
            {
                form.FormIdDynamicProperty.SetValue(billView.Model.DataObject, form.Id);
            }

            // 调用保存操作
            IOperationResult saveResult = BusinessDataServiceHelper.Save(
                this.Context,
                billView.BillBusinessInfo,
                billView.Model.DataObject,
                saveOption,
                "Save");

            // 显示处理结果
            if (saveResult == null)
            {
                this.View.ShowErrMessage("未知原因导致保存物料失败!");
                return;
            }
            else if (saveResult.IsSuccess == true)
            {// 保存成功,直接显示
                this.View.ShowOperateResult(saveResult.OperateResult);
                return;
            }
            else if (saveResult.InteractionContext != null &&
                     saveResult.InteractionContext.Option.GetInteractionFlag().Count > 0)
            {// 保存失败,需要用户确认问题
                InteractionUtil.DoInteraction(this.View, saveResult, saveOption,
                                              new Action <FormResult, IInteractionResult, OperateOption>((
                                                                                                             formResult, opResult, option) =>
                {
                    // 用户确认完毕,重新调用保存处理
                    this.SaveMaterial(billView, option);
                }));
            }
            // 保存失败,显示错误信息
            if (saveResult.IsShowMessage)
            {
                saveResult.MergeValidateErrors();
                this.View.ShowOperateResult(saveResult.OperateResult);
                return;
            }
        }
Example #25
0
        }//end method

        public static IOperationResult Forbid(this IEnumerable <DynamicObject> dataObject, Context ctx, BusinessInfo businessInfo, OperateOption option = null, Func <DynamicObject, object> selector = null)
        {
            if (option == null)
            {
                option = OperateOption.Create();
            }
            option.SetIgnoreWarning(true);
            option.SetIgnoreInteractionFlag(true);

            var pkIds = dataObject.Select(data => new KeyValuePair <object, object>(selector != null ? selector(data) : data.PkId(), ""))
                        .ToList();

            IOperationResult result = BusinessDataServiceHelper.SetBillStatus(ctx, businessInfo, pkIds, null, OperationNumberConst.OperationNumber_Forbid, option);

            return(result);
        }//end method
        /// <summary>
        ///累加日计划面积
        /// </summary>
        /// <param name="e"></param>
        public override void EndOperationTransaction(EndOperationTransactionArgs e)
        {
            base.EndOperationTransaction(e);

            if (selectedRows != null && selectedRows.Count() != 0)
            {
                IMetaDataService metadataService = Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>();

                //获取单据元数据
                FormMetadata BilMetada = metadataService.Load(Context, "SZXY_LYJTRSCJH") as FormMetadata;

                foreach (DynamicObject dy in selectedRows)
                {
                    string Id     = Convert.ToString(dy["Id"]);
                    string FormId = "SZXY_LYJTRSCJH";
                    if (dy["SZXY_XYLYEntry"] is DynamicObjectCollection entry)
                    {
                        decimal Area     = 0;
                        string  RJHFid   = string.Empty;
                        string  RJHRowId = string.Empty;
                        foreach (var item in entry.Where(m => !Convert.ToString(m["F_SZXY_PlasticNo"]).IsNullOrEmptyOrWhiteSpace()))
                        {
                            RJHFid   = Convert.ToString(item["F_SZXY_FID"]);
                            Area     = Convert.ToDecimal(item["F_SZXY_Area"]);
                            RJHRowId = Convert.ToString(item["F_SZXY_FEntryID"]);

                            if (Area != 0 && !RJHFid.IsNullOrEmptyOrWhiteSpace())
                            {
                                DynamicObject RJHObejct = Utils.LoadFIDBillObject(this.Context, FormId, RJHFid);
                                if (RJHObejct["SZXY_LYJTRSCJHEntry"] is DynamicObjectCollection SoureEntry)
                                {
                                    var Row = from row in SoureEntry
                                              where Convert.ToString(row["id"]).EqualsIgnoreCase(RJHRowId)
                                              select row;
                                    foreach (DynamicObject SoureRow in SoureEntry.Where(p => Convert.ToString(p["id"]).EqualsIgnoreCase(RJHRowId)))
                                    {
                                        Area += Convert.ToDecimal(SoureRow["F_SZXY_ProductionArea"]);
                                        SoureRow["F_SZXY_ProductionArea"] = Area;
                                    }
                                }
                                var saveResult = BusinessDataServiceHelper.Save(Context, BilMetada.BusinessInfo, RJHObejct);
                            }
                        }
                    }
                }
            }
        }
Example #27
0
        /// <summary>
        /// 目标单单据构建完毕,且已经创建好与源单的关联关系之后,触发此事件
        /// </summary>
        /// <param name="e"></param>
        /// <remarks>
        /// 本事件的时机,刚好能够符合需求,
        /// 而AfterConvert事件,则在执行表单服务策略之后
        /// </remarks>
        public override void OnAfterCreateLink(CreateLinkEventArgs e)
        {
            // 目标单单据体元数据
            Entity entity = e.TargetBusinessInfo.GetEntity("FSaleOrderEntry");

            //源单单单据体元数据
            //Entity es = e.SourceBusinessInfo.GetEntity("FSaleOrderEntry");

            // 读取已经生成的销售订单
            ExtendedDataEntity[] bills = e.TargetExtendedDataEntities.FindByEntityKey("FBillHead");

            // 定义一个集合,存储新拆分出来的单据体行
            List <ExtendedDataEntity> newRows = new List <ExtendedDataEntity>();

            // 对目标单据进行循环
            foreach (var bill in bills)
            {
                // 取单据体集合
                DynamicObjectCollection rowObjs = entity.DynamicProperty.GetValue(bill.DataEntity)
                                                  as DynamicObjectCollection;
                // 对单据体进行循环:从后往前循环,新拆分的行,避开循环
                int rowCount = rowObjs.Count;

                for (int i = rowCount - 1; i >= 0; i--)
                {
                    DynamicObject           rowObj       = rowObjs[i];
                    DynamicObject           FMaterialId  = rowObj["MaterialId"] as DynamicObject;
                    DynamicObjectCollection MaterialBase = FMaterialId["MaterialBase"] as DynamicObjectCollection;
                    DynamicObject           FCategoryID  = MaterialBase[0]["CategoryID"] as DynamicObject;
                    string FCategoryname = Convert.ToString(FCategoryID["Name"]);
                    if (FCategoryname == "产成品")
                    {
                        //获取ID为100440的仓库
                        DynamicObject[] STOCKIDs = BusinessDataServiceHelper.Load(this.Context, new object[] { 100440 }, (MetaDataServiceHelper.Load(this.Context, "BD_STOCK") as FormMetadata).BusinessInfo.GetDynamicObjectType());
                        rowObj["FSTOCKID_MX"] = STOCKIDs[0];
                    }

                    if (FCategoryname == "半成品")
                    {
                        //获取ID为100424的仓库
                        DynamicObject[] STOCKIDs = BusinessDataServiceHelper.Load(this.Context, new object[] { 100424 }, (MetaDataServiceHelper.Load(this.Context, "BD_STOCK") as FormMetadata).BusinessInfo.GetDynamicObjectType());
                        rowObj["FSTOCKID_MX"] = STOCKIDs[0];
                    }
                }
            }
        }
Example #28
0
        public override void AfterBarItemClick(AfterBarItemClickEventArgs e)
        {
            if (e.BarItemKey.Equals("tbsave"))
            {
                long entryid = 0;

                getTableName();
                Entity entity = this.View.BusinessInfo.GetEntity("FEntity");
                DynamicObjectCollection objs       = this.View.Model.GetEntityDataObject(entity);
                DynamicObject[]         lotMasters = null;
                if (!lotIds.IsEmpty() && !lotIds.Equals("0"))
                {
                    string    filter = string.Format("FLOTID IN ('{0}')", lotIds);
                    OQLFilter of     = OQLFilter.CreateHeadEntityFilter(filter);
                    lotMasters = BusinessDataServiceHelper.Load(this.Context, "BD_BatchMainFile", null, of);
                }
                foreach (DynamicObject obj in objs)
                {
                    value   = obj["F_QANo"];
                    entryid = Convert.ToInt64(obj["F_BEM_billentryid"]);
                    if (entryid == 0)
                    {
                        continue;
                    }
                    foreach (DynamicObject lotobj in lotMasters)
                    {
                        if (lotobj["id"].Equals(obj["FLOT_Id"]))
                        {
                            lotobj["F_QANo"] = obj["F_QANo"];
                        }
                    }

                    updateSqls.Add(string.Format(@"UPDATE  {0}  set F_QANo ='{1}'  WHERE fentryid  = {2}  ", tableName, value, entryid));
                }

                ISaveService service = Kingdee.BOS.App.ServiceHelper.GetService <ISaveService>();
                service.Save(this.Context, lotMasters);
                DBUtils.ExecuteBatch(this.Context, updateSqls, updateSqls.Count);
                //返回值到父窗口
                this.View.ReturnToParentWindow("true");
                this.View.Close();
            }
            base.AfterBarItemClick(e);
        }
        public override void EndOperationTransaction(EndOperationTransactionArgs e)
        {
            base.EndOperationTransaction(e);

            if (selectedRows != null && selectedRows.Count() != 0)
            {
                IMetaDataService metadataService = Kingdee.BOS.App.ServiceHelper.GetService <IMetaDataService>();
                string           SoureFormId     = "SZXY_FHJTRSCJH";
                //获取单据元数据
                FormMetadata BilMetada = metadataService.Load(Context, SoureFormId) as FormMetadata;

                foreach (DynamicObject dy in selectedRows)
                {
                    string  Id       = Convert.ToString(dy["Id"]);
                    decimal Area     = 0;
                    string  RJHFid   = string.Empty;
                    string  RJHRowId = string.Empty;
                    RJHFid   = Convert.ToString(dy["F_SZXY_FIDH"]);
                    Area     = Convert.ToDecimal(dy["F_SZXY_InArea"]);
                    RJHRowId = Convert.ToString(dy["F_SZXY_FEntryIDH"]);
                    string F_SZXY_MotherVolume = Convert.ToString(dy["F_SZXY_MotherVolume"]);
                    string F_SZXY_ligature     = Convert.ToString(dy["F_SZXY_ligature"]);


                    if (Area != 0 && !RJHFid.IsNullOrEmptyOrWhiteSpace())
                    {
                        DynamicObject RJHObejct = Utils.LoadFIDBillObject(this.Context, SoureFormId, RJHFid);
                        if (RJHObejct["SZXY_FHJTRSCJHEntry"] is DynamicObjectCollection SoureEntry)
                        {
                            //var Row = from row in SoureEntry
                            //          where Convert.ToString(row["id"]).EqualsIgnoreCase(RJHRowId)
                            //          select row;
                            foreach (DynamicObject SoureRow in SoureEntry.Where(p => Convert.ToString(p["id"]).EqualsIgnoreCase(RJHRowId)))
                            {
                                decimal ResArea = Convert.ToDecimal(SoureRow["F_SZXY_ProductionArea"]) - Area;
                                SoureRow["F_SZXY_ProductionArea"] = ResArea;
                            }
                        }
                        var saveResult = BusinessDataServiceHelper.Save(Context, BilMetada.BusinessInfo, RJHObejct);
                    }
                }
            }
        }
Example #30
0
        public static DynamicObject[] GetDynamicObjects(Context ctx, string formId, string filterClauseWihtKey)
        {
            if (!string.IsNullOrEmpty(formId))
            {
                FormMetadata          metaData       = MetaDataServiceHelper.Load(ctx, formId) as FormMetadata;
                DynamicObjectType     type           = metaData.BusinessInfo.GetDynamicObjectType();
                QueryBuilderParemeter queryParemeter = new QueryBuilderParemeter();
                queryParemeter.FormId = formId;

                if (!string.IsNullOrEmpty(filterClauseWihtKey))
                {
                    queryParemeter.FilterClauseWihtKey = filterClauseWihtKey;
                }

                DynamicObject[] objects = BusinessDataServiceHelper.Load(ctx, type, queryParemeter);
                return(objects);
            }

            return(null);
        }