From 0d720f3515bc1560235084d910e2738456e0d05f Mon Sep 17 00:00:00 2001 From: sky121113 Date: Thu, 29 Jan 2026 16:48:01 +0800 Subject: [PATCH] Refactor: Standardize Transfer Order Doc Numbering - Updated InventoryTransferOrder boot method to use sequential numbering (TRF+Ymd+Seq) matching InventoryAdjustDoc logic. --- .../Inventory/Models/InventoryTransferOrder.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/app/Modules/Inventory/Models/InventoryTransferOrder.php b/app/Modules/Inventory/Models/InventoryTransferOrder.php index 8a4a63a..d9cc54a 100644 --- a/app/Modules/Inventory/Models/InventoryTransferOrder.php +++ b/app/Modules/Inventory/Models/InventoryTransferOrder.php @@ -34,7 +34,21 @@ class InventoryTransferOrder extends Model static::creating(function ($model) { if (empty($model->doc_no)) { - $model->doc_no = 'TRF-' . date('YmdHis') . '-' . rand(100, 999); + $today = date('Ymd'); + $prefix = 'TRF' . $today; + + $lastDoc = static::where('doc_no', 'like', $prefix . '%') + ->orderBy('doc_no', 'desc') + ->first(); + + if ($lastDoc) { + $lastNumber = substr($lastDoc->doc_no, -2); + $nextNumber = str_pad((int)$lastNumber + 1, 2, '0', STR_PAD_LEFT); + } else { + $nextNumber = '01'; + } + + $model->doc_no = $prefix . $nextNumber; } }); }