Дипломная работа: Автоматизация рабочего места менеджера отдела продаж для ООО "Сириус"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
132
public function actionRequestFull ($id_request)
{
$request = RequestController::findModel($id_request);
if ($request->id_request_status !=
Request::REQUEST_STATUS_OPEN)
throw new UserException (Yii::t('app', 'Bad Request
Status'));
$request->id_request_status =
Request::REQUEST_STATUS_FULL;
$request->save();
return $this->redirect(Yii::$app->request->referrer);
}
public function actionRequestPaid ($id_request)
{
$request = RequestController::findModel($id_request);
if ($request->id_request_status !=
Request::REQUEST_STATUS_FULL)
throw new UserException (Yii::t('app', 'Bad Request
Status'));
$request->id_executor = Yii::$app->user->identity->id;
$request->paid = true;
$request->save();
return $this->redirect(Yii::$app->request->referrer);
}
public function actionRequestPerforming ($id_request)
{
$request = RequestController::findModel($id_request);
if ($request->id_request_status !=
Request::REQUEST_STATUS_FULL)
throw new UserException (Yii::t('app', 'Bad Request
Status'));
if ($request->paid != true)
throw new UserException (Yii::t('app', 'Request Not Paid'));
$request->id_request_status =
Request::REQUEST_STATUS_PERFORMING;
$request->save();
return $this->redirect(Yii::$app->request->referrer);
}
public function actionRequestPerformed ($id_request)
{
$request = RequestController::findModel($id_request);
133
if ($request->id_request_status !=
Request::REQUEST_STATUS_PERFORMING)
throw new UserException (Yii::t('app', 'Bad Request
Status'));
$request->id_request_status =
Request::REQUEST_STATUS_PERFORMED;
$request->save();
return $this->redirect(Yii::$app->request->referrer);
}
public static function RequestEditable ($id_request, $exception = true)
{
$result = false;
$model = RequestController::findModel($id_request);
switch (Yii::$app->user->identity->id_user_type)
{
case \app\models\User::USER_TYPE_CLIENT :
{
$result = $model->id_request_status ==
Request::REQUEST_STATUS_OPEN;
} break;
case \app\models\User::USER_TYPE_MANAGER :
{
$result = $model->id_request_status ==
Request::REQUEST_STATUS_FULL && $model->paid == false;
} break;
case \app\models\User::USER_TYPE_ADMIN :
{
$result = $model->id_request_status ==
Request::REQUEST_STATUS_FULL;
} break;
}
if ($exception)
{
if ($result == false)
throw new UserException (Yii::t('app', 'Request Is Not
Editable'));
}
else
return $result;
}
134
/**
* Creates a new Request model.
* If creation is successful, the browser will be redirected to the 'view' page.
* @return mixed
*/
public function actionCreate()
{
return $this->redirect(['view', 'id' =>
RequestController::RequestCreate ()]);
}
/**
* Updates an existing Request model.
* If update is successful, the browser will be redirected to the 'view' page.
* @param integer $id
* @return mixed
*/
public function actionUpdate($id)
{
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
return $this->render('update', [
'model' => $model,
]);
}
}
/**
* Deletes an existing Request model.
* If deletion is successful, the browser will be redirected to the 'index' page.
* @param integer $id
* @return mixed
*/
public function actionDelete($id)
{
RequestController::RequestEditable ($id);
$model = $this->findModel($id);
135
$model->delete();
return $this->redirect(['index']);
}
/**
* Finds the Request model based on its primary key value.
* If the model is not found, a 404 HTTP exception will be thrown.
* @param integer $id
* @return Request the loaded model
* @throws NotFoundHttpException if the model cannot be found
*/
public static function findModel($id)
{
$model = Request::findOne($id);
if (($model) !== null)
{
/*
if (Yii::$app->user->identity->IsAdmin == false)
{
if ($model->id_executor != Yii::$app->user->identity-
>id)
{
throw new UserException (Yii::t('app', 'Access
denied'));
}
}
*/
return $model;
} else {
throw new NotFoundHttpException ('The requested page does not
exist.');
}
}
}
Источник: https://baza.diplomsite.ru/previewfile/2180