Мастер-Тур(15):PaymentService — различия между версиями

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][досмотренная версия]
(Новая страница: «===Введение=== Начиная с релиза 15.8 разработан сервис оплат (PaymentService), который нужен для про…»)
 
(Информация по счетам по ключу путевки и ключу партнера (GetInvocesBydogovorCodePartnerKey))
 
(не показаны 94 промежуточные версии 5 участников)
Строка 2: Строка 2:
  
 
Начиная с релиза 15.8 разработан сервис оплат (PaymentService), который нужен для проведения оплаты в ПК Мастер-Тур.<br />
 
Начиная с релиза 15.8 разработан сервис оплат (PaymentService), который нужен для проведения оплаты в ПК Мастер-Тур.<br />
В этот сервис постепенно будут добавляться новые методы из [[Мастер-Центр оплат|Мастер-Центр оплат.Мастер-Тур]]. На текущий момент реализован метод [[ДобавитьОплату]]
+
В этот сервис постепенно будут добавляться новые методы из [[Мастер-Центр оплат.Мастер-Тур|Мастер-Центр оплат]]. На текущий момент реализован метод [[ДобавитьОплатуРассчитывать]]
  
 
===Установка службы сервиса оплат===
 
===Установка службы сервиса оплат===
  
* Скопировать папку ''PaymentService'' из дистрибутива на сервер. Служба QuotesService должна устанавливаться на компьютере, имеющем доступ к серверу баз данных, или на компьютере, который сам является сервером баз данных (установлен MS SQL Server).
+
* Скопировать папку ''PaymentService'' из дистрибутива на сервер. Служба PaymentService должна устанавливаться на компьютере, имеющем доступ к серверу баз данных, или на компьютере, который сам является сервером баз данных (установлен MS SQL Server).
* Перед установкой службы сервиса квот необходимо настроить конфигурационный файл ''Megatec.QuotesService.dll.config''.
+
* Перед установкой службы сервиса оплат необходимо настроить конфигурационный файл ''appsettings.json''.
  
 
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse"
 
{| border="1" cellpadding="8" style="background-color:#F9F9F9; border:#AAAAAA; border-collapse:collapse"
Строка 20: Строка 20:
  
 
| 1
 
| 1
| Название службы
+
| Строка подключения
| Задается название службы. По умолчанию служба будет создана с названием ''MegatecQuotesService''.
+
| Строка подключения к базе данных ПК «Мастер-Тур» указывается в секции ''ConnectionStrings''.
 +
<font style="color:red">''Внимание!''</font><br />
 +
* Обратите внимание, что в целях безопасности необходимо ограничить доступ к этому конфигурационному файлу. Он должен быть доступен только для данного приложения.
 +
* Для корректной работы в поле ''User Id'' достаточно указать пользователя, привязанного к группе ''avServices'' в модуле [[Модуль администрирования AdminMS#Уровень Groups|Мастер-Администратор]] (обрабатывается с релиза 15.6).
 +
* Пароль пользователей системы, от которых работают службы и приложения, не должен содержать ни одного из следующих символов: '''< > " ' &'''
 
| <syntaxhighlight lang="xml" enclose="div">
 
| <syntaxhighlight lang="xml" enclose="div">
<add key="serviceName" value="MegatecQuotesService"/>
+
"MtDatabase": "Server=Server; Database=Database; User Id=User; Password=Password;"
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Строка 29: Строка 33:
  
 
| 2
 
| 2
| Строка подключения
+
| Путь к службе сервиса оплат
| Строка подключения к базе данных ПК «Мастер-Тур» указывается в секции ''appSettings''.
+
| По умолчанию служба сервиса оплат использует порт ''5010'' и название ''PaymentService''. Рекомендуется использование значений по умолчанию.<br />
 
<font style="color:red">''Внимание!''</font><br />
 
<font style="color:red">''Внимание!''</font><br />
* Обратите внимание, что в целях безопасности необходимо ограничить доступ к этому конфигурационному файлу. Он должен быть доступен только для данного приложения.
+
При смене порта необходимо также изменить порт в установочном скрипте ''_Install.cmd''.
* Для корректной работы в поле ''User Id'' достаточно указать пользователя, привязанного к группе ''avServices'' в модуле [[Модуль администрирования AdminMS#Уровень Groups|Мастер-Администратор]] (обрабатывается с релиза 15.6).
 
* Пароль пользователей системы, от которых работают службы и приложения, не должен содержать ни одного из следующих символов: '''< > " ' &'''
 
 
| <syntaxhighlight lang="xml" enclose="div">
 
| <syntaxhighlight lang="xml" enclose="div">
<add key="connectionString" value="Data Source=Server; Initial Catalog=Database; User Id=User; Password=Password; Application Name=QuotasService" />
+
"applicationUrl": "http://*:5010",
 +
"ApplicationName": "PaymentService",
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Строка 42: Строка 45:
  
 
| 3
 
| 3
| Логирование
+
| Путь к службе MTS
| Путь к лог-файлам задается в секции ''Loggers path''.
+
| Необходимо указать адрес и порт к установленной службе MTS (для подписи проводимых платежей)<br />
 
| <syntaxhighlight lang="xml" enclose="div">
 
| <syntaxhighlight lang="xml" enclose="div">
<Loggers path="Logs\">
+
"SoapServiceAddress": "http://localhost:80/MTS",
<Logger level="ALL" name="ExceptionLogger" console="true" />
 
<Logger level="ALL" name="TourSearch" console="true" />
 
<Logger level="ALL" name="TourSearchCache" console="true" />
 
<Logger level="ALL" name="DictionaryCacheLog" console="true" />
 
<Logger level="OFF" name="RequestLogger" console="true" />
 
</Loggers>
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
|}
 +
 +
* Установка осуществляется запуском скрипта ''_Install.cmd'' от имени администратора. [[Файл:Bm135.png|Запуск от имени администратора]]
 +
* При установке в Брандмауэре Windows создаются правила для входящих подключений для открытия порта PaymentService.
 +
* В Службах Windows добавляется служба ''PaymentService''.<br />
 +
* Для удаления службы необходимо запустить скрипт ''_UnInstall.cmd'' от имени администратора. При этом будут удалены правила для входящих подключений.
 +
 +
===Работа службы сервиса оплат===
 +
====Добавить оплату (AddPayment)====
 +
Метод производит внесение оплаты в базу данных Мастер-Тур. На вход подается сумма платежа, валюта платежа и дата. Метод записывает сумму платежа в указанной валюте, а также конвертирует эту сумму в валюту путевки и в национальную валюту по курсу либо на дату платежа, либо на дату, которая указывается во входных параметрах.<br />
 +
 +
'''Необходимо обратить внимание, что филиал платежа будет записан от пользователя, от которого запущена служба PaymentService.'''
 +
* Формат запроса:
 +
** POST .../PaymentService/AddPayment?
 +
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''PaymentOperation *''' – ключ типа операции (''PO_Id из таблицы PaymentOperations'')
 +
** '''PaymentSum *''' – сумма платежа в валюте платежа. Для разделения используется точка, 20836.80
 +
** '''CurrencyISOCode *''' – ISO код валюты платежа (''RA_ISOCode из таблицы Rates'')
 +
** '''DogovorKey *''' – ключ путевки
 +
** '''DogovorCode''' – код путевки (отрабатывает, если не указан '''DogovorKey''')
 +
** '''PaymentDate *''' – дата платежа (в формате ''yyyy-mm-dd'')
 +
** '''CourseDate''' – дата, на которую берется курс (если не указан, берется на дату платежа)
 +
** '''DocNumber''' – номер документа
 +
** '''ReceivedFrom''' – от кого получен платеж (строковое значение)
 +
** '''PaymentFor''' – за что произведен платеж (строковое значение)
 +
** '''PartnerKey''' – если платеж производиться партнеру, то этот ключ определяет конкретного партнера
 +
** '''NoDetails''' – детализация платежа (по умолчанию - ''false'', детализация платежа будет создана)
 +
** '''CalculationRate''' – курс валюты (если указан и валюта платежа не совпадает с валютой путевки, то сумму платежа делится на курс)
 +
 +
* Возвращаемый результат:
 +
** '''ключ платежа'''
  
|- style="vertical-align:text-top"
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода AddPayment
 +
<syntaxhighlight lang="java" enclose="div">
 +
POST http://localhost:5010/PaymentService/AddPayment?PaymentOperation=1&PaymentSum=100&CurrencyISOCode=RUB&DogovorCode=IS28070006&PaymentDate=2023-12-28&CourseDate&NoDetails=false&CalculationRate=100 HTTP/1.1
 +
</syntaxhighlight>
 +
Возвращаемый результат метода AddPayment
 +
<syntaxhighlight lang="java" enclose="div">
 +
4455
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Список прошедших заездов по турам (TourList)====
 +
Метод возвращает список туров, по которым в заданные даты были совершены заезды (то есть, есть оформленные путевки).
 +
* Формат запроса:
 +
** GET .../PaymentService/TourList?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''dateFrom *''' – дата заезда с в формате dd.mm.yyyy
 +
** '''dateTo *''' – дата заезда по в формате dd.mm.yyyy
 +
 
 +
* Возвращаемый результат:
 +
** '''tourProgramsId''' – ключ программы тура
 +
** '''tourName''' – название программы тура
 +
** '''dateBegin''' – массив дат заездов по указанному туру в заданный период
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода TourList
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/TourList?dateFrom=01.04.2022&dateTo=10.04.2022
 +
</syntaxhighlight>
 +
Возвращаемый результат метода TourList
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
        "tourProgramsId": 100001232,
 +
        "tourName": "Общая проверка системы",
 +
        "dateBegin": [
 +
            "03.04.2022",
 +
            "05.04.2022"
 +
        ]
 +
    }, {
 +
        "tourProgramsId": 100001247,
 +
        "tourName": "Тур в Кострому",
 +
        "dateBegin": [
 +
            "01.04.2022",
 +
            "03.04.2022",
 +
            "05.04.2022"
 +
        ]
 +
    }
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Финансовая информация по турам (TourFinInfo)====
 +
Метод возвращает детальную информацию по услугам и оплатам по туру.
 +
* Формат запроса:
 +
** GET .../PaymentService/TourFinInfo?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''tourProgramsId *''' – ключ программы тура
 +
** '''tourDate *''' – дата заезда по туру в формате dd.mm.yyyy
 +
 
 +
* Возвращаемый результат:
 +
** '''tourName''' – название программы тура
 +
** '''arrivalDate''' – дата заезда по туру
 +
** '''touristCount''' – общее количество туристов по путевкам
 +
** '''payed''' – сумма оплат от покупателей по всем путевкам в национальной валюте
 +
** '''services''' – массив услуг (группировка по классу услуг)
 +
*** '''serviceType''' – название класса услуги
 +
*** '''serviceName''' – название услуги
 +
*** '''serviceTouristCount''' – количество туристов, пользующихся услугой по всем путевкам
 +
*** '''partner''' – поставщик по услуге
 +
*** '''netto''' – стоимость нетто по всем путевкам по каждой услуге
 +
*** '''brutto''' – стоимость брутто по всем путевкам по каждой услуге
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода TourFinInfo
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/TourFinInfo?tourProgramsId=100001232&tourDate=04.05.2022
 +
</syntaxhighlight>
 +
Возвращаемый результат метода TourFinInfo
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
    "tourName": "Общая проверка системы",
 +
    "arrivalDate": "05.04.2022",
 +
    "touristCount": 50,
 +
    "payed": "350400 RUB",
 +
    "services": [{
 +
            "serviceType": "Авиаперелет",
 +
            "serviceName": "А_П::Варшава/Канкун/3G5656, WAW-VIE, 05:50-08:50/C Бизнес класс",
 +
            "serviceTouristCount": 50,
 +
            "partner": "Партнер",
 +
            "netto": "100000,00 RUB",
 +
            "brutto": "120000,00RUB"
 +
        },
 +
            "serviceType": "Отель/Круиз",
 +
            "serviceName": "HOTEL::Канкун/Sheraton-1*,7 ночей/Double(Standart),2 взр./AI Шведский стол",
 +
            "serviceTouristCount": 50,
 +
            "partner": "Партнер",
 +
            "netto": "200000,00 RUB",
 +
            "brutto": "230000,00 RUB"
 +
        },
 +
            "serviceType": "Авиаперелет",
 +
            "serviceName": "А_П::Канкун/Варшава/AF3444, VIE-WAW, 15:50-18:50/C Бизнес класс",
 +
            "serviceTouristCount": 50,
 +
            "partner": "Партнер",
 +
            "netto": "0,00 RUB",
 +
            "brutto": "0,00 RUB"
 +
        }
 +
    ]
 +
}
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Информация по туристу, выводимая по ключу туриста (SelectTouristInfoByKey)====
 +
Метод возвращает детальную информацию по туристу, выводимую по ключу туриста.
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectTouristInfoByKey?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''key *''' – ключ туриста
 +
 
 +
* Возвращаемый результат:
 +
** '''key''' – ключ туриста
 +
** '''isMain''' – признак главного туриста
 +
** '''ageType''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
 +
** '''sex''' – пол туриста (0 – мужской, 1 – женский)
 +
** '''firstName''' – имя (лат)
 +
** '''lastName''' – фамилия (лат)
 +
** '''patronymic''' – отчество (лат)
 +
** '''firstNameRus''' – имя (рус)
 +
** '''lastNameRus''' – фамилия (рус)
 +
** '''patronymicRus''' – отчество (рус)
 +
** '''phone''' – телефон
 +
** '''email''' – e-mael
 +
** '''birthDay''' – дата рождения
 +
** '''birthPlace''' – место рождения
 +
** '''citizen''' – гражданство
 +
** '''internationalPassportSer''' – серия загранпаспорта
 +
** '''internationalPassportNum''' – номер загранпаспорта
 +
** '''internationalPassportDate''' – дата выдачи загранпаспорта
 +
** '''internationalPassportDateEnd''' – дата окончания загранпаспорта
 +
** '''internationalPassportByWhom''' – кем выдан загранпаспорт
 +
** '''nationalPassportSer''' – серия паспорта
 +
** '''nationalPassportNum''' – номер паспорта
 +
** '''nationalPassportDate''' – дата выдачи паспорта
 +
** '''nationalPassportByWhom''' – кем выдан паспорт
 +
** '''postIndex''' – индекс
 +
** '''city''' – город
 +
** '''street''' – улица
 +
** '''build''' – дом
 +
** '''flat''' – квартира
 +
** '''citizenID''' – ID туриста
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectTouristInfoByKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectTouristInfoByKey?key=111125
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectTouristInfoByKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
    "key": 111125,
 +
    "isMain": 1,
 +
    "ageType": 0,
 +
    "sex": 0,
 +
    "firstName": "Ivan",
 +
    "lastName": "Ivanov",
 +
    "patronymic": "Ivanovich",
 +
    "firstNameRus": "Иван",
 +
    "lastNameRus": "Иванов",
 +
    "patronymicRus": "Иванович",
 +
    "phone": "+79991234567",
 +
    "email": "ivan@mail.ru",
 +
    "birthDay": "01.02.1980",
 +
    "birthPlace": "Москва",
 +
    "citizen": "Россия",
 +
    "internationalPassportSer": "1111",
 +
    "internationalPassportNum": "222222",
 +
    "internationalPassportDate": "01.05.2022",
 +
    "internationalPassportDateEnd": "01.05.2027",
 +
    "internationalPassportByWhom": "Отделом УФМС год. Москвы",
 +
    "nationalPassportSer": "11",
 +
    "nationalPassportNum": "6665544",
 +
    "nationalPassportDate": "01.05.2030",
 +
    "nationalPassportByWhom": "УФМС 52",
 +
    "postIndex": "151515",
 +
    "city": "Москва",
 +
    "street": "Ленина",
 +
    "build": "5",
 +
    "flat": "2",
 +
    "citizenID": "123456789"
 +
}
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Информация по туристам, выводимая по номеру путевки (SelectTouristsByDogovorKey)====
 +
Метод возвращает детальную информацию по туристам, выводимая по номеру путевки.
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectTouristsByDogovorKey?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''dgCode *''' – номер путевки
 +
 
 +
* Возвращаемый результат:
 +
** '''key''' – ключ туриста
 +
** '''isMain''' – признак главного туриста
 +
** '''ageType''' – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
 +
** '''sex''' – пол туриста (0 – мужской, 1 – женский)
 +
** '''firstName''' – имя (лат)
 +
** '''lastName''' – фамилия (лат)
 +
** '''patronymic''' – отчество (лат)
 +
** '''firstNameRus''' – имя (рус)
 +
** '''lastNameRus''' – фамилия (рус)
 +
** '''patronymicRus''' – отчество (рус)
 +
** '''phone''' – телефон
 +
** '''email''' – e-mael
 +
** '''birthDay''' – дата рождения
 +
** '''birthPlace''' – место рождения
 +
** '''citizen''' – гражданство
 +
** '''internationalPassportSer''' – серия загранпаспорта
 +
** '''internationalPassportNum''' – номер загранпаспорта
 +
** '''internationalPassportDate''' – дата выдачи загранпаспорта
 +
** '''internationalPassportDateEnd''' – дата окончания загранпаспорта
 +
** '''internationalPassportByWhom''' – кем выдан загранпаспорт
 +
** '''nationalPassportSer''' – серия паспорта
 +
** '''nationalPassportNum''' – номер паспорта
 +
** '''nationalPassportDate''' – дата выдачи паспорта
 +
** '''nationalPassportByWhom''' – кем выдан паспорт
 +
** '''postIndex''' – индекс
 +
** '''city''' – город
 +
** '''street''' – улица
 +
** '''build''' – дом
 +
** '''flat''' – квартира
 +
** '''citizenID''' – ID туриста
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectTouristsByDogovorKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectTouristsByDogovorKey?dgCode=AU20050005
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectTouristsByDogovorKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
    "key": 111125,
 +
    "isMain": 1,
 +
    "ageType": 0,
 +
    "sex": 0,
 +
    "firstName": "Ivan",
 +
    "lastName": "Ivanov",
 +
    "patronymic": "Ivanovich",
 +
    "firstNameRus": "Иван",
 +
    "lastNameRus": "Иванов",
 +
    "patronymicRus": "Иванович",
 +
    "phone": "+79991234567",
 +
    "email": "ivan@mail.ru",
 +
    "birthDay": "01.02.1980",
 +
    "birthPlace": "Москва",
 +
    "citizen": "Россия",
 +
    "internationalPassportSer": "1111",
 +
    "internationalPassportNum": "222222",
 +
    "internationalPassportDate": "01.05.2022",
 +
    "internationalPassportDateEnd": "01.05.2027",
 +
    "internationalPassportByWhom": "Отделом УФМС год. Москвы",
 +
    "nationalPassportSer": "11",
 +
    "nationalPassportNum": "6665544",
 +
    "nationalPassportDate": "01.05.2030",
 +
    "nationalPassportByWhom": "УФМС 52",
 +
    "postIndex": "151515",
 +
    "city": "Москва",
 +
    "street": "Ленина",
 +
    "build": "5",
 +
    "flat": "2",
 +
    "citizenID": "123456789"
 +
}
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Информация по путевкам за период (SelectDogovorsInPeriod)====
 +
Метод возвращает детальную информацию по путевкам за период.
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectDogovorsInPeriod?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''beginDate *''' – дата начала отбора
 +
** '''endDate *''' – дата окончания отбора
 +
** '''selectionType''' – тип дополнительного отбора
 +
** '''additionalSelection''' – значение дополнительного отбора
 +
 
 +
В качестве параметров нужно передать две даты: дата начала и даты окончания. В отбор попадут путевки, у которых дата создания попадает в указанный период.
 +
Можно усилить отбор. Для этого нужно передать в качестве третьего параметра число, определяющее тип отбора:
 +
* 1 – поиск по коду путевки. В качестве четвертого параметра передается код путевки (или его часть). Поиск производится методом LIKE. В отбор попадут все путевки с датой создания в заданном периоду, у которых код путевки содержит строку, указанную в четвертом параметре
 +
* 2 – поиск производится по ФИО главного туриста. При этом используется следующий алгоритм: берется строка: (Фамилия + " " + Имя + " " + Отчество) и в этой строке ищется строка, переданная в четвертом параметре
 +
* 3 – поиск по названию партнера. Поиск производится методом LIKE
 +
* 4 – поиск по ИНН партнера. Поиск производится методом LIKE
 +
* 5 – поиск по ключу статуса путевки
 +
* 6 – поиск по ключу путевки
 +
* 7 – отбор путевок, по которым были сделаны детализации платежей за указанный период (без удаленных платежей). В качестве четвертого параметра можно указать список ключей типов платежей, разделенных знаком ";". Тогда в отборе будут участвовать платежи только с указанным типом. Отбор производится по датам СОЗДАНИЯ платежа.
 +
* 8 – отбор путевок по ключу тура (tourProgramsId)
 +
* 9 – отбор путевок по диапазону дат тура (заезда), в этом случае четвертый параметр не заполняется
 +
* 10 – аналогично варианту 7, только отбор производится по датам ПЛАТЕЖА.
 +
 
 +
Во всех вариантах кроме 7, 9, 10 в качестве дат используются даты СОЗДАНИЯ ПУТЕВКИ.
 +
 
 +
* Возвращаемый результат:
 +
** '''dogovorKey''' – ключ путевки
 +
** '''dogovorCode''' – номер путевки
 +
** '''createDate''' – дата создания путевки
 +
** '''createTime''' – время создания путевки
 +
** '''externalNumberPartnerDogovor''' – номер путевки партнера (поле из Работы менеджеров)
 +
** '''price''' – стоимость путевки
 +
** '''payed''' – оплачено
 +
** '''isoCode''' – ISO-код валюты путевки
 +
** '''touristId''' – ключ главного туриста по путевке
 +
** '''lastName''' – фамилия главного туриста (лат)
 +
** '''firstName''' – имя главного туриста (лат)
 +
** '''patronymic''' – отчество главного туриста (лат)
 +
** '''lastNameRus''' – фамилия главного туриста (рус)
 +
** '''firstNameRus''' – имя главного туриста (рус)
 +
** '''patronymicRus''' – отчество главного туриста (рус)
 +
** '''sex''' – пол туриста (0 – муж, 1 – жен)
 +
** '''partnerKey''' – ключ партнера покупателя путевки
 +
** '''partnerCode''' – код партнера
 +
** '''partnerName''' – название партнера
 +
** '''discountSum''' – сумма скидки по путевке
 +
** '''priceNationalRate''' – стоимость путевки в национальной валюте
 +
** '''payedNationalRate''' – оплачено по путевке в национальной валюте
 +
** '''discountNationalRate''' – сумма скидки по путевке в национальной валюте
 +
** '''filialKey''' – ключ филиала
 +
** '''orderStatusCode''' – ключ статуса путевки
 +
** '''orderStatusName''' – название статуса путевки
 +
** '''tourDate''' – дата заезда
 +
** '''daysCount''' – количество дней по путевке
 +
** '''touristCount''' – количество туристов по путевке
 +
** '''countryId''' – ключ страны
 +
** '''countryName''' – название страны
 +
** '''cityId''' – ключ города
 +
** '''cityName''' – название города
 +
** '''tourProgramsId''' – ключ тура
 +
** '''dogovorPartnerKey''' – ключ договора партнера по путевке
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectDogovorsInPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectDogovorsInPeriod?beginDate=05.01.2022&endDate=31.05.2022&selectionType=1&additionalSelection=AU
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectDogovorsInPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
        "dogovorKey": 48690,
 +
        "dogovorCode": "AU2006000C",
 +
        "createDate": "12.05.2022",
 +
        "createTime": "11:51:18",
 +
        "externalNumberPartnerDogovor": null,
 +
        "price": 1200,
 +
        "payed": 600,
 +
        "isoCode": "USD",
 +
        "touristId": 111148,
 +
        "lastName": "Ivanov",
 +
        "firstName": "Ivan",
 +
        "patronymic": "Ivanovich",
 +
        "lastNameRus": "Иванов",
 +
        "firstNameRus": "Иван",
 +
        "patronymicRus": "Иванович",
 +
        "sex": 0,
 +
        "partnerKey": 12667,
 +
        "partnerCode": "658",
 +
        "partnerName": "Партнер-покупатель",
 +
        "discountSum": 10,
 +
        "priceNationalRate": 120000,
 +
        "payedNationalRate": 60000,
 +
        "discountNationalRate": 10000,
 +
        "filialKey": 11587,
 +
        "orderStatusCode": 3,
 +
        "orderStatusName": "Wait-лист",
 +
        "tourDate": "20.06.2022",
 +
        "daysCount": 8,
 +
        "touristCount": 2,
 +
        "countryId": 90,
 +
        "countryName": "Австрия",
 +
        "cityId": 35,
 +
        "cityName": "Вена",
 +
        "tourProgramsId": 100011071,
 +
        "dogovorPartnerKey": 505
 +
    }
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Краткая информация по путевкам за период (SelectListDogovorsInPeriod)====
 +
Метод возвращает краткую информацию по путевкам за период.
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectListDogovorsInPeriod?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):<br />
 +
** '''beginDate *''' – дата начала отбора<br />
 +
** '''endDate *''' – дата окончания отбора<br />
 +
** '''selectionType *''' – тип отбора. Может принимать значения:<br />
 +
0 - по дате создания заявки;<br />
 +
1 - по дате начала тура (заезда) по заявке;<br />
 +
2 - по дате окончания тура (возврата) по заявке;<br />
 +
3 - по дате наличия изменений по заявке (тут ищем через таблицу history).<br />
 +
 
 +
В качестве параметров нужно передать две даты: дата начала и даты окончания и тип дополнительного отбора. В отбор попадут путевки, у которых дата создания попадает в указанный период в соответствии с типом отбора.
 +
* Возвращаемый результат:
 +
** '''dogovorKey''' – ключ путевки (ключ из столбца DG_Key таблицы tbl_Dogovor)
 +
** '''dogovorCode''' – номер путевки (ключ из столбца DG_CODE таблицы tbl_Dogovor)
 +
** '''partnerKey''' – ключ партнера покупателя путевки  (ключ из столбца US_Key таблицы UserList)
 +
** '''ownerKey''' – ключ ведущего менеджера по заявке (ключ из столбца US_FullName таблицы UserList)
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectListDogovorsinPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectListDogovorsinPeriod?beginDate=06.02.2024&endDate=07.02.2024&selectionType=3
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectListDogovorsinPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
    {
 +
        "dogovorKey": 51869,
 +
        "dogovorCode": "NL16010003",
 +
        "partnerKey": 12667
 +
        "ownerKey":106,
 +
        "ownerName":"Mt15 1."
 +
    }
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Расширенная информация по путевкам (GetReservationInfo)====
 +
Метод возвращает расширенную информацию по путевкам: дата создания, дата заезда, статус заявки, страна назначения, отель, брутто, нетто, прибыль, сумма платежей по путевке.
 +
* Формат запроса:
 +
** GET .../PaymentService/GetReservationInfo?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
**'''dgCode *''' – номер путевки (ключ из столбца DG_CODE таблицы tbl_Dogovor)
 +
 
 +
* Возвращаемый результат:
 +
** '''createDate''' – дата создания путевки (ключ из столбца DG_CRDATE таблицы tbl_Dogovor)
 +
** '''tourDate''' – дата заезда (ключ из столбца DG_TURDATE таблицы tbl_Dogovor)
 +
** '''orderStatusCode''' – ключ статуса путевки (ключ из столбца DG_SOR_CODE таблицы tbl_Dogovor)
 +
** '''orderStatusName''' – название статуса путевки (ключ из столбца OS_NAME_RUS таблицы Order_Status)
 +
** '''countryId''' – ключ страны назначения (ключ из столбца CN_KEY таблицы tbl_Country)
 +
** '''countryName''' – название страны назначения (ключ из столбца CN_NAME таблицы tbl_Country)
 +
** '''hotelsName''' – отель из путевки. Если отелей несколько, выводится список уникальных отелей в формате "Название + категория отеля". Если услуги "Отель" в путевке нет, возвращается пустое значение (ключ из столбца HD_NAME таблицы HotelDictionary)
 +
** '''planNettoRub''' – нетто по путевке в рублях: вычисляется как нетто по путевке в валюте тура умноженное на курс, если валюта тура отлична от национальной (ключ из столбца DL_COST таблицы tbl_DogovorList * курс). При наличии оплат по путевке курс берётся как средневзвешенный: отношение оплаты в национальной валюте к оплате в валюте тура (ключ из столбца DG_NATIONALCURRENCYPAYED таблицы tbl_Dogovor / ключ из столбца DG_PAYED таблицы tbl_Dogovor). Если оплаты по путевке отсутствуют или сумма оплат/возвратов = 0, в качестве курса берётся курс на дату оформления путевки.
 +
** '''planBruttoRub''' – брутто по путевке в рублях: вычисляется как сумма к оплате по путевке в валюте тура умноженная на курс, если валюта тура отлична от национальной (ключ из столбца DG_PRICE таблицы tbl_Dogovor * курс). При наличии оплат по путевке курс берётся как средневзвешенный: отношение оплаты в национальной валюте к оплате в валюте тура (ключ из столбца DG_NATIONALCURRENCYPAYED таблицы tbl_Dogovor / ключ из столбца DG_PAYED таблицы tbl_Dogovor).  Если оплаты по путевке отсутствуют или сумма оплат/возвратов = 0, в качестве курса берётся курс на дату оформления путевки.
 +
** '''planProfitRub''' – планируемая прибыль по путевке в рублях (PlanProfitRub = PlanBruttoRub - PlanNettoRub)
 +
** '''paymentRub''' – сумма платежей по путевке в рублях (ключ из столбца DG_NATIONALCURRENCYPAYED таблицы tbl_Dogovor).
 +
** '''profitRub''' – прибыль по путевке в рублях (ProfitRub = PaymentRub - PlanNettoRub)
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода GetReservationInfo
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/GetReservationInfo?dgCode=TU06010001
 +
</syntaxhighlight>
 +
Возвращаемый результат метода GetReservationInfo
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
  {
 +
    "createDate":"2023-12-26T14:51:36.637",
 +
    "tourDate":"2024-01-06T00:00:00",
 +
    "orderStatusCode":37,
 +
    "orderStatusName":"Wait-лист",
 +
    "countryId":97,
 +
    "countryName":"Тунис",
 +
    "hotelsName":["El Ksar 1*++","El Mouradi Palace 1*++"],
 +
    "planNettoRub":170557.59,
 +
    "planBruttoRub":206603.61,
 +
    "profitRub":30227.30,
 +
    "planProfitRub":36046.02,
 +
    "paymentRub":200784.89  }
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Информация по партнеру по ключу партнера (SelectPartnerInfoByKey)====
 +
Метод возвращает детальную информацию по партнеру по ключу партнера.
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectPartnerInfoByKey?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''key *''' – ключ партнера
 +
 
 +
* Возвращаемый результат:
 +
** '''partnerKey''' – ключ партнера (ключ из столбца PR_KEY таблицы tbl_Partners)
 +
** '''partnerCode''' – код партнера (ключ из столбца PR_COD таблицы tbl_Partners)
 +
** '''name''' – название партнера (ключ из столбца PR_NAME таблицы tbl_Partners)
 +
** '''fullName''' – полное название партнера (ключ из столбца PR_FULLNAME таблицы tbl_Partners)
 +
** '''phones''' – телефоны (ключ из столбца PR_PHONES таблицы tbl_Partners)
 +
** '''email''' – e-mail (ключ из столбца PR_EMAIL таблицы tbl_Partners)
 +
** '''physicalAddress''' – физический адрес (ключ из столбца PR_ADDRESS таблицы tbl_Partners)
 +
** '''legalAddress''' – юридический адрес (ключ из столбца PR_LEGALADDRESS таблицы tbl_Partners)
 +
** '''inn''' – ИНН (ключ из столбца PR_INN таблицы tbl_Partners)
 +
** '''kpp''' – КПП (ключ из столбца PR_KPP таблицы tbl_Partners)
 +
** '''okpo''' – код по ОКПО (ключ из столбца PR_CODEOKPO таблицы tbl_Partners)
 +
** '''okonh''' – код по ОКОНХ (ключ из столбца PR_CODEOKONH таблицы tbl_Partners)
 +
** '''cityKey''' – ключ города (ключ из столбца PR_CTKEY таблицы tbl_Partners)
 +
** '''cityName''' – название города (ключ из столбца PR_CITY таблицы tbl_Partners)
 +
** '''prOwnerKey''' – ключ ведущего менеджера по партнёру (ключ из столбца PR_OWNER таблицы tbl_Partners)
 +
** '''prOwnerName''' – имя ведущего менеджера по партнёру (ключ из столбца US_FullName таблицы UserList, где US_Key таблицы UserList = PR_OWNER таблицы tbl_Partners)
 +
 
 +
 
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectPartnerInfoByKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectPartnerInfoByKey?key=12667
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectPartnerInfoByKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
    "partnerKey": 12667,
 +
    "partnerCode": "DOV",
 +
    "name": "Megatec",
 +
    "fullName": "ООО Megatec",
 +
    "phones": [
 +
        "+7(495)111-22-33"
 +
    ],
 +
    "email": "info@megatec.ru",
 +
    "physicalAddress": "Москва, ул. Ленина, д. 1",
 +
    "legalAddress": "Москва, ул. Ленина, д. 1",
 +
    "inn": "123456789012",
 +
    "kpp": "1231231231",
 +
    "okpo": "54846546546584",
 +
    "okonh": "65468465165466",
 +
    "cityKey": 5458,
 +
    "cityName": "Москва"
 +
    "prOwnerKey": 148,
 +
    "prOwnerName": "Test"
 +
}
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Информация о партнерах с признаком "Даёт клиентов" по дате создания и/или изменения партнера (GetPartnerList)====
 +
Метод возвращает детальную информацию о партнерах по дате создания и/или изменения партнера.
 +
* Формат запроса:
 +
** GET .../PaymentService/GetPartnerList?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''createDate *''' – дата создания партнёра (ключ из столбца PR_CreateDate таблицы tbl_Partners)
 +
** '''updateDate *''' – дата изменения партнёра (ключ из столбца PR_UpdateDate таблицы tbl_Partners)
 +
 
 +
* Возвращаемый результат:
 +
** '''partnerKey''' – ключ партнера  (ключ из столбца PR_KEY таблицы tbl_Partners)
 +
** '''partnerCode''' – код партнера  (ключ из столбца PR_CODE таблицы tbl_Partners)
 +
** '''name''' – название партнера  (ключ из столбца PR_NAME таблицы tbl_Partners)
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода GetPartnerList
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/GetPartnerList?createDate=18.09.2023&updateDate=20.09.2024
 +
</syntaxhighlight>
 +
Возвращаемый результат метода GetPartnerList
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
  {
 +
    "partnerKey":15264,
 +
    "partnerCode":null,
 +
    "name":"PartnerTest6"
 +
  }
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Информация по детализации платежей за период (SelectPaymentsDetailsInPeriod)====
 +
Метод возвращает детальную информацию по платежам, созданным в экране Касса (таблица PaymentDetails) за период.
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectPaymentsDetailsInPeriod?
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''beginDate *''' – дата начала отбора (по дате платежа включительно)
 +
** '''endDate *''' – дата конца отбора
 +
** '''selectionType *''' – ключ типа дополнительного отбора. Может принимать значения:<br />
 +
*** 0 – все платежи. В этом случае параметр "additionalSelection" не передается <br />
 +
*** 1 - отбор по внутреннему ключу договора (путевки). Передается один ключ (таблица ''DogovorList'', поле ''DL_DgKey'')<br />
 +
*** 2 - отбор по внутреннему ключу платежа из таблицы платежей. Передается один ключ (таблица ''Payments'', поле ''PM_id'') <br />
 +
*** 3 - отбор по внутреннему ключу таблицы распределений платежей. Передается один ключ (таблица ''PaymentDetails'',  поле ''PM_id'')<br />
 +
*** 4 - отбор ключу таблицы платежей. Позволять отобрать детализации по ключу создателя ПЛАТЕЖА.  (таблица ''Payments'', поле ''PD_CreatorKey'') <br />
 +
*** 5 - отбор ключу. Позволять отобрать детализации по ключу создателя ДЕТАЛИЗАЦИИ платежа (таблица ''DogovorList'', поле ''DL_Owner'')<br />
 +
** '''additionalSelection *''' – ключ дополнительного отбора (т.е. например если selectionType=1, то передаем ключ путевки)
 +
** '''isShowDeleted *''' – показывать ли удаленные платежи. Если установлен в "0", то удаленные платежи не показываются, в противном случае отображаются все платежи.<br />
 +
* Возвращаемый результат:
 +
** '''key''' – ключ детализации платежа
 +
** '''paymentKey''' – ключ платежа
 +
** '''paymentNumber''' – внутренний номер платежа
 +
** '''paymentDocumentNumber''' – номер документа платежа
 +
** '''paymentDate''' – дата платежа
 +
** '''paymentTime''' – время платежа
 +
** '''paymentDocumentTypeName''' – тип платежа
 +
** '''paymentOperationKey''' – ключ типа операции
 +
** '''paymentOperationName''' – тип операции платежа
 +
** '''detailSumNationalRate''' – сумма детализации в национальной валюте
 +
** '''detailSum''' – сумма детализации в валюте платежа
 +
** '''sumDogovorRate''' – сумма детализации в валюте договора
 +
** '''isoCode''' – код валюты платежа
 +
** '''reason''' – основание платежа из детализации
 +
** '''isDeleted''' – удален ли платеж
 +
** '''paymentDetailSum''' – сумма платежа
 +
** '''paymentSumNationalRate''' – сумма платежа в национальной валюте
 +
** '''paymentSumDistributed''' – сумма распределенной части платежа
 +
** '''filialKey''' – внутренний ключ таблицы партнеров, определяет филиал, в котором сформирован платеж
 +
** '''isDebit''' – на приход или расход платеж
 +
** '''distributionCourse''' – курс распределения
 +
** '''paymentCreateDate''' – дата создания платежа
 +
** '''distributionDate''' – дата распределения
 +
** '''distributionCreateDate''' – дата создания распределения
 +
** '''dogovorKey''' – ключ договора. Определяет путевку, по которой было сделано распределение.
 +
** '''partnerKey''' – ключ партнера
 +
** '''userKeyCreatorPayment''' – ключ создателя платежа
 +
** '''userKeyCreatorDetailPayment''' – ключ создателя детализации платежа
 +
** '''paymentBy''' – от кого поступил платеж
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectPaymentsDetailsInPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectPaymentsDetailsInPeriod?beginDate=01.06.2021&endDate=06.06.2022&selectionType=1&additionalSelection=48748&isShowDeleted=1
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectPaymentsDetailsInPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
    {
 +
        "key": 3499,
 +
        "paymentKey": 3516,
 +
        "paymentNumber": 546,
 +
        "paymentDocumentNumber": "ПКО 000546",
 +
        "paymentDate": "03.06.2022",
 +
        "paymentTime": "16:20:37",
 +
        "paymentDocumentTypeName": 0,
 +
        "paymentOperationKey": 1,
 +
        "paymentOperationName": "Оплата за путевки (грн)",
 +
        "detailSumNationalRate": 6000.0000,
 +
        "detailSum": 6000.0000,
 +
        "sumDogovorRate": 6000.0000,
 +
        "isoCode": "RUB",
 +
        "reason": "Оплата через систему Uniteller, путевка HO04060002",
 +
        "isDeleted": null,
 +
        "paymentDetailSum": 6000.0000,
 +
        "paymentSumNationalRate": 6000.0000,
 +
        "paymentSumDistributed": 6000.0000,
 +
        "filialKey": 1,
 +
        "isDebit": 1,
 +
        "distributionCourse": 1.000000,
 +
        "paymentCreateDate": "03.06.2022",
 +
        "distributionDate": "03.06.2022",
 +
        "distributionCreateDate": "03.06.2022",
 +
        "dogovorKey": 48748,
 +
        "partnerKey": 3516,
 +
        "userKeyCreatorPayment": 97,
 +
        "userKeyCreatorDetailPayment": 97,
 +
        "paymentBy": null
 +
    }
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Выбор услуг по ключу путевки (SelectServicesByDogovorKey)====
 +
 
 +
Метод возвращает информацию по услугам по ключу путевки.
 +
 
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectServicesByDogovorKey?
 +
* Принимаемые параметры (* – обязательный):
 +
** '''dGCode''' * – ключ путевки
 +
* Возвращаемый результат:
 +
** '''key''' – ключ услуги
 +
** '''dataBegin''' – дата начала действия услуги
 +
** '''dataEnd''' – дата окончания действия услуги
 +
** '''name''' – название услуги
 +
** '''serviceType''' – ключ вида услуги
 +
** '''serviceTypeName''' – название вида услуги
 +
** '''tourName''' – название тура
 +
** '''countryId''' – ключ страны
 +
** '''countryName''' – название страны
 +
** '''cityId''' – ключ города
 +
** '''cityName''' – название города
 +
** '''tourProgramsId''' – ключ программы тура
 +
** '''netto''' – нетто
 +
** '''realNetto''' – нетто поставщика
 +
** '''brutto''' – брутто
 +
** '''payed''' – оплата
 +
** '''discountSum''' – скидка
 +
** '''partnerKey''' – ключ партнера
 +
** '''code''' – код типа услуги по выбранной стране для связанных таблиц
 +
** '''subCode1''' – ключ доп. описания 1
 +
** '''subCode2''' – ключ доп. описания 2
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectServicesByDogovorKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectServicesByDogovorKey?DGCode=IS14110005
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectServicesByDogovorKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
    {
 +
        "key": 240125,
 +
        "dataBegin": "14.11.2022",
 +
        "dataEnd": "16.11.2022",
 +
        "name": "HOTEL::Эйлат/Isrotel Hotel Managament-2*,3 ночи/-(-),2 Adult/BB3 Buffet Breakfast",
 +
        "serviceType": 3,
 +
        "serviceTypeName": "Отель/Круиз",
 +
        "tourName": " Израиль 3",
 +
        "countryId": 729,
 +
        "countryName": "Израиль",
 +
        "cityId": 194,
 +
        "cityName": "Эйлат",
 +
        "tourProgramsId": 100011127,
 +
        "netto": 36.1409,
 +
        "realNetto": 34.0000,
 +
        "brutto": 35.4200,
 +
        "payed": 35.4500,
 +
        "discountSum": 0.7300,
 +
        "partnerKey": 13093,
 +
        "code": 16698,
 +
        "subCode1": 1086069,
 +
        "subCode2": 41
 +
    }
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Выбор детализации счетов партнеров за период (SelectBillsDetailsInPeriod)====
 +
 
 +
Метод возвращает детализацию счетов партнеров за период.
 +
 
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectBillsDetailsInPeriod?
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''beginDate *''' – дата начала отбора
 +
** '''endDate *''' – дата окончания отбора
 +
** '''selectionType''' – тип дополнительного отбора
 +
** '''additionalSelection''' – значение дополнительного отбора
 +
 
 +
Первые два параметра задают период отбора. Третий параметр задает тип дополнительного отбора. Четвертый – строку дополнительного отбора:
 +
* 1 – отбор по ключу счета партнера (BL_KEY)
 +
* 2 – отбор по номеру счета партнера, по вхождению 'LIKE' (BL_NUMBER)
 +
* 3 – отбор по ключу путевки (BD_DGKEY)
 +
* 4 – отбор по коду путевки, по вхождению 'LIKE' (BD_DGCOD)
 +
* 5 – отбор по ключу услуги (BD_DLKEY)
 +
* 6 – отбор по ключу партнера (BL_PRKEY)
 +
 
 +
* Возвращаемый результат:
 +
** '''key''' – внутренний ключ таблицы распределения счетов партнеров (BD_ID)
 +
** '''billsKey''' – внутренний ключ таблицы счетов партнеров (BD_BLKEY из таблицы Bills)
 +
** '''dogovorKey''' – ключ путевки (BD_DGKEY)
 +
** '''dogovorCode''' – номер путевки (BD_DGCOD)
 +
** '''serviceType''' – ключ типа услуги (BD_SVKEY)
 +
** '''serviceTypeName''' – название типа услуги (SV_NAME)
 +
** '''serviceKey''' – ключ услуги по путевке (BD_DLKEY)
 +
** '''serviceName''' – название услуги путевки (DL_NAME)
 +
** '''dogovorSum''' – сумма (DB_SUMMATODOG)
 +
** '''datelastUpdate''' – дата изменения записи (BL_LastUpdate)
 +
** '''type''' – тип счета партнера (BL_TYPE)
 +
** '''number''' – номер счета партнера (BL_NUMBER)
 +
** '''date''' – дата счета партнера (BL_DATE)
 +
** '''billsIsoCode''' – код валюты счета партнера (BL_PRRATE)
 +
** '''sum''' – сумма счета партнера (BL_SUMMA)
 +
** '''isoCode''' – код валюты платежа (BL_MYRATE)
 +
** '''payed''' – оплачено (BL_PAYED)
 +
** '''remark''' – заметка (BL_REMARK)
 +
** '''entryDate''' – дата занесения (BL_ENTRYDATE)
 +
** '''maxDate''' – крайний срок оплаты (BL_MAXDATE)
 +
** '''partnerKey''' – ключ партнера (BL_PRKEY)
 +
** '''partnerName''' – название партнера (PR_NAME)
 +
** '''inn''' – ИНН партнера (PR_INN)
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectBillsDetailsInPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectBillsDetailsInPeriod?beginDate=01.01.2023&endDate=01.02.2023&selectionType=6&additionalSelection=12668
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectBillsDetailsInPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
[{
 +
        "key": 1263,
 +
        "billsKey": 191,
 +
        "dogovorKey": 46220,
 +
        "dogovorCode": "AU2201000I",
 +
        "serviceType": 1,
 +
        "serviceTypeName": "Авиаперелет",
 +
        "serviceKey": 224282,
 +
        "serviceName": А_П::Вена/Москва/7U333, VIE1-DME, 11:00-17:00/Y Экономический класс,
 +
        "dogovorSum": 150,
 +
        "lastUpdate": "18.01.2023 10:57:47",
 +
        "type": 0,
 +
        "number": "654",
 +
        "date": "10.01.2023",
 +
        "billsIsoCode": "$",
 +
        "sum": 150,
 +
        "isoCode": "$",
 +
        "payed": 150,
 +
        "remark": "AU2201000I",
 +
        "entryDate": "10.01.2023",
 +
        "maxDate": "30.01.2023",
 +
        "partnerKey": 12668,
 +
        "partnerName": "5656",
 +
        "inn": "7707083153"
 +
    }
 +
]
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Выбор списка договоров из истории (SelectDogovorsInHistory)====
 +
 
 +
Метод возвращает список измененных договоров на основе информации в таблицах истории.
 +
Необходимо передавать только актуальное значение ключа, иначе будет отбираться большой объем данных продолжительное время.
 +
 
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectDogovorsInHistory?
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''key *''' – внутренний ключ таблицы истории, с которого начинается отбор договоров (HI_ID из таблицы History)
 +
** '''returnType *''' – тип возвращаемых значений (1 – будут возвращаться ключи договоров, 2 – коды договоров)
 +
 
 +
* Возвращаемый результат:
 +
** '''keys''' – ключ или код договора (HI_DGKEY или HI_DGCODE из таблицы History в зависимости от того какое значение запрошено в параметре "returnType")
 +
** '''maxKey''' – максимальное значение ключа таблицы истории, которая участвовала в обработке информации по путевке (HI_ID из таблицы History)
 +
 
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода SelectDogovorsInHistory
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectDogovorsInHistory?key=-2146368987&returnType=2
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectDogovorsInHistory
 +
<syntaxhighlight lang="java" enclose="div">
 +
{
 +
    "keys": [
 +
        "TU01070002",
 +
        "AU03030007",
 +
        "TU08070002",
 +
        "TU01070003",
 +
        "AU31030008",
 +
        "TU23040001",
 +
        "TU23040002",
 +
        "IS27030001",
 +
        "TU23040003",
 +
        "AU2802000A",
 +
        "AU12040005",
 +
        "AU2802000E",
 +
        "AU11040001",
 +
        "AU07040004",
 +
        "AU04070006",
 +
        "AU06010003",
 +
        "AU06010004",
 +
        "AU06060007",
 +
        "AU0908000A",
 +
        "AU11110002",
 +
        "AU12040002",
 +
        "AU12040003",
 +
        "AU12040004",
 +
        "AU12040006",
 +
        "AU15060002",
 +
        "AU23060004",
 +
        "AU23110004",
 +
        "AU24060011"
 +
    ],
 +
    "maxKey": -2146366385
 +
}
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Информация по типам состояний путевок (GetDogovorConditionsTypesList)====
 +
 
 +
Метод возвращает информацию по типам состояний путевок из таблицы Order_Status базы данных.
 +
 
 +
* Формат запроса:
 +
** GET .../PaymentService/GetDogovorConditionsTypesList
 +
* Принимаемые параметры отсутствуют.
 +
* Возвращаемый результат:
 +
** '''key''' – ключ статуса (ключ из столбца OS_CODE таблицы Order_Status)
 +
** '''name''' – название статуса (ключ из столбца OS_NAME_RUS таблицы Order_Status)
 +
** '''global''' – глобальный ключ статуса (ключ из столбца OS_GLOBAL таблицы Order_Status)
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода GetDogovorConditionsTypesList
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/GetDogovorConditionsTypesList
 +
</syntaxhighlight>
 +
Возвращаемый результат метода GetDogovorConditionsTypesList
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
    {
 +
        "key": 0,
 +
        "name": "В работе",
 +
        "global": 0
 +
    },
 +
    {
 +
        "key": 1,
 +
        "name": "Не определен",
 +
        "global": 1
 +
    },
 +
    {
 +
        "key": 2,
 +
        "name": "Аннулирован",
 +
        "global": 2
 +
    },
 +
    {
 +
        "key": 3,
 +
        "name": "Wait-лист",
 +
        "global": 3
 +
    },
 +
    {
 +
        "key": 4,
 +
        "name": "Не подтвержден",
 +
        "global": 4
 +
    },
 +
    {
 +
        "key": 5,
 +
        "name": "Wait-лист+Не подтв.",
 +
        "global": 5
 +
    },
 +
    {
 +
        "key": 7,
 +
        "name": "Ok",
 +
        "global": 7
 +
    },
  
| 5
+
]
| Путь к службе сервиса квотирования
 
| По умолчанию служба сервиса квотирования использует порт ''5000''. Рекомендуется использование порта по умолчанию.<br />
 
<font style="color:red">''Внимание!''</font><br />
 
При смене порта необходимо также изменить порт в установочном скрипте ''_Install.bat''.
 
| <syntaxhighlight lang="xml" enclose="div">
 
<add key="serviceAddress" value="http://*:5000/QuotasService/" />
 
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 +
====Информация по типам свойств партнеров (GetPartnerPropertyTypesList)====
 +
Метод возвращает информацию по типам свойств партнеров.
 +
 +
* Формат запроса:
 +
** GET .../PaymentService/GetPartnerPropertyTypesList?selectionType=3&additionalSelection=10760
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''selectionType *''' – тип дополнительного отбора (1 - отбор производится по внутреннему ключу таблицы свойств партнеров, 2 - отбор производится по названию свойства партнера, 3 - отбор производится по внутреннему ключу таблицы партнеров, позволяет вывести список свойств для конкретного партнера.)
 +
** '''additionalSelection *''' – тип возвращаемых значений (если selectionType=1, то указывается ключ свойства партнеров из столбца PT_Id таблицы PrtTypes; если selectionType=2, то указывается название свойства партнеров из столбца PT_Name таблицы PrtTypes; если selectionType=3, то указывается ключ партнера из столбца PR_KEY таблицы tbl_Partners)
  
|- style="vertical-align:text-top"
+
* Возвращаемый результат:
 +
если был отправлен selectionType=1 или selectionType=2
 +
** '''key''' – ключ свойства партнера (ключ из столбца PT_Id таблицы PrtTypes)
 +
** '''name''' – название свойства партнера (ключ из столбца PT_Name таблицы PrtTypes)
  
| 6
+
если был отправлен selectionType=3
| Множитель используемых ядер процессора при работе сервиса квотирования.
+
** '''key''' – ключ свойства партнера (ключ из столбца PTP_PTId таблицы PrtTypesToPartners по ключу партнера из параметр additionalSelection в запросе)
| Настройка предназначена для указания множителя физического количества потоков машины, которые будут обслуживать функциональность службы сервиса квотирования.<br />
+
** '''name''' – название свойства партнера (название из столбца PT_Name таблицы PrtTypesToPartners по ключу партнера из параметр additionalSelection в запросе)
В качестве примера:<br />
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
физических ядер – 4<br />
+
<div class="mw-collapsible-content">
значение настройки – 0,8<br />
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
результат перемножения – 3, т.е. всего максимум 3 потока будут обслуживать данную функциональность<br />
+
Вызов метода GetPartnerPropertyTypesList
| <syntaxhighlight lang="xml" enclose="div">
+
<syntaxhighlight lang="java" enclose="div">
<add key="serviceCoresKoeff" value="0,8" />
+
GET http://localhost:5010/PaymentService/GetPartnerPropertyTypesList?selectionType=3&additionalSelection=10760
 +
</syntaxhighlight>
 +
Возвращаемый результат метода GetPartnerPropertyTypesList
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
    {
 +
        "key": 4,
 +
        "name": "Предоставляет сметные услуги"
 +
    },
 +
    {
 +
        "key": 6,
 +
        "name": "Авиаперевозчик"
 +
    },
 +
    {
 +
        "key": 7,
 +
        "name": "Нерезидент РФ"
 +
    },
 +
    {
 +
        "key": 8,
 +
        "name": "Финансовое обеспечение"
 +
    },
 +
    {
 +
        "key": 9,
 +
        "name": "Выкупает блоки мест"
 +
    },
 +
    {
 +
        "key": 14,
 +
        "name": "Обмен MIS"
 +
    },
 +
    {
 +
        "key": 1001,
 +
        "name": "Проверить контакты"
 +
    },
 +
    {
 +
        "key": 1002,
 +
        "name": "Запросы (по запросам)"
 +
    }
 +
]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 +
 +
====Информация по счетам за период (SelectInvoicesInPeriod)====
 +
Метод возвращает информацию по счетам за период. Отображаются счета из таблицы Accounts, у которых в столбце AC_ReportNumber=4020, то есть те, по которым сформирован [[Мастер-Тур:Отчет 4020 Счет|Счет]].
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectInvoicesInPeriod?dateBegin=01.02.2022&dateEnd=21.12.2024&selectionType=5&additionalSelection=120
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''dateBegin *''' – дата начала периода отбора
 +
** '''dateEnd *''' – дата окончания периода отбора
 +
** '''selectionType''' – тип дополнительного отбора (если не отправляем, то выводятся все счета в заданном периоде)
 +
*** 1 – отбор производится по номеру счета (указывается часть номера счета или весь счет, используется запрос LIKE)
 +
*** 2 – отбор производится по коду путевки
 +
*** 3 – отбор производится по списку ключей таблицы типов параметров партнера, список передается в формате строки, элементы которой разделены знаком ";" (используется запрос IN). Для получения таблицы типов параметров партеров можно использовать метод [[Мастер-Тур(15):PaymentService#Информация по типам свойств партнеров (GetPartnerPropertyTypesList)|GetPartnerPropertyTypesList]]
 +
*** 4 – отбор производится по списку ключей таблицы состояний путевок, список передается в формате строки, элементы которой разделены знаком ";" (используется запрос IN). Для получения таблицы состояний путевок можно использовать метод [[Мастер-Тур(15):PaymentService#Информация по типам состояний путевок (GetDogovorConditionsTypesList)|GetDogovorConditionsTypesList]]
 +
*** 5 – отбор производится по номеру счета (указывается конкретный номер счета, в отличие от варианта 1)
 +
*** Любое число, кроме вышеуказанных (0,6...) или отсутствие параметра – выводятся все счета в заданном периоде
 +
** '''additionalSelection''' – строка дополнительного отбора (если selectionType=1, то указывается часть номера счета из столбца AC_NUMBER таблицы Accounts; если selectionType=2, то указывается код путевки из столбца AC_DGCOD таблицы Accounts; если selectionType=3, то указывается ключ типа параметров партнера из столбца PT_Id таблицы PrtTypes; если selectionType=4, то указывается ключ состояний путевок из столбца OS_CODE таблицы Order_Status; если selectionType=5, то указывается номер счета из столбца AC_NUMBER таблицы Accounts)
  
|- style="vertical-align:text-top"
+
* Возвращаемый результат:
 +
** '''key''' – ключ счета (ключ из столбца AC_KEY таблицы Accounts)
 +
** '''number''' – номер счета (ключ из столбца AC_NUMBER таблицы Accounts)
 +
** '''dogovorCode''' – код договора, которому принадлежит счет (ключ из столбца AC_DGCODE таблицы Accounts)
 +
** '''date''' – дата счета (ключ из столбца AC_DATE таблицы Accounts)
 +
** '''dogovorKey''' – внутренний ключ таблицы договоров, определяет договор, которому принадлежит счет (ключ из столбца AC_DGKEY таблицы Accounts)
 +
** '''course''' – курс счета (ключ из столбца AC_COURSE таблицы Accounts)
 +
** '''sum''' – сумма счета (ключ из столбца AC_SUMUSD таблицы Accounts)
 +
** '''sumRub''' – сумма счета в рублях (ключ из столбца AC_SUMRUB таблицы Accounts)
 +
** '''dogovorSum''' – сумма договора (ключ из столбца DG_PRICE таблицы tbl_Dogovor)
 +
** '''dogovorPayed''' – сумма оплачено по договору (ключ из столбца DG_PAYED таблицы tbl_Dogovor)
 +
** '''partnerKey''' – внутренний ключ таблицы партнеров. Определяет партнера по договору (ключ из столбца DG_PARTNERKEY таблицы tbl_Dogovor)
 +
** '''partnerName''' – наименование партнера (ключ из столбца PR_KEY таблицы tbl_Partners)
 +
** '''dogovorStatusKey''' – ключ состояния договора (Если равен 2, то договор аннулирован) (ключ из столбца DG_SOR_CODE таблицы tbl_Dogovor)
 +
** '''discountSum''' – размер комиссии в путевке в валюте счета (ключ из столбца DG_DISCOUNTSUM таблицы tbl_Dogovor по курсу валют ключа из столбца AC_COURSE таблицы Accounts)
 +
** '''createDate''' – дата создания счета (ключ из столбца AC_CreateDate таблицы Accounts)
 +
** '''rateCode''' – код валюты счета (Не ключ валюты!)(ключ из столбца AC_RATE таблицы Accounts)
 +
** '''dogovorRateCode''' – код валюты договора (Не ключ договора!)
  
| 7
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
| Множитель используемых ядер процессора при обновлении службы сервиса квотирования.<br />
+
<div class="mw-collapsible-content">
| Процент от общего количества ядер процессора, которые будут использоваться при обновлении справочных данных. К примеру, в 20-ти ядерном процессоре при значении настройки "0,8" будет использоваться 80 % мощности, то есть 16 ядер.
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
| <syntaxhighlight lang="xml" enclose="div">
+
Вызов метода SelectInvoicesInPeriod
<add key="serviceRecalcCoresKoeff" value="0,8" />
+
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectInvoicesInPeriod?dateBegin=01.07.2024&dateEnd=21.12.2024&selectionType=1&additionalSelection=5
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectInvoicesInPeriod
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
    {
 +
        "key":648,
 +
        "number":"175",
 +
        "dogovorCode":"RU04070003",
 +
        "date":"04.07.2024",
 +
        "dogovorKey":52579,
 +
        "course":87.9506,
 +
        "sum":500,
 +
        "sumRub":43975.3,
 +
        "dogovorSum":450.0000,
 +
        "dogovorPayed":0.0000,
 +
        "partnerKey":12671,
 +
        "partnerName":"Тест партнер",
 +
        "dogovorStatusKey":1,
 +
        "discountSum":4397.53,
 +
        "createDate":"04.07.2024",
 +
        "rateCode":"рб",
 +
        "dogovorRateCode":"$"
 +
    }
 +
]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
  
|- style="vertical-align:text-top"
+
====Информация по счетам по ключу путевки (SelectInvocesByDogovorKey)====
 +
Метод возвращает информацию по счетам по ключу путевки. Отображаются счета из таблицы Accounts, у которых в столбце AC_ReportNumber=4020, то есть те, по которым сформирован [[Мастер-Тур:Отчет 4020 Счет|Счет]].
 +
* Формат запроса:
 +
** GET .../PaymentService/SelectInvocesByDogovorKey?dogovorKey=45189
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''dogovorKey *''' – внутренний ключ таблицы договоров, определяет договор, которому принадлежит счет (ключ из столбца AC_DGKEY таблицы Accounts). Ключ путевки можно определить, например, используя метод [[Мастер-Тур(15):PaymentService#Информация по путевкам за период (SelectDogovorsInPeriod)|SelectDogovorsInPeriod]]
 +
* Возвращаемый результат:
 +
** '''key''' – ключ счета (ключ из столбца AC_KEY таблицы Accounts)
 +
** '''number''' – номер счета (ключ из столбца AC_NUMBER таблицы Accounts)
 +
** '''dogovorCode''' – код договора, которому принадлежит счет (ключ из столбца AC_DGCODE таблицы Accounts)
 +
** '''date''' – дата счета (ключ из столбца AC_DATE таблицы Accounts)
 +
** '''dogovorKey''' – внутренний ключ таблицы договоров, определяет договор, которому принадлежит счет (ключ из столбца AC_DGKEY таблицы Accounts)
 +
** '''createDate''' – дата создания счета (ключ из столбца AC_CreateDate таблицы Accounts)
 +
** '''rateCode''' – код валюты счета (Не ключ валюты!)(ключ из столбца AC_RATE таблицы Accounts)
 +
** '''course''' – курс счета (ключ из столбца AC_COURSE таблицы Accounts)
 +
** '''sum''' – сумма счета (ключ из столбца AC_SUMUSD таблицы Accounts)
 +
** '''sumRub''' – сумма счета в рублях (ключ из столбца AC_SUMRUB таблицы Accounts)
 +
** '''dogovorRateCode''' – код валюты договора (Не ключ договора!)
 +
** '''dogovorSum''' – сумма договора (ключ из столбца DG_PRICE таблицы tbl_Dogovor)
 +
** '''dogovorPayed''' – сумма оплачено по договору (ключ из столбца DG_PAYED таблицы tbl_Dogovor)
 +
** '''partnerKey''' – внутренний ключ таблицы партнеров. Определяет партнера по договору (ключ из столбца DG_PARTNERKEY таблицы tbl_Dogovor)
 +
** '''partnerName''' – наименование партнера (ключ из столбца PR_KEY таблицы tbl_Partners)
 +
** '''dogovorStatusKey''' – ключ состояния договора (Если равен 2, то договор аннулирован) (ключ из столбца DG_SOR_CODE таблицы tbl_Dogovor)
  
| 8
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
| Множитель используемых ядер процессора при инициализации службы сервиса квотирования.<br />
+
<div class="mw-collapsible-content">
| Процент от общего количества ядер процессора, которые будут использоваться при инициализации справочных данных. К примеру, в 20-ти ядерном процессоре при значении настройки "0,9" будет использоваться 90 % мощности, то есть 18 ядер.
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
| <syntaxhighlight lang="xml" enclose="div">
+
Вызов метода SelectInvocesByDogovorKey
<add key="serviceInitCoresKoeff" value="0,9" />
+
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/SelectInvocesByDogovorKey?dogovorKey=45189
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SelectInvocesByDogovorKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
[
 +
    {
 +
        "key": 465,
 +
        "number": "64",
 +
        "dogovorCode": "AU25040005",
 +
        "date": "23.04.2020",
 +
        "dogovorKey": 45189,
 +
        "createDate": "23.04.2020",
 +
        "rateCode": "рб",
 +
        "course": 83.6826,
 +
        "sum": 104,
 +
        "sumRub": 8702.990399999999,
 +
        "dogovorRateCode": "EU",
 +
        "dogovorSum": 104.0000,
 +
        "dogovorPayed": 0.0000,
 +
        "partnerKey": 11041,
 +
        "partnerName": "Астра-Тур",
 +
        "dogovorStatusKey": 3
 +
    },
 +
    {
 +
        "key": 465,
 +
        "number": "64",
 +
        "dogovorCode": "AU25040005",
 +
        "date": "23.04.2020",
 +
        "dogovorKey": 45189,
 +
        "createDate": "23.04.2020",
 +
        "rateCode": "рб",
 +
        "course": 83.6826,
 +
        "sum": 104,
 +
        "sumRub": 8702.990399999999,
 +
        "dogovorRateCode": "EU",
 +
        "dogovorSum": 104.0000,
 +
        "dogovorPayed": 0.0000,
 +
        "partnerKey": 11041,
 +
        "partnerName": "Астра-Тур",
 +
        "dogovorStatusKey": 3
 +
    }
 +
]
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
 +
 +
====Информация по счетам по ключу путевки и ключу партнера (GetInvocesBydogovorCodePartnerKey)====
  
|- style="vertical-align:text-top"
+
Метод возвращает информацию по счетам по ключу путевки и ключу партнера. Отображаются счета из таблицы FIN_BILL (Мастер-Финанс). Обрабатывается только при работе с Мастер-Финанс.
 +
* Формат запроса:
 +
** GET .../PaymentService/GetInvocesBydogovorCodePartnerKey?dogovorCode=MA40414003&partnerKey=10760
 +
* Принимаемые параметры ('''*''' – обязательный):
 +
** '''dogovorCode *''' – номер путевки Мастер-Тур (ключ из столбца BI_COMMENT таблицы FIN_BILL)
 +
** '''partnerKey *''' – ключ партнера по услуге из путевки Мастер-Тур (ключ из столбца BI_PARTNERKEY таблицы FIN_BILL)
 +
* Возвращаемый результат:
 +
** '''bI_KEY''' – ключ счета (ключ из столбца BI_KEY таблицы FIN_BILL)
 +
** '''bI_COMMENT''' – номер путевки Мастер-тур (ключ из столбца BI_COMMENT таблицы FIN_BILL)
 +
** '''bI_PARTNERKEY''' – ключ партнера по услуге (ключ из столбца BI_PARTNERKEY таблицы FIN_BILL)
 +
** '''bI_DATE_INVOICE''' – дата счета (ключ из столбца BI_DATE_INVOICE таблицы FIN_BILL)
 +
** '''bI_OUTNUM''' – номер счета (ключ из столбца BI_OUTNUM таблицы FIN_BILL)
 +
** '''bI_SUM''' – сумма счета (ключ из столбца BI_SUM таблицы FIN_BILL)
 +
** '''bI_RATE''' – код валюты счета (ключ из столбца BI_RATE таблицы FIN_BILL)
 +
** '''bI_SUM_RUB''' – сумма счета в рублях (ключ из столбца BI_SUM_NATIONAL таблицы FIN_BILL)
 +
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
 +
<div class="mw-collapsible-content">
 +
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
 +
Вызов метода GetInvocesBydogovorCodePartnerKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
GET http://localhost:5010/PaymentService/GetInvocesBydogovorCodePartnerKey?dogovorCode=MA40414003&partnerKey=10760
 +
</syntaxhighlight>
 +
Возвращаемый результат метода GetInvocesBydogovorCodePartnerKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
    {
 +
        "bI_KEY":75876,
 +
        "bI_COMMENT":"MA40414003 (SABYRZHANOVA K.)",
 +
        "bI_PARTNERKEY":10760,
 +
        "bI_DATE_INVOICE":"2024-02-16T00:00:00",
 +
        "bI_OUTNUM":"347405",
 +
        "bI_SUM":8147.5500,
 +
        "bI_RATE":"$",
 +
        "bI_SUM_RUB":799030.2285
 +
    }
 +
       
  
| 9
 
| Настройка для работы службы сервиса квотирования через https <br />
 
|
 
* certFile – название файла сертификата с форматом файла
 
* certPassword – пароль к сертификату
 
* certStoreLocation – каким образом установлен сертификат: для текущего пользователя (значение ''CurrentUser'') или для текущей машины (значение ''LocalMachine''). Подробное описание см. в [[Мастер-Тур(15):Настройки системы#Настройка работы системы по https|настройках работы системы по https]]
 
| <syntaxhighlight lang="xml" enclose="div">
 
<add key="certFile" value="" />
 
<add key="certPassword" value="" />
 
<add key="certStoreLocation" value="CurrentUser" />
 
 
</syntaxhighlight>
 
</syntaxhighlight>
|}
+
</TD></TR></TABLE>
 +
</div></div><br />
 +
 
 +
====Пометить платеж на удаление по ключу (SetPaymentDeletedByKey)====
 +
Метод помечает платеж из базы данных Мастер-Тур на удаление.<br />
 +
По логике работы МТ, при удалении платежа сначала производится удаление детализаций по этому платежу. Затем сам платеж помечается "как удаленный".<br />
 +
* Формат запроса:
 +
** POST .../PaymentService/SetPaymentDeletedByKey?
 +
 
 +
* Принимаемые параметры ('''*''' – обязательный):<br />
 +
** '''paymentKey *''' – внутренний ключ таблицы платежей. Определяет платеж в таблице платежей (поле PD_PMId таблицы PaymentDetails или PM_Id таблицы Payments).<br />
 +
** '''detailsType *''' – определяет вариант работы с детализациями платежей (1 – удаления детализаций платежа не будет, сам платеж пометится на удаление, 2 – производится удаление детализаций платежа, затем платеж помечается на удаление)<br />
 +
 
 +
* Возвращаемый результат:
 +
** '''ключ обработанной записи платежа'''  (в случае ошибки выводится сообщение об ошибке)<br />
  
* Установка осуществляется запуском скрипта ''_Install.bat'' от имени администратора. [[Файл:Bm135.png|Запуск от имени администратора]]
+
<div class="toccolours mw-collapsible mw-collapsed" style="width:900px">Пример
* При установке в Брандмауэре Windows создаются правила для входящих подключений для открытия порта QuotesService. [[Файл:Mb_354.png‎|Правила для входящих подключений QuotesService]]
+
<div class="mw-collapsible-content">
* В Службах Windows добавляется служба ''MegatecQuotesService''.<br />
+
<TABLE STYLE="border: 0.1em dashed #2F6FAB; margin: 8px; padding: 8px" WIDTH="99%"><TR><TD>
[[Файл:mb_353.png|MegatecQuotesService]]<br />
+
Вызов метода SetPaymentDeletedByKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
POST http://localhost:5010/PaymentService/SetPaymentDeletedByKey?paymentKey=4148&detailsType=2 HTTP/1.1
 +
</syntaxhighlight>
 +
Возвращаемый результат метода SetPaymentDeletedByKey
 +
<syntaxhighlight lang="java" enclose="div">
 +
4148
 +
</syntaxhighlight>
 +
</TD></TR></TABLE>
 +
</div></div><br />
  
* Для удаления службы необходимо запустить скрипт ''_UnInstall.bat'' от имени администратора. При этом будут удалены правила для входящих подключений.
+
[[Category:Мастер-Тур(15)]]

Текущая версия на 16:32, 8 ноября 2024

Содержание

Введение

Начиная с релиза 15.8 разработан сервис оплат (PaymentService), который нужен для проведения оплаты в ПК Мастер-Тур.
В этот сервис постепенно будут добавляться новые методы из Мастер-Центр оплат. На текущий момент реализован метод ДобавитьОплатуРассчитывать

Установка службы сервиса оплат

  • Скопировать папку PaymentService из дистрибутива на сервер. Служба PaymentService должна устанавливаться на компьютере, имеющем доступ к серверу баз данных, или на компьютере, который сам является сервером баз данных (установлен MS SQL Server).
  • Перед установкой службы сервиса оплат необходимо настроить конфигурационный файл appsettings.json.
Название Описание Настройка
1 Строка подключения Строка подключения к базе данных ПК «Мастер-Тур» указывается в секции ConnectionStrings.

Внимание!

  • Обратите внимание, что в целях безопасности необходимо ограничить доступ к этому конфигурационному файлу. Он должен быть доступен только для данного приложения.
  • Для корректной работы в поле User Id достаточно указать пользователя, привязанного к группе avServices в модуле Мастер-Администратор (обрабатывается с релиза 15.6).
  • Пароль пользователей системы, от которых работают службы и приложения, не должен содержать ни одного из следующих символов: < > " ' &
"MtDatabase": "Server=Server; Database=Database; User Id=User; Password=Password;"
2 Путь к службе сервиса оплат По умолчанию служба сервиса оплат использует порт 5010 и название PaymentService. Рекомендуется использование значений по умолчанию.

Внимание!
При смене порта необходимо также изменить порт в установочном скрипте _Install.cmd.

"applicationUrl": "http://*:5010",
"ApplicationName": "PaymentService",
3 Путь к службе MTS Необходимо указать адрес и порт к установленной службе MTS (для подписи проводимых платежей)
"SoapServiceAddress": "http://localhost:80/MTS",
  • Установка осуществляется запуском скрипта _Install.cmd от имени администратора. Запуск от имени администратора
  • При установке в Брандмауэре Windows создаются правила для входящих подключений для открытия порта PaymentService.
  • В Службах Windows добавляется служба PaymentService.
  • Для удаления службы необходимо запустить скрипт _UnInstall.cmd от имени администратора. При этом будут удалены правила для входящих подключений.

Работа службы сервиса оплат

Добавить оплату (AddPayment)

Метод производит внесение оплаты в базу данных Мастер-Тур. На вход подается сумма платежа, валюта платежа и дата. Метод записывает сумму платежа в указанной валюте, а также конвертирует эту сумму в валюту путевки и в национальную валюту по курсу либо на дату платежа, либо на дату, которая указывается во входных параметрах.

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

  • Формат запроса:
    • POST .../PaymentService/AddPayment?
  • Принимаемые параметры (* – обязательный):
    • PaymentOperation * – ключ типа операции (PO_Id из таблицы PaymentOperations)
    • PaymentSum * – сумма платежа в валюте платежа. Для разделения используется точка, 20836.80
    • CurrencyISOCode * – ISO код валюты платежа (RA_ISOCode из таблицы Rates)
    • DogovorKey * – ключ путевки
    • DogovorCode – код путевки (отрабатывает, если не указан DogovorKey)
    • PaymentDate * – дата платежа (в формате yyyy-mm-dd)
    • CourseDate – дата, на которую берется курс (если не указан, берется на дату платежа)
    • DocNumber – номер документа
    • ReceivedFrom – от кого получен платеж (строковое значение)
    • PaymentFor – за что произведен платеж (строковое значение)
    • PartnerKey – если платеж производиться партнеру, то этот ключ определяет конкретного партнера
    • NoDetails – детализация платежа (по умолчанию - false, детализация платежа будет создана)
    • CalculationRate – курс валюты (если указан и валюта платежа не совпадает с валютой путевки, то сумму платежа делится на курс)
  • Возвращаемый результат:
    • ключ платежа
Пример

Вызов метода AddPayment

POST http://localhost:5010/PaymentService/AddPayment?PaymentOperation=1&PaymentSum=100&CurrencyISOCode=RUB&DogovorCode=IS28070006&PaymentDate=2023-12-28&CourseDate&NoDetails=false&CalculationRate=100 HTTP/1.1

Возвращаемый результат метода AddPayment

4455


Список прошедших заездов по турам (TourList)

Метод возвращает список туров, по которым в заданные даты были совершены заезды (то есть, есть оформленные путевки).

  • Формат запроса:
    • GET .../PaymentService/TourList?
  • Принимаемые параметры (* – обязательный):
    • dateFrom * – дата заезда с в формате dd.mm.yyyy
    • dateTo * – дата заезда по в формате dd.mm.yyyy
  • Возвращаемый результат:
    • tourProgramsId – ключ программы тура
    • tourName – название программы тура
    • dateBegin – массив дат заездов по указанному туру в заданный период
Пример

Вызов метода TourList

GET http://localhost:5010/PaymentService/TourList?dateFrom=01.04.2022&dateTo=10.04.2022

Возвращаемый результат метода TourList

[{
        "tourProgramsId": 100001232,
        "tourName": "Общая проверка системы",
        "dateBegin": [
            "03.04.2022",
            "05.04.2022"
        ]
    }, {
        "tourProgramsId": 100001247,
        "tourName": "Тур в Кострому",
        "dateBegin": [
            "01.04.2022",
            "03.04.2022",
            "05.04.2022"
         ]
    }
]


Финансовая информация по турам (TourFinInfo)

Метод возвращает детальную информацию по услугам и оплатам по туру.

  • Формат запроса:
    • GET .../PaymentService/TourFinInfo?
  • Принимаемые параметры (* – обязательный):
    • tourProgramsId * – ключ программы тура
    • tourDate * – дата заезда по туру в формате dd.mm.yyyy
  • Возвращаемый результат:
    • tourName – название программы тура
    • arrivalDate – дата заезда по туру
    • touristCount – общее количество туристов по путевкам
    • payed – сумма оплат от покупателей по всем путевкам в национальной валюте
    • services – массив услуг (группировка по классу услуг)
      • serviceType – название класса услуги
      • serviceName – название услуги
      • serviceTouristCount – количество туристов, пользующихся услугой по всем путевкам
      • partner – поставщик по услуге
      • netto – стоимость нетто по всем путевкам по каждой услуге
      • brutto – стоимость брутто по всем путевкам по каждой услуге
Пример

Вызов метода TourFinInfo

GET http://localhost:5010/PaymentService/TourFinInfo?tourProgramsId=100001232&tourDate=04.05.2022

Возвращаемый результат метода TourFinInfo

{
    "tourName": "Общая проверка системы",
    "arrivalDate": "05.04.2022",
    "touristCount": 50,
    "payed": "350400 RUB",
    "services": [{
            "serviceType": "Авиаперелет",
            "serviceName": "А_П::Варшава/Канкун/3G5656, WAW-VIE, 05:50-08:50/C Бизнес класс",
            "serviceTouristCount": 50,
            "partner": "Партнер",
            "netto": "100000,00 RUB",
            "brutto": "120000,00RUB"
        }, 
            "serviceType": "Отель/Круиз",
            "serviceName": "HOTEL::Канкун/Sheraton-1*,7 ночей/Double(Standart),2 взр./AI Шведский стол",
            "serviceTouristCount": 50,
            "partner": "Партнер",
            "netto": "200000,00 RUB",
            "brutto": "230000,00 RUB"
        }, 
            "serviceType": "Авиаперелет",
            "serviceName": "А_П::Канкун/Варшава/AF3444, VIE-WAW, 15:50-18:50/C Бизнес класс",
            "serviceTouristCount": 50,
            "partner": "Партнер",
            "netto": "0,00 RUB",
            "brutto": "0,00 RUB"
        }
    ]
}


Информация по туристу, выводимая по ключу туриста (SelectTouristInfoByKey)

Метод возвращает детальную информацию по туристу, выводимую по ключу туриста.

  • Формат запроса:
    • GET .../PaymentService/SelectTouristInfoByKey?
  • Принимаемые параметры (* – обязательный):
    • key * – ключ туриста
  • Возвращаемый результат:
    • key – ключ туриста
    • isMain – признак главного туриста
    • ageType – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
    • sex – пол туриста (0 – мужской, 1 – женский)
    • firstName – имя (лат)
    • lastName – фамилия (лат)
    • patronymic – отчество (лат)
    • firstNameRus – имя (рус)
    • lastNameRus – фамилия (рус)
    • patronymicRus – отчество (рус)
    • phone – телефон
    • email – e-mael
    • birthDay – дата рождения
    • birthPlace – место рождения
    • citizen – гражданство
    • internationalPassportSer – серия загранпаспорта
    • internationalPassportNum – номер загранпаспорта
    • internationalPassportDate – дата выдачи загранпаспорта
    • internationalPassportDateEnd – дата окончания загранпаспорта
    • internationalPassportByWhom – кем выдан загранпаспорт
    • nationalPassportSer – серия паспорта
    • nationalPassportNum – номер паспорта
    • nationalPassportDate – дата выдачи паспорта
    • nationalPassportByWhom – кем выдан паспорт
    • postIndex – индекс
    • city – город
    • street – улица
    • build – дом
    • flat – квартира
    • citizenID – ID туриста
Пример

Вызов метода SelectTouristInfoByKey

GET http://localhost:5010/PaymentService/SelectTouristInfoByKey?key=111125

Возвращаемый результат метода SelectTouristInfoByKey

{
    "key": 111125,
    "isMain": 1,
    "ageType": 0,
    "sex": 0,
    "firstName": "Ivan",
    "lastName": "Ivanov",
    "patronymic": "Ivanovich",
    "firstNameRus": "Иван",
    "lastNameRus": "Иванов",
    "patronymicRus": "Иванович",
    "phone": "+79991234567",
    "email": "ivan@mail.ru",
    "birthDay": "01.02.1980",
    "birthPlace": "Москва",
    "citizen": "Россия",
    "internationalPassportSer": "1111",
    "internationalPassportNum": "222222",
    "internationalPassportDate": "01.05.2022",
    "internationalPassportDateEnd": "01.05.2027",
    "internationalPassportByWhom": "Отделом УФМС год. Москвы",
    "nationalPassportSer": "11",
    "nationalPassportNum": "6665544",
    "nationalPassportDate": "01.05.2030",
    "nationalPassportByWhom": "УФМС 52",
    "postIndex": "151515",
    "city": "Москва",
    "street": "Ленина",
    "build": "5",
    "flat": "2",
    "citizenID": "123456789"
}


Информация по туристам, выводимая по номеру путевки (SelectTouristsByDogovorKey)

Метод возвращает детальную информацию по туристам, выводимая по номеру путевки.

  • Формат запроса:
    • GET .../PaymentService/SelectTouristsByDogovorKey?
  • Принимаемые параметры (* – обязательный):
    • dgCode * – номер путевки
  • Возвращаемый результат:
    • key – ключ туриста
    • isMain – признак главного туриста
    • ageType – тип туриста (0 – взрослый, 1 – ребенок, 2 – инфант)
    • sex – пол туриста (0 – мужской, 1 – женский)
    • firstName – имя (лат)
    • lastName – фамилия (лат)
    • patronymic – отчество (лат)
    • firstNameRus – имя (рус)
    • lastNameRus – фамилия (рус)
    • patronymicRus – отчество (рус)
    • phone – телефон
    • email – e-mael
    • birthDay – дата рождения
    • birthPlace – место рождения
    • citizen – гражданство
    • internationalPassportSer – серия загранпаспорта
    • internationalPassportNum – номер загранпаспорта
    • internationalPassportDate – дата выдачи загранпаспорта
    • internationalPassportDateEnd – дата окончания загранпаспорта
    • internationalPassportByWhom – кем выдан загранпаспорт
    • nationalPassportSer – серия паспорта
    • nationalPassportNum – номер паспорта
    • nationalPassportDate – дата выдачи паспорта
    • nationalPassportByWhom – кем выдан паспорт
    • postIndex – индекс
    • city – город
    • street – улица
    • build – дом
    • flat – квартира
    • citizenID – ID туриста
Пример

Вызов метода SelectTouristsByDogovorKey

GET http://localhost:5010/PaymentService/SelectTouristsByDogovorKey?dgCode=AU20050005

Возвращаемый результат метода SelectTouristsByDogovorKey

{
    "key": 111125,
    "isMain": 1,
    "ageType": 0,
    "sex": 0,
    "firstName": "Ivan",
    "lastName": "Ivanov",
    "patronymic": "Ivanovich",
    "firstNameRus": "Иван",
    "lastNameRus": "Иванов",
    "patronymicRus": "Иванович",
    "phone": "+79991234567",
    "email": "ivan@mail.ru",
    "birthDay": "01.02.1980",
    "birthPlace": "Москва",
    "citizen": "Россия",
    "internationalPassportSer": "1111",
    "internationalPassportNum": "222222",
    "internationalPassportDate": "01.05.2022",
    "internationalPassportDateEnd": "01.05.2027",
    "internationalPassportByWhom": "Отделом УФМС год. Москвы",
    "nationalPassportSer": "11",
    "nationalPassportNum": "6665544",
    "nationalPassportDate": "01.05.2030",
    "nationalPassportByWhom": "УФМС 52",
    "postIndex": "151515",
    "city": "Москва",
    "street": "Ленина",
    "build": "5",
    "flat": "2",
    "citizenID": "123456789"
}


Информация по путевкам за период (SelectDogovorsInPeriod)

Метод возвращает детальную информацию по путевкам за период.

  • Формат запроса:
    • GET .../PaymentService/SelectDogovorsInPeriod?
  • Принимаемые параметры (* – обязательный):
    • beginDate * – дата начала отбора
    • endDate * – дата окончания отбора
    • selectionType – тип дополнительного отбора
    • additionalSelection – значение дополнительного отбора

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

  • 1 – поиск по коду путевки. В качестве четвертого параметра передается код путевки (или его часть). Поиск производится методом LIKE. В отбор попадут все путевки с датой создания в заданном периоду, у которых код путевки содержит строку, указанную в четвертом параметре
  • 2 – поиск производится по ФИО главного туриста. При этом используется следующий алгоритм: берется строка: (Фамилия + " " + Имя + " " + Отчество) и в этой строке ищется строка, переданная в четвертом параметре
  • 3 – поиск по названию партнера. Поиск производится методом LIKE
  • 4 – поиск по ИНН партнера. Поиск производится методом LIKE
  • 5 – поиск по ключу статуса путевки
  • 6 – поиск по ключу путевки
  • 7 – отбор путевок, по которым были сделаны детализации платежей за указанный период (без удаленных платежей). В качестве четвертого параметра можно указать список ключей типов платежей, разделенных знаком ";". Тогда в отборе будут участвовать платежи только с указанным типом. Отбор производится по датам СОЗДАНИЯ платежа.
  • 8 – отбор путевок по ключу тура (tourProgramsId)
  • 9 – отбор путевок по диапазону дат тура (заезда), в этом случае четвертый параметр не заполняется
  • 10 – аналогично варианту 7, только отбор производится по датам ПЛАТЕЖА.

Во всех вариантах кроме 7, 9, 10 в качестве дат используются даты СОЗДАНИЯ ПУТЕВКИ.

  • Возвращаемый результат:
    • dogovorKey – ключ путевки
    • dogovorCode – номер путевки
    • createDate – дата создания путевки
    • createTime – время создания путевки
    • externalNumberPartnerDogovor – номер путевки партнера (поле из Работы менеджеров)
    • price – стоимость путевки
    • payed – оплачено
    • isoCode – ISO-код валюты путевки
    • touristId – ключ главного туриста по путевке
    • lastName – фамилия главного туриста (лат)
    • firstName – имя главного туриста (лат)
    • patronymic – отчество главного туриста (лат)
    • lastNameRus – фамилия главного туриста (рус)
    • firstNameRus – имя главного туриста (рус)
    • patronymicRus – отчество главного туриста (рус)
    • sex – пол туриста (0 – муж, 1 – жен)
    • partnerKey – ключ партнера покупателя путевки
    • partnerCode – код партнера
    • partnerName – название партнера
    • discountSum – сумма скидки по путевке
    • priceNationalRate – стоимость путевки в национальной валюте
    • payedNationalRate – оплачено по путевке в национальной валюте
    • discountNationalRate – сумма скидки по путевке в национальной валюте
    • filialKey – ключ филиала
    • orderStatusCode – ключ статуса путевки
    • orderStatusName – название статуса путевки
    • tourDate – дата заезда
    • daysCount – количество дней по путевке
    • touristCount – количество туристов по путевке
    • countryId – ключ страны
    • countryName – название страны
    • cityId – ключ города
    • cityName – название города
    • tourProgramsId – ключ тура
    • dogovorPartnerKey – ключ договора партнера по путевке
Пример

Вызов метода SelectDogovorsInPeriod

GET http://localhost:5010/PaymentService/SelectDogovorsInPeriod?beginDate=05.01.2022&endDate=31.05.2022&selectionType=1&additionalSelection=AU

Возвращаемый результат метода SelectDogovorsInPeriod

[{
        "dogovorKey": 48690,
        "dogovorCode": "AU2006000C",
        "createDate": "12.05.2022",
        "createTime": "11:51:18",
        "externalNumberPartnerDogovor": null,
        "price": 1200,
        "payed": 600,
        "isoCode": "USD",
        "touristId": 111148,
        "lastName": "Ivanov",
        "firstName": "Ivan",
        "patronymic": "Ivanovich",
        "lastNameRus": "Иванов",
        "firstNameRus": "Иван",
        "patronymicRus": "Иванович",
        "sex": 0,
        "partnerKey": 12667,
        "partnerCode": "658",
        "partnerName": "Партнер-покупатель",
        "discountSum": 10,
        "priceNationalRate": 120000,
        "payedNationalRate": 60000,
        "discountNationalRate": 10000,
        "filialKey": 11587,
        "orderStatusCode": 3,
        "orderStatusName": "Wait-лист",
        "tourDate": "20.06.2022",
        "daysCount": 8,
        "touristCount": 2,
        "countryId": 90,
        "countryName": "Австрия",
        "cityId": 35,
        "cityName": "Вена",
        "tourProgramsId": 100011071,
        "dogovorPartnerKey": 505
    }
]


Краткая информация по путевкам за период (SelectListDogovorsInPeriod)

Метод возвращает краткую информацию по путевкам за период.

  • Формат запроса:
    • GET .../PaymentService/SelectListDogovorsInPeriod?
  • Принимаемые параметры (* – обязательный):
    • beginDate * – дата начала отбора
    • endDate * – дата окончания отбора
    • selectionType * – тип отбора. Может принимать значения:

0 - по дате создания заявки;
1 - по дате начала тура (заезда) по заявке;
2 - по дате окончания тура (возврата) по заявке;
3 - по дате наличия изменений по заявке (тут ищем через таблицу history).

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

  • Возвращаемый результат:
    • dogovorKey – ключ путевки (ключ из столбца DG_Key таблицы tbl_Dogovor)
    • dogovorCode – номер путевки (ключ из столбца DG_CODE таблицы tbl_Dogovor)
    • partnerKey – ключ партнера покупателя путевки (ключ из столбца US_Key таблицы UserList)
    • ownerKey – ключ ведущего менеджера по заявке (ключ из столбца US_FullName таблицы UserList)
Пример

Вызов метода SelectListDogovorsinPeriod

GET http://localhost:5010/PaymentService/SelectListDogovorsinPeriod?beginDate=06.02.2024&endDate=07.02.2024&selectionType=3

Возвращаемый результат метода SelectListDogovorsinPeriod

[
    {
        "dogovorKey": 51869,
        "dogovorCode": "NL16010003",
        "partnerKey": 12667
        "ownerKey":106,
        "ownerName":"Mt15 1."
    }
]


Расширенная информация по путевкам (GetReservationInfo)

Метод возвращает расширенную информацию по путевкам: дата создания, дата заезда, статус заявки, страна назначения, отель, брутто, нетто, прибыль, сумма платежей по путевке.

  • Формат запроса:
    • GET .../PaymentService/GetReservationInfo?
  • Принимаемые параметры (* – обязательный):
    • dgCode * – номер путевки (ключ из столбца DG_CODE таблицы tbl_Dogovor)
  • Возвращаемый результат:
    • createDate – дата создания путевки (ключ из столбца DG_CRDATE таблицы tbl_Dogovor)
    • tourDate – дата заезда (ключ из столбца DG_TURDATE таблицы tbl_Dogovor)
    • orderStatusCode – ключ статуса путевки (ключ из столбца DG_SOR_CODE таблицы tbl_Dogovor)
    • orderStatusName – название статуса путевки (ключ из столбца OS_NAME_RUS таблицы Order_Status)
    • countryId – ключ страны назначения (ключ из столбца CN_KEY таблицы tbl_Country)
    • countryName – название страны назначения (ключ из столбца CN_NAME таблицы tbl_Country)
    • hotelsName – отель из путевки. Если отелей несколько, выводится список уникальных отелей в формате "Название + категория отеля". Если услуги "Отель" в путевке нет, возвращается пустое значение (ключ из столбца HD_NAME таблицы HotelDictionary)
    • planNettoRub – нетто по путевке в рублях: вычисляется как нетто по путевке в валюте тура умноженное на курс, если валюта тура отлична от национальной (ключ из столбца DL_COST таблицы tbl_DogovorList * курс). При наличии оплат по путевке курс берётся как средневзвешенный: отношение оплаты в национальной валюте к оплате в валюте тура (ключ из столбца DG_NATIONALCURRENCYPAYED таблицы tbl_Dogovor / ключ из столбца DG_PAYED таблицы tbl_Dogovor). Если оплаты по путевке отсутствуют или сумма оплат/возвратов = 0, в качестве курса берётся курс на дату оформления путевки.
    • planBruttoRub – брутто по путевке в рублях: вычисляется как сумма к оплате по путевке в валюте тура умноженная на курс, если валюта тура отлична от национальной (ключ из столбца DG_PRICE таблицы tbl_Dogovor * курс). При наличии оплат по путевке курс берётся как средневзвешенный: отношение оплаты в национальной валюте к оплате в валюте тура (ключ из столбца DG_NATIONALCURRENCYPAYED таблицы tbl_Dogovor / ключ из столбца DG_PAYED таблицы tbl_Dogovor). Если оплаты по путевке отсутствуют или сумма оплат/возвратов = 0, в качестве курса берётся курс на дату оформления путевки.
    • planProfitRub – планируемая прибыль по путевке в рублях (PlanProfitRub = PlanBruttoRub - PlanNettoRub)
    • paymentRub – сумма платежей по путевке в рублях (ключ из столбца DG_NATIONALCURRENCYPAYED таблицы tbl_Dogovor).
    • profitRub – прибыль по путевке в рублях (ProfitRub = PaymentRub - PlanNettoRub)
Пример

Вызов метода GetReservationInfo

GET http://localhost:5010/PaymentService/GetReservationInfo?dgCode=TU06010001

Возвращаемый результат метода GetReservationInfo

[
  {
    "createDate":"2023-12-26T14:51:36.637",
    "tourDate":"2024-01-06T00:00:00",
    "orderStatusCode":37,
    "orderStatusName":"Wait-лист",
    "countryId":97,
    "countryName":"Тунис",
    "hotelsName":["El Ksar 1*++","El Mouradi Palace 1*++"],
    "planNettoRub":170557.59,
    "planBruttoRub":206603.61,
    "profitRub":30227.30,
    "planProfitRub":36046.02,
    "paymentRub":200784.89  }
]


Информация по партнеру по ключу партнера (SelectPartnerInfoByKey)

Метод возвращает детальную информацию по партнеру по ключу партнера.

  • Формат запроса:
    • GET .../PaymentService/SelectPartnerInfoByKey?
  • Принимаемые параметры (* – обязательный):
    • key * – ключ партнера
  • Возвращаемый результат:
    • partnerKey – ключ партнера (ключ из столбца PR_KEY таблицы tbl_Partners)
    • partnerCode – код партнера (ключ из столбца PR_COD таблицы tbl_Partners)
    • name – название партнера (ключ из столбца PR_NAME таблицы tbl_Partners)
    • fullName – полное название партнера (ключ из столбца PR_FULLNAME таблицы tbl_Partners)
    • phones – телефоны (ключ из столбца PR_PHONES таблицы tbl_Partners)
    • email – e-mail (ключ из столбца PR_EMAIL таблицы tbl_Partners)
    • physicalAddress – физический адрес (ключ из столбца PR_ADDRESS таблицы tbl_Partners)
    • legalAddress – юридический адрес (ключ из столбца PR_LEGALADDRESS таблицы tbl_Partners)
    • inn – ИНН (ключ из столбца PR_INN таблицы tbl_Partners)
    • kpp – КПП (ключ из столбца PR_KPP таблицы tbl_Partners)
    • okpo – код по ОКПО (ключ из столбца PR_CODEOKPO таблицы tbl_Partners)
    • okonh – код по ОКОНХ (ключ из столбца PR_CODEOKONH таблицы tbl_Partners)
    • cityKey – ключ города (ключ из столбца PR_CTKEY таблицы tbl_Partners)
    • cityName – название города (ключ из столбца PR_CITY таблицы tbl_Partners)
    • prOwnerKey – ключ ведущего менеджера по партнёру (ключ из столбца PR_OWNER таблицы tbl_Partners)
    • prOwnerName – имя ведущего менеджера по партнёру (ключ из столбца US_FullName таблицы UserList, где US_Key таблицы UserList = PR_OWNER таблицы tbl_Partners)


Пример

Вызов метода SelectPartnerInfoByKey

GET http://localhost:5010/PaymentService/SelectPartnerInfoByKey?key=12667

Возвращаемый результат метода SelectPartnerInfoByKey

[{
    "partnerKey": 12667,
    "partnerCode": "DOV",
    "name": "Megatec",
    "fullName": "ООО Megatec",
    "phones": [
        "+7(495)111-22-33"
    ],
    "email": "info@megatec.ru",
    "physicalAddress": "Москва, ул. Ленина, д. 1",
    "legalAddress": "Москва, ул. Ленина, д. 1",
    "inn": "123456789012",
    "kpp": "1231231231",
    "okpo": "54846546546584",
    "okonh": "65468465165466",
    "cityKey": 5458,
    "cityName": "Москва"
    "prOwnerKey": 148,
    "prOwnerName": "Test"
}
]


Информация о партнерах с признаком "Даёт клиентов" по дате создания и/или изменения партнера (GetPartnerList)

Метод возвращает детальную информацию о партнерах по дате создания и/или изменения партнера.

  • Формат запроса:
    • GET .../PaymentService/GetPartnerList?
  • Принимаемые параметры (* – обязательный):
    • createDate * – дата создания партнёра (ключ из столбца PR_CreateDate таблицы tbl_Partners)
    • updateDate * – дата изменения партнёра (ключ из столбца PR_UpdateDate таблицы tbl_Partners)
  • Возвращаемый результат:
    • partnerKey – ключ партнера (ключ из столбца PR_KEY таблицы tbl_Partners)
    • partnerCode – код партнера (ключ из столбца PR_CODE таблицы tbl_Partners)
    • name – название партнера (ключ из столбца PR_NAME таблицы tbl_Partners)
Пример

Вызов метода GetPartnerList

GET http://localhost:5010/PaymentService/GetPartnerList?createDate=18.09.2023&updateDate=20.09.2024

Возвращаемый результат метода GetPartnerList

[
  {
    "partnerKey":15264,
    "partnerCode":null,
    "name":"PartnerTest6"
  }
]


Информация по детализации платежей за период (SelectPaymentsDetailsInPeriod)

Метод возвращает детальную информацию по платежам, созданным в экране Касса (таблица PaymentDetails) за период.

  • Формат запроса:
    • GET .../PaymentService/SelectPaymentsDetailsInPeriod?
  • Принимаемые параметры (* – обязательный):
    • beginDate * – дата начала отбора (по дате платежа включительно)
    • endDate * – дата конца отбора
    • selectionType * – ключ типа дополнительного отбора. Может принимать значения:
      • 0 – все платежи. В этом случае параметр "additionalSelection" не передается
      • 1 - отбор по внутреннему ключу договора (путевки). Передается один ключ (таблица DogovorList, поле DL_DgKey)
      • 2 - отбор по внутреннему ключу платежа из таблицы платежей. Передается один ключ (таблица Payments, поле PM_id)
      • 3 - отбор по внутреннему ключу таблицы распределений платежей. Передается один ключ (таблица PaymentDetails, поле PM_id)
      • 4 - отбор ключу таблицы платежей. Позволять отобрать детализации по ключу создателя ПЛАТЕЖА. (таблица Payments, поле PD_CreatorKey)
      • 5 - отбор ключу. Позволять отобрать детализации по ключу создателя ДЕТАЛИЗАЦИИ платежа (таблица DogovorList, поле DL_Owner)
    • additionalSelection * – ключ дополнительного отбора (т.е. например если selectionType=1, то передаем ключ путевки)
    • isShowDeleted * – показывать ли удаленные платежи. Если установлен в "0", то удаленные платежи не показываются, в противном случае отображаются все платежи.
  • Возвращаемый результат:
    • key – ключ детализации платежа
    • paymentKey – ключ платежа
    • paymentNumber – внутренний номер платежа
    • paymentDocumentNumber – номер документа платежа
    • paymentDate – дата платежа
    • paymentTime – время платежа
    • paymentDocumentTypeName – тип платежа
    • paymentOperationKey – ключ типа операции
    • paymentOperationName – тип операции платежа
    • detailSumNationalRate – сумма детализации в национальной валюте
    • detailSum – сумма детализации в валюте платежа
    • sumDogovorRate – сумма детализации в валюте договора
    • isoCode – код валюты платежа
    • reason – основание платежа из детализации
    • isDeleted – удален ли платеж
    • paymentDetailSum – сумма платежа
    • paymentSumNationalRate – сумма платежа в национальной валюте
    • paymentSumDistributed – сумма распределенной части платежа
    • filialKey – внутренний ключ таблицы партнеров, определяет филиал, в котором сформирован платеж
    • isDebit – на приход или расход платеж
    • distributionCourse – курс распределения
    • paymentCreateDate – дата создания платежа
    • distributionDate – дата распределения
    • distributionCreateDate – дата создания распределения
    • dogovorKey – ключ договора. Определяет путевку, по которой было сделано распределение.
    • partnerKey – ключ партнера
    • userKeyCreatorPayment – ключ создателя платежа
    • userKeyCreatorDetailPayment – ключ создателя детализации платежа
    • paymentBy – от кого поступил платеж
Пример

Вызов метода SelectPaymentsDetailsInPeriod

GET http://localhost:5010/PaymentService/SelectPaymentsDetailsInPeriod?beginDate=01.06.2021&endDate=06.06.2022&selectionType=1&additionalSelection=48748&isShowDeleted=1

Возвращаемый результат метода SelectPaymentsDetailsInPeriod

[
    {
        "key": 3499,
        "paymentKey": 3516,
        "paymentNumber": 546,
        "paymentDocumentNumber": "ПКО 000546",
        "paymentDate": "03.06.2022",
        "paymentTime": "16:20:37",
        "paymentDocumentTypeName": 0,
        "paymentOperationKey": 1,
        "paymentOperationName": "Оплата за путевки (грн)",
        "detailSumNationalRate": 6000.0000,
        "detailSum": 6000.0000,
        "sumDogovorRate": 6000.0000,
        "isoCode": "RUB",
        "reason": "Оплата через систему Uniteller, путевка HO04060002",
        "isDeleted": null,
        "paymentDetailSum": 6000.0000,
        "paymentSumNationalRate": 6000.0000,
        "paymentSumDistributed": 6000.0000,
        "filialKey": 1,
        "isDebit": 1,
        "distributionCourse": 1.000000,
        "paymentCreateDate": "03.06.2022",
        "distributionDate": "03.06.2022",
        "distributionCreateDate": "03.06.2022",
        "dogovorKey": 48748,
        "partnerKey": 3516,
        "userKeyCreatorPayment": 97,
        "userKeyCreatorDetailPayment": 97,
        "paymentBy": null
    }
]


Выбор услуг по ключу путевки (SelectServicesByDogovorKey)

Метод возвращает информацию по услугам по ключу путевки.

  • Формат запроса:
    • GET .../PaymentService/SelectServicesByDogovorKey?
  • Принимаемые параметры (* – обязательный):
    • dGCode * – ключ путевки
  • Возвращаемый результат:
    • key – ключ услуги
    • dataBegin – дата начала действия услуги
    • dataEnd – дата окончания действия услуги
    • name – название услуги
    • serviceType – ключ вида услуги
    • serviceTypeName – название вида услуги
    • tourName – название тура
    • countryId – ключ страны
    • countryName – название страны
    • cityId – ключ города
    • cityName – название города
    • tourProgramsId – ключ программы тура
    • netto – нетто
    • realNetto – нетто поставщика
    • brutto – брутто
    • payed – оплата
    • discountSum – скидка
    • partnerKey – ключ партнера
    • code – код типа услуги по выбранной стране для связанных таблиц
    • subCode1 – ключ доп. описания 1
    • subCode2 – ключ доп. описания 2
Пример

Вызов метода SelectServicesByDogovorKey

GET http://localhost:5010/PaymentService/SelectServicesByDogovorKey?DGCode=IS14110005

Возвращаемый результат метода SelectServicesByDogovorKey

[
    {
        "key": 240125,
        "dataBegin": "14.11.2022",
        "dataEnd": "16.11.2022",
        "name": "HOTEL::Эйлат/Isrotel Hotel Managament-2*,3 ночи/-(-),2 Adult/BB3 Buffet Breakfast",
        "serviceType": 3,
        "serviceTypeName": "Отель/Круиз",
        "tourName": " Израиль 3",
        "countryId": 729,
        "countryName": "Израиль",
        "cityId": 194,
        "cityName": "Эйлат",
        "tourProgramsId": 100011127,
        "netto": 36.1409,
        "realNetto": 34.0000,
        "brutto": 35.4200,
        "payed": 35.4500,
        "discountSum": 0.7300,
        "partnerKey": 13093,
        "code": 16698,
        "subCode1": 1086069,
        "subCode2": 41
    }
]


Выбор детализации счетов партнеров за период (SelectBillsDetailsInPeriod)

Метод возвращает детализацию счетов партнеров за период.

  • Формат запроса:
    • GET .../PaymentService/SelectBillsDetailsInPeriod?
  • Принимаемые параметры (* – обязательный):
    • beginDate * – дата начала отбора
    • endDate * – дата окончания отбора
    • selectionType – тип дополнительного отбора
    • additionalSelection – значение дополнительного отбора

Первые два параметра задают период отбора. Третий параметр задает тип дополнительного отбора. Четвертый – строку дополнительного отбора:

  • 1 – отбор по ключу счета партнера (BL_KEY)
  • 2 – отбор по номеру счета партнера, по вхождению 'LIKE' (BL_NUMBER)
  • 3 – отбор по ключу путевки (BD_DGKEY)
  • 4 – отбор по коду путевки, по вхождению 'LIKE' (BD_DGCOD)
  • 5 – отбор по ключу услуги (BD_DLKEY)
  • 6 – отбор по ключу партнера (BL_PRKEY)
  • Возвращаемый результат:
    • key – внутренний ключ таблицы распределения счетов партнеров (BD_ID)
    • billsKey – внутренний ключ таблицы счетов партнеров (BD_BLKEY из таблицы Bills)
    • dogovorKey – ключ путевки (BD_DGKEY)
    • dogovorCode – номер путевки (BD_DGCOD)
    • serviceType – ключ типа услуги (BD_SVKEY)
    • serviceTypeName – название типа услуги (SV_NAME)
    • serviceKey – ключ услуги по путевке (BD_DLKEY)
    • serviceName – название услуги путевки (DL_NAME)
    • dogovorSum – сумма (DB_SUMMATODOG)
    • datelastUpdate – дата изменения записи (BL_LastUpdate)
    • type – тип счета партнера (BL_TYPE)
    • number – номер счета партнера (BL_NUMBER)
    • date – дата счета партнера (BL_DATE)
    • billsIsoCode – код валюты счета партнера (BL_PRRATE)
    • sum – сумма счета партнера (BL_SUMMA)
    • isoCode – код валюты платежа (BL_MYRATE)
    • payed – оплачено (BL_PAYED)
    • remark – заметка (BL_REMARK)
    • entryDate – дата занесения (BL_ENTRYDATE)
    • maxDate – крайний срок оплаты (BL_MAXDATE)
    • partnerKey – ключ партнера (BL_PRKEY)
    • partnerName – название партнера (PR_NAME)
    • inn – ИНН партнера (PR_INN)
Пример

Вызов метода SelectBillsDetailsInPeriod

GET http://localhost:5010/PaymentService/SelectBillsDetailsInPeriod?beginDate=01.01.2023&endDate=01.02.2023&selectionType=6&additionalSelection=12668

Возвращаемый результат метода SelectBillsDetailsInPeriod

[{
        "key": 1263,
        "billsKey": 191,
        "dogovorKey": 46220,
        "dogovorCode": "AU2201000I",
        "serviceType": 1,
        "serviceTypeName": "Авиаперелет",
        "serviceKey": 224282,
        "serviceName": А_П::Вена/Москва/7U333, VIE1-DME, 11:00-17:00/Y Экономический класс,
        "dogovorSum": 150,
        "lastUpdate": "18.01.2023 10:57:47",
        "type": 0,
        "number": "654",
        "date": "10.01.2023",
        "billsIsoCode": "$",
        "sum": 150,
        "isoCode": "$",
        "payed": 150,
        "remark": "AU2201000I",
        "entryDate": "10.01.2023",
        "maxDate": "30.01.2023",
        "partnerKey": 12668,
        "partnerName": "5656",
        "inn": "7707083153"
    }
]


Выбор списка договоров из истории (SelectDogovorsInHistory)

Метод возвращает список измененных договоров на основе информации в таблицах истории.

Необходимо передавать только актуальное значение ключа, иначе будет отбираться большой объем данных продолжительное время. 
  • Формат запроса:
    • GET .../PaymentService/SelectDogovorsInHistory?
  • Принимаемые параметры (* – обязательный):
    • key * – внутренний ключ таблицы истории, с которого начинается отбор договоров (HI_ID из таблицы History)
    • returnType * – тип возвращаемых значений (1 – будут возвращаться ключи договоров, 2 – коды договоров)
  • Возвращаемый результат:
    • keys – ключ или код договора (HI_DGKEY или HI_DGCODE из таблицы History в зависимости от того какое значение запрошено в параметре "returnType")
    • maxKey – максимальное значение ключа таблицы истории, которая участвовала в обработке информации по путевке (HI_ID из таблицы History)
Пример

Вызов метода SelectDogovorsInHistory

GET http://localhost:5010/PaymentService/SelectDogovorsInHistory?key=-2146368987&returnType=2

Возвращаемый результат метода SelectDogovorsInHistory

{
    "keys": [
        "TU01070002",
        "AU03030007",
        "TU08070002",
        "TU01070003",
        "AU31030008",
        "TU23040001",
        "TU23040002",
        "IS27030001",
        "TU23040003",
        "AU2802000A",
        "AU12040005",
        "AU2802000E",
        "AU11040001",
        "AU07040004",
        "AU04070006",
        "AU06010003",
        "AU06010004",
        "AU06060007",
        "AU0908000A",
        "AU11110002",
        "AU12040002",
        "AU12040003",
        "AU12040004",
        "AU12040006",
        "AU15060002",
        "AU23060004",
        "AU23110004",
        "AU24060011"
    ],
    "maxKey": -2146366385
}


Информация по типам состояний путевок (GetDogovorConditionsTypesList)

Метод возвращает информацию по типам состояний путевок из таблицы Order_Status базы данных.

  • Формат запроса:
    • GET .../PaymentService/GetDogovorConditionsTypesList
  • Принимаемые параметры отсутствуют.
  • Возвращаемый результат:
    • key – ключ статуса (ключ из столбца OS_CODE таблицы Order_Status)
    • name – название статуса (ключ из столбца OS_NAME_RUS таблицы Order_Status)
    • global – глобальный ключ статуса (ключ из столбца OS_GLOBAL таблицы Order_Status)
Пример

Вызов метода GetDogovorConditionsTypesList

GET http://localhost:5010/PaymentService/GetDogovorConditionsTypesList

Возвращаемый результат метода GetDogovorConditionsTypesList

[
    {
        "key": 0,
        "name": "В работе",
        "global": 0
    },
    {
        "key": 1,
        "name": "Не определен",
        "global": 1
    },
    {
        "key": 2,
        "name": "Аннулирован",
        "global": 2
    },
    {
        "key": 3,
        "name": "Wait-лист",
        "global": 3
    },
    {
        "key": 4,
        "name": "Не подтвержден",
        "global": 4
    },
    {
        "key": 5,
        "name": "Wait-лист+Не подтв.",
        "global": 5
    },
    {
        "key": 7,
        "name": "Ok",
        "global": 7
    },

]


Информация по типам свойств партнеров (GetPartnerPropertyTypesList)

Метод возвращает информацию по типам свойств партнеров.

  • Формат запроса:
    • GET .../PaymentService/GetPartnerPropertyTypesList?selectionType=3&additionalSelection=10760
  • Принимаемые параметры (* – обязательный):
    • selectionType * – тип дополнительного отбора (1 - отбор производится по внутреннему ключу таблицы свойств партнеров, 2 - отбор производится по названию свойства партнера, 3 - отбор производится по внутреннему ключу таблицы партнеров, позволяет вывести список свойств для конкретного партнера.)
    • additionalSelection * – тип возвращаемых значений (если selectionType=1, то указывается ключ свойства партнеров из столбца PT_Id таблицы PrtTypes; если selectionType=2, то указывается название свойства партнеров из столбца PT_Name таблицы PrtTypes; если selectionType=3, то указывается ключ партнера из столбца PR_KEY таблицы tbl_Partners)
  • Возвращаемый результат:

если был отправлен selectionType=1 или selectionType=2

    • key – ключ свойства партнера (ключ из столбца PT_Id таблицы PrtTypes)
    • name – название свойства партнера (ключ из столбца PT_Name таблицы PrtTypes)

если был отправлен selectionType=3

    • key – ключ свойства партнера (ключ из столбца PTP_PTId таблицы PrtTypesToPartners по ключу партнера из параметр additionalSelection в запросе)
    • name – название свойства партнера (название из столбца PT_Name таблицы PrtTypesToPartners по ключу партнера из параметр additionalSelection в запросе)
Пример

Вызов метода GetPartnerPropertyTypesList

GET http://localhost:5010/PaymentService/GetPartnerPropertyTypesList?selectionType=3&additionalSelection=10760

Возвращаемый результат метода GetPartnerPropertyTypesList

[
    {
        "key": 4,
        "name": "Предоставляет сметные услуги"
    },
    {
        "key": 6,
        "name": "Авиаперевозчик"
    },
    {
        "key": 7,
        "name": "Нерезидент РФ"
    },
    {
        "key": 8,
        "name": "Финансовое обеспечение"
    },
    {
        "key": 9,
        "name": "Выкупает блоки мест"
    },
    {
        "key": 14,
        "name": "Обмен MIS"
    },
    {
        "key": 1001,
        "name": "Проверить контакты"
    },
    {
        "key": 1002,
        "name": "Запросы (по запросам)"
    }
]



Информация по счетам за период (SelectInvoicesInPeriod)

Метод возвращает информацию по счетам за период. Отображаются счета из таблицы Accounts, у которых в столбце AC_ReportNumber=4020, то есть те, по которым сформирован Счет.

  • Формат запроса:
    • GET .../PaymentService/SelectInvoicesInPeriod?dateBegin=01.02.2022&dateEnd=21.12.2024&selectionType=5&additionalSelection=120
  • Принимаемые параметры (* – обязательный):
    • dateBegin * – дата начала периода отбора
    • dateEnd * – дата окончания периода отбора
    • selectionType – тип дополнительного отбора (если не отправляем, то выводятся все счета в заданном периоде)
      • 1 – отбор производится по номеру счета (указывается часть номера счета или весь счет, используется запрос LIKE)
      • 2 – отбор производится по коду путевки
      • 3 – отбор производится по списку ключей таблицы типов параметров партнера, список передается в формате строки, элементы которой разделены знаком ";" (используется запрос IN). Для получения таблицы типов параметров партеров можно использовать метод GetPartnerPropertyTypesList
      • 4 – отбор производится по списку ключей таблицы состояний путевок, список передается в формате строки, элементы которой разделены знаком ";" (используется запрос IN). Для получения таблицы состояний путевок можно использовать метод GetDogovorConditionsTypesList
      • 5 – отбор производится по номеру счета (указывается конкретный номер счета, в отличие от варианта 1)
      • Любое число, кроме вышеуказанных (0,6...) или отсутствие параметра – выводятся все счета в заданном периоде
    • additionalSelection – строка дополнительного отбора (если selectionType=1, то указывается часть номера счета из столбца AC_NUMBER таблицы Accounts; если selectionType=2, то указывается код путевки из столбца AC_DGCOD таблицы Accounts; если selectionType=3, то указывается ключ типа параметров партнера из столбца PT_Id таблицы PrtTypes; если selectionType=4, то указывается ключ состояний путевок из столбца OS_CODE таблицы Order_Status; если selectionType=5, то указывается номер счета из столбца AC_NUMBER таблицы Accounts)
  • Возвращаемый результат:
    • key – ключ счета (ключ из столбца AC_KEY таблицы Accounts)
    • number – номер счета (ключ из столбца AC_NUMBER таблицы Accounts)
    • dogovorCode – код договора, которому принадлежит счет (ключ из столбца AC_DGCODE таблицы Accounts)
    • date – дата счета (ключ из столбца AC_DATE таблицы Accounts)
    • dogovorKey – внутренний ключ таблицы договоров, определяет договор, которому принадлежит счет (ключ из столбца AC_DGKEY таблицы Accounts)
    • course – курс счета (ключ из столбца AC_COURSE таблицы Accounts)
    • sum – сумма счета (ключ из столбца AC_SUMUSD таблицы Accounts)
    • sumRub – сумма счета в рублях (ключ из столбца AC_SUMRUB таблицы Accounts)
    • dogovorSum – сумма договора (ключ из столбца DG_PRICE таблицы tbl_Dogovor)
    • dogovorPayed – сумма оплачено по договору (ключ из столбца DG_PAYED таблицы tbl_Dogovor)
    • partnerKey – внутренний ключ таблицы партнеров. Определяет партнера по договору (ключ из столбца DG_PARTNERKEY таблицы tbl_Dogovor)
    • partnerName – наименование партнера (ключ из столбца PR_KEY таблицы tbl_Partners)
    • dogovorStatusKey – ключ состояния договора (Если равен 2, то договор аннулирован) (ключ из столбца DG_SOR_CODE таблицы tbl_Dogovor)
    • discountSum – размер комиссии в путевке в валюте счета (ключ из столбца DG_DISCOUNTSUM таблицы tbl_Dogovor по курсу валют ключа из столбца AC_COURSE таблицы Accounts)
    • createDate – дата создания счета (ключ из столбца AC_CreateDate таблицы Accounts)
    • rateCode – код валюты счета (Не ключ валюты!)(ключ из столбца AC_RATE таблицы Accounts)
    • dogovorRateCode – код валюты договора (Не ключ договора!)
Пример

Вызов метода SelectInvoicesInPeriod

GET http://localhost:5010/PaymentService/SelectInvoicesInPeriod?dateBegin=01.07.2024&dateEnd=21.12.2024&selectionType=1&additionalSelection=5

Возвращаемый результат метода SelectInvoicesInPeriod

[
    {
        "key":648,
        "number":"175",
        "dogovorCode":"RU04070003",
        "date":"04.07.2024",
        "dogovorKey":52579,
        "course":87.9506,
        "sum":500,
        "sumRub":43975.3,
        "dogovorSum":450.0000,
        "dogovorPayed":0.0000,
        "partnerKey":12671,
        "partnerName":"Тест партнер",
        "dogovorStatusKey":1,
        "discountSum":4397.53,
        "createDate":"04.07.2024",
        "rateCode":"рб",
        "dogovorRateCode":"$"
    }
]


Информация по счетам по ключу путевки (SelectInvocesByDogovorKey)

Метод возвращает информацию по счетам по ключу путевки. Отображаются счета из таблицы Accounts, у которых в столбце AC_ReportNumber=4020, то есть те, по которым сформирован Счет.

  • Формат запроса:
    • GET .../PaymentService/SelectInvocesByDogovorKey?dogovorKey=45189
  • Принимаемые параметры (* – обязательный):
    • dogovorKey * – внутренний ключ таблицы договоров, определяет договор, которому принадлежит счет (ключ из столбца AC_DGKEY таблицы Accounts). Ключ путевки можно определить, например, используя метод SelectDogovorsInPeriod
  • Возвращаемый результат:
    • key – ключ счета (ключ из столбца AC_KEY таблицы Accounts)
    • number – номер счета (ключ из столбца AC_NUMBER таблицы Accounts)
    • dogovorCode – код договора, которому принадлежит счет (ключ из столбца AC_DGCODE таблицы Accounts)
    • date – дата счета (ключ из столбца AC_DATE таблицы Accounts)
    • dogovorKey – внутренний ключ таблицы договоров, определяет договор, которому принадлежит счет (ключ из столбца AC_DGKEY таблицы Accounts)
    • createDate – дата создания счета (ключ из столбца AC_CreateDate таблицы Accounts)
    • rateCode – код валюты счета (Не ключ валюты!)(ключ из столбца AC_RATE таблицы Accounts)
    • course – курс счета (ключ из столбца AC_COURSE таблицы Accounts)
    • sum – сумма счета (ключ из столбца AC_SUMUSD таблицы Accounts)
    • sumRub – сумма счета в рублях (ключ из столбца AC_SUMRUB таблицы Accounts)
    • dogovorRateCode – код валюты договора (Не ключ договора!)
    • dogovorSum – сумма договора (ключ из столбца DG_PRICE таблицы tbl_Dogovor)
    • dogovorPayed – сумма оплачено по договору (ключ из столбца DG_PAYED таблицы tbl_Dogovor)
    • partnerKey – внутренний ключ таблицы партнеров. Определяет партнера по договору (ключ из столбца DG_PARTNERKEY таблицы tbl_Dogovor)
    • partnerName – наименование партнера (ключ из столбца PR_KEY таблицы tbl_Partners)
    • dogovorStatusKey – ключ состояния договора (Если равен 2, то договор аннулирован) (ключ из столбца DG_SOR_CODE таблицы tbl_Dogovor)
Пример

Вызов метода SelectInvocesByDogovorKey

GET http://localhost:5010/PaymentService/SelectInvocesByDogovorKey?dogovorKey=45189

Возвращаемый результат метода SelectInvocesByDogovorKey

[
    {
        "key": 465,
        "number": "64",
        "dogovorCode": "AU25040005",
        "date": "23.04.2020",
        "dogovorKey": 45189,
        "createDate": "23.04.2020",
        "rateCode": "рб",
        "course": 83.6826,
        "sum": 104,
        "sumRub": 8702.990399999999,
        "dogovorRateCode": "EU",
        "dogovorSum": 104.0000,
        "dogovorPayed": 0.0000,
        "partnerKey": 11041,
        "partnerName": "Астра-Тур",
        "dogovorStatusKey": 3
    },
    {
        "key": 465,
        "number": "64",
        "dogovorCode": "AU25040005",
        "date": "23.04.2020",
        "dogovorKey": 45189,
        "createDate": "23.04.2020",
        "rateCode": "рб",
        "course": 83.6826,
        "sum": 104,
        "sumRub": 8702.990399999999,
        "dogovorRateCode": "EU",
        "dogovorSum": 104.0000,
        "dogovorPayed": 0.0000,
        "partnerKey": 11041,
        "partnerName": "Астра-Тур",
        "dogovorStatusKey": 3
    }
]


Информация по счетам по ключу путевки и ключу партнера (GetInvocesBydogovorCodePartnerKey)

Метод возвращает информацию по счетам по ключу путевки и ключу партнера. Отображаются счета из таблицы FIN_BILL (Мастер-Финанс). Обрабатывается только при работе с Мастер-Финанс.

  • Формат запроса:
    • GET .../PaymentService/GetInvocesBydogovorCodePartnerKey?dogovorCode=MA40414003&partnerKey=10760
  • Принимаемые параметры (* – обязательный):
    • dogovorCode * – номер путевки Мастер-Тур (ключ из столбца BI_COMMENT таблицы FIN_BILL)
    • partnerKey * – ключ партнера по услуге из путевки Мастер-Тур (ключ из столбца BI_PARTNERKEY таблицы FIN_BILL)
  • Возвращаемый результат:
    • bI_KEY – ключ счета (ключ из столбца BI_KEY таблицы FIN_BILL)
    • bI_COMMENT – номер путевки Мастер-тур (ключ из столбца BI_COMMENT таблицы FIN_BILL)
    • bI_PARTNERKEY – ключ партнера по услуге (ключ из столбца BI_PARTNERKEY таблицы FIN_BILL)
    • bI_DATE_INVOICE – дата счета (ключ из столбца BI_DATE_INVOICE таблицы FIN_BILL)
    • bI_OUTNUM – номер счета (ключ из столбца BI_OUTNUM таблицы FIN_BILL)
    • bI_SUM – сумма счета (ключ из столбца BI_SUM таблицы FIN_BILL)
    • bI_RATE – код валюты счета (ключ из столбца BI_RATE таблицы FIN_BILL)
    • bI_SUM_RUB – сумма счета в рублях (ключ из столбца BI_SUM_NATIONAL таблицы FIN_BILL)
Пример

Вызов метода GetInvocesBydogovorCodePartnerKey

GET http://localhost:5010/PaymentService/GetInvocesBydogovorCodePartnerKey?dogovorCode=MA40414003&partnerKey=10760

Возвращаемый результат метода GetInvocesBydogovorCodePartnerKey

    {
        "bI_KEY":75876,
        "bI_COMMENT":"MA40414003 (SABYRZHANOVA K.)",
        "bI_PARTNERKEY":10760,
        "bI_DATE_INVOICE":"2024-02-16T00:00:00",
        "bI_OUTNUM":"347405",
        "bI_SUM":8147.5500,
        "bI_RATE":"$",
        "bI_SUM_RUB":799030.2285
    }


Пометить платеж на удаление по ключу (SetPaymentDeletedByKey)

Метод помечает платеж из базы данных Мастер-Тур на удаление.
По логике работы МТ, при удалении платежа сначала производится удаление детализаций по этому платежу. Затем сам платеж помечается "как удаленный".

  • Формат запроса:
    • POST .../PaymentService/SetPaymentDeletedByKey?
  • Принимаемые параметры (* – обязательный):
    • paymentKey * – внутренний ключ таблицы платежей. Определяет платеж в таблице платежей (поле PD_PMId таблицы PaymentDetails или PM_Id таблицы Payments).
    • detailsType * – определяет вариант работы с детализациями платежей (1 – удаления детализаций платежа не будет, сам платеж пометится на удаление, 2 – производится удаление детализаций платежа, затем платеж помечается на удаление)
  • Возвращаемый результат:
    • ключ обработанной записи платежа (в случае ошибки выводится сообщение об ошибке)
Пример

Вызов метода SetPaymentDeletedByKey

POST http://localhost:5010/PaymentService/SetPaymentDeletedByKey?paymentKey=4148&detailsType=2 HTTP/1.1

Возвращаемый результат метода SetPaymentDeletedByKey

4148