Это старая версия документа!
# Базовые настройки
## База данных config/db.php ``` <?php return [
'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=127.0.0.1;dbname=test', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', 'tablePrefix'=>'tst_',
]; ```
## Первая установка ### Обновление зависимостей Для обновления зависимостей необходимо использовать composer https://getcomposer.org/ `php composer.phar update`
### Установка миграций `./yii migrate/up`
После установки миграций будет установлен пользователь admin:admin
## Apache/Nginx Необходимо настроить файлы правил переадресации запросов на файл index.php
# API Отправляемые данные могут быть как в XML так и в JSON. Адреса запросов можно переопределить в настройках приложения: config/web: `components⇒urlManager⇒rules`
#SITE
### `login`
Адрес: `/api/site/login`<br> Метод запрос: `POST`<br> Данные: ``` [
'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/`, <br> Метод запрос: `POST`<br> Данные: может быть передан массив, будет фильтровать по этим данным. ``` [
'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`<br> Метод запрос: `GET`<br> Данные: нет
Возвращаемые данные: ``` [
"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` (при создании от пользователя со стороны клиентов)<br> Метод запрос: `POST`<br> Данные: ``` [
'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`<br> Метод запрос: `POST`<br> Данные: ``` [
'status'=>2,
] ``` Возвращаемые данные: новый статус ``` [
"status": "2",
] ``` ### `delete` Адрес: `/api/request/delete?id=3`<br> Метод запрос: `POST`<br> Данные: ``` [
"id": 3
] ```
Возвращаемые данные: ID удаленной записи ``` «3», ```
##SERVICE-RESIDENCE Услуга проживание ### `index` Адрес: `/api/service-residence/index?request=1` <br> Метод запрос: `GET`<br> Данные: нет Возвращаемые данные: список услуг проживания, с отображением гостей ``` [
{
"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` <br> Метод запрос: `GET`<br> Данные: нет Возвращаемые данные: список услуг проживание, с отображением гостей ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"id": 1
] ``` Возвращаемые данные: ID удаленной услуги ``` 1 ```
##SERVICE-TRANSFER Услуга трансфер ### `index` Адрес: `/api/service-transfer/index?request=1` <br> Метод запрос: `GET`<br> Данные: нет Возвращаемые данные: список услуг трансфер ``` [
{
"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` <br> Метод запрос: `GET`<br> Данные: нет Возвращаемые данные: всех услуг трансфер ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [ «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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"id": 2
] ``` Возвращаемые ID удаленной записи ``` 2 ```
### `delete-file` удаление ORM данных Адрес: `/api/company/delete-file?id=2&field=logo` <br> Метод запрос: `POST`<br> Данные: имя поля указывается без префикса Возвращаемые данные: модель с обновленными 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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"id": 2
] ``` Возвращаемые ID удаленной записи ``` 2 ```
### `delete-file` удаление ORM поля Адрес: `/api/hotel/delete-field?id=2&field=photo` Метод запрос: `POST`<br> Данные: имя поля указывается без префикса Возвращаемые данные: редактируемая модель ``` { «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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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` <br> Метод запрос: `POST`<br> Данные: ``` [
"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 ```