ultimatepos/Modules/Maintenance/Services/WorkOrderService.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);
}
}