API Reservation10: відмінності між версіями
Рядок 148: | Рядок 148: | ||
i. TimeFromArriveDate - long, Час до заїзду (сек.), діє в більший бік, тобто в разі різниці між датою заїзду та датою бронювання, більшої за це значення, оплата буде обов'язковою, якщо меншою - ні. | i. TimeFromArriveDate - long, Час до заїзду (сек.), діє в більший бік, тобто в разі різниці між датою заїзду та датою бронювання, більшої за це значення, оплата буде обов'язковою, якщо меншою - ні. | ||
ii. TimeForPayment - long, час для оплати з дати бронювання (сек.) | ii. TimeForPayment - long, час для оплати з дати бронювання (сек.) | ||
==AddRoomReservation== | |||
Функція AddRoomReservation створює нову бронь у базі за вхідними параметрами і повертає ID броні. | |||
Примітка: У разі вибору типу оплати-300 (безготівкова оплата) в HMS створюється автоматично рахунок на компанію. | |||
'''Вхідні параметри:''' | |||
1. HotelID - int, від 1 до +∞, ID готелю | |||
2. DateArrival - date, дата заїзду - ведеться ігнорування часу. | |||
3. DateDeparture - date .Дата виїзду - ведеться ігнорування часу. | |||
4. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі. | |||
5. Adults - int, від 1 до 1000. Кількість дорослих людей | |||
6. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок. | |||
7. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка. | |||
8. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів. | |||
9. GuestLastName - string, прізвище гостя | |||
10. GuestFirstName - string, ім'я гостя | |||
11. RoomTypeID - int, 1 до +∞, ID категорії номера | |||
12. CompanyID - int, ідентифікатор компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання | |||
13. Company - рядок, назва компанії | |||
14. СontractConditionID - int, ідентифікатор умови договору компанії. 0 - системна умова, >0 - ідентифікатор обраної умови. | |||
15. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата. | |||
16. Iso3Country - string, рядок 3 символи, iso позначення країни. | |||
17. Country - string, назва країни | |||
18. Address - рядок, адреса проживання | |||
19. Phone - рядок, телефон | |||
20. Fax - рядок, факс | |||
21. eMail - рядок, пошта | |||
22. NeedTransport - int, від 0 до 1, потрібно замовити транспорт 0 - не потрібно, 1 - потрібно | |||
23. Comment - string, рядок коментарів. Обріжеться під час вставки в базу. | |||
24. ClientInfo - string, додаткова інформація про людину, яка зробила бронь: IP-адреса, тощо. | |||
25. IsTouristTax - int, ознака включення тур.збору в автоматично створений рахунок, 1- включається, 0 - не включається | |||
26. AgentCategory - int, категорія контрагента. 0 - не вказано (буде використано категорію, налаштовану для готелю за замовчуванням), 1 - Резидент, 2 - Нерезидент. | |||
27. PriceListID - int, 1 до +∞, ID прейскуранта | |||
28. LoyaltyCardTypeID - int, ідентифікатор типу карти лояльності. | |||
29. LoyaltyCardNumber - string, 20 символів. Код бронювання програми лояльності. | |||
30. ContactName - string, до 50 символів. Контактна особа під час бронювання. | |||
31. TimeDeparture - string, 5 символів - час виїзду (н/р: "12:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі. | |||
32. BirthDate - date, дата народження. | |||
33. UTM_CAMPAIGN - string, 128 символів - UTM-мітка. Назва рекламної кампанії | |||
34. UTM_CONTENT - string, 128 символів - UTM-мітка. Інформація, яка допомагає розрізняти оголошення, якщо збігаються інші параметри | |||
35. UTM_MEDIUM - string, 128 символів - UTM-мітка. Тип трафіку | |||
36. UTM_SOURCE - string, 128 символів - UTM-мітка. Рекламна система | |||
37. UTM_TERM - string, 128 символів - UTM-мітка. Ключове слово, яке ініціювало показ оголошення | |||
'''Значення, що повертається:''' | |||
Повертається JSON структура з такими полями: | |||
1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Еrror, 2 - Incorrect string. | |||
2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок. | |||
3. ErrorCode - string, код помилки. | |||
4. Account - int, від 1 до +∞, ID броні |
Версія за 15:16, 14 травня 2025
Формат запитів JSON
Форматом переданих і прийнятих даних є протокол обміну JSON. Кодування запитів і відповідей UTF8. Приклад запиту і відповіді наведено нижче. {
"firstName": "Ім'я", "lastName": "Прізвище", "адреса": { "streetAddress": "Швидке ш., 101, кв.101", "city": "Місто", "postalCode": 101101 }, "phoneNumbers": [ "+380(98)-765-43-21", "+380(98)-123-45-67" ]
}
Формат даних
- Формат дати/часу: "yyyy-MM-dd HH:mm:ss";
- Формат дати: "yyyy-MM-dd"
- Формат часу: "HH:mm"
- Роздільник типів із плаваючою крапкою(double): "."
Опис функцій спілкування
GetCompanyInfo
Функція GetCompanyInfo повертає інформацію про компанію, або помилку.
Вхідні параметри:
1. CompanyCode - string, довжина рядка до 20 символів. Ідентифікаційний код компанії.
Значення, що повертається:
Повертається JSON структура з такими полями:
1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Еrror, 2 - Incorrect string. 2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок. 3. ErrorCode - string, код помилки. Якщо компанія за кодом не знайдена код помилки - CompanyNotFound 4. CompanyID - int, ідентифікатор компанії. 5. CompanyCodeID - int, ідентифікатор коду компанії. 6. CompanyName - string, назва компанії 7. CompanyEmail - string, ел. пошта компанії 8. CompanyFax - рядок, факс компанії 9. ComanyPhoneNumber - string, номер контактного телефону компанії 10. IsPrepayment - bool, працює за передоплатою
Get Rooms
Функція GetRooms отримує за вхідними параметрами список категорій номерів із зазначенням кількості вільних номерів кожної категорії.
Вхідні параметри:
1. HotelID - int, від 1 до +∞, ID готелю 2. DateArrival - date, дата заїзду - ведеться ігнорування часу. 3. DateDeparture - date. Дата виїзду - ведеться ігнорування часу. 4. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі. 5. Adults - int, від 1 до 1000. Кількість дорослих людей 6. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок. 7. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка. 8. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів. 9. CompanyCodeID - int, ідентифікатор коду компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання 10. TimeDeparture - string, 5 символів - час виїзду (н/р: "12:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі.
Значення, що повертається:
Повертається JSON структура з такими полями:
1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, , 1 - Function Еrror, 2 - Incorrect string. 2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок. 3. ErrorCode - string, код помилки. 4. RoomTypes - RoomType[], одновимірний масив JSON структур RoomType, у якому зберігається інформація за категоріями кімнат: a. ID - int, ID категорії номера в базі PMS. b. FreeRoom - int, кількість вільних номерів цієї категорії. c. MainPlacesCount - int, кількість основних місць у номері. d. NearestDateToReservation - Nullable<datetime>, дата найближчої можливої броні 5. СontractConditions - СontractCondition[], одновимірний масив JSON структур СontractCondition, у якому зберігається інформація щодо умов договорів компанії. Це поле заповнюється тільки якщо CompanyID > 0, кількість елементів у масиві відповідає кількості умов договорів, що діють на дату заїзду: a. СontractConditionID - int, ідентифікатор умови договору компанії. b. СontractConditionName - string, назва умови договору компанії. c. PaidTypes - int[], масив кодів типів оплат доступних за цією умовою. Значення елементів масиву: 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата. d. ExpiredDate - datetime, дата закінчення поточного договору компанії.
GetPrices
Функція GetPrices отримує за вхідними параметрами список заявок на бронювання із зазначенням списку послуг і цін на кожен день проживання за кожною заявкою. Далі на сайті цю інформацію обробляють і групують у зручному для користувача вигляді.
Вхідні параметри:
1. HotelID - int, від 1 до +∞, ID готелю 2. CompanyID - int, ідентифікатор компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання 3. DateArrival - date, дата заїзду - ведеться ігнорування часу. 4. DateDeparture - date, дата виїзду - ведеться ігнорування часу. 5. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі. 6. Adults - int, від 1 до 1000. Кількість дорослих людей 7. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок. 8. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка. 9. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів. 10. IsoLanguage - string, 2 символи, двобуквена iso назва мови для виведення запиту. 11. RoomTypeIDs - int[], масив ідентифікаторів категорій номерів, для яких потрібно брати ціну. 12. СontractConditionID - int, ідентифікатор умови договору, за якою необхідно отримати PriceLists. 0 - системна умова, >0 - ідентифікатор обраної умови. 13. СontractConditionAddIDs - int[], масив ідентифікаторів умов договорів, за якими необхідно отримати PriceLists. 14. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата. 15. NeedTransport - int, від 0 до 1, потрібно замовити транспорт 0 - не потрібно, 1 - потрібно 16. IsTouristTax - int, параметр чи оподатковується цей гість, 1- оподатковується, 0 - не оподатковується. За замовчуванням 1. 17. AgentCategory - int, категорія контрагента. 0 - не вказано (буде використано категорію, налаштовану для готелю за замовчуванням), 1 - Резидент, 2 - Нерезидент. 18. AgentCategories - int[], масив категорій контрагентів (можливі значення елементів масиву як у полі AgentCategory). Якщо масив містить хоча б один елемент, то ціни за послугами-надбавками повертаються окремо від цін на основні послуги. 19. TimeDeparture - string, 5 символів - час виїзду (н/р: "12:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі. 20. LPAuthCode - string, 20 символів. Код бронювання програми лояльності.
Значення, що повертається:
Повертається JSON структура з такими полями:
1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Еrror, 2 - Incorrect string. 2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок. 3. ErrorCode - string, код помилки. 4. ValuteShort - рядок, скорочення базової валюти в зазначеній мові. 5. PriceLists - PriceList[], одновимірний масив JSON структур PriceList, у якому зберігається інформація про прейскуранти, що повертаються, а також про ціни для цих прейскурантів на запитувані категорії кімнат: a. PriceListID - int, ID прейскуранта в базі HMS; b. PriceListName - string, найменування прейскуранта; c. ConditionID - int, ID умови договору; d. IsNonReturnRate - int, ознака неповоротного тарифу, 1 - неповоротний тариф, 0 - поворотний тариф. e. IsSpecRate- int, ознака спеціальної пропозиції, 1 - спеціальна пропозиція, 0 - звичайний тариф. f. RoomTypes - RoomType[], одновимірний масив JSON структур RoomType, у якому зберігається інформація щодо цін для категорій кімнат: i. ID - int, ID категорії номера в базі HMS. ii. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг. Кількість елементів у цьому масиві визначає кількість різних послуг: 1. ServiceID - int, ідентифікатор послуги 2. ServiceName - string, назва послуги 3. ServiceCode - int, податковий код групи 4. ServiceSystemCode - string, системний код 5. ServiceTypeName - string, назва типу улуги 6. PriceDates - PriceDate[], одновимірний масив JSON структур PriceDate, в якому зберігається інформація за цінами послуги для категорії кімнати для зазначеного часового проміжку. Кількість елементів у цьому масиві визначає кількість дат, що відображаються користувачеві на сайті: a. Date - datetime, дата і час споживання послуги b. Price - double, сума нарахування в поточний день c. RackRatePrice - double, сума нарахування в поточний день за прейскурантом стійки iii. AgentCategories - AgentCategory[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг-надбавок для різних категорій контрагентів. Заповнюється залежно від вхідного параметра. AgentCategories: якщо масив містить хоча б один елемент, то ціни на послуги-надбавки повертаються окремо від цін на основні послуги в даному полі; якщо масив не заповнено, то ціни на послуги-надбавки повертаються до RoomType.Services разом із рештою послуг. 1. AgentCategory - int, категорія контрагента. 2. Services - Service[], одновимірний масив JSON структур Service, в якому зберігається інформація за цінами послуг-надбавок для категорії контрагента. iv. SaleRestrictions - JSON-структура, в якій міститься інформація щодо обмежень продажів для категорії кімнати на вказаний часовий проміжок: 1. ClosedToSale - JSON-структура містить інформацію про обмеження "Заборона продажів": a. HasRestrictions - bool, ознака наявності обмеження b. Message - string, текст повідомлення 2. ClosedToArrive - JSON структура містить інформацію про обмеження "Заборона заїзду": a. HasRestrictions - bool, ознака наявності обмеження b. Message - string, текст повідомлення 3. EarlyReservation - JSON структура містить інформацію про обмеження "Раннє бронювання": a. HasRestrictions - bool, ознака наявності обмеження b. Message - string, текст повідомлення 4. MinStay - JSON структура містить інформацію про обмеження "Мінімальний період проживання": a. HasRestrictions - bool, ознака наявності обмеження b. Days - int, кількість днів. 0 - якщо відсутні чинні обмеження на мінімальний період проживання. c. Message - string, текст повідомлення 5. MinPay - JSON структура містить інформацію про обмеження "Мінімальна передоплата": a. Days - int, кількість днів. b. Message - string, текст повідомлення c. MinPayPaymentRules - MinPayPaymentRuleInfo[], одновимірний масив JSON структур MinPayPaymentRuleInfo, у якому зберігається інформація про обов'язковість оплат: i. TimeFromArriveDate - long, Час до заїзду (сек.), діє в більший бік, тобто в разі різниці між датою заїзду та датою бронювання, більшої за це значення, оплата буде обов'язковою, якщо меншою - ні. ii. TimeForPayment - long, час для оплати з дати бронювання (сек.)
AddRoomReservation
Функція AddRoomReservation створює нову бронь у базі за вхідними параметрами і повертає ID броні. Примітка: У разі вибору типу оплати-300 (безготівкова оплата) в HMS створюється автоматично рахунок на компанію.
Вхідні параметри:
1. HotelID - int, від 1 до +∞, ID готелю 2. DateArrival - date, дата заїзду - ведеться ігнорування часу. 3. DateDeparture - date .Дата виїзду - ведеться ігнорування часу. 4. TimeArrival - string, 5 символів - час заїзду (н/р: "14:00"), якщо час заїзду не вказано, передавати порожній рядок, у такому разі час заїзду буде проставлятися в автоматичному режимі. 5. Adults - int, від 1 до 1000. Кількість дорослих людей 6. Childs - int, від 0 до 1000. Якщо кількість дітей немає на формі (визначається параметром), приходить порожній рядок. 7. ChildAges - int[], масив цілих чисел, що означають вік кожної дитини. Якщо кількість дітей більша за розмірність наступного за ним масиву вікових груп, то повертається помилка. 8. IsExtraBedUsed - bool, логічне значення. Можливість використання додаткових місць для видачі номерів. 9. GuestLastName - string, прізвище гостя 10. GuestFirstName - string, ім'я гостя 11. RoomTypeID - int, 1 до +∞, ID категорії номера 12. CompanyID - int, ідентифікатор компанії, 0 - немає, >0 - визначає ID компанії під якою відбувається бронювання 13. Company - рядок, назва компанії 14. СontractConditionID - int, ідентифікатор умови договору компанії. 0 - системна умова, >0 - ідентифікатор обраної умови. 15. PaidType - int, тип оплати 100 - готівка, 200 - кредитна картка, 300 - безготівкова оплата. 16. Iso3Country - string, рядок 3 символи, iso позначення країни. 17. Country - string, назва країни 18. Address - рядок, адреса проживання 19. Phone - рядок, телефон 20. Fax - рядок, факс 21. eMail - рядок, пошта 22. NeedTransport - int, від 0 до 1, потрібно замовити транспорт 0 - не потрібно, 1 - потрібно 23. Comment - string, рядок коментарів. Обріжеться під час вставки в базу. 24. ClientInfo - string, додаткова інформація про людину, яка зробила бронь: IP-адреса, тощо. 25. IsTouristTax - int, ознака включення тур.збору в автоматично створений рахунок, 1- включається, 0 - не включається 26. AgentCategory - int, категорія контрагента. 0 - не вказано (буде використано категорію, налаштовану для готелю за замовчуванням), 1 - Резидент, 2 - Нерезидент. 27. PriceListID - int, 1 до +∞, ID прейскуранта 28. LoyaltyCardTypeID - int, ідентифікатор типу карти лояльності. 29. LoyaltyCardNumber - string, 20 символів. Код бронювання програми лояльності. 30. ContactName - string, до 50 символів. Контактна особа під час бронювання. 31. TimeDeparture - string, 5 символів - час виїзду (н/р: "12:00"), якщо час виїзду не вказано, передавати порожній рядок, у такому разі час виїзду буде проставлятися в автоматичному режимі. 32. BirthDate - date, дата народження. 33. UTM_CAMPAIGN - string, 128 символів - UTM-мітка. Назва рекламної кампанії 34. UTM_CONTENT - string, 128 символів - UTM-мітка. Інформація, яка допомагає розрізняти оголошення, якщо збігаються інші параметри 35. UTM_MEDIUM - string, 128 символів - UTM-мітка. Тип трафіку 36. UTM_SOURCE - string, 128 символів - UTM-мітка. Рекламна система 37. UTM_TERM - string, 128 символів - UTM-мітка. Ключове слово, яке ініціювало показ оголошення
Значення, що повертається:
Повертається JSON структура з такими полями:
1. Result - int, ціле число, що відповідає за результат виконання функції, 0 - OK, 1 - Function Еrror, 2 - Incorrect string. 2. Error - string, текст помилки, що сталася, якщо функція виконана успішно, то передається порожній рядок. 3. ErrorCode - string, код помилки. 4. Account - int, від 1 до +∞, ID броні