Files
WMS/Modules/Helpdesk/Services/TicketReferenceService.php
T
2026-06-12 09:41:57 +01:00

30 lines
660 B
PHP

<?php
declare(strict_types=1);
namespace Modules\Helpdesk\Services;
use Modules\Helpdesk\Models\Ticket;
final class TicketReferenceService
{
/**
* Build the next human-readable ticket reference.
*
* @return string
*/
public function next(): string
{
$year = now()->format('Y');
$prefix = 'HD-' . $year . '-';
$last = Ticket::query()
->where('reference', 'like', $prefix . '%')
->latest('id')
->value('reference');
$next = $last ? ((int) substr((string) $last, -5)) + 1 : 1;
return $prefix . str_pad((string) $next, 5, '0', STR_PAD_LEFT);
}
}