/// <summary> /// 配方单转库存检验单 /// </summary> /// <param name="ctx">上下文</param> /// <param name="FID">源单ID</param> /// <param name="FPKID">源单单据体ID</param> /// <param name="row">单据体行号</param> public IOperationResult ConvertRule(Context ctx, int FID, int FPKID, int row) { List <ListSelectedRow> ListSalReSelect = new List <ListSelectedRow>(); ListSelectedRow convertItem = new ListSelectedRow( Convert.ToString(FID), Convert.ToString(FPKID), Convert.ToInt32(row), "PRD_PPBOM"); ListSalReSelect.Add(convertItem); if (ListSalReSelect.Count <= 0) { return(null); } BillConvertOption convertOption = new BillConvertOption(); convertOption.sourceFormId = "PRD_PPBOM"; convertOption.targetFormId = "QM_STKAPPInspect"; convertOption.ConvertRuleKey = "UseFormToSTKAPPInspect"; convertOption.Option = OperateOption.Create(); convertOption.BizSelectRows = ListSalReSelect.ToArray(); convertOption.IsDraft = true; convertOption.IsSave = false; return(AppServiceContext.ConvertBills(ctx, convertOption)); }
/// <summary> /// 生成应付单 /// </summary> /// <param name="ctx"></param> /// <param name="souObj"></param> /// <returns></returns> private static IOperationResult ToTransferSalseBill(Context ctx, DynamicObject souObj,string billtype) { IOperationResult convertResult = new OperationResult(); DynamicObjectCollection dyCollection = souObj["PUR_ReceiveEntry"] as DynamicObjectCollection; List<ListSelectedRow> ListSalReSelect = new List<ListSelectedRow>(); dyCollection.ToList().ForEach(entiyItem => { ListSelectedRow convertItem = new ListSelectedRow( Convert.ToString(souObj["Id"]), Convert.ToString(entiyItem["Id"]), Convert.ToInt32(entiyItem["Seq"]), "PUR_ReceiveBill"); ListSalReSelect.Add(convertItem); }); if (ListSalReSelect.Count <= 0) { return convertResult; } BillConvertOption convertOption = new BillConvertOption(); convertOption.sourceFormId = "PUR_ReceiveBill"; convertOption.targetFormId = "AP_Payable"; convertOption.ConvertRuleKey = "AP_ReceiveToPayableMap"; convertOption.Option = OperateOption.Create(); convertOption.Option.SetIgnoreWarning(false); convertOption.BizSelectRows = ListSalReSelect.ToArray(); convertOption.IsDraft = false; convertOption.IsSave = true; convertOption.IsAudit = true; convertResult = ConvertBills(ctx, convertOption,billtype); return convertResult; }
/// <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); }
/// <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; }