public function actionDelete($id) { $model = FamilyMember::findOne($id); if ($model) { if ($model->user_type == \app\enum\UserType::Administrador_MemoBoard) { Yii::$app->getSession()->setFlash('danger', '<h2>Atenção:</h2>' . 'O membro <b>' . $model->name . '</b> é <b>' . \app\enum\UserType::toName($model->user_type) . '</b> da família <b>' . $model->family->name . '</b>.' . '<br>Os membros com este estatuto não podem ser retirados das famílias.' . '<br>' . '<br>' . 'Para poder retirar da família o membro em causa, atribua-lhe primeiro outro estatuto.' . '<br><i>Não esqueça que tem de existir pelo menos um membro com o estatuto de <b>' . \app\enum\UserType::toName($model->user_type) . '</b>.<i>' . '<br>' . '<br>' . '<a class="btn btn-info" href="/family-member/index">Voltar</a>'); return $this->redirect("/site/message"); } Yii::$app->getSession()->setFlash('danger', '<h2>Perigo.</h2>' . 'Ao retirar este membro da família, deixará de poder acessar aos seus dados..'); return $this->redirect("/site/message"); } return $this->redirect(['index']); }
<?php use yii\grid\GridView; ?> <?php echo GridView::widget(['dataProvider' => $dataProvider, 'layout' => '{items}{pager}', 'columns' => [['class' => 'yii\\grid\\SerialColumn'], ['attribute' => 'family_id', 'format' => 'text', 'content' => function ($data) { return $data->family->name; }], 'name', 'abreviation', ['attribute' => 'user_type', 'format' => 'text', 'content' => function ($data) { return \app\enum\UserType::toName($data->user_type); }], ['attribute' => 'user_id', 'format' => 'text', 'content' => function ($data) { return $data->user ? $data->user->email : ''; }], ['attribute' => 'user_id', 'label' => 'Qt. Eventos', 'format' => 'text', 'content' => function ($data) { if ($data->user) { return $data->getCalendarEvents()->count(); } return '0'; }], ['attribute' => 'user_id', 'label' => 'Qt. Tarefas', 'format' => 'text', 'content' => function ($data) { if ($data->user) { return $data->getTasks()->count(); } return '0'; }], ['attribute' => 'user_id', 'label' => 'Último login', 'format' => 'text', 'content' => function ($data) { if ($data->user) { return date('Y-m-d H:s', $data->user->last_login); } return '---'; }], ['attribute' => 'user_id', 'label' => 'Acesso calendário', 'format' => 'text', 'content' => function ($data) { if ($data->user) { return date('Y-m-d H:s', $data->user->last_calendar_access); }
/** * Verifica se existe pelo menos um membro admin */ public function existMemberAdmin() { $isAdmin = $this->user_type == \app\enum\UserType::Administrador_MemoBoard; if ($isAdmin) { return true; } $x = FamilyMember::find()->where(['user_type' => \app\enum\UserType::Administrador_MemoBoard])->andWhere(['family_id' => $this->family_id])->andWhere(['<>', 'id', $this->id])->count(); if ($x < 1) { $this->addError('user_type', 'Tem de existir na família pelo menos um membro ' . \app\enum\UserType::toName(\app\enum\UserType::Administrador_MemoBoard)); return false; } return true; }