示例#1
0
        /// <summary>
        /// 后台调用单据转换生成目标单
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="option"></param>
        /// <returns></returns>
        public static IOperationResult ConvertBills(Context ctx, BillConvertOption option)
        {
            IOperationResult     result = new OperationResult();
            List <DynamicObject> list   = new List <DynamicObject>();
            ConvertRuleElement   rule   = AppServiceContext.ConvertService.GetConvertRules(ctx, option.sourceFormId, option.targetFormId)
                                          .FirstOrDefault(w => w.Id == option.ConvertRuleKey);
            FormMetadata metaData = (FormMetadata)AppServiceContext.MetadataService.Load(ctx, option.targetFormId, true);

            if ((rule != null) && option.BizSelectRows != null && option.BizSelectRows.Count() > 0)
            {
                PushArgs serviceArgs = new PushArgs(rule, option.BizSelectRows);
                serviceArgs.CustomParams.Add("CustomConvertOption", option);
                serviceArgs.CustomParams.Add("CustomerTransParams", option.customParams);
                OperateOption operateOption = OperateOption.Create();
                operateOption.SetVariableValue("ValidatePermission", true);
                ConvertOperationResult convertOperationResult = AppServiceContext.ConvertService.Push(ctx, serviceArgs, operateOption);
                if (!convertOperationResult.IsSuccess)
                {
                    result = convertOperationResult as IOperationResult;
                    return(result);
                }
                DynamicObject[] collection = convertOperationResult.TargetDataEntities
                                             .Select(s => s.DataEntity).ToArray();
                list.AddRange(collection);
            }
            if (list.Count > 0)
            {
                AppServiceContext.DBService.LoadReferenceObject(ctx, list.ToArray(), metaData.BusinessInfo.GetDynamicObjectType(), false);
            }
            if (option.IsDraft && list.Count > 0)
            {
                result = AppServiceContext.DraftService.Draft(ctx, metaData.BusinessInfo, list.ToArray());
            }
            if (!result.IsSuccess)
            {
                return(result);
            }
            if (option.IsSave && !option.IsDraft && list.Count > 0)
            {
                OperateOption operateOption = OperateOption.Create();
                operateOption.SetVariableValue("ValidatePermission", true);
                operateOption.SetIgnoreWarning(true);
                result = AppServiceContext.SaveService.Save(ctx, metaData.BusinessInfo, list.ToArray(), operateOption);

                //result = AppServiceContext.SaveService.Save(ctx, metaData.BusinessInfo, list.ToArray());
            }
            if (!result.IsSuccess)
            {
                return(result);
            }
            if (option.IsSubmit && list.Count > 0)
            {
                result = AppServiceContext.SubmitService.Submit(ctx, metaData.BusinessInfo,
                                                                list.Select(item => ((Object)(Convert.ToInt64(item["Id"])))).ToArray(), "Submit");
            }
            if (!result.IsSuccess)
            {
                return(result);
            }
            if (option.IsAudit && list.Count > 0)
            {
                result = AppServiceContext.SubmitService.Submit(ctx, metaData.BusinessInfo,
                                                                list.Select(item => ((Object)(Convert.ToInt64(item["Id"])))).ToArray(), "Submit");
                if (!result.IsSuccess)
                {
                    return(result);
                }
                List <KeyValuePair <object, object> > keyValuePairs = new List <KeyValuePair <object, object> >();
                list.ForEach(item =>
                {
                    keyValuePairs.Add(new KeyValuePair <object, object>(item.GetPrimaryKeyValue(), item));
                }
                             );
                List <object> auditObjs = new List <object>();
                auditObjs.Add("1");
                auditObjs.Add("");
                //Kingdee.BOS.Util.OperateOptionUtils oou = null;
                OperateOption ooption = OperateOption.Create();
                ooption.SetIgnoreWarning(false);
                ooption.SetIgnoreInteractionFlag(true);
                ooption.SetIsThrowValidationInfo(false);
                result = AppServiceContext.SetStatusService.SetBillStatus(ctx, metaData.BusinessInfo,
                                                                          keyValuePairs, auditObjs, "Audit", ooption);

                option.BillStatusOptionResult = ooption;
                if (!result.IsSuccess)
                {
                    return(result);
                }
            }

            return(result);
        }
