我正在尝试生成唯一的顺序发票编号。发票是使用1名工作人员的队列生成的,但是在160张发票中,有28张仍然有重复的编号。 以下是用于生成唯一发票编号的代码。
public static function getNewInvoiceNumber(String $prefix)
{
$lastNumber = App\Invoice::where('invoiceNumber', 'LIKE', $prefix . now()->year . '-%')->orderByDesc('invoiceID')->first()->invoiceNumber ?? '0';
$newNumber = (int)substr($lastNumber, strlen($prefix . now()->year . '-')) + 1;
while (App\Invoice::where('invoiceNumber', $prefix . now()->year . '-' . $newNumber)->exists()) {
$newNumber++;
}
return $newNumber;
}