![](/stc/img/evkova.png)
Автоматизация продаж в “Московская афиша”
Содержание:
Введение
В современном мире технологии играют важную роль практически во всех сферах жизни. Автоматизация жизненных процессов удовлетворяет множеству потребностей человека. Особую ценность для людей имеет время.
Целью информационных систем является упрощение работы человека с информацией, и тем самым происходит сокращение времени работы. В настоящее время люди часто ходят в различные заведение развлекательного характера, в такие как театр. До появления информационных технологий, людям часто приходилось долгое время стоять в очередях из-за медленной работы кассира. Сейчас благодаря информационным системам процесс работы кассира стал намного быстрее и удобнее.
Цель данной работы - создание автоматизированного приложения для логистических процессов управления театральной кассы. Данная информационная система позволит кассиру театра осуществлять ввод информации о предстоящих спектаклях, составление расписания, хранение данных, быстрый поиск, составление отчетностей, а также бронирование и продажа билетов.
Объектом исследования является управление кассира информацией о спектаклях и билетами.
Предмет исследования - автоматизированное решение задач, таких как: формирование списка спектаклей и группировка по жанрам, быстрый поиск забронированных билетов, контроль продажи забронированных билетов, учет общего количества проданных билетов и суммы прибыли. Данные задачи позволят улучшить качество и увеличить скорость работы кассира.
1. Технико-экономическая характеристика предметной области и предприятия
1.1. Характеристика предприятия и его деятельности
Компания «Московская афиша» начала свою работу с 2003 года. Компания занимается продажей билетов в театр. На данный момент в Москве находится один киоск для продажи билетов. ИС компания не имеет, то есть всё содержится в экселе.
Основные действия кассира:
- Поиск и предоставление информации по запросу от клиента
- Принятие заказов через телефон и сайт
- Продажа и выдача билетов
- Выгрузка статистики
В таблице номер 1 показаны основные действия и время исполнения их.
Таблица 1
Технико-экономические показатели объекта управления
№ п\п |
Наименование характеристики (показателя) |
Значение показателя на определённую дату либо за период |
1 |
Продажа билета |
4 минуты |
2 |
Поиск информации |
5 минут |
1.2. Организационная структура управления предприятием
На рисунке номер 1 изображена организационная структура.
Рисунок 1 Организационная структура
Генеральный директор контролирует всю работу организации.
Руководитель киоска контролирует работу в киоске и помогает кассирам.
Кассир работает с клиентами.
Главный бухгалтер контролирует работу подчинённых бухгалтера, а также следит за финансовой устойчивости компании, подаёт отчётность в банки и налоговою.
Бухгалтер делает закрывающие документы, отчёты по прибыли, распределяет зарплату.
Маркетолог занимается рекламой, привлечением клиентов.
1.3. Выбор комплекса задач автоматизации и характеристика существующих бизнес-процессов
В проекте рассматривается деятельность продажи театральных билетов.
В предметной области подлежит автоматизация учёта данных о клиентах, спектаклей и быстрого нахождения информации.
Учет работы заключается в фиксации информации о клиентах и спектаклей
Входным информационным потоком является клиент, он передаёт информацию о себе и нужном спектакле.
Выходным информационном потоком является продажа билета и отчёт о продаже.
Для нормального функционирования системы, конечно же, необходимо обеспечить просмотр всей имеющейся информации о спектале, доступности билетов и текущих клиентов. Добавление, удаление и редактирование всей информации.
Комплекс задач автоматизации в данном случае основывается на базе данных, содержащей сведения о билетах, клиентах, спектаклей. Задачи автоматизации заключаются в организации доступа к этим сведениям и обеспечении возможности поиска, редактирования, добавления и удаления записей посредством программного интерфейса.
На рисунке номер 2 изображена контекстная диаграмма бизнес-процесса. И на рисунке номер 3 изображена декомпозиция контекстной диаграммы.
Рисунок 2 контекстная диаграмма idef0
Рисунок 3 декомпозиция контекстовой диаграммы idef0
Первый процесс — это «Приём клиента». На данном этапе поступает заявка от клиента. Заявки поступают от разных источников:
- Приход клиента в киоск
- Оформление через сайт
- Оформление через телефонию
Кассир принимает информацию.
Второй процесс - это «Обработка заявки». На данном этапе кассир проверяет наличие мест на нужный спектакль. Если места есть, то кассир называет итоговую стоимость билетов и время спектакля, если клиент соглашается, то идёт переход на третий процесс. Если мест нет, то кассир предлагает другие спектакли.
Третий процесс – это «Продажа билета». На данном этапе кассир совершает продажу билета. Кассир печатает биллет, чек и выдаёт клиенту, затем передаётся информации о продаже бухгалтеру.
2. Информационное обеспечение задачи
2.1. Информационная модель и ее описание
На рисунке номер 4 изображена информационная модель.
Рисунок 4 Информационная модель
В области 1 показывается взаимодействие руководителя киоска и кассира с формой добавления, редактирования и удаления спектаклей и с формой добавления, редактирования и удаления клиентов. Формы взаимодействуют с таблицами «спектакли» и «клиенты» А также взаимодействие главного бухгалтера и бухгалтера с таблицей «клиенты». На выходе из таблицы «клиенты» формируются документы: билет, чек и отчёт бухгалтерии.
В Области номер 2 передаются документы клиенту, а именно билет и чек. Документ «отчёт бухгалтерии»
2.2. Используемые классификаторы и системы кодирования
Таблица 2
Используемые системы кодирования
Кодируемое множество объектов |
Длина кода |
Мощность кода |
Система кодирования |
Система классификации |
Вид классификатора |
Компания «Московская афиша» |
59 |
1 |
серийная |
Иерархическая |
КВПДП 45 |
Клиент |
8 |
1 |
серийная |
Иерархическая |
Общесистемный |
Бухгалтер |
8 |
1 |
серийная |
Иерархическая |
ОКПДТР 20336 |
Генеральный директор |
8 |
1 |
серийная |
Иерархическая |
ОКПДТР 20540 |
Руководитель киоска |
8 |
1 |
серийная |
Иерархическая |
ОКПДТР 26166 |
Кассир |
8 |
1 |
серийная |
Иерархическая |
ОКПДТР 12719 |
Главный бухгалтер |
8 |
1 |
серийная |
Иерархическая |
ОКПДТР 20656 |
Маркетолог |
8 |
1 |
серийная |
Иерархическая |
ОКПДТР 12719 |
КВПДП 45 - Розничная торговля, осуществляемая через объекты стационарной торговой сети с площадью торгового зала не более 50 квадратных метров по каждому объекту организации торговли.
ОКПДТР - Общероссийский классификатор профессий рабочих, должностей служащих и тарифных разрядов.
2.3. Характеристика нормативно-справочной, входной и оперативной информации
При открытии ИС первая форма авторизации. Изображено на рисунке 5.
Рисунок 5 - форма входа
После входа открывается главная странница – это статистика продаж. То есть, сколько заработано на билетах. Пример на рисунке 6.
Рисунок 6 - статистика продаж
Вторым пунктом меню идёт список клиентов (рисунок номер 7). В нем отображаются клиенты и информация по билетам. А также на этой странице присутствует форма добавления клиента (рисунок номер 8), редактирование (рисунок номер 9) и удаление клиента (без формы, одним кликом).
Рисунок 7 - список клиентов
Рисунок 8 - добавление клиента
Рисунок 9 - редактирование клиента
Третьим пунктом меню идёт список спектаклей (рисунок номер 10). В нем отображаются спектакли и информация по ним. А также на этой странице присутствует форма добавления спектакля (рисунок номер 11), редактирование (рисунок номер 12) и удаление спектакля (без формы, одним кликом).
Рисунок 10 - список спектаклей
Рисунок 11 - добавление спектакля
Рисунок 12 - редактирование спектакля
2.4. Характеристика результатной информации
Результатной информацией является статистика продаж, изображённая на рисунке 6. А также чек и билет.
3. Программное обеспечение задачи
3.1. Общее положение (дерево функций и сценарий диалога)
На рисунке номер 13 изображено дерево функций.
Рисунок 13 - дерево функций
В проекте построена следующая схема иерархии функций управления и обработки данных, которая призвана автоматизировать разрабатываемый программный продукт. При всём этом возможно выделить и детализировать одно подмножество функций: реализующих основные функции управления и обработки данных: ввода первичной информации, обработки, ведения информации, ответов на запросы и др.
3.2. Характеристика базы данных
СУБД MySQL. Всего три таблицы: пользователи, клиенты и спектакли.
Чуть ниже изображены их структуры.
Таблица 3
Пример фрагмента описания структуры записей таблицы «Пользователи»
Наименование поля |
Идентификатор поля |
Тип поля |
Длина поля |
Прочее |
---|---|---|---|---|
Код пользователя |
User_id |
число |
11 |
ключевое поле |
Имя пользователя |
User_login |
строка |
30 |
|
Пароль пользователя |
User_password |
строка |
32 |
|
Хэш пользователя |
User_hash |
строка |
32 |
|
IP пользователя |
User_ip |
число |
10 |
Код пользователя – это ключевое поле, идентификатор пользователя.
Имя пользователя – логин для авторизации.
Пароль пользователя – пароль для авторизации.
Хэш пользователя – уникальный ключ сессии.
IP пользователя – IP пользователя.
Таблица 4
Пример фрагмента описания структуры записей таблицы «Клиенты»
Наименование поля |
Идентификатор поля |
Тип поля |
Длина поля |
Прочее |
---|---|---|---|---|
Код клиента |
id |
число |
11 |
ключевое поле |
ФИО клиента |
name |
строка |
32 |
|
Количество билетов |
quantity |
число |
11 |
|
Цена билета |
price |
число |
11 |
|
Итог |
itog |
число |
11 |
|
ID спектакля |
Show_id |
число |
11 |
Код клиента — это ключевое поле, идентификатор клиента.
ФИО клиента – ФИО клиента.
Количество билетов – количество купленных билетов клиентом.
Цена билета – цена одного биллета.
Итог – общая сумма за все биллеты.
ID спектакля – id спектакля из таблицы «Спектакли»
Таблица 5
Пример фрагмента описания структуры записей таблицы «Спектакли»
Наименование поля |
Идентификатор поля |
Тип поля |
Длина поля |
Прочее |
---|---|---|---|---|
Код спектакля |
id |
число |
11 |
ключевое поле |
Название спектакля |
name |
строка |
32 |
|
Количество доступных билетов |
quantity |
число |
11 |
|
Цена билета |
price |
число |
11 |
|
Дата и время спектакля |
datet |
Датавремя |
Код спектакля – это ключевое поле, идентификатор спектакля.
Название спектакля – название спектакля.
Количество доступных билетов – количество свободных мест на спектакль.
Цена билета – цена одного билета.
Дата и время спектакля – дата и время спектакля.
На рисунке номер 14 изображен сценарий диалога.
Рисунок 14 - сценарий диалога
На рисунке номер 15 изображена ER модель.
Рисунок 15 - ER модель
3.3. Структурная схема пакета (дерево вызова программных модулей)
В таблице номер 6 описаны модули.
Таблица 6
описания функций модулей
№ п/п |
Наименование модуля |
Функции модуля |
---|---|---|
1. |
Модуль авторизации |
Процедура авторизации в ИС |
2. |
Модуль отчёта |
Страница с отчётом проданных билетов |
3. |
Модуль клиентов |
Страница со списком клиентов |
4. |
Модуль добавления клиентов |
Всплывающие окно с добавлением клиента |
5. |
Модуль редактирование клиента |
Всплывающие окно с редактированием клиента |
6. |
Модуль удаления клиента |
Кнопка для удаления клиента из базы |
7. |
Модуль спектакли |
Страница со списком спектаклей |
8. |
Модуль добавления спектакля |
Всплывающие окно с добавлением спектакля |
9. |
Модуль редактирование спектакля |
Всплывающие окно с редактированием спектакля |
10. |
Модуль удаления спектакля |
Кнопка для удаления спектакля из базы |
3.4. Описание программных модулей
Модуль авторизации состоит из двух функций: авторизация и проверка авторизации.
Код проверки авторизации.
public function check(){
if (isset($_COOKIE['id']) and isset($_COOKIE['hash'])){
$query = $this->db->getRow("SELECT *,INET_NTOA(user_ip) FROM users WHERE user_id = ?s LIMIT 1", intval($_COOKIE['id']));
$userdata = $query;
if(($userdata['user_hash'] !== $_COOKIE['hash']) or ($userdata['user_id'] !== $_COOKIE['id'])){
setcookie("id", "", time() - 3600*24*30*12, "/");
setcookie("hash", "", time() - 3600*24*30*12, "/");
return false;
}else{
return true;
}
}else{
return false;
}
}
Данная функция проверяет наличие кук и совпадение хэша и функция вызывается на каждой странице.
Код авторизации.
public function auth($name, $password){
$query = $this->db->getRow("SELECT user_id, user_password FROM users WHERE user_login='".$name."' LIMIT 1");
$data = $query;
if($data['user_password'] === md5(md5($password))){
$hash = md5($this->generateCode(10));
$this->db->query("UPDATE users SET user_hash='".$hash."' WHERE user_id='".$data['user_id']."'");
setcookie("id", $data['user_id'], time()+60*60*24*30);
setcookie("hash", $hash, time()+60*60*24*30);
return true;
}else{
return false;
}
}
Данная функция проверяет логин, пароль. Если данные введены правильно, то устанавливает куки и генерирует хэш.
Модуль отчёта, это страница, где отображаются продажи. Функция получает данные с продажами и суммирует их. Код функции.
public function getstat(){
$data = $this->engine->getDB()->getOne("SELECT SUM(itog) FROM clients");
$out = json_encode(array('status'=>true, 'data'=>$data));
return $out;
}
Модуль клиентов, это получение данных из таблицы клиентов. Код функции.
public function getCli(){
$clients = $this->db->getAll("SELECT * FROM clients");
foreach ($clients as $key => $client) {
$clients[$key]['show_name'] = $this->db->getOne("SELECT name FROM shows WHERE id =?s", $client['show_id']);
}
return $clients;
}
Модуль добавления клиентов, это ввод данных в таблицу клиенты. Код функции.
public function addCli($name,$tet,$quantity,$price,$itog){
$qw = $this->engine->getDB()->getOne("SELECT quantity FROM shows WHERE id=?s", $tet);
if($qw > $quantity) {
$this->engine->getDB()->query("INSERT INTO clients (name,quantity,price,itog,show_id) VALUES (?s,?s,?s,?s,?s)", $name,$quantity,$price,$itog,$tet);
$this->engine->getDB()->query("UPDATE shows SET quantity = quantity - ?s WHERE id = ?s", $quantity,$tet);
$dat = "Добавлен";
} else {
$dat = "Нет такого количества билетов";
}
$out = json_encode(array('status'=>true, 'data'=>$dat));
return $out;
}
Модуль редактирования клиентов, это изменения данных в таблице клиенты. Код функции.
public function edCli2($id,$name,$tet,$quantity,$quantity2,$price,$itog){
$q = $quantity2-$quantity;
$check = $this->engine->getDB()->getOne("SELECT quantity FROM shows WHERE id =?s",$tet);
if ($check <= $q) {
$data = "Нет билетов";
} else {
$this->engine->getDB()->query("UPDATE clients SET name=?s,quantity=?s,price=?s,itog=?s,show_id=?s WHERE id =?s",$name,$quantity,$price,$itog,$tet,$id);
$this->engine->getDB()->query("UPDATE shows SET quantity = quantity + ?s WHERE id =?s", $q,$tet);
$data = "Обновленно";
}
$out = json_encode(array('status'=>true, 'data'=>$data));
return $out;
}
Модуль удаления клиентов, это удаление клиента из таблицы клиентов. Код функции.
public function delCli($id,$quantity,$tet){
$this->engine->getDB()->query("DELETE FROM clients WHERE id =?s", $id);
$this->engine->getDB()->query("UPDATE shows SET quantity = quantity + ?s WHERE id = ?s", $quantity,$tet);
$out = json_encode(array('status'=>true, 'data'=>"Удалено"));
return $out;
}
Модуль спектаклей, это получение данных из таблицы спектакли. Код функции.
public function getTet(){
$shows = $this->db->getAll("SELECT * FROM shows");
return $shows;
}
Модуль редактирования спектаклей, это изменение данных в таблице спектакли. Код функции.
public function edTet2($id,$name,$quantity,$price,$date){
$data = $this->engine->getDB()->query("UPDATE shows SET name=?s, quantity=?s, price=?s, datet=?s WHERE id =?s", $name,$quantity,$price,$date,$id);
$out = json_encode(array('status'=>true, 'data'=>"Обновленно"));
return $out;
}
Модуль удаления спектаклей, это удаление спектакля из таблицы спектакли. Код функции.
public function delTet($id){
$this->engine->getDB()->query("DELETE FROM shows WHERE id =?s", $id);
$out = json_encode(array('status'=>true, 'data'=>"Удалено"));
return $out;
}
4. Контрольный пример реализации и его описание
Заходим на сайт https://ivantest.aristov.biz/. Перед нами появляется окно авторизации. Вводим логин test и пароль 123456. Рисунок номер 16.
Рисунок 16 - форма входа
Затем перед нами появляется статистика продаж, рисунок номер 17.
Рисунок 17 - статистика продаж
И слева есть меню. Переходим к списку спектаклей, рисунок номер 18.
Рисунок 18 - список спектаклей
Добавим новый спектакль. Нажав кнопку «Добавить спектакль». Появится всплывающие окно для заполнения нового спектакля. Рисунок номер 19.
Рисунок 19 - Добавление спектакля
После заполнения полей, нажимаем добавить и обновляем страницу, рисунок номер 20.
Рисунок 20 - добавлен новый спектакль
Теперь добавим нового клиента. Нажимаем в меню на «Список клиентов». Откроется список клиентов рисунок номер 21.
Рисунок 21 - список клиентов
Нажимам на кнопку «Добавить клиента» и заполняем форму.
Рисунок 22 - форма добавления клиента
После заполнения полей нажимаем добавить и обновляем страницу, рисунок номер 23. А также при добавлении, редактировании и удалении клиента меняется количество билетов в спектакле, в зависимости от изменения количества билетов.
Рисунок 23 - добавлен клиент
Заключение
В данном курсовом проекте я выполнил оптимизацию некоторых процедур процесса продажи билетов. Основная цель была достигнута, а именно создание информационной системы с помощью которой можно автоматизировать организацию работ, а также облегчить ввод данных и получения нужной информации.
В проекте были приведены и спроектированы несколько видов работ:
Характеристика предприятия;
Была рассмотрена сама компания, ее описание и деятельность.
Организационная структура;
Информационная модель и ее описание;
Была спроектирована информационная модель, представляющая собой процесс обработки данных в информационной системе.
Программное обеспечение задачи;
В данном разделе было составлено дерево функций, сценарий диалога и описание и характеристики базы данных.
Контрольный пример реализации проекта.
Были предоставлены тестовые данные таблиц и экранные формы программного средства по управлению базой данных.
Список использованной литературы
- Гущин А.Н. Базы данных: учебник. - М.: Директ-Медиа, 2014. - 266с
- Методы и средства проектирования информационных систем и технологий : учебное пособие / авт.-сост. Е.В. Крахоткина. - Ставрополь: СКФУ, 2015. - 152 с. - режим доступа http:// biblioclub.ru
- Митина, О.А. Методы и средства проектирования информационных систем и технологий: курс лекций / О.А. Митина. - Москва: Альтаир : МГАВТ, 2016. - 76 с. - режим доступа http:// biblioclub.ru
- Методология функционального моделирования IDEF0, Руководящий документ, Госстандарт России
- ГОСТ Р ИСО/МЭК 12207-2010 - Процессы жизненного цикла программных средств
- ГОСТ Р ИСО/МЭК ТО 15271-2002- Руководство по применению ГОСТ Р ИСО/МЭК 12207-2010
- ПР 50-733-99 – Правила по стандартизации. Основные положения единой системы классификации и кодирования технико-экономической и социальной информации унифицированных систем документации российской федерации.
- ГОСТ 34.602-89 - Комплекс стандартов на автоматизированные системы. Техническое задание на создание автоматизированной системы.
- ГОСТ 34.601-90 - Автоматизированные Системы. Стадии создания
- РД 2000 «Методология функционального моделирования IDEF0»
- Абрамова Л.В. Инструментальные средства информационных систем: учебное пособие. - Архангельск: САФУ, 2013. - 118 с. - режим доступа http:// biblioclub.ru
- Заботина Н.Н.Проектирование информационных систем: учебное пособие. – М.: ИНФРА-М, 2013. - 331с.
- Золотов С.Ю. Проектирование информационных систем: учебное пособие. - Томск : Эль Контент, 2013. - 88 с. – режим доступа http:// biblioclub.ru
- Методы и средства проектирования информационных систем и технологий: учебное пособие / авт.-сост. Е.В. Крахоткина. - Ставрополь: СКФУ, 2015. - 152 с.
- Проектирование информационных систем. Проектный практикум: учебное пособие / А.В. Платёнкин, И.П. Рак, А.В. Терехов, В.Н. Чернышов. - Тамбов: Издательство ФГБОУ ВПО «ТГТУ», 2015. - 81 с. - режим доступа http:// biblioclub.ru
- Проектирование информационных систем. Проектный практикум: учебное пособие / А.В. Платёнкин, И.П. Рак, А.В. Терехов, В.Н. Чернышов. - Тамбов: Издательство ФГБОУ ВПО «ТГТУ», 2015. - 81 с. - режим доступа http:// biblioclub.ru
- Советов Б.Я. Базы данных: учебник / Б.Я. Советов, В.В. Цехановский, В.Д. Чертовский. – 2-е изд., перераб. и доп. - М.: Юрайт, 2015. - 463с.
- Управление кадровой безопасностью (Понятие и методы кадровой безопасности)
- Метод экспертных оценок и область его применения решений (на примере ООО «Дорожное строительно-монтажное управление)
- Организация безналичных расчетов в банках на примере коммерческого банка ПАО УралСиб
- Анализ внешней и внутренней среды организации (Организация как открытая система)
- Проектные структуры управления (Понятие организационной структуры управления проектами)
- Управление формированием прибыли на предприятии
- Валютные отношения
- Реклама как средство маркетинговых коммуникаций
- Бенчмаркинг
- Переманивание наиболее ценных сотрудников
- Метод экспертных оценок и область его применения решений (на примере конкретной организации)
- Методы нормирования труда (на примере реально существующей организации)