Files
WMS/Modules/Helpdesk/Services/TicketReferenceService.php
T
2026-06-12 15:11:51 +01:00

28 lines
623 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.
*/
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);
}
}