Диплом: Автоматизация обработки заявок в "ГБУЗ Городская клиническая больница №52 ДЗМ"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
101
Приложение. Листинг программных модулей
ReportController.php
<?php
namespace app\controllers;
use Yii;
use app\models\Request;
use app\models\User;
use app\models\RequestClaim;
use app\models\RequestService;
use app\models\StaffWork;
use yii\data\ActiveDataProvider;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
/**
* ReportController implements the CRUD actions for Request model.
*/
class ReportController extends Controller
{
public function behaviors()
{
102
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['request-journal', 'claim-journal',
'completed-request', 'open-request', 'services', 'staff-work-time', 'defect-count', 'staff-
work', 'clients', 'services-stat', 'claim-stat'],
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
/**
* Lists all Request models.
* @return mixed
*/
public function actionRequestJournal()
{
103
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$dataProvider = new ActiveDataProvider([
'query' => Request::find()->where ('date_reg >= :date1 and date_reg <
:date2', [':date1'=>$User->report_date_1, ':date2'=>$User->report_date_2])
->andFilterWhere(['id_user'=>$User->report_id_user,
'id_defect'=>$User->report_id_defect, 'id_client'=>$User->report_id_client])
,
]);
return $this->render('report-request-journal', [
'dataProvider' => $dataProvider,
'ReportParams' => User::findOne(Yii::$app->user-
>identity->id),
]);
}
public function actionClaimJournal()
{
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$dataProvider = new ActiveDataProvider([
'query' => RequestClaim::find()->
104
where ('date_reg >= :date1 and date_reg < :date2',
[':date1'=>$User->report_date_1, ':date2'=>$User->report_date_2])
->andFilterWhere(['id_request'=>$User-
>report_id_request])
,
]);
return $this->render('report-claim-journal', [
'dataProvider' => $dataProvider,
'ReportParams' => User::findOne(Yii::$app->user-
>identity->id),
]);
}
public function actionCompletedRequest()
{
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$dataProvider = new ActiveDataProvider([
'query' => Request::find()->where ('id_status = 2 and date_reg >= :date1
and date_reg < :date2', [':date1'=>$User->report_date_1, ':date2'=>$User-
>report_date_2])
->andFilterWhere(['id_user'=>$User->report_id_user,
'id_defect'=>$User->report_id_defect, 'id_client'=>$User->report_id_client])
,
]);
105
return $this->render('report-completed-request', [
'dataProvider' => $dataProvider,
'ReportParams' => User::findOne(Yii::$app->user-
>identity->id),
]);
}
public function actionOpenRequest()
{
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$dataProvider = new ActiveDataProvider([
'query' => Request::find()->where ('id_status <> 2 and date_reg >= :date1
and date_reg < :date2', [':date1'=>$User->report_date_1, ':date2'=>$User-
>report_date_2])
->andFilterWhere(['id_user'=>$User->report_id_user,
'id_defect'=>$User->report_id_defect, 'id_client'=>$User->report_id_client])
,
]);
return $this->render('report-open-request', [
'dataProvider' => $dataProvider,
'ReportParams' => User::findOne(Yii::$app->user-
>identity->id),
]);
}
106
public function actionServices()
{
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$dataProvider = new ActiveDataProvider([
'query' => RequestService::find()-
>andFilterWhere(['id_request'=>$User->report_id_request])
,
]);
return $this->render('report-services', [
'dataProvider' => $dataProvider,
'ReportParams' => User::findOne(Yii::$app->user-
>identity->id),
]);
}
public function actionStaffWorkTime()
{
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$dataProvider = new ActiveDataProvider([
107
'query' => StaffWork::find()->where ('day >= :date1 and day < :date2',
[':date1'=>$User->report_date_1, ':date2'=>$User->report_date_2])
->andFilterWhere(['id_user'=>$User->report_id_user])
,
]);
return $this->render('report-staff-work-time', [
'dataProvider' => $dataProvider,
'ReportParams' => User::findOne(Yii::$app->user-
>identity->id),
]);
}
public function actionDefectCount()
{
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$Q = new Yii\db\Query ();
$Q->select('defect.id, defect.title, count(defect.id) as
defect_count')->from(['defect', 'request'])->
andWhere ('defect.id = request.id_defect')->
andWhere ('request.date_reg >= :date1 and request.date_reg <
:date2')->
groupby('defect.id, defect.title')->
orderby('defect.title')->
108
params([':date1'=>$User->report_date_1, ':date2'=>$User-
>report_date_2])
;
$dataProvider = new ActiveDataProvider([
'query' => $Q
,
]);
return $this->render('report-defect-count', [
'dataProvider' => $dataProvider,
'ReportParams' => User::findOne(Yii::$app->user-
>identity->id),
]);
}
public function actionStaffWork()
{
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$Q = new Yii\db\Query ();
$Q->select([
'user.id',
'user.last_name',
'user.first_name',
'user.middle_name',
109
'(select title from staff_function where id =
user.id_staff_function) as staff_function',
'(sum(if(request.id_status <> 2, 1, 0))) as
open_request_count',
'(sum(if(request.id_status = 2, 1, 0))) as
closed_request_count',
]
)->
from(['user', 'request'])->
andWhere ('user.id_user_type <> 3')->
andWhere ('user.id = request.id_user')->
andWhere ('request.date_reg >= :date1 and request.date_reg <
:date2')->
groupby (['user.id', 'user.last_name', 'user.first_name',
'user.middle_name'])->
orderby('user.last_name, user.first_name, user.middle_name')->
params ([':date1'=>$User->report_date_1, ':date2'=>$User-
>report_date_2])
;
$dataProvider = new ActiveDataProvider([
'query' => $Q
,
]);
return $this->render('report-staff-work', [
'dataProvider' => $dataProvider,
'ReportParams' => User::findOne(Yii::$app->user-
>identity->id),
]);
110
}
public function actionClients()
{
Yii::$app->user->identity->AccessAdminManager;
$User = User::find()->where (['id'=> Yii::$app->user->identity-
>id])->one();
$Q = new Yii\db\Query ();
$Q->select([
'user.id',
'user.organization_name',
'user.last_name',
'user.first_name',
'user.middle_name',
'(select title from staff_function where id =
user.id_staff_function) as staff_function',
'(sum(if(request.id_status <> 2, 1, 0))) as
open_request_count',
'(sum(if(request.id_status = 2, 1, 0))) as
closed_request_count',
]
)->
from(['user', 'request'])->
andWhere ('user.id_user_type = 3')->
andWhere ('user.id = request.id_client')->

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)