Код: Выделить всё
{
$model = new PartTime();
if ($model->load(Yii::$app->request->post())) {
$model->type = Parttime::TYPE_ACTIVE;
Yii::$app->response->format = Response::FORMAT_JSON;
$validateResult = ActiveForm::validate($model,['belong_id','comment','user_id']);
if ($validateResult) {
return $validateResult;
} else {
$model->save(false);
return $this->redirect(Yii::$app->request->referrer);
}
}
$arr = $this->getSessArr();
$list = Yii::$app->db->createCommand('SELECT `hr_employee`.`id`, `hr_employee`.`fullname`, `belongs`.`id` AS `bid`, `belongs`.`company_id`, `company`.`name` AS `company_name` FROM `hr_employee_belongs` `belongs`
INNER JOIN `hr_company` `company` ON `belongs`.`company_id` = `company`.`id`
LEFT JOIN `hr_employee` ON belongs.employee_id = hr_employee.id
WHERE ((`hr_employee`.`status`=1) AND (`belongs`.`work_status`=1)) AND (`belongs`.`department_id` IN'.$arr.')
GROUP BY `belongs`.`id` ORDER BY `belongs`.`employee_id` DESC')
->QueryAll();
$list = Arrayhelper::map($list,'bid','fullname','company_name');
$query = Employee::find()
->alias('employee')
->select('employee.id as employee_id, employee.fullname, belongs.company_id,
company.name AS company_name, belongs.department_id,
department.name as department_name, belongs.position_id,
position.name as position_name, hr_employee_parttime.id, hr_employee_parttime.comment, hr_user.fullname as user_name')
->joinWith(['belongs' => function ($q) {
return $q->joinWith(['company', 'department', 'position'], true, 'INNER JOIN');
}], true, 'LEFT JOIN')
->join('INNER JOIN', PartTime::tableName(), 'belongs.id = hr_employee_parttime.belong_id')
->join('LEFT JOIN', User::tableName(), 'hr_user.id = hr_employee_parttime.user_id')
->andWhere(['employee.status' => Employee::ACTIVE_STATUS])
->andWhere(['belongs.work_status' => Belongs::WORKING_STATUS])
->andWhere(['hr_employee_parttime.type' => Parttime::TYPE_ACTIVE])
->orderBy(['employee.fullname' => SORT_ASC])
->asArray();
return $this->render('active_emp',[
'list' => $list,
'model' => $model,
'dataProvider' => new ActiveDataProvider([
'query' => $query,
'pagination' => [
'pageSize' => 20,
],
]);
}