format('Y'); $prefix = "MR-{$year}-"; $last = MaterialRequisition::where('document_number', 'like', "{$prefix}%") ->orderByDesc('document_number') ->value('document_number'); $nextSeq = 1; if ($last) { $seq = (int) str_replace($prefix, '', $last); $nextSeq = $seq + 1; } return $prefix . str_pad($nextSeq, 4, '0', STR_PAD_LEFT); } public function nextPoNumber(): string { $year = now()->format('Y'); $prefix = "PO-{$year}-"; $last = PurchaseOrder::where('document_number', 'like', "{$prefix}%") ->orderByDesc('document_number') ->value('document_number'); $nextSeq = 1; if ($last) { $seq = (int) str_replace($prefix, '', $last); $nextSeq = $seq + 1; } return $prefix . str_pad($nextSeq, 4, '0', STR_PAD_LEFT); } }