====== API ====== Отправляемые данные могут быть как в **XML** так и в **JSON**. Адреса запросов можно переопределить в настройках приложения: **config/web**: components=>urlManager=>rules ===== SITE ===== ==== login ==== Адрес: ''/api/site/login'' Метод запрос: ''POST'' Данные: [ 'username'=>'admin', 'password'=>'111111' ] Возвращаемые данные: [ 'token'=>'0FbEBD-Mo5EzAu9o51684F6hPk7ufCLR', 'expired'=>'2018-09-22T10:10:11+05:00' ] Полученный токен используется при работе. Отправляется заголовком способом авторизации Bearer === JSON === POST http://susanin.loc/api/request/index Accept: application/json Cache-Control: no-cache Content-Type: application/json; charset=utf-8 Authorization: Bearer Ciuw2qcWDXbQJIv2tYiB2IeeM9_JEoOc === XML === POST http://susanin.loc/api/request/index Accept: application/xml Cache-Control: no-cache Content-Type: text/xml; charset=utf-8 Authorization: Bearer Ciuw2qcWDXbQJIv2tYiB2IeeM9_JEoOc ===== REQUEST Заявки ===== ==== index ==== Адрес: ''/api/request/index, /api/request/''>, Метод запрос: ''POST'' Данные: может быть передан массив, будет фильтровать по этим данным. [ 'contact_name'=>'Николай' ] Возвращаемые данные: список заявок, с отображением услуг [ { "id": "3", "created_at": "1531998043", "updated_at": "1536730152", "status": "3", "manager": "10", "client": "2", "company": "28", "contact_name": "Николай Иванович", "contact_phone": "", "contact_email": "", "tags": null, "date": "0", "subject": null, "client_comments": null, "services": [ { ... } ] ... } ] ==== view ==== Адрес: ''/api/request/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: [ "id": "3", "created_at": "1531998043", "updated_at": "1536730152", "status": "3", "manager": "10", "client": "2", "company": "28", "contact_name": "Николай Иванович", "contact_phone": "", "contact_email": "", "tags": null, "date": "0", "subject": null, "client_comments": null, "services": [ { ... } ] ] ==== create ==== Адрес: ''/api/request/create'', ''/api/request/create?room=1'' (при создании от пользователя со стороны клиентов) Метод запрос: ''POST'' Данные: [ 'status'=>1, 'manager'=>3, 'client'=>7', 'contact_name'=>'Александр Петрович', ... ] Возвращаемые данные: [ "id": "3", "created_at": "1531998043", "updated_at": "1536730152", "status": "3", "manager": "10", "client": "2", "company": "28", "contact_name": "Николай Иванович", "contact_phone": "", "contact_email": "", "tags": null, "date": "0", "subject": null, "client_comments": null, ... ] ==== change-status ==== Адрес: ''/api/request/change-status''
Метод запрос: ''POST''
Данные: [ 'status'=>2, ] Возвращаемые данные: новый статус [ "status": "2", ] ==== delete ==== Адрес: ''/api/request/delete?id=3'' Метод запрос: ''POST'' Данные: [ "id": 3 ] Возвращаемые данные: ID удаленной записи "3", ===== SERVICE-RESIDENCE Услуга проживание ===== ==== index ==== Адрес: ''/api/service-residence/index?request=1''
Метод запрос: ''GET''
Данные: нет Возвращаемые данные: список услуг проживания, с отображением гостей [ { "id": 1, "status": 1, "placement": 1, "hotel_room": 7, "check_in": "12:00", "check_out": "10:00", "unstandart_check_in": 0, "unstandart_check_out": 0, "request_for_rest": 1, "food": 1, "description_dealer": "Описание поставщика", "description_client": "Описание клиенту", "reserve_price": "23", "reserve_limit": "123", "reserve_number": "2", "pay_date": "", "penalty_service": 123, "penalty_until": 123, "penalty_amount": "123", "dealer": 28, "dealer_bill": "Счет поставщика", "dealer_bill_date": 1422990000, "calc_susanin": "asd", "calc_client": "123123", "price_netto_susanin": 1266, "price_netto_client": 23666, "discount_susanin": 23, "discount_client": 34, "created_at": 1532606691, "updated_at": 1536901043, "request": 1, "guest_check_in": 1424372400, "guest_check_out": 1455044400, "guests_rule": null, "comments": null "guests": [ { "id": "52", "name": "Иванова Алла Сергеевна", "service": "117", "request": "1", "category": "2", "nationality": "2" }, ] }, ] ==== view ==== Адрес: ''/api/service-residence/view?id=1''
Метод запрос: ''GET''
Данные: нет Возвращаемые данные: список услуг проживание, с отображением гостей [ "id": 1, "status": 1, "placement": 1, "hotel_room": 7, "check_in": "12:00", "check_out": "10:00", "unstandart_check_in": 0, "unstandart_check_out": 0, "request_for_rest": 1, "food": 1, "description_dealer": "Описание поставщика", "description_client": "Описание клиенту", "reserve_price": "23", "reserve_limit": "123", "reserve_number": "2", "pay_date": "", "penalty_service": 123, "penalty_until": 123, "penalty_amount": "123", "dealer": 28, "dealer_bill": "Счет поставщика", "dealer_bill_date": 1422990000, "calc_susanin": "asd", "calc_client": "123123", "price_netto_susanin": 1266, "price_netto_client": 23666, "discount_susanin": 23, "discount_client": 34, "created_at": 1532606691, "updated_at": 1536901043, "request": 1, "guest_check_in": 1424372400, "guest_check_out": 1455044400, "guests_rule": null, "comments": null "guests": [ { "id": "52", "name": "Иванова Алла Сергеевна", "service": "117", "request": "1", "category": "2", "nationality": "2" }, ] ] ==== create ==== Адрес: ''/api/service-residence/create?request=1''
Метод запрос: ''POST''
Данные: [ "placement": 41, "status": 2, ] Возвращаемые данные: список всех полей созданной модели без гостей [ "request": "1", "guest_check_in": false, "guest_check_out": false, "dealer_bill_date": false, "comments": "", "created_at": 1537511862, "updated_at": 1537511862, "id": 124 ] ==== update ==== Адрес: ''/api/service-residence/update?id=1''
Метод запрос: ''POST''
Данные: [ "placement": 33, "status": 5, "request": 4, ] Возвращаемые данные: все данные текущей модели без гостей [ "request": "1", "guest_check_in": false, "guest_check_out": false, "dealer_bill_date": false, "comments": "", "created_at": 1537511862, "updated_at": 1537511862, "id": 124 ... ] ==== delete ==== Адрес: ''/api/service-residence/delete?id=1''
Метод запрос: ''POST''
Данные: [ "id": 1 ] Возвращаемые данные: ID удаленной услуги 1 ===== SERVICE-TRANSFER Услуга трансфер ===== ==== index ==== Адрес: ''/api/service-transfer/index?request=1''
Метод запрос: ''GET''
Данные: нет Возвращаемые данные: список услуг трансфер [ { "id": "1", "delivery_date": "949345200", "delivery_time": "12:00", "delivery_place": "гост. Азимут", "destination": null, "contact_name": "Иван, 963447892150", "transport": "Тойота Р123ВР", "description": "", "description_dealer": "", "description_client": "", "reserve_price": "", "reserve_limit": "", "reserve_number": "", "pay_date": "1532631600", "penalty_service": null, "penalty_until": null, "penalty_amount": "", "dealer": null, "dealer_bill": "", "dealer_bill_date": null, "calc_susanin": "", "calc_client": "", "price_netto_susanin": null, "price_netto_client": null, "discount_susanin": null, "discount_client": null, "created_at": null, "updated_at": "1535610295", "request": "1", "comments": null }, ] ==== view ==== Адрес: ''/api/service-transfer/view?id=1''
Метод запрос: ''GET''
Данные: нет Возвращаемые данные: всех услуг трансфер [ "id": "1", "delivery_date": "949345200", "delivery_time": "12:00", "delivery_place": "гост. Азимут", "destination": null, "contact_name": "Иван, 963447892150", "transport": "Тойота Р123ВР", "description": "", "description_dealer": "", "description_client": "", "reserve_price": "", "reserve_limit": "", "reserve_number": "", "pay_date": "1532631600", "penalty_service": null, "penalty_until": null, "penalty_amount": "", "dealer": null, "dealer_bill": "", "dealer_bill_date": null, "calc_susanin": "", "calc_client": "", "price_netto_susanin": null, "price_netto_client": null, "discount_susanin": null, "discount_client": null, "created_at": null, "updated_at": "1535610295", "request": "1", "comments": null ] ==== create ==== Адрес: ''/api/service-transfer/create?request=1''
Метод запрос: ''POST''
Данные: [ "request": "1", "contact_name": "Иван, 999", "transport": "Bentley, PC345P", "delivery_date": false, "comments": "", "created_at": 1537524343, "updated_at": 1537524343, "id": 3 ] Возвращаемые данные: список всех полей созданной модели [ ==== update ==== Адрес: ''/api/service-transfer/update?id=1''
Метод запрос: ''POST''
Данные: [ "delivery_date": 1537524792, "delivery_time": "12:00", "comments": "Попросили позвонить уточнить", ] Возвращаемые данные: все данные текущей модели [ "id": 1, "delivery_date": 1537524792, "delivery_time": "12:00", "delivery_place": null, "destination": null, "contact_name": "Иван, 999", "transport": "Bentley, PC345P", "description": null, "description_dealer": null, "description_client": null, "reserve_price": null, "reserve_limit": null, "reserve_number": null, "pay_date": null, "penalty_service": null, "penalty_until": null, "penalty_amount": null, "dealer": null, "dealer_bill": null, "dealer_bill_date": null, "calc_susanin": null, "calc_client": null, "price_netto_susanin": null, "price_netto_client": null, "discount_susanin": null, "discount_client": null, "created_at": 1537524343, "updated_at": 1537527582, "request": 1, "comments": "Попросили позвонить уточнить" } ] ==== delete ==== Адрес: ''/api/service-residence/delete?id=1''
Метод запрос: ''POST''
Данные: [ "id": 1 ] Возвращаемые данные: ID удаленной услуги 1 ===== SERVICE Услуга (остальные) ===== ==== index ==== Адрес: ''/api/service/index?request=1'', ''/api/service/index?request=1&service_type=2'' если нужна выборка по типу услуги Метод запрос: ''GET'' Данные: нет Возвращаемые данные: список всех остальных услуг [ { "id": "6", "service_type": "2", "description_dealer": "Описание поставщика", "description_client": "Описани клиенту", "reserve_price": "", "reserve_limit": "", "reserve_number": "", "pay_date": "0", "penalty_service": null, "penalty_until": "0", "penalty_amount": "", "dealer": "29", "dealer_bill": "", "dealer_bill_date": "0", "calc_susanin": "", "calc_client": "", "price_netto_susanin": null, "price_netto_client": null, "discount_susanin": null, "discount_client": null, "created_at": "1532066424", "updated_at": "1532693171", "request": "1", "comments": null }, ] ==== view ==== Адрес: ''/api/service/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: текущая модель [ "id": 1, "service_type": 2, "description_dealer": "Привет, поставщик!", "description_client": "Клиент, тоже привет", "reserve_price": "бронируем", "reserve_limit": "без лимита", "reserve_number": "121ы", "pay_date": "20122", "penalty_service": 1, "penalty_until": 1, "penalty_amount": "1", "dealer": 1, "dealer_bill": "12312", "dealer_bill_date": 1, "calc_susanin": "", "calc_client": "", "price_netto_susanin": null, "price_netto_client": null, "discount_susanin": 1, "discount_client": 1, "created_at": 1531984986, "updated_at": 1531984986, "request": null, "comments": null ] ==== create ==== Адрес: ''/api/service/create?request=1&service_type=2'' Метод запрос: ''POST'' Данные: [ "reserve_price": 12.5, "pay_date": "12.10.2019" ] Возвращаемые данные: список всех ненулевых полей созданной модели [ "request": 4, "service_type": 2, "reserve_price": 12.5, "pay_date": "12.10.2019", "penalty_until": false, "dealer_bill_date": false, "comments": "", "created_at": 1537531655, "updated_at": 1537531655, "id": 12 ] ==== update ==== Адрес: ''/api/service/update?id=1'' Метод запрос: ''POST'' Данные: [ "description_dealer": "Описание 1", "pay_date": "12.10.2020", "very_nice_vacation":"1" ] Возвращаемые данные: все данные текущей модели [ "service": { "id": 14, "service_type": 2, "description_dealer": "Описание 1", "description_client": null, "reserve_price": "12.5", "reserve_limit": null, "reserve_number": null, "pay_date": "12.10.2020", "penalty_service": null, "penalty_until": false, "penalty_amount": null, "dealer": null, "dealer_bill": null, "dealer_bill_date": false, "calc_susanin": null, "calc_client": null, "price_netto_susanin": null, "price_netto_client": null, "discount_susanin": null, "discount_client": null, "created_at": 1537532050, "updated_at": 1537534376, "request": 4, "comments": "" }, "orm": { "very_nice_vacation": "1" } ] ==== delete ==== Адрес: ''/api/service/delete?id=1''
Метод запрос: ''POST''
Данные: [ "id": 1 ] Возвращаемые данные: ID удаленной услуги 1 ===== SERVICE-RESIDENCE-GUEST Гости услуги проживание ===== ==== index ==== Адрес: ''/api/service-residence-guest/index?service=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: Список гостей определенной услуги [ { "id":1, "name": Иван Иванов, "service": 1, "request": 1, "category": 1, "nationality": 3, } ] ==== view ==== Адрес: ''/api/service-residence-guest/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: текущая модель с заданным ID [ "id": 1, "name": "Иван Петров", "service": 1, "request": 1, "category": 1, "nationality": 3, ] ==== create ==== Адрес: ''/api/service-residence-guest/create?request=1&service=1''
Метод запрос: ''POST''
Данные: [ "name": "Василий Иванович", "category": 2, "nationality": 3, ] Возвращаемые данные: модель созданного гостя [ "service": 1, "request": 1, "name": "Василий Иванович", "category": 2, "nationality": 3, "id": 1, ] ==== update ==== Адрес: ''/api/service-residence-guest/update?id=1'' Метод запрос: ''POST'' Данные: [ "name": "Иван Иванович", "category": 2, "nationality": 2, ] Возвращаемые данные: модель с новыми данными [ "service": 1, "request": 1, "name": "Иван Иванович", "category": 2, "nationality": 2, "id": 1, ] ==== delete ==== Адрес: ''/api/service-residence-guest/delete?id=1''
Метод запрос: ''POST''
Данные: [ "id": 1 ] Возвращаемые ID удаленной записи 1 ===== DOCUMENTS Документы ===== ==== index ==== Адрес: ''/api/document/index?object_type=40&object_id=1'' Метод запрос: ''GET'' Данные: /api/document/index?object_type=40object_id=1 object_type: 20 - 'Компания', 30 - 'Отель', 40 - 'Заявка', 50 - 'Услуга', 51 - 'Услуга трансфер', 52 - 'Услуга проживание', 60 - 'Документ', Возвращаемые данные: Список документов текущего объекта [ { "id": 27, "name": "Name 1", "description": "", "object_id": 1, "object_type": 40, "type": 1, "path": "/uploads/documents/4c8510fe4b2bbd1203f3432101f3b6f7.jpg", "created_at": 1537860073, "updated_at": 1537861841 }, { "id": 29, "name": "Name 2", "description": "", "object_id": 1, "object_type": 40, "type": 3, "path": "/uploads/documents/1389ca807d7679f1f9c0078226f57201.docx", "created_at": 1537861928, "updated_at": 1537861952 } ] ==== view ==== Адрес: ''/api/document/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели [ "id": 27, "name": "Name 1", "description": "", "object_id": 1, "object_type": 40, "type": 1, "path": "/uploads/documents/4c8510fe4b2bbd1203f3432101f3b6f7.jpg", "created_at": 1537860073, "updated_at": 1537861841 ] ==== create ==== Адрес: ''/api/document/create?request=1&service=1'' Метод запрос: ''POST'' Данные: [ upload_file: ФАЙЛ (например через form-data) name: Имя файла, type: Тип файла (указан в /document-type/index) ] Возвращаемые данные: модель созданного документа [ "object_type": "40", "object_id": "1", "name": "Документ Тест", "type": "3", "path": "/uploads/documents/7c02e12e8f55221c90fd46442b2a0649.jpg", "created_at": 1537861928, "updated_at": 1537861928, "id": 29 ] ==== update ==== Адрес: ''/api/document/update?id=27''
Метод запрос: ''POST''
Данные: [ "upload_file": ФАЙЛ, "name": 2, "type": 2, ] Возвращаемые данные: данные с новыми данными [ "id": 27, "name": "Name updated", "description": "", "object_id": 1, "object_type": 40, "type": 1, "path": "/uploads/documents/1c565337ecff1652a7af8dd5afba4da6.xlsx", "created_at": 1537860073, "updated_at": 1537864591 ] ==== delete ==== Адрес: ''/api/document/delete?id=1''
Метод запрос: ''POST''
Данные: [ "id": 27 ] Возвращаемые данные: ID удаленной записи 27 ===== NOTIFICATION Уведомления ===== ==== list ==== Адрес: ''/api/notification/list'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: Список доступных уведомлений { "comment": "Комментарии", "adding_new_object": "Добавление нового объекта" } ==== user ==== Адрес: ''/api/notification/user'', ''/api/notification/user?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: Список доступных уведомлений для текущего пользователя с учетом уведомлений компании. Если ID не указан, берется ID текущего залогиненного пользователя { "comment": "1", "adding_new_object": "0" } ==== index ==== Адрес: ''/api/notification/index'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: Список уведомлений [ { "id": 1, "object_type": 10, "object_id": 6, "notification": "{\"comment\":\"1\",\"adding_new_object\":\"0\"}", "created_at": 1538153439, "updated_at": 1538154599 }, { "id": 2, "object_type": 20, "object_id": 6, "notification": "{\"comment\":\"1\",\"adding_new_object\":\"1\"}", "created_at": 1538153824, "updated_at": 1538154592 } ] ==== view ==== Адрес: ''/api/notification/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели { "id": 2, "object_type": 20, "object_id": 6, "notification": "{\"comment\":\"1\",\"adding_new_object\":\"1\"}", "created_at": 1538153824, "updated_at": 1538154592 } ===== BANK Банки ===== ==== index ==== Адрес: ''/api/bank/index'' Метод запрос: ''POST'' Данные: [ name: название банка bik: БИК банка ] Возвращаемые данные: Список банков текущего объекта удовлетворяющие переданным параметрам - name, bik. Параметры не обязательные. Без указания параметров будет выведен весь список банков. [ { "id": 1, "name": "Название банка", "name_private": "Внутреннее название банка", "bik": "123456789", "account_number": "123456789", "kor_number": "123456789", "created_at": 1535112619, "updated_at": 1535112844 } ] ==== view ==== Адрес: ''/api/bank/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели { "id": 1, "name": "Название банка", "name_private": "Внутреннее название банка", "bik": "123456789", "account_number": "123456789", "kor_number": "123456789", "created_at": 1535112619, "updated_at": 1535112844 } ==== create ==== Адрес: ''/api/bank/create'' Метод запрос: ''POST'' Данные: [ "name": "Название банка" (обязательное поле), "name_private": "Внутреннее название банка", "bik": "123456789", "account_number": "123456789", "kor_number": "123456789", "created_at": 1535112619, "updated_at": 1535112844 ] Возвращаемые данные: модель созданного документа [ "name": "Название банка" (обязательное поле), "name_private": "Внутреннее название банка", "bik": "123456789", "account_number": "123456789", "kor_number": "123456789", "created_at": 1535112619, "updated_at": 1535112844, "id":2 ] ==== update ==== Адрес: ''/api/bank/update?id=2'' Метод запрос: ''POST'' Данные: [ "name": "Другое название", ] Возвращаемые данные: модель с новыми данными [ "id": 2, "name": "Другое название", "name_private": "", "bik": "", "account_number": "", "kor_number": "", "created_by": null, "created_at": 1538742199, "updated_at": 1538742606 ] ==== delete ==== Адрес: ''/api/bank/delete?id=2'' Метод запрос: ''POST'' Данные: [ "id": 2 ] Возвращаемые ID удаленной записи 2 ===== COMPANY Компании ===== ==== index ==== Адрес: ''/api/company/index'' Метод запрос: ''POST'' Данные: [ name: Название компании (осуществляет поиск по всем именам: name, full_name, private_name tin: ИНН group: ID группы компаний type: Тип компании ] Типы: Клиент-агент: 10 Клиент-корп: 11 Поставщик: 20 Канал-менеджер: 30 Возвращаемые данные: Список компаний текущего объекта удовлетворяющие переданным параметрам. Параметры не обязательные. Без указания параметров будет выведен весь список компаний. [ { "id": 1, "name": "Компания", "full_name": "Полнейшее название компании", "private_name": "Компашка", "tin": "123456798", "type": 10, "templates": "1235", "group": "1", "status": 1, "created_at": 1531327105, "updated_at": 1534585480, "kpp": "", "email": "no-reply@apple.com", "commission": null, "documents": null "orm_field": null //ORM поля c префиксом orm_ } ] ==== view ==== Адрес: ''/api/company/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели { "id": "1", "name": "Apple", "full_name": "Полное название", "private_name": "Псевдонимы", "tin": "12131415", "markup": "3", "type": "10", "group": "1", "status": "1", "created_at": "1531327105", "updated_at": "1534585480", "kpp": "", "email": "no-reply@apple.com", "commission": null, "documents": null, "orm_field": null //ORM поля c префиксом orm_ } ==== create ==== Адрес: ''/api/company/create'' Метод запрос: ''POST'' Данные: [ "name":"Компания компаний", "tin": "121314151617", "type": 20, "logo": //ORM поле, без указания префикса ] Возвращаемые данные: модель компании и модель автоматически созданной компании-поставщика [ "company": { "status": 1, "name": "Компания компаний", "tin": "12131213", "type": "20", "full_name": "", "private_name": "", "kpp": "", "group": "", "created_at": 1538980496, "updated_at": 1538980496, "id": 162, "orm_logo": "uploads/images/c03cfe3672022df9b0ad4aedbe3d52d6.jpg" }, "company_consignee": { "name": "Компания компаний", "company": 162, "description": "", "id": 22 } ] ==== update ==== Адрес: ''/api/company/update?id=1''
Метод запрос: ''POST''
Данные: [ "name":"Компания компаний", "tin": "121314151617", "type": 20, "logo": //ORM поле, без указания префикса ] Возвращаемые данные: модель с новыми данными [ "status": 1, "name": "Компания компаний", "tin": "12131213", "type": "20", "full_name": "", "private_name": "", "kpp": "", "group": "", "created_at": 1538980496, "updated_at": 1538980496, "id": 162, "orm_logo": "uploads/images/c03cfe3672022df9b0ad4aedbe3d52d6.jpg" ] ==== delete ==== Адрес: ''/api/company/delete?id=2''
Метод запрос: ''POST''
Данные: [ "id": 2 ] Возвращаемые ID удаленной записи 2 ==== delete-file удаление ORM данных ==== Адрес: ''/api/company/delete-file?id=2&field=logo''
Метод запрос: ''POST''
Данные: имя поля указывается без префикса Возвращаемые данные: модель с обновленными ORM полями "status": 1, "name": "Компания компаний", "tin": "12131213", "type": "20", "full_name": "", "private_name": "", "kpp": "", "group": "", "created_at": 1538980496, "updated_at": 1538980496, "id": 162, "orm_logo": null ===== HOTEL Гостиницы ===== ==== index ==== Адрес: ''/api/company/index'', ''/api/company/index?limit=20&offset=0'' с указанием количества отображаемый записей (limit) и сдвиг (offset) Метод запрос: ''POST'' Данные: [ search: Строка поиска. Поиск осуществляется по названию, адресу, псевдониму (alias) city_country: Фильтр по стране city_name: Фильтр по городу (имеет предпочтение перед city_country) ] Возвращаемые данные: Список моделей удовлетворяющие переданным параметрам. Параметры не обязательные. Без указания параметров будет выведен весь список гостиниц и их номеров (rooms) с учетом limit, offset. Orm поля начинаются с префикса orm_ { "id": "3", "city": "2", "address": "", "post_address": "", "phone": "8123456789", "email": "mail@mail.com", "site": "http://site.com", "company": "11", "tax": null, "description_susanin": "", "description_client": "", "placement_type": "5", "cancel_time": "", "check_in": "12:00", "check_out": "14:00", "early_check_in": "", "late_check_out": "", "cheque": "", "payment": "", "hotel_reserve": "", "relax_place": "0", "tax_condition": "", "contract": "", "prolongation": "", "nocontract_reason": "", "hotel_description": "", "name": "Мэриленд", "created_at": 1536215612, "updated_at": "1536215612", "alias": "", "orm_photo": "/image.png", "rooms": [ { "id": "5", "placement_type": "2", "price_stand": "6200", "price_netto": "6200", "hotel": "3", "created_at": "1531745170", "updated_at": "1538564302", "name": "Президентский", "food_type": "2", "description": "" } ] }, ==== view ==== Адрес: ''/api/company/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели { "id": 1, "city": 1, "address": "Ленина, 1", "post_address": "612345 Ленина, 1", "phone": "123123123", "email": "123@123.com", "site": "http://site.ru", "company": null, "tax": 4, "description_susanin": "Примечания Сусанину", "description_client": "Примечания Клиенту", "placement_type": 1, "cancel_time": "1 сутки", "check_in": "12:00", "check_out": "10:00", "early_check_in": "Ранний заезд", "late_check_out": "Поздний выезд", "cheque": "", "payment": "", "hotel_reserve": "", "relax_place": 1, "tax_condition": "Условий комиссии отеля нет", "contract": "", "prolongation": "", "nocontract_reason": "", "hotel_description": "Описание гостиницы", "name": "Гостиница 1", "created_at": 123451231, "updated_at": 1538564697, "alias": "Псевдоним", "orm_photo": "/image.jpg", "orm_field": null //ORM поля c префиксом orm_ "rooms": [ { "id": 2, "placement_type": 2, "price_stand": 201, "price_netto": 193, "hotel": 1, "created_at": 1531382157, "updated_at": 1538563166, "name": "Название номера", "food_type": 2, "description": "Описание номера" }, { "id": 7, "placement_type": 2, "price_stand": 25000, "price_netto": 24000, "hotel": 1, "created_at": 1531745641, "updated_at": 1538636882, "name": "Название номера 2, "food_type": 1, "description": "Описание номера 2" } ] } ==== create ==== Адрес: ''/api/hotel/create'' Метод запрос: ''POST'' Данные: [ "name":"Гостиница 2", * "city": "1", * "placement_type": 2, * "field": "text" //при создании гостиницы префикс для orm полей не указывается * - обязательные поля ] Возвращаемые данные: модель гостиницы и модель автоматически созданного номера Sql гостиницы [ "hotel": { "name": "Гостиница 2", "city": "1", "placement_type": "1", "address": "", "post_address": "", "description_susanin": "", "description_client": "", "cancel_time": "", "check_in": "12:00", "check_out": "14:00", "early_check_in": "", "late_check_out": "", "tax_condition": "", "phone": "", "email": "", "site": "", "cheque": "", "payment": "", "hotel_reserve": "", "prolongation": "", "contract": "", "nocontract_reason": "", "hotel_description": "", "alias": "", "created_at": 1538998934, "updated_at": 1538998934, "id": 51 "orm_field": null //ORM поля c префиксом orm_ }, "hotel_room": { "placement_type": 1, "name": "Стандарт", "hotel": 51, "created_at": 1538998935, "updated_at": 1538998935, "id": 12 } ] ==== update ==== Адрес: ''/api/hotel/update?id=1''
Метод запрос: ''POST''
Данные: [ "name":"Гостиница 3", "city": "1", "placement_type": 2, "field": "text" //при редактировании гостиницы префикс для orm полей не указывается "logo": //ORM поле, без указания префикса ] Возвращаемые данные: модель с новыми данными [ "name": "Гостиница 2", "city": "1", "placement_type": "1", "address": "", "post_address": "", "description_susanin": "", "description_client": "", "cancel_time": "", "check_in": "12:00", "check_out": "14:00", "early_check_in": "", "late_check_out": "", "tax_condition": "", "phone": "", "email": "", "site": "", "cheque": "", "payment": "", "hotel_reserve": "", "prolongation": "", "contract": "", "nocontract_reason": "", "hotel_description": "", "alias": "", "created_at": 1538998934, "updated_at": 1538998934, "id": 51 "orm_field": null //ORM поля c префиксом orm_ ] ==== delete ==== Адрес: ''/api/hotel/delete?id=2''
Метод запрос: ''POST''
Данные: [ "id": 2 ] Возвращаемые ID удаленной записи 2 ==== ''delete-file'' удаление ORM поля ==== Адрес: ''/api/hotel/delete-field?id=2&field=photo'' Метод запрос: ''POST''
Данные: имя поля указывается без префикса Возвращаемые данные: редактируемая модель { "id": 53, "city": 1, "address": "", "post_address": "", "phone": "", "email": "", "site": "", "documents": null, "company": null, "tax": null, "description_susanin": "", "description_client": "", "placement_type": 1, "cancel_time": "", "check_in": "12:00", "check_out": "14:00", "early_check_in": "", "late_check_out": "", "cheque": "", "payment": "", "hotel_reserve": "", "relax_place": null, "tax_condition": "", "contract": "", "prolongation": "", "nocontract_reason": "", "hotel_description": "", "name": "Гостиница 2", "created_at": 1538999049, "updated_at": 1538999514, "alias": "", "rooms_rule": null, "orm_user": null, "orm_photo": null } ===== USER Пользователи ===== ==== index ==== Адрес: ''/api/user/index'', ''/api/user/index?type=susanin'' - пользователи компании, в противном случае список клиентов Метод запрос: ''POST'' Данные: [ type: тип пользователя username: Имя пользователя login: Логин phone: Телефон email: Email ] Типы пользователей: **Глобальные** susanin - пользователи компании client - пользователи клиенты **Пользователи клиенты** Клиент-агент 2 Поставщик 3 Канал-менеджер 4 Клиент-корп 6 **Пользователи компании** Менеджер 10 Редактор 20 Бухгалтерия 30 Начальник 40 Директор 50 Возвращаемые данные: Список моделей удовлетворяющие переданным параметрам. Параметры не обязательные. Без указания параметров будет выведен список пользователей клиентов. { "id": 6, "login": "Сергей", "username": "Сергей Сергеевич", "email": "123@123.cm", "phone": "123123123", "company": 36, "status": 1, "type": 4, "created_at": 1530854659, "updated_at": 1530854659 }, { "id": 9, "login": "ibragim", "username": "Ибрагим Феодосович", "email": "123@123.cm", "phone": "", "company": 31, "status": 1, "type": 3, "created_at": 1531899122, "updated_at": 1531995144 } ==== view ==== Адрес: ''/api/user/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели { "id": 3, "login": "Константин", "username": "Константин Константинович", "email": "123@123.cm", "phone": "123123123", "company": 39, "status": 1, "type": 10, "created_at": 1530854329, "updated_at": 1531995494 } ==== create ==== Адрес: ''/api/user/create'' Метод запрос: ''POST'' Данные: [ "login":"ivan", "username": "Иванов Иван Иванович", "type": 20, * "email": "ivanov@mail.com" "password": "123123", "company": 10 ] **Пользователи клиенты** Клиент-агент 2 Поставщик 3 Канал-менеджер 4 Клиент-корп 6 **Пользователи компании** Менеджер 10 Редактор 20 Бухгалтерия 30 Начальник 40 Директор 50 Возвращаемые данные: модель созданного объекта [ "status": true, "login": "ivan", "username": "Иванов Иван Иванович", "type": "20", "email": "ivanov@mail.com", "company": "11", "phone": "", "created_at": 1539068121, "updated_at": 1539068121, "id": 13 ] ==== update ==== Адрес: ''/api/user/update?id=1''
Метод запрос: ''POST''
Данные: [ "login":"ivan", "username": "Иванов Иван Иванович", "type": 20, * "email": "ivanov@mail.com" "password": "123123", "company": 10 ] Возвращаемые данные: модель с новыми данными [ "status": true, "login": "ivan", "username": "Иванов Иван Иванович", "type": "20", "email": "ivanov@mail.com", "company": "11", "phone": "", "created_at": 1539068121, "updated_at": 1539068121, "id": 13 ] ==== delete ==== Адрес: ''/api/user/delete?id=2''
Метод запрос: ''POST''
Данные: [ "id": 2 ] Возвращаемые ID удаленной записи 2 ===== CITY Города ===== ==== index ==== Адрес: ''/api/city/index?country=1&letter=А'' Метод запрос: ''GET'' Данные: ''country - страна, $letter - буква'' Возвращаемые данные: Список банков текущего объекта удовлетворяющие переданным параметрам name, bik. Параметры не обязательные. Без указания параметров будет выведен весь список банков. [ { "id": 1, "country": 1, "name": "Екатеринбург", "code": "SVX" } ] ==== view ==== Адрес: ''/api/city/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели { "id": 1, "country": 1, "name": "Екатеринбург", "code": "SVX" } ==== create ==== Адрес: ''/api/city/create?country=1'' Метод запрос: ''POST'' Данные: [ "name": "Абакан", "code": "ABK" ] Возвращаемые данные: модель созданного документа [ "id": 7, "country": 1, "name": "Москва", "code": "MSK" ] ==== update ==== Адрес: ''/api/city/update?id=2''
Метод запрос: ''POST''
Данные: [ "country": 1, "name": "Москва", "code": "MSK" ] Возвращаемые данные: данные с новыми данными [ "id": 7, "country": 1, "name": "Катайск", "code": "" ] ==== delete ==== Адрес: ''/api/bank/delete?id=2'' Метод запрос: ''POST'' Данные: [ ] Возвращаемые ID удаленной записи 2 ===== HOTEL-ROOM Номера гостиниц ===== ==== index ==== Адрес: ''/api/hotel-room/index?hotel=1'' Метод запрос: ''GET'' Данные: ''hotel - ID гостиницы'' Возвращаемые данные: Список моделей текущего объекта удовлетворяющие переданным параметрам. Параметры не обязательные. Без указания параметров будет выведен весь список. [ { "id": 2, "placement_type": 2, "price_stand": 201, "price_netto": 193, "hotel": 1, "created_at": 1531382157, "updated_at": 1538563166, "name": "Название", "food_type": 2, "description": "Описание номера" } ] ==== view ==== Адрес: ''/api/hotel-room/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели { "id": 2, "placement_type": 2, "price_stand": 201, "price_netto": 193, "hotel": 1, "created_at": 1531382157, "updated_at": 1538563166, "name": "Название", "food_type": 2, "description": "Описание номера" } ==== create ==== Адрес: ''/api/hotel-room/create?hotel=1'' Метод запрос: ''POST'' Данные: [ "name": "Стандарт 2", "price_stand": "2300" ] Возвращаемые данные: модель созданного объекта [ "hotel": "1", "name": "Стандарт 2", "price_stand": "2300", "price_netto": 2208, "description": "", "created_at": 1539064289, "updated_at": 1539064289, "id": 17 ] ==== update ==== Адрес: ''/api/hotel-room/update?id=2'' Метод запрос: ''POST'' Данные: [ "name": "Стандарт 2", "price_stand": "23000" ] Возвращаемые данные: модель с новыми данными [ "hotel": "1", "name": "Стандарт 2", "price_stand": "23000", "price_netto": 22080, "description": "", "created_at": 1539064289, "updated_at": 1539064289, "id": 17 ] ==== delete ==== Адрес: ''/api/hotel-room/delete?id=2'' Метод запрос: ''POST'' Данные: [ ] Возвращаемые данные: ID удаленной записи 2 ===== COMPANY-CONSIGNEE Грузополучатели ===== ==== index ==== Адрес: ''/api/company-consignee/index'' Метод запрос: ''POST'' Данные: ''name: Наименование грузополучателя'', ''company: ID компании грузополучателя'' Возвращаемые данные: Список моделей текущего объекта удовлетворяющие переданным параметрам. Параметры не обязательные. Без указания параметров будет выведен весь список. [ { "id": 2, "name": "Компания 1", "description": "", "company": 133 } ] ==== view ==== Адрес: ''/api/company-consignee/view?id=1'' Метод запрос: ''GET'' Данные: нет Возвращаемые данные: данные текущей модели { "id": 2, "name": "Компания 1", "description": "", "company": 133 } ==== create ==== Адрес: ''/api/company-consignee/create'' Метод запрос: ''POST'' Данные: [ "name": "Компания 1", "description": "Описание компании", "company": 133 ] Возвращаемые данные: модель созданного объекта [ "name": "Компания 1", "description": "Описание компании", "company": 133, "id": 3 ] ==== update ==== Адрес: ''/api/company-consignee/update?id=2'' Метод запрос: ''POST'' Данные: [ "name": "Компания 1", ] Возвращаемые данные: модель с новыми данными [ "name": "Компания 1", "description": "Описание компании", "company": 133, "id": 3 ] ==== delete ==== Адрес: ''/api/company-consignee/delete?id=2'' Метод запрос: ''POST'' Данные: [ ] Возвращаемые данные: ID удаленной записи 2