using Kingdee.CDP.WebApi.SDK;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Text;
namespace Kingdee.BOS.WebApi.SDK.Test
{
[TestClass]
public class OperateExample
{
///
/// 付款申请单
///
[TestMethod]
public string Test_EmpInfo(object ydapidata)
{
string jsonsZTab = "";
//List dic = new List();
JObject array = JsonConvert.DeserializeObject(ydapidata.ToString());
foreach (var item in array["tableField_leqinlq8"])
{
JObject itemarray = JsonConvert.DeserializeObject(item.ToString());
DateTime dqr = GetDateTime(itemarray["dateField_lewl78sg"].ToString());
DateTime yfr = GetDateTime(itemarray["dateField_lewl78sh"].ToString());
jsonsZTab +="{\"FCOSTID\":{\"FNUMBER\": \"FYXM10_SYS\"},\"FEXPENSEDEPTID\": {\"FNUMBER\": \""+array["textField_leqinlpz"].ToString() +"\"},\"FSETTLETYPEID\": {\"FNumber\": \"JSFS04_SYS\"},\"FPAYPURPOSEID\": {\"FNumber\": \"SFKYT08_SYS\"},\"FENDDATE\": \"" + dqr + "\",\"FEXPECTPAYDATE\": \"" + yfr + "\",\"FAPPLYAMOUNTFOR\": " + itemarray["numberField_leqinlqa"].ToString() + ",\"FBankDetail\": {\"FNUMBER\": \"" + itemarray["textField_lfw71las"].ToString() + "\"},\"FEACHBANKACCOUNT\": \"TEST01\",\"FEACHCCOUNTNAME\": \"" + itemarray["textField_lfw71lar"].ToString() + "\",\"FEACHBANKNAME\": \"" + itemarray["textField_lfw71las"].ToString() + "\",\"FSwiftCode\": \"" + itemarray["textField_lfw71lar"].ToString() + "\",\"FDescription\": \"" + itemarray["textField_leqinlqb"].ToString() + "\" },";
}
//初始化
var clienter = new K3CloudApi();
StringBuilder error = new StringBuilder();
//测试连接
RepoResult reporesult = clienter.CheckAuthInfo();
Assert.IsTrue(reporesult.ResponseStatus.IsSuccess);
if (reporesult.ResponseStatus.IsSuccess)
{
string jsons = "{\"NeedUpDateFields\": [],\"NeedReturnFields\": [],\"IsDeleteEntry\": \"true\",\"SubSystemId\": \"\",\"IsVerifyBaseDataField\": \"false\",\"IsEntryBatchFill\": \"true\",\"ValidateFlag\": \"true\",\"NumberSearch\": \"true\",\"IsAutoAdjustField\": \"false\",\"InterationFlags\": \"\",\"IgnoreInterationFlag\": \"\"," +
"\"Model\": {\"FID\": 0," +
"\"FBILLTYPEID\": { \"FNUMBER\": \"FKSQ001_SYS\"}," +
"\"FDATE\": \"2023-04-13 00:00:00\",\"FCONTACTUNITTYPE\": \""+array["selectField_lexydxa5"].ToString() +"\"," +
"\"FCONTACTUNIT\": {\"FNumber\": \""+array["selectField_lexydxa5_id"].ToString() +"\"}," +
"\"FRECTUNITTYPE\": \"BD_Supplier\"," +
"\"FRECTUNIT\": {\"FNumber\": \"00111\"}," +
"\"FCURRENCYID\": {\"FNumber\": \"PRE001\"}," +
"\"FPAYORGID\": {\"FNumber\": \""+array["radioField_leqinlq7_id"].ToString() == null? "101": array["textField_lewk1q3x"].ToString() + "\"}," +
"\"FSETTLEORGID\": {\"FNumber\": \"100\"}," +
"\"FPURCHASEORGID\": { \"FNumber\": \"100\"}," +
"\"FDOCUMENTSTATUS\": \"Z\",\"FCANCELSTATUS\": \"A\",\"FIsCredit\": false," +
"\"FAPPLYORGID\": {\"FNumber\": \"100\"}," +
"\"FSETTLECUR\": {\"FNUMBER\": \"PRE001\"}," +
"\"FISCARRYRATE\": false,\"FMoreReceive\": false,\"F_BQB_Combo\": \"对公付款\"," +
"\"F_BQB_GYS\": {\"FNUMBER\": \"00111\"}," +
"\"F_BQB_FKDQ\": \""+ array["radioField_leqinlq7"].ToString() + "付款\", " +
"\"FPAYAPPLYENTRY\":[" + jsonsZTab.Substring(0, jsonsZTab.Length - 1) + "]}}";
//保存接口的请求参数的规定格式
var requestJObject = JObject.Parse(jsons);
//调用保存接口
var resultJson = clienter.Save("CN_PAYAPPLY", JsonConvert.SerializeObject(requestJObject));
JObject resJson = JsonConvert.DeserializeObject(resultJson);
//根据不同业务单据拼接不同的字段和数值
var number = resJson["Result"]["Number"].ToString();
//对返回结果进行解析和校验,这里使用的是JsonPatch
var isSuccess = ValidateResponse(resultJson);
Assert.IsTrue(isSuccess);
Assert.IsTrue(Test_EmpInfo_Submit(clienter, number));
Assert.IsTrue(Test_EmpInfo_Audit(clienter, number));
return resultJson.ToString();
}
else
{
return error.AppendLine("User authentication information is wrong, please check again!").ToString();
}
}
#region
///
/// 付款-查询
///
///
///
///
public bool Test_EmpInfo_View(K3CloudApi clienter, string number)
{
//查询的请求参数
var param = JObject.Parse("{\"CreateOrgId\":0,\"Number\":\"" +
number +
"\",\"Id\":\"\"}");
//调用查询接口
var resultJson = clienter.View("CN_PAYAPPLY", JsonConvert.SerializeObject(param));
return ValidateResponse(resultJson);
}
///
/// 付款-提交
///
///
///
///
public bool Test_EmpInfo_Submit(K3CloudApi clienter, string number)
{
//查询的请求参数
var param = JObject.Parse("{\"CreateOrgId\": 0,"+
"\"Numbers\": [\"" +number +"\"]," +
"\"Ids\": \"\","+
"\"SelectedPostId\": 0,"+
"\"NetworkCtrl\": \"\","+
"\"IgnoreInterationFlag\": \"\"}");
//调用查询接口
var resultJson = clienter.Submit("CN_PAYAPPLY", JsonConvert.SerializeObject(param));
return ValidateResponse(resultJson);
}
///
/// 付款-审核
///
///
///
///
public bool Test_EmpInfo_Audit(K3CloudApi clienter, string number)
{
//查询的请求参数
var param = JObject.Parse("{\"CreateOrgId\":0,\"Numbers\":[\"" +
number +
"\"],\"Ids\":\"\",\"InterationFlags\":\"\",\"NetworkCtrl\":\"\",\"IsVerifyProcInst\":\"\",\"IgnoreInterationFlag\":\"\"}");
//调用查询接口
var resultJson = clienter.Audit("CN_PAYAPPLY", JsonConvert.SerializeObject(param));
return ValidateResponse(resultJson);
}
#endregion
public bool ValidateResponse(string resultJson)
{
//对返回结果进行解析和校验,这里使用的是JsonPatch
var resultJObject = JObject.Parse(resultJson);
var queryNode = resultJObject.SelectToken("$..IsSuccess");
if (queryNode == null)
{
return true;
}
var isSuccess = queryNode.Value();
return isSuccess;
}
public DateTime GetDateTime(string timeStamp)
{
var posixTime = DateTime.SpecifyKind(new DateTime(1970, 1, 1), DateTimeKind.Utc);
var time = posixTime.AddMilliseconds(Convert.ToDouble(timeStamp));
return time;
}
}
}