Commit a797eb70 by 陶然

增加扫码支付功能,实现自动生成流水并关联结算

parent 4125b3f8
......@@ -406,10 +406,69 @@ namespace Com.Bocom.OpenApi
var amountPayed = settlements.Sum(o => o.AmountPayment);
var amountTotal = decimal.Parse(receiveCode.total_amount);
if (amountTotal != amountSettlement - amountPayed) return;
var account = CurrencyUnit.CNY.GetBocomAccount();
var accountBalance = CurrencyUnit.CNY.GetBalanceAccount();
#region 生成扫码支付流水信息并认领
var paymentKvid = Guid.NewGuid();
var payment = new Payment();
payment.Kvid = paymentKvid;
payment.RootKvid = payment.Kvid;
payment.SerialNumber = receiveCode.response_time;
payment.PayerName = $"[扫码支付]{receiveCode.mer_memo}";
payment.PayerAccountKvid = accountBalance.Kvid;
payment.PayerAccountName = accountBalance.Name;
payment.PayerAccountOwnerName = accountBalance.OwnerName;
payment.PayerAccountSerialNumber = accountBalance.SerialNumber;
payment.PayeeName = KiviiContext.CurrentMember.OrganizationName;
payment.Type = PaymentType.Bank;
//payment.Category = "市场业务收入";
payment.OperateTime = DateTime.ParseExact(receiveCode.response_time, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
payment.OperatorKvid = KiviiContext.CurrentMember.Kvid;
payment.OperatorName = KiviiContext.CurrentMember.FullName;
payment.Summary = receiveCode.tran_content;
payment.Amount = amountTotal;
payment.Currency = CurrencyUnit.CNY;
payment.BizId = receiveCode.response_time;
payment.BizType = typeof(ReceiveCode).FullName;
payment.BizKvid = receiveCode.Kvid;
var accountDetail = payment.Accept(out Pay pay);
var trans1 = conn.OpenTransaction();
try
{
conn.Insert(payment);
accountDetail.Insert(conn);
conn.Insert(pay);
trans1.Commit();
}
catch (Exception ex)
{
trans1.Rollback();
throw ex;
}
var split = payment.BizSplit(payment.Amount, "自动认领", null, null, conn, "市场业务收入", payment.OperatorKvid, payment.OperatorName);
var trans2=conn.OpenTransaction();
try
{
conn.Insert(split);
payment.RecalculateAmountSplit(conn);
trans2.Commit();
}
catch (Exception ex)
{
trans2.Rollback();
throw ex;
}
#endregion
//var account = CurrencyUnit.CNY.GetBocomAccount();
var accountBiz = CurrencyUnit.CNY.GetBizAccount();
var accountDetails = settlements.Paying(account, accountBiz, out var pays, amountTotal);
var dynamicPayPayment = settlements.Paying(split, accountBiz, out var pays, out var accountDetailPayed, amountTotal);
var trans = conn.OpenTransaction();
try
......@@ -418,7 +477,10 @@ namespace Com.Bocom.OpenApi
{
conn.Insert(item);
}
accountDetails.ForEach(o => o.Insert(conn));//创建账户明细
dynamicPayPayment.SerialNumber = split.GetSubSerialNumber(conn);
conn.Insert(dynamicPayPayment);//创建DynamicSplitPayment
accountDetail.Insert(conn);
split.RecalculateAmountUsed(conn);//重新统计到账的使用情况
#region 同步更新泛型Settlement表中数据
foreach (var item in settlements)
......
......@@ -33,5 +33,5 @@ using System.Runtime.InteropServices;
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("5.4.2023.10190")]
[assembly: AssemblyFileVersion("5.4.2023.10190")]
[assembly: AssemblyVersion("5.4.2024.1150")]
[assembly: AssemblyFileVersion("5.4.2024.1150")]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment