inspiren-sem-tool/app/Services/ClientInvoiceApprovalService.php
brian-inspiren 221d3f8173
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
feat: sem codebase
2026-05-21 11:28:03 +08:00

31 lines
650 B
PHP

<?php
namespace App\Services;
use App\Models\ClientInvoice;
class ClientInvoiceApprovalService
{
public function approve(ClientInvoice $invoice): ClientInvoice
{
if ($invoice->approved_at === null) {
$invoice->forceFill([
'approved_at' => now(),
])->save();
}
return $invoice->refresh();
}
public function requireApproval(ClientInvoice $invoice): ClientInvoice
{
if ($invoice->approved_at !== null) {
$invoice->forceFill([
'approved_at' => null,
])->save();
}
return $invoice->refresh();
}
}