File manager - Edit - /var/www/html/portalHomolog/app/Enums/Accounts/Cronogramas/CronogramaActivityStatus.php
Back
<?php namespace App\Enums\Accounts\Cronogramas; enum CronogramaActivityStatus: string { case NotStarted = 'not_started'; case Planning = 'planning'; case InProgress = 'in_progress'; case Validation = 'validation'; case Completed = 'completed'; case Suspended = 'suspended'; case Cancelled = 'cancelled'; case Overdue = 'overdue'; public function label(): string { return match ($this) { self::NotStarted => __('Não Iniciado'), self::Planning => __('Em Planejamento'), self::InProgress => __('Em Andamento'), self::Validation => __('Homologação'), self::Completed => __('Concluído'), self::Suspended => __('Suspenso'), self::Cancelled => __('Cancelado'), self::Overdue => __('Atrasado'), }; } /** * @return list<string> */ public static function values(): array { return array_column(self::cases(), 'value'); } /** * Status selecionáveis manualmente (exclui "Atrasado", que é derivado da data). * * @return list<self> */ public static function selectableCases(): array { return array_values(array_filter( self::cases(), static fn (self $status): bool => $status !== self::Overdue, )); } /** * Status exibidos no Kanban (colunas). * * @return list<self> */ public static function kanbanColumns(): array { return [ self::NotStarted, self::Planning, self::InProgress, self::Validation, self::Completed, ]; } public function isTerminal(): bool { return in_array($this, [self::Completed, self::Cancelled], true); } /** * Percentual padrão configurado para o status, ou null se não houver mapeamento. */ public function defaultCompletionPercent(): ?float { $map = config('cronogramas.status_completion_percent', []); if (! array_key_exists($this->value, $map)) { return null; } return (float) $map[$this->value]; } public static function completionPercentFor(?string $status): ?float { if ($status === null || $status === '') { return null; } return self::tryFrom($status)?->defaultCompletionPercent(); } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings