Кастомизация бланков маршрутных квитанций (МК) и ваучеров

Кастомизация бланков маршрутных квитанций (МК)

Для редактирования бланка необходимо перейти в админку агентства по адресу: https://prd.admin.corteos.ru 

Для входа использовать административные логин и пароль своего агентства.

Далее спускаемся до блока "Настройки маршрут-квитанций":

  • Блок настройки маршрут-квитанций состоит из трех блоков:

  1. Формат файла, в котором конечный пользователь будет получать файлы билетов;

  2. Блок с шаблонами по умолчанию. Здесь можно скачать шаблон в формате .html, а также скачать пример ваучера (по умолчанию в формате .pdf);

  3. Блок с загружаемыми в данный момент и последним загруженным ранее шаблоном в формате .html, а также примеры сформированного файла ваучера или МК в формате .pdf.

Кастомизация МК авиабилета

Для кастомизации маршрут-квитанции авиабилета необходимо скачать шаблон МК:

Скачанный файл следует открыть в любом редакторе, где можно редактировать html (например, Блокнот или Notepad++).

В шаблоне можно менять верстку, но нельзя добавлять служебные поля или изменять их названия (служебные поля начинаются с "@", например, "@(Model.SUPPLIER_NAME)").

Сохраняем файл обратно в .html.

Загрузка логотипа агентства

В шаблон МК логотип вставляется кодированным в формат BASE64.

Чтобы выполнить кодирование, можно воспользоваться онлайн-конвертером (например, этим). Нажимаем на кнопку загрузки на страничке конвертера:


Выбираем файл с логотипом и нажимаем кнопку "Открыть". Конвертер загрузит файл и проведет его кодирование в формат BASE64, после чего предложит, в каком формате отдать код. Выбираем опцию "Show code":


 Выбираем вариант "For use in <img> elements:"  и нажимаем кнопку "Copy to Clipboard":

  • Теперь возвращаемся в наш редактор и вставляем логотип в нужное место в нашем шаблоне и сохраняем файл:

 

  • Пример блока для логотипа в шапке письма

Обратите внимание, содержание представленного блока прописывается самостоятельно.

<table cellspacing="0" cellpadding="0" style="border-collapse:collapse"> <tbody><tr style="page-break-inside:avoid !important"> <td style="width:262.5pt; vertical-align:top;text-align:right"> <p style="margin-top:0pt; margin-bottom:0pt; font-size:14pt"> <img alt="" src="data:image/png;base64" width="250" height="165" style="-aw-left-pos:0pt; -aw-rel-hpos:column; -aw-rel-vpos:paragraph; -aw-top-pos:0pt; -aw-wrap-type:inline"> </p> </td> <td style="width:500pt"> <p style="margin-top:0pt; margin-bottom:0pt; text-align: center"> <span style="font-family:Cambria; color:#000000">TEXT </span> <span style="font-family:Cambria; color:#000000"></span> </p> <p style="margin-top:0pt; margin-bottom:0pt;text-align:center"> <span style="font-family:Cambria; color:#000000">TEXT </span> <span style="font-family:Cambria; color:#000000"></span> <p style="margin-top:0pt; margin-bottom:0pt;text-align:center"> <span style="font-family:Cambria; color:#000000">TEXT </span> <span style="font-family:Cambria; color:#000000"></span> </p> </p> </td> </tr> </table>

Проверка шаблона

Чтобы проверить, насколько корректно мы сверстали шаблон МК, необходимо в блоке настроек маршрут-квитанций нажать на кнопку "Проверить шаблон" и далее кнопку "Загрузить":

Далее в открывшемся окне выбрать сохраненный файл шаблона и нажать кнопку "Открыть":

После загрузки бланка наша форма проверки шаблона обновится и будет иметь вид:

Прежде чем применить изменения в настройках шаблона, необходимо проверить его корректность.

Для этого нажимаем на кнопку "Новый бланк":

  • Опция "Шаблон" выгрузит нам тот шаблон, который мы только что загрузили.

  • Опция "Сгенерированный файл" выгрузит в формате .pdf пример сгенерированной МК на основе только что загруженного шаблона.

Если с шаблоном все в порядке и выгруженный пример заполненной МК нас устраивает, нажимаем кнопку "Применить" на форме проверки шаблона.

Если при проверке шаблона при выгрузке примера сформированной МК вместо файла PDF выгружается пустой архив - значит, в самом формате шаблона была допущена ошибка!

Ее необходимо исправить и добиться корректной выгрузки примера маршрут-квитанции!

После применения настроек шаблона необходимо пролистать страницу админки вниз до конца и нажать кнопку "Сохранить":

Просмотр предыдущего загруженного шаблона и примера выгружаемой МК

Для того, чтобы просмотреть, какой шаблон и МК были загружены ранее, необходимо нажать кнопку "Проверить шаблон".

В открывшеся окне будет доступна кнопка "Старый бланк":

