pases 5 ticket updates

This commit is contained in:
Mark Gregory
2026-06-23 11:10:52 +01:00
parent 2266298b6c
commit 7c4a94b5ea
12 changed files with 312 additions and 11 deletions
@@ -30,16 +30,23 @@ final class TicketReferenceService
$this->lockReferenceSeries($prefix);
$lastReference = Ticket::query()
/** @var list<string> $existingReferences */
$existingReferences = Ticket::query()
->withoutGlobalScopes()
->withTrashed()
->where('reference', 'like', $prefix.'%')
->orderByDesc('reference')
->value('reference');
->pluck('reference')
->filter(static fn (mixed $reference): bool => is_string($reference) && preg_match('/^'.preg_quote($prefix, '/').'\d+$/', $reference) === 1)
->values()
->all();
$next = $lastReference === null
? 1
: ((int) substr((string) $lastReference, -5)) + 1;
$highestSuffix = 0;
return $prefix.str_pad((string) $next, 5, '0', STR_PAD_LEFT);
foreach ($existingReferences as $existingReference) {
$highestSuffix = max($highestSuffix, (int) substr($existingReference, strlen($prefix)));
}
return $prefix.str_pad((string) ($highestSuffix + 1), 5, '0', STR_PAD_LEFT);
}
/**