diff --git a/src/Models/TicketingGroup.php b/src/Models/TicketingGroup.php index 56d71e1..b42778d 100644 --- a/src/Models/TicketingGroup.php +++ b/src/Models/TicketingGroup.php @@ -36,7 +36,13 @@ class TicketingGroup extends Model public function nextTicketNumber(): string { - $count = $this->tickets()->count() + 1; - return $this->prefix . '-' . str_pad($count, 4, '0', STR_PAD_LEFT); + $prefix = $this->prefix . '-'; + $last = $this->tickets() + ->where('number', 'like', $prefix . '%') + ->orderByRaw('CAST(SUBSTRING(number, ?) AS UNSIGNED) DESC', [strlen($prefix) + 1]) + ->value('number'); + + $next = $last ? ((int) substr($last, strlen($prefix))) + 1 : 1; + return $prefix . str_pad($next, 4, '0', STR_PAD_LEFT); } }