From 7350989113f0a668c30eff9d1c1a3d62c9726849 Mon Sep 17 00:00:00 2001 From: trevor Date: Sat, 28 Dec 2024 09:44:58 +0900 Subject: [PATCH] mergse --- antifroud/migrations/0002_initial.py | 4 - app_settings/admin.py | 24 - app_settings/app_settings.py | 2 - app_settings/apps.py | 17 - app_settings/migrations/0001_initial.py | 4 - bnovo_page_1.json | 13373 ++++++++++++++++ bot/operations/hotels.py | 2 +- pms_integration/manager.py | 14 +- pms_integration/plugins/bnovo_pms.py | 708 +- pms_integration/plugins/shelter_pms.py | 317 +- .../0014_alter_scheduledtask_function_path.py | 19 + 11 files changed, 14160 insertions(+), 324 deletions(-) create mode 100644 bnovo_page_1.json create mode 100644 scheduler/migrations/0014_alter_scheduledtask_function_path.py diff --git a/antifroud/migrations/0002_initial.py b/antifroud/migrations/0002_initial.py index 0af718f7..49d027bc 100644 --- a/antifroud/migrations/0002_initial.py +++ b/antifroud/migrations/0002_initial.py @@ -1,8 +1,4 @@ -<<<<<<< HEAD -# Generated by Django 5.1.4 on 2024-12-19 12:42 -======= # Generated by Django 5.1.4 on 2024-12-25 04:55 ->>>>>>> PMSManager_refactor import django.db.models.deletion from django.db import migrations, models diff --git a/app_settings/admin.py b/app_settings/admin.py index b1715ee7..55ee2137 100644 --- a/app_settings/admin.py +++ b/app_settings/admin.py @@ -1,34 +1,11 @@ -<<<<<<< HEAD -======= # settings/admin.py ->>>>>>> antifraud from django.contrib import admin from .models import LocalDatabase, GlobalHotelSettings, GlobalSystemSettings, TelegramSettings, EmailSettings @admin.register(LocalDatabase) class LocalDatabaseAdmin(admin.ModelAdmin): list_display = ['name', 'host', 'port', 'user', 'database', 'is_active'] -<<<<<<< HEAD - search_fields = ['name', 'host', 'user', 'database'] - -@admin.register(GlobalHotelSettings) -class GlobalHotelSettingsAdmin(admin.ModelAdmin): - list_display = ['check_in_time', 'check_out_time', 'global_timezone'] - list_filter = ['global_timezone'] - -@admin.register(GlobalSystemSettings) -class GlobalSystemSettingsAdmin(admin.ModelAdmin): - list_display = ['system_name', 'system_version', 'server_timezone'] - -@admin.register(TelegramSettings) -class TelegramSettingsAdmin(admin.ModelAdmin): - list_display = ['bot_token', 'username'] - -@admin.register(EmailSettings) -class EmailSettingsAdmin(admin.ModelAdmin): - list_display = ['smtp_server', 'smtp_port', 'smtp_user', 'from_email'] -======= search_fields = ['name', 'host','user', 'database'] @@ -47,4 +24,3 @@ class TelegramSettingsAdmin(admin.ModelAdmin): admin.site.register(EmailSettings) # Register your models here. class EmailSettingsAdmin(admin.ModelAdmin): list_display = ['email_host', 'email_port', 'email_host_user', 'email_host_password'] ->>>>>>> antifraud diff --git a/app_settings/app_settings.py b/app_settings/app_settings.py index 29e18a67..77efcf67 100644 --- a/app_settings/app_settings.py +++ b/app_settings/app_settings.py @@ -1,8 +1,6 @@ -from .models import LocalDatabase from decouple import config from django.conf import settings -from .models import LocalDatabase from django.apps import apps def load_database_settings(databases): diff --git a/app_settings/apps.py b/app_settings/apps.py index 44023256..de8537a7 100644 --- a/app_settings/apps.py +++ b/app_settings/apps.py @@ -1,19 +1,3 @@ -<<<<<<< HEAD -from django.apps import AppConfig, apps - -class AppSettingsConfig(AppConfig): - default_auto_field = 'django.db.models.BigAutoField' - name = 'app_settings' - - def ready(self): - # Проверяем, что приложения готовы - if not apps.ready: - return - try: - import app_settings.signals # Регистрация сигналов - except ImportError as e: - print(f"Ошибка импорта signals: {e}") -======= from django.apps import AppConfig @@ -21,4 +5,3 @@ class SettingsConfig(AppConfig): default_auto_field = 'django.db.models.BigAutoField' name = 'app_settings' verbose_name="Настройки системы" ->>>>>>> antifraud diff --git a/app_settings/migrations/0001_initial.py b/app_settings/migrations/0001_initial.py index 54a16b36..4cbb1eb2 100644 --- a/app_settings/migrations/0001_initial.py +++ b/app_settings/migrations/0001_initial.py @@ -85,11 +85,7 @@ class Migration(migrations.Migration): ), ] -<<<<<<< HEAD -# Generated by Django 5.1.4 on 2024-12-20 11:29 -======= # Generated by Django 5.1.4 on 2024-12-23 00:57 ->>>>>>> antifraud from django.db import migrations, models diff --git a/bnovo_page_1.json b/bnovo_page_1.json new file mode 100644 index 00000000..3e0f2255 --- /dev/null +++ b/bnovo_page_1.json @@ -0,0 +1,13373 @@ +{ + "count_activities": { + "new": 0, + "checkin": 0, + "living": 0, + "checkout": 0, + "cancellations": 0, + "services": 0, + "warnings": 0, + "overbookings": 0, + "closures": 0 + }, + "bookings": [ + { + "id": "68064995", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "1", + "status_name": "Новое", + "status_color": "acd87f", + "customer_id": "31996192", + "agency_id": null, + "supplier_id": null, + "supplier_name": "Стильные кухни", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "CVARC-261224", + "create_date": "2024-12-26 08:35:46", + "arrival": "2025-01-23 18:00:00+03:00", + "departure": "2025-01-24 06:00:00+03:00", + "real_arrival": "2025-01-23 18:00:00+03:00", + "real_departure": "2025-01-24 06:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "кухни", + "surname": "Стильные", + "phone": "+1(111)111-1111", + "notes": null, + "link_id": "CVARC-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "1640.00", + "payments_total": "0", + "provided_total": "0", + "customers_total": null, + "plan_name": "Стильные кухни", + "initial_room_type_name": "Стандартный двухместный с 2-мя отдельными кроватями", + "current_room": "207", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "31996192", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "кухни", + "surname": "Стильные", + "email": "", + "phone": "+1(111)111-1111", + "birthdate": null, + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "middlename": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2023-10-16 19:21:52", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "кухни", + "surname": "Стильные", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": "106294", + "hotel_id": "2132", + "is_hotel_legal_entity": "0", + "name": "Стильные кухни", + "law_name": "Док-15", + "email": "", + "phone": "", + "fax": "", + "site": "", + "country_id": "171", + "country_name": null, + "city": "", + "address": "", + "law_address": "", + "inn": "5050079140", + "kpp": "", + "account": "", + "correspondent_account": "", + "bik": "", + "bank": "", + "ogrn": "", + "ceo": "", + "accountant": "", + "comments": "", + "is_agency": "0", + "commission": "0.00", + "not_pay_commission": "0", + "deleted": "0", + "extra": [], + "tmp_is_message": "0", + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68065023", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "1", + "status_name": "Новое", + "status_color": "acd87f", + "customer_id": "31996192", + "agency_id": null, + "supplier_id": null, + "supplier_name": "Стильные кухни", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "KHTE9-261224", + "create_date": "2024-12-26 08:36:52", + "arrival": "2025-01-23 18:00:00+03:00", + "departure": "2025-01-24 06:00:00+03:00", + "real_arrival": "2025-01-23 18:00:00+03:00", + "real_departure": "2025-01-24 06:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "кухни", + "surname": "Стильные", + "phone": "+1(111)111-1111", + "notes": null, + "link_id": "KHTE9-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "1640.00", + "payments_total": "0", + "provided_total": "0", + "customers_total": null, + "plan_name": "Стильные кухни", + "initial_room_type_name": "Стандартный двухместный с 2-мя отдельными кроватями", + "current_room": "209", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "31996192", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "кухни", + "surname": "Стильные", + "email": "", + "phone": "+1(111)111-1111", + "birthdate": null, + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "middlename": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2023-10-16 19:21:52", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "кухни", + "surname": "Стильные", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": "106294", + "hotel_id": "2132", + "is_hotel_legal_entity": "0", + "name": "Стильные кухни", + "law_name": "Док-15", + "email": "", + "phone": "", + "fax": "", + "site": "", + "country_id": "171", + "country_name": null, + "city": "", + "address": "", + "law_address": "", + "inn": "5050079140", + "kpp": "", + "account": "", + "correspondent_account": "", + "bik": "", + "bank": "", + "ogrn": "", + "ceo": "", + "accountant": "", + "comments": "", + "is_agency": "0", + "commission": "0.00", + "not_pay_commission": "0", + "deleted": "0", + "extra": [], + "tmp_is_message": "0", + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68066916", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "4", + "status_name": "Выехал", + "status_color": "c0c0c0", + "customer_id": "30458769", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "AEZN3-261224", + "create_date": "2024-12-26 09:45:26", + "arrival": "2024-12-26 14:00:00+03:00", + "departure": "2024-12-27 09:00:00+03:00", + "real_arrival": "2024-12-26 14:00:00+03:00", + "real_departure": "2024-12-27 09:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Дмитрий", + "surname": "Серегин Кид Трейд", + "phone": "+7(966)046-52-99", + "notes": null, + "link_id": "AEZN3-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "2800.00", + "payments_total": "2800.00", + "provided_total": "2800.00", + "customers_total": null, + "plan_name": "Основной", + "initial_room_type_name": "Стандартный двухместный с 1-ой кроватью", + "current_room": "302", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 1, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "30458769", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Дмитрий", + "surname": "Серегин Кид Трейд", + "email": "", + "phone": "+7(966)046-52-99", + "birthdate": "1995-09-08", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Сергеевич", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "4515", + "document_number": "278769", + "document_unit_code": "770-072", + "document_organization_issued": "ОТДЕЛЕНИЕ ПО Р-НУ ТРОПАРЕВО-НИКУЛИНО ОУФМС РОССИИ ПО ГОР. МОСКВЕ В ЗАО", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2023-08-18 11:17:22", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Дмитрий", + "surname": "Серегин Кид Трейд", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68067338", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "4", + "status_name": "Выехал", + "status_color": "c0c0c0", + "customer_id": "43845595", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "3RJMP-261224", + "create_date": "2024-12-26 09:58:20", + "arrival": "2024-12-25 14:00:00+03:00", + "departure": "2024-12-27 12:00:00+03:00", + "real_arrival": "2024-12-26 09:00:00+03:00", + "real_departure": "2024-12-26 18:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Николай", + "surname": "Кудрявцев", + "phone": "+79516799958", + "notes": null, + "link_id": "3RJMP-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "2200.00", + "payments_total": "2200.00", + "provided_total": "2200.00", + "customers_total": null, + "plan_name": "12 часов проживания", + "initial_room_type_name": "Стандартный двухместный с 1-ой кроватью", + "current_room": "206", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 1, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "43845595", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Николай", + "surname": "Кудрявцев", + "email": "", + "phone": "+79516799958", + "birthdate": "1990-08-17", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Юрьевич", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "4109", + "document_number": "248951", + "document_unit_code": "470-053", + "document_organization_issued": "ТП №137 ОТДЕЛА УФМС РОССИИ ПО САНКТ-ПЕТЕРБУРГУ И ЛЕНИНГРАДСКОЙ ОБЛ. В ТОСНЕНСКОМ Р-НЕ", + "document_date_issued": "", + "document_date_end": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2024-11-04 12:57:39", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Николай", + "surname": "Кудрявцев", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68068345", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "2", + "status_name": "Отменен", + "status_color": "fda6a6", + "customer_id": "37675105", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "LZLNU-261224", + "create_date": "2024-12-26 10:26:15", + "arrival": "2024-12-27 15:00:00+03:00", + "departure": "2024-12-29 12:00:00+03:00", + "real_arrival": "2024-12-27 15:00:00+03:00", + "real_departure": "2024-12-28 15:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Алексей", + "surname": "Фирсов", + "phone": "+7(961)632-99-33", + "notes": null, + "link_id": "LZLNU-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": "2024-12-26 12:05:03", + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "3000.00", + "payments_total": "0", + "provided_total": "0", + "customers_total": null, + "plan_name": "Основной", + "initial_room_type_name": "Стандартный двухместный с 1-ой кроватью", + "current_room": "202", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 1, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "37675105", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Алексей", + "surname": "Фирсов", + "email": "", + "phone": "+7(961)632-99-33", + "birthdate": "1975-12-02", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Николаевич", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "2220", + "document_number": "222837", + "document_unit_code": "520-003", + "document_organization_issued": "ОТДЕЛ УФМС РОССИИ ПО НИЖЕГОРОДСКОЙ ОБЛ. В ЛЕНИНСКОМ Р-НЕ Г. НИЖНЕГО НОВГОРОДА", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2024-05-24 08:16:41", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Алексей", + "surname": "Фирсов", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68068383", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "1", + "status_name": "Новое", + "status_color": "acd87f", + "customer_id": "37675105", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "PVEYP-261224", + "create_date": "2024-12-26 10:27:54", + "arrival": "2024-12-27 15:00:00+03:00", + "departure": "2024-12-29 12:00:00+03:00", + "real_arrival": "2024-12-27 15:00:00+03:00", + "real_departure": "2024-12-28 15:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Алексей", + "surname": "Фирсов", + "phone": "+7(961)632-99-33", + "notes": null, + "link_id": "PVEYP-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "3000.00", + "payments_total": "0", + "provided_total": "0", + "customers_total": null, + "plan_name": "Основной", + "initial_room_type_name": "Стандартный двухместный с 2-мя отдельными кроватями", + "current_room": "303", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "37675105", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Алексей", + "surname": "Фирсов", + "email": "", + "phone": "+7(961)632-99-33", + "birthdate": "1975-12-02", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Николаевич", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "2220", + "document_number": "222837", + "document_unit_code": "520-003", + "document_organization_issued": "ОТДЕЛ УФМС РОССИИ ПО НИЖЕГОРОДСКОЙ ОБЛ. В ЛЕНИНСКОМ Р-НЕ Г. НИЖНЕГО НОВГОРОДА", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2024-05-24 08:16:41", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Алексей", + "surname": "Фирсов", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68070455", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "4", + "status_name": "Выехал", + "status_color": "c0c0c0", + "customer_id": "14848545", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "LCHSW-261224", + "create_date": "2024-12-26 11:26:38", + "arrival": "2024-12-25 14:00:00+03:00", + "departure": "2024-12-27 12:00:00+03:00", + "real_arrival": "2024-12-26 11:00:00+03:00", + "real_departure": "2024-12-26 17:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Виктор", + "surname": "Кухтарев", + "phone": "+7(921)908-57-91", + "notes": null, + "link_id": "LCHSW-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "2600.00", + "payments_total": "2600.00", + "provided_total": "2600.00", + "customers_total": null, + "plan_name": "Основной", + "initial_room_type_name": "Стандартный эконом", + "current_room": "101", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "14848545", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Виктор", + "surname": "Кухтарев", + "email": "", + "phone": "+7(921)908-57-91", + "birthdate": "1960-04-09", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "4102", + "document_number": "433920", + "document_unit_code": "473-024", + "document_organization_issued": "Шлиссельбургское ом кировского р-на ленинградской обл.", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2021-02-04 12:31:42", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Виктор", + "surname": "Кухтарев", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + }, + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Лилия", + "surname": "Григорьева", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68072591", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "3", + "status_name": "Заселен", + "status_color": "8fcdf1", + "customer_id": "18427468", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "6642X-261224", + "create_date": "2024-12-26 12:24:49", + "arrival": "2024-12-25 14:00:00+03:00", + "departure": "2024-12-27 12:00:00+03:00", + "real_arrival": "2024-12-26 12:00:00+03:00", + "real_departure": "2024-12-27 12:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Альберт", + "surname": "Хачатрян", + "phone": "+7(911)118-47-54", + "notes": null, + "link_id": "6642X-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "2600.00", + "payments_total": "2600.00", + "provided_total": "2600.00", + "customers_total": null, + "plan_name": "Основной", + "initial_room_type_name": "Стандартный эконом", + "current_room": "104", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "18427468", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "57", + "citizenship_name": null, + "name": "Альберт", + "surname": "Хачатрян", + "email": "", + "phone": "+7(911)118-47-54", + "birthdate": "1991-03-12", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "surname_cyrillic": "", + "name_cyrillic": "", + "middlename": "Валерикович", + "middlename_cyrillic": "", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103012", + "document_series": "FU", + "document_number": "0326855", + "document_organization_issued": "", + "document_date_issued": "", + "document_date_end": "", + "visa_type": "", + "visa_series": "", + "visa_number": "", + "visa_unit_code": "", + "visa_organization_issued": "", + "visa_date_issued": "", + "visa_date_start": "", + "visa_date_end": "", + "visa_identifier": "", + "visa_category": "0", + "visa_multiplier": "0", + "visa_goal": "0", + "visa_decision_number": "", + "visa_decision_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "entry_goal": "0", + "occupation": "", + "occupation_id": "", + "length_of_stay": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2021-10-14 01:57:19", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Альберт", + "surname": "Хачатрян", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + }, + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Валентина", + "surname": "Рощина", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68072972", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "4", + "status_name": "Выехал", + "status_color": "c0c0c0", + "customer_id": "27002196", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "K4K49-261224", + "create_date": "2024-12-26 12:35:24", + "arrival": "2024-12-25 14:00:00+03:00", + "departure": "2024-12-27 07:00:00+03:00", + "real_arrival": "2024-12-26 12:00:00+03:00", + "real_departure": "2024-12-27 07:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Юрий", + "surname": "Мартыненко", + "phone": "+79108824536", + "notes": null, + "link_id": "K4K49-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "3000.00", + "payments_total": "3000.00", + "provided_total": "3000.00", + "customers_total": null, + "plan_name": "Основной", + "initial_room_type_name": "Стандартный двухместный с 1-ой кроватью", + "current_room": "210", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 1, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "27002196", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Юрий", + "surname": "Мартыненко", + "email": "", + "phone": "+79108824536", + "birthdate": "1969-02-18", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Алексеевич", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "2213", + "document_number": "182679", + "document_unit_code": "520-013", + "document_organization_issued": "ОТДЕЛ УФМС РОССИИ ПО НИЖЕГОРОДСКОЙ ОБЛ. В БОРСКОМ Р-НЕ", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2023-04-19 15:51:52", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Юрий", + "surname": "Мартыненко", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68080001", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "4", + "status_name": "Выехал", + "status_color": "c0c0c0", + "customer_id": "20336930", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "3KK74-261224", + "create_date": "2024-12-26 15:49:33", + "arrival": "2024-12-26 18:00:00+03:00", + "departure": "2024-12-27 12:00:00+03:00", + "real_arrival": "2024-12-26 18:00:00+03:00", + "real_departure": "2024-12-26 21:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Сергей", + "surname": "Тепелицын", + "phone": "+79500305527", + "notes": null, + "link_id": "3KK74-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "2500.00", + "payments_total": "2500.00", + "provided_total": "2500.00", + "customers_total": null, + "plan_name": "12 часов проживания", + "initial_room_type_name": "Улучшенный номер с 1-ой кроватью", + "current_room": "304", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "20336930", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Сергей", + "surname": "Тепелицын", + "email": "", + "phone": "+79500305527", + "birthdate": "1980-03-25", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Иванович", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "4102", + "document_number": "777473", + "document_unit_code": "", + "document_organization_issued": "", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2022-04-02 16:08:43", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Ксения", + "surname": "Калистова", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + }, + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Сергей", + "surname": "Тепелицын", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68081865", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "1", + "status_name": "Новое", + "status_color": "acd87f", + "customer_id": "16604659", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "JYJ3V-261224", + "create_date": "2024-12-26 16:39:08", + "arrival": "2024-12-29 14:00:00+03:00", + "departure": "2024-12-30 02:00:00+03:00", + "real_arrival": "2024-12-29 14:00:00+03:00", + "real_departure": "2024-12-30 02:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Владимир", + "surname": "Колоденко", + "phone": "+7(989)729-16-22", + "notes": null, + "link_id": "JYJ3V-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "200.00", + "prices_rooms_total": "2200.00", + "payments_total": "0", + "provided_total": "0", + "customers_total": null, + "plan_name": "12 часов проживания", + "initial_room_type_name": "Стандартный двухместный с 2-мя отдельными кроватями", + "current_room": "303", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "16604659", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Владимир", + "surname": "Колоденко", + "email": "", + "phone": "+7(989)729-16-22", + "birthdate": "1963-11-19", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "middlename": "Анатольевич", + "guest_type": "1", + "gender": "1", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "6008", + "document_number": "413682", + "document_unit_code": "610-047", + "document_organization_issued": "", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2021-06-13 02:04:12", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Владимир", + "surname": "Колоденко", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68082486", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "1", + "status_name": "Новое", + "status_color": "acd87f", + "customer_id": "45290158", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "VAPTD-261224", + "create_date": "2024-12-26 16:57:04", + "arrival": "2025-01-03 14:00:00+03:00", + "departure": "2025-01-05 12:00:00+03:00", + "real_arrival": "2025-01-04 11:00:00+03:00", + "real_departure": "2025-01-04 15:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Татьяна", + "surname": "Татьяна", + "phone": "+7(952)377-55-33", + "notes": null, + "link_id": "VAPTD-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "20000.00", + "payments_total": "4000.00", + "provided_total": "0", + "customers_total": null, + "plan_name": "Баня тариф ПТ-ВС", + "initial_room_type_name": "Русская баня", + "current_room": "1", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 6, + "children": 3, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "45290158", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Татьяна", + "surname": "Татьяна", + "email": "", + "phone": "+7(952)377-55-33", + "birthdate": null, + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2024-12-26 16:57:04", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Татьяна", + "surname": "Татьяна", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68083812", + "hotel_id": null, + "source_id": "2", + "provider_id": null, + "source_name": "Модуль бронирования", + "source_icon": "channels_bnovobook.png", + "status_id": "1", + "status_name": "Новое", + "status_color": "acd87f", + "customer_id": "31005823", + "agency_id": null, + "supplier_id": null, + "supplier_name": "Модуль бронирования", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "3CEUW-261224", + "create_date": "2024-12-26 17:34:41", + "arrival": "2024-12-27 14:00:00+03:00", + "departure": "2024-12-28 12:00:00+03:00", + "real_arrival": "2024-12-27 14:00:00+03:00", + "real_departure": "2024-12-28 12:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Виктор", + "surname": "Кириллов", + "phone": "+7(911)944-60-34", + "notes": null, + "link_id": "3CEUW-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "5000.00", + "payments_total": "0", + "provided_total": "0", + "customers_total": null, + "plan_name": "ТАРИФ ПРОЖИВАНИЕ", + "initial_room_type_name": "Люкс с джакузи", + "current_room": "106", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "bed_variant": 1, + "adults": 2, + "children": 0, + "board": "000", + "board_services": [], + "pms_group_booking_numbers": { + "68083812": "3CEUW-261224" + }, + "bnovobook_group_main_booking_number": "NTFKZ_261224" + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "31005823", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Виктор", + "surname": "Кириллов", + "email": "victor.kirillov@mail.ru", + "phone": "+7(911)944-60-34", + "birthdate": "1958-01-13", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Александрович", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "4004", + "document_number": "400965", + "document_unit_code": "781-002", + "document_organization_issued": "ГУВД САНКТ-ПЕТЕРБУРГА И ЛЕНИНГРАДСКОЙ ОБЛ.", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2023-09-06 17:04:20", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Виктор", + "surname": "Кириллов", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": "2", + "name": "Модуль бронирования", + "icon": "channels_bnovobook.png", + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68084048", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "4", + "status_name": "Выехал", + "status_color": "c0c0c0", + "customer_id": "45291126", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "2Y736-261224", + "create_date": "2024-12-26 17:42:01", + "arrival": "2024-12-26 23:00:00+03:00", + "departure": "2024-12-27 07:00:00+03:00", + "real_arrival": "2024-12-26 23:00:00+03:00", + "real_departure": "2024-12-27 07:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Александр", + "surname": "Родин", + "phone": "+79099865761", + "notes": null, + "link_id": "2Y736-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "2200.00", + "payments_total": "2200.00", + "provided_total": "2200.00", + "customers_total": null, + "plan_name": "12 часов проживания", + "initial_room_type_name": "Стандартный двухместный с 1-ой кроватью", + "current_room": "310", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 1, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "45291126", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Александр", + "surname": "Родин", + "email": "", + "phone": "+79099865761", + "birthdate": "1988-07-22", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Николаевич", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "4617", + "document_number": "767829", + "document_unit_code": "500-103", + "document_organization_issued": "ТП №1 МО УФМС РОССИИ ПО МОСКОВСКОЙ ОБЛАСТИ В ГОРОДСКОМ ПОСЕЛЕНИИ ОДИНЦОВО", + "document_date_issued": "", + "document_date_end": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2024-12-26 17:42:01", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Александр", + "surname": "Родин", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68090162", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "4", + "status_name": "Выехал", + "status_color": "c0c0c0", + "customer_id": "44939578", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "UFV5D-261224", + "create_date": "2024-12-26 20:40:49", + "arrival": "2024-12-26 20:00:00+03:00", + "departure": "2024-12-27 08:00:00+03:00", + "real_arrival": "2024-12-26 20:00:00+03:00", + "real_departure": "2024-12-27 08:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Владислав", + "surname": "Стецкий", + "phone": "+79219552763", + "notes": null, + "link_id": "UFV5D-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "3200.00", + "payments_total": "3200.00", + "provided_total": "3200.00", + "customers_total": null, + "plan_name": "12 часов проживания", + "initial_room_type_name": "Мансардный люкс", + "current_room": "105", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 1, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "44939578", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Владислав", + "surname": "Стецкий", + "email": "", + "phone": "+79219552763", + "birthdate": "1976-05-28", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Игоревич", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "4021", + "document_number": "868910", + "document_unit_code": "780-036", + "document_organization_issued": "ТП №36 ОТДЕЛА УФМС РОССИИ ПО САНКТ-ПЕТЕРБУРГУ И ЛЕНИНГРАДСКОЙ ОБЛ. В КРАСНОГВАРДЕЙСКОМ Р-НЕ Г.САНКТ-ПЕТЕРБУРГА", + "document_date_issued": "", + "document_date_end": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2024-12-12 17:01:37", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Владислав", + "surname": "Стецкий", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68092003", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "4", + "status_name": "Выехал", + "status_color": "c0c0c0", + "customer_id": "20010200", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "D9M66-261224", + "create_date": "2024-12-26 21:38:02", + "arrival": "2024-12-26 21:00:00+03:00", + "departure": "2024-12-27 08:00:00+03:00", + "real_arrival": "2024-12-26 21:00:00+03:00", + "real_departure": "2024-12-27 08:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Арби", + "surname": "Нажаев", + "phone": "+79889081606", + "notes": null, + "link_id": "D9M66-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "3000.00", + "payments_total": "3000.00", + "provided_total": "3000.00", + "customers_total": null, + "plan_name": "12 часов проживания", + "initial_room_type_name": "Стандартный четырехместный номер", + "current_room": "311", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 4, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "20010200", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Арби", + "surname": "Нажаев", + "email": "", + "phone": "+79889081606", + "birthdate": "1970-07-08", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Магомедович", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "9615", + "document_number": "593671", + "document_unit_code": "200-011", + "document_organization_issued": "ОТДЕЛ УФМС РОССИИ ПО ЧЕЧЕНСКОЙ РЕСПУБЛИКЕ В ГРОЗНЕНСКОМ Р-НЕ", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2022-03-04 21:42:28", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Муслим", + "surname": "Ильясов", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + }, + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Арби", + "surname": "Нажаев", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + }, + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Муслим", + "surname": "Магомадов", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68092152", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "3", + "status_name": "Заселен", + "status_color": "8fcdf1", + "customer_id": "19655590", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "ETN3U-261224", + "create_date": "2024-12-26 21:42:28", + "arrival": "2024-12-26 21:00:00+03:00", + "departure": "2024-12-29 09:00:00+03:00", + "real_arrival": "2024-12-26 21:00:00+03:00", + "real_departure": "2024-12-29 09:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Исмаил", + "surname": "Шудуев", + "phone": "+7(911)163-17-32", + "notes": null, + "link_id": "ETN3U-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "8200.00", + "payments_total": "8200.00", + "provided_total": "3000.00", + "customers_total": null, + "plan_name": "Основной", + "initial_room_type_name": "Стандартный двухместный с 2-мя отдельными кроватями", + "current_room": "307", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "19655590", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": "171", + "citizenship_name": null, + "name": "Исмаил", + "surname": "Шудуев", + "email": "", + "phone": "+7(911)163-17-32", + "birthdate": "1991-10-15", + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": { + "guest_type": "1", + "gender": "1", + "middlename": "Султанович", + "birth_country_name": "", + "birth_country_id": "0", + "birth_region_name": "", + "birth_area_name": "", + "birth_city_name": "", + "birth_locality_name": "", + "document_type": "103008", + "document_series": "9611", + "document_number": "316310", + "document_unit_code": "200-011", + "document_organization_issued": "ОТДЕЛ УФМС РОССИИ ПО ЧЕЧЕНСКОЙ РЕСПУБЛИКЕ В ГРОЗНЕНСКОМ Р-НЕ", + "document_date_issued": "", + "document_date_end": "", + "address_free": "", + "address_fias": "", + "address_region": "", + "address_region_only": "", + "address_area_only": "", + "address_street_name": "", + "address_house": "", + "address_housing": "", + "address_flat": "", + "address_date": "", + "migcard_series": "", + "migcard_number": "", + "migcard_date_arrival": "", + "migcard_kpp": "", + "migcard_kpp_code": "", + "migcard_date_start": "", + "migcard_date_end": "", + "representative_customer_id": "0", + "relationtype_id": "", + "representative_customer_full_name": "" + }, + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2022-01-31 22:55:09", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Саламбек", + "surname": "Мусаев", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + }, + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Исмаил", + "surname": "Шудуев", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68094753", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "1", + "status_name": "Новое", + "status_color": "acd87f", + "customer_id": "45298305", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "LK4MZ-261224", + "create_date": "2024-12-26 23:12:19", + "arrival": "2024-12-30 14:00:00+03:00", + "departure": "2025-01-02 12:00:00+03:00", + "real_arrival": "2024-12-31 12:00:00+03:00", + "real_departure": "2025-01-02 12:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Андрей", + "surname": "Степанов", + "phone": "+7(911)161-20-08", + "notes": null, + "link_id": "LK4MZ-261224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "6000.00", + "payments_total": "0", + "provided_total": "0", + "customers_total": null, + "plan_name": "Основной", + "initial_room_type_name": "Стандартный двухместный с 1-ой кроватью", + "current_room": "308", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "45298305", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Андрей", + "surname": "Степанов", + "email": "", + "phone": "+7(911)161-20-08", + "birthdate": null, + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2024-12-26 23:12:19", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Андрей", + "surname": "Степанов", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + }, + { + "id": "68096702", + "hotel_id": null, + "source_id": "0", + "provider_id": null, + "source_name": null, + "source_icon": null, + "status_id": "1", + "status_name": "Новое", + "status_color": "acd87f", + "customer_id": "45299647", + "agency_id": null, + "supplier_id": null, + "supplier_name": "", + "agency_name": null, + "agency_commission": 0, + "agency_not_pay_services_commission": null, + "source_commission": null, + "ancillary_commission": null, + "number": "495RF-271224", + "create_date": "2024-12-27 00:34:56", + "arrival": "2024-12-26 14:00:00+03:00", + "departure": "2024-12-28 12:00:00+03:00", + "real_arrival": "2024-12-27 09:00:00+03:00", + "real_departure": "2024-12-27 21:00:00+03:00", + "original_arrival": null, + "original_departure": null, + "amount": null, + "amount_provider": null, + "is_blocked": null, + "name": "Амиль", + "surname": "Атакишев", + "phone": "+7(911)890-95-21", + "notes": null, + "link_id": "495RF-271224", + "external_res_id": null, + "provider_booking_id": null, + "extra_provider": null, + "cancel_date": null, + "discount_type": null, + "discount_amount": null, + "discount_reason_id": null, + "discount_reason": null, + "guarantee": null, + "is_guarantee_encrypted": null, + "prices_array": null, + "prices_services_total": "0", + "prices_rooms_total": "2200.00", + "payments_total": "0", + "provided_total": "0", + "customers_total": null, + "plan_name": "12 часов проживания", + "initial_room_type_name": "Стандартный двухместный с 2-мя отдельными кроватями", + "current_room": "309", + "current_room_clean_status": null, + "room_name": null, + "has_linked_bookings": null, + "has_linked_cancelled_bookings": null, + "early_check_in": null, + "late_check_out": null, + "unread": "0", + "uu": null, + "extra": { + "adults": 2, + "children": 0, + "board": "000", + "board_services": [] + }, + "created_user": null, + "created_user_id": null, + "created_user_name": null, + "created_user_surname": null, + "group_id": null, + "group_code": null, + "group_name": null, + "group_create_date": null, + "actual_price": null, + "email": null, + "customer_notes": null, + "ota_info": null, + "prices": [], + "prices_all": [], + "client": { + "id": "45299647", + "hotel_id": "2132", + "country_id": "0", + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Амиль", + "surname": "Атакишев", + "email": "", + "phone": "+7(911)890-95-21", + "birthdate": null, + "postcode": "", + "city": "", + "address": "", + "passport_num": "", + "passport_date_start": null, + "passport_date_end": null, + "notes": "", + "tags": "", + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": "2024-12-27 00:34:55", + "deduplicate_status_id": null + }, + "customer": [], + "customers": [ + { + "id": null, + "hotel_id": null, + "country_id": null, + "country_name": null, + "citizenship_id": null, + "citizenship_name": null, + "name": "Амиль", + "surname": "Атакишев", + "email": null, + "phone": null, + "birthdate": null, + "postcode": null, + "city": null, + "address": null, + "passport_num": null, + "passport_date_start": null, + "passport_date_end": null, + "notes": null, + "tags": null, + "extra": [], + "customerstag": [], + "files": [], + "booking_count": null, + "services_coast": null, + "additional_services_coast": null, + "last_booking_date": null, + "nights": null, + "create_date": null, + "deduplicate_status_id": null + } + ], + "invoices": [], + "payments": [], + "delivery_acts": [], + "linked_bookings": [], + "booking_notes": [], + "cancel_reason": null, + "discount_reason_relation": null, + "marketing_data": [], + "supplier": { + "id": null, + "hotel_id": null, + "is_hotel_legal_entity": null, + "name": null, + "law_name": null, + "email": null, + "phone": null, + "fax": null, + "site": null, + "country_id": null, + "country_name": null, + "city": null, + "address": null, + "law_address": null, + "inn": null, + "kpp": null, + "account": null, + "correspondent_account": null, + "bik": null, + "bank": null, + "ogrn": null, + "ceo": null, + "accountant": null, + "comments": null, + "is_agency": null, + "commission": null, + "not_pay_commission": null, + "deleted": null, + "extra": [], + "tmp_is_message": null, + "finance_supplier_id": null, + "finance_contractor_id": null + }, + "board_nutritia": null, + "online_warranty_deadline_date": null, + "auto_booking_cancel": null, + "hotel": { + "id": "2132", + "name": "Постоялый двор ЯМ", + "country": "Россия", + "city": "Ям-Ижора", + "city_eng": "Yam-Izhora", + "address": "Ленинградская улица 3", + "address_eng": "Leningradskaya Ulitsa 3", + "postcode": "187033", + "phone": "8(812)-319-38-02", + "email": "zayavki-yam@mail.ru", + "timezone": "Europe/Moscow", + "arrival_time": "14:00:00+03", + "departure_time": "12:00:00+03", + "booking_guarantee_password": "", + "create_date": "2016-08-24 10:11:40", + "visa_api_key": "", + "change_email_hash": "", + "templates_email": "", + "templates_location": null, + "invoices_prefix": "", + "invoices_next_number": "160", + "invoices_suffix": "", + "refund_receipts_prefix": "", + "refund_receipts_next_number": "21", + "refund_receipts_suffix": "", + "self_registered": "0", + "expiring_date": null, + "bnovo_scan": "0", + "currency": "RUB", + "geo_data": { + "x": "59.704821113206", + "y": "30.574866068959" + }, + "gis_point": null, + "is_tester": "0", + "show_notifications": "1", + "payment_gateway_enabled": "1", + "booking_url": "https://www.booking.com/reviews/ru/hotel/postoyaliy-dvor-yam.ru.html", + "rating": "0.00", + "tripadvisor_url": "https://www.tripadvisor.ru/Hotel_Review-g6849787-d6849033-Reviews-Yam_Postoyaly_Dvor-Yam_Izhora_Tosnensky_District_Leningrad_Oblast_Northwestern_Distri.html", + "extra": { + "type": "1", + "stars": "0", + "not_has_message": 1, + "labels_names": { + "1": "доплата", + "2": "учтена скидка ", + "3": "вредители,все ломают", + "4": "номер не менять", + "5": "букинг для комментариев", + "6": "Включён завтрак", + "7": "КУрят в номере", + "8": "Гостя не заселять!", + "9": "оплачено по безналу", + "10": "запачкали постель в крови" + }, + "has_concierge": 0, + "pms_expiring_date": "2025-01-06", + "beta_channel": "1", + "closing_approved_by_fd": 0, + "helphero": { + "is_email_connected": 1, + "is_payment_gateway_connected": 0, + "is_online_payment_enabled": 1, + "is_custom_template_created": 0, + "is_crm_connected": 0, + "is_vats_connected": 0, + "is_roomtype_enabled": 1, + "is_rateplan_enabled": 1, + "connected_ota": [ + "hotels101", + "acase", + "booking", + "bronevik2", + "expedia", + "uts", + "onetwotrip", + "ostrovok", + "otello", + "ozon", + "aanda", + "sutochno", + "yandex" + ], + "is_roomtype_description_specified": 1, + "is_rateplan_description_specified": 0, + "is_photo_uploaded": 1, + "tour_EkLGydfASTz": 1595433344, + "tour_EkLGydfASTz_count": 1, + "tour_XHTDwYGYwNx": 1596005430, + "tour_XHTDwYGYwNx_count": 1, + "rooms": 29, + "tour_CZKAhR3PqxQ": 1596618519, + "tour_CZKAhR3PqxQ_count": 1, + "tour_NQc7b9lBFWB": 1597932567, + "tour_NQc7b9lBFWB_count": 1, + "tour_uK3jabnqaIo": 1598603357, + "tour_uK3jabnqaIo_count": 1, + "tour_M2XMbg6VBMT": 1599138493, + "tour_M2XMbg6VBMT_count": 1, + "tour_7BBVTbWKfuF": 1599735040, + "tour_7BBVTbWKfuF_count": 1, + "tour_FNaSvXmt7YO": 1600176601, + "tour_FNaSvXmt7YO_count": 1, + "tour_EvVXacpL8fT": 1601296286, + "tour_EvVXacpL8fT_count": 1, + "tour_91zP7C7o55W": 1601455178, + "tour_91zP7C7o55W_count": 1, + "tour_d3HoAyIHBLe": 1603872390, + "tour_d3HoAyIHBLe_count": 1, + "tour_EnjAWnNSgnc": 1604406944, + "tour_EnjAWnNSgnc_count": 1, + "first_plan_creation_date": "2016-08-24 10:34:17", + "tour_MlZ6TIciz5o": 1605097165, + "tour_MlZ6TIciz5o_count": 1, + "tour_ZQEjIm9pVVi": 1607409097, + "tour_ZQEjIm9pVVi_count": 1, + "tour_T6fV78YywPC": 1609539133, + "tour_T6fV78YywPC_count": 1, + "tour_VSJJPDQZ9ha": 1613539400, + "tour_VSJJPDQZ9ha_count": 1, + "tour_ZZNgw4e8lRt": 1613589507, + "tour_ZZNgw4e8lRt_count": 1, + "tour_O1PNV4OsHqd": 1613638956, + "tour_O1PNV4OsHqd_count": 1, + "tour_DkZQwfkFvIC": 1614779588, + "tour_DkZQwfkFvIC_count": 1, + "tour_aV1YSk5YGey": 1614935833, + "tour_aV1YSk5YGey_count": 1, + "tour_9mQbjW0nDoZ": 1615979844, + "tour_9mQbjW0nDoZ_count": 1, + "tour_0jvQhGn0M87": 1620751756, + "tour_0jvQhGn0M87_count": 1, + "tour_oAF3RaaMWjz": 1621407038, + "tour_oAF3RaaMWjz_count": 1, + "tour_RECKBmxR1wg": 1621407099, + "tour_RECKBmxR1wg_count": 1, + "tour_K2WGM2uI68d": 1623919755, + "tour_K2WGM2uI68d_count": 8, + "tour_vBMUui6hRq3": 1621705767, + "tour_vBMUui6hRq3_count": 1, + "tour_NN1YNLvEgz6": 1622100937, + "tour_NN1YNLvEgz6_count": 1, + "tour_oyUh5C4FFUQ": 1622100944, + "tour_oyUh5C4FFUQ_count": 1, + "tour_UMY6LkFy5Ky": 1622647018, + "tour_UMY6LkFy5Ky_count": 1, + "tour_4Lz8se2ruN": 1624979464, + "tour_4Lz8se2ruN_count": 1, + "tour_CS9kFHc0Ob": 1625145602, + "tour_CS9kFHc0Ob_count": 1, + "tour_aAhqmanF2l": 1625756385, + "tour_aAhqmanF2l_count": 1, + "tour_r4nKeDoVYi": 1626965866, + "tour_r4nKeDoVYi_count": 1, + "tour_A0iS37fLDP": 1628259975, + "tour_A0iS37fLDP_count": 1, + "tour_u46KfJ4s6d": 1628513402, + "tour_u46KfJ4s6d_count": 1, + "tour_96DLZi1nsO": 1634827178, + "tour_96DLZi1nsO_count": 1, + "tour_NkbaF6otIH": 1637081529, + "tour_NkbaF6otIH_count": 1, + "tour_aIDQw89NT8": 1638538192, + "tour_aIDQw89NT8_count": 1, + "tour_Vepx2KIvqm": 1640698709, + "tour_Vepx2KIvqm_count": 1, + "tour_N9n16F5vcy": 1643292815, + "tour_N9n16F5vcy_count": 1, + "tour_elu3WItvZB": 1648132520, + "tour_elu3WItvZB_count": 13, + "tour_PyENBDsfU0": 1645171181, + "tour_PyENBDsfU0_count": 1, + "tour_wJjIF20baO": 1646313444, + "tour_wJjIF20baO_count": 1, + "tour_92f3V1PVg1": 1646896067, + "tour_92f3V1PVg1_count": 1, + "has_plan_with_services": 1, + "tour_ya3QOu7TE6": 1649845177, + "tour_ya3QOu7TE6_count": 1, + "tour_KCbAxLAPfI7": 1652714167, + "tour_KCbAxLAPfI7_count": 1, + "tour_8K5G6Ryyod": 1652974207, + "tour_8K5G6Ryyod_count": 1, + "is_mailer_confirmation_enabled": true + }, + "cm_agreement_expiring_date": "", + "helphero_loading_data": { + "occupied": { + "past_days": 205, + "future_days": 102 + }, + "percent": { + "past_days": 88.36, + "future_days": 13.53 + } + }, + "helphero_loading_update_date": "2024-09-11", + "reports_block_trial_expiring_date": "2021-06-09", + "reports_block_disabled": true, + "preferences": { + "reservation_add": { + "name_required": 0, + "name_display": 0, + "surname_required": 0, + "surname_display": 0, + "phone_required": 1, + "phone_display": 1, + "email_required": 0, + "email_display": 1, + "tags_required": 0, + "tags_display": 0, + "notes_required": 0, + "notes_display": 1, + "services_required": 0, + "services_display": 1, + "source_required": 1, + "source_display": 1, + "marketing": { + "marketing_4287_required": 0, + "marketing_4287_display": 1, + "marketing_4288_required": 0, + "marketing_4288_display": 1 + } + } + }, + "unmapped_ota": { + "24449": { + "ota_id": "booking", + "ota_hotel_id": "1104563", + "ota_name": "Booking.com", + "error": "ota_error", + "error_text": "[\"Authorization Required [code: 401]\"]" + }, + "6030": { + "ota_id": "expedia", + "ota_hotel_id": "23084446", + "ota_name": "Expedia", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "177256": [], + "46376": { + "ota_id": "sutochno", + "ota_hotel_id": "AD1HonNHG0KozUNmLZQB", + "ota_name": "Суточно.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "91914": { + "ota_id": "acase", + "ota_hotel_id": "1502525", + "ota_name": "Academservice", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "110863": { + "ota_id": "hotels101", + "ota_hotel_id": "13843", + "ota_name": "101Hotels.com (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "31425": { + "ota_id": "onetwotrip", + "ota_hotel_id": "5918", + "ota_name": "OneTwoTrip!", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "84580": { + "ota_id": "otello", + "ota_hotel_id": "18fe60fc-db55-525b-947d-485326fe49e1", + "ota_name": "Otello", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "118131": { + "ota_id": "bronevik2", + "ota_hotel_id": "13011", + "ota_name": "Bronevik.com/MTC Travel (новая версия)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "6084": { + "ota_id": "aanda", + "ota_hotel_id": "13227", + "ota_name": "Забронируй.ру", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + }, + "144576": { + "ota_id": "uts", + "ota_hotel_id": "17231", + "ota_name": "Hbpro.expert (Hotelbook)", + "error": "ota_error", + "error_text": "SQLSTATE[25006]: Read only sql transaction: 7 ERROR: cannot execute UPDATE in a read-only transaction" + } + }, + "has_active_airbnb": 0, + "is_in_city": 0, + "max_children_age": 8, + "bnovobook_uid": "398d29d2-d249-4d3b-ae71-cceafeb2adc6", + "marketplace_apps": { + "hotelantifraud": { + "create_date": "2023-02-08 13:42:13", + "status_id": 1, + "user_id": "65355" + } + }, + "rms_enabled": 1, + "rateshopper_trial_expiring_date": "2024-07-22", + "rateshopper_disabled": true + }, + "language": "RU", + "bnovobook_secret_key": "ea8c336d3920d7f69117ac3710b0815b29badbea", + "booking_com_url": "", + "complete_quickstart": "1", + "ical_rate": null, + "providers": [ + { + "id": "3727", + "hotel_id": "2132", + "provider_id": "2", + "provider_name": null, + "username": "90", + "password": "", + "extra_credentials": null, + "is_initialized": null, + "is_push_active": "0", + "is_bookings_update_active": "0", + "is_active": "1", + "status": null, + "provider": null, + "channels": null, + "title": null, + "delible": null, + "alias": null, + "fields": null, + "template_folder_path": null, + "template_path_edit": null, + "template_path_add": null, + "template_path_confirm": null, + "template_path_settings": null, + "is_allowed_multiple": null, + "show_in_ui_select": null, + "show_in_ui_list": null, + "disconnect_before_delete": null + } + ], + "notification_emails": [], + "segment": { + "id": "1", + "name": "Bnovo", + "source": "bnovo.ru", + "extra": { + "tools": { + "ufms": { + "access": true + }, + "visas": { + "access": true + }, + "octopus": { + "access": true + }, + "teamjet": { + "access": true, + "video_url": "https://www.youtube.com/embed/DbfVCw1Joe4", + "price_currency": "RUB", + "price_per_room": 76, + "price_five_rooms": 380 + }, + "electronic_locks": { + "price": 750, + "access": true, + "regular_price": 1500, + "price_currency": "RUB", + "application_form": "https://docs.google.com/forms/d/e/1FAIpQLSfTLVBHYGmNXNAtuJ86yDhT2NoT_hDjXiXRKn1_7QJT6Kp7BQ/viewform?entry.818981689=%hotel_id%&entry.1778163468=%hotel_name%" + }, + "reports_loading_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + }, + "reports_services_rooms": { + "price": 75, + "access": true, + "price_currency": "RUB" + } + }, + "config": { + "from": "pms@bnovo.ru", + "pms_url": "https://online.bnovo.ru/", + "push_url": "https://push.bnovo.ru/", + "bnovo_url": "https://bnovo.ru", + "from_name": "Bnovo PMS", + "help_email": "help@bnovo.ru", + "help_phone": "+7 812 767 36 67", + "portal_url": "http://portal.pms.bnovo.ru/", + "social_url": "http://social.pms.bnovo.ru/", + "bnovo_rules": "https://bnovo.ru/legal/#rules3#rules1", + "cabinet_url": "https://cabinet.bnovo.ru/", + "beta_pms_url": "https://online.bnovo.ru/", + "copy_pms_url": "https://copy.bnovo.ru/", + "default_logo": "/public/img_v2/common/logo-vertical.svg", + "main_pms_url": "https://online.bnovo.ru/", + "bnovo_address": "191025, г. Санкт-Петербург, Невский пр-кт, д. 67", + "bnovobook_url": "https://reservationsteps.ru/", + "help_phone_ru": "8 800 222 74 43", + "product_title": "Bnovo", + "payment_ko_url": "http://bnovo.ru/", + "payment_ok_url": "http://bnovo.ru/", + "pms_url_mobile": "https://m.online.bnovo.ru/", + "payment_gateway": "https://payment.bnovo.ru/", + "social_links_fb": "https://www.facebook.com/Bnovo.ru", + "social_links_ig": "https://www.instagram.com/bnovo.ru", + "social_links_vk": "https://vk.com/bnovo", + "social_links_yt": "https://www.youtube.com/channel/UCxetnXfGO8R0liScAdx0kdg", + "default_mail_logo": "https://online.bnovo.ru/mailservice2.png", + "default_menu_logo": "/public/img/design/logo_nav.svg", + "booking_offers_url": "https://booking-offers.reservationsteps.ru/", + "social_links_group": "RU", + "default_favicon_path": "/", + "bnovobook_public_api_url": "https://public-api.reservationsteps.ru/" + }, + "reg_url": "https://bnovo.ru/demo-access", + "show_fz": true, + "show_chat": true, + "show_news": true, + "show_google_ads": true, + "show_demo_access": true, + "show_social_links": true, + "show_knowledge_base": true, + "show_virtual_assistant": true, + "show_payment_notifications": true + } + }, + "segment_id": "1", + "owner_email": "zayavki-yam@mail.ru", + "acts_prefix": "", + "acts_next_number": "1", + "acts_suffix": "", + "acts_has_invoice_numbers": "0", + "accounting_api_key": "", + "experiment": null, + "product_type": "3", + "country_id": "171", + "federal_district": null, + "region": null, + "dadata": null, + "reach_info": null, + "hasDefaultLogo": null, + "plans": [], + "images": [], + "notification_settings": { + "url": "wss://notification.bnovo.ru", + "channel": "71fb6837d180dd3a00d711e8546efdf335c2d726" + }, + "experimentsCodes": [] + }, + "source": { + "id": null, + "name": null, + "icon": null, + "commission": 0, + "has_bookings": 0, + "supplier_id": 0, + "supplier": [] + } + } + ], + "electronic_lock_keys": [], + "pages": { + "total_items": 19, + "items_per_page": 100, + "total_pages": 1, + "current_page": 1, + "current_first_item": 1, + "current_last_item": 19, + "previous_page": false, + "next_page": false, + "first_page": false, + "last_page": false, + "offset": 0 + }, + "is_bnovobook_active": true +} \ No newline at end of file diff --git a/bot/operations/hotels.py b/bot/operations/hotels.py index 387b4142..58ed584d 100644 --- a/bot/operations/hotels.py +++ b/bot/operations/hotels.py @@ -150,7 +150,7 @@ async def check_pms(update, context): # Проверка наличия fetch_data и вызов плагина if hasattr(pms_manager.plugin, 'fetch_data') and callable(pms_manager.plugin.fetch_data): report = await pms_manager.plugin.fetch_data() - logger.debug(f"Отчет типа: {type(report)}") + logger.debug(f"Отчет типа: {type(report)}: {report}") else: logger.error("Плагин не поддерживает fetch_data.") await query.edit_message_text("Подходящий способ интеграции с PMS не найден.") diff --git a/pms_integration/manager.py b/pms_integration/manager.py index 8e4065a5..67142006 100644 --- a/pms_integration/manager.py +++ b/pms_integration/manager.py @@ -18,7 +18,6 @@ class PluginLoader: print("Загрузка плагинов:") for file in os.listdir(PluginLoader.PLUGIN_PATH): if file.endswith("_pms.py") and not file.startswith("__"): - # print(f" Plugin {file}") module_name = f"pms_integration.plugins.{file[:-3]}" try: module = importlib.import_module(module_name) @@ -26,8 +25,8 @@ class PluginLoader: cls = getattr(module, attr) if isinstance(cls, type) and issubclass(cls, BasePMSPlugin) and cls is not BasePMSPlugin: plugin_name = file[:-7] # Убираем `_pms` из имени файла - # print(f" Загружен плагин {plugin_name}: {cls.__name__}") plugins[plugin_name] = cls + print(f" Загружен плагин {plugin_name}: {cls.__name__}") except Exception as e: print(f" Ошибка загрузки плагина {module_name}: {e}") return plugins @@ -40,6 +39,7 @@ class PMSIntegrationManager: """ self.hotel = hotel self.plugin = None + self.plugins = PluginLoader.load_plugins() def load_hotel(self): """ @@ -52,12 +52,14 @@ class PMSIntegrationManager: """ Загружает плагин, соответствующий PMS конфигурации отеля. """ - pms_name = self.hotel.pms.plugin_name.lower() # Приводим название плагина к нижнему регистру - if pms_name == "ecvi_intermark" or pms_name == "ecvi": - from pms_integration.plugins.ecvi_pms import EcviPMSPlugin - self.plugin = EcviPMSPlugin(self.hotel) + pms_name = self.hotel.pms.plugin_name.lower() + if pms_name in self.plugins: + plugin_class = self.plugins[pms_name] + self.plugin = plugin_class(self.hotel) + print(f"Плагин {pms_name} успешно загружен.") else: raise ValueError(f"Неизвестный PMS: {pms_name}") + def fetch_data(self): """ Получает данные из PMS с использованием загруженного плагина. diff --git a/pms_integration/plugins/bnovo_pms.py b/pms_integration/plugins/bnovo_pms.py index e624b32a..5e999dfa 100644 --- a/pms_integration/plugins/bnovo_pms.py +++ b/pms_integration/plugins/bnovo_pms.py @@ -1,3 +1,413 @@ +# import requests +# import json +# from datetime import datetime, timedelta +# from asgiref.sync import sync_to_async +# from .base_plugin import BasePMSPlugin +# from pms_integration.models import PMSConfiguration +# from hotels.models import Reservation, Hotel +# from touchh.utils.log import CustomLogger +# import logging + +# import logging + +# # Настройка логирования +# logging.basicConfig( +# level=logging.WARNING, # Установите уровень логов для всех обработчиков +# format='%(asctime)s [%(levelname)s] %(message)s', +# handlers=[ +# logging.FileHandler("bnovo_plugin.log"), # Логи пишутся в файл +# logging.StreamHandler() # Логи выводятся в консоль +# ] +# ) + +# # Создаем отдельный логгер для консоли с уровнем INFO +# console_handler = logging.StreamHandler() +# console_handler.setLevel(logging.INFO) # Меняем уровень логов для консоли +# console_handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')) + +# # Основной логгер +# logger = logging.getLogger("BnovoPMS Plugin") +# logger.addHandler(console_handler) +# logger.setLevel(logging.WARNING) # Основной уровень логов + +# class BnovoPMSPlugin(BasePMSPlugin): +# """Плагин для работы с PMS Bnovo.""" + +# def __init__(self, hotel): +# super().__init__(hotel) + +# if not isinstance(hotel, Hotel): +# logger.error("Ожидался объект Hotel, но получен другой тип.") +# raise ValueError("Для инициализации плагина требуется объект Hotel.") + +# self.hotel = hotel +# self.pms_config = hotel.pms # Связь отеля с PMSConfiguration +# if not self.pms_config: +# logger.error(f"Отель {hotel.id} не связан с конфигурацией PMS.") +# raise ValueError(f"Отель {hotel.id} не связан с конфигурацией PMS.") + +# self.api_url = self.pms_config.url.rstrip("/") +# self.username = self.pms_config.username +# self.password = self.pms_config.password +# self.token = None + +# if not self.api_url: +# logger.error("Не указан URL для работы плагина.") +# raise ValueError("Не указан URL для работы плагина.") +# if not self.username or not self.password: +# logger.error("Не указаны логин или пароль для авторизации.") +# raise ValueError("Не указаны логин или пароль для авторизации.") + +# def get_default_parser_settings(self): +# """Возвращает настройки по умолчанию для обработки данных.""" +# logger.debug("Получение настроек парсера по умолчанию.") +# return { +# "date_format": "%Y-%m-%dT%H:%M:%S", +# "timezone": "UTC" +# } + +# async def _get_stored_token(self): +# """Получение токена из конфигурации PMS отеля.""" +# try: +# logger.debug(f"Попытка получения токена для отеля {self.hotel.id}.") +# token = self.pms_config.token +# logger.debug(f"Токен из базы данных: {token}") +# return token +# except Exception as e: +# logger.warning(f"Ошибка при получении токена для отеля {self.hotel.id}: {e}") +# return None + +# async def _save_token_to_db(self, sid): +# """Сохраняет токен (SID) в конфигурации PMS отеля.""" +# try: +# logger.debug(f"Сохранение токена для отеля {self.hotel.id}: {sid}") +# self.pms_config.token = sid +# await sync_to_async(self.pms_config.save)() +# logger.debug("Токен успешно сохранен.") +# except Exception as e: +# logger.error(f"Ошибка сохранения токена для отеля {self.hotel.id}: {e}") + +# async def _ensure_token(self): +# """ +# Убеждается, что токен (SID) доступен. Если его нет, выполняет авторизацию. +# """ +# logger.debug(f"Проверка токена для отеля {self.hotel.id}.") +# if not self.token: +# self.token = await self._get_stored_token() + +# if not self.token: +# logger.info("Токен отсутствует, выполняем авторизацию.") +# await self._fetch_session() +# else: +# logger.debug(f"Используется сохраненный токен: {self.token}") + +# def _get_auth_headers(self): +# """Создает заголовки авторизации.""" +# logger.debug("Создание заголовков авторизации.") +# headers = { +# "Content-Type": "application/json", +# "Accept": "application/json", +# } +# if self.token: +# headers["Cookie"] = f"SID={self.token}" +# logger.debug(f"Добавлен токен в заголовки: {self.token}") +# return headers + +# async def _fetch_session(self): +# """Получение нового токена (SID) через запрос.""" +# url = f"{self.api_url}/" +# payload = {"username": self.username, "password": self.password} +# headers = self._get_auth_headers() + +# logger.debug(f"Авторизация по адресу: {url} с данными: {json.dumps(payload)}") +# response = requests.post(url, json=payload, headers=headers, allow_redirects=False) + +# logger.debug(f"Ответ авторизации: статус {response.status_code}, заголовки {response.headers}") +# if response.status_code == 302: +# cookies = response.cookies.get_dict() +# sid = cookies.get("SID") +# if sid: +# self.token = sid +# logger.debug(f"Получен новый SID: {sid}") +# await self._save_token_to_db(sid) +# else: +# logger.error("Не удалось извлечь SID из ответа.") +# raise ValueError("Не удалось извлечь SID из ответа.") +# else: +# logger.error(f"Ошибка авторизации: {response.status_code}, {response.text}") +# raise ValueError(f"Ошибка авторизации: {response.status_code}, {response.text}") + +# async def _fetch_account_data(self): +# """Получение данных аккаунта через эндпоинт /account/current.""" +# logger.info(f"Начало получения данных аккаунта для отеля {self.hotel.id}.") +# self.token = await self._get_stored_token() + +# if not self.token: +# logger.info("Токен отсутствует, выполняем авторизацию.") +# await self._fetch_session() + +# url = f"{self.api_url}/account/current" +# headers = self._get_auth_headers() + +# logger.debug(f"Выполнение запроса к {url}") +# response = requests.get(url, headers=headers) + +# if response.status_code != 200: +# logger.error(f"Ошибка при запросе данных аккаунта: {response.status_code}, {response.text}") +# raise ValueError("Ошибка запроса к /account/current") + +# try: +# account_data = response.json() +# logger.debug(f"Полученные данные аккаунта:") +# except json.JSONDecodeError as e: +# logger.error(f"Ошибка декодирования JSON: {e}") +# raise ValueError(f"Ошибка декодирования JSON: {e}") + +# return account_data + +# async def _fetch_and_log_account_data(self): +# """Вызов метода _fetch_account_data и вывод результата в лог.""" +# logger.info(f"Запуск получения и логирования данных аккаунта для отеля {self.hotel.id}.") +# try: +# account_data = await self._fetch_account_data() +# logger.info(f"Успешно полученные данные аккаунта:") +# return account_data +# except Exception as e: +# logger.error(f"Ошибка при получении данных аккаунта: {e}") +# raise + +# async def _fetch_data_with_account_info(self): +# """Получение данных аккаунта и бронирований.""" +# logger.info(f"Запуск процесса получения данных аккаунта и бронирований для отеля {self.hotel.id}.") +# try: +# account_data = await self.fetch_and_log_account_data() +# logger.info("Данные аккаунта успешно получены, продолжение с бронированиями.") +# await self.__fetch_data() +# except Exception as e: +# logger.error(f"Ошибка при выполнении полной операции: {e}") + +# async def _fetch_paginated_data(self): +# """ +# Получает все данные с API, обрабатывая страницы с пагинацией. +# """ +# logger.info("Начало получения данных с пагинацией.") +# await self._ensure_token() +# url = f"{self.api_url}/dashboard" +# headers = self._get_auth_headers() + +# now = datetime.now() +# create_from = (now - timedelta(days=1)).strftime("%d.%m.%Y") +# create_to = now.strftime("%d.%m.%Y") + +# params = { +# "create_from": create_from, +# "create_to": create_to, +# "advanced_search": 2, +# "c": 100, +# "page": 1, +# "order_by": "create_date.asc", +# } + +# all_bookings = [] +# try: +# while True: +# logger.debug(f"Запрос к {url} с параметрами: {json.dumps(params, indent=2)}") +# response = requests.get(url, headers=headers, params=params, allow_redirects=False) + +# if response.status_code == 302: +# logger.warning("Получен код 302. Перенаправление.") +# await self._fetch_session() +# headers = self._get_auth_headers() +# response = requests.get(url, headers=headers, params=params) + +# if response.status_code != 200: +# logger.error(f"Ошибка при запросе: {response.status_code}, {response.text}") +# raise ValueError("Ошибка при получении данных.") + +# data = response.json() +# bookings = data.get("bookings", []) +# all_bookings.extend(bookings) + +# # Проверка окончания пагинации +# pages_info = data.get("pages", {}) +# current_page = pages_info.get("current_page", 1) +# total_pages = pages_info.get("total_pages", 1) + +# logger.debug(f"Информация о страницах: текущая {current_page}, всего {total_pages}") +# if current_page >= total_pages: +# break + +# params["page"] += 1 + +# except Exception as e: +# logger.error(f"Ошибка при обработке данных: {e}") +# raise + +# logger.info(f"Всего бронирований: {len(all_bookings)}") +# return all_bookings + +# async def _save_hotel_data(self, hotel_data): +# """ +# Сохраняет данные об отеле в базу. +# """ +# try: +# hotel_id = hotel_data.get("id") +# if not hotel_id: +# logger.warning("Данные об отеле не содержат идентификатор.") +# return + +# await sync_to_async(Hotel.objects.update_or_create)( +# external_id=hotel_id, +# defaults={ +# "name": hotel_data.get("name"), +# "address": hotel_data.get("address"), +# "city": hotel_data.get("city"), +# "timezone": hotel_data.get("timezone"), +# "rating": hotel_data.get("rating"), +# "phone": hotel_data.get("phone"), +# "email": hotel_data.get("email"), +# "country": hotel_data.get("country"), +# "booking_url": hotel_data.get("booking_url"), +# "tripadvisor_url": hotel_data.get("tripadvisor_url"), +# }, +# ) +# logger.info(f"Информация об отеле {hotel_id} успешно обновлена.") +# except Exception as e: +# logger.error(f"Ошибка при сохранении данных об отеле: {e}") +# async def _fetch_data(self): +# """ +# Получает данные о бронированиях с API и возвращает их. +# """ +# logger.info("Начало процесса получения данных о бронированиях.") +# try: +# await self._ensure_token() # Проверка токена +# url = f"{self.api_url}/dashboard" +# headers = self._get_auth_headers() +# now = datetime.now() +# create_from = (now - timedelta(days=1)).strftime("%d.%m.%Y") +# create_to = now.strftime("%d.%m.%Y") + +# params = { +# "create_from": create_from, +# "create_to": create_to, +# "advanced_search": 2, +# "c": 100, +# "page": 1, +# "order_by": "create_date.asc", +# } + +# all_data = [] + +# while True: +# logger.debug(f"Запрос к {url} с параметрами: {json.dumps(params, indent=2)}") +# response = requests.get(url, headers=headers, params=params, allow_redirects=False) + +# if response.status_code == 302: +# logger.warning("Получен код 302. Перенаправление.") +# await self._fetch_session() # Обновляем токен +# headers = self._get_auth_headers() +# continue + +# if response.status_code != 200: +# logger.error(f"Ошибка при запросе: {response.status_code}, {response.text}") +# raise ValueError(f"Ошибка при получении данных: {response.text}") + +# try: +# data = response.json() +# except json.JSONDecodeError as e: +# logger.error(f"Ошибка декодирования JSON: {e}. Ответ: {response.text}") +# raise ValueError(f"Ошибка декодирования JSON: {e}") + +# bookings = data.get("bookings", []) +# logger.debug(f"Получено бронирований: {len(bookings)}") +# all_data.extend(bookings) + +# # Проверка окончания пагинации +# pages_info = data.get("pages", {}) +# current_page = pages_info.get("current_page", 1) +# total_pages = pages_info.get("total_pages", 1) + +# logger.debug(f"Текущая страница: {current_page}, всего страниц: {total_pages}") +# if current_page >= total_pages: +# break + +# params["page"] += 1 + +# if not all_data: +# logger.error("Полученные данные пусты или отсутствуют бронирования.") +# raise ValueError("API вернуло пустые данные.") + +# logger.info(f"Всего бронирований: {len(all_data)}") +# return all_data + +# except Exception as e: +# logger.error(f"Ошибка при получении данных: {e}") +# raise + + +# async def _process_and_save_data(self, data): +# """ +# Обрабатывает и сохраняет данные о бронированиях в базу. +# """ +# logger.info("Начало обработки данных о бронированиях для сохранения в базу.") +# processed_items = 0 +# errors = [] + +# for record in data: +# try: +# booking_id = record.get("id") +# room_number = record.get("current_room") +# arrival = record.get("arrival") +# departure = record.get("departure") +# status = record.get("status_name") + +# # Проверка обязательных данных +# if not (booking_id and room_number and arrival and departure and status): +# logger.warning(f"Пропуск записи из-за отсутствия обязательных данных: {record}") +# continue + +# # Сохраняем или обновляем запись в базе данных +# reservation, created = await sync_to_async(Reservation.objects.update_or_create)( +# external_id=booking_id, +# defaults={ +# "hotel": self.hotel, +# "status": status, +# "room_number": room_number, +# "check_in": arrival, +# "check_out": departure, +# }, +# ) +# if created: +# logger.info(f"Создана новая запись бронирования: {reservation}") +# else: +# logger.info(f"Обновлено существующее бронирование: {reservation}") + +# processed_items += 1 + +# except Exception as e: +# logger.error(f"Ошибка обработки бронирования {record.get('id')}: {e}") +# errors.append(str(e)) + +# logger.info(f"Обработано бронирований: {processed_items}, ошибок: {len(errors)}") +# return {"processed_items": processed_items, "errors": errors} + + + +# async def fetch_and_process_data(self): +# """ +# Загружает данные с API и сохраняет их в базу. +# """ +# logger.info("Начало процесса загрузки и обработки данных.") +# try: +# data = await self._fetch_paginated_data() +# report = await self._process_and_save_data(data) +# logger.info(f"Загрузка и обработка завершены. Отчет: {report}") +# return report +# except Exception as e: +# logger.error(f"Ошибка в процессе загрузки и обработки данных: {e}") +# raise + + import requests import json from datetime import datetime, timedelta @@ -5,61 +415,38 @@ from asgiref.sync import sync_to_async from .base_plugin import BasePMSPlugin from pms_integration.models import PMSConfiguration from hotels.models import Reservation, Hotel -from touchh.utils.log import CustomLogger -import logging - import logging # Настройка логирования logging.basicConfig( - level=logging.WARNING, # Установите уровень логов для всех обработчиков + level=logging.WARNING, format='%(asctime)s [%(levelname)s] %(message)s', handlers=[ - logging.FileHandler("bnovo_plugin.log"), # Логи пишутся в файл - logging.StreamHandler() # Логи выводятся в консоль + logging.FileHandler("bnovo_plugin.log"), + logging.StreamHandler() ] ) -# Создаем отдельный логгер для консоли с уровнем INFO -console_handler = logging.StreamHandler() -console_handler.setLevel(logging.WARNING) # Меняем уровень логов для консоли -console_handler.setFormatter(logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')) - -# Основной логгер logger = logging.getLogger("BnovoPMS Plugin") -logger.addHandler(console_handler) -logger.setLevel(logging.WARNING) # Основной уровень логов +logger.setLevel(logging.INFO) + class BnovoPMSPlugin(BasePMSPlugin): """Плагин для работы с PMS Bnovo.""" def __init__(self, hotel): super().__init__(hotel) - - if not isinstance(hotel, Hotel): - logger.error("Ожидался объект Hotel, но получен другой тип.") - raise ValueError("Для инициализации плагина требуется объект Hotel.") - self.hotel = hotel - self.pms_config = hotel.pms # Связь отеля с PMSConfiguration - if not self.pms_config: - logger.error(f"Отель {hotel.id} не связан с конфигурацией PMS.") - raise ValueError(f"Отель {hotel.id} не связан с конфигурацией PMS.") - + self.pms_config = hotel.pms self.api_url = self.pms_config.url.rstrip("/") self.username = self.pms_config.username self.password = self.pms_config.password self.token = None - if not self.api_url: - logger.error("Не указан URL для работы плагина.") - raise ValueError("Не указан URL для работы плагина.") - if not self.username or not self.password: - logger.error("Не указаны логин или пароль для авторизации.") - raise ValueError("Не указаны логин или пароль для авторизации.") - def get_default_parser_settings(self): - """Возвращает настройки по умолчанию для обработки данных.""" + """ + Возвращает настройки по умолчанию для обработки данных. + """ logger.debug("Получение настроек парсера по умолчанию.") return { "date_format": "%Y-%m-%dT%H:%M:%S", @@ -67,28 +454,25 @@ class BnovoPMSPlugin(BasePMSPlugin): } async def _get_stored_token(self): - """Получение токена из конфигурации PMS отеля.""" + """ + Получает токен из конфигурации PMS отеля. + """ try: logger.debug(f"Попытка получения токена для отеля {self.hotel.id}.") token = self.pms_config.token - logger.debug(f"Токен из базы данных: {token}") + if not token: + logger.info("Токен отсутствует в конфигурации.") + else: + logger.debug(f"Токен найден: {token}") return token except Exception as e: - logger.warning(f"Ошибка при получении токена для отеля {self.hotel.id}: {e}") + logger.error(f"Ошибка при получении токена для отеля {self.hotel.id}: {e}") return None - - async def _save_token_to_db(self, sid): - """Сохраняет токен (SID) в конфигурации PMS отеля.""" - try: - logger.debug(f"Сохранение токена для отеля {self.hotel.id}: {sid}") - self.pms_config.token = sid - await sync_to_async(self.pms_config.save)() - logger.debug("Токен успешно сохранен.") - except Exception as e: - logger.error(f"Ошибка сохранения токена для отеля {self.hotel.id}: {e}") - + def _get_auth_headers(self): - """Создает заголовки авторизации.""" + """ + Создает заголовки авторизации для запросов к API. + """ logger.debug("Создание заголовков авторизации.") headers = { "Content-Type": "application/json", @@ -97,96 +481,64 @@ class BnovoPMSPlugin(BasePMSPlugin): if self.token: headers["Cookie"] = f"SID={self.token}" logger.debug(f"Добавлен токен в заголовки: {self.token}") + else: + logger.warning("Токен отсутствует, запрос может быть неавторизованным.") return headers - async def _fetch_session(self): - """Получение нового токена (SID) через запрос.""" - url = f"{self.api_url}/" - payload = {"username": self.username, "password": self.password} - headers = self._get_auth_headers() - logger.debug(f"Авторизация по адресу: {url} с данными: {json.dumps(payload)}") - response = requests.post(url, json=payload, headers=headers, allow_redirects=False) - - logger.debug(f"Ответ авторизации: статус {response.status_code}, заголовки {response.headers}") - if response.status_code == 302: - cookies = response.cookies.get_dict() - sid = cookies.get("SID") - if sid: - self.token = sid - logger.debug(f"Получен новый SID: {sid}") - await self._save_token_to_db(sid) - else: - logger.error("Не удалось извлечь SID из ответа.") - raise ValueError("Не удалось извлечь SID из ответа.") - else: - logger.error(f"Ошибка авторизации: {response.status_code}, {response.text}") - raise ValueError(f"Ошибка авторизации: {response.status_code}, {response.text}") - - async def _fetch_account_data(self): - """Получение данных аккаунта через эндпоинт /account/current.""" - logger.info(f"Начало получения данных аккаунта для отеля {self.hotel.id}.") - self.token = await self._get_stored_token() + async def _ensure_token(self): + """ + Убеждается, что токен (SID) доступен. Если его нет, выполняет авторизацию. + """ + logger.debug(f"Проверка токена для отеля {self.hotel.id}.") + if not self.token: + self.token = await self._get_stored_token() if not self.token: logger.info("Токен отсутствует, выполняем авторизацию.") await self._fetch_session() + else: + logger.debug(f"Используется сохраненный токен: {self.token}") - url = f"{self.api_url}/account/current" - headers = self._get_auth_headers() - - logger.debug(f"Выполнение запроса к {url}") - response = requests.get(url, headers=headers) - - if response.status_code != 200: - logger.error(f"Ошибка при запросе данных аккаунта: {response.status_code}, {response.text}") - raise ValueError("Ошибка запроса к /account/current") - + async def _save_token_to_db(self, sid): + """ + Сохраняет токен (SID) в конфигурации PMS отеля. + """ try: - account_data = response.json() - logger.debug(f"Полученные данные аккаунта:") - except json.JSONDecodeError as e: - logger.error(f"Ошибка декодирования JSON: {e}") - raise ValueError(f"Ошибка декодирования JSON: {e}") - - return account_data - - async def _fetch_and_log_account_data(self): - """Вызов метода _fetch_account_data и вывод результата в лог.""" - logger.info(f"Запуск получения и логирования данных аккаунта для отеля {self.hotel.id}.") - try: - account_data = await self._fetch_account_data() - logger.info(f"Успешно полученные данные аккаунта:") - return account_data + logger.debug(f"Сохранение токена для отеля {self.hotel.id}: {sid}") + self.pms_config.token = sid + await sync_to_async(self.pms_config.save)() + logger.info(f"Токен {sid} успешно сохранен в базу данных.") except Exception as e: - logger.error(f"Ошибка при получении данных аккаунта: {e}") + logger.error(f"Ошибка сохранения токена для отеля {self.hotel.id}: {e}") raise - async def _fetch_data_with_account_info(self): - """Получение данных аккаунта и бронирований.""" - logger.info(f"Запуск процесса получения данных аккаунта и бронирований для отеля {self.hotel.id}.") - try: - account_data = await self.fetch_and_log_account_data() - logger.info("Данные аккаунта успешно получены, продолжение с бронированиями.") - await self.__fetch_data() - except Exception as e: - logger.error(f"Ошибка при выполнении полной операции: {e}") + async def _fetch_session(self): + """Получение токена (SID) через авторизацию.""" + url = f"{self.api_url}/" + payload = {"username": self.username, "password": self.password} + headers = {"Content-Type": "application/json"} + await self._save_token_to_db(self.token) - async def _fetch_data(self): - """Получение данных о бронированиях с помощью эндпоинта /dashboard.""" - logger.info("Начало процесса получения данных о бронированиях.") - - # # Вызов функции получения данных аккаунта - # try: - # account_data = await self._fetch_and_log_account_data() - # logger.info(f"Данные аккаунта успешно получены:") - # except Exception as e: - # logger.error(f"Ошибка получения данных аккаунта: {e}") - # raise + response = requests.post(url, json=payload, headers=headers, allow_redirects=False) + if response.status_code == 302: + self.token = response.cookies.get("SID") + await self._save_token_to_db(self.token) + else: + logger.error(f"Ошибка авторизации: {response.status_code}, {response.text}") + raise ValueError("Ошибка авторизации") + async def _fetch_paginated_data(self): + """ + Получает все данные с API, обрабатывая страницы с пагинацией. + """ + logger.info("Начало получения данных с пагинацией.") + await self._ensure_token() url = f"{self.api_url}/dashboard" + headers = self._get_auth_headers() + now = datetime.now() - create_from = (now - timedelta(days=1)).strftime("%d.%m.%Y") + create_from = (now - timedelta(days=7)).strftime("%d.%m.%Y") # Получаем данные за последнюю неделю create_to = now.strftime("%d.%m.%Y") params = { @@ -197,85 +549,111 @@ class BnovoPMSPlugin(BasePMSPlugin): "page": 1, "order_by": "create_date.asc", } - headers = self._get_auth_headers() all_bookings = [] - while True: - logger.debug(f"Запрос к {url} с параметрами: {json.dumps(params, indent=2)}") - try: + try: + while True: + logger.debug(f"Запрос к {url} с параметрами: {json.dumps(params, indent=2)}") response = requests.get(url, headers=headers, params=params, allow_redirects=False) if response.status_code == 302: logger.warning("Получен код 302. Перенаправление.") - redirected_url = response.headers.get("Location") - if redirected_url: - logger.debug(f"Перенаправление на {redirected_url}") - url = redirected_url - continue - else: - logger.error("Ответ с кодом 302 не содержит заголовка Location.") - raise ValueError("Перенаправление без указанного URL.") + await self._fetch_session() + headers = self._get_auth_headers() + continue if response.status_code != 200: logger.error(f"Ошибка при запросе: {response.status_code}, {response.text}") - raise ValueError("Ошибка запроса к /dashboard") + raise ValueError(f"Ошибка при получении данных: {response.text}") data = response.json() + logger.debug(f"Полученный ответ API: {json.dumps(data, indent=2, ensure_ascii=False)}") bookings = data.get("bookings", []) - rooms = data.get("rooms", []) - - - logger.debug(f'bookings: {bookings}\n rooms: {rooms}') + logger.info(f"Получено бронирований: {len(bookings)}") all_bookings.extend(bookings) - logger.info(f"Получено бронирований: {len(bookings)}. Всего: {len(all_bookings)}.") - pages_info = data.get("pages", {}) current_page = pages_info.get("current_page", 1) total_pages = pages_info.get("total_pages", 1) - logger.debug(f"Информация о страницах: текущая {current_page}, всего {total_pages}") if current_page >= total_pages: break params["page"] += 1 + except Exception as e: + logger.error(f"Ошибка при обработке данных: {e}") + raise - except json.JSONDecodeError as e: - logger.error(f"Ошибка декодирования JSON: {e}. Ответ: {response.text}") - raise ValueError(f"Ошибка декодирования JSON: {e}") - except Exception as e: - logger.error(f"Неизвестная ошибка при обработке запроса: {e}") - raise + async def _process_and_save_bookings(self, bookings): + """ + Обрабатывает и сохраняет бронирования в базу. + """ + logger.info("Начало обработки данных о бронированиях для сохранения в базу.") + processed_items = 0 + errors = [] - # Сопоставляем бронирования с существующими записями - for booking in all_bookings: + for record in bookings: try: - booking_id = booking.get("id") - hotel_id = booking.get("hotel_id") + booking_id = record.get("id") + room_number = record.get("current_room") + arrival = record.get("arrival") + departure = record.get("departure") + status = record.get("status_name") - if hotel_id != str(self.hotel.external_id_pms): - logger.debug(f"Бронирование {booking_id} не относится к отелю {self.hotel.external_id_pms}. Пропуск.") + # Проверка обязательных данных + if not (booking_id and room_number and arrival and departure and status): + logger.warning(f"Пропуск записи из-за отсутствия обязательных данных: {record}") continue + # Сохраняем или обновляем запись в базе данных reservation, created = await sync_to_async(Reservation.objects.update_or_create)( external_id=booking_id, - defaults = { - "hotel": self.hotel, # Объект модели Hotel - "status": booking.get("status_name"), # Статус бронирования - "room_number": booking.get("current_room"), # Номер комнаты (исправлено с create_date) - "check_in": booking.get("arrival"), # Дата заезда - "check_out": booking.get("departure"), # Дата выезда - "room_type": booking.get("initial_room_type_name") # Тип комнаты - } + defaults={ + "hotel": self.hotel, + "status": status, + "room_number": room_number, + "check_in": arrival, + "check_out": departure, + }, ) + if created: logger.info(f"Создана новая запись бронирования: {reservation}") + print(reservation) else: logger.info(f"Обновлено существующее бронирование: {reservation}") - except Exception as e: - logger.error(f"Ошибка обработки бронирования {booking.get('id')}: {e}") + processed_items += 1 - logger.info(f"Все бронирования получены и обработаны. Итоговое количество: {len(all_bookings)}") - return all_bookings + except Exception as e: + logger.error(f"Ошибка обработки бронирования {record.get('id')}: {e}") + errors.append(str(e)) + + logger.info(f"Обработано бронирований: {processed_items}, ошибок: {len(errors)}") + return {"processed_items": processed_items, "errors": errors} + + + async def _fetch_data(self): + """ + Получает данные о бронированиях с API и возвращает их. + """ + logger.info("Начало процесса получения данных о бронированиях.") + try: + bookings = await self._fetch_paginated_data() # Получаем данные с пагинацией + return bookings + except Exception as e: + logger.error(f"Ошибка в процессе получения данных: {e}") + raise ValueError("Ошибка при получении данных о бронированиях") + + async def fetch_and_process_data(self): + """Получение данных с API, обработка и сохранение в базу.""" + logger.info("Начало загрузки данных с API") + try: + bookings = await self._fetch_paginated_data() + report = await self._process_and_save_bookings(bookings) + logger.info(f"Данные успешно обработаны. Отчет: {report}") + return report + except Exception as e: + logger.error(f"Ошибка загрузки и обработки данных: {e}") + raise diff --git a/pms_integration/plugins/shelter_pms.py b/pms_integration/plugins/shelter_pms.py index 8b81fbb3..0d8e2132 100644 --- a/pms_integration/plugins/shelter_pms.py +++ b/pms_integration/plugins/shelter_pms.py @@ -1,3 +1,130 @@ +# import logging +# import requests +# from datetime import datetime, timedelta +# from asgiref.sync import sync_to_async +# from pms_integration.models import PMSConfiguration +# from hotels.models import Hotel, Reservation +# from .base_plugin import BasePMSPlugin + + +# class ShelterPMSPlugin(BasePMSPlugin): +# """ +# Плагин для интеграции с PMS Shelter. +# """ + +# def __init__(self, pms_config): +# super().__init__(pms_config) + +# # Настройка логирования +# self.logger = logging.getLogger(self.__class__.__name__) +# handler = logging.StreamHandler() +# formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') +# handler.setFormatter(formatter) +# self.logger.addHandler(handler) +# self.logger.setLevel(logging.DEBUG) + +# # Инициализация параметров API +# self.api_url = pms_config.url +# self.token = pms_config.token +# self.username = pms_config.username +# self.password = pms_config.password + +# def get_default_parser_settings(self): +# """ +# Возвращает настройки парсера по умолчанию. +# """ +# return { +# "field_mapping": { +# "check_in": "checkin", +# "check_out": "checkout", +# "room_number": "room_number", +# "room_type": "room_type", +# "status": "status", +# }, +# "date_format": "%Y-%m-%dT%H:%M:%S" +# } + +# async def _fetch_data(self): +# """ +# Получает данные из Shelter PMS API и сохраняет их в базу данных. +# """ +# now = datetime.now() +# start_date = (now - timedelta(days=1)).strftime('%Y-%m-%d') +# end_date = now.strftime('%Y-%m-%d') + +# headers = { +# "Authorization": f"Bearer {self.token}", +# "Content-Type": "application/json", +# } +# params = { +# "start_date": start_date, +# "end_date": end_date, +# } + +# try: +# response = await sync_to_async(requests.get)(f"{self.api_url}/reservations", headers=headers, params=params) +# response.raise_for_status() +# data = response.json() +# self.logger.debug(f"Получены данные с API: {data}") +# except requests.exceptions.RequestException as e: +# self.logger.error(f"Ошибка запроса к API Shelter: {e}") +# return [] + +# # Обработка и сохранение данных +# processed_data = [] +# for item in data.get("reservations", []): +# processed_item = { +# "room_number": item.get("room_number"), +# "check_in": datetime.strptime(item.get("check_in"), '%Y-%m-%dT%H:%M:%S'), +# "check_out": datetime.strptime(item.get("check_out"), '%Y-%m-%dT%H:%M:%S'), +# "status": item.get("status"), +# "room_type": item.get("room_type"), +# } +# processed_data.append(processed_item) +# await self._save_to_db(processed_item) + +# self.logger.debug("Все данные успешно сохранены в базу данных.") +# return processed_data + +# async def _save_to_db(self, item): +# """ +# Сохраняет данные в базу данных. +# """ +# try: +# hotel = await sync_to_async(Hotel.objects.get)(pms=self.pms_config) + +# reservation, created = await sync_to_async(Reservation.objects.update_or_create)( +# room_number=item["room_number"], +# check_in=item["check_in"], +# defaults={ +# "check_out": item["check_out"], +# "status": item["status"], +# "hotel": hotel, +# "room_type": item["room_type"], +# }, +# ) + +# if created: +# self.logger.debug(f"Создана новая запись бронирования: {reservation}") +# else: +# self.logger.debug(f"Обновлено существующее бронирование: {reservation}") + +# except Exception as e: +# self.logger.error(f"Ошибка при сохранении данных в БД: {e}") + +# async def fetch_and_process_data(self): +# """ +# Загружает данные с API Shelter и сохраняет их в базу данных. +# """ +# self.logger.info("Начало процесса загрузки данных из Shelter PMS.") +# try: +# data = await self._fetch_data() +# self.logger.info(f"Загрузка и обработка данных завершены. Обработано записей: {len(data)}") +# return data +# except Exception as e: +# self.logger.error(f"Ошибка в процессе загрузки данных: {e}") +# raise + import logging import requests from datetime import datetime, timedelta @@ -6,144 +133,132 @@ from pms_integration.models import PMSConfiguration from hotels.models import Hotel, Reservation from .base_plugin import BasePMSPlugin - -class EcviPMSPlugin(BasePMSPlugin): +class ShelterPMSPlugin(BasePMSPlugin): """ - Плагин для интеграции с PMS Ecvi (интерфейс для получения данных об отеле). + Плагин для интеграции с PMS Shelter (интерфейс для получения данных об отеле). """ def __init__(self, pms_config): super().__init__(pms_config) - - # Инициализация логгера - self.logger = logging.getLogger(self.__class__.__name__) # Логгер с именем класса - handler = logging.StreamHandler() # Потоковый обработчик для вывода в консоль + self.logger = logging.getLogger(self.__class__.__name__) + handler = logging.StreamHandler() formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(message)s') handler.setFormatter(formatter) self.logger.addHandler(handler) - self.logger.setLevel(logging.DEBUG) # Уровень логирования + self.logger.setLevel(logging.DEBUG) - # Инициализация параметров API - self.api_url = pms_config.url - self.token = pms_config.token - self.username = pms_config.username - self.password = pms_config.password - self.pagination_count = 50 # Максимальное количество записей на страницу (если используется пагинация) + self.api_url = "https://pms.frontdesk24.ru/sheltercloudapi/Reservations/" + self.access_token = "679CA9C5-9847-4151-883E-5F61181AA37E" def get_default_parser_settings(self): """ - Возвращает настройки парсера по умолчанию. + Возвращает настройки по умолчанию для обработки данных. """ return { "field_mapping": { - "check_in": "checkin", - "check_out": "checkout", - "room_number": "room_name", - "room_type_name": "room_type", - "status": "occupancy", + "check_in": "check_in", + "check_out": "check_out", + "room_number": "room_number", + "status": "status", }, - "date_format": "%Y-%m-%dT%H:%M:%S" + "date_format": "%Y-%m-%dT%H:%M:%S", } async def _fetch_data(self): """ - Получает данные из PMS API, фильтрует и сохраняет в базу данных. + Получает данные бронирований с API PMS Shelter. """ - now = datetime.now() - current_date = now.strftime('%Y-%m-%d') - yesterday_date = (now - timedelta(days=1)).strftime('%Y-%m-%d') - - headers = { - "Content-Type": "application/json", - } - data = { - "token": self.token, - } - try: - # Запрос данных из PMS API - response = await sync_to_async(requests.post)(self.api_url, headers=headers, json=data, auth=(self.username, self.password)) - response.raise_for_status() # Если ошибка, выбросит исключение - data = response.json() # Преобразуем ответ в JSON - self.logger.debug(f"Получены данные с API: {data}") - except requests.exceptions.RequestException as e: - self.logger.error(f"Ошибка запроса: {e}") - return [] + # Формируем параметры запроса + now = datetime.now() + create_from = (now - timedelta(days=7)).strftime("%Y-%m-%d") + create_to = now.strftime("%Y-%m-%d") - # Фильтрация данных - filtered_data = [] - for item in data: - if item.get('occupancy') in ['проживание', 'под выезд', 'под заезд']: - filtered_item = { - 'checkin': datetime.strptime(item.get('checkin'), '%Y-%m-%d %H:%M:%S'), - 'checkout': datetime.strptime(item.get('checkout'), '%Y-%m-%d %H:%M:%S'), - 'room_number': item.get('room_name'), - 'room_type': item.get('room_type'), - 'status': item.get('occupancy') + data = { + "from": create_from, + "until": create_to, + "pagination": { + "from": 0, + "count": 100 } - filtered_data.append(filtered_item) + } - # Логируем результат фильтрации - self.logger.debug(f"Отфильтрованные данные: {filtered_data}") + headers = { + "Content-Type": "application/json", + "Accept": "text/plain", + "Authorization": f"Bearer {self.access_token}" + } - # Сохранение данных в базу данных - for item in filtered_data: - await self._save_to_db(item) + # Логирование запроса + self.logger.debug(f"Отправка запроса к API: {self.api_url}") + self.logger.debug(f"Тело запроса: {data}") + self.logger.debug(f"Заголовки: {headers}") - self.logger.debug(f"Данные успешно сохранены.") - return filtered_data + # Выполняем запрос + response = requests.post(self.api_url, json=data, headers=headers) + response.raise_for_status() - async def _save_to_db(self, item): + # Обрабатываем ответ + bookings = response.json() + self.logger.info(f"Получено бронирований: {len(bookings)}") + return bookings + + except requests.HTTPError as http_err: + self.logger.error(f"HTTP ошибка: {http_err}") + self.logger.error(f"Текст ответа: {response.text if 'response' in locals() else 'Нет данных'}") + raise + except Exception as e: + self.logger.error(f"Ошибка получения данных PMS Shelter: {e}") + raise + + async def fetch_and_process_data(self): """ - Сохраняет данные в БД (например, информацию о номере). + Получение данных с API, обработка и сохранение в базу. """ + self.logger.info("Начало загрузки данных с API Shelter") try: - # Проверяем, что item — это словарь - if not isinstance(item, dict): - self.logger.error(f"Ожидался словарь, но получен: {type(item)}. Данные: {item}") - return + bookings = await self._fetch_data() + report = await self._process_and_save_bookings(bookings) + self.logger.info(f"Данные успешно обработаны. Отчет: {report}") + return report + except Exception as e: + self.logger.error(f"Ошибка загрузки и обработки данных: {e}") + raise - # Получаем отель по настройкам PMS - hotel = await sync_to_async(Hotel.objects.get)(pms=self.pms_config) - self.logger.debug(f"Отель найден: {hotel.name}") + async def _process_and_save_bookings(self, bookings): + """ + Обрабатывает и сохраняет бронирования в базу данных. + """ + self.logger.info("Начало обработки данных о бронированиях для сохранения в базу.") + processed_items = 0 + errors = [] - # Сохраняем данные бронирования - room_number = item.get("room_number") - check_in = item.get("checkin") - check_out = item.get("checkout") - room_type = item.get("room_type") + for record in bookings: + try: + # Пример обработки данных бронирования + booking_id = record.get("id") + room_number = record.get("room_number") + check_in = record.get("check_in") + check_out = record.get("check_out") + status = record.get("status") - # Логируем полученные данные - self.logger.debug(f"Полученные данные для сохранения: room_number={room_number}, check_in={check_in}, check_out={check_out}, room_type={room_type}") - - # Проверяем, существует ли запись с таким номером и датой заезда - existing_reservation = await sync_to_async( - Reservation.objects.filter(room_number=room_number, check_in=check_in).first - )() - - if existing_reservation: - self.logger.debug(f"Резервация с таким номером и датой заезда уже существует. Обновляем...") - await sync_to_async(Reservation.objects.update_or_create)( - room_number=room_number, - check_in=check_in, + # Сохраняем или обновляем запись в базе данных + reservation, created = await sync_to_async(Reservation.objects.update_or_create)( + external_id=booking_id, defaults={ + "hotel": self.pms_config.hotel, + "room_number": room_number, + "check_in": check_in, "check_out": check_out, - "hotel": hotel, - "room_type": room_type, + "status": status, }, ) - self.logger.debug(f"Обновлена существующая резервация.") - else: - self.logger.debug(f"Резервация не найдена, создаем новую...") - reservation = await sync_to_async(Reservation.objects.create)( - room_number=room_number, - check_in=check_in, - check_out=check_out, - hotel=hotel, - room_type=room_type, - ) - self.logger.debug(f"Создана новая резервация. ID: {reservation.reservation_id}") - except Exception as e: - self.logger.error(f"Ошибка сохранения данных: {e}") + processed_items += 1 + except Exception as e: + self.logger.error(f"Ошибка обработки бронирования {record.get('id')}: {e}") + errors.append(str(e)) + + self.logger.info(f"Обработано бронирований: {processed_items}, ошибок: {len(errors)}") + return {"processed_items": processed_items, "errors": errors} diff --git a/scheduler/migrations/0014_alter_scheduledtask_function_path.py b/scheduler/migrations/0014_alter_scheduledtask_function_path.py new file mode 100644 index 00000000..820c8605 --- /dev/null +++ b/scheduler/migrations/0014_alter_scheduledtask_function_path.py @@ -0,0 +1,19 @@ +# Generated by Django 5.1.4 on 2024-12-27 05:52 + +import scheduler.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('scheduler', '0013_alter_scheduledtask_function_path'), + ] + + operations = [ + migrations.AlterField( + model_name='scheduledtask', + name='function_path', + field=models.CharField(choices=scheduler.models.get_available_functions, max_length=500, verbose_name='Путь к функции (модуль.функция)'), + ), + ]