库存模块增加审核、弃审、删除接口

This commit is contained in:
敏健 邱
2025-03-26 21:13:25 +08:00
parent b28c9f76cd
commit cb3269ae8b
5 changed files with 1967 additions and 117 deletions
@@ -12,6 +12,7 @@ using UFIDA.U8.Framework.Api.ControlObject.Entity;
using UFIDA.U8.Framework.Api.ControlObject.Json;
using UFIDA.U8.Framework.Api.ControlObject.ST;
using UFIDA.U8.Framework.Api.ControlObject.U8M;
using UFIDA.U8.Framework.Api.Models;
using UFIDA.U8.Framework.Api.Unit;
// ReSharper disable StringLiteralTypo
// ReSharper disable IdentifierTypo
@@ -55,7 +56,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:新增,对接账套:{cAccId},数据:{input.ToJson()}");
LoginParamter param;
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
@@ -63,7 +64,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
baseLogin = new BaseLogin();
param = await CommUnit.GetLoginParamter(cAccId);
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
@@ -76,10 +77,10 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
_cache.Set($"U8_{cAccId}", baseLogin);
}
else
{
param = await CommUnit.GetLoginParamter(cAccId);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
@@ -108,7 +109,7 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
if (!string.IsNullOrWhiteSpace(exchKey) && input.TryGetValue(exchKey, out var value))
{
exch = CommonHelper.GetExch(dDate, param.cAccId, $"{value}", baseLogin.Connection);
exch = CommonHelper.GetExch(dDate, cAccId, $"{value}", baseLogin.Connection);
}
else
{
@@ -251,5 +252,711 @@ namespace UFIDA.U8.Framework.Api.Controllers.U8
return new BaseResult<string> { bSuccess = false, message = ex.Message, result = ex.StackTrace };
}
}
/// <summary>
/// 审核单据(单号)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="cCode">单据编号</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpGet]
[Route("api/U8/ST/{cCardNum}/Verify/Code")]
public async Task<BaseResult<string>> Verify(string cAccId, string cCardNum,string cCode, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{cCode}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin) || baseLogin ==null)
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
return await co.Verify(baseLogin, cCardNum, voucherInfo.VoucherType, cCode, bCheck, bBeforCheckStock, bList);
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message };
}
}
/// <summary>
/// 审核单据(ID)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="voucherId">单据ID</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpGet]
[Route("api/U8/ST/{cCardNum}/Verify/ID")]
public async Task<BaseResult<string>> Verify(string cAccId, string cCardNum, long voucherId, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},ID:{voucherId}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
return await co.Verify(baseLogin, cCardNum, voucherInfo.VoucherType, voucherId, bCheck, bBeforCheckStock, bList);
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "审核失败", result = ex.Message };
}
}
/// <summary>
/// 审核单据(批量)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="input">报文</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
[HttpPost]
[Route("api/U8/ST/{cCardNum}/Verify")]
public async Task<BaseResult<List<BaseResult<string>>>> Verify(string cAccId, string cCardNum, [FromBody] STInput input, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
if (input == null)
{
throw new Exception("参数不能为空");
}
var cCodes = input.cCode;
var voucherIds = input.voucherId;
if ((cCodes == null || cCodes.Count<=0) && (voucherIds == null || voucherIds.Count <= 0))
{
throw new Exception("没有数据需要审核");
}
var strCode = "";
var strId = "";
var apiType = cCodes == null || cCodes.Count <= 0 ? 1 : 0;
if (cCodes != null && cCodes.Count > 0)
{
strCode = string.Join(",", cCodes);
}
if (voucherIds != null && voucherIds.Count > 0)
{
strId = string.Join(",", voucherIds);
}
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:审核,对接账套:{cAccId},单号:{strCode},ID:{strId}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
var result = apiType == 0
? await co.Verify(baseLogin, cCardNum, voucherInfo.VoucherType, cCodes, bCheck, bBeforCheckStock, bList)
: await co.Verify(baseLogin, cCardNum, voucherInfo.VoucherType, voucherIds, bCheck, bBeforCheckStock, bList);
var res = new BaseResult<List<BaseResult<string>>>()
{
bSuccess = true,
message = "审核完成",
result = result
};
return res;
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null };
}
}
/// <summary>
/// 弃审单据(单号)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="cCode">单据编号</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpGet]
[Route("api/U8/ST/{cCardNum}/UnVerify/Code")]
public async Task<BaseResult<string>> UnVerify(string cAccId, string cCardNum,string cCode, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{cCode}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
return await co.UnVerify(baseLogin, cCardNum, voucherInfo.VoucherType, cCode, bCheck, bBeforCheckStock, bList);
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "弃审失败", result = ex.Message };
}
}
/// <summary>
/// 弃审单据(ID)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="voucherId">单据ID</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpGet]
[Route("api/U8/ST/{cCardNum}/UnVerify/ID")]
public async Task<BaseResult<string>> UnVerify(string cAccId, string cCardNum, long voucherId, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},ID:{voucherId}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
return await co.UnVerify(baseLogin, cCardNum, voucherInfo.VoucherType, voucherId, bCheck, bBeforCheckStock, bList);
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "弃审失败", result = ex.Message };
}
}
/// <summary>
/// 弃审单据(批量)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="input">报文</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
[HttpPost]
[Route("api/U8/ST/{cCardNum}/UnVerify")]
public async Task<BaseResult<List<BaseResult<string>>>> UnVerify(string cAccId, string cCardNum, [FromBody] STInput input, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
if (input == null)
{
throw new Exception("参数不能为空");
}
var cCodes = input.cCode;
var voucherIds = input.voucherId;
if ((cCodes == null || cCodes.Count<=0) && (voucherIds == null || voucherIds.Count <= 0))
{
throw new Exception("没有数据需要弃审");
}
var strCode = "";
var strId = "";
var apiType = cCodes == null || cCodes.Count <= 0 ? 1 : 0;
if (cCodes != null && cCodes.Count > 0)
{
strCode = string.Join(",", cCodes);
}
if (voucherIds != null && voucherIds.Count > 0)
{
strId = string.Join(",", voucherIds);
}
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:弃审,对接账套:{cAccId},单号:{strCode},ID:{strId}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
var result = apiType == 0
? await co.Verify(baseLogin, cCardNum, voucherInfo.VoucherType, cCodes, bCheck, bBeforCheckStock, bList)
: await co.Verify(baseLogin, cCardNum, voucherInfo.VoucherType, voucherIds, bCheck, bBeforCheckStock, bList);
var res = new BaseResult<List<BaseResult<string>>>()
{
bSuccess = true,
message = "弃审完成",
result = result
};
return res;
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null };
}
}
/// <summary>
/// 删除单据(单号)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="cCode">单据编号</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpGet]
[Route("api/U8/ST/{cCardNum}/Delete/Code")]
public async Task<BaseResult<string>> Delete(string cAccId, string cCardNum,string cCode, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{cCode}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
return await co.Delete(baseLogin, cCardNum, voucherInfo.VoucherType, cCode, bCheck, bBeforCheckStock, bList);
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message };
}
}
/// <summary>
/// 删除单据(ID)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="voucherId">单据ID</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[HttpGet]
[Route("api/U8/ST/{cCardNum}/Delete/ID")]
public async Task<BaseResult<string>> Delete(string cAccId, string cCardNum, long voucherId, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},ID:{voucherId}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
return await co.UnVerify(baseLogin, cCardNum, voucherInfo.VoucherType, voucherId, bCheck, bBeforCheckStock, bList);
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<string> { bSuccess = false, message = "删除失败", result = ex.Message };
}
}
/// <summary>
/// 删除单据(批量)
/// </summary>
/// <param name="cAccId">系统号</param>
/// <param name="cCardNum">单据类型编码</param>
/// <param name="input">报文</param>
/// <param name="bCheck">是否控制可用量</param>
/// <param name="bBeforCheckStock">是否检查可用量</param>
/// <param name="bList">是否列表</param>
/// <returns></returns>
[HttpPost]
[Route("api/U8/ST/{cCardNum}/Delete")]
public async Task<BaseResult<List<BaseResult<string>>>> Delete(string cAccId, string cCardNum, [FromBody] STInput input, bool bCheck = true, bool bBeforCheckStock = true, bool bList = false)
{
try
{
var db = CommUnit.GetDbClient();
var workId = SnowFlakeSingle.Instance.NextId();
if (input == null)
{
throw new Exception("参数不能为空");
}
var cCodes = input.cCode;
var voucherIds = input.voucherId;
if ((cCodes == null || cCodes.Count<=0) && (voucherIds == null || voucherIds.Count <= 0))
{
throw new Exception("没有数据需要删除");
}
var strCode = "";
var strId = "";
var apiType = cCodes == null || cCodes.Count <= 0 ? 1 : 0;
if (cCodes != null && cCodes.Count > 0)
{
strCode = string.Join(",", cCodes);
}
if (voucherIds != null && voucherIds.Count > 0)
{
strId = string.Join(",", voucherIds);
}
logInfo.Debug($"作业Id:{workId}-----单据:{cCardNum},操作:删除,对接账套:{cAccId},单号:{strCode},ID:{strId}");
//LoginParamter param;
if (!_cache.TryGetValue($"U8_{cAccId}", out BaseLogin baseLogin))
{
logInfo.Debug($"作业Id:{workId}-----未获取到缓存的登录信息,正在重新构建");
baseLogin = new BaseLogin();
var param = await CommUnit.GetLoginParamter(cAccId);
if (param == null)
{
throw new Exception("未能加载指定系统号的登录信息");
}
baseLogin.Init(param, false);
_cache.Clear();
_cache.Set($"U8_{cAccId}", baseLogin);
}
//else
//{
// param = await CommUnit.GetLoginParamter(cAccId);
//}
logInfo.Debug($"作业Id:{workId}-----登录信息获取完成,缓存设置完成,开始加载单据配置信息");
var voucherInfo = await db.Queryable<SysU8VoucherDefine>().FirstAsync(s => s.CardNumber == cCardNum);
var co = new USERPCO();
var result = apiType == 0
? await co.Delete(baseLogin, cCardNum, voucherInfo.VoucherType, cCodes, bCheck, bBeforCheckStock, bList)
: await co.Delete(baseLogin, cCardNum, voucherInfo.VoucherType, voucherIds, bCheck, bBeforCheckStock, bList);
var res = new BaseResult<List<BaseResult<string>>>()
{
bSuccess = true,
message = "删除完成",
result = result
};
return res;
}
catch (Exception ex)
{
logInfo.Error(ex.Message, ex);
return new BaseResult<List<BaseResult<string>>> { bSuccess = false, message = ex.Message, result = null };
}
}
}
}
+16
View File
@@ -0,0 +1,16 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace UFIDA.U8.Framework.Api.Models
{
/// <summary>
/// 批量审核弃审参数
/// </summary>
public class STInput
{
public List<string> cCode { get; set; }
public List<long> voucherId { get; set; }
}
}
@@ -421,6 +421,7 @@
<DependentUpon>Global.asax</DependentUpon>
</Compile>
<Compile Include="Models\SFCInput.cs" />
<Compile Include="Models\STInput.cs" />
<Compile Include="Models\U8AccountConfigInput.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="Unit\AssemblyDynamicLoader.cs" />