Добавление и изменение машин

Remote API  > Команды на добавление  >

Добавление и изменение машин

Previous pageReturn to chapter overviewNext page

Крупные компании ведут собственную базу данных машин и водителей и при интеграции с системой 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}