Remote API > Команды на добавление >
Добавление и изменение машин |
![]() ![]() ![]() |
Крупные компании ведут собственную базу данных машин и водителей и при интеграции с системой LIW нужна возможность заранее задавать диспетчеру в LIW список доступных машин и водителей и сразу назначать водителей на машины. В LIW машины и водители имеют два параметра, позволяющих сделать это.
Архивный – редактируется в диалоге “Машины” или таблице ресурсов. Если этот параметер установлен в true, машина не видна в списке машин диспетчера и не участвует в планировании. При этом машина и все ее предыдущие рейсы сохраняются и позже ее можно сделать неархивной.
Активный - такая машина видна диспетчеру, но в планировании не участвует. Она используется как резервная и при нехватке машин, диспетчер может сделать ее активной и тоже использовать в расчетах.
Таким образом перед расчетом, средствами API сначала указывается какие машины видимы ( Архивный=false ) и какие активны (Активный = true). Затем то же делается для водителей и после этого назначаются водители на машины.
Добавление и редактирование машин делается командой добавление машин.
Параметры:
com=add/car
par= структура cars_str
Обязательные параметры cars_str
"group_id": <text> /* группа в которую будут добавлены машины */
"cars": List<car_str> /* массив структур car_str описывающих машины. */
Команда add/car используется для добавления новых или изменения существующих машин в базе LIW, используемых для планирования маршрутов. Если машина не обнаружена в базе LIW она добавляется как новая. Если обнаружена, то меняются ее параметры. Машина сначала ищется в базе LIW по внешнему идентификатору "extern_id" если он не пустой. Как правило крупные компании ведут список машин в своей базе и им удобнее использовать собственные идентификаторы. Если машина не найдена, далее поиск продолжается по номеру машины в параметре "nomer". Если машина не найдена поиск идет по внутреннему иденитификатору LIW "id". Если машину найти не удалось, она добавляется как новая.
Параметры car_str используемые при добавлении машин. Все параметры необязательные. Заполнять нужно только те что нужны
"id":<int>, /* уникальный ид машины из системы LIW. Если не используется, задавайте 0 */
"extern_id":<text>, /* ид машины из внешней системы. */
"name": <text>, /* название машины*/
"model": <text>, /* модель машины*/
"nomer": <text> /* гос номер машины*/
"typ_id":<int>, /* тип груза. Для машины можно перечислить, с какими типами заявок она работает. Справочник ведется в LIW диалог “Справочник типов”. По умолчанию не заполняется */
"enable":<int>, /* 0-не активная, 1-активная. Указывает, что машина может использоваться в планировании маршрутов. В таблице машин это колонка “Активная”. Т.е. машина будет видна диспетчеру, но в планировании не участвует,пока он сам не поставит галочку Активная */
"archive":<int>, /* 0- не архивная, 1-архивная. Указывает, что машина вообще не видна диспетчеру в режиме планирования. Этот параметр можно менять в диалоге “Машина”. Используется для того, чтобы прятать машины использовавшиеся ранее – например арендованные. Они остаются в базе и их можно открыть в программе, но диспетчеру при планировании они не доступны */
"max_weight":<double>, /* максимальная грузоподъемность машины */
"max_volume":<double>, /* максимальный объем машины */
"max_task":<int>, /* максимальное количество задач на машине */
"max_distance":<int>, /* максимальная длинна рейса в километрах */
"rented":<int>, /* 0- не арендованная 1-арендованная. Признак что машина арендованная. Такие машины используются в последнюю очередь */
"price_start":<double>, /* цена выезда машины */
"price_km":<double>, /* цена километра пробега машины */
"comment":<text>, /* коментарий */
"stock_id1":<int>, /* внутренний идентификатор склада с которого выезжает машина */
"stock_extern_id1":<text>, /* внешние идентификатор склада с которого выезжает машина */
"stock_id2":<int>, /* внутренний идентификатор склада на который возвращается машина */
"stock_extern_id2":<text>, /* внешний идентификатор склада на который возвращается машина */
"zone_id":<int>, /* внутренний идентификатор зоны, которую обслуживает машина*/
"zone_extern_id":<text>, /* внешний идентификатор зоны, которую обслуживает машина */
"workday_start":<text>, /* начало рабочей смены машины. Задается в виде "9:05" */
"workday_lengs":<int>, /* продолжительность рабочей смены машины в минутах*/
Параметры car_str не используемые при добавлении машин. Они используются в команде select/car
"agent_id":<int>,/* */
"agent_extern_id":<text>,/* */
Пример запроса
{"group_id":1,"cars":[
{"id":1,"name":"Машина 01", "model":"Mersedes","nomer":"К546ен177","extern_id":"","enable":1,"archive":1,"max_weight":1000.0,"max_volume":6000.0,"max_task":50,"max_distance":2000,"rented":0,"price_start":10.0,"price_km":10.0,"comment":"","stock_id1":1,"stock_extern_id1":"","stock_id2":1,"stock_extern_id2":"","zone_id":3,"zone_extern_id":"","workday_start":"9:00","workday_lengs":540},
{"id":2,"name":"Машина 02", "model":"Mersedes","nomer":"а675ор177","agent_id":0,"agent_extern_id":"", "typ_id":0,"extern_id":"","enable":1,"archive":0,"max_weight":1000.0, "max_volume":6000.0,"max_task":50,"max_distance":2000,"rented":0, "price_start":10.0,"price_km":10.0,"comment":"","stock_id1":1,"stock_extern_id1":"", "stock_id2":1,"stock_extern_id2":"","zone_id":3,"zone_extern_id":"", "workday_start":"9:00","workday_lengs":540}]}
Не обязательно передавать пустые или не используемые поля. Тот же запрос короче
{"group_id":1,"cars":[
{"id":1,"name":"Машина 01", "model":"Mersedes","nomer":"К546ен177","enable":1, "archive":1, "max_weight":1000.0,"max_volume":6000.0,"max_task":50, "max_distance":2000,"price_start":10.0,"price_km":10.0,"stock_id1":1, "stock_id2":1,"zone_id":3,"workday_start":"9:00","workday_lengs":540},
{"id":2,"name":"Машина 02","model":"Mersedes","nomer":"а675ор177", "enable":1, "archive":0,"max_weight":1000.0,"max_volume":6000.0,"max_task":50, "max_distance":2000,"rented":0,"price_start":10.0,"price_km":10.0,"comment":"","stock_id1":1,"stock_id2":1,"zone_id":3, "workday_start":"9:00","workday_lengs":540}]}
Ответ сервера
{"agents":null,"cars":null,"com":"add\/car","data":null,"groups":null,
"mes":"текст запроса",
"offices":null,"reports":null,"res":"OK","routs":null,"stocks":null,"tasks":null}