27 lines
681 B
PHP
27 lines
681 B
PHP
<?php
|
|
|
|
namespace Modules\Maintenance\Services;
|
|
|
|
use App\Business;
|
|
use Modules\Maintenance\Models\WorkOrder;
|
|
|
|
class WorkOrderService
|
|
{
|
|
public function generateNumber(Business $business): string
|
|
{
|
|
$prefix = 'WO-'.now()->format('Ym').'-';
|
|
$last = WorkOrder::withTrashed()
|
|
->where('business_id', $business->id)
|
|
->where('work_order_number', 'like', $prefix.'%')
|
|
->orderByDesc('id')
|
|
->value('work_order_number');
|
|
|
|
$seq = 1;
|
|
if ($last && preg_match('/-(\d+)$/', $last, $m)) {
|
|
$seq = (int) $m[1] + 1;
|
|
}
|
|
|
|
return $prefix.str_pad((string) $seq, 4, '0', STR_PAD_LEFT);
|
|
}
|
|
}
|