This commit is contained in:
余宇波 2025-06-26 10:07:23 +08:00
parent 70fcef4ec1
commit 13a4f0b7e9
3 changed files with 122 additions and 0 deletions

View File

@ -51,5 +51,15 @@ namespace MyCode.Project.Services
/// <param name="act"></param>
void BatchSetFaPiao(FaPiaoAct act);
/// <summary>
/// 删除某个发货单明细
/// </summary>
/// <param name="formId"></param>
/// <param name="billdelete"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
void DeleteOrderDetail(IdAct act, LoginInfo loginInfo);
}
}

View File

@ -445,6 +445,107 @@ namespace MyCode.Project.Services.Implementation
}
#endregion
#region DeleteOrderDetail()
/// <summary>
/// 删除某个发货单明细
/// </summary>
/// <param name="formId"></param>
/// <param name="billdelete"></param>
/// <returns></returns>
/// <exception cref="Exception"></exception>
[TransactionCallHandler]
public void DeleteOrderDetail(IdAct act, LoginInfo loginInfo)
{
var orderItems = _invoiceOrderItemRepository.Queryable().Where(t => t.Id == act.Id).ToList();
Guid pid = orderItems.Select(t => t.InvoiceOrderId.Value).FirstOrDefault();
var orderHead = _invoiceOrderRepository.Queryable().Where(t => t.SupplierId == loginInfo.SupplierId && t.Id == pid).First();
var ids = orderItems.Select(t => t.Id).ToList();
if (orderHead == null)
{
throw new BaseException("订单数据不正确");
}
orderItems = _invoiceOrderItemRepository.Queryable().Where(t => t.InvoiceOrderId == orderHead.Id).ToList();
var OrderItemIds = orderItems.Select(t => t.PurchaseOrderItemId).ToList();
BillDelete billDelete = new BillDelete();
if (orderItems.Count == 1)
{
billDelete.Numbers = orderHead.FBillNo;
try
{
var result = _kingDeeService.Delete("PUR_ReceiveBill", billDelete);
//LogHelper.Info(result);
var purchaseItem = _purchaseOrderItemRepository.Queryable().Where(t => OrderItemIds.Contains(t.Id)).ToList();
purchaseItem.ForEach(t =>
{
var temp = orderItems.FirstOrDefault(h => h.PurchaseOrderItemId == t.Id);
if (temp != null)
{
t.FRemainReceiveQty = t.FRemainReceiveQty + temp.Qty.SafeValue();
t.FReceiveQty = t.FReceiveQty - temp.Qty.SafeValue();
}
});
_purchaseOrderItemRepository.Update(purchaseItem);
_invoiceOrderItemRepository.Delete(t => t.InvoiceOrderId == orderHead.Id);
_invoiceOrderRepository.Delete(t => t.Id == orderHead.Id);
_tiaoMaRepository.Delete(t => ids.Contains(t.InvoceOrderItemId.Value));
}
catch (Exception ex)
{
throw new BaseException($"删除失败,原因是{ex.Message}");
}
}
else
{
var one = orderItems.FirstOrDefault(t=>t.Id==act.Id);
if (one != null)
{
if (one.EntityId != null)
{
SetMSSSupplierLot(orderHead.Sheet);
}
one = _invoiceOrderItemRepository.Queryable().Where(t => t.Id == act.Id).First();
if (one.EntityId == null)
{
_invoiceOrderItemRepository.Delete(t => t.Id == act.Id);
}
else
{
billDelete.Ids = one.EntityId.ToString();
try
{
var result = _kingDeeService.Delete("PUR_ReceiveBill", billDelete);
//LogHelper.Info(result);
var purchaseItem = _purchaseOrderItemRepository.Queryable().Where(t => one.PurchaseOrderItemId==t.Id).ToList();
purchaseItem.ForEach(t =>
{
var temp = orderItems.FirstOrDefault(h => h.PurchaseOrderItemId == t.Id);
if (temp != null)
{
t.FRemainReceiveQty = t.FRemainReceiveQty + temp.Qty.SafeValue();
t.FReceiveQty = t.FReceiveQty - temp.Qty.SafeValue();
}
});
_purchaseOrderItemRepository.Update(purchaseItem);
_invoiceOrderItemRepository.Delete(t => t.Id == one.Id);
_tiaoMaRepository.Delete(t => t.InvoceOrderItemId== one.Id);
}
catch (Exception ex)
{
throw new BaseException($"删除失败,原因是{ex.Message}");
}
}
}
}
}
#endregion
}
}

View File

@ -85,5 +85,16 @@ namespace MyCode.Project.WebApi.Areas.Admin.Controllers
}
#endregion
#region DeleteOrderDetail()
/// <summary>
/// 删除某个发货单明细
/// </summary>
/// <param name="act"></param>
[HttpPost]
public void DeleteOrderDetail(IdAct act)
{
_invoiceOrderService.DeleteOrderDetail(act, this.CurrentLogin);
}
#endregion
}
}