Изменения

Перейти к навигации Перейти к поиску

Nemo Inventory (компонент)

88 байт добавлено, 17:30, 2 июля 2016
Поиск
Для того, что бы забронировать и выписать перелёт, его надо сначала найти. Внутри Инвентори процедура обработки поискового запроса состоит из следующих этапов:
* # '''Построение маршрута для каждого из запрошенных сегментов - на '''. На данный момент максимальная длина маршрута для запрошенного сегмента ограничена 1 сегментом.Если для одного из запрошенных сегментов не удалось построить маршрут, то поиск прерывается и Инвентори возвращает ошибку "Невозможно построить маршрут для запрошенного сегмента" с указанием соответствующего сегмента.* # '''Поиск подходящих рейсов для построенных маршрутов с учётом их расписания, времени стыковок, фильтров по а/к и наличия мест на нужных классах и построение из них полных перелётов.''' Если для одного из запрошенных сегментов не удалось найти подходящих рейсов, то поиск прерывается и Инвентори возвращает ошибку "Не удалось найти расписание, удовлетворяющее заданным критериям, для сегмента" с указанием соответствующего сегмента. <br />Если не удалось построить ни одного полного перелёта из найденных рейсов, то поиск прерывается и Инвентори возвращает ошибку "Невозможно построить полный перелёт, удовлетворяющий заданным критериям".<br />Если ни для одного из построенных перелётов нет необходимого количества мест, то поиск прерывается и Инвентори возвращает ошибку "Нет необходимого количества свободных мест на перелётах, удовлетворяющих заданным критериям".# '''Применение комбинаций рейсов к построенным перелётам.''' На данный момент перелёты из более чем 4-х сегментов отбрасываются при данной процедуре. Для каждого из построенных перелётов ищется подходящая комбинация рейсов. <br />Если для перелёта не удалось найти комбинации рейсов, полностью ему соответствующей, то для каждого сегмента в перелёте ищется отдельная соответствующая ему комбинация. <br />Если ни для одного из перелётов не удалось найти подходящих комбинаций рейсов, то поиск прерывается и Инвентори возвращает ошибку "Нет допустимых комбинаций рейсов, удовлетворяющих заданным критериям". # '''Оценка полученных перелётов.''' Для каждого из перелётов ''формируется набор тарифов'', которые обеспечивают наименьшую цену для данного перелёта. При этом выполняется следующая последовательность действий:## система рассматривает каждую комбинацию, которая применилась к перелёту.## система получает все тарифы для владельца мест на первом рейсе рассматриваемой комбинации.
Если Для каждого ''тарифа'' выполняется следующий набор проверок:# проверяется на применимость к текущей комбинации рейсов (по её ID)# проверяется на возможность продажи по данному тарифу первого рейса из комбинации - при этом проверяется:*текущая дата входит в один из сезонов продажи тарифа (SalesDates) и этот сезон не удалось построить ни одного полного перелёта заканчивается через час*дата вылета первого рейса в комбинации входит в один из найденных рейсов, то поиск прерывается сезонов обслуживания тарифа (ServiceDates)*проверяются ограничения на минимальное время до вылета и Инвентори возвращает ошибку "Невозможно построить полный перелёт, удовлетворяющий заданным критериям".максимальное количество дней до вылета
Если ни для одного из построенных перелётов нет необходимого количества мест, то поиск прерывается и Инвентори возвращает ошибку "Нет необходимого количества свободных мест на перелётах, удовлетворяющих заданным критериям". * Применение комбинаций рейсов к построенным перелётам. На данный момент перелёты из более чем 4-х сегментов отбрасываются при данной процедуре. Для каждого из построенных перелётов ищется подходящая комбинация рейсов.Если для перелёта не удалось найти комбинации рейсов, полностью ему соответствующей, то для каждого сегмента в перелёте ищется отдельная соответствующая ему комбинация.Если ни для одного из перелётов не удалось найти подходящих комбинаций рейсов, то поиск прерывается и Инвентори возвращает ошибку "Нет допустимых комбинаций рейсов, удовлетворяющих заданным критериям". Оценка полученных перелётов. Для каждого из перелётов формируется набор тарифов, которые обеспечивают наименьшую цену для данного перелёта. При этом выполняется следующая последовательность действий:* рассматриваем каждую комбинацию, которая применилась к перелёту* получение всех тарифов для владельца мест на первом рейсе рассматриваемой комбинации Для каждого тарифа выполняется следующий набор проверок:* проверяется на применимость к текущей комбинации рейсов (по её ID)* проверяется на возможность продажи по данному тарифу первого рейса из комбинации - при этом проверяется:- текущая дата входит в один из сезонов продажи тарифа (SalesDates) и этот сезон не заканчивается через час - дата вылета первого рейса в комбинации входит в один из сезонов обслуживания тарифа (ServiceDates) - проверяются ограничения на минимальное время до вылета и максимальное количество дней до вылета * # проверяется доступ к тарифу, если он приватный, а так же ограничения по предпочитаемым типам тарифа из поискового запроса* # для тарифа заведённых на тип пассажира, отличный от ADT выполняется проверка на применимость данной тарифа к какому-либо из запрошенных типов пассажиров.<br />Если тариф прошёл все проверки, то он считается применимым к данной комбинации рейсов. Если подходящих тарифов не нашлось, то оценка данного перелёта прекращается и он в поисковую выдачу не попадает.* # из всех подходящих тарифов выбирается тот, у которого итоговая эффективная цена наименьшая (с учётом цены комбинации и запрошенных типов пассажиров)Если ни для одного из перелётов не нашлось подходящих цен, то поиск прерывается и Инвентори возвращает ошибку "Не удалось найти цен, удовлетворяющих заданным критериям".<br />Перелёты, для которых нашлись цены попадают в поисковую выдачу.
=== Бронирование ===

Навигация

'