Техническое задание на разработку
Модуля VIP Order
Системы STAFF
«Заказ нестандартных тортов»
Версия 1.1
Апрель 2011
Содержание документа
1 Введение. 3
2 Общие требования. 3
3 Подробное описание модуля. 4
3.1 Технические требования. 4
3.2 Категории пользователей. 4
3.3 Состояния заказа. 4
3.4 Функциональность приложения. 5
4 Спецификация. 7
4.1 База данных. 7
4.2 Web-приложение. 9
4.2.1 Интерфейсы.. 9
4.2.1.1 Список заказов. 9
4.2.1.2 Регистрация заказа. 11
4.2.1.3 Детали заказа. 13
4.2.1.4 Справочник вкусовых стилей. 14
4.2.2 Отчеты.. 15
4.2.2.1 Бланк заказа. 15
4.2.2.2 Список заказов. 15
4.2.2.3 Печать заданий для выбранных заказов. 16
4.2.2.4 Принятие в работу одобренных заданий. 16
5 Дополнительные работы.. 16
Введение
Данный документ является техническим заданием на разработку модуля VIP Order (“Заказ нестандартных тортов”) для компании Filias.
Новый модуль будет независимой составной частью системы автоматизации деятельности компании.
Общие требования
Модуль VIP Order должен быть реализован как многопользовательское web-приложение, ориентированное на контроль бизнес-процесса производства нестандартных тортов под заказ клиентов.
Однако, с связи с тем, что процесс заказа и выдачи тортов тесно связан с пользователями системы Staff, объекты базы данных, необходимые для функционирования модуля должны храниться в базе данных системы STAFF (может быть в отдельной схеме).
Процесс производства такого торта включает в себя оформление заказа (по результатам беседы заказчика с менеджером), контроль предоплаты, отслеживание этапов выполнения заказа, информирование заказчика о готовности изделия.
На каждом этапе с заказом работают определенные категории пользователей (менеджеры ресторана, сотрудники кондитерского цеха и т.д.), и для каждой категории должна быть предусмотрена специфическая функциональность.
Особенностью данного web-приложения является непременное условие его работоспособность на компьютерах типа Ipad.
Подробное описание модуля
Технические требования
Модуль VIP Order должен быть разработан как web-приложение, которое обеспечит пользователям необходимую фунциональность под каждым из следующих web-браузеров:
- Apple Safary
- MS Internet Explorer
- Mozilla FireFox
- Opera
Категории пользователей
Приложение VIP Order будет ориентировано на следующие категории пользователей:
- Менеджер ресторана (принимающий или выдающий заказы)
- Оператор кондитерского цеха
- Суперпользователь
Состояния заказа
При заказе праздничного торта прослеживаются следующие состояния, в которых может находиться заказ:
· Оформлен (оформлен менеджером ресторана).
· Оплачен (оплачен в одном из ресторанов).
· Оформлен и одобрен (оформлен оператором кодитерского цеха и одобрен с точки зрения реалистичности выполнения).
· Отклонен (ввиду невозможности соблюсти требования спецификации и т.п., неправильного оформления, отказа клиента и т.п.).
· Одобрен и оплачен.
· Принят в работу (оператор распечатал индивидуальные задания кондитерам и декораторам).
· Готов.
Следующие диаграммы показывает взаимосвязь перечисленных выше состояний:
Из какого состояния | В какое состояние | Кто может перевести | |||
Оформлен | 1 | Оплачен | 2 | менеджер | 2 |
Оформлен | 1 | Оплачен | 2 | супер пользователь | 1 |
Оплачен | 2 | Одобрен и оплачен | 4 | оператор | 11 |
Оплачен | 2 | Одобрен и оплачен | 4 | супер пользователь | 1 |
Оформлен и одобрен | 3 | Одобрен и оплачен | 4 | менеджер | 2 |
Оформлен и одобрен | 3 | Одобрен и оплачен | 4 | супер пользователь | 1 |
Одобрен и оплачен | 4 | Принят в работу | 5 | оператор | 11 |
Одобрен и оплачен | 4 | Принят в работу | 5 | супер пользователь | 1 |
Принят в работу | 5 | Готов | 6 | оператор | 11 |
Принят в работу | 5 | Готов | 6 | супер пользователь | 1 |
Оформлен | 1 | Отклонен | 7 | менеджер | 2 |
Оформлен | 1 | Отклонен | 7 | оператор | 11 |
Оформлен | 1 | Отклонен | 7 | супер пользователь | 1 |
Оплачен | 2 | Отклонен | 7 | менеджер | 2 |
Оплачен | 2 | Отклонен | 7 | оператор | 11 |
Оплачен | 2 | Отклонен | 7 | супер пользователь | 1 |
Оформлен и одобрен | 3 | Отклонен | 7 | менеджер | 2 |
Оформлен и одобрен | 3 | Отклонен | 7 | оператор | 11 |
Оформлен и одобрен | 3 | Отклонен | 7 | супер пользователь | 1 |
Одобрен и оплачен | 4 | Отклонен | 7 | менеджер | 2 |
Одобрен и оплачен | 4 | Отклонен | 7 | оператор | 11 |
Одобрен и оплачен | 4 | Отклонен | 7 | супер пользователь | 1 |
Функциональность приложения
Для менеджераресторана должна быть предусмотрена следующая функциональность:
- Просмотр заказов
- Регистрация нового заказа (перевод заказа в состояние оформлен)
Атрибуты заказа:
- имя, фамилия, электронный адрес и телефон заказчика;
- описание изделия (идентификатор торта на сайте TopTort или предоставленная заказчиком фотография/рисунок, вкусовые стили изделия - из справочника, вес изделия, неформальные пояснения к заказу);
- дата, на которую заказано изготовление изделия;
- наименование ресторана, в котором будет выдан заказ или адрес доставки;
- наименование ресторана и имя менеджера, принявшего заказ;
- дата и время оформления заказа.
- Подтверждение оплаты заказа (перевод заказа в состояние оплачен).
- Создание документа, подтверждающего заказ и его оплату.
Документ должен представлять собой HTML-документ в виде бланка с некоторыми атрибутами заказа: фотография изделия, если она была предоставлена заказчиком; время, место выдачи заказа;
- Регистрация оценки выполненного заказа
Менеджер может зафиксировать оценку выполненного заказа, данную заказчиком после выдачи ему торта:
- оценка: отлично, хорошо, удовлетворительно, не удовлетворительно;
- неформальные примечания.
- Редактирование заказа (пока заказ не дошел до состояния принят в работу).
Допустимо редактирование только даты исполнения заказа.
- Удаление (отклонение) заказа (пока заказ не дошел до состояния принят в работу)
Например, для ошибочно введенных заказов или отказа клиента.
- Получение отчетов по истории заказов
Перечень видов отчетов (формат HTML) – в обсуждении.
Для оператора кондитерского цеха должна быть предусмотрена следующая функциональность:
- Редактирование справочника вкусовых стилей
- Просмотр заказов
- Оформление заказа (перевод заказа в состояние оформлен и одобрен)
- Редактирование заказов (до перехода заказа в состояние принят в работу)
Редактируемые атрибуты: дата изготовления.
- Отклонение заказа (перевод заказа в состояние отклонен)
Например, ввиду невозможности соблюсти требования спецификации.
При отклонении заказа обязательно фиксируется причина отклонения.
- Одобрение (оплаченного) заказа (перевод заказа в состояние одобрен и оплачен ).
- Распечатка заданий на исполнение заказов (перевод заказов в состояние принят в работу ).
- Регистрация готовности заказов (перевод заказов в состояние готов)
Для суперпользователя должна быть предусмотрена следующая функциональность:
- Вся функциональность, доступная остальным пользователям.
Спецификация
База данных
Для ведения истории заказов нужно будет создать несколько новых таблиц в базе данных STAFF:
Пояснения к объектам БД:
Таблица | Поля | Назначение |
VIP_TASTE | VIP_TASTE_ID NAME | справочник вкусовых стилей |
VIP_PERSON | VIP_PERSON_ID NAME E_MAIL PHONE VIP_COMM_TYPE_ID | сведения о клиентах VIP_COMM_TYPE_ID – ссылка на предпочитаемый способ коммуникации |
VIP_COMM_TYPE | VIP_COMM_TYPE_ID NAME | Способы коммуникации с заказчиками (sms и e-mail) |
VIP_ORDER | VIP_ORDER_ID VIP_PERSON_ID ORDERDATE ISSUEDATE DELIVERYDATE DELIVERYADDRESS SOURCESUBDIVISION_ID SOURCEAPPUSER_ID TARGETSUBDIVISION_ID TARGETAPPUSER_ID DESIGN VIP_TASTE_ID DESCRIPTION WEIGHT PRICE CHECK PHOTO MARK MARKCOMMENT ORDER_STATE_ID DELETECOMMENT NUMORDER | заказы DESIGN – ссылка на файл или url на сайт с фото/рисунком CHECK – номер чека PHOTO– ссылка на фото готового изделия MARK оценка готового изделия (отлично, хорошо, удовлетворительно, не удовлетворительно) MARKCOMMENT - неформальные примечания к оценке ORDER_STATE_ID - состояние заказа (Зарегистрирован, Одобрен,…) DELETECOMMENT – комментарии к причине отклонения заказа NUMORDER – пока не используется |
VIP_ORDER_STATE | VIP_ORDER_STATE_ID NAME | состояния заказов (см. диаграмму состояний) |
VIP_STATE_SWITCH | VIP_STATE_SWITCH_ID FROM_STATE_ID TO_ STATE_ID ROLE_ID | допустимые переходы между состояниями заказов |
SUBDIVISION | SUBDIVISION_ID SUBDIVISION_NAME CATEGORY_SUBDIVISION_ | |
APPLICATION_USER | Уже есть в Staff | |
ROLE | Уже есть в Staff |
Web-приложение
В приложении должна быть реализована вся функциональность, описанная выше, и предусмотрен вывод на печать отчетов по истории заказов, бланк заказа и заданий на исполнение заказа (HTML-формат).
Интерфейсы
В данном разделе приведены все основные функции приложения: для реализации некоторых из них нужны отдельные экранных форм, а остальные так или иначе с этими формами связаны.
Схема согласования экранных форм:
Форма организации “меню” – на усмотрение разработчика.
Далее подробно описана каждая экранная форма.
Список заказов
Роли: все
Инициируется из “меню”.
Проект экранной формы:
Заказы
Дата изготовления: от __ 12.04.2011 __ до __ 14.04.2011 __ (*)
Состояние заказа _________
Место заказа _________
N | Заказчик | Дата заказа | Дата изгот. | Кто принял заказ | Место заказа | Состояние заказа | (**) | |
Иванов И. | 12.04.2011 | 14.04.2011 | Голубь | Домодедово | Одобрен | V | ||
▼ | Петрров | 11.04.2011 | 12.04.2011 | Голубь | Неглинка | Отклонен | V | |
Маша А. | 11.04.2011 | 12.04.2011 | Семенов | Рождественка | Принят в работу | V | ||
▼ | BOOM | 10.04.2011 | 12.04.2011 | Семенов | Рождественка | Готов | V |
[ Зарегистрировать новый заказ ]
[ Детали выбранного заказа ]
[ Печать списка заказов ]
[ Принятие в работу одобренных заказов ]
[ Печать заданий для выбранных заказов ]
Фильтры по умолчанию:
Дата изготовления: сегодня - завтра
Место заказа - все
Состояние заказа - все
* Детали реализации - на усмотрение разработчика.
** В каждой ячейке - выпадающий список возможных для перехода состояний, допустимых для роли текущего пользователя – см. диаграмму состояний выше.
При переходе в некоторые состояния всплывают вспомогательные диалоговые окна, например при переводе заказа в состояния оплачен и одобрен и оплачен появляется диалоговое окно, позволяющее ввести номер чека.
Заказ 1245 |
Иванов |
12.03.2011 |
Номер чека: 77777777 |
При отклонении заказа необходимо ввести комментарии по поводу отклонения и т.п.
Далее даны пояснения к каждой ссылке.
[Зарегистрировать новый заказ]
Переход к экранной форме Регистрация заказа.
[Детали заказа]
Если заказ не был выбран – соотв. сообщение.
Переход к экранной форме Детали заказа.
[Печать списка заказов]
Печатается текущая выборка заказов.
См. раздел Отчеты.
[ Печать заданий ]
См. раздел Отчеты.
Соответствие элементов интерфейса объектам БД:
Элемент интерфейса | Объект БД | Комментарии |
N | ORDER.NUMORDER | |
Заказчик | PERSON.FIRSTNAME + PERSON.LASTNAME + PERSON. MIDDLENAME | |
Дата заказа | ORDER.ISSUEDATE | |
Дата изготовления | ORDER.DELIVERYDATE | |
Кто принял заказ | APPLICATION_USER.NAME | |
Место доставки | ORDER.DELIVERYADDRESS | |
Состояние заказа | ORDER.STATE |
Регистрация заказа
Роли: все
Инициируется нажатием [ Зарегистрировать новый заказ ] в экранной форме Заказы.
Проект экранной формы:
Регистрация заказа
Номер: ____ (*)
-----------------------------------------------------------------------------------------------------------------------
ЗАКАЗЧИК:
ФИО/NICK: V
E-mail: _____________
Телефон: _____________
Доставка: (**)
● Домодедово V
○ __________________
-----------------------------------------------------------------------------------------------------------------------
ТОРТ:
Образец дизайна: _____________ [ Выбрать файл ] (***)
Вкусовой стиль: V
Вес: 1кг (****) Цена: _________
Описание: _______________________________________________________________
_______________________________________________________________
_______________________________________________________________
Дата заказа: ____________
Дата изготовления: ____________(*****)
[ Печать бланка заказа ]
* Формируется автоматически
** Либо адрес, либо название ресторана (по умолчанию ресторан менеджера, принявшего заказ).
*** Либо “идентификатор” торта на сайте, либо имя файла с фотографией.
**** Целое число
***** По умолчанию – заказ сегодня, готовность - завтра.
ЗАКАЗЧИК: В этой части интерфейса можно выбрать клиента (и изменить при необходимости его данные) или ввести все данные о новом клиенте.
Наименование ресторана и имя менеджера, принявшего заказ, будут браться автоматически – по логину текущего пользователя.
Заказу при регистрации приписывается состояние Оформлен.
Соответствие элементов интерфейса объектам БД:
Элемент интерфейса | Объект БД | Комментарии |
Состояние заказа | VIP_ORDER.STATE | |
N | VIP_ORDER.NUMORDER | |
Заказчик | VIP_PERSON.NAME | |
E_MAIL | VIP_PERSON.E_MAIL | |
Телефон | VIP_PERSON.PHONE | |
Место доставки | VIP_ORDER.DELIVERYADDRESS | |
Вкусовой стиль | VIP_TASTE.NAME | |
Дизайн | VIP_ORDER.DESIGN | |
Вес | VIP_ORDER.WEIGHT | |
Цена | VIP_ORDER.PRICE | |
Дата заказа | VIP_ORDER.ISSUEDATE | |
Дата изготовления | VIP_ORDER.DELIVERYDATE |
Детали заказа
Роли: все
Инициируется нажатием [ Детали заказ ] в экранной форме Заказы.
Проект экранной формы:
Заказ N 1234
Номер чека: #################
Состояние: Одобрен
Дата заказа: 10.04.2011 (*)
Дата изготовления: 12.04.2011
ЗАКАЗЧИК: Маша А. masha@mail.ru +7 911 1234567
Доставка: ул.Пушкина, 5 - 16
-----------------------------------------------------------------------------------------------------------------------
ТОРТ:
Образец дизайна: c:\photo\1234a.jpg ФОТО образца
Вкусовой стиль: Эстерхази
Вес: 2кг Цена: 14.000
Описание: _______________________________________________________________
_______________________________________________________________
-----------------------------------------------------------------------------------------------------------------------
ОЦЕНКА: хорошо (не самое удачное сочетание вкусовых стилей)
Причины отклонения заказа ___________________________________________________
* Поле дата заказа – единственное редактируемое поле (открыто для редактирования если заказ не дошел до состояния принят в работу).
Поле Оценка и комментарии к оценке открыты для редактирования (если заказ дошел до состояния готов).
Соответствие элементов интерфейса объектам БД:
Элемент интерфейса | Объект БД | Комментарии |
Состояние заказа | VIP_ORDER.STATE | |
N | VIP_ORDER.NUMORDER | |
Заказчик | VIP_PERSON.FIRSTNAME | |
E_MAIL | VIP_PERSON.E_MAIL | |
Телефон | VIP_PERSON.PHONE | |
Предпочитаемый способ связи | VIP_PERSON.COMMTYPE | |
Место доставки | VIP_ORDER.DELIVERYADDRESS | |
Вкусовой стиль | VIP_TASTE.NAME | |
Дизайн | VIP_ORDER.DESIGN | |
Вес | VIP_ORDER.WEIGHT | |
Цена | VIP_ORDER.PRICE | |
Дата заказа | VIP_ORDER.ISSUEDATE | |
Дата изготовления | VIP_ORDER.DELIVERYDATE | |
Фото готового изделия | VIP_ORDER.PHOTO | |
Оценка | VIP_ORDER.MARK | |
Комментарий к оценке | VIP_ORDER.MARKCOMMENT |