document number sequence
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/DocumentNumberManager.php';
|
||||
require_once __DIR__ . '/../classes_ac/PostingWindowGuard.php';
|
||||
|
||||
/**
|
||||
@@ -31,18 +32,10 @@ class PurchaseRequestManager
|
||||
// Private helpers
|
||||
// ─────────────────────────────────────────────────────────────
|
||||
|
||||
private function generateNumber(): string
|
||||
private function generateNumber(array $data = []): string
|
||||
{
|
||||
$prefix = 'PR-' . date('Ym') . '-';
|
||||
$sth = $this->pdo->prepare(
|
||||
"SELECT request_number FROM td_purchase_request
|
||||
WHERE company_id = :cid AND request_number LIKE :prefix
|
||||
ORDER BY request_number DESC LIMIT 1"
|
||||
);
|
||||
$sth->execute([':cid' => $this->company_id, ':prefix' => $prefix . '%']);
|
||||
$last = $sth->fetchColumn();
|
||||
$seq = $last ? ((int)substr($last, -4) + 1) : 1;
|
||||
return $prefix . str_pad($seq, 4, '0', STR_PAD_LEFT);
|
||||
return (new DocumentNumberManager($this->pdo, $this->company_id))
|
||||
->resolveNumber($data, 'purchase_request', 'td_purchase_request', 'request_number');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -176,7 +169,7 @@ class PurchaseRequestManager
|
||||
[$subtotal, $tax, $grand] = $this->computeTotals($items, $discount, $shipping_fee);
|
||||
|
||||
if ($id === 0) {
|
||||
$number = $this->generateNumber();
|
||||
$number = $this->generateNumber($data);
|
||||
$log = [array_merge($logging, ['action' => 'create_purchase_request'])];
|
||||
|
||||
$this->pdo->prepare(
|
||||
|
||||
Reference in New Issue
Block a user