Аналогично проверке новых бланков при нажатии на эту кнопку нам будут доступны два варианта:

  • "Шаблон" - будет выгружаться непосредственно редактируемый шаблон, который используется в данный момент;

  • "Сгенерированный файл" - выгрузится предзаполненная МК для просмотра финального вида.

Служебные поля, которые могут быть использованы в шаблоне маршрут-квитанции

Переменные модели корневого уровня

Пример синтаксиса в шаблоне МК:

@(Model.SELL_DATE)

Список полей:

  • PAX_NAME_EN - Имя пакса латиницей (поле ПАССАЖИР);

  • SELL_DATE - Дата выписки билета (поле ДАТА ПРОДАЖИ);

  • TICKET_NUMBER - Номер билета (поле НОМЕР БИЛЕТА);

  • PNR_LOCATOR - Номер брони (поле НОМЕР БРОНИРОВАНИЯ);

  • AIRLINE_LOCATOR - Номера броней авиакомпаний для данного маршута, через запятую (поле ЛОКАТОР АВИАКОМПАНИИ);

  • PAX_DOCUMENT - Номер документа пакса (поле НОМЕР ДОКУМЕНТА);

  • PAX_MILECARD - Номер мильной карты (поле НОМЕР БОНУСНОЙ КАРТЫ);

  • VALIDATOR_EN - Валидирующий перевозчик латиницей (поле VALIDATING CARRIER);

  • VALIDATOR_RU - Валидирующий перевозчик кириллицей (поле ВАЛИДИРУЮЩИЙ ПЕРЕВОЗЧИК);

  • CURRENCY_RATE - Курс валюты к рублю, если валюта отличается от рубля;

  • BASE_FARE - Базовый тариф (поле “Тариф”);

  • CURRENCY - Валюта (поле “Тариф”);

  • EQUIV_VALUE - Значение базового тарифа в эквивалентной валюте (поле “Эквив.”);

  • EQUIV_CODE - Код эквивалентной валюты (поле “Эквив.”);

  • TAXES - Комиссии и сборы списком в формате Код таксы, сумма, валюта (поле “Аэропортовые сборы”);

  • SERVICE_FEE - Сервисный сбор;

  • VAT - НДС (поле НДС);

  • VAT_DETALIZATION - Расшифровка НДС;

  • BASE_FARE_VAT - Отображения размера ставки и величины НДС для тарифа с НДС;

  • TAXES_VAT - Отображение ставки и величины НДС для такс, облагаемых НДС;

  • TOTAL - Итоговая сумма;

  • TOTAL_NOFEE - Итоговая сумма за вычетом сервисного сбора (поле “Всего”);

  • ENDORSMENT - Поле авиабилета, где указываются различные ограничения (restrictions) на перевозку по данному билету, а также возможность “передачи” (endorsement) пассажира другому перевозчику в случае, если пассажир по каким-либо причинам не сможет улететь на рейсе, указанном в билете (поле “Эндорсмент”).

  • TECHNICAL_STOPS - Информация о технической остановке. Город остановки и кол-во минут.

     

Переменные модели уровня Leg

Пример синтаксиса в шаблоне МК:

@foreach (var leg in Model.Legs)
{
@leg.LEG_ORIGIN
}

Список полей:

  • LEG_ORIGIN - Город отправления кириллицей/латиницей (поле ДЕТАЛИ ПЕРЕЛЕТА);

  • LEG_DESTINATION - Город назначения кириллицей/латиницей (поле ДЕТАЛИ ПЕРЕЛЕТА);

  • LEG_DURATION - Длительность лега ЧЧ:ММ (поле ДЕТАЛИ ПЕРЕЛЕТА).

Переменные модели уровня Flight

Пример синтаксиса в шаблоне МК:

@foreach (var flight in leg.Flights)
{
@flight.FLIGHT_POINTS
}

Список полей:

  • FLIGHT_POINTS - Код аэропорта вылета - код аэропорта прилета (например, "VKO - LED");

  • FLIGHT_NUMBER - Номер рейса (поле РЕЙС /FLIGHT);

  • FLIGHT_CLASS - Тип тарифа, например, "Бизнес";

  • FLIGHT_DATE - Дата вылета рейса

  • FLIGHT_DEPARTURE_RU - Город вылета, название аэропорта вылета;

  • FLIGHT_DEPARTURE_EN - Город вылета, название аэропорта вылета латиницей;

  • FLIGHT_DEPARTURE_TERMINAL - Терминал в аэропорте отправления, если есть;

  • FLIGHT_DEPARTURE_TIME - Время вылета рейса;

  • FLIGHT_ARRIVAL_RU - Город прилета, название аэропорта прилета;

  • FLIGHT_ARRIVAL_EN - Город прилета, название аэропорта прилета латиницей;

  • FLIGHT_ARRIVAL_TERMINAL - Терминал в аэропорте назначения, если есть;

  • FLIGHT_ARRIVAL_TIME - Время прилета рейса. Если дата отличается от даты вылета - то дата и время прилета;

  • FLIGHT_OPERATING_CARRIER_RU - Валидирующий перевозчик;

  • FLIGHT_OPERATING_CARRIER_EN - Валидирующий перевозчик латиницей;

  • FLIGHT_RBD - код тарифа, название тарифа (например, "YLEERT") (поле “Код тарифа”);

  • FLIGHT_EQUIPMENT - Название самолета и его код, если есть (например, "Boeing 737-500");

  • FLIGHT_BAGGAGE - информация о багаже на рейсе (поле Багаж);

  • CONNECTION - время ожидания следующего рейса для перелета с пересадками в формате ЧЧ:ММ.

