Files
wticreatorstudio/Modules/StaffPayroll/Services/InvoiceSettingService.php
T
2024-02-12 22:54:20 -05:00

39 lines
1.1 KiB
PHP

<?php
namespace Modules\StaffPayroll\Services;
use App\Models\User;
use Modules\StaffPayroll\Entities\InvoiceSetting;
use Modules\StaffPayroll\Entities\StaffPayrollUser;
use Modules\StaffPayroll\Repositories\InvoiceRepository;
use Modules\StaffPayroll\Repositories\InvoiceSettingRepository;
class InvoiceSettingService
{
public function __construct(
private InvoiceRepository $invoiceRepository,
private InvoiceSettingRepository $invoiceSettingRepository
) {
}
public function getLatestInvoiceNumber(User $user): int
{
$latestInvoice = $this->invoiceRepository->getLatestInvoice($user);
return $latestInvoice
? $latestInvoice->invoice_number
: $this->invoiceSettingRepository->getStartInvoiceNumber();
}
public static function isValidUserRole(User $user): bool
{
$roleSettings = InvoiceSetting::query()
->where('name', 'roles')
->first();
if (!$roleSettings) return false;
return in_array($user->role_id, json_decode($roleSettings->value));
}
}