Files
GSB-Construction/Modules/MaterialLogistics/app/Services/DocumentNumberService.php

46 lines
1.2 KiB
PHP

<?php
namespace Modules\MaterialLogistics\Services;
use Modules\MaterialLogistics\Models\MaterialRequisition;
use Modules\MaterialLogistics\Models\PurchaseOrder;
class DocumentNumberService
{
public function nextMrNumber(): string
{
$year = now()->format('Y');
$prefix = "MR-{$year}-";
$last = MaterialRequisition::where('document_number', 'like', "{$prefix}%")
->orderByDesc('document_number')
->value('document_number');
$nextSeq = 1;
if ($last) {
$seq = (int) str_replace($prefix, '', $last);
$nextSeq = $seq + 1;
}
return $prefix . str_pad($nextSeq, 4, '0', STR_PAD_LEFT);
}
public function nextPoNumber(): string
{
$year = now()->format('Y');
$prefix = "PO-{$year}-";
$last = PurchaseOrder::where('document_number', 'like', "{$prefix}%")
->orderByDesc('document_number')
->value('document_number');
$nextSeq = 1;
if ($last) {
$seq = (int) str_replace($prefix, '', $last);
$nextSeq = $seq + 1;
}
return $prefix . str_pad($nextSeq, 4, '0', STR_PAD_LEFT);
}
}