Commit aa31e884 by 陶然

优化发票删除功能

parent 6d260e04
...@@ -210,22 +210,33 @@ namespace Kivii.Finances.Transforms ...@@ -210,22 +210,33 @@ namespace Kivii.Finances.Transforms
if (invoices.Exists(o => o.OffsetKvid == Guid.Empty)) throw new Exception("存在未作废的发票,请先作废后再删除!"); if (invoices.Exists(o => o.OffsetKvid == Guid.Empty)) throw new Exception("存在未作废的发票,请先作废后再删除!");
var offsets = conn.SelectByIds<Invoice>(invoices.ConvertAll(p => p.OffsetKvid)); var offsets = conn.SelectByIds<Invoice>(invoices.ConvertAll(p => p.OffsetKvid));
var rtns = new RestfulUpdateResponse<Invoice>(); var deletes = new List<Guid>();
rtns.Results = new List<Invoice>(); if (!offsets.IsNullOrEmpty())
var trans = conn.OpenTransaction();
try
{ {
foreach (var item in invoices) foreach (var item in invoices)
{ {
conn.DeleteById<Invoice>(item.Kvid); deletes.AddIfNotExists(item.Kvid);
rtns.Results.Add(item); }
} }
if (!offsets.IsNullOrEmpty())
{
foreach (var item in offsets) foreach (var item in offsets)
{ {
conn.DeleteById<Invoice>(item.Kvid); deletes.AddIfNotExists(item.Kvid);
rtns.Results.Add(item);
} }
}
var rtns = new RestfulDeleteResponse<Guid>();
rtns.Results = new List<Guid>();
var trans = conn.OpenTransaction();
try
{
foreach (var kvid in deletes)
{
conn.DeleteById<Invoice>(kvid);
rtns.Results.Add(kvid);
}
trans.Commit(); trans.Commit();
} }
catch (Exception ex) catch (Exception ex)
......
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