%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/tasks/models/state/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/tasks/models/state/InProgressState.php |
<?php namespace humhub\modules\tasks\models\state; use humhub\modules\tasks\activities\TaskStartActivity; use humhub\modules\tasks\models\Task; use humhub\modules\tasks\notifications\InProgressNotification; use humhub\modules\tasks\notifications\ReviewRejectedNotification; use Yii; class InProgressState extends TaskState { public static $status = Task::STATUS_IN_PROGRESS; public static $defaultRevertStatus = Task::STATUS_PENDING; protected function getDefaultProceedStatusId() { return $this->task->review ? Task::STATUS_PENDING_REVIEW : Task::STATUS_COMPLETED; } protected function proceedConfig($user = null) { return [ Task::STATUS_PENDING_REVIEW => [ 'label' => Yii::t('TasksModule.base', 'Ready For Review'), 'icon' => 'fa-eye' ], Task::STATUS_COMPLETED => [ 'label' => Yii::t('TasksModule.base', 'Finish Task'), 'icon' => 'fa-check-square-o' ], ]; } protected function revertConfig($user = null) { return [ Task::STATUS_PENDING => ['label' => Yii::t('TasksModule.base', 'Reset Task'), 'icon' => 'fa-undo'] ]; } public function checkProceedRules($newStatus = null, $user = null) { return $this->task->isTaskResponsible($user) || $this->task->isTaskAssigned($user) || $this->task->canProcess($user); } public function checkRevertRules($newStatus = null, $user = null) { return $this->task->isTaskResponsible($user) || $this->task->isTaskAssigned($user) || $this->task->canProcess($user); } public function afterProceed(TaskState $oldState) { $this->notifyInProgress(); } public function notifyInProgress() { $user = Yii::$app->user->getIdentity(); if ($this->task->hasTaskResponsible()) { InProgressNotification::instance()->from($user)->about($this->task)->sendBulk($this->task->taskResponsibleUsers); } TaskStartActivity::instance()->from($user)->about($this->task)->create(); } public function afterRevert(TaskState $oldState) { $this->notifyRejectedReview(); } public function notifyRejectedReview() { if ($this->task->review && $this->task->hasTaskAssigned()) { $this->task->deleteOldNotifications(ReviewRejectedNotification::class); ReviewRejectedNotification::instance()->from(Yii::$app->user->getIdentity())->about($this->task)->sendBulk($this->task->filterResponsibleAssigned()); } else { $this->notifyInProgress(); } } }