commit
164771dc89
@ -57,7 +57,7 @@ class ManagerController extends Controller
|
||||
$model = $this->findModel($id);
|
||||
$managerEmployeeSearchModel = new ManagerEmployeeSearch();
|
||||
$managerEmployeeDataProvider = new ActiveDataProvider([
|
||||
'query' => $model->getManagerEmployees()->with('user'),
|
||||
'query' => $model->getManagerEmployees()->with('userCard'),
|
||||
'pagination' => [
|
||||
'pageSize' => 20,
|
||||
],
|
||||
|
@ -5,6 +5,7 @@ namespace backend\modules\employee\controllers;
|
||||
use Yii;
|
||||
use backend\modules\employee\models\ManagerEmployee;
|
||||
use backend\modules\employee\models\ManagerEmployeeSearch;
|
||||
use yii\helpers\ArrayHelper;
|
||||
use yii\web\Controller;
|
||||
use yii\web\NotFoundHttpException;
|
||||
use yii\filters\VerbFilter;
|
||||
@ -64,12 +65,31 @@ class ManagerEmployeeController extends Controller
|
||||
*/
|
||||
public function actionCreate()
|
||||
{
|
||||
$model = new ManagerEmployee();
|
||||
|
||||
if ($model->load(Yii::$app->request->post()) && $model->save()) {
|
||||
return $this->redirect(['view', 'id' => $model->id]);
|
||||
|
||||
|
||||
|
||||
$post = $post = \Yii::$app->request->post('ManagerEmployee');
|
||||
|
||||
if (!empty($post)) {
|
||||
$user_card_id_arr = ArrayHelper::getValue($post,'user_card_id');
|
||||
|
||||
foreach ($user_card_id_arr as $user_card_id) {
|
||||
$emtModel = new ManagerEmployee();
|
||||
$emtModel->manager_id = $post['manager_id'];
|
||||
$emtModel->user_card_id = $user_card_id;
|
||||
|
||||
if (!$emtModel->save()) {
|
||||
return $this->render('create', [
|
||||
'model' => $emtModel,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
return $this->redirect(['index']);
|
||||
}
|
||||
|
||||
$model = new ManagerEmployee();
|
||||
return $this->render('create', [
|
||||
'model' => $model,
|
||||
]);
|
||||
|
@ -17,7 +17,7 @@ class ManagerEmployeeSearch extends ManagerEmployee
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['id', 'manager_id', 'employee_id'], 'integer'],
|
||||
[['id', 'manager_id', 'user_card_id'], 'integer'],
|
||||
];
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ class ManagerEmployeeSearch extends ManagerEmployee
|
||||
*/
|
||||
public function search($params)
|
||||
{
|
||||
$query = ManagerEmployee::find()->joinWith(['user', 'manager']);
|
||||
$query = ManagerEmployee::find()->joinWith(['userCard', 'manager']);
|
||||
|
||||
// add conditions that should always apply here
|
||||
|
||||
@ -59,7 +59,7 @@ class ManagerEmployeeSearch extends ManagerEmployee
|
||||
$query->andFilterWhere([
|
||||
'id' => $this->id,
|
||||
'manager_id' => $this->manager_id,
|
||||
'employee_id' => $this->employee_id,
|
||||
'user_card_id' => $this->user_card_id,
|
||||
]);
|
||||
|
||||
return $dataProvider;
|
||||
|
@ -17,7 +17,7 @@ class ManagerSearch extends Manager
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['id', 'user_id'], 'integer'],
|
||||
[['id', 'user_card_id'], 'integer'],
|
||||
];
|
||||
}
|
||||
|
||||
@ -39,7 +39,7 @@ class ManagerSearch extends Manager
|
||||
*/
|
||||
public function search($params)
|
||||
{
|
||||
$query = Manager::find()->with('user');
|
||||
$query = Manager::find()->with('userCard');
|
||||
|
||||
// add conditions that should always apply here
|
||||
|
||||
@ -58,7 +58,7 @@ class ManagerSearch extends Manager
|
||||
// grid filtering conditions
|
||||
$query->andFilterWhere([
|
||||
'id' => $this->id,
|
||||
'user_id' => $this->user_id,
|
||||
'user_card_id' => $this->user_card_id,
|
||||
]);
|
||||
|
||||
return $dataProvider;
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use backend\modules\employee\models\Manager;
|
||||
use common\models\User;
|
||||
use kartik\select2\Select2;
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
@ -17,26 +17,27 @@ use yii\widgets\ActiveForm;
|
||||
|
||||
<?= $form->field($model, 'manager_id')->widget(Select2::className(),
|
||||
[
|
||||
'data' => Manager::find()->select(['username', 'manager.id'])
|
||||
->joinWith('user')->indexBy('manager.id')->column(),
|
||||
'data' => Manager::find()->select(['fio', 'manager.id'])
|
||||
->joinWith('userCard')->indexBy('manager.id')->column(),
|
||||
'options' => ['placeholder' => '...','class' => 'form-control'],
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true
|
||||
],
|
||||
]) ?>
|
||||
|
||||
<?= $form->field($model, 'employee_id')->widget(Select2::className(),
|
||||
<?= $form->field($model, 'user_card_id')->widget(Select2::className(),
|
||||
[
|
||||
'data' => User::find()->select(['username', 'user.id'])
|
||||
->joinWith('manager')->where(['manager.user_id' => null])->indexBy('user.id')->column(),
|
||||
'data' => UserCard::find()->select(['fio', 'user_card.id'])
|
||||
->joinWith('manager')->where(['manager.user_card_id' => null])->indexBy('user_card.id')->column(),
|
||||
'options' => ['placeholder' => '...','class' => 'form-control'],
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true
|
||||
'allowClear' => true,
|
||||
'multiple' => true,
|
||||
],
|
||||
]) ?>
|
||||
|
||||
<div class="form-group">
|
||||
<?= Html::submitButton('Save', ['class' => 'btn btn-success']) ?>
|
||||
<?= Html::submitButton('Сохранить', ['class' => 'btn btn-success']) ?>
|
||||
</div>
|
||||
|
||||
<?php ActiveForm::end(); ?>
|
||||
|
@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use common\models\ManagerEmployee;
|
||||
use common\models\User;
|
||||
use yii\helpers\Html;
|
||||
use yii\grid\GridView;
|
||||
@ -24,15 +26,17 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
['class' => 'yii\grid\SerialColumn'],
|
||||
[
|
||||
'attribute' => 'manager_id',
|
||||
'filter' => User::find()->select(['username', 'user.id'])
|
||||
->joinWith('manager')->where(['not',['manager.user_id' => null]])->indexBy('user.id')->column(),
|
||||
'value' => 'manager.user.username',
|
||||
'filter' => UserCard::find()->select(['fio', 'user_card.id'])
|
||||
->joinWith('manager')->where(['not',['manager.user_card_id' => null]])
|
||||
->indexBy('user_card.id')->column(),
|
||||
'value' => 'manager.userCard.fio',
|
||||
],
|
||||
[
|
||||
'attribute' => 'employee_id',
|
||||
'filter' => User::find()->select(['username', 'user.id'])
|
||||
->joinWith('manager')->where(['manager.user_id' => null])->indexBy('user.id')->column(),
|
||||
'value' => 'user.username',
|
||||
'attribute' => 'user_card_id',
|
||||
'filter' => ManagerEmployee::find()->select(['fio', 'manager_employee.id'])
|
||||
->joinWith('userCard')
|
||||
->indexBy('manager_employee.id')->column(),
|
||||
'value' => 'userCard.fio',
|
||||
],
|
||||
['class' => 'yii\grid\ActionColumn'],
|
||||
],
|
||||
|
@ -36,11 +36,11 @@ YiiAsset::register($this);
|
||||
'id',
|
||||
[
|
||||
'attribute' => 'manager_id',
|
||||
'value' => ArrayHelper::getValue($model,'manager.user.username'),
|
||||
'value' => ArrayHelper::getValue($model,'manager.userCard.fio'),
|
||||
],
|
||||
[
|
||||
'attribute' => 'employee_id',
|
||||
'value' => ArrayHelper::getValue($model,'user.username'),
|
||||
'value' => ArrayHelper::getValue($model,'userCard.fio'),
|
||||
],
|
||||
],
|
||||
]) ?>
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use common\models\User;
|
||||
use yii\helpers\Html;
|
||||
use yii\widgets\ActiveForm;
|
||||
@ -14,10 +15,11 @@ use kartik\select2\Select2;
|
||||
|
||||
<?php $form = ActiveForm::begin(); ?>
|
||||
|
||||
<?= $form->field($model, 'user_id')->widget(Select2::className(),
|
||||
<?= $form->field($model, 'user_card_id')->widget(Select2::className(),
|
||||
[
|
||||
'data' => User::find()->select(['username', 'user.id'])
|
||||
->joinWith('manager')->where(['manager.user_id' => null])->indexBy('user.id')->column(),
|
||||
'data' => UserCard::find()->select(['user_card.fio', 'user_card.id'])
|
||||
->joinWith('manager')->where(['manager.user_card_id' => null])
|
||||
->indexBy('user_card.id')->column(),
|
||||
'options' => ['placeholder' => '...','class' => 'form-control'],
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use common\models\User;
|
||||
use yii\helpers\Html;
|
||||
use yii\grid\GridView;
|
||||
@ -23,9 +24,9 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
'columns' => [
|
||||
['class' => 'yii\grid\SerialColumn'],
|
||||
[
|
||||
'attribute' => 'user_id',
|
||||
'filter' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
|
||||
'value' => 'user.username',
|
||||
'attribute' => 'user_card_id',
|
||||
'filter' => UserCard::find()->select(['fio', 'id'])->indexBy('id')->column(),
|
||||
'value' => 'userCard.fio',
|
||||
|
||||
],
|
||||
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use common\models\User;
|
||||
use kartik\grid\GridView;
|
||||
use yii\helpers\ArrayHelper;
|
||||
@ -37,7 +38,7 @@ YiiAsset::register($this);
|
||||
'id',
|
||||
[
|
||||
'attribute' => 'user_id',
|
||||
'value' => ArrayHelper::getValue($model,'user.username'),
|
||||
'value' => ArrayHelper::getValue($model,'userCard.fio'),
|
||||
],
|
||||
],
|
||||
]) ?>
|
||||
@ -47,9 +48,9 @@ YiiAsset::register($this);
|
||||
'columns' => [
|
||||
['class' => 'yii\grid\SerialColumn'],
|
||||
[
|
||||
'attribute' => 'user_id',
|
||||
'filter' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
|
||||
'value' => 'user.username',
|
||||
'attribute' => 'user_card_id',
|
||||
'filter' => UserCard::find()->select(['fio', 'id'])->indexBy('id')->column(),
|
||||
'value' => 'userCard.fio',
|
||||
],
|
||||
[
|
||||
'class' => 'yii\grid\ActionColumn',
|
||||
|
@ -72,22 +72,20 @@ class ProjectUserController extends Controller
|
||||
$post = \Yii::$app->request->post('ProjectUser');
|
||||
|
||||
if (!empty($post)) {
|
||||
$user_id_arr = ArrayHelper::getValue($post, 'user_id');
|
||||
$card_id_arr = ArrayHelper::getValue($post, 'card_id');
|
||||
$project_id = $post['project_id'];
|
||||
|
||||
foreach ($user_id_arr as $user_id) {
|
||||
foreach ($card_id_arr as $card_id) {
|
||||
$emtModel = new ProjectUser();
|
||||
$emtModel->project_id = $project_id;
|
||||
$emtModel->user_id = $user_id;
|
||||
$emtModel->card_id = UserCard::getIdByUserId($user_id);
|
||||
$emtModel->card_id = $card_id;
|
||||
$emtModel->user_id = UserCard::getUserIdByCardId($card_id);
|
||||
|
||||
$emtModel->save();
|
||||
|
||||
// if (!$emtModel->save()) {
|
||||
// return $this->render('create', [
|
||||
// 'model' => $emtModel,
|
||||
// ]);
|
||||
// }
|
||||
if (!$emtModel->save()) {
|
||||
return $this->render('create', [
|
||||
'model' => $emtModel,
|
||||
]);
|
||||
}
|
||||
}
|
||||
return $this->redirect(['index']);
|
||||
}
|
||||
@ -110,7 +108,7 @@ class ProjectUserController extends Controller
|
||||
$model = $this->findModel($id);
|
||||
|
||||
if ($model->load(Yii::$app->request->post()) ) {
|
||||
$model->card_id = UserCard::getIdByUserId($model->user_id);
|
||||
$model->user_id = UserCard::getUserIdByCardId($model->card_id);//UserCard::getIdByUserId($model->user_id);
|
||||
if ($model->save()) {
|
||||
return $this->redirect(['view', 'id' => $model->id]);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use backend\modules\project\models\Project;
|
||||
use common\models\User;
|
||||
use kartik\select2\Select2;
|
||||
@ -25,9 +26,9 @@ use yii\widgets\ActiveForm;
|
||||
]
|
||||
) ?>
|
||||
|
||||
<?= $form->field($model, 'user_id')->widget(Select2::className(),
|
||||
<?= $form->field($model, 'card_id')->widget(Select2::className(),
|
||||
[
|
||||
'data' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
|
||||
'data' => UserCard::find()->select(['fio', 'id'])->indexBy('id')->column(),
|
||||
'options' => ['placeholder' => '...','class' => 'form-control'],
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use backend\modules\project\models\Project;
|
||||
use common\models\User;
|
||||
use kartik\select2\Select2;
|
||||
@ -25,9 +26,9 @@ use yii\widgets\ActiveForm;
|
||||
]
|
||||
) ?>
|
||||
|
||||
<?= $form->field($model, 'user_id')->widget(Select2::className(),
|
||||
<?= $form->field($model, 'card_id')->widget(Select2::className(),
|
||||
[
|
||||
'data' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
|
||||
'data' => UserCard::find()->select(['fio', 'id'])->indexBy('id')->column(),
|
||||
'options' => ['placeholder' => '...','class' => 'form-control'],
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
use yii\helpers\ArrayHelper;
|
||||
use yii\helpers\Html;
|
||||
use yii\web\YiiAsset;
|
||||
use yii\widgets\DetailView;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
@ -10,7 +11,7 @@ use yii\widgets\DetailView;
|
||||
$this->title = 'Сотрудник проекта: ' . $model->project->name;
|
||||
$this->params['breadcrumbs'][] = ['label' => 'Project Users', 'url' => ['index']];
|
||||
$this->params['breadcrumbs'][] = $this->title;
|
||||
\yii\web\YiiAsset::register($this);
|
||||
YiiAsset::register($this);
|
||||
?>
|
||||
<div class="project-user-view">
|
||||
|
||||
@ -38,6 +39,10 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
'attribute' => 'user_id',
|
||||
'value' => ArrayHelper::getValue($model, 'user.username' ),
|
||||
],
|
||||
[
|
||||
'attribute' => 'card_id',
|
||||
'value' => ArrayHelper::getValue($model, 'card.fio' ),
|
||||
],
|
||||
],
|
||||
]) ?>
|
||||
|
||||
|
@ -21,8 +21,9 @@ use yii\widgets\ActiveForm;
|
||||
->where(['!=', 'question_type_id', '1'])
|
||||
->indexBy('id')
|
||||
->column(),
|
||||
'options' => ['placeholder' => 'Выберите проект'],
|
||||
'pluginOptions' => [
|
||||
'allowClear' => false
|
||||
'allowClear' => false,
|
||||
],
|
||||
]) ?>
|
||||
|
||||
|
@ -173,7 +173,7 @@ class TaskUserController extends Controller
|
||||
$parents = $_POST['depdrop_parents'];
|
||||
if ($parents != null) {
|
||||
$task_id = $parents[0];
|
||||
$users = ProjectUser::usersByTaskArr($task_id);
|
||||
$users = ProjectUser::userCardByTaskArr($task_id);
|
||||
|
||||
$formattedUsersArr = array();
|
||||
foreach ($users as $key => $value){
|
||||
@ -185,9 +185,4 @@ class TaskUserController extends Controller
|
||||
}
|
||||
return ['output'=>'', 'selected'=>''];
|
||||
}
|
||||
|
||||
public function actionDynamicProjectUser()
|
||||
{
|
||||
var_dump('hhh'); die;
|
||||
}
|
||||
}
|
||||
|
@ -18,7 +18,7 @@ class TaskSearch extends Task
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['id', 'project_id', 'status', 'user_id_creator', 'user_id'], 'integer'],
|
||||
[['id', 'project_id', 'status', 'card_id_creator', 'card_id'], 'integer'], // 'card_id_creator', 'card_id'
|
||||
[['title', 'created_at', 'updated_at', 'description'], 'safe'],
|
||||
];
|
||||
}
|
||||
@ -41,10 +41,7 @@ class TaskSearch extends Task
|
||||
*/
|
||||
public function search($params)
|
||||
{
|
||||
$query = Task::find()->joinWith(['user', 'project']);
|
||||
// => function($query){
|
||||
// $query->from(ProjectUser::tableName() . ' pt');
|
||||
// }]); //,
|
||||
$query = Task::find();//->joinWith(['user_card', 'project']);
|
||||
|
||||
// add conditions that should always apply here
|
||||
|
||||
@ -67,8 +64,8 @@ class TaskSearch extends Task
|
||||
'task.status' => $this->status,
|
||||
'task.created_at' => $this->created_at,
|
||||
'task.updated_at' => $this->updated_at,
|
||||
'user_id_creator' => $this->user_id_creator,
|
||||
'task.user_id' => $this->user_id,
|
||||
'task.card_id_creator' => $this->card_id_creator,
|
||||
'task.card_id' => $this->card_id,
|
||||
]);
|
||||
|
||||
$query->andFilterWhere(['like', 'title', $this->title])
|
||||
|
@ -29,7 +29,7 @@ use yii\widgets\ActiveForm;
|
||||
<?= $form->field($model, 'project_user_id')->widget(DepDrop::className(),
|
||||
[
|
||||
'type' => DepDrop::TYPE_SELECT2,
|
||||
'options' => ['id' => 'project-user-id', 'allowClear' => true, 'multiple' => true], // , 'multiple' => true
|
||||
'options' => ['id' => 'project-user-id', 'allowClear' => true, 'multiple' => true],
|
||||
'select2Options' => [
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
|
@ -2,6 +2,7 @@
|
||||
|
||||
use backend\modules\project\models\ProjectUser;
|
||||
use backend\modules\task\models\Task;
|
||||
use backend\modules\task\models\TaskUser;
|
||||
use kartik\select2\Select2;
|
||||
use yii\helpers\Html;
|
||||
use yii\grid\GridView;
|
||||
@ -35,7 +36,8 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
'filter' => Select2::widget([
|
||||
'model' => $searchModel,
|
||||
'attribute' => 'task_id',
|
||||
'data' => Task::find()->select(['title', 'id'])->indexBy('id')->column(),
|
||||
'data' => TaskUser::find()->joinWith('task')
|
||||
->select(['task.title', 'task.id'])->indexBy('task.id')->column(),
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
'width' => '250px',
|
||||
@ -48,12 +50,12 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
],
|
||||
[
|
||||
'attribute' => 'project_user_id',
|
||||
'value' => 'projectUser.user.username',
|
||||
'value' => 'projectUser.card.fio',
|
||||
'filter' => Select2::widget([
|
||||
'model' => $searchModel,
|
||||
'attribute' => 'project_user_id',
|
||||
'data' => ProjectUser::find()->select(['user.username', 'project_user.id'])
|
||||
->joinWith('user')->indexBy('project_user.id')->column(),
|
||||
'data' => TaskUser::find()->joinWith('projectUser.card')
|
||||
->select(['user_card.fio', 'task_user.id'])->column(),
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
'width' => '250px',
|
||||
|
@ -36,7 +36,7 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
],
|
||||
[
|
||||
'attribute' => 'project_user_id',
|
||||
'value' => ArrayHelper::getValue($model, 'projectUser.user.username'),
|
||||
'value' => ArrayHelper::getValue($model, 'projectUser.card.fio'),
|
||||
],
|
||||
],
|
||||
]) ?>
|
||||
|
@ -1,13 +1,10 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use backend\modules\project\models\Project;
|
||||
use backend\modules\project\models\ProjectUser;
|
||||
use common\helpers\StatusHelper;
|
||||
use common\models\User;
|
||||
use kartik\depdrop\DepDrop;
|
||||
use kartik\select2\Select2;
|
||||
use yii\helpers\Html;
|
||||
use yii\helpers\Url;
|
||||
use yii\widgets\ActiveForm;
|
||||
|
||||
/* @var $this yii\web\View */
|
||||
@ -27,9 +24,9 @@ use yii\widgets\ActiveForm;
|
||||
);
|
||||
?>
|
||||
|
||||
<?= $form->field($model, 'user_id_creator')->widget(Select2::class,
|
||||
<?= $form->field($model, 'card_id_creator')->widget(Select2::class,
|
||||
[
|
||||
'data' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
|
||||
'data' => UserCard::find()->select(['fio', 'id'])->indexBy('id')->column(),
|
||||
'options' => ['placeholder' => '...','class' => 'form-control', 'value' => Yii::$app->user->id],
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
@ -47,9 +44,9 @@ use yii\widgets\ActiveForm;
|
||||
]
|
||||
) ?>
|
||||
|
||||
<?= $form->field($model, 'user_id')->widget(Select2::class,
|
||||
<?= $form->field($model, 'card_id')->widget(Select2::class,
|
||||
[
|
||||
'data' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
|
||||
'data' => UserCard::find()->select(['fio', 'id'])->indexBy('id')->column(),
|
||||
'options' => ['placeholder' => '...','class' => 'form-control'],
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
|
@ -1,5 +1,6 @@
|
||||
<?php
|
||||
|
||||
use backend\modules\card\models\UserCard;
|
||||
use backend\modules\project\models\Project;
|
||||
use backend\modules\project\models\ProjectUser;
|
||||
use backend\modules\task\models\Task;
|
||||
@ -35,7 +36,8 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
'filter' => Select2::widget([
|
||||
'model' => $searchModel,
|
||||
'attribute' => 'project_id',
|
||||
'data' => Project::find()->select(['name', 'id'])->indexBy('id')->column(),
|
||||
'data' => Task::find()->joinWith('project')
|
||||
->select(['project.name', 'project.id'])->indexBy('project.id')->column(),
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
'width' => '150px',
|
||||
@ -48,12 +50,13 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
],
|
||||
'title',
|
||||
[
|
||||
'attribute' => 'user_id_creator',
|
||||
'value' => 'userIdCreator.username',
|
||||
'attribute' => 'card_id_creator',
|
||||
'value' => 'userCardCreator.fio',
|
||||
'filter' => Select2::widget([
|
||||
'model' => $searchModel,
|
||||
'attribute' => 'user_id_creator',
|
||||
'data' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
|
||||
'attribute' => 'card_id_creator',
|
||||
'data' => Task::find()->joinWith('userCardCreator')
|
||||
->select(['user_card.fio', 'user_card.id'])->indexBy('user_card.id')->column(),
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
'width' => '150px',
|
||||
@ -65,12 +68,13 @@ $this->params['breadcrumbs'][] = $this->title;
|
||||
])
|
||||
],
|
||||
[
|
||||
'attribute' => 'user_id',
|
||||
'value' => 'user.username',
|
||||
'attribute' => 'card_id',
|
||||
'value' => 'userCard.fio',
|
||||
'filter' => Select2::widget([
|
||||
'model' => $searchModel,
|
||||
'attribute' => 'user_id',
|
||||
'data' => User::find()->select(['username', 'id'])->indexBy('id')->column(),
|
||||
'attribute' => 'card_id',
|
||||
'data' => Task::find()->joinWith('userCard')
|
||||
->select(['user_card.fio', 'user_card.id'])->indexBy('user_card.id')->column(),
|
||||
'pluginOptions' => [
|
||||
'allowClear' => true,
|
||||
'width' => '150px',
|
||||
|
@ -47,12 +47,12 @@ YiiAsset::register($this);
|
||||
'created_at',
|
||||
'updated_at',
|
||||
[
|
||||
'attribute' => 'project_user_id',
|
||||
'value' => ArrayHelper::getValue($model, 'projectUser.user.username'),
|
||||
'attribute' => 'card_id_creator',
|
||||
'value' => ArrayHelper::getValue($model, 'userCardCreator.fio'),
|
||||
],
|
||||
[
|
||||
'attribute' => 'user_id',
|
||||
'value' => ArrayHelper::getValue($model, 'user.username'),
|
||||
'attribute' => 'card_id',
|
||||
'value' => ArrayHelper::getValue($model, 'userCard.fio'),
|
||||
],
|
||||
'description',
|
||||
],
|
||||
@ -71,7 +71,7 @@ YiiAsset::register($this);
|
||||
|
||||
[
|
||||
'attribute' => 'project_user_id',
|
||||
'value' => 'projectUser.user.username'
|
||||
'value' => 'projectUser.card.fio'
|
||||
],
|
||||
|
||||
[
|
||||
|
@ -62,7 +62,7 @@
|
||||
['label' => 'Компании', 'icon' => 'building', 'url' => ['/hh/hh'], 'active' => \Yii::$app->controller->id == 'hh'],
|
||||
['label' => 'Вакансии', 'icon' => 'user-md', 'url' => ['/hh/hh-job'], 'active' => \Yii::$app->controller->id == 'hh-job'],
|
||||
],
|
||||
'visible' => Yii::$app->user->can('confidential_information')
|
||||
'visible' => Yii::$app->user->can('confidential_information')
|
||||
],
|
||||
['label' => 'Баланс', 'icon' => 'dollar', 'url' => ['/balance/balance'], 'active' => \Yii::$app->controller->id == 'balance', 'visible' => Yii::$app->user->can('confidential_information')],
|
||||
['label' => 'Отпуска', 'icon' => 'plane', 'url' => ['/holiday/holiday'], 'active' => \Yii::$app->controller->id == 'holiday', 'visible' => Yii::$app->user->can('confidential_information')],
|
||||
|
@ -9,9 +9,9 @@ use yii\db\ActiveQuery;
|
||||
* This is the model class for table "manager".
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $user_id
|
||||
* @property int $user_card_id
|
||||
*
|
||||
* @property User $user
|
||||
* @property UserCard $userCard
|
||||
* @property ManagerEmployee[] $managerEmployees
|
||||
*/
|
||||
class Manager extends \yii\db\ActiveRecord
|
||||
@ -30,8 +30,10 @@ class Manager extends \yii\db\ActiveRecord
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['user_id'], 'integer'],
|
||||
[['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
|
||||
[['user_card_id'], 'integer'],
|
||||
[['user_card_id'], 'required'],
|
||||
['user_card_id', 'unique', 'message'=>'Уже является менеджером'],
|
||||
[['user_card_id'], 'exist', 'skipOnError' => true, 'targetClass' => UserCard::className(), 'targetAttribute' => ['user_card_id' => 'id']],
|
||||
];
|
||||
}
|
||||
|
||||
@ -42,7 +44,7 @@ class Manager extends \yii\db\ActiveRecord
|
||||
{
|
||||
return [
|
||||
'id' => 'ID',
|
||||
'user_id' => 'Пользователь',
|
||||
'user_card_id' => 'Карточка менеджера',
|
||||
];
|
||||
}
|
||||
|
||||
@ -57,9 +59,9 @@ class Manager extends \yii\db\ActiveRecord
|
||||
/**
|
||||
* @return ActiveQuery
|
||||
*/
|
||||
public function getUser()
|
||||
public function getUserCard()
|
||||
{
|
||||
return $this->hasOne(User::className(), ['id' => 'user_id']);
|
||||
return $this->hasOne(UserCard::className(), ['id' => 'user_card_id']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -9,10 +9,10 @@ use yii\db\ActiveQuery;
|
||||
*
|
||||
* @property int $id
|
||||
* @property int $manager_id
|
||||
* @property int $employee_id
|
||||
* @property int $user_card_id
|
||||
*
|
||||
* @property User $user
|
||||
* @property Manager $manager
|
||||
* @property UserCard $userCard
|
||||
*/
|
||||
class ManagerEmployee extends \yii\db\ActiveRecord
|
||||
{
|
||||
@ -30,9 +30,10 @@ class ManagerEmployee extends \yii\db\ActiveRecord
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['manager_id', 'employee_id'], 'required'],
|
||||
[['manager_id', 'employee_id'], 'integer'],
|
||||
[['employee_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['employee_id' => 'id']],
|
||||
[['manager_id', 'user_card_id'], 'required'],
|
||||
[['manager_id'], 'integer'],
|
||||
['user_card_id', 'unique', 'targetAttribute' => ['manager_id', 'user_card_id'], 'message'=>'Этот сотрудник уже закреплён за менеджером'],
|
||||
[['user_card_id'], 'exist', 'skipOnError' => true, 'targetClass' => UserCard::className(), 'targetAttribute' => ['user_card_id' => 'id']],
|
||||
[['manager_id'], 'exist', 'skipOnError' => true, 'targetClass' => Manager::className(), 'targetAttribute' => ['manager_id' => 'id']],
|
||||
];
|
||||
}
|
||||
@ -45,16 +46,16 @@ class ManagerEmployee extends \yii\db\ActiveRecord
|
||||
return [
|
||||
'id' => 'ID',
|
||||
'manager_id' => 'Менеджер',
|
||||
'employee_id' => 'Работник',
|
||||
'user_card_id' => 'Карточка работника',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return ActiveQuery
|
||||
*/
|
||||
public function getUser()
|
||||
public function getUserCard(): ActiveQuery
|
||||
{
|
||||
return $this->hasOne(User::className(), ['id' => 'employee_id']);
|
||||
return $this->hasOne(UserCard::className(), ['id' => 'user_card_id']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,9 +36,10 @@ class ProjectUser extends \yii\db\ActiveRecord
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['user_id', 'project_id'], 'required'],
|
||||
[['user_id', 'project_id', 'card_id'], 'required'],
|
||||
['user_id', 'unique', 'targetAttribute' => ['user_id', 'project_id'], 'message'=>'Сотрудник уже назначен на этот проект'],
|
||||
// [['card_id', 'project_id', 'user_id'], 'integer'],
|
||||
['card_id', 'unique', 'targetAttribute' => ['card_id', 'project_id'], 'message'=>'Сотрудник уже назначен на этот проект'],
|
||||
[['card_id', 'project_id', 'user_id'], 'integer'],
|
||||
[['project_id'], 'exist', 'skipOnError' => true, 'targetClass' => Project::className(), 'targetAttribute' => ['project_id' => 'id']],
|
||||
[['card_id'], 'exist', 'skipOnError' => true, 'targetClass' => UserCard::className(), 'targetAttribute' => ['card_id' => 'id']],
|
||||
[['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
|
||||
@ -118,6 +119,12 @@ class ProjectUser extends \yii\db\ActiveRecord
|
||||
self::find()->joinWith(['tasksByProject', 'user'])->where(['task.id' => $task_id])->all(), 'id', 'user.username');
|
||||
}
|
||||
|
||||
public static function userCardByTaskArr($task_id): array
|
||||
{
|
||||
return ArrayHelper::map(
|
||||
self::find()->joinWith(['tasksByProject', 'card'])->where(['task.id' => $task_id])->all(), 'id', 'card.fio');
|
||||
}
|
||||
|
||||
public static function setUsersByCardId()
|
||||
{
|
||||
$projectUserModels = self::findAll(['user_id' => null]);
|
||||
|
@ -2,10 +2,9 @@
|
||||
|
||||
namespace common\models;
|
||||
|
||||
use phpDocumentor\Reflection\Types\This;
|
||||
use Yii;
|
||||
use yii\behaviors\TimestampBehavior;
|
||||
use yii\db\ActiveQuery;
|
||||
use yii\db\ActiveRecord;
|
||||
use yii\db\Expression;
|
||||
use yii\helpers\ArrayHelper;
|
||||
|
||||
@ -18,16 +17,16 @@ use yii\helpers\ArrayHelper;
|
||||
* @property int $status
|
||||
* @property string $created_at
|
||||
* @property string $updated_at
|
||||
* @property int $user_id_creator
|
||||
* @property int $user_id
|
||||
* @property int $card_id_creator
|
||||
* @property int $card_id
|
||||
* @property string $description
|
||||
*
|
||||
* @property Project $project
|
||||
* @property User $userIdCreator
|
||||
* @property User $user
|
||||
* @property UserCard $card
|
||||
* @property UserCard $cardIdCreator
|
||||
* @property TaskUser[] $taskUsers
|
||||
*/
|
||||
class Task extends \yii\db\ActiveRecord
|
||||
class Task extends ActiveRecord
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
@ -55,14 +54,15 @@ class Task extends \yii\db\ActiveRecord
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
[['project_id', 'status', 'title', 'description', 'user_id_creator',], 'required'],
|
||||
[['project_id', 'status', 'user_id_creator', 'user_id'], 'integer'],
|
||||
[['project_id', 'status', 'title', 'description', 'card_id_creator',], 'required'],
|
||||
[['project_id', 'status', 'card_id_creator', 'card_id'], 'integer'],
|
||||
[['created_at', 'updated_at'], 'safe'],
|
||||
['title', 'unique', 'targetAttribute' => ['title', 'project_id'], 'message'=>'Такая задача уже создана'],
|
||||
[['title'], 'string', 'max' => 255],
|
||||
[['description'], 'string', 'max' => 500],
|
||||
[['project_id'], 'exist', 'skipOnError' => true, 'targetClass' => Project::className(), 'targetAttribute' => ['project_id' => 'id']],
|
||||
[['user_id_creator'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id_creator' => 'id']],
|
||||
[['user_id'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['user_id' => 'id']],
|
||||
[['card_id'], 'exist', 'skipOnError' => true, 'targetClass' => UserCard::className(), 'targetAttribute' => ['card_id' => 'id']],
|
||||
[['card_id_creator'], 'exist', 'skipOnError' => true, 'targetClass' => UserCard::className(), 'targetAttribute' => ['card_id_creator' => 'id']],
|
||||
];
|
||||
}
|
||||
|
||||
@ -78,9 +78,9 @@ class Task extends \yii\db\ActiveRecord
|
||||
'status' => 'Статус',
|
||||
'created_at' => 'Дата создания',
|
||||
'updated_at' => 'Дата обновления',
|
||||
'user_id_creator' => 'Создатель задачи',
|
||||
'user_id' => 'Наблюдатель',
|
||||
'description' => 'Описание',
|
||||
'card_id_creator' => 'Создатель задачи',
|
||||
'card_id' => 'Наблюдатель',
|
||||
];
|
||||
}
|
||||
|
||||
@ -108,9 +108,14 @@ class Task extends \yii\db\ActiveRecord
|
||||
return $this->hasOne(User::className(), ['id' => 'user_id']);
|
||||
}
|
||||
|
||||
public function getUserIdCreator()
|
||||
public function getUserCard()
|
||||
{
|
||||
return $this->hasOne(User::className(), ['id' => 'user_id_creator']);
|
||||
return $this->hasOne(UserCard::className(), ['id' => 'card_id']);
|
||||
}
|
||||
|
||||
public function getUserCardCreator()
|
||||
{
|
||||
return $this->hasOne(UserCard::className(), ['id' => 'card_id_creator']);
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace common\models;
|
||||
|
||||
use Yii;
|
||||
use yii\base\InvalidConfigException;
|
||||
use yii\db\ActiveQuery;
|
||||
|
||||
/**
|
||||
@ -65,6 +66,4 @@ class TaskUser extends \yii\db\ActiveRecord
|
||||
{
|
||||
return $this->hasOne(Task::className(), ['id' => 'task_id']);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
@ -221,15 +221,15 @@ class User extends ActiveRecord implements IdentityInterface
|
||||
return $this->hasOne(UserCard::class, ['id_user' => 'id']);
|
||||
}
|
||||
|
||||
public function getManager()
|
||||
{
|
||||
return $this->hasOne(Manager::class, ['user_id' => 'id']);
|
||||
}
|
||||
|
||||
public function getManagerEmployee()
|
||||
{
|
||||
return $this->hasMany(ManagerEmployee::className(), ['employee_id' => 'id']);
|
||||
}
|
||||
// public function getManager()
|
||||
// {
|
||||
// return $this->hasOne(Manager::class, ['user_id' => 'id']);
|
||||
// }
|
||||
//
|
||||
// public function getManagerEmployee()
|
||||
// {
|
||||
// return $this->hasMany(ManagerEmployee::className(), ['employee_id' => 'id']);
|
||||
// }
|
||||
|
||||
public function getProjectUser()
|
||||
{
|
||||
|
@ -104,6 +104,7 @@ class UserCard extends \yii\db\ActiveRecord
|
||||
[['fio', 'status', 'gender', 'email', 'level', 'position_id'], 'required'],
|
||||
[['gender', 'status', 'position_id', 'id_user', 'level', 'years_of_exp'], 'integer'],
|
||||
[['dob', 'created_at', 'updated_at', 'deleted_at', 'vc_text', 'vc_text_short'], 'safe'],
|
||||
['email', 'unique', 'message'=>'Почтовый адрес уже используется'],
|
||||
[['fio', 'passport', 'photo', 'email', 'resume', 'city', 'link_vk', 'link_telegram', 'specification'], 'string', 'max' => 255],
|
||||
[['salary'], 'string', 'max' => 100],
|
||||
[['position_id'], 'exist', 'skipOnError' => true, 'targetClass' => Position::class, 'targetAttribute' => ['position_id' => 'id']],
|
||||
@ -214,19 +215,16 @@ class UserCard extends \yii\db\ActiveRecord
|
||||
return $this->hasOne(User::class, ['id' => 'id_user']);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws Exception
|
||||
*/
|
||||
public static function getIdByUserId($user_id)
|
||||
{
|
||||
return ArrayHelper::getValue(self::find()->where(['id_user' => $user_id])->one(), 'id');
|
||||
}
|
||||
|
||||
public static function getUserList()
|
||||
{
|
||||
return ArrayHelper::map(self::find()->all(), 'id', 'fio');
|
||||
}
|
||||
|
||||
public function getManager()
|
||||
{
|
||||
return $this->hasOne(Manager::class, ['user_card_id' => 'id']);
|
||||
}
|
||||
|
||||
public static function generateUserForUserCard($card_id = null)
|
||||
{
|
||||
$userCardQuery = self::find();
|
||||
|
@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
use yii\db\Migration;
|
||||
|
||||
/**
|
||||
* Class m211220_105942_change_foreign_keys_in_task_from_user_id_to_user_card_id
|
||||
*/
|
||||
class m211220_105942_change_foreign_keys_in_task_from_user_id_to_user_card_id extends Migration
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function safeUp()
|
||||
{
|
||||
$this->dropForeignKey('creator_task', 'task');
|
||||
$this->dropColumn('task', 'user_id_creator');
|
||||
|
||||
$this->dropForeignKey('task_user', 'task');
|
||||
$this->dropColumn('task', 'user_id');
|
||||
|
||||
$this->addColumn('task', 'card_id_creator', $this->integer(11)->defaultValue(null));
|
||||
$this->addForeignKey('task_user_card_creator', 'task', 'card_id_creator',
|
||||
'user_card', 'id');
|
||||
|
||||
$this->addColumn('task', 'card_id', $this->integer(11)->defaultValue(null));
|
||||
$this->addForeignKey('task_user_card', 'task', 'card_id', 'user_card', 'id');
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function safeDown()
|
||||
{
|
||||
$this->dropForeignKey('task_user_card', 'task');
|
||||
$this->dropColumn('task', 'card_id');
|
||||
|
||||
$this->dropForeignKey('task_user_card_creator', 'task');
|
||||
$this->dropColumn('task', 'card_id_creator');
|
||||
|
||||
|
||||
|
||||
$this->addColumn('task', 'user_id_creator', $this->integer());
|
||||
$this->addForeignKey('creator_task', 'task',
|
||||
'user_id_creator', 'user', 'id');
|
||||
|
||||
$this->addColumn('task', 'user_id', $this->integer());
|
||||
$this->addForeignKey('task_user', 'task',
|
||||
'user_id', 'user', 'id');
|
||||
}
|
||||
}
|
@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
use yii\db\Migration;
|
||||
|
||||
/**
|
||||
* Class m211222_083459_change_foreign_key_in_manager_from_user_id_to_user_card_id
|
||||
*/
|
||||
class m211222_083459_change_foreign_key_in_manager_from_user_id_to_user_card_id extends Migration
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function safeUp()
|
||||
{
|
||||
$this->dropForeignKey('manager_user', 'manager');
|
||||
$this->dropColumn('manager', 'user_id');
|
||||
|
||||
$this->addColumn('manager', 'user_card_id', $this->integer(11));
|
||||
$this->addForeignKey('manager_user_card', 'manager', 'user_card_id',
|
||||
'user_card', 'id');
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function safeDown()
|
||||
{
|
||||
$this->dropForeignKey('manager_user_card', 'manager');
|
||||
$this->dropColumn('manager', 'user_card_id');
|
||||
|
||||
$this->addColumn('manager', 'user_id', $this->integer(11));
|
||||
$this->addForeignKey('manager_user', 'manager', 'user_id', 'user', 'id');
|
||||
}
|
||||
|
||||
/*
|
||||
// Use up()/down() to run migration code without a transaction.
|
||||
public function up()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function down()
|
||||
{
|
||||
echo "m211222_083459_change_foreign_key_in_manager_from_user_id_to_user_card_id cannot be reverted.\n";
|
||||
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
<?php
|
||||
|
||||
use yii\db\Migration;
|
||||
|
||||
/**
|
||||
* Class m211222_083709_change_foreign_key_in_manager_employee_from_user_id_to_user_card_id
|
||||
*/
|
||||
class m211222_083709_change_foreign_key_in_manager_employee_from_user_id_to_user_card_id extends Migration
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function safeUp()
|
||||
{
|
||||
$this->dropForeignKey('employee_user', 'manager_employee');
|
||||
$this->dropColumn('manager_employee', 'employee_id');
|
||||
|
||||
$this->addColumn('manager_employee', 'user_card_id', $this->integer(11));
|
||||
$this->addForeignKey('manager_employee_user_card', 'manager_employee', 'user_card_id',
|
||||
'user_card', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function safeDown()
|
||||
{
|
||||
$this->dropForeignKey('manager_employee_user_card', 'manager_employee');
|
||||
$this->dropColumn('manager_employee', 'user_card_id');
|
||||
|
||||
$this->addColumn('manager_employee', 'employee_id', $this->integer(11));
|
||||
$this->addForeignKey('employee_user', 'manager_employee', 'employee_id', 'user', 'id');
|
||||
}
|
||||
}
|
2441
frontend-access.log
2441
frontend-access.log
File diff suppressed because it is too large
Load Diff
1030
frontend-error.log
1030
frontend-error.log
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user