status = $status ?? self::STEP_STATUS_UNTOUCHED; $this->errors = []; } public function execute(): bool { return false; } public function makeStep(): bool { $status = false; $this->application->refresh(); try { $status = $this->execute(); } catch (\Throwable $e) { $this->errors[] = "{$e->getMessage()}\n\n{$e->getTraceAsString()}"; } if ($status) { $this->status = self::STEP_STATUS_VALID; $this->onSuccess(); } else { $this->status = self::STEP_STATUS_FAILED; $this->onFail(); } return $status; } public function onSuccess(): void { return; } public function onFail(): void { return; } public function getStatusMessage(): string { switch ($this->status) { case ApplicationApplyingStep::STEP_STATUS_VALID: return Yii::t( 'abiturient/application-applying-step', 'Текст сообщения об успешной отправке заявления; для менеджера отправки заявления: `Данные успешно отправлены.`' ); break; case ApplicationApplyingStep::STEP_STATUS_FAILED: return Yii::t( 'abiturient/application-applying-step', 'Текст сообщения об ошибке при отправке заявления; для менеджера отправки заявления: `При отправке данных произошла ошибка.`' ); break; case ApplicationApplyingStep::STEP_STATUS_UNTOUCHED: return Yii::t( 'abiturient/application-applying-step', 'Текст сообщения о не отправленном заявлении; для менеджера отправки заявления: `Данные не отправлялись.`' ); break; default: return ''; break; } } public function setApplication(BachelorApplication $application): void { $this->application = $application; } }