示例#2
0
        /// <summary>
        /// 后台调用单据转换生成目标单
        /// </summary>
        /// <param name="ctx"></param>
        /// <param name="option"></param>
        /// <returns></returns>
        public static IOperationResult ConvertBills(Context ctx, BillConvertOption option,string billtype)
        {
            //return AppServiceContext.ConvertBills(ctx, option);
            //判断单据类型资产接收单转化为资产应付;费用物料转为办公应付
            string billtypeid = "";
            if (billtype == "SLD04_SYS")
            {
                 billtypeid = "56e224fd183867";
                }
            if (billtype == "SLD05_SYS")
            {
                 billtypeid = "777f5fd25084498a9e77e1ef2a72e645";
            }
            IOperationResult result = new OperationResult();
            List<DynamicObject> list = new List<DynamicObject>();
            ConvertRuleElement rule = AppServiceContext.ConvertService.GetConvertRules(ctx, option.sourceFormId, option.targetFormId)
               .FirstOrDefault(w => w.Id == option.ConvertRuleKey);
            FormMetadata metaData = (FormMetadata)AppServiceContext.MetadataService.Load(ctx, option.targetFormId, true);
            if ((rule != null) && option.BizSelectRows != null && option.BizSelectRows.Count() > 0)
            {
                
                    PushArgs serviceArgs = new PushArgs(rule, option.BizSelectRows)
                    {

                        TargetBillTypeId = billtypeid,
                    };
                
                serviceArgs.CustomParams.Add("CustomConvertOption", option);
                serviceArgs.CustomParams.Add("CustomerTransParams", option.customParams);
                OperateOption operateOption = OperateOption.Create();
                operateOption.SetVariableValue("ValidatePermission", true);
                ConvertOperationResult convertOperationResult = AppServiceContext.ConvertService.Push(ctx, serviceArgs, operateOption);
                if (!convertOperationResult.IsSuccess)
                {
                    result = convertOperationResult as IOperationResult;
                    return result;
                }
                DynamicObject[] collection = convertOperationResult.TargetDataEntities
                    .Select(s => s.DataEntity).ToArray();
                list.AddRange(collection);
            }
            if (list.Count > 0)
            {
                AppServiceContext.DBService.LoadReferenceObject(ctx, list.ToArray(), metaData.BusinessInfo.GetDynamicObjectType(), false);
            }
            if (option.IsDraft && list.Count > 0)
            {
                result = AppServiceContext.DraftService.Draft(ctx, metaData.BusinessInfo, list.ToArray());
            }
            if (!result.IsSuccess)
            {
                return result;
            }
            if (option.IsSave && !option.IsDraft && list.Count > 0)
            {
                OperateOption operateOption = OperateOption.Create();
                operateOption.SetVariableValue("ValidatePermission", true);
                operateOption.SetIgnoreWarning(true);
                result = AppServiceContext.SaveService.Save(ctx, metaData.BusinessInfo, list.ToArray(), operateOption);

                //result = AppServiceContext.SaveService.Save(ctx, metaData.BusinessInfo, list.ToArray());
            }
            if (!result.IsSuccess)
            {
                return result;
            }
            if (option.IsSubmit && list.Count > 0)
            {
                result = AppServiceContext.SubmitService.Submit(ctx, metaData.BusinessInfo,
                    list.Select(item => ((Object)(Convert.ToInt64(item["Id"])))).ToArray(), "Submit");
            }
            if (!result.IsSuccess)
            {
                return result;
            }

            bool systemParamter = Convert.ToBoolean(Kingdee.BOS.ServiceHelper.SystemParameterServiceHelper.GetParamter(ctx, OrgId, 0, "AP_SystemParameter", "F_VTRAutoReceiveBillPayable"));//获取系统参数生成应付单是否创建状态

            if (option.IsAudit && list.Count > 0 && systemParamter==false)
            {
                result = AppServiceContext.SubmitService.Submit(ctx, metaData.BusinessInfo,
                    list.Select(item => ((Object)(Convert.ToInt64(item["Id"])))).ToArray(), "Submit");
                if (!result.IsSuccess)
                {
                    return result;
                }
                List<KeyValuePair<object, object>> keyValuePairs = new List<KeyValuePair<object, object>>();
                list.ForEach(item =>
                {
                    keyValuePairs.Add(new KeyValuePair<object, object>(item.GetPrimaryKeyValue(), item));
                }
                );
                List<object> auditObjs = new List<object>();
                auditObjs.Add("1");
                auditObjs.Add("");
                //Kingdee.BOS.Util.OperateOptionUtils oou = null;
                OperateOption ooption = OperateOption.Create();
                ooption.SetIgnoreWarning(false);
                ooption.SetIgnoreInteractionFlag(true);
                ooption.SetIsThrowValidationInfo(false);
                result = AppServiceContext.SetStatusService.SetBillStatus(ctx, metaData.BusinessInfo,
                  keyValuePairs, auditObjs, "Audit", ooption);

                option.BillStatusOptionResult = ooption;
                if (!result.IsSuccess)
                {
                    return result;
                }
            }

            return result;
        }