采购接口功能全部完成
This commit is contained in:
@@ -9,6 +9,7 @@ using System.Web.UI.WebControls;
|
||||
using ADODB;
|
||||
using GetComObj;
|
||||
using log4net;
|
||||
using Microsoft.VisualBasic.CompilerServices;
|
||||
using MSXML2;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using UFIDA.U8.Framework.Api.Common.Entity;
|
||||
@@ -81,6 +82,23 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common
|
||||
}
|
||||
}
|
||||
|
||||
public static dynamic SetVBPropValue(dynamic obj, string propName, object value)
|
||||
{
|
||||
NewLateBinding.LateSet(obj, null, propName, new[] { value }, null, null);
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
public static dynamic ToVoucherData(this Dictionary<string,object> dict,dynamic obj)
|
||||
{
|
||||
foreach (var dictKey in dict.Keys)
|
||||
{
|
||||
SetVBPropValue(obj, dictKey, dict[dictKey]);
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
//public static void SetPropValue(this PropertyInfo prop, VoucherData obj, object value)
|
||||
//{
|
||||
// if (prop.PropertyType == typeof(string))
|
||||
@@ -631,5 +649,181 @@ namespace UFIDA.U8.Framework.Api.ControlObject.Common
|
||||
|
||||
return s;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单据配置信息
|
||||
/// </summary>
|
||||
/// <param name="conn">连接对象</param>
|
||||
/// <param name="cCardNum">单据类型编码</param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="Exception"></exception>
|
||||
public static VouchersInfo GetVouchers(Connection conn,string cCardNum)
|
||||
{
|
||||
if (conn == null) throw new ArgumentNullException(nameof(conn));
|
||||
if (cCardNum == null) throw new ArgumentNullException(nameof(cCardNum));
|
||||
|
||||
var rst = new Recordset();
|
||||
|
||||
var strSql =
|
||||
$"SELECT CardNumber,BTTblName,BTQName,BWTblName,BWQName,VchListQName,VchTblPrimarykeyNames,ReceiptNOFieldName,cDefWhere,cHeadBusObjectId FROM dbo.vouchers WHERE CardNumber='{cCardNum}'";
|
||||
|
||||
rst.Open(strSql, conn);
|
||||
|
||||
if (rst.EOF || rst.BOF)
|
||||
{
|
||||
throw new Exception($"未查询到单据类型编码{cCardNum}的配置信息");
|
||||
}
|
||||
|
||||
rst.MoveFirst();
|
||||
|
||||
var res = new VouchersInfo
|
||||
{
|
||||
cDefWhere = string.IsNullOrWhiteSpace($"{rst.Fields["cDefWhere"].Value}") ? "1=1" : $"{rst.Fields["cDefWhere"].Value}",
|
||||
cBTQName = $"{rst.Fields["BTQName"].Value}",
|
||||
cBTTblName = $"{rst.Fields["BTTblName"].Value}",
|
||||
cBWQName = $"{rst.Fields["BWQName"].Value}",
|
||||
cBWTblName = $"{rst.Fields["BWTblName"].Value}",
|
||||
cVchTblPrimarykeyNames = $"{rst.Fields["VchTblPrimarykeyNames"].Value}",
|
||||
cVchListQName = $"{rst.Fields["VchListQName"].Value}",
|
||||
cCardNumber = $"{rst.Fields["CardNumber"].Value}",
|
||||
cHeadBusObjectId = $"{rst.Fields["cHeadBusObjectId"].Value}",
|
||||
cReceiptNOFieldName = $"{rst.Fields["ReceiptNOFieldName"].Value}"
|
||||
};
|
||||
|
||||
var codeName = $"{rst.Fields["ReceiptNOFieldName"].Value}";
|
||||
|
||||
if (codeName.Contains("{##}"))
|
||||
{
|
||||
codeName = codeName.Split('{', '#', '#', '}')[0];
|
||||
}
|
||||
|
||||
res.cCodeFieldName = codeName;
|
||||
res.voucherIdFieldName= $"{rst.Fields["VchTblPrimarykeyNames"].Value}";
|
||||
|
||||
rst.Close();
|
||||
|
||||
return res;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单据编号
|
||||
/// </summary>
|
||||
/// <param name="conn">连接对象</param>
|
||||
/// <param name="voucherId">单据Id</param>
|
||||
/// <param name="vouchers">单据配置信息</param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="ArgumentNullException"></exception>
|
||||
public static string GetVoucherCode(Connection conn,object voucherId, VouchersInfo vouchers)
|
||||
{
|
||||
if (conn == null) throw new ArgumentNullException(nameof(conn));
|
||||
if (voucherId == null) throw new ArgumentNullException(nameof(voucherId));
|
||||
if (vouchers == null) throw new ArgumentNullException(nameof(vouchers));
|
||||
|
||||
var tableName = vouchers.cBTTblName;
|
||||
var fieldName = vouchers.voucherIdFieldName;
|
||||
var codeName = vouchers.cCodeFieldName;
|
||||
var cDefWhere = vouchers.cDefWhere;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(cDefWhere))
|
||||
{
|
||||
cDefWhere = "1=1";
|
||||
}
|
||||
|
||||
var strSql = $"SELECT {codeName} AS cCode FROM {tableName} WHERE {cDefWhere} AND {fieldName}='{voucherId}'";
|
||||
|
||||
var rst = new Recordset();
|
||||
|
||||
rst.Open(strSql, conn);
|
||||
|
||||
if (rst.BOF || rst.EOF)
|
||||
{
|
||||
throw new Exception($"没有查询到ID为{voucherId}的单据");
|
||||
}
|
||||
|
||||
var cCode = $"{rst.Fields["cCode"].Value}";
|
||||
|
||||
return cCode;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取单据编号
|
||||
/// </summary>
|
||||
/// <param name="conn">连接对象</param>
|
||||
/// <param name="cVoucherCode">单据编号</param>
|
||||
/// <param name="vouchers">单据配置信息</param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="ArgumentNullException"></exception>
|
||||
public static object GetVoucherId(Connection conn, string cVoucherCode, VouchersInfo vouchers)
|
||||
{
|
||||
if (conn == null) throw new ArgumentNullException(nameof(conn));
|
||||
if (cVoucherCode == null) throw new ArgumentNullException(nameof(cVoucherCode));
|
||||
if (vouchers == null) throw new ArgumentNullException(nameof(vouchers));
|
||||
|
||||
var tableName = vouchers.cBTTblName;
|
||||
var fieldName = vouchers.voucherIdFieldName;
|
||||
var codeName = vouchers.cCodeFieldName;
|
||||
var cDefWhere = vouchers.cDefWhere;
|
||||
|
||||
if (string.IsNullOrWhiteSpace(cDefWhere))
|
||||
{
|
||||
cDefWhere = "1=1";
|
||||
}
|
||||
|
||||
var strSql = $"SELECT {fieldName} AS ID FROM {tableName} WHERE {cDefWhere} AND {codeName}='{cVoucherCode}'";
|
||||
|
||||
logInfo.Debug($"查询ID:{strSql}");
|
||||
|
||||
var rst = new Recordset();
|
||||
|
||||
rst.Open(strSql, conn);
|
||||
|
||||
if (rst.BOF || rst.EOF)
|
||||
{
|
||||
throw new Exception($"没有查询到单据编号为{cVoucherCode}的单据");
|
||||
}
|
||||
|
||||
var voucherId = rst.Fields["ID"].Value;
|
||||
|
||||
return voucherId;
|
||||
|
||||
}
|
||||
|
||||
public static string GetVoucherWhereSqlByCode(VouchersInfo vouchers,string cVoucherCode)
|
||||
{
|
||||
var tableName = vouchers.cBTTblName;
|
||||
var fieldName = vouchers.voucherIdFieldName;
|
||||
var codeName = vouchers.cCodeFieldName;
|
||||
var cDefWhere = vouchers.cDefWhere;
|
||||
return $"{cDefWhere} AND {codeName}='{cVoucherCode}'";
|
||||
}
|
||||
|
||||
public static string GetVoucherWhereSqlById(VouchersInfo vouchers, object voucherId)
|
||||
{
|
||||
var tableName = vouchers.cBTTblName;
|
||||
var fieldName = vouchers.voucherIdFieldName;
|
||||
var codeName = vouchers.cCodeFieldName;
|
||||
var cDefWhere = vouchers.cDefWhere;
|
||||
return $"{cDefWhere} AND {fieldName}='{voucherId}'";
|
||||
}
|
||||
|
||||
|
||||
public static string GetPUVoucherWhereSqlByCode(VouchersInfo vouchers, string cVoucherCode)
|
||||
{
|
||||
var tableName = vouchers.cBTQName;
|
||||
var fieldName = vouchers.voucherIdFieldName;
|
||||
var codeName = vouchers.cCodeFieldName;
|
||||
var cDefWhere = vouchers.cDefWhere;
|
||||
return $"{cDefWhere} AND {tableName}.{codeName}='{cVoucherCode}'";
|
||||
}
|
||||
|
||||
public static string GetPUVoucherWhereSqlById(VouchersInfo vouchers, object voucherId)
|
||||
{
|
||||
var tableName = vouchers.cBTQName;
|
||||
var fieldName = vouchers.voucherIdFieldName;
|
||||
var codeName = vouchers.cCodeFieldName;
|
||||
var cDefWhere = vouchers.cDefWhere;
|
||||
return $"{cDefWhere} AND {tableName}.{fieldName}='{voucherId}'";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user