复制已有单据生成新的单据

发布时间 2023-11-21 17:56:28作者: 木古白水

using Kingdee.BOS.Orm

/// <summary>

/// 生成暂估成本单
/// </summary>
/// <param name="id"></param>
private void CreateProvisionalCost(string id)
{
string formId = "JNXM_ProvisionalCost";
FormMetadata metadata = (FormMetadata)Core.AppServiceContext.MetadataService.Load(this.Context, formId);
var JNXM_ProvisionalCost = Synthesize.GetSingleData(this.Context, formId, id);
if (JNXM_ProvisionalCost != null)
{
var newData = JNXM_ProvisionalCost.Clone() as DynamicObject;
newData["FBillNo"] = "";
newData["FDocumentStatus"] = "Z";
List<DynamicObject> lstDatas = new List<DynamicObject>();
lstDatas.Add(newData);
if (lstDatas.Count > 0)
{
//先保存上
IOperationResult ret = Core.AppServiceContext.SaveService.Save(this.Context, metadata.BusinessInfo, lstDatas.ToArray());
if (!ret.IsSuccess)
{
throw new KDBusinessException("", "生成暂估成本单保存时失败,错误原因:" + GetErrorMsg(ret));
}
else
{
if (ret.SuccessDataEnity != null && ret.SuccessDataEnity.Count() > 0)
{
//提交
List<DynamicObject> listSummit = ret.SuccessDataEnity.ToList<DynamicObject>();
ret = AppServiceContext.SubmitService.Submit(this.Context, metadata.BusinessInfo, listSummit.Select(item => ((Object)(Convert.ToInt64(item["Id"])))).ToArray(), "Submit");
if (!ret.IsSuccess)
{
throw new KDBusinessException("", "生成暂估成本单提交失败,错误原因:" + GetErrorMsg(ret));
}

//审核
List<KeyValuePair<object, object>> keyValuePairs = new List<KeyValuePair<object, object>>();
listSummit.ForEach(item =>
{
keyValuePairs.Add(new KeyValuePair<object, object>(item["Id"], item));
}
);
List<object> auditObjs = new List<object>();
auditObjs.Add("1");
auditObjs.Add("");

ret = AppServiceContext.SetStatusService.SetBillStatus(this.Context, metadata.BusinessInfo, keyValuePairs, auditObjs, "Audit");
if (!ret.IsSuccess)
{
throw new KDBusinessException("", "生成暂估成本单审核失败,错误原因:" + GetErrorMsg(ret));
}
else
{
this.OperationResult.MergeResult(ret);
}
}
}
}
}
}