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

Материал из Megatec
Перейти к: навигация, поиск
[досмотренная версия][непроверенная версия]
(Пометить платеж на удаление по ключу (SetPaymentDeletedByKey))
(Пометить платеж на удаление по ключу (SetPaymentDeletedByKey))
Строка 1124: Строка 1124:
 
** POST .../PaymentService/SetPaymentDeletedByKey?
 
** POST .../PaymentService/SetPaymentDeletedByKey?
  
* Принимаемые параметры ('''*''' – обязательный):
+
* Принимаемые параметры ('''*''' – обязательный):<br />
** '''paymentKey *''' – внутренний ключ таблицы платежей. Определяет платеж в таблице платежей.
+
** '''paymentKey *''' – внутренний ключ таблицы платежей. Определяет платеж в таблице платежей (поле PD_PMId таблицы PaymentDetails или PMId таблицы Payments).<br />
** '''detailsType *''' – определяет вариант работы с детализациями платежей (по логике работы МТ, при удалении платежа сначала производится удаление
+
** '''detailsType *''' – определяет вариант работы с детализациями платежей (по логике работы МТ, при удалении платежа сначала производится удаление детализаций по этому платежу. Затем сам платеж помечается "как удаленный").  
детализаций по этому платежу. Затем сам платеж помечается "как удаленный").  
 
 
Принимает значения:
 
Принимает значения:
 
1 – удаления детализаций платежа не будет, сам платеж пометится на удаление
 
1 – удаления детализаций платежа не будет, сам платеж пометится на удаление

Версия 13:31, 24 апреля 2023

Содержание

Введение

Начиная с релиза 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, детализация платежа будет создана)
  • Возвращаемый результат:
    • ключ платежа
Пример

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

POST http://localhost:5010/PaymentService/AddPayment?PaymentOperation=1&PaymentSum=100&CurrencyISOCode=RUB&DogovorCode=IS28070006&NoDetails=false? HTTP/1.1

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

4455


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

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

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

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

GET http://localhost:5010/PaymentService/TourList?dateFrom=2022.04.01&dateTo=2022.04.10

Возвращаемый результат метода 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 * – дата заезда по туру в формате yyyy.mm.dd
  • Возвращаемый результат:
    • tourName – название программы тура
    • arrivalDate – дата заезда по туру
    • touristCount – общее количество туристов по путевкам
    • payed – сумма оплат от покупателей по всем путевкам в национальной валюте
    • services – массив услуг (группировка по классу услуг)
      • serviceType – название класса услуги
      • serviceName – название услуги
      • serviceTouristCount – количество туристов, пользующихся услугой по всем путевкам
      • partner – поставщик по услуге
      • netto – стоимость нетто по всем путевкам по каждой услуге
      • brutto – стоимость брутто по всем путевкам по каждой услуге
Пример

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

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

Возвращаемый результат метода 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
    }
]


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

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

  • Формат запроса:
    • GET .../PaymentService/SelectPartnerInfoByKey?
  • Принимаемые параметры (* – обязательный):
    • key * – ключ партнера
  • Возвращаемый результат:
    • partnerKey – ключ партнера
    • partnerCode – код партнера
    • name – название партнера
    • fullName – полное название партнера
    • phones – телефоны
    • email – e-mail
    • physicalAddress – физический адрес
    • legalAddress – юридический адрес
    • inn – ИНН
    • kpp – КПП
    • okpo – код по ОКПО
    • okonh – код по ОКОНХ
    • cityKey – ключ города
    • cityName – название города
Пример

Вызов метода 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": "Москва"
}
]


Информация по детализации платежей за период (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)
    • 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)
Пример

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

GET http://localhost:5010/PaymentService/SelectInvoicesInPeriod?dateBegin=01.01.2012&dateEnd=21.12.2023&selectionType=5&additionalSelection=51

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

[
    {
        "key": 453,
        "number": "51",
        "dogovorCode": "AU09090018",
        "date": "13.09.2019",
        "dogovorKey": 43923,
        "createDate": "13.09.2019",
        "rateCode": "рб",
        "course": 71.8273,
        "sum": 200,
        "sumRub": 14365.46,
        "dogovorRateCode": "EU",
        "dogovorSum": 200.0000,
        "dogovorPayed": 0.0000,
        "partnerKey": 0,
        "partnerName": "Индивидуально",
        "dogovorStatusKey": 7
    }
]


Информация по счетам по ключу путевки (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
    }
]


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

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

  • Формат запроса:
    • POST .../PaymentService/SetPaymentDeletedByKey?
  • Принимаемые параметры (* – обязательный):
    • paymentKey * – внутренний ключ таблицы платежей. Определяет платеж в таблице платежей (поле PD_PMId таблицы PaymentDetails или PMId таблицы Payments).
    • detailsType * – определяет вариант работы с детализациями платежей (по логике работы МТ, при удалении платежа сначала производится удаление детализаций по этому платежу. Затем сам платеж помечается "как удаленный").

Принимает значения: 1 – удаления детализаций платежа не будет, сам платеж пометится на удаление 2 – производится удаление детализаций платежа, затем платеж помечается на удаление

  • Возвращаемый результат:
    • ключ обработанной записи платежа (в случае ошибки выводится сообщение об ошибке)
Пример

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

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

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

4148