api:test

Это старая версия документа!


# Базовые настройки

## База данных 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 ```

  • api/test.1542095395.txt.gz
  • Последние изменения: 2020/09/24 09:42
  • (внешнее изменение)