@(Model.VALIDATOR_AG) — Валидатор агентства;
@(Model.AGENCY_NAME) — Наименовании агентства;
@(Model.AGENCY_PHONE) — Контакты агентства;
@(Model.AGENCY_ADDRESS) — Адрес агентства.

Кастомизация отельного ваучера

Аналогично с файлом маршрут-квитанции авиабилета, описанной выше, производится и кастомизация отельного ваучера.

Скачиваем шаблон, редактируем, не меняя служебные поля.

Далее загружаем новый ваучер на сайт, проверяем шаблон выгрузкой сгенерированного файла и, если все ОК - сохраняем.

Служебные поля, которые могут быть использованы в шаблоне отельного ваучера

Переменные модели корневого уровня

Пример синтаксиса в шаблоне ваучера:

@(Model.VOUCHER_NUMBER)

Список полей:

  • VOUCHER_NUMBER - Номер брони;

  • HOTEL_NAME_EN - Название гостиницы латиницей;

  • HOTEL_NAME_RU - Название гостиницы;

  • HOTEL_ADDRESS_EN - Адрес гостиницы латиницей;

  • HOTEL_ADDRESS_RU - Адрес гостиницы;

  • HOTEL_LOCATION_RU - Расположение гостиницы, формируется из названия страны и города;

  • HOTEL_LOCATION_EN - Расположение гостиницы латиницей, формируется из названия страны и города;

  • HOTEL_PHONE_RU - Телефон отеля;

  • HOTEL_PHONE_EN - Телефон отеля латиницей;

  • HOTEL_ROOM_TYPE_EN - Название номера латиницей;

  • HOTEL_ROOM_TYPE_RU - Название номера;

  • HOTEL_MEAL_NAME_EN - Информация о питании латиницей (например, "Breakfast not included");

  • HOTEL_MEAL_NAME_RU - Информация о питании (например, "Завтрак включен");

  • DURATION_DATES - Даты заезда и выезда;

  • CHECK_IN_TIME - Время заезда, не раньше, чем;

  • CHECK_OUT_TIME - Время выезда, не позже, чем;

  • PENALTIES_INFO_RU - Информация о штрафах;

  • PENALTIES_INFO_EN - Информация о штрафах (англ.);

  • TOTAL_PRICE - Полная стоимость заказа с учетом сбора агента;

  • NUMBER_OF_NIGHTS - Количество ночей;

  • TRAVEL_AGENCY_RU - Название агентства (например, Транстур Тревел - не субагенты);

  • TRAVEL_AGENCY_EN - Название агентства латиницей;

  • NOTE_EN - Справочная информация для клиента латиницей;

  • NOTE_RU - Справочная информация для клиента (описания, отметки о РЗПВ и т. д.);

  • TOTAL_GUESTS - Количество гостей всего;

  • SUPPLIER_NAME - Название поставщика;

  • PAID_BY_EN - Название поставщика латиницей;

  • PAID_BY_RU - Название поставщика.

Изображения

Пример синтаксиса в шаблоне ваучера:

<img alt="" src="data:image/jpg;base64,@(Convert.ToBase64String(Model.SUPPLIER_LOGO))" />

Список полей:

  • SUPPLIER_LOGO - Логотип поставщика;

  • HOTEL_MAP_IMAGE_EN - Карта с расположением отеля, англ.;

  • HOTEL_MAP_IMAGE_RU - Карта с расположением отеля.

Переменные модели уровня гостя

Пример синтаксиса объектов модели в шаблоне ваучера:

@foreach (var guest in Model.GuestsRu)
{
@guest.GUEST_TITLE_EN
}

Список полей:

  • GUEST_TITLE_EN - Обращение, например MR, MS, CHD 5;

  • GUEST_TITLE_RU - Обращение, например Г-Н, Г-ЖА, РЕБ 5;

  • GUEST_FIRST_NAME_EN - Имя гостя латиницей;

  • GUEST_FIRST_NAME_RU - Имя гостя;

  • GUEST_LAST_NAME_EN - Фамилия гостя латиницей;

  • GUEST_FIRST_NAME_RU - Фамилия гостя.

____