Web-сервисы: Сервис для работы с документами по путевке — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[непроверенная версия][досмотренная версия]
(Введение)
Строка 31: Строка 31:
  
 
*Для выгрузки какого-либо документа необходимо вызвать соответствующий его типу метод. Для файла - [[Мастер-Web:Дополнительный модуль Сервис для работы с документами по путевке#Получение одного файла|метод получения одного файла]], для отчета - [[Мастер-Web:Дополнительный модуль Сервис для работы с документами по путевке#Получение одного отчета|метод получения одного отчета]]. Входными параметрами данных методов являются данные, полученные при вызове метода получения информации о доступных выгрузках, а выходными - файл или отчет.
 
*Для выгрузки какого-либо документа необходимо вызвать соответствующий его типу метод. Для файла - [[Мастер-Web:Дополнительный модуль Сервис для работы с документами по путевке#Получение одного файла|метод получения одного файла]], для отчета - [[Мастер-Web:Дополнительный модуль Сервис для работы с документами по путевке#Получение одного отчета|метод получения одного отчета]]. Входными параметрами данных методов являются данные, полученные при вызове метода получения информации о доступных выгрузках, а выходными - файл или отчет.
 +
 +
==Настройка отображения отчетов==
 +
Настройки для подключения отчетных форм задаются в файле '''web.config''', находящемся в папке ''MasterWebStandard'', и в файле '''web.config''', находящемся в папке ''ReservationDocuments''. Данные настройки регулируют отображение ссылок на печать отчетов и определяют условия, необходимые для печати.
 +
 +
Все секции с настройками, прописанными в файле web.config основного приложения, должны быть прописаны в файле web.config самого сервиса с теми же значениями.
 +
 +
Для включения механизма необходимо добавить в конфигурационный файл '''web.config''' секции:
 +
<configSections>
 +
 +
<sectionGroup name="megatec.web">
 +
<section name="reportSettings" type="Megatec.Configuration.WebReportsSection, Megatec.Configuration"/>
 +
</sectionGroup>
 +
 +
</configSections>
 +
 +
<megatec.web>
 +
<reportSettings controlAppearance="LinkButton" printReportPage="ReportPerpetuum.aspx" cssClass="reportLink">
 +
<reports>
 +
</reports>
 +
</reportSettings>
 +
</megatec.web>
 +
 +
Тег <code><reportSettings controlAppearance="LinkButton" printReportPage="ReportPerpetuum.aspx" cssClass="reportLink"></code> содержит параметры:
 +
* '''controlAppearance''' - внешний вид контрола для перехода к печати отчета (''ссылка'' или ''кнопка''; принимают значения: ''LinkButton'' или ''PushButton'');
 +
* '''cssClass''' - CSS-класс контрола для перехода к печати отчета (''класс стиля'' в файле <code>styles.css</code>; например, ''кнопки'');
 +
* '''autoChangeOrderStatusKey''' – ключ статуса путевки, на который изменится текущий статус, после того, как все отчеты, отмеченные параметром '''needPrintForAutoChangeStatus''', будут распечатаны;
 +
* '''autoChangeIsOutDocKey''' – отметка о выдаче документов, которая присваивается заявке после того, как все отчеты, отмеченные параметром '''needPrintForAutoChangeIsOutDoc''', будут распечатаны;
 +
* '''allFilesMustBePrintedToAutoChangeStatus''' – параметр, при котором статус заказа и документов меняется только после печати всех файлов, прикрепленных к путевке, и всех отчетов, отмеченных параметрами '''needPrintForAutoChangeStatus''' и '''needPrintForAutoChangeIsOutDoc'''. Возможные значения: ''true'', ''false''. ''Статус заказа'' определяется параметром '''autoChangeOrderStatusKey''', ''статус документов'' - '''autoChangeIsOutDocKey'''.
 +
 +
Теги для подключения отчетов имеют вид:
 +
<add code="OTCHET" title="Отчет" guid="00000-0000-0000-0000-0000000000" containServices="3" globalOrderStatusKeys="7" payed="true"
 +
hideOnFalseConditions="true"/>
 +
Обязательные параметры:
 +
* '''code''' - уникальный ключ отчета (любой, но уникальный в рамках конфига). Например, '''code="DogovorSTD"''';
 +
* '''title''' - название отчета, отображаемое в web. Например, '''title="Распечатать договор"''';
 +
* '''guid''' - идентификатор отчета в БД. Например, '''guid="2DF35251-E08F-480F-B870-364AA866F0FB"'''.
 +
Список возможных параметров, с помощью которых накладываются дополнительные условия на печать отчетов:
 +
* '''reportFormat''' - формат вывода отчета (<code>html, pdf, rtf, xls</code>). Например, '''reportFormat="pdf"''';
 +
* '''message''' - сообщение, выдаваемое при невозможности печати отчета. Например, '''message="Печать отчета невозможна: не выполнены условия печати отчета"''';
 +
* '''containServices''' - условие по необходимости наличия классов услуг в путевке. ''Возможность печатать отчет'' будет только для путевок, в которых ''есть классы услуг'', перечисленные в ''настройке''. Наличие услуг можно задавать как ''1''-''2''-''3'', где ''1'' - ''serviceKey'', ''2'' - ''code'', ''3'' - ''subcode1''; использовать можно в любых комбинациях, Например, '''containServices="1-0-0,3-3224,5"'''). Можно также перечислить через запятую ''только ключи'' классов услуг  без их детализации. Например, '''containServices ="1,3,5"'''. В данном случае печать отчета будет доступна только для путевок, в которых есть услуги авиаперелет, отель, виза.
 +
* '''countryKeys''' - условие печати отчета по стране. Параметрами настройки являются ''ключи стран'', которые перечисляются через запятую. При ''наличии настройки'' печать отчета возможна ''только для стран'', ключи которых в ней ''указаны''. Например, '''countryKeys="89,90,222"''';
 +
* '''orderStatusKeys''' - условие по статусу путевки. В настройке перечисляются через запятую ''ключи статусов путевки'', при которых ''доступна печать отчета''. Например, '''orderStatusKeys ="7,16"'''. Если для одного отчета использовать ''обе настройки'' ('''globalOrderStatusKeys''' и '''orderStatusKeys'''), отчет распечатается ''только для путевки'', у которой ''статус'' будет из настройки '''orderStatusKeys''', ''глобальный статус'' которого указан в '''globalOrderStatusKeys''';
 +
* '''globalOrderStatusKeys''' - условие по глобальному статусу путевки; В настройке перечисляются через запятую ''ключи глобальных статусов'' путевки, при которых ''доступна печать'' отчета. Например, '''globalOrderStatusKeys ="7"''';
 +
* '''payed''' - условие, по которому путевка должна быть полностью оплачена. Настройка  может принимать следующие значения: ''true'' – настройка включена, печать отчета ''возможна'' только по ''оплаченным'' путевкам; ''false'' или ''отсутствие настройки'' – настройка выключена. Например, '''payed ="true"''';
 +
* '''servicesThatMustBeApproved''' - условие, определяющее, какие классы услуг в путевке должны быть подтверждены к печати. Например, '''servicesThatMustBeApproved ="1"'''. В данный момент данная настройка ''работает'' только для класса услуг ''авиаперелет''. Признак '''Разрешен к печати''' проставляется для рейсов в экране [[Мастер-Тур:Загрузка услуг|«Загрузка услуг» ПК «Мастер-Тур»]];
 +
* '''priceTourNameLike''' - условие по названию тура для web. В данной настройке указывается ''строка из названия тура''. Отчет можно будет распечатать ''только для путевок по турам'', в название в web которых ''входит данная строка''. Настройка ''чувствительная'' к ''регистру букв'' в строке. Например, '''priceTourNameLike ="Англ"''';
 +
* '''additionalUrl''' - дополнительные параметры, которые можно  передавать в отчет. Например, '''additionalUrl="&amp;Language=RUS"''';
 +
* '''hideOnFalseConditions''' - скрывать ссылку на отчет, если условия печати не выполнены. Настройка может принимать следующие значения: ''true'' – настройка включена, ссылка на отчет ''скрывается'', если ''условия печати'' отчета ''не выполнены''; ''false'' или ''отсутствие'' настройки – настройка выключена, ссылка на отчет ''не скрывается''. Например, '''hideOnFalseConditions="true"''';
 +
* '''userType''' - тип пользователя, которому доступна печать отчета (''0'' - ''агент''; ''1'' - ''частник'');
 +
* '''staticUrl''' - статическая ссылка на файл. С помощью этой настройки в экране '''OrderInfo''' включается возможность печати ''не отчета'', а ''статического файла'', который в ней указан. В качестве параметра в настройке нужно указывать ссылку на файл. Например, '''staticUrl="<nowiki>http://crmportal.megatec.ru/Portals/0/MT/Report/Doc/Примеры%20профилей%204008/ПримерV1.xls</nowiki>"''';
 +
Важно! В строке подключения для файла ''не нужно'' задавать параметр ''GUID''. Все остальные параметры работают также, как и в случае
 +
с отчетом.
 +
* '''target''' - открывать в новом или текущем окне (''_blank'' – в ''новом'' окне, ''_self'' – в ''текущем'');
 +
* '''additionalEmail''' - e-mail адрес, на который будет отправляться копия отчета;
 +
Данная возможность доступна только для отчетов в формате <code>.pdf</code>
 +
* '''timeCheckServiceKey''' - ключ класса услуги для проверки возможности печати отчета по временным рамкам. Например, для класса ''авиаперелет'': '''timeCheckServiceKey ="1"''';
 +
* '''timeCheckInterval''' - временной интервал в часах, отсчитываемый ''назад'' от времени ''начала'' предоставления ''первой услуги'' в путевке с ''классом'', указанным в настройке '''timeCheckServiceKey''', ''позднее'' которого ''не разрешается печать'' отчётов. Например, '''timeCheckInterval ="24"'''.  Т.е. отчет нельзя будет распечатать позже, чем за 24 часа до начала первой услуги авиаперелет в путевке;
 +
* '''timeCheckHourMinute''' - час и минута за день до начала предоставления первой услуги в путевке с классом, указанным в настройке '''timeCheckServiceKey''', позднее которого не разрешается печать отчётов. Время может быть указано в формате <code>HH-mm, HH.mm или HH:mm</code>. Например, '''timeCheckHourMinute ="20:15"'''. Если в строке подключения отчета указаны ''обе настройки'' ('''timeCheckInterval''' и '''timeCheckHourMinute'''), то настройка '''timeCheckInterval''' ''более приоритетна'', чем '''timeCheckHourMinute''';
 +
* '''timeFromCheckServiceKey''' – ключ класса услуги для проверки возможности печати отчета раньше определенной даты. Берется дата ''первой по времени'' услуги этого класса из путевки, от нее отсчитывается ''назад'' количество ''часов'', заданных настройкой '''timeFromCheckInterval''' и получается ''дата'' и ''время'', ''раньше'' которых ''запрещена печать отчета''. В случае ''авиаперелета'' время отсчитывается от ''времени вылета'', в случае услуги, у которой есть ''только дата начала'', время отсчитывается от ''00:00 этой даты''. Если ''значение'' ключа равно ''нулю'', то время отсчитывается от ''даты начала тура'';
 +
* '''timeFromCheckInterval''' – количество часов, отсчитываемое назад от события, определяемого настройкой '''timeFromCheckServiceKey''', ранее которого не разрешается печать отчетов;
 +
* '''timeFromCheckHourMinute''' – альтернатива настройке '''timeFromCheckInterval''' (имеет ''меньший'' приоритет). ''Час'' и ''минута'' в день, определяемый настройкой '''beginPrintDayInterval''', до события, определяемого настройкой '''timeFromCheckServiceKey''', ''ранее'' которого ''запрещена'' печать отчетов (может быть указан в формате <code>HH-mm, HH.mm или HH:mm</code>);
 +
* '''beginPrintDayInterval''' – используется в  связке с '''timeFromCheckHourMinute''' и определяет количество дней до события, определяемого настройкой '''timeFromCheckServiceKey''', ранее которого запрещена печать отчетов. Значение по умолчанию – ''1'';
 +
* '''excludeWeekend''' – исключает выходные при отсчете дней до событий, определяемых настройками '''TimeCheckServiceKey''' и '''TimeFromCheckServiceKey'''. Используется в связке с настройками '''timeFromCheckHourMinute''' и '''beginPrintDayInterval'''. Значение по умолчанию – ''false'';
 +
* '''needPrintForAutoChangeStatus''' - необходимость печати отчета для изменения статуса путевки (''true'' – отчет ''должен'' быть распечатан для ''изменения статуса'' путевки на значение указанное в '''autoChangeOrderStatusKey'''; ''false'' – печать отчета ''не влияет'' на ''изменение статуса'' путевки);
 +
* '''needPrintForAutoChangeIsOutDoc''' – необходимость печати отчета для изменения статуса документов путевки. Настройка ''актуальна'' только при ''включенной настройке'' '''autoChangeIsOutDocKey''' и имеет следующие значения: ''true'' – отчет ''должен'' быть распечатан для ''изменения статуса'' документов путевки на значение указанное в '''autoChangeIsOutDocKey'''; ''false'' или ''отсутствие настройки'' – печать отчета ''не влияет'' на ''изменение статуса'' путевки. Например, '''autoChangeIsOutDocKey ="true"''';
 +
* '''permittedPartners''' – печать отчета ''разрешена'', когда в данную настройку прописан ''ключ филиала (партнера) Ведущего менеджера по путевке''. Филиалы перечисляются через запятую. Например, '''permittedPartners ="1,1760'''";
 +
* '''serviceStatusKeys''' – список статусов услуг, через запятую, при которых можно печатать отчёт. Например, '''serviceStatusKeys ="0,2"''';
 +
* '''printExcludedServiceKeys''' – определяет ключи классов услуг через запятую, исключаемых из проверки в настройке '''serviceStatusKeys'''. Например, '''printExcludedServiceKeys ="10,12"''';
 +
* '''documentSuperStatus''' – определяет статус документов, при котором игнорируются настройки печати отчета по статусу путевки ('''globalOrderStatusKeys''' или '''orderStatusKeys'''), по оплате ('''Payed''') и по наличию рейсов в путевке с признаком ''Разрешен к печати''  ('''servicesThatMustBeApproved'''). Например, '''documentSuperStatus ="8"''';
 +
* '''possibleUnderpayment''' – максимально возможная недоплата по путёвке. Условие срабатывает ''только'' при ''включенной настройке'' '''Payed'''. Исчисляется в ''национальной валюте''. ''Пересчёт'' в нац. валюту из валюты тура осуществляется на ''дату создания'' путёвки. Например, если национальная валюта – рубли – указывается целое кол-во рублей (без копеек) -  '''possibleUnderpayment ="100"''';
 +
* '''documentStatuses''' – ключи статусов документа ('''DocumentStatus'''), при которых возможна печать данного отчета. Ключи перечисляются через запятую. Например,  '''documentStatuses ="2,5"''';
 +
* '''exludedAgents''' – ключи партнеров через запятую, для которых запрещена печать отчета;
 +
* '''showInformationConfirmation''' - определяет, нужно ли показывать информационное сообщение перед печатью отчета. Возможные значения: ''true'' - показывать сообщение, ''false'' - не показывать сообщение. Текст сообщения задается в файле <code>printReportConfirmMessage.txt</code>, который находится в папке ''templates'' ПК «Мастер-Web»;
 +
* '''approvedForPrintCheckingType''' - определяет тип проверки подтвержденных к печати услуг. Условие срабатывает ''только'' при ''включенной настройке'' '''servicesThatMustBeApproved''' и имеет следующие значения: ''-1'' – не проверять (по сути отключается проверка '''servicesThatMustBeApproved'''); ''0'' или ''отсутствие настройки'' – все услуги должны быть подтверждены (для всех авиаперелетов в путевке должен быть проставлен признак ''Разрешен к печати''); ''1'' – хотя бы одна услуга должна быть подтверждена (хотя бы  один авиаперелет в путевке должен иметь признак ''Разрешен к печати''.
 +
Важно! Данная настройка в файле <code>web.config</code> задается ''не в строке подключения'' отчета, а в ''общих настройках''  (секция '''appSettings''').
 +
Например, '''<add key="approvedForPrintCheckingType" value="1"/>'''
 +
* '''denyPrintBeforeTourEnd''' – запретить печать отчета до окончания тура. Настройка  может принимать следующие значения: ''true'' – настройка включена, печать отчета ''возможна только после завершения'' тура; ''false'' или ''отсутствие настройки'' – настройка выключена, отчет ''можно'' распечатать ''независимо от дат'' тура. Например, '''denyPrintBeforeTourEnd ="true"''';
 +
* '''containServicesWithPartner''' - настройка, определяющая партнеров, по которым может быть распечатан отчет только при наличии в путевке услуг данных партнеров. В настройке прописываются ключи партнеров через запятую. Например, '''containServicesWithPartner="5,6,7"'''.
 +
* '''allowedPartnerGroups''' - настройка, определяющая каким '''группам партнеров разрешено''' печатать отчет. В настройке прописывается значение поля '''og_id''' из таблицы <code>'''[ObjectGroups]'''</code>. Например, '''allowedPartnerGroups="2"'''.
 +
* '''permittedPartnerGroups''' - настройка, определяющая каким '''группам партнеров запрещено''' печатать отчет. В настройке прописывается значение поля '''og_id''' из таблицы <code>'''[ObjectGroups]'''</code>. Например, '''permittedPartnerGroups="3"'''.
 +
 +
Для подключения стандартных отчетов «Ваучер», «Электронный билет», «Счет» и «Страховка» в теге <reports/> необходимо добавить секции:
 +
<add code="VCHRSTD" title="Распечатать Ваучер" guid="2DF35251-E08F-480F-B870-364AA866F0FB" containServices="3"
 +
globalOrderStatusKeys="7" payed="true" hideOnFalseConditions="true"/>
 +
<add code="EKTKSTD" title="Распечатать Электронный билет" guid="41969A74-4303-4732-8EBB-E2870D43AB9A" containServices="1"
 +
globalOrderStatusKeys="7" payed="true" additionalUrl="&amp;Language=RUS"/>
 +
<add code="ACCNTSTD" title="Распечатать Счет" guid="55F8A40E-0C9D-4522-B335-541DD09601D0" globalOrderStatusKeys="7" userType="0" />
 +
<add code="INSURSTD" title="Распечатать Страховку" guid="75165C7F-5BA5-4769-B215-898577D1376E" containServices="6"
 +
globalOrderStatusKeys="7" payed="true" reportFormat="pdf" userType="1" />
 +
 +
Подключение других отчетных форм осуществляется таким же образом, как и подключение стандартных отчетов.
 +
 +
Для того, чтобы отчет корректно работал в ПК Мастер-Web, он должен быть определенным образом обработан.
 +
В данный момент можно подключать некоторые отчеты серий 4001, 4020. А также есть возможность подключения отчетов
 +
серии 4030 "Агентский договор" (см. [[Мастер-Web: Подключение отчета 4030 "Агентский договор"|Подключение отчета 4030 "Агентский договор"]]).
 +
 
==Методы web-сервиса==
 
==Методы web-сервиса==
 
===Информация о возможных выгрузках===
 
===Информация о возможных выгрузках===

Версия 13:06, 4 апреля 2016

Версия статьи от 4-04-2016.

Введение

Данный модуль предназначен для выгрузки отчетов и файлов, прикрепленных к путевке. Файлы можно просматривать и распечатывать.

Установка

Для установки web-сервиса нужно создать отдельную директорию, например, ReservationDocuments (далее в примерах будет использоваться данное название каталога) в корневом каталоге IIS (по умолчанию c:/inetpub/wwwroot) и выложить туда распакованные файлы из архива ws-reservationDocuments-9.2.XX.XXXXX.zip. В управлении IIS необходимо создать виртуальный каталог для папки ReservationDocuments.

Создание виртуального каталога

По умолчанию корневым каталогом IIS является C:/Inetpub/wwwroot. Для создания виртуального каталога для приложения находящегося в этом каталоге нужно выполнить следующие действия:

  • 1. Зайти в Пуск (Start) – Панель управления (Control Panel) – Администрирование (Administrative Tools)


857.PNG

  • 2. Запустить Internet Information Services (IIS) Manager


858.PNG

  • 3. В открывшемся дереве каталогов выбрать сайты (Web Sites) – Default Web Site (либо другой сайт, на который планируется установить приложение). В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и выбрать пункт «Преобразовать в приложение».


859.PNG

Подключение к базе данных ПК «Мастер-Тур»

В файле web.config, расположенном в папке ReservationDocuments, в которую установлен web-сервис «Сервис работы с документами по путевке», пропишите необходимые параметры подключения (курсивом выделены значения, которые необходимо ввести). Строка подключения к базе данных ПК «Мастер-Тур»:

<add key = "connectionString" value = "Data Source=ip-адрес сервера базы данных ПК Мастер-тур;
Initial Catalog=название базы данных ПК Мастер-тур;User ID=логин пользователя ПК Мастер-тур;Password=пароль пользователя ПК Мастер-тур"/>

Базовый алгоритм работы с сервисом

Данный сервис позволяет получить список доступных для печати документов, а также распечатать их по отдельности. Для этого, сервис предоставляет несколько методов.

  • Во-первых, необходимо получить список доступных для печати документов по путевке. Для этого нужно вызывать метод получения информации о возможных выгрузках. В ответе сервиса придет список описаний документов, в каждом из которых будет указан тип документа: файл или отчет.
  • Для выгрузки какого-либо документа необходимо вызвать соответствующий его типу метод. Для файла - метод получения одного файла, для отчета - метод получения одного отчета. Входными параметрами данных методов являются данные, полученные при вызове метода получения информации о доступных выгрузках, а выходными - файл или отчет.

Настройка отображения отчетов

Настройки для подключения отчетных форм задаются в файле web.config, находящемся в папке MasterWebStandard, и в файле web.config, находящемся в папке ReservationDocuments. Данные настройки регулируют отображение ссылок на печать отчетов и определяют условия, необходимые для печати.

Все секции с настройками, прописанными в файле web.config основного приложения, должны быть прописаны в файле web.config самого сервиса с теми же значениями.

Для включения механизма необходимо добавить в конфигурационный файл web.config секции:

<configSections>
…
<sectionGroup name="megatec.web">
<section name="reportSettings" type="Megatec.Configuration.WebReportsSection, Megatec.Configuration"/>
</sectionGroup>
…
</configSections>
<megatec.web>
<reportSettings controlAppearance="LinkButton" printReportPage="ReportPerpetuum.aspx" cssClass="reportLink">
<reports>
</reports>
</reportSettings>
</megatec.web>

Тег <reportSettings controlAppearance="LinkButton" printReportPage="ReportPerpetuum.aspx" cssClass="reportLink"> содержит параметры:

  • controlAppearance - внешний вид контрола для перехода к печати отчета (ссылка или кнопка; принимают значения: LinkButton или PushButton);
  • cssClass - CSS-класс контрола для перехода к печати отчета (класс стиля в файле styles.css; например, кнопки);
  • autoChangeOrderStatusKey – ключ статуса путевки, на который изменится текущий статус, после того, как все отчеты, отмеченные параметром needPrintForAutoChangeStatus, будут распечатаны;
  • autoChangeIsOutDocKey – отметка о выдаче документов, которая присваивается заявке после того, как все отчеты, отмеченные параметром needPrintForAutoChangeIsOutDoc, будут распечатаны;
  • allFilesMustBePrintedToAutoChangeStatus – параметр, при котором статус заказа и документов меняется только после печати всех файлов, прикрепленных к путевке, и всех отчетов, отмеченных параметрами needPrintForAutoChangeStatus и needPrintForAutoChangeIsOutDoc. Возможные значения: true, false. Статус заказа определяется параметром autoChangeOrderStatusKey, статус документов - autoChangeIsOutDocKey.

Теги для подключения отчетов имеют вид:

<add code="OTCHET" title="Отчет" guid="00000-0000-0000-0000-0000000000" containServices="3" globalOrderStatusKeys="7" payed="true"
hideOnFalseConditions="true"/>

Обязательные параметры:

  • code - уникальный ключ отчета (любой, но уникальный в рамках конфига). Например, code="DogovorSTD";
  • title - название отчета, отображаемое в web. Например, title="Распечатать договор";
  • guid - идентификатор отчета в БД. Например, guid="2DF35251-E08F-480F-B870-364AA866F0FB".

Список возможных параметров, с помощью которых накладываются дополнительные условия на печать отчетов:

  • reportFormat - формат вывода отчета (html, pdf, rtf, xls). Например, reportFormat="pdf";
  • message - сообщение, выдаваемое при невозможности печати отчета. Например, message="Печать отчета невозможна: не выполнены условия печати отчета";
  • containServices - условие по необходимости наличия классов услуг в путевке. Возможность печатать отчет будет только для путевок, в которых есть классы услуг, перечисленные в настройке. Наличие услуг можно задавать как 1-2-3, где 1 - serviceKey, 2 - code, 3 - subcode1; использовать можно в любых комбинациях, Например, containServices="1-0-0,3-3224,5"). Можно также перечислить через запятую только ключи классов услуг без их детализации. Например, containServices ="1,3,5". В данном случае печать отчета будет доступна только для путевок, в которых есть услуги авиаперелет, отель, виза.
  • countryKeys - условие печати отчета по стране. Параметрами настройки являются ключи стран, которые перечисляются через запятую. При наличии настройки печать отчета возможна только для стран, ключи которых в ней указаны. Например, countryKeys="89,90,222";
  • orderStatusKeys - условие по статусу путевки. В настройке перечисляются через запятую ключи статусов путевки, при которых доступна печать отчета. Например, orderStatusKeys ="7,16". Если для одного отчета использовать обе настройки (globalOrderStatusKeys и orderStatusKeys), отчет распечатается только для путевки, у которой статус будет из настройки orderStatusKeys, глобальный статус которого указан в globalOrderStatusKeys;
  • globalOrderStatusKeys - условие по глобальному статусу путевки; В настройке перечисляются через запятую ключи глобальных статусов путевки, при которых доступна печать отчета. Например, globalOrderStatusKeys ="7";
  • payed - условие, по которому путевка должна быть полностью оплачена. Настройка может принимать следующие значения: true – настройка включена, печать отчета возможна только по оплаченным путевкам; false или отсутствие настройки – настройка выключена. Например, payed ="true";
  • servicesThatMustBeApproved - условие, определяющее, какие классы услуг в путевке должны быть подтверждены к печати. Например, servicesThatMustBeApproved ="1". В данный момент данная настройка работает только для класса услуг авиаперелет. Признак Разрешен к печати проставляется для рейсов в экране «Загрузка услуг» ПК «Мастер-Тур»;
  • priceTourNameLike - условие по названию тура для web. В данной настройке указывается строка из названия тура. Отчет можно будет распечатать только для путевок по турам, в название в web которых входит данная строка. Настройка чувствительная к регистру букв в строке. Например, priceTourNameLike ="Англ";
  • additionalUrl - дополнительные параметры, которые можно передавать в отчет. Например, additionalUrl="&Language=RUS";
  • hideOnFalseConditions - скрывать ссылку на отчет, если условия печати не выполнены. Настройка может принимать следующие значения: true – настройка включена, ссылка на отчет скрывается, если условия печати отчета не выполнены; false или отсутствие настройки – настройка выключена, ссылка на отчет не скрывается. Например, hideOnFalseConditions="true";
  • userType - тип пользователя, которому доступна печать отчета (0 - агент; 1 - частник);
  • staticUrl - статическая ссылка на файл. С помощью этой настройки в экране OrderInfo включается возможность печати не отчета, а статического файла, который в ней указан. В качестве параметра в настройке нужно указывать ссылку на файл. Например, staticUrl="http://crmportal.megatec.ru/Portals/0/MT/Report/Doc/Примеры%20профилей%204008/ПримерV1.xls";
Важно! В строке подключения для файла не нужно задавать параметр GUID. Все остальные параметры работают также, как и в случае
с отчетом.
  • target - открывать в новом или текущем окне (_blank – в новом окне, _self – в текущем);
  • additionalEmail - e-mail адрес, на который будет отправляться копия отчета;
Данная возможность доступна только для отчетов в формате .pdf
  • timeCheckServiceKey - ключ класса услуги для проверки возможности печати отчета по временным рамкам. Например, для класса авиаперелет: timeCheckServiceKey ="1";
  • timeCheckInterval - временной интервал в часах, отсчитываемый назад от времени начала предоставления первой услуги в путевке с классом, указанным в настройке timeCheckServiceKey, позднее которого не разрешается печать отчётов. Например, timeCheckInterval ="24". Т.е. отчет нельзя будет распечатать позже, чем за 24 часа до начала первой услуги авиаперелет в путевке;
  • timeCheckHourMinute - час и минута за день до начала предоставления первой услуги в путевке с классом, указанным в настройке timeCheckServiceKey, позднее которого не разрешается печать отчётов. Время может быть указано в формате HH-mm, HH.mm или HH:mm. Например, timeCheckHourMinute ="20:15". Если в строке подключения отчета указаны обе настройки (timeCheckInterval и timeCheckHourMinute), то настройка timeCheckInterval более приоритетна, чем timeCheckHourMinute;
  • timeFromCheckServiceKey – ключ класса услуги для проверки возможности печати отчета раньше определенной даты. Берется дата первой по времени услуги этого класса из путевки, от нее отсчитывается назад количество часов, заданных настройкой timeFromCheckInterval и получается дата и время, раньше которых запрещена печать отчета. В случае авиаперелета время отсчитывается от времени вылета, в случае услуги, у которой есть только дата начала, время отсчитывается от 00:00 этой даты. Если значение ключа равно нулю, то время отсчитывается от даты начала тура;
  • timeFromCheckInterval – количество часов, отсчитываемое назад от события, определяемого настройкой timeFromCheckServiceKey, ранее которого не разрешается печать отчетов;
  • timeFromCheckHourMinute – альтернатива настройке timeFromCheckInterval (имеет меньший приоритет). Час и минута в день, определяемый настройкой beginPrintDayInterval, до события, определяемого настройкой timeFromCheckServiceKey, ранее которого запрещена печать отчетов (может быть указан в формате HH-mm, HH.mm или HH:mm);
  • beginPrintDayInterval – используется в связке с timeFromCheckHourMinute и определяет количество дней до события, определяемого настройкой timeFromCheckServiceKey, ранее которого запрещена печать отчетов. Значение по умолчанию – 1;
  • excludeWeekend – исключает выходные при отсчете дней до событий, определяемых настройками TimeCheckServiceKey и TimeFromCheckServiceKey. Используется в связке с настройками timeFromCheckHourMinute и beginPrintDayInterval. Значение по умолчанию – false;
  • needPrintForAutoChangeStatus - необходимость печати отчета для изменения статуса путевки (true – отчет должен быть распечатан для изменения статуса путевки на значение указанное в autoChangeOrderStatusKey; false – печать отчета не влияет на изменение статуса путевки);
  • needPrintForAutoChangeIsOutDoc – необходимость печати отчета для изменения статуса документов путевки. Настройка актуальна только при включенной настройке autoChangeIsOutDocKey и имеет следующие значения: true – отчет должен быть распечатан для изменения статуса документов путевки на значение указанное в autoChangeIsOutDocKey; false или отсутствие настройки – печать отчета не влияет на изменение статуса путевки. Например, autoChangeIsOutDocKey ="true";
  • permittedPartners – печать отчета разрешена, когда в данную настройку прописан ключ филиала (партнера) Ведущего менеджера по путевке. Филиалы перечисляются через запятую. Например, permittedPartners ="1,1760";
  • serviceStatusKeys – список статусов услуг, через запятую, при которых можно печатать отчёт. Например, serviceStatusKeys ="0,2";
  • printExcludedServiceKeys – определяет ключи классов услуг через запятую, исключаемых из проверки в настройке serviceStatusKeys. Например, printExcludedServiceKeys ="10,12";
  • documentSuperStatus – определяет статус документов, при котором игнорируются настройки печати отчета по статусу путевки (globalOrderStatusKeys или orderStatusKeys), по оплате (Payed) и по наличию рейсов в путевке с признаком Разрешен к печати (servicesThatMustBeApproved). Например, documentSuperStatus ="8";
  • possibleUnderpayment – максимально возможная недоплата по путёвке. Условие срабатывает только при включенной настройке Payed. Исчисляется в национальной валюте. Пересчёт в нац. валюту из валюты тура осуществляется на дату создания путёвки. Например, если национальная валюта – рубли – указывается целое кол-во рублей (без копеек) - possibleUnderpayment ="100";
  • documentStatuses – ключи статусов документа (DocumentStatus), при которых возможна печать данного отчета. Ключи перечисляются через запятую. Например, documentStatuses ="2,5";
  • exludedAgents – ключи партнеров через запятую, для которых запрещена печать отчета;
  • showInformationConfirmation - определяет, нужно ли показывать информационное сообщение перед печатью отчета. Возможные значения: true - показывать сообщение, false - не показывать сообщение. Текст сообщения задается в файле printReportConfirmMessage.txt, который находится в папке templates ПК «Мастер-Web»;
  • approvedForPrintCheckingType - определяет тип проверки подтвержденных к печати услуг. Условие срабатывает только при включенной настройке servicesThatMustBeApproved и имеет следующие значения: -1 – не проверять (по сути отключается проверка servicesThatMustBeApproved); 0 или отсутствие настройки – все услуги должны быть подтверждены (для всех авиаперелетов в путевке должен быть проставлен признак Разрешен к печати); 1 – хотя бы одна услуга должна быть подтверждена (хотя бы один авиаперелет в путевке должен иметь признак Разрешен к печати.
Важно! Данная настройка в файле web.config задается не в строке подключения отчета, а в общих настройках  (секция appSettings).
Например, <add key="approvedForPrintCheckingType" value="1"/>
  • denyPrintBeforeTourEnd – запретить печать отчета до окончания тура. Настройка может принимать следующие значения: true – настройка включена, печать отчета возможна только после завершения тура; false или отсутствие настройки – настройка выключена, отчет можно распечатать независимо от дат тура. Например, denyPrintBeforeTourEnd ="true";
  • containServicesWithPartner - настройка, определяющая партнеров, по которым может быть распечатан отчет только при наличии в путевке услуг данных партнеров. В настройке прописываются ключи партнеров через запятую. Например, containServicesWithPartner="5,6,7".
  • allowedPartnerGroups - настройка, определяющая каким группам партнеров разрешено печатать отчет. В настройке прописывается значение поля og_id из таблицы [ObjectGroups]. Например, allowedPartnerGroups="2".
  • permittedPartnerGroups - настройка, определяющая каким группам партнеров запрещено печатать отчет. В настройке прописывается значение поля og_id из таблицы [ObjectGroups]. Например, permittedPartnerGroups="3".

Для подключения стандартных отчетов «Ваучер», «Электронный билет», «Счет» и «Страховка» в теге <reports/> необходимо добавить секции:

<add code="VCHRSTD" title="Распечатать Ваучер" guid="2DF35251-E08F-480F-B870-364AA866F0FB" containServices="3"
globalOrderStatusKeys="7" payed="true" hideOnFalseConditions="true"/>
<add code="EKTKSTD" title="Распечатать Электронный билет" guid="41969A74-4303-4732-8EBB-E2870D43AB9A" containServices="1" 
globalOrderStatusKeys="7" payed="true" additionalUrl="&Language=RUS"/>
<add code="ACCNTSTD" title="Распечатать Счет" guid="55F8A40E-0C9D-4522-B335-541DD09601D0" globalOrderStatusKeys="7" userType="0" />
<add code="INSURSTD" title="Распечатать Страховку" guid="75165C7F-5BA5-4769-B215-898577D1376E" containServices="6" 
globalOrderStatusKeys="7" payed="true" reportFormat="pdf" userType="1" />

Подключение других отчетных форм осуществляется таким же образом, как и подключение стандартных отчетов.

Для того, чтобы отчет корректно работал в ПК Мастер-Web, он должен быть определенным образом обработан. 
В данный момент можно подключать некоторые отчеты серий 4001, 4020. А также есть возможность подключения отчетов
серии 4030 "Агентский договор" (см. Подключение отчета 4030 "Агентский договор").

Методы web-сервиса

Информация о возможных выгрузках

Метод доступен GET запросом по пути: Адрес сервиса/Documents/Код путевки.
Например, http://localhost/ReservationDocuments/Documents/EN50915999, где:

Входные параметры

  • Код путевки

Выходные параметры

Набор описаний документов (тег <DocumentDescription>)

  • Тип документа (файл или отчет, тег <Type>)
  • Название документа (тег <Name>)
  • Код документа (используется только для отчетов, тег <Code>)
  • GUID документа (тег <GUID>)

Пример ответа метода:

 <ArrayOfDocumentDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/0/Megatec.Web.Services.ReservationDocuments.Models">
  <DocumentDescription>
     <Code>ACCNTFL</Code>
     <GUID>A5FCA95D-CD56-4A79-A4CF-F10C50FDC2DB</GUID>
     <Name>ФЛ Счет-Подтверждение Клуб</Name>
     <Type>Report</Type>
  </DocumentDescription>
  <DocumentDescription>
     <Code>ACCNT</Code>
     <GUID>730AF135-E879-439D-B2D6-0A8AF619BB33</GUID>
     <Name>Счет-Подтверждение Клуб</Name>
     <Type>Report</Type>
  </DocumentDescription>
  <DocumentDescription>
    
     <GUID>f6f87c77-7177-4648-b983-4b1f66767497</GUID>
     <Name>Счет-подтверждение.pdf</Name>
     <Type>File</Type>
  </DocumentDescription>
  <DocumentDescription>
    
     <GUID>61075356-4e3d-4a8d-87d7-1f4853f7916d</GUID>
     <Name>Тестовый_файл.docx</Name>
     <Type>File</Type>
  </DocumentDescription>
 </ArrayOfDocumentDescription>

Получение одного файла

Метод выгрузки файла доступен GET запросом по пути: Адрес сервиса/Documents/file/Guid файла.
Например, http://localhost/ReservationDocuments/Documents/file/61075356-4e3d-4a8d-87d7-1f4853f7916d, где:

Входные параметры

  • GUID файла

Выходные параметры

  • Выходной поток с файлом

Получение одного отчета

Метод доступен GET запросом по пути: Адрес сервиса/Documents/report/Код путевки/GUID отчета/Код отчета.
Например, http://localhost/ReservationDocuments/Documents/report/EN50915999/730AF135-E879-439D-B2D6-0A8AF619BB33/ACCNT, где:

Входные параметры

  • Код путевки
  • GUID отчета
  • Код отчета

Выходные параметры

  • Выходной поток с файлом