ТЗ на разработку системы он-лайн бронирования сборных туров, их создания и обработки. Две доп.роли: менеджер и клиент. Пользовательская роль «менеджер» имеет право создания материалов типа «сборный тур», редактирования информации по «трансферам», «отелям и номерам», а также одобрения (резервирование заявок), просмотра и обработки автоматически созданных заявок. Пользователи в данную ролевую категорию добавляются администратором или другим менеджером. Пользовательская роль «клиент» имеет право автоматического бронирования сборного тура – т.е. его заказа с последующей автоматической резервацией места до подтверждения данной брони «менеджером». Пользователи в данную ролевую категорию добавляются администратором или модератором. Анонимные пользователи имеют права заказа тура он-лайн. В данном случае, тур не бронируется автоматически (не резервируются места из выделенной квоты), а резервируется только после подтверждения менеджером. Механизм создания сборных туров. Для создания сборного тура в системе предусмотрено несколько типов материалов (часть системные – используются основным типом материала): трансфер, номера, сборный тур. Кроме того, для функционирования механизма добавления «отелей и номеров» предусмотрен словарь «гостиницы» к терминам которого прикрепляются отдельные номера. Материал «трансфер». Данный тип материала носит информацию о стоимости и названии трансфера. В дальнейшем, при создании сборного тура, выбирается необходимый тип трансфера (по названию) из которого, автоматически берется стоимость трансфера. Материал «номер». Необходим для механизма квотирования. Данный тип материала содержит информацию следующего рода: название, тип (категория), квота (сколько выделено номеров данного типа, текстовое поле), в резерве (сколько номеров из данной квоты находятся в резерве, т.е. уже забронированы под определенный заказ), возможность «подзапроса» чекбокс (возможно ли при квоте == «в резерве» сделать запрос на выделение номера, чтобы менеджер связался с гостиницей и в случае выделения номера обновил квоту), связь с термином из словаря «гостиницы» (привязка номера к гостинице). Кроме того, вся предыдущая информация разделяется на даты, потому что номера выделяются по датам, например: с 16 по 20 выделено 20 стандартных номеров, а с 20 по 25 выделено 25. Материал «сборный тур». Данный тип материала создает сборный тур. Содержит следующие поля: название (текстовое поле), описание (текстовое поле), изображение (поле загрузки файла), трансфер (нодреференс на «трансфер»), добавление «дней» тура – мультигруппа содержащая информацию по программе тура в данный день, добавление номеров – мультигруппа содержащая ссылку на тип материала «номер» и поле стоимость, добавление дат тура (даты заездов). Механизм функционирования (заказа) сборных туров. На странице туров пользователь выбирает интересующий его тур и/или (можно на следующем шаге) выбирает интересующую дату заезда. Далее пользователь попадает на страницу выбора «параметров тура», а именно: необходимого трансфера из доступных и количества трансферов (для каждого человека предполагается необходимость бронирования отдельного трансфера), выбор номера для размещения. После чего пользователь попадает на страницу прекалькуляции стоимости тура – на данной странице ему предоставляется информация о доступности тура (квота позволяет – ок, если нет, то показывается вариант «подзапроса». проверка квоты: «квота» != «в резерве», «квота» >= «в резерве» + х, где х – необходимое кол-во номеров данного типа для резерва) и итоговая стоимость выбранного тура. Если пользователь подтверждает, то: 1. Аутентифицированный пользователь с учетной ролью «клиент»: происходит автоматическое бронирование тура, т.е. из квоты номеров резервируется необходимое количество номеров (обновляется необходимый тип материала «номер», а именно, в поле «в резерве» прибавляется необходимое кол-во) по данной дате (выбранной в качестве даты тура), отсылается уведомление менеджерам, а также в системе появляется новый активный заказ с пометкой «в работе, забронирован». 2. Анонимный пользователь: автоматическое бронирование не происходит, появляется новый заказ с пометкой «в работе, без бронирования», отсылаются уведомления менеджерам. Следующим шагом является обработка заказа менеджером. Если заказ автоматически забронирован, то менеджер приступает к работе с клиентом, а именно: выгружает счет в 1с и все остальное. Если заказ не забронирован, то менеджер связывается с клиентом, уточняет необходимость «бронирования выбранного тура», после чего самостоятельно запускает механизм автоматического бронирования (нажимает на кнопку, после чего исходя из параметров данного заказ происходит изменения зависимых параметров системы: изменение квоты номеров, а также статус заказа переводится с «в работе, без брони» в «в работе, забронирован», выставляется счет. Если тур требует «подзапрос», то менеджер уточняет возможность выделения дополнительных номеров, после чего вносит соответствующие изменения в квоту выделенных номеров необходимой даты и номера. Далее по завершению всех необходимых манипуляций, т.е. когда тур выкуплен, менеджер заходит в систему и необходимый тур помечает как «выполненный» (чтобы в текущей очереди не висел).