Импорт прайс-листов №1.
Спецификация требований
2 Варианты использования
Запуск импорта цен производится из экрана «Цены на отели». При нажатии командной кнопки «Дополнительные модули» выбирается пункт меню «Импорт прайс-листов», открывается диалоговое окно «Импорт прайс-листов», в котором выбирается профиль для импорта и файл, из которого импортируются данные.
Цены сохраняются в базу данных.
3 Функциональные требования
3.1 Ввод основной ценовой информации
3.1.1 R001 Формат данных прайс-листа
Файл состоит из нескольких таблиц с ценами, каждая таблица – новый отель. Заголовка перед таблицами нет, первая непустая строка – начало таблицы с ценами. Таблицы разделяются пустыми строками. Во всем файле первая колонка не заполнена, поэтому пустой считается строка, у которой не заполнена вторая ячейка. Все строки рассматриваются начиная со второй ячейки.
3.1.1.1 Разбор таблицы с ценами
1. Первая строка – название отеля, через запятую категория отеля (звездность), через запятую город отеля.
2. Вторая строка – адрес отеля (не обрабатывается и в сопоставлении не участвует).
3. Третья строка – адрес сайта отеля (не обрабатывается и не сопоставлении не участвует).
4. Четвертая строка содержит общий период, за который вводятся цены (при импорте не используется – используются конкретные периоды из соответствующих ячеек), валюту, возраст детей, соответствующий детскому размещению
5. Пятая строка – строка заголовков
6. Шестая строка – строка заголовков:
6.1. первые две ячейки – «RoomCategory»,
6.2. третья ячейка – тип номера «SGL» (одноместный номер)
6.3. четвертая ячейка – тип номера «DBL» (двухместный номер)
6.4. пятая ячейка - тип номера «Suite» (при импорте не используется)
6.5. шестая ячейка – «Apt» (эта колонка показывает, есть ли дополнительные места для данной категории номера)
6.6. седьмая ячейка – тип размещения «Adult» (дополнительное размещение для взрослых)
6.7. восьмая ячейка – тип размещения «Child» (дополнительное размещение для детей)
6.8. девятая ячейка – «Meal» (эта колонка показывает, включена ли стоимость завтрака в стоимость проживания)
6.9. десятая и одиннадцатая ячейки - типы размещения «Adult» (размещение для взрослых, основное и дополнительное) и «Child» (размещение для детей, основное и дополнительное), для которых в нижеследующих колонках задаются цены на завтрак
6.10. двенадцатая и тринадцатая - типы размещения «Adult» (размещение для взрослых, основное и дополнительное) и «Child» (размещение для детей, основное и дополнительное), для которых в нижеследующих колонках задаются цены на ланч
6.11. четырнадцатая и пятнадцатая - типы размещения «Adult» (размещение для взрослых, основное и дополнительное) и «Child» (размещение для детей, основное и дополнительное), для которых в нижеследующих колонках задаются цены на ланч
Все остальные колонки в импорте не участвуют.
7. Седьмая строка – период дат, для которого импортируются цены
Далее идет блок цен на конкретный период дат.

3.1.1.2 Разбор блока цен на период дат
Блок цен на период дат имеет следующий вид:

В блоке цен могут быть пустые строки, либо заполненные названием корпуса отеля (при импорте не рассматривается).
Поэтому строка с ценами определяется по заполненности третьей или четвертой ячейки.
Строка с ценами имеет следующую структуру:
- Первая ячейка – категория номера
- Третья ячейка – цена за одноместный номер (основное размещение)
- Четвертая ячейка – цена за двухместный номер, основное размещение (т. к. в результате импорта должны быть получены цены за человека, цена делится на два)
- Пятая ячейка – пустая
- Шестая ячейка – показывает, есть ли дополнительное размещение для данной категории номера (Yes – есть, N/A – нет). Если нет, цены из столбцов 7 и 8 не импортируются.
- Седьмая и восьмая ячейка – цены за взрослое и детское дополнительное размещение (если ячейка не заполнена, цена не импортируется)
- Девятая ячейка – показывает, включена ли цена питания в цену проживания, или ее надо добавить: included или BB – цена включена, N/I – ее надо добавить
- Десятая и одиннадцатая ячейки – цена завтрака для взрослого (основного/дополнительного) и детского (основного/дополнительного) размещений. Импортируется (добавляется к цене проживания) только в том случае, если в девятой ячейке значение N/I
- Двенадцатая и тринадцатая ячейки – цена ланча для взрослого (основного/дополнительного) и детского (основного/дополнительного) размещений
- Двенадцатая и тринадцатая ячейки – цена ланча для взрослого (основного/дополнительного) и детского (основного/дополнительного) размещений
3.2 Ограничения
Данные, которые содержатся между таблицами с ценами, не обрабатываются.
Вся информация находится на первом листе xls-файла.
Файл не должен быть защищен паролем и не должен содержать макросов (т. е. должен открываться сразу).


