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

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

Версия 15:01, 4 мая 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)

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

  • Формат запроса:
    • 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