invoice no : GWM
This commit is contained in:
parent
c75e855836
commit
e18c55e38d
@ -99,7 +99,6 @@ class InvoiceController extends ResourceController
|
||||
|
||||
// Basic invoice data
|
||||
$invoiceData = [
|
||||
'invoice_no' => $input['invoice_no'] ?? '',
|
||||
'invoice_amount' => $input['invoice_amount'] ?? 0,
|
||||
'broker_id' => $input['broker_id'] ?? 0,
|
||||
'pos_id' => $input['pos_id'] ?? 0,
|
||||
@ -115,6 +114,9 @@ class InvoiceController extends ResourceController
|
||||
|
||||
if (!$invoiceId) {
|
||||
|
||||
// Generate invoice number only for CREATE
|
||||
$invoiceData['invoice_no'] = $this->generateInvoiceNo();
|
||||
|
||||
$invoiceData['created_at'] = date('Y-m-d H:i:s');
|
||||
$invoiceData['created_by'] = $input['created_by'] ?? 0;
|
||||
|
||||
@ -123,6 +125,10 @@ class InvoiceController extends ResourceController
|
||||
if (!$invoiceId) { throw new DataException("Failed to create invoice"); }
|
||||
|
||||
} else {
|
||||
|
||||
// Invoice number should NOT change on update
|
||||
unset($invoiceData['invoice_no']);
|
||||
|
||||
$this->InvoiceModel->update($invoiceId, $invoiceData);
|
||||
}
|
||||
|
||||
@ -175,6 +181,30 @@ class InvoiceController extends ResourceController
|
||||
}
|
||||
}
|
||||
|
||||
private function generateInvoiceNo()
|
||||
{
|
||||
$year = date('Y');
|
||||
$prefix = "INV/$year/";
|
||||
|
||||
// Get last invoice of current year
|
||||
$lastInvoice = $this->InvoiceModel
|
||||
->select('invoice_no')
|
||||
->like('invoice_no', $prefix, 'after')
|
||||
->orderBy('id', 'DESC')
|
||||
->first();
|
||||
|
||||
if ($lastInvoice && isset($lastInvoice['invoice_no'])) {
|
||||
// Extract numeric part
|
||||
$lastNumber = intval(substr($lastInvoice['invoice_no'], -5));
|
||||
$nextNumber = $lastNumber + 1;
|
||||
} else {
|
||||
$nextNumber = 1;
|
||||
}
|
||||
|
||||
return $prefix . str_pad($nextNumber, 5, '0', STR_PAD_LEFT);
|
||||
}
|
||||
|
||||
|
||||
public function deleteInvoice()
|
||||
{
|
||||
try {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user