Remote API > Команды на добавление >
Добавление и изменение агентов/водителей |
![]() ![]() ![]() |
Используется для загрузки активных водителей из внешней системы для расчета рейсов. В LIW водитель и агент одно и то же.
Параметры:
com=add/agent
par= структура agents_str
Обязательные параметры agents_str:
"group_id": <text> /* группа в которую будут добавлены агенты */
"agents": List<agent_str> /* массив структур agent_str описывающих агентов. */
Команда add/agent используется для добавления новых или изменения существующих агентов в базе LIW, используемых для планирования маршрутов. Если агент не обнаружен в базе LIW он добавляется как новый. Если обнаружен, то меняются его параметры. Агент сначала ищется в базе LIW по внешнему идентификатору "extern_id" если он не пустой. Как правило крупные компании ведут список водителей в своей базе и им удобнее использовать собственные идентификаторы. Если агент не найден, далее поиск продолжается по двум параметрам "first_name" и "last_name". Если агент не найден поиск идет по внутреннему идентификатору LIW "id". Если не найден, то добавляется как новый.
Параметры agent_str используемые при добавлении агента. Все параметры необязательные. Заполнять нужно только те, что нужны:
"id":<int>, /* уникальный ид агента из системы LIW. Если не используется, задавайте 0 */
"extern_id":<text>, /* ид агента из внешней системы. */
"first_name ": <text>, /* имя агента */
"last_name ": <text>, /* фамилия агента */
"phone":<text>, /* телефон */
"comment":<text>, /* коментарий */
"email ":<text>, /* e-mail */
"archive":<int>, /* 0- не архивный, 1-архивный. Указывает, что агент вообще не виден диспетчеру в режиме планирования. Этот параметр можно менять в диалоге “Агент”. Используется для того, чтобы прятать агентов использовавшиеся ранее – например работавших на арендованных машинах. Они остаются в базе и их можно открыть в программе, но диспетчеру при планировании они не доступны */
Остальные параметры на планирование рейсов влияния не оказывают, т.к. алгоритм планирования ориентируется на параметры заданные в машине. Поэтому передавать их не нужно. При желании они могут быть заданы, аналогично параметрам машин из структуры car_str.
"enable":<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>, /* цена километра пробега */
"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>, /* продолжительность рабочей смены в минутах*/
Пример запроса
{"group_id":1,"agents":[{"id":1,"first_name":"Вадим","last_name":"Иванов","phone":"111-222-3320","email":"SDF@AAA.WR","archive":0,},{"id":2,"first_name":"Александр","last_name":"Петров","phone":"222-333-7667","email":"ddd@fff.RU",}]}
Ответ сервера
{"agents":null,"cars":null,"com":"add/agent","data":null,"groups":null,
"mes":"текст запроса",
"offices":null,"reports":null,"res":"OK","routs":null,"stocks":null,"tasks":null}