issue 268 作廢申請單時管理費回收範圍決策鏈
這頁保留「已完成申請單作廢時,管理費該怎麼還原/回收」的 source。它也是補發換號、換裝跟號、管理費退費互相交會的頁。
最終結論
作廢已完成申請單時,只能回收或還原「本次申請單造成的管理費變動」。不能因為權狀底下有有效管理費,就批次刪掉與本次異動無關的既有管理費。
PM 對 #268 五種情境的方向:
| 情境 | 方向 |
|---|
| Q1/Q2 與本次異動無關的管理費 | 不移動、不刪除 |
| Q3 本次退費造成的 management fee row | 作廢時恢復退費前狀態 |
| Q4 後面已有更新申請單 | 擋作廢或要求先處理較新的申請 |
| Q5 找不到 materialization trace | 不猜測回復,走硬阻擋/人工處理 |
決策鏈
| 來源 | 內容 |
|---|
| #51 | 早期決議 B:作廢時需連動退費/管理費。 |
| #205 | 狀態機統整,作廢/還原需分清資料狀態、資產狀態、副作用。 |
| #266 | 發現作廢某些完成單時,誤刪與本次異動無關的既有有效管理費。 |
| #268 | PM 拍板五種管理費作廢情境,形成現行規則。 |
現行 code 錨點
| 目的 | 錨點 |
|---|
| 整單作廢入口 | ApplicationActionService.CancelAsync |
| 權狀/管理費作廢處理 | ApplicationActionService.VoidCertificateItemsAsync |
| 管理費軟刪 | DeleteManagementFeeDetailAsync |
| 預繳列還原/搬移 | ApplyPrepayRowFieldsAsync |
| 規格變更作廢回復 | RollbackSpecChangeOnVoidAsync |
驗證錨點
| 驗證 | 結論 |
|---|
Verify-Issue266-VoidDoesNotRefundUnrelatedFees.cs | 作廢不應刪除不相關既有管理費。 |
Verify-Issue268-Q4-LaterAppOrderGuard.cs | 後面已有更新申請單時,作廢順序要被守住。 |
Verify-Issue268-* | 覆蓋退費回復、管理費搬移、無 trace 阻擋等情境。 |
注意事項
- 這頁回答「作廢時管理費怎麼處理」,不是「管理費定價怎麼算」。
- 補發換號、換裝跟號後再作廢,都要回到「只處理本次申請造成的變動」。
- 沒有 materialization trace 時不要用推測資料自動回復。