Files
GSB-Construction/Modules/ContractorManagement/app/Enums/InvoiceStatus.php

35 lines
855 B
PHP

<?php
namespace Modules\ContractorManagement\Enums;
enum InvoiceStatus: string
{
case Draft = 'draft';
case Submitted = 'submitted';
case Approved = 'approved';
case Paid = 'paid';
case Rejected = 'rejected';
public function label(): string
{
return match ($this) {
self::Draft => 'Draft',
self::Submitted => 'Submitted',
self::Approved => 'Approved',
self::Paid => 'Paid',
self::Rejected => 'Rejected',
};
}
public function allowedTransitions(): array
{
return match ($this) {
self::Draft => [self::Submitted],
self::Submitted => [self::Approved, self::Rejected],
self::Approved => [self::Paid],
self::Paid => [],
self::Rejected => [self::Draft],
};
}
}