Web-сервисы: Сервис для работы с документами по путевке — различия между версиями
[непроверенная версия] | [досмотренная версия] |
Porunova (обсуждение | вклад) |
|||
(не показано 10 промежуточных версий 3 участников) | |||
Строка 2: | Строка 2: | ||
==Введение== | ==Введение== | ||
− | Данный модуль предназначен для | + | Данный модуль предназначен для выгрузки отчетов и файлов, прикрепленных к путевке. Файлы можно просматривать и распечатывать. |
==Установка== | ==Установка== | ||
Строка 24: | Строка 24: | ||
<add key = "connectionString" value = "Data Source=''ip-адрес сервера базы данных ПК Мастер-тур'';<br />Initial Catalog=''название базы данных ПК Мастер-тур'';User ID=''логин пользователя ПК Мастер-тур'';Password=''пароль пользователя ПК Мастер-тур''"/> | <add key = "connectionString" value = "Data Source=''ip-адрес сервера базы данных ПК Мастер-тур'';<br />Initial Catalog=''название базы данных ПК Мастер-тур'';User ID=''логин пользователя ПК Мастер-тур'';Password=''пароль пользователя ПК Мастер-тур''"/> | ||
+ | |||
+ | ==Базовый алгоритм работы с сервисом== | ||
+ | Данный сервис позволяет получить список доступных для печати документов, а также распечатать их по отдельности. Для этого, сервис предоставляет несколько методов. | ||
+ | |||
+ | *Во-первых, необходимо получить список доступных для печати документов по путевке. Для этого нужно вызывать [[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="&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="&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-сервиса== | ||
===Информация о возможных выгрузках=== | ===Информация о возможных выгрузках=== | ||
Метод доступен GET запросом по пути: Адрес сервиса/Documents/Код путевки. <br /> | Метод доступен GET запросом по пути: Адрес сервиса/Documents/Код путевки. <br /> | ||
− | Например, http://localhost/ReservationDocuments/Documents/EN50915999 | + | Например, http://localhost/ReservationDocuments/Documents/EN50915999, где: |
+ | * http://localhost/ReservationDocuments - адрес сервиса | ||
+ | * EN50915999 - код путевки | ||
====Входные параметры==== | ====Входные параметры==== | ||
* Код путевки | * Код путевки | ||
====Выходные параметры==== | ====Выходные параметры==== | ||
− | * Тип документа (файл или отчет) | + | Набор описаний документов (тег <DocumentDescription>) |
− | * Название документа | + | * Тип документа (файл или отчет, тег <Type>) |
− | * Код документа (используется только для отчетов) | + | * Название документа (тег <Name>) |
− | * GUID документа | + | * Код документа (используется только для отчетов, тег <nowiki><Code></nowiki>) |
+ | * GUID документа (тег <GUID>) | ||
+ | Пример ответа метода: <br /> | ||
+ | <ArrayOfDocumentDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/0/Megatec.Web.Services.ReservationDocuments.Models"> | ||
+ | <DocumentDescription> | ||
+ | <nowiki><Code></nowiki>ACCNTFL<nowiki></Code></nowiki> | ||
+ | <GUID>A5FCA95D-CD56-4A79-A4CF-F10C50FDC2DB</GUID> | ||
+ | <Name>ФЛ Счет-Подтверждение Клуб</Name> | ||
+ | <Type>Report</Type> | ||
+ | </DocumentDescription> | ||
+ | <DocumentDescription> | ||
+ | <nowiki><Code></nowiki>ACCNT<nowiki></Code></nowiki> | ||
+ | <GUID>730AF135-E879-439D-B2D6-0A8AF619BB33</GUID> | ||
+ | <Name>Счет-Подтверждение Клуб</Name> | ||
+ | <Type>Report</Type> | ||
+ | </DocumentDescription> | ||
+ | <DocumentDescription> | ||
+ | <Code/> | ||
+ | <GUID>f6f87c77-7177-4648-b983-4b1f66767497</GUID> | ||
+ | <Name>Счет-подтверждение.pdf</Name> | ||
+ | <Type>File</Type> | ||
+ | </DocumentDescription> | ||
+ | <DocumentDescription> | ||
+ | <Code/> | ||
+ | <GUID>61075356-4e3d-4a8d-87d7-1f4853f7916d</GUID> | ||
+ | <Name>Тестовый_файл.docx</Name> | ||
+ | <Type>File</Type> | ||
+ | </DocumentDescription> | ||
+ | </ArrayOfDocumentDescription> | ||
===Получение одного файла=== | ===Получение одного файла=== | ||
Метод выгрузки файла доступен GET запросом по пути: Адрес сервиса/Documents/file/Guid файла. <br /> | Метод выгрузки файла доступен GET запросом по пути: Адрес сервиса/Documents/file/Guid файла. <br /> | ||
− | Например, http://localhost/ReservationDocuments/Documents/file/ | + | Например, http://localhost/ReservationDocuments/Documents/file/61075356-4e3d-4a8d-87d7-1f4853f7916d, где: |
+ | * http://localhost/ReservationDocuments - адрес сервиса | ||
+ | * 61075356-4e3d-4a8d-87d7-1f4853f7916d - GUID файла, полученный из ответа [[Web-сервисы: Сервис для работы с документами по путевке#Информация о возможных выгрузках|метода получения информации о возможных выгрузках]] (тег <GUID>) | ||
====Входные параметры==== | ====Входные параметры==== | ||
* GUID файла | * GUID файла | ||
Строка 46: | Строка 180: | ||
===Получение одного отчета=== | ===Получение одного отчета=== | ||
Метод доступен GET запросом по пути: Адрес сервиса/Documents/report/Код путевки/GUID отчета/Код отчета. <br /> | Метод доступен GET запросом по пути: Адрес сервиса/Documents/report/Код путевки/GUID отчета/Код отчета. <br /> | ||
− | Например, http://localhost/ReservationDocuments/Documents/report/ | + | Например, http://localhost/ReservationDocuments/Documents/report/EN50915999/730AF135-E879-439D-B2D6-0A8AF619BB33/ACCNT, где: |
+ | * http://localhost/ReservationDocuments - адрес сервиса | ||
+ | * EN50915999 - код путевки | ||
+ | * 730AF135-E879-439D-B2D6-0A8AF619BB33 - GUID отчета, полученный из ответа [[Web-сервисы: Сервис для работы с документами по путевке#Информация о возможных выгрузках|метода получения информации о возможных выгрузках]] (тег <GUID>) | ||
+ | * ACCNT - код отчета, полученный из ответа [[Web-сервисы: Сервис для работы с документами по путевке#Информация о возможных выгрузках|метода получения информации о возможных выгрузках]] (тег <nowiki><Code></nowiki>) | ||
====Входные параметры==== | ====Входные параметры==== | ||
* Код путевки | * Код путевки | ||
Строка 54: | Строка 192: | ||
* Выходной поток с файлом | * Выходной поток с файлом | ||
− | [[Category: | + | [[Category:Web-сервисы]] |
Текущая версия на 15:48, 21 июля 2016
Версия статьи от 21-07-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)
- 2. Запустить Internet Information Services (IIS) Manager
- 3. В открывшемся дереве каталогов выбрать сайты (Web Sites) – Default Web Site (либо другой сайт, на который планируется установить приложение). В открывшемся списке найти папку, для которой нужно создать виртуальный каталог, кликнуть по ней правой кнопкой мыши и выбрать пункт «Преобразовать в приложение».
Подключение к базе данных ПК «Мастер-Тур»
В файле 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, где:
- http://localhost/ReservationDocuments - адрес сервиса
- 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, где:
- http://localhost/ReservationDocuments - адрес сервиса
- 61075356-4e3d-4a8d-87d7-1f4853f7916d - GUID файла, полученный из ответа метода получения информации о возможных выгрузках (тег <GUID>)
Входные параметры
- GUID файла
Выходные параметры
- Выходной поток с файлом
Получение одного отчета
Метод доступен GET запросом по пути: Адрес сервиса/Documents/report/Код путевки/GUID отчета/Код отчета.
Например, http://localhost/ReservationDocuments/Documents/report/EN50915999/730AF135-E879-439D-B2D6-0A8AF619BB33/ACCNT, где:
- http://localhost/ReservationDocuments - адрес сервиса
- EN50915999 - код путевки
- 730AF135-E879-439D-B2D6-0A8AF619BB33 - GUID отчета, полученный из ответа метода получения информации о возможных выгрузках (тег <GUID>)
- ACCNT - код отчета, полученный из ответа метода получения информации о возможных выгрузках (тег <Code>)
Входные параметры
- Код путевки
- GUID отчета
- Код отчета
Выходные параметры
- Выходной поток с файлом