Ресурсы ******* Обмен данными ============= .. _api-service-order-edit: Создание сервисного заказа ~~~~~~~~~~~~~~~~~~~~~~~~~~ При создании или изменении сервисного заказа в системе eVHC автоматически создаются релевантные опросные листы, в соответствии с настройками системы. .. http:put:: /system-clients/(system_client_id)/service-orders/(id) Передаем JSON объект вида `Сервисный заказ`_ :arg system_client_id: идентификатор системного клиента; :arg id: ID заказа. Возвращает статус операции в виде HTTP кода и подробную информацию о проблеме с запросом при её наличии. Создание анкеты VC и QC ~~~~~~~~~~~~~~~~~~~~~~~ Делаем запрос, как в разделе `Создание сервисного заказа`_. Запрос может быть сделан как на этапе создания заказа, так и после. .. http:put:: /system-clients/(system_client_id)/service-orders/(id) :arg system_client_id: идентификатор системного клиента; :arg id: ID заказа. `Сервисный заказ`_ должен содержать следующие параметры: .. sourcecode:: js { ... "technicianSurveyRelease": true, "qcSurveyRelease": true, ... } :json string id: Идентификатор заказа. Используется для идентификации заказа в рамках системы eVHC. Присутствует в URL ресурсов. Рекомендуется использовать длиной идентификаторы длиной до 40 символов. :>json string externalId: Внешний идентификатор заказа. Используется в пользовательском интерфейсе и для печати форм. :>json string serviceOrderType: Тип сервисного заказа в ДМС. Информационное поле без управляющего значения. :>json string externalBranchId: Код дилера OEM. Поле является обязательным и определяет привязку заказа к ДЦ. :>json string plannedStartTimestamp: Плановая дата начала работ в формате ISO8601. :>json boolean сlosed: Флаг указывающий на то, что заказ закрыт. При установке данного флага все связанные анкеты автоматически закрываются. :>json boolean rejected: Флаг указывающий на то, что заказ отменен без выполнения работ (например клиент не приехал). Отмененные заказы учитываются в статистике в отдельной графе. При установке данного флага все связанные анкеты автоматически закрываются. :>json string parentOrderId: Ссылка на ID основного/вышестоящего заказа. Используется для корректного отображения и учета ситуаций с открытием нескольких сервисных заказов на один визит клиента. Опросный лист создается только по основному заказу. Если поле отсутствует или пусто — заказ считается основным. :>json string orderText: Краткий текст заказа. (Отображается в интерфейсах. Может быть использован для передачи заявки клиента.) :>json string currency: Код валюты заказа в соответствии с ISO4217. Поле необходимо при передаче любых сумм по заказу. :>json object customer: Клиент. Передаётся JSON объект вида `Бизнес партнёр`_. :>json object payer: Плательщик. Передаётся JSON объект вида `Бизнес партнёр`_. :>json object serviceAdvisor: Мастер-консультант. Передаётся JSON объект вида `Персона`_. :>json object vehicle: Автомобиль. Клиент. Передаётся JSON объект вида `Автомобиль`_. :>json array surveys: Возвращается список листов проверок по заказу. Формат данных аналогичен интерфейсу `Получение списка листов проверок по заказу`_, однако доступно меньшее число полей. :>json array contents: Список позиций заказа в виде списка из JSON объектов `Позиция заказа`_. .. _api-service-order-surveys: Получение списка листов проверок по заказу ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный интерфейс позволяет получить список опросных листов по заказу в виде списка из JSON объектов `Лист проверок`_ (в данном интерфейсе передаются только некоторые поля заголовка листа проверок). По одному заказу может существовать и возвращаться более одного листа проверок. .. http:get:: /system-clients/(system_client_id)/service-orders/(id)/surveys :arg system_client_id: идентификатор системного клиента; :arg id: ID заказа. :query string survey-type: тип листа проверок. Допустимые типы листов проверок описаны в разделе :ref:`survey-types`. :>jsonarr Survey: Формат данных описан разделе `Лист проверок`_ (в данном интерфейсе передаются только некотрые поля заголовка листа проверок). Пример. Следующий запрос вернёт все чеклисты для заказа с идентификатором ``2000001011`` и типом опросного листа ``eVHC`` (данный тип опросного листа по используется по умолчанию для проверок eVHC):: $ curl -v -H "X-API-KEY: 70QVm7hf8owpaM-0kYQLyzwiXLIO_1yVHYn3GiVD7L8" https://api.powervhc.com/v1/system-clients/1/service-orders/2000001011/surveys?survey-type=eVHC .. sourcecode:: js [ { "id": "q1n8G8UF7iQxHPb0YLY7", "surveyType": "eVHC", "externalBranchId": "5010", "completed": false, "closed": false, "currency": "RUB", "plannedStartTimestamp": "2015-12-30T09:00:00Z", "customer": {BusinessPartner}, "requester": {BusinessPartner}, "surveyObject": {...}, "referenceObject": {...}, ... }, ... ] .. _api-survey-get: Получение листа проверок ~~~~~~~~~~~~~~~~~~~~~~~~ Данный интерфейс позволяет получить полную информацию по листу проверок. Формат данных описан разделе `Лист проверок`_. Пример просмотра информации о Листе проверок по его идентификатору: :: GET https://api.powervhc.com/v1/system-clients/inchcape/surveys/q1n8G8UF7iQxHPb0YLY7 #В поле X-API-KEY заголовка запроса указан действительный ключ API .. http:get:: /system-clients/(system_client_id)/surveys/(id) :arg system_client_id: идентификатор системного клиента; :arg id: идентификатор листа проверок. Пример листа проверок: .. sourcecode:: js :emphasize-lines: 2 { "id": "q1n8G8UF7iQxHPb0YLY7", "externalId": "D2000000001", "externalBranchId": "5010", "serviceOrderType": "ZS01", "closed": false, "currency":"RUB", "plannedStartTimestamp": "2015-12-30T09:00:00Z", "serviceAdvisor": { "category": "person", "id": "10204", "firstName": "Павел", "middleName": "Владимирович", "lastName": "Смирнов" }, "customer": { "category": "person", "id": "10302", "firstName": "Василий", "middleName": "Андреевич", "lastName": "Сидоров", "landline": "+7(495)123-12-13", "mobilePhone": "+7(916)123-11-42", "address": "123300, г.Москва, ул. Ленина, д.1", "email": "some@email.com" }, "vehicle": { "vin": "VIN45678901234111", "numberPlate": "C711AC 177", "numberPlateCountry": "RU", "make": "Land Rover", "modelCode": "L550", "engineCapacity": 2.0, "modelYear": 2015, "fuelType": "petrol", "model": "Discovery Sport", "engineType": "2.0SC", "engineNumber": "432314", "gearboxType": "6 HP ZF", "colour": "Зеленый", "recordedMileage": 12345.6, "mileageUnit": "km", "warrantyEndDate": "2016-10-30", "owner": { "category": "person", "id": "10302", "firstName": "Василий", "middleName": "Андреевич", "lastName": "Сидоров", "landline": "+7(495)123-32-23", "mobilePhone": "+7(916)123-32-42", "address": "123300, г.Москва, ул. Ленина, д.1", "email": "some@email.com" } }, "contents": [ { "category": "section", "allowSelectAll": false, "contents": [ { "category": "question", "answerCategory": "textAndComment", "answerSigned": false, "answerVideoMandatory": false, "answers": [ { "custom": false, "default": false, "id": "OK", "markColour": 0, "photosAllowed": false, "selected": true, "status": "green", "value": "OK", "videoMandatory": false }, ... ], "clientSettings": false, "fastAnswer": "OK", "id": "installSeatCover", "mandatory": true, "multipleValueAnswer": true, "photosAllowed": false, "questionCategory": "valueSelection", "stickyAnswers": false, "text": "Установить защитные чехлы на сиденье/руль/рычаг КПП", "videoAllowed": false, "visible": true }, ... ], ... }, ... ], ... } Добавление ответа ~~~~~~~~~~~~~~~~~ Лист проверок должен быть не завершен. .. http:post:: /system-clients/(system_client_id)/surveys/(survey_id)/questions/(question_id)/answers Передаем JSON объект вида `Ответ`_. :arg system_client_id: идентификатор системного клиента; :arg survey_id: идентификатор листа проверок; :arg question_id: идентификатор вопроса. :statuscode 201: Операция успешна. Пример: .. sourcecode:: js { "value": "Название неисправности", "status": "amber", "comment": "Внутренний комментарий", "selected": true } :`, :ref:`вопроса `, :ref:`ответа ` .. note:: Id фотографии уникален в рамках опросного листа. Пример: :: GET https://api.powervhc.com/v1/system-clients/inchcape/surveys/q1n8G8UF7iQxHPb0YLY7/photos/201609021023/small-square #В поле X-API-KEY заголовка запроса указан действительный ключ API Получение списка пакетов ~~~~~~~~~~~~~~~~~~~~~~~~ Данный ресурс позволяет получить список пакетов доступных в программе eVHC. Формат возвращаемых данных описан в разделе `Пакет`_ (в данном интерфейсе передаются только некотрые поля заголовка пакета). .. http:get:: /system-clients/(system_client_id)/packages :arg system_client_id: идентификатор системного клиента; :>jsonarr Package: Формат данных описан разделе `Пакет`_ (в данном интерфейсе передаются только некотрые поля заголовка пакета). Пример получения списка пакетов ведущихся централизованно:: GET https://api.powervhc.com/v1/system-clients/inchcape/packages #В поле X-API-KEY заголовка запроса указан действительный ключ API .. sourcecode:: js [ { "id": "RadiatorWash", "masterClient": "inchcape", "description": "Мойка радиаторов" }, { "id": "LuggageNet", "masterClient": "inchcape", "description": "Сетка крепления багажа на пол" }, { "id": "FrontMudGuards", "masterClient": "inchcape", "description": "Брызговики передние" }, ... ] Ответ от сервера содержит код статуса ``HTTP 200 OK`` и список доступных пакетов (состоящих из id пакета, клиента в котором ведется пакет и описания пакета): Получение пакета ~~~~~~~~~~~~~~~~ Данный ресурс позволяет получить полную информацию по пакету, используемому в программе eVHC. Формат возвращаемых данных описан в разделе `Пакет`_. .. http:get:: /system-clients/(system_client_id)/packages/(id) Возвращает JSON объект вида `Пакет`_ с дополнительными полями :arg system_client_id: идентификатор системного клиента; :arg id: идентификатор пакета. .. http:get:: /system-clients/(system_client_id)/packages/(id)/master Возвращает JSON объект вида `Пакет`_ без дополнений Пример получения информации о пакете:: GET https://api.powervhc.com/v1/system-clients/inchcape/packages/FrontMudGuards #В поле X-API-KEY заголовка запроса указан действительный ключ API #Ответ от сервера содержит код статуса HTTP 200 OK и содержание пакета. .. _api-package-edit: Создание и изменение пакета ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный ресурс позволяет создавать или изменять пакеты используемые в программе eVHC. Формат принимаемых данных описан в разделе `Пакет`_. .. http:put:: /system-clients/(system_client_id)/packages/(id) Передается JSON объект вида `Пакет`_ :arg system_client_id: идентификатор системного клиента; :arg id: идентификатор пакета. В идентификаторе пакета созданного самостоятельно недопустимо использовать символ ``!``, данный символ присутствует в идентификаторах пакетов ведущихся централизованно. Пример отправки пакета (для создания или изменения):: PUT https://api.powervhc.com/v1/system-clients/inchcape/packages/customFilterPackage #В поле X-API-KEY заголовка запроса указан действительный ключ API В теле запроса: .. sourcecode:: js { "description": "Фильтр салона", "currency": "RUB", //обязательно для собственного пакета "variants": [ { "contents": [ { "description": "Фильтр салона - замена", "id": "1", "itemCategory": "labour", "labourCode": "80.15.42", "quantity": 0.1, "unitOfMeasure": "hour", "amountExVat": 500, //обязательно для собственного пакета "amountIncVat": 590 //обязательно для собственного пакета }, { "description": "Фильтр салона", "id": "2", "itemCategory": "material", "materialNumber": "LR056138", "quantity": 1, "unitOfMeasure": "ea", "amountExVat": 1000, //обязательно для собственного пакета "amountIncVat": 1180 //обязательно для собственного пакета } ], "description": "Freelander 2", "id": "1", "longText": "", "modelCodeApplicabilityList": [ "L359" ] }, { "contents": [ { "description": "Фильтр салона - замена", "id": "1", "itemCategory": "labour", "labourCode": "80.15.42", "quantity": 0.1, "unitOfMeasure": "hour", "amountExVat": 500, //обязательно для собственного пакета "amountIncVat": 590 //обязательно для собственного пакета }, { "description": "Фильтр салона", "id": "2", "itemCategory": "material", "materialNumber": "LR023977", "quantity": 1, "unitOfMeasure": "ea", "amountExVat": 1200, //обязательно для собственного пакета "amountIncVat": 1416 //обязательно для собственного пакета } ], "description": "Discovery / RR Sport", "id": "2", "longText": "", "modelCodeApplicabilityList": [ "L319", "L320" ] } ] } .. attention:: Пакеты ведущиеся централизованно изменять нельзя, для таких пакетов доступен только метод **GET**. Для определения цен по таким пакетам используется отдельный интерфейс `Задание цен для централизованных пакетов`_ .. _api-package-pricing: Задание цен для централизованных пакетов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный ресурс позволяет задавать цены для :ref:`позиций вариантов пакета `. Цены на уровне :ref:`вариантов пакета ` и :ref:`пакетов ` обновляются автоматически исходя из сумм, переданных по :ref:`позициям `. .. http:put:: /system-clients/(system_client_id)/packages/(id)/prices Передаем JSON объект вида `Пакет`_ :arg system_client_id: идентификатор системного клиента; :arg id: идентификатор пакета. .. note:: Используются только цены на уровне :ref:`позиций ` (``amountExVat`` и ``amountIncVat``), идентификаторы и поле ``currency``, остальные поля игнорируются. Все 3 поля необходимы для корректного расчета статистики. Пример передаваемого JSON объекта: .. sourcecode:: js :emphasize-lines: 3,10,11 { "id": "идентификатор пакета", "currency": "RUB", "variants": [ { "id": "идентификатор варианта пакета", "contents": [ { "id": "идентификатор позиции варианта пакета", "amountExVat": 1000, "amountIncVat": 1180 }, ... ] }, ... ] } Пример отправки информации о пакете с измененной ценой:: PUT https://api.powervhc.com/v1/system-clients/inchcape/packages/radiatorWash/prices #В поле X-API-KEY заголовка запроса указан действительный ключ API .. note:: Для обновления цен в eVHC обычно применяется следующая последовательность операций периодически выполняющаяся на стороне DMS: 1. Получить список доступных пакетов запросом ``GET /system-clients/(system_client_id)/packages/`` 2. Для каждого пакета: - получить его содержание запросом ``GET /system-clients/(system_client_id)/packages/(id)/master``; - рассчитать цены для всех вариантов пакета на основании данных DMS; - передать цены по позициям в eVHC запросом ``PUT /system-clients/(system_client_id)/packages/(id)/prices`` .. _api-survey-templates: Получение списка шаблонов анкет ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. http:get:: /system-clients/(system_client_id)/survey-templates Возвращает список JSON объектов :arg system_client_id: идентификатор системного клиента; :>jsonarr string id: Идентификатор шаблона. Для централизованных шаблонов JLR **id** будет начинаться с ``jlr!`` и **masterClientId** равен ``"jlr"``; :>jsonarr string text: Название шаблона; :>jsonarr string masterClientId: Идентификатор системного клиента, в котором задан шаблон. Пример получения списка шаблонов анкет:: GET https://api.powervhc.com/v1/system-clients/inchcape/survey-templates #В поле X-API-KEY заголовка запроса указан действительный ключ API .. sourcecode:: js [ { "id": "jlr!jlr-standard", "text": "Диагностическая карта", "masterClientId": "jlr" }, ... ] Получение шаблона анкеты ~~~~~~~~~~~~~~~~~~~~~~~~ Данный ресурс позволяет получить полную информацию по шаблону анкеты (листа проверок). Формат возвращаемых данных описан в разделе `Лист проверок`_. .. http:get:: /system-clients/(system_client_id)/survey-templates/(id) Возвращает JSON объект вида `Лист проверок`_ :arg system_client_id: идентификатор системного клиента; :arg id: идентификатор шаблона. Пример получения информации о шаблоне анкеты с id ``jlr!jlr-standard``:: GET https://api.powervhc.com/v1/system-clients/inchcape/survey-templates/jlr!jlr-standard #В поле X-API-KEY заголовка запроса указан действительный ключ API #Ответ от сервера содержит код статуса HTTP 200 OK и содержание шаблона анкеты. Привязка пакетов к анкетам ~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный ресурс позволяет привязать/отвязать собсвенные пакеты к ответам шаблона анкеты. .. attention:: Данный API временный и может поменяться. .. http:put:: /system-clients/(system_client_id)/survey-templates/(id)/package-assignment Передаем список инструкций в виде JSON объектов :arg system_client_id: идентификатор системного клиента; :arg id: идентификатор шаблона анкеты. :jsonarr string questionId: Идентификатор вопроса; :>jsonarr string answerId: Идентификатор ответа; :>jsonarr array packageIds: Список идентификаторов пакетов; :>jsonarr string siteId: (`Опционно`) Индентификатор Дилерского центра, к которому применима данная инструкция; :>jsonarr string branchId: (`Опционно`) Индентификатор Кода дилера, к которому применима данная инструкция. Пример получения информации о привязки пакетов к шаблону анкеты с id ``jlr!jlr-standard``:: GET https://api.powervhc.com/v1/system-clients/inchcape/survey-templates/jlr!jlr-standard #В поле X-API-KEY заголовка запроса указан действительный ключ API .. sourcecode:: js [ { "answerId": "diagnostics", "packageIds": [ "jlr!CabinAirFilter" ], "questionId": "fluidLeaks", "siteId": "musa-center" }, { "answerId": "diagnostics", "branchId": "landrover", "packageIds": [ "101001" ], "questionId": "fluidLeaks", "siteId": "musa-east" } ] .. _get-vehicle-info: Получение информации по АМ ~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный ресурс позволяет получить общую информацию по АМ .. http:get:: /system-clients/(system_client_id)/vehicle-info/(VIN) :arg system_client_id: идентификатор системного клиента; :arg VIN: VIN автомобиля. Возвращает JSON объект вида `Информация об АМ`_ Пример получения информации об АМ по VIN:: GET https://api.powervhc.com/v1/system-clients/inchcape/vehicle-info/SALGA2HF7EA185593 #В поле X-API-KEY заголовка запроса указан действительный ключ API Ответ сервера: .. sourcecode:: js { "airIntakeType": "Turbo SC", "colour": "Loire Blue", "engineCapacity": 4.4, "engineType": "4.4 Litre SDV8 Diesel", "fuelType": "diesel", "gearboxType": "Auto 8 Speed Trans ZF 8H70", "make": "Land Rover", "model": "Range Rover L405 4.4 Litre SDV8 Diesel Vogue", "modelCode": "L405", "modelYear": 2014, "vin": "SALGA2HF7EA185593" } .. note:: Данный интерфейс не предназначен для массового запроса данных по всем АМ. Существуют автоматические ограничения на частоту запросов. В случае превышения максимально допустимой частоты запросов сервер ответит кодом :http:statuscode:`429`. Получение скорректированного email/телефона ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ В системе есть возможно изменять данные клиента. Для получения скорректированного email или мобильного телефона требуется: 1. Получить с сервера `Лист проверок`_ (см. `Получение листа проверок`_) 2. Найти поле **modifiedEmail** или **modifiedMobilePhone** в объектах, хранящих информацию о клиенте: * *customer* * *driver* в **surveyObject** * *owner* в **surveyObject** Webhook на отправку сообщений ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Webhook -- механизм получения уведомлений об определённых событиях. В PowerVHC есть webhook, который вывзывается каждый раз при отправке сообщений клиенту. Данный webhook вызывается для 2 типов событий: отправка результов eVHC проверки, отправка видео-результатов проверки (VC). Если при отправке сообщения возникли ошибки, webhook не будет вызван. Для использования достаточно прописать в настройках организации URL ресурса, на который будет отправляться PUT-запрос и **X-Api-Key** - ключ авторизации на указанном ресурсе. Необходимые настройки можно сделать через службу технической поддержки *support@powervhc.com*. PowerVHC посылает хук методом PUT с JSON-объектом в теле запроса вида `Информация об отправке`_: .. http:put:: (resource_url)/(id) :arg resource_url: URL ресурса; :arg id: Уникальный идентификатор сообщения. :statuscode 204: Операция успешна. Пример содержания запроса: .. sourcecode:: js { "id": "bc91148ff3ddab8a59fe168a4de86534", //Уникальный идентификатор сообщения "systemClientId": "inchcape-test", //Идентификатор системного клиента "referenceObjectCategory": "serviceOrder", //Категория ссылочного объекта "referenceObjectId": "test-output", //ID ссылочного объекта "surveyId": "LYBh0iea897T3nvnwyzO", //Идентификатор опросного листа "outputId": "jEDz0f", //Идентификатор сообщения в опросном листе "outputCategory": "sms", //Способ отправки сообщения "outputType": "vcApproval", //Тип сообщения для видео-результатов проверки (VC) "outputTimestamp": "2018-10-04T12:25:28Z", //Дата отправки сообщения в формате ISO8601. "destinations": [ //Получатели сообщения { "address": "+7(926)111-11-11", //Адрес отправки сообщения "id": "1", "name": "Иванов Иван Иванович", //Наименование получателя "sourcePartnerType": "customer", //Тип получателя ... } ], "linkUrl": "https://vhc.re/GIAqdbwCkK-RLBIGN3L6pA", //URL ссылки для просмотра результатов проверки. "linkValidUntil": "2018-12-04T12:25:28Z", //Дата завершения действия ссылки в формате ISO8601. "vin": "SALGA2HF7EA185593", // VIN автомобиля "customer": { //Клиент "category": "person", //Персона "address": "123300, г.Москва, ул. Ленина, д.1", //Почтовый адрес "email": "test@gmail.com", //E-mail "firstName": "Иван", //Имя "gender": "male", "id": "10302D", //Идентификатор клиента в ДМС "landline": "+7(495)123-22-22", //Стационарный телефон "lastName": "Иванов", //Фамилия "middleName": "Иванович", //Отчество "mobilePhone": "+7(911)111-11-11", //Мобильный телефон "modifiedMobilePhone": "+7(926)111-11-11" //Мобильный телефон, заданный в системе PowerVHC }, "owner": { //Владелец АМ "category": "person", "address": "123300, г.Москва, ул. Ленина, д.1", "email": "test@gmail.com", "firstName": "Иван", "gender": "male", "id": "10302D", "landline": "+7(495)123-22-22", "lastName": "Иванов", "middleName": "Иванович", "mobilePhone": "+7(911)111-11-11" }, "driver": { //Водитель/Доверенное лицо "address": "123300, г.Москва, ул. Ленина, д.1", "email": "test@gmail.com", "firstName": "Иван", "gender": "male", "id": "10302D", "landline": "+7(495)123-22-22", "lastName": "Иванов", "middleName": "Иванович", "mobilePhone": "+7(911)111-11-11" } } Принимающий хуки скрипт в случае успеха должен отвечать http-кодом 2XX. При получении кода ошибки попытка отправки данных считается неудачной. В таких случаях запрос будет отправлен на этот же адрес с теми же данными через 10 минут. После 5 попыток отправки запрос будет удалён из очереди, даже если доставка так и не состоялась. .. _api-lead-edit: Создание потенциального клиента ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Используется при создании или изменении данных потенциального клиента в системе eVHC. .. http:put:: /system-clients/(system_client_id)/leads/(id) Передаем JSON объект вида `Запрос на обзор для клиента`_ :arg system_client_id: идентификатор системного клиента; :arg id: ID потенциального клиента (запроса на обзор для клиента). Возвращает статус операции в виде HTTP кода и подробную информацию о проблеме с запросом при её наличии. Создание анкеты CVR ~~~~~~~~~~~~~~~~~~~ Делаем запрос, как в разделе `Создание потенциального клиента`_. Запрос может быть сделан как на этапе создания потенциального клиента, так и после. .. http:put:: /system-clients/(system_client_id)/leads/(id) :arg system_client_id: идентификатор системного клиента; :arg id: ID потенциального клиента (запроса на обзор для клиента). `Запрос на обзор для клиента`_ должен содержать следующие параметры: .. sourcecode:: js { ... "reviewSurveyRelease": true, ... } :jsonarr Survey: Формат данных описан разделе `Лист проверок`_ (в данном интерфейсе передаются только некотрые поля заголовка листа проверок). Получение списка потенциальных клиентов ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данный интерфейс позволяет получить список потенциальных клиентов в виде списка из JSON объектов `Запрос на обзор для клиента`_ (в данном интерфейсе передается только краткая информация). .. http:get:: /system-clients/(system_client_id)/leads :arg system_client_id: идентификатор системного клиента; :query string dateFrom: *dateFrom <= plannedStartTimestamp*; :query string dateTo: *dateTo >= plannedStartTimestamp*; :query string branch: Код дилера. Можно задать несколько кодов дилера: ``branch=R2020&branch=R2021&branch=R2022``; :query string list: принимает значение :code:`"outstanding"`, если требуется вывести только активных потенциальных клиентов, для которых поле ``"closed"=false``. :>jsonarr CustomerReviewRequest: Формат данных описан разделе `Запрос на обзор для клиента`_ (в данном интерфейсе передается только краткая информация). Редактирование данных о сделке с клиентом ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Данные о всех сделках с клиентом можно передать через интерфейс `Создание потенциального клиента`_. Добавить или изменить данные о конкретной сделке можно через следующий запрос: .. http:put:: /system-clients/(system_client_id)/leads/(lead_id)/deals/(id) Передаем JSON объект вида `Сделка`_ :arg system_client_id: идентификатор системного клиента; :arg lead_id: ID потенциального клиента (запроса на обзор для клиента); :arg id: ID сделки. :statuscode 200: Операция успешна. Удаление данных о сделке с клиентом ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. http:delete:: /system-clients/(system_client_id)/leads/(lead_id)/deals/(id) :arg system_client_id: идентификатор системного клиента; :arg lead_id: ID потенциального клиента (запроса на обзор для клиента); :arg id: ID сделки. :statuscode 204: Операция успешна. Описание форматов передаваемых данных ===================================== .. _json-unitsOfMeasure: Единицы измерения ~~~~~~~~~~~~~~~~~ +------------------+---------------------+-------------------+ |Код (возвращаемое |Принимаемое значение |Описание | |значение) |(если отличается) | | +==================+=====================+===================+ |mm | |мм | +------------------+---------------------+-------------------+ |m | |м | +------------------+---------------------+-------------------+ |km | |км | +------------------+---------------------+-------------------+ |mi | |мили | +------------------+---------------------+-------------------+ |mi |mile |мили | +------------------+---------------------+-------------------+ |in | |дюймы | +------------------+---------------------+-------------------+ |in |inch |дюймы | +------------------+---------------------+-------------------+ |% | |проценты | +------------------+---------------------+-------------------+ |hour | |часы | +------------------+---------------------+-------------------+ |hour |hr |часы | +------------------+---------------------+-------------------+ |ea | |штуки | +------------------+---------------------+-------------------+ |ea |pc |штуки | +------------------+---------------------+-------------------+ |pac | |пачки | +------------------+---------------------+-------------------+ |l | |литры | +------------------+---------------------+-------------------+ |l |liter |литры | +------------------+---------------------+-------------------+ |ml | |мл | +------------------+---------------------+-------------------+ |kg | |кг | +------------------+---------------------+-------------------+ |g | |граммы | +------------------+---------------------+-------------------+ |Cel | |°C | +------------------+---------------------+-------------------+ |Fa | |°F | +------------------+---------------------+-------------------+ |K | |°Кельвина | +------------------+---------------------+-------------------+ .. _json-serviceOrder: Сервисный заказ ~~~~~~~~~~~~~~~ .. json:object:: ServiceOrder :property string id: Идентификатор заказа. Используется для идентификации заказа в рамках системы eVHC. Присутствует в URL ресурсов. Рекомендуется использовать длинные идентификаторы длиной до 40 символов. :property string externalId: Внешний идентификатор заказа. Используется в пользовательском интерфейсе и для печати форм. :property string serviceOrderType: Тип сервисного заказа в ДМС. Информационное поле без управляющего значения. :property string externalBranchId: Код дилера OEM. Поле является обязательным и определяет привязку заказа к ДЦ. :property string departmentId: Идентификатор отдела. :property string plannedStartTimestamp: Плановая дата начала работ в формате ISO8601_. :property boolean сlosed: Флаг указывающий на то, что заказ закрыт. При установке данного флага все связанные анкеты автоматически закрываются. :property boolean rejected: Флаг указывающий на то, что заказ отменен без выполнения работ (например клиент не приехал). Отмененные заказы учитываются в статистике в отдельной графе. При установке данного флага все связанные анкеты автоматически закрываются. :property string parentOrderId: Ссылка на ID основного/вышестоящего заказа. Используется для корректного отображения и учета ситуаций с открытием нескольких сервисных заказов на один визит клиента. Опросный лист создается только по основному заказу. Если поле отсутствует или пусто — заказ считается основным. :property string description: Краткий текст заказа. (Отображается в интерфейсах. Может быть использован для передачи заявки клиента.) :property string currency: Код валюты заказа в соответствии с ISO4217. Поле необходимо при передаче любых сумм по заказу. :property object customer: Клиент. Передаётся JSON объект вида `Бизнес партнёр`_. :property object payer: Плательщик. Передаётся JSON объект вида `Бизнес партнёр`_. :property object serviceAdvisor: Мастер-консультант. Передаётся JSON объект вида `Персона`_. :property array technicians: Список механиков (для проверок QC). Передаётся в виде списка JSON объектов `Персона`_. :property object technician: Механик (плановый проверяющий для VC). Передаётся JSON объект вида `Персона`_. :property object vehicle: Автомобиль. Передаётся JSON объект вида `Автомобиль`_. :property array surveys: Список листов проверок по данному заказу. Возвращает список объектов содержащих идентификаторы и типы листов проверок. :property array contents: Список позиций заказа в виде списка из JSON объектов `Позиция заказа`_. :property boolean defaultSurveyReleaseDisabled: Флаг указывающий на то, что не надо создавать анкеты по умолчанию (eVHC). .. :property object technician: Механик (для проверок Video Capture). Передаётся JSON объект вида `Персона`_. .. _json-customerReviewRequest: Запрос на обзор для клиента ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. json:object:: CustomerReviewRequest :property string id: Идентификатор запроса. Используется для идентификации запроса в рамках системы eVHC. Присутствует в URL ресурсов. Рекомендуется использовать длинные идентификаторы длиной до 40 символов. :property string externalId: Внешний идентификатор. Используется в пользовательском интерфейсе. :property string externalBranchId: Код дилера OEM. Поле является обязательным и определяет привязку запроса к ДЦ. :property string departmentId: Идентификатор отдела. :property string plannedStartTimestamp: Плановая дата начала работ в формате ISO8601_. Если значение не задано, то используется дата содания запроса. :property boolean сlosed: Флаг указывающий на то, что запрос закрыт. При установке данного флага все связанные анкеты автоматически закрываются. :property boolean rejected: Флаг указывающий на то, что запрос отменен без выполнения работ. Отмененные запросы учитываются в статистике в отдельной графе. При установке данного флага все связанные анкеты автоматически закрываются. :property string description: Краткий текст заказа. (Отображается в интерфейсах. Может быть использован для передачи заявки клиента.) :property object customer: Клиент. Передаётся JSON объект вида `Бизнес партнёр`_. :property object responsiblePerson: Ответственный сотрудник. Передаётся JSON объект вида `Персона`_. :property object vehicle: Автомобиль. Передаётся JSON объект вида `Автомобиль`_. :property array surveys: Список листов проверок по данному запросу. Возвращает список объектов содержащих идентификаторы и типы листов проверок. :property array deals: Список сделок по запросу в виде списка из JSON объектов `Сделка`_. .. _json-businessPartner: Бизнес партнёр ~~~~~~~~~~~~~~ Объект бизнес партнёр представляет собой объект вида либо `Персона`_ либо `Компания`_ с дополнительным полем **category** имеющим значение :code:`"person"` или :code:`"legalEntity"` в зависимости от типа содержащегося в нем объекта. .. _json-person: Персона ~~~~~~~ .. json:object:: Person :property string id: Идентификатор клиента в ДМС :property string title: Обращение :property string firstName: Имя :property string middleName: Отчество :property string lastName: Фамилия :property string gender: Одно из значений: :code:`"male"`, :code:`"female"` или :code:`null` (в случае если пол не известен). :property string landline: Стационарный телефон :property string mobilePhone: Мобильный телефон :property string modifiedMobilePhone: Мобильный телефон, заданный в системе PowerVHC :property string email: E-mail :property string modifiedEmail: E-mail, заданный в системе PowerVHC :property string address: Почтовый адрес .. _json-company: Компания ~~~~~~~~ .. json:object:: Company :property string id: Идентификатор клиента в ДМС :property string name: Название :property string landline: Телефон :property string mobilePhone: Мобильный телефон :property string modifiedMobilePhone: Мобильный телефон, заданный в системе PowerVHC :property string email: E-mail :property string modifiedEmail: E-mail, заданный в системе PowerVHC :property string address: Почтовый адрес :property array contactPersons: Контактные лица. Список объектов вида `Персона`_. .. _json-vehicle: Автомобиль ~~~~~~~~~~ .. json:object:: Vehicle :property string id: Идентификатор автомобиля в ДМС :property string vin: VIN :property string numberPlate: Государственный регистрационный номер :property string numberPlateCountry: Код страны выдавшей гос.номер :property string make: Марка. Может использоваться для определения применимости :ref:`варианта пакета ` и для выбора изображения контура АМ для описания повреждений. Допустимые значения ``"Jaguar"``, ``"Land Rover"`` или ``"Range Rover"``, ``"Mercedes"``, ``"Toyota"``, ``"Lexus"``, ``"Porsche"``. Другие значения возможны, однако изображение АМ и пакеты могут быть определены неверно. :property string derivativeCode: Производный код. Задается из ДМС. Может использоваться для определения применимости :ref:`варианта пакета `. Может определять модификацию кузова АМ, характиристики двигателя, тип КП и тд. :property string model: Модель (текстовое представление) :property string modelCode: Код модели OEM. Может использоваться для определения применимости :ref:`варианта пакета ` и для выбора изображения контура АМ для описания повреждений. Например "L359" для Freelander 2. :property integer modelYear: Модельный год (4 знака). Может использоваться для определения применимости :ref:`варианта пакета `. Например: 2015 :property string fuelType: Тип топлива АМ. Может использоваться для определения применимости :ref:`варианта пакета `. Допустимые значения: ``"petrol"`` - бензиновый, ``"diesel"`` - дизель, ``"hybrid"`` - гибрид, ``"electric"`` - электро, ``"biofuelPetrol"`` - биотопливо бензин, ``"biofuelGas"`` - биотопливо газ, ``"liquefiedGas"`` - сжиженный газ. :property float engineCapacity: Объём двигателя в литрах с точностью до одного знака после запятой. Может использоваться для определения применимости :ref:`варианта пакета `. Например: ``2.2``. :property string airIntakeType: Тип подачи воздуха в двигатель. Может использоваться для определения применимости :ref:`варианта пакета `. Допустимые значения: ``"Turbo SC"`` - с наддувом, ``"Naturally aspirated"`` - атмосферный. :property string engineType: Тип двигателя. Используется для печати акта. :property string engineNumber: Номер двигателя. Используется для печати акта. :property string colour: Цвет АМ. Используется для печати акта. :property string gearboxType: Тип коробки передач. :property float recordedMileage: Пробег в DMS :property string mileageUnit: Код единицы измерения пробега. Допустимые значения: ``"km"`` - км, ``"mi"`` - мили. :property string recordedMilageDate: Дата регистрации пробега в ДМС (в формате ISO8601_) :property string warrantyStartDate: Дата начала гарантии в формате ISO8601_ (дата продажи/дата 1й регистрации) :property string warrantyEndDate: Дата окончания гарантии(по сроку; в формате ISO8601_) :property boolean warrantyOn: Признак наличия гарантии: ``true``, ``false``, ``null`` - нет данных. :property string serviceContractType: Вид сервисного контракта (строка) :property string serviceContractNumber: Номер сервисного контракта (строка) :property string serviceContractStartDate: Дата начала сервисного контракта (в формате ISO8601_) :property string serviceContractEndDate: Дата окончания сервисного контракта (в формате ISO8601_) :property float estimatedPrice: Оценочная стоимость АМ :property string estimatedPriceCurrency: Код валюта оценочной стоимости АМ (по ISO4217_) :property string vinResolutionStatus: Статус получения данных об АМ по VIN. Строковое значение. Принимает значение ``"OK"`` при успешном автоматическом получении информации по АМ по VIN. Автоматически полученные данные при этом записываются в соответствующие поля объекта Автомобиль. :property object owner: Владелец АМ. Объект вида `Бизнес партнёр`_. :property object driver: Водитель/Доверенное лицо. Объект вида `Персона`_. При наличии данного поля данные из него подтягиваются на печатные формы, если данного поля нет, на формах используются данные из поля **customer** (Заказчик). .. _json-serviceOrderContentItem: Позиция заказа ~~~~~~~~~~~~~~ .. json:object:: ServiceOrderContentItem :property string id: Идентификатор (номер) позиции в ДМС :property string itemCategory: Категория позиции. Одно из значений ``"labour"`` или ``"material"``. Обязательное поле. (При отправке данных в eVHC допустимо так же испольование значения ``"part"`` вместо значения ``"material"``). :property string itemCode: Код позиции. Номер запчасти для запчастей и код работы для работ. :property string description: Текст позиции :property string catalogue: Идентификатор каталога работ в ДМС. Используется только для работ. Поле не обязательное. :property string materialGroup: Группа материалов. Только для позиций запчастей. Поле не обязательное. :property string labourType: Вид работ. Только для позиций работ. Поле не обязательное. :property float quantity: Количество (общее коичество по позиции). :property string unitOfMeasure: Код Единицы измерения количества. Допустимые значения: ``"ea"`` - each (штука), ``"pc"`` - синоним ``"ea"``, ``"hour"`` - час, ``"l"`` - литр. См. `Единицы измерения`_. :property float amountExVat: Общая сумма по позиции без НДС в валюте заказа. :property float amountIncVat: Общая сумма по позиции с НДС в валюте заказа. :property float soldQuantity: Проданное количество (количество по которому уже возникла дебиторская задолженность клиента, т.е. выставлен счет). :property float soldAmountExVat: Проданная сумма по позиции без НДС в валюте заказа. :code:`= Проданное количество * Цена позиции без НДС` :property float soldAmountIncVat: Проданная сумма по позиции с НДС в валюте заказа. :code:`= Проданное количество * Цена позиции с НДС` :property float deferredQuantity: Отложенное количество (количество которое было отмечено как отложенное в ДМС). :property float deferredAmountExVat: Отложенная сумма по позиции без НДС в валюте заказа. :code:`= Отложенное количество * Цена позиции без НДС` :property float deferredAmountIncVat: Отложенная сумма по позиции с НДС в валюте заказа. :code:`= Отложенное количество * Цена позиции с НДС` :property string deferralDateTime: Дата и время на которые отложены работы. Указывается только если по позиции есть отложенное количество. :property string evhcSurveyId: Идентификатор чеклиста eVHC, из которого получена позиция. Используется для построения отчётов. :property string evhcAnswerId: Идентификатор вопроса eVHC, из которого получена позиция. Используется для построения отчётов. :property string evhcPackageId: Идентификатор пакета eVHC, из которого получена позиция. Используется для построения отчётов. :property string evhcPackageVariantId: Идентификатор варианта пакета eVHC, из которого получена позиция. Используется для построения отчётов. .. _json-dealItem: Сделка ~~~~~~ .. json:object:: DealItem :property string id: Идентификатор сделки :property string siteId: (`Опционно`) Индентификатор Дилерского центра. :property string branchId: (`Опционно`) Индентификатор Кода дилера. :property string departmentId: (`Опционно`) Идентификатор отдела. :property boolean rejected: Флаг указывающий на то, что сделка отменена. :property string orderId: Номер счёта на оплату. :property string orderTimestamp: Дата счёта в формате ISO8601_. :property string invoiceId: (`Опционно`) Номер счёта на оплату. :property string invoiceTimestamp: (`Опционно`) Дата счёта в формате ISO8601_. :property float invoiceAmountExVat: Cумма по счёту без НДС. :property float invoiceAmountIncVat: Cумма по счёту с НДС. :property string invoiceCurrency: Код валюты счёта в соответствии с ISO4217_. *Поле является обязательным при передаче сумм по счёту*. :property float payedAmount: Cумма поступлений оплаты по счёту. :property string deliveryNoteId: (`Опционно`) Номер накладной (счёт-фактуры). :property string deliveryTimestamp: (`Опционно`) Дата накладной в формате ISO8601_. .. _json-survey: Лист проверок ~~~~~~~~~~~~~ .. json:object:: Survey :property string id: Идентификатор листа проверок :property string surveyType: Тип листа проверок. Возможные типы листов проверок описаны в разделе :ref:`survey-types`. :property string category: Категория листа проверок. Значение используемое в рамках проекта eVHC ``"interactiveHandover"`` - прямая приёмка. :property string branch: Код подразделения / ДЦ. Копируется из исходного заказа. :property string text: Краткий текст листа проверок. :property object plannedSurveyor: Сотрудник из списка plannedSurveyors, который произвел осмотр (для VC - механик). Объект вида `Персона`_. :property array plannedSurveyors: Список сотрудников, которые могут производить осмотр (для VC - механик). Список объектов вида `Персона`_. :property string surveyor: Сотрудник, который произвёл осмотр (напрмер, для eVHC - мастер-консультант, VC - механик). Объект вида `Персона`_. :property string customer: Клиент. Объект вида `Бизнес партнёр`_. :property boolean completed: Признак завершения проверки. :property boolean closed: Признак закрытия листа проверки. Устанавливается при закрытии исходного заказа. :property object surveyObject: Объект осмотра. Объект вида `Автомобиль`_. :property object referenceObject: Ссылочный объект. Объект вида `Сервисный заказ`_ в котором присутствует лишь часть полей заголовка. :property array contents: Содержимое листа проверок. Список объектов вида `Элемент листа проверок`_. .. _json-surveyContentElement: Элемент листа проверок ~~~~~~~~~~~~~~~~~~~~~~ Элемент листа проверок представляет собой объект вида: * `Раздел листа проверок`_ с дополнительным полем ``"category":"section"`` * `Вопрос`_ с дополнительным полем ``"category":"question"`` * `Ссылка на вопрос`_ с дополнительным полем ``"category":"referenceQuestion"`` .. _json-section: Раздел листа проверок ~~~~~~~~~~~~~~~~~~~~~ .. json:object:: SurveySection :property string id: Идентификатор раздела :property array contents: Содержимое раздела листа проверок. Список объектов вида `Элемент листа проверок`_. .. _json-question: Вопрос ~~~~~~ .. json:object:: SurveyQuestion :property string id: Идентификатор вопроса. Уникален в рамках листа проверок. Один и тот же вопрос в разных листах проверки созданных по одному шаблону будет иметь одинаковое значение. Данное поле может быть использовано для поиска конкретного вопроса в рамках листа проверок. :property string text: Текст вопроса :property boolean_или_string mandatory: Признак обязательности вопроса. Может содержать или булево значение или строку с идентификатором динамического условия по которому определяется обязательность вопроса. :property array answers: Список ответов на вопрос. Содержит объекты вида `Ответ`_. .. :property string questionCategory: Категория вопроса. Одно из значений: ``"valueEntry"``, ``"valueSelectionOrEntry"`` или ``"valueSelection"``. .. :property string answerCategory: Категория ответа. Одно из значений: ``"text"``, ``"textAndComment"`` или ``"length"``. .. _json-ref-question: Ссылка на вопрос ~~~~~~~~~~~~~~~~ .. json:object:: ReferenceQuestion :property string id: Идентификатор ссылки :property string text: Текст ссылки :property string referenceQuestionId: Id вопроса, на который сделана ссылка. .. _json-answer: Ответ ~~~~~ .. json:object:: Answer :property string id: Идентификатор ответа. Уникален в рамках вопроса. Стандартные ответы имеют стандартные идентификаторы (повторяются в листах проверок одного вида) введённые вручную ответы имеют уникальные идентификаторы. :property string value: Значение ответа (текст). :property string unitOfMeasurement: Единица измерения. Поле используется для вопросов требующих измерения физических величин (длина, давление итд). Возможные значения: ``"km"`` - км, ``"mi"`` - мили. См. `Единицы измерения`_. :property string status: Статус. Одно из значений: ``"green"``, ``"amber"`` или ``"red"``. :property string comment: Внутренний комментарий к ответу. :property boolean selected: Ответ выбран. Поле указывает, что данный ответ является действительным. Ответы с ``"selected": false`` следует игнорировать при обработке результатов проверки. :property array packages: Список пакетов для данного ответа. Содержит список объектов вида `Пакет`_ с дополнительными полями для листа проверок. :property boolean custom: Ответ добавлен пользователем из приложения, если ``true``. .. _json-quote: Предложение для клиента ~~~~~~~~~~~~~~~~~~~~~~~ .. json:object:: Quote :property string id: Идентификатор предложения. Уникален в рамках опросного листа. *Обязательное поле.* :property string category: Категория предложения. Обязательное поле. Допустимые значения: ``"quote"`` и ``"package"``. Предложения с категорией ``"package"`` нельзя изменять напрямую через интерфейс для изменения предложений клиенту. :property string description: Описание предложения. :property string currency: Код валюты предложения в соответствии с ISO4217_. *Обязательное поле.* :property string questionId: Идентификатор вопроса к которому относится данное предложение. *Обязательное поле.* :property string answerId: Идентификатор ответа к которому относится данное предложение. *Обязательное поле.* :property string packageId: Идентификатор пакета к которому относится данное предложение. :property string variantId: Идентификатор варианта к которому относится данное предложение. При указании **packageId** и **variantId** в предложении с категорией ``"quote"`` данный вариант пакета более не считается актуальными и заменяется данным предложением для клиента. :property string approvalStatus: Статус согласования. Возможные значения: ``"approved"``, ``"rejected"`` и ``"deferred"``. :property string deferralDate: Дата и время на которые отложены работы. Статус согласования ``"approvalStatus": "deferred"``. :property string rejectionReasonCode: Код причины отклонения. Статус согласования ``"approvalStatus": "rejected"``. :property string approvalMedium: Канал согласования с клиентом. Возможные значения: ``"internet"``, ``"phone"`` и ``"direct"``. :property string approvalDate: Дата согласования с клиентом (в формате ISO8601_) :property array contents: Содержимое предложения клиенту. Список объектов вида `Позиция варианта пакета`_. .. _json-package: Пакет ~~~~~ .. json:object:: Package :property string id: Идентификатор пакета :property string masterClient: Идентификатор системного клиента в котором ведется пакет. При использовании централизованного ведения пакетов он может отличаться от системного клиента из которого он был получен. :property string description: Описание пакета :property string currency: Код валюты пакета в соответствии с ISO4217_. *Поле является обязательным при передаче цен/сумм по пакету.* :property boolean oemPricing: Цены заданы OEM. Цены заданные дилером не будут использованы. :property array variants: Список вариантов данного пакета. Значение этого поля представляет собой список из объектов типа `Вариант пакета`_. :property string packageType: Тип пакета. Возможные значения: ``null`` - по умолчанию, ``"scheduledMaintenance"`` - регламентное обслуживание, ``"recommendedMaintenance"`` - рекомендованное обслуживание, ``"promo"`` - акционные предложения, ``"care"`` - забота об автомобиле, ``"diagnostics"`` - диагностика, ``"accessories"`` - акссессуары для Вашего авто. :property integer serviceIntervalMileage: Интервал ТО (пробег, км). :property integer serviceIntervalAge: Частота ТО (время, мес). .. _json-packageVariant: Вариант пакета ~~~~~~~~~~~~~~ .. json:object:: PackageVariant :property string id: Идентификатор варианта пакета :property string description: Описание варианта пакета :property string longText: Длинный текст :property float priceExVat: Цена пакета без НДС :property float priceIncVat: Цена пакета с НДС :property float labourPriceExVat: Цена работ в пакете без НДС :property float labourPriceIncVat: Цена работ в пакете с НДС :property float partsPriceExVat: Цена запчастей в пакете без НДС :property float partsPriceIncVat: Цена запчастей в пакете с НДС :property float discountPriceExVat: Цена пакета со скидкой (на постгарантийные АМ) без НДС :property float discountPriceIncVat: Цена пакета со скидкой (на постгарантийные АМ) с НДС :property float discountLabourPriceExVat: Цена работ в пакете со скидкой (на постгарантийные АМ) без НДС :property float discountLabourPriceIncVat: Цена работ в пакете со скидкой (на постгарантийные АМ) с НДС :property float discountPartsPriceExVat: Цена запчастей в пакете со скидкой (на постгарантийные АМ) без НДС :property float discountPartsPriceIncVat: Цена запчастей в пакете со скидкой (на постгарантийные АМ) с НДС :property boolean oemPricing: Цены заданы OEM. Цены заданные дилером не будут использованы. :property string variantPricingCategory: Метод расчета цен. Допустимы 2 значения: ``"individualItemPricing"`` - цены установлены на уровне отдельных позиций и ``"fixedVariantPrice"`` - цена фиксирована на уровне варианта, цены на уровне позиций не ведутся. :property array contents: Содержимое пакета. Список объектов вида `Позиция варианта пакета`_. :property string applicabilityType: Алгоритм определения применимости пакета к АМ. Значение: ``"independentCriteria"``. (возможно расширение списка доступных алгоритмов определения применимости вариантов пакета). :property array_of_strings derivativeCodeApplicabilityList: Список производных кодов АМ, к которым применим данный вариант пакета. См. `Автомобиль`_. :property array_of_strings modelCodeApplicabilityList: Список кодов моделей, к которым применим данный вариант пакета. См. `Автомобиль`_. :property array_of_strings makeApplicabilityList: Список марок АМ, к которым применим данный вариант пакета. См. `Автомобиль`_. :property array_of_strings modelYearApplicabilityList: Список модельных годов (по 4 знака). См. `Автомобиль`_. :property array_of_strings fuelTypeApplicabilityList: Список типов топлива. Варианты ``"petrol"``, ``"diesel"``, ``"hybrid"``, ``"electric"``, ``"biofuelPetrol"``, ``"biofuelGas"``, ``"liquefiedGas"``. См. `Автомобиль`_. :property array_of_strings engineCapacityApplicabilityList: Список объемов двигателя в литрах, к которым применим данный вариант пакета. См. `Автомобиль`_. :property array_of_strings airIntakeApplicabilityList: Список типов подачи воздуха в двигатель. Варианты: ``"Turbo SC"`` - с наддувом, ``"Naturally aspirated"`` - атмосферный. См. `Автомобиль`_. :property array_of_strings bodyPartApplicabilityList: Список частей кузова АМ. Применимо *только* при внешнем осмотре АМ (Если развертка АМ представлена в формате SVG). :property boolean selected: Пакет является выбранным для данной рекомендации. Не выбранный пакет был предложен системой, но не был подтверждён мастером-консультантом. :property string customerApproved: Статус согласования с клиентом. Возможные значения: ``"approved"``, ``"rejected"`` и ``"deferred"``. :property string deferralDate: Дата и время на которые отложены работы. Статус согласования ``"approvalStatus": "deferred"``. :property string rejectionReasonCode: Код причины отклонения. Статус согласования ``"approvalStatus": "rejected"``. .. _json-packageVariantContentItem: Позиция варианта пакета ~~~~~~~~~~~~~~~~~~~~~~~ `Работы`_ либо `Запчасти`_. .. _json-packageVariantContentLabour: Работы ~~~~~~ .. json:object:: PackageVariantContentLabour :property string id: Идентификатор позиции варианта пакета :property string itemCategory: ``"labour"``. Категория позиции. :property string itemCode: Код позиции. Номер запчасти для запчастей и код работы для работ. :property string description: Текст позиции :property float quantity: Количество :property string unitOfMeasure: Код Единицы измерения количества или времени. Допустимые значения: ``"hour"`` - час. См. `Единицы измерения`_. :property float amountExVat: Сумма по позиции без НДС в валюте заказа. Поле является обязательным при передаче цен/сумм по пакету и создании предложения для клиента. *Используется для расчета статистики стоимости выявленных работ.* :property float amountIncVat: Сумма по позиции с НДС в валюте заказа. :property float discountAmountExVat: Сумма по позиции со скидкой (на постгарантийные АМ) без НДС. Не применимо для `Предложение для клиента`_ :property float discountAmountIncVat: Сумма по позиции со скидкой (на постгарантийные АМ) с НДС. Не применимо для `Предложение для клиента`_ :property string labourCode: Код операции. :property string labourType: Вид работ. Требуется согласовать справочник допустимых значений. :property string catalogue: Идентификатор каталога работ в ДМС. .. _json-packageVariantContentMaterial: Запчасти ~~~~~~~~ .. json:object:: PackageVariantContentMaterial :property string id: Идентификатор позиции варианта пакета :property string itemCategory: ``"material"``. Категория позиции. :property string itemCode: Код позиции. Номер запчасти для запчастей и код работы для работ. :property string description: Текст позиции :property float quantity: Количество :property string unitOfMeasure: Код Единицы измерения количества или времени. Допустимые значения: ``"ea"`` - each (штука), ``"pc"`` - синоним ``"ea"``, ``"l"`` - литр. См. `Единицы измерения`_. :property float amountExVat: Сумма по позиции без НДС в валюте заказа. Поле является обязательным при передаче цен/сумм по пакету и создании предложения для клиента. *Используется для расчета статистики стоимости выявленных работ.* :property float amountIncVat: Сумма по позиции с НДС в валюте заказа. :property float discountAmountExVat: Сумма по позиции со скидкой (на постгарантийные АМ) без НДС. Не применимо для `Предложение для клиента`_ :property float discountAmountIncVat: Сумма по позиции со скидкой (на постгарантийные АМ) с НДС. Не применимо для `Предложение для клиента`_ :property string materialGroup: Группа материалов. Требуется согласовать справочник допустимых значений. :property string materialNumber: Код материала. :property string externalMaterialNumber: Код материала дилера. Заполняется только при наличии в системе eVHC информации о кодировке ЗЧ в DMS дилера. Логику обмена данными не следует строить на основании данного поля. Перекодировка Код материала eVHC <> Код материала DMS для неоригинальны ЗЧ должна быть реализована на стороне DMS. .. _json-vehicleInfo: Информация об АМ ~~~~~~~~~~~~~~~~ .. json:object:: VehicleInfo :property string vin: VIN :property string make: Марка. :property string model: Модель (текст) :property string modelCode: Код модели OEM. :property integer modelYear: Модельный год (4 знака). :property string fuelType: Тип топлива АМ. Варианты: ``"petrol"`` - бензиновый, ``"diesel"`` - дизель, ``"hybrid"`` - гибрид, ``"electric"`` - электро, ``"biofuelPetrol"`` - биотопливо бензин, ``"biofuelGas"`` - биотопливо газ, ``"liquefiedGas"`` - сжиженный газ. :property float engineCapacity: Объём двигателя в литрах с точностью до одного знака после запятой. :property string airIntakeType: Тип подачи воздуха в двигатель. Варианты: ``"Turbo SC"`` - с наддувом, ``"Naturally aspirated"`` - атмосферный. :property string engineType: Тип двигателя. :property string colour: Цвет АМ. :property string gearboxType: Тип коробки передач. .. _json-webhookOutputInfo: Информация об отправке ~~~~~~~~~~~~~~~~~~~~~~ .. json:object:: WebhookOutputInfo :property string id: Уникальный идентификатор сообщения :property string systemClientId: Идентификатор системного клиента :property string referenceObjectCategory: Категория ссылочного объекта. Принимает толко одно значение: ``"serviceOrder"`` для объекта вида `Сервисный заказ`_. :property string referenceObjectId: ID ссылочного объекта. :property string surveyId: Идентификатор опросного листа :property string outputId: Идентификатор сообщения в опросном листе :property string outputCategory: Способ отправки сообщения: ``"email"`` и ``"sms"``. :property string outputType: Тип сообщения: ``"surveyResultsEmail"`` для результатов eVHC проверки и ``"vcApproval"`` для видео-результатов проверки (VC). :property string outputTimestamp: Дата отправки сообщения в формате ISO8601_. :property array destinations: Получатели сообщения. Список объектов вида `Получатель сообщения`_. :property string linkUrl: URL ссылки для просмотра результатов проверки. :property string linkValidUntil: Дата завершения действия ссылки в формате ISO8601_. :property string vin: VIN автомобиля. `Данные из листа проверок` :property object customer: Клиент. Передаётся JSON объект вида `Бизнес партнёр`_. `Данные из листа проверок` :property object owner: Владелец АМ. Объект вида `Бизнес партнёр`_. `Данные из листа проверок` :property object driver: Водитель/Доверенное лицо. Объект вида `Персона`_. `Данные из листа проверок` .. _json-outputDestination: Получатель сообщения ~~~~~~~~~~~~~~~~~~~~ .. json:object:: OutputDestination :property string address: Адрес отправки сообщения (email или sms) :property string name: Наименование получателя :property string sourcePartnerType: Тип получателя: ``"customer"``, ``"driver"`` и ``"owner"``. :property string sourcePartnerId: ID получателя. Необязательный параметр. Используется для идентификациии получателя в случае, когда получатель представлен объектом вида `Компания`_ и для него задано несколько контактов. .. _ISO8601: https://en.wikipedia.org/wiki/ISO_8601 .. _ISO4217: https://en.wikipedia.org/wiki/ISO_4217