Commit 2218a692 by 陶然

新增创建空账单接口

parent df2d17cb
...@@ -38,10 +38,10 @@ namespace Kivii.Finances ...@@ -38,10 +38,10 @@ namespace Kivii.Finances
return offsetBillDetail; return offsetBillDetail;
} }
public static Bill Accept(this Bill bill, List<Settlement> settlements, IDbConnection conn = null) public static Bill Accept(this Bill bill, List<Settlement> settlements = null, IDbConnection conn = null)
{ {
bill.ThrowIfNull("账单不能为空!"); bill.ThrowIfNull("账单不能为空!");
settlements.ThrowIfNullOrEmpty("结算不能为空!"); //settlements.ThrowIfNullOrEmpty("结算不能为空!");
var rtns = new Bill(); var rtns = new Bill();
...@@ -65,24 +65,27 @@ namespace Kivii.Finances ...@@ -65,24 +65,27 @@ namespace Kivii.Finances
rtns.OwnerName = KiviiContext.CurrentMember.DepartmentName; rtns.OwnerName = KiviiContext.CurrentMember.DepartmentName;
conn.Insert(rtns); conn.Insert(rtns);
foreach (var settlement in settlements) if (!settlements.IsNullOrEmpty())
{ {
var billDetail = new BillDetail(); foreach (var settlement in settlements)
billDetail.BillKvid = billKvid; {
var billDetail = new BillDetail();
billDetail.BillKvid = billKvid;
billDetail.BizId = settlement.SerialNumber; billDetail.BizId = settlement.SerialNumber;
billDetail.BizType = typeof(Settlement).FullName; billDetail.BizType = typeof(Settlement).FullName;
billDetail.BizKvid = settlement.Kvid; billDetail.BizKvid = settlement.Kvid;
billDetail.Type = settlement.Type; billDetail.Type = settlement.Type;
billDetail.Amount = settlement.Amount; billDetail.Amount = settlement.Amount;
billDetail.Currency = settlement.Currency; billDetail.Currency = settlement.Currency;
billDetail.Summary = settlement.Summary; billDetail.Summary = settlement.Summary;
billDetail.Remark = settlement.Remark; billDetail.Remark = settlement.Remark;
billDetail.OperateTime = DateTime.Now; billDetail.OperateTime = DateTime.Now;
billDetail.OperatorKvid = KiviiContext.CurrentMember.Kvid; billDetail.OperatorKvid = KiviiContext.CurrentMember.Kvid;
billDetail.OperatorName = KiviiContext.CurrentMember.FullName; billDetail.OperatorName = KiviiContext.CurrentMember.FullName;
conn.Insert(billDetail); conn.Insert(billDetail);
}
} }
trans?.Commit(); trans?.Commit();
return rtns; return rtns;
...@@ -92,7 +95,6 @@ namespace Kivii.Finances ...@@ -92,7 +95,6 @@ namespace Kivii.Finances
trans?.Rollback(); trans?.Rollback();
throw ex; throw ex;
} }
} }
......
...@@ -197,4 +197,41 @@ namespace Kivii.Finances.Transforms ...@@ -197,4 +197,41 @@ namespace Kivii.Finances.Transforms
return rtns; return rtns;
} }
} }
[Api(Description = "创建空账单")]
[RequiresAnyRole(SystemRoles.Everyone)]
public class BillCreateEx:RestfulExecution<Bill>
{
public Bill Item { get; set; }
public override object OnExecution(IRequest req, IResponse res)
{
if (Item.PayerName.IsNullOrEmpty() || Item.PayeeName.IsNullOrEmpty()) throw new Exception("收付双方不能为空!");
if (Item.Currency == CurrencyUnit.Unsupported) throw new Exception("未传入货币单位!");
var conn = KiviiContext.GetOpenedDbConnection<Bill>();
conn.InitEntityType<Bill>();
conn.InitEntityType<BillDetail>();
if (Item.Amount<=0) throw new Exception("账单金额不能小于0!");
var rtns = new RestfulCreateResponse<Bill>();
rtns.Results = new List<Bill>();
//var trans = conn.OpenTransaction();
try
{
var bill = Item.Accept(null,conn);
bill.RemoveAllOnlyProperties();
rtns.Results.Add(bill);
//trans.Commit();
}
catch (Exception ex)
{
//trans.Rollback();
throw ex;
}
return rtns;
}
}
} }
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