| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- namespace Admin.NET.Plugin.AiDOP.MaterialWarehouse.InventoryPosting.Receipt;
- /// <summary>C6 采购收货回写对账结果(前值→delta→后值 + 未收余量 + 完成状态)。</summary>
- public sealed class PurchaseReceiptWritebackResult
- {
- public decimal QtyOrdered { get; set; }
- public decimal ReturnedQty { get; set; }
- public decimal BeforeReceivedQty { get; set; }
- public decimal AcceptedQty { get; set; }
- public decimal AfterReceivedQty { get; set; }
- public decimal BeforeOutstandingQty { get; set; }
- public decimal AfterOutstandingQty { get; set; }
- /// <summary>明细完成(LIVE PurOrdMaster 关闭判据:(RctQty-QtyReturned)>=QtyOrded)。</summary>
- public bool DetailCompleted { get; set; }
- }
- /// <summary>
- /// C6 采购收货回写量变纯计算(无 DB,可全量单测)。据 pr_WMS_UpdatePurOrdRctTransactionProcessing2 LIVE:
- /// 正常收货 PurOrdDetail.RctQty += QtyReceived(L147);关闭判据 (RctQty-QtyReturned)>=QtyOrded(L223)。
- /// 未收余量 = QtyOrded - (RctQty - QtyReturned)。
- /// </summary>
- public static class PurchaseReceiptWritebackCalculator
- {
- public static PurchaseReceiptWritebackResult Compute(decimal orderedQty, decimal beforeReceivedQty, decimal returnedQty, decimal acceptedQty)
- {
- var afterReceived = beforeReceivedQty + acceptedQty;
- var effectiveBefore = beforeReceivedQty - returnedQty;
- var effectiveAfter = afterReceived - returnedQty;
- return new PurchaseReceiptWritebackResult
- {
- QtyOrdered = orderedQty,
- ReturnedQty = returnedQty,
- BeforeReceivedQty = beforeReceivedQty,
- AcceptedQty = acceptedQty,
- AfterReceivedQty = afterReceived,
- BeforeOutstandingQty = orderedQty - effectiveBefore,
- AfterOutstandingQty = orderedQty - effectiveAfter,
- DetailCompleted = effectiveAfter >= orderedQty,
- };
- }
- }
|