Диплом: Автоматизация процессов управления взаимоотношениями с клиентами для предприятия (на примере ООО "Орландо Коммерц")

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
97
Полученные при реализации данного проекта и создании приложения
результаты имеют значительную практическую значимость, которую можно
выразить как в общественной, так и в производственной пользе при
использовании подобных разработок.
В итоге, главные задачи дипломной – анализ деятельности компании,
выявление в ней значимых недостатков и ошибок управления, а также разработка
автоматизированной системы взаимоотношений с клиентами, выполнены.
Все задачи дипломной работы выполнены, следовательно, можно
обоснованно утверждать, что главная цель исследования - достигнута.
98
Список литературы
1. А. Тюгашев: Языки программирования. Учебное пособие. Стандарт
третьего поколения, - Москва, Издательство: Питер, 2014 г. 336 стр.
2. Авдошин А.А., Песоцкая Е.В.: Информатизация бизнеса.
Управление рисками, - М., ДМК-Пресс, 2011 г., 176 с.
3. Александр Жадаев: PHP для начинающих, - Москва, Издательство:
Питер, 2014 г., 288 стр.
4. Аникеев С. П., Маркин Н.В.: Разработка приложений баз данных в
Delphi. Самоучитель, - М.,Диалог-МИФИ, 2013 г., 160 с.
5. Арнольд Виллемер: Программирование на С++, - М., Эксмо, 2013 г.,
528 с.
6. Бретт Маклафлин: PHP и MySQL. Исчерпывающее руководство, -
Москва, Издательство: Питер, 2014 г., 544 стр.
7. Брюс Тейт: Семь языков за семь недель. Практическое руководство
по изучению языков программирования, - М., Издательство: ДМК-Пресс, 2014 г.,
384 стр.
8. Вадим Дунаев: HTML, скрипты и стили, - Москва, Издательство:
BHV, 2015 г., 824 стр.
9. Васвани В.А.: MySQL: использование и администрирование, СПб,
Питер, 2011 г., 368 с.
10. Вигерс, Битти: Разработка требований к программному
обеспечению, - М., Издательство: BHV, 2014 г., 736 стр.
11. ГурвицГ.Е.: Microsoft Access 201 Разработка приложений на
реальном примере, - М., BHV, 2011 г., 424 с.
12. Денис Колисниченко: PHP и MySQL. Разработка веб-приложений, -
Москва, Издательство: BHV, 2015 г., 592 стр.
13. Исаев Г.А.: Информационные системы в экономике. Учебник, - М.,
Омега-Л, 2013 г., 462 с.
14. Исаев Г.А.: Проектирование информационных систем. Учебное
пособие, - М., Омега-Л, 2015 г., 424 с.
99
15. Каллум Хопкинс: PHP. Быстрый старт, - Москва, Издательство:
Эксмо-Пресс, 2014 г., 160 стр.
16. Кевин Янк: PHP и MySQL. От новичка к профессионалу, - Москва,
Издательство: Эксмо, 2013 г., 384 стр.
17. Курлов А.А, Петров Е.А.: Методология информационной аналитики,
- М.,Проспект, 2014 г., 384 с.
18. Мартынов Н.А: Программирование для Windows на С\С++. В 2
томах, - М., Бином, 2013 г., 480 с.
19. Ошероув Р.О: Искусство автономного тестирования с примерами на
С#, - М., ДМК-Пресс, 2014 г., 360 с.
20. Паттерсон, Хеннесси: Архитектура компьютера и проектирование
компьютерных систе- М. Классика ComputersScience, Спб Питер, , 2012 г., 784 с.
21. Пирогов В.А.: Информационные системы и базы данных:
организация и проектирование, - М., BHV, 2009 г., 528 с.
22. Потопахин В.С.: Искусство алгоритмизации, - М., Издательство:
ДМК-Пресс, 2014 г., 320 стр.
23. Роберт Дж. Мюллер, Проектирование баз данных и UML, - М., Лори,
2013 год, 432 с.
24. Роберт Лафоре: Объектно-ориентированное программирование в
С++, - М., Питер, 2013 г., 928 с.
25. СурядныйА.Е.: Microsoft Access 201 Лучший самоучитель, - М.,
Астрель, 2012 г., 448 с.
26. Таненбаум А.А, Бос Е.В.: Современные операционные системы, Спб,
Питер, 2015 г., 1120 стр
27. Тахагхогхи, Вильямс: Руководство по MySQL, - М., BHV, 2011 г., 544
с.
28. Тюгашев А. Е.: Языки программирования. Учебное пособие.
Стандарт третьего поколения, - М., Издательство: Питер, 2014 г. 336 стр.
29. Чистов Д.А: Экономическая информатика (для бакалавров). Учебное
пособие, - М., Кнорус, 2014 г., 512 с.
100
30. Энтони Молинаро, SQL. Сборник рецептов, - М., Символ-Плюс,2011
г., 672 с.
101
Приложение. Листинг программного кода (фрагмент)
<?php
namespace app\controllers;
use Yii;
use app\models\Request;
use app\models\RequestSearch;
use app\models\RequestService;
use app\models\RequestServiceSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\filters\AccessControl;
use yii\base\UserException;
/**
* RequestController implements the CRUD actions for Request model.
*/
class RequestController extends Controller
{
public function behaviors()
{
return [
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'delete' => ['post'],
],
],
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['index', 'view', 'create', 'delete', 'add-
service', 'request-full'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action)
{
return Yii::$app->user->identity-
>IsClient;
}
102
],
[
'actions' => ['index', 'view', 'create', 'delete', 'add-
service', 'request-select', 'request-paid', 'request-performing', 'request-performed'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action)
{
return Yii::$app->user->identity-
>IsManager;
}
],
[
'actions' => ['index', 'view', 'create', 'update', 'delete',
'add-service', 'request-select', 'request-paid', 'request-performing', 'request-performed'],
'allow' => true,
'roles' => ['@'],
'matchCallback' => function ($rule, $action)
{
return Yii::$app->user->identity-
>IsAdmin;
}
],
],
],
];
}
/**
* Lists all Request models.
* @return mixed
*/
public function actionIndex()
{
$searchModel = new RequestSearch();
$dataProvider = $searchModel->search(Yii::$app->request->queryParams);
$view_name = '';
switch (Yii::$app->user->identity->id_user_type)
{
case \app\models\User::USER_TYPE_CLIENT :
{
$view_name = 'client-index';
$dataProvider->query->andWhere(['id_creator' =>
Yii::$app->user->identity->id]);
103
} break;
case \app\models\User::USER_TYPE_MANAGER :
{
$view_name = 'manager-index';
$dataProvider->query->andWhere(['id_executor' =>
Yii::$app->user->identity->id])->orWhere('id_executor IS NULL')-
>andWhere('id_request_status > ' .
\app\models\Request::REQUEST_STATUS_OPEN);
} break;
case \app\models\User::USER_TYPE_ADMIN :
{
$view_name = 'admin-index';
} break;
}
return $this->render($view_name, [
'searchModel' => $searchModel,
'dataProvider' => $dataProvider,
]);
}
/**
* Displays a single Request model.
* @param integer $id
* @return mixed
*/
public function actionView($id)
{
$view_name = '';
switch (Yii::$app->user->identity->id_user_type)
{
case \app\models\User::USER_TYPE_CLIENT :
{
$view_name = 'client-view';
} break;
case \app\models\User::USER_TYPE_MANAGER :
{
$view_name = 'manager-view';
} break;
case \app\models\User::USER_TYPE_ADMIN :
{
$view_name = 'admin-view';
104
} break;
}
return $this->render($view_name, [
'model' => $this->findModel($id),
'editable' => RequestController::RequestEditable ($id, false),
]);
}
public static function RequestGetCurrent ()
{
$models = Request::find()->andWhere (
['id_request_status' => Request::REQUEST_STATUS_OPEN,
'id_creator' => Yii::$app->user->identity->id])->orderby(['id' =>
SORT_ASC])->all();
if (count ($models) == 0)
{
return null;
}
else
{
return $models[0]->id;
}
}
public static function RequestCreate ()
{
$model = new Request();
$model->registration_date = date ('Y-m-d H:i:s');
$model->id_creator = Yii::$app->user->identity->id;
$model->id_request_status = Request::REQUEST_STATUS_OPEN;
$model->save();
return $model->id;
}
public function actionAddService ($id_service)
{
$id = RequestController::RequestGetCurrent ();
if ($id == NULL)
$id = RequestController::RequestCreate ();
$request = RequestController::findModel($id);
$model = RequestService::find()->andWhere (['id_request' => $request-
>id, 'id_service' => $id_service])->one();
105
if (empty ($model) == true)
{
$model = new RequestService();
$model->id_request = $id;
$model->registration_date = date ('Y-m-d H:i:s');
$model->id_creator = Yii::$app->user->identity->id;
$model->id_service = $id_service;
$model->amount = 1;
$model->cost = $model->idService->cost;
$model->total = $model->cost * $model->amount;
$model->save();
}
else
{
$model->amount += 1;
$model->cost = $model->idService->cost;
$model->total = $model->cost * $model->amount;
$model->save();
}
$request->RecalculateCost();
$this->redirect(['request-service/index', 'id_request' => $request->id]);
}
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);
}
106
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);
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;

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

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