diff --git a/MyCode.Project.Services/IServices/IInvoiceOrderService.cs b/MyCode.Project.Services/IServices/IInvoiceOrderService.cs
index 8dafd8f..f6c469b 100644
--- a/MyCode.Project.Services/IServices/IInvoiceOrderService.cs
+++ b/MyCode.Project.Services/IServices/IInvoiceOrderService.cs
@@ -51,5 +51,15 @@ namespace MyCode.Project.Services
///
void BatchSetFaPiao(FaPiaoAct act);
+
+ ///
+ /// 删除某个发货单明细
+ ///
+ ///
+ ///
+ ///
+ ///
+
+ void DeleteOrderDetail(IdAct act, LoginInfo loginInfo);
}
}
diff --git a/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs b/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs
index e9ef9a8..358379f 100644
--- a/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs
+++ b/MyCode.Project.Services/Implementation/InvoiceOrder/InvoiceOrderService.cs
@@ -445,6 +445,107 @@ namespace MyCode.Project.Services.Implementation
}
#endregion
+
+ #region DeleteOrderDetail(删除某个发货单明细)
+ ///
+ /// 删除某个发货单明细
+ ///
+ ///
+ ///
+ ///
+ ///
+ [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
+
}
}
diff --git a/MyCode.Project.WebApi/Areas/Admin/Controllers/InvoiceOrderController.cs b/MyCode.Project.WebApi/Areas/Admin/Controllers/InvoiceOrderController.cs
index e1f8e20..0d54874 100644
--- a/MyCode.Project.WebApi/Areas/Admin/Controllers/InvoiceOrderController.cs
+++ b/MyCode.Project.WebApi/Areas/Admin/Controllers/InvoiceOrderController.cs
@@ -85,5 +85,16 @@ namespace MyCode.Project.WebApi.Areas.Admin.Controllers
}
#endregion
+ #region DeleteOrderDetail(删除某个发货单明细)
+ ///
+ /// 删除某个发货单明细
+ ///
+ ///
+ [HttpPost]
+ public void DeleteOrderDetail(IdAct act)
+ {
+ _invoiceOrderService.DeleteOrderDetail(act, this.CurrentLogin);
+ }
+ #endregion
}
}