Базовым методом по работе с заявками является order/update:
svc=order/update¶ms={"n":<text>, "p": { "ut":<long>, "ntf":<uint>, /* флаги оповещения */ "r":{ "ndt":<uint>, /* время, за которое должно прийти уведомление, с */ ... } ... }, "rp":<text>, "f":<uint>, "tf":<uint>, "tt":<uint>, "trt":<uint>, "r":<uint>, "y":<double>, "x":<double>, "u":<long>, "itemId":<long>, "id":<long>, "ej": {}, /* расширенный json (необязательный) */ "tz":<int>, "callMode":<text>, "dp":"[]" /* массив ID зависимых заявок */ }
Чтобы удалить заявку:
svc=order/update¶ms={"itemId":<long>, "id":<long>, "callMode":"delete"}
Чтобы вручную перенести заявку в историю:
svc=order/update¶ms={"itemId":<long>, "id":<long>, "callMode":"register"}
Чтобы прикрепить объект к заявке:
svc=order/update¶ms={"itemId":<long>, "id":<long>, "u":<long>, "callMode":"assign"}
Чтобы отменить заявку:
svc=order/update¶ms={"itemId":<long>, "id":<long>, "callMode":"reject"}
Чтобы завершить заявку:
svc=order/update¶ms={"itemId":<long>, "id":<long>, "callMode":"confirm"}
Название | Описание |
---|---|
n | имя заявки |
p | пользовательский объект с данными (в любом случае укажите хотя бы пустой объект в параметре: p:{}) |
p.ntf | флаги уведомления: 0x1 - sms на первый телефон; 0x2 - sms на второй телефон; 0x10 - email. |
x | долгота точки заявки |
y | широта точки заявки |
r | радиус для точки заявки, м |
rp | маршрут заявки |
f | флаги заявки |
tf и tt | границы времени выполнения заявки, крайняя левая и крайняя правая границы соответственно, UNIX-time |
trt | допустимое опережение, сек |
u | id объекта (можно указать id 0, чтобы привязать объект к заявке позже) |
ut | время на разгрузку заявки, с |
itemId | id ресурса |
id | id заявки внутри ресурса |
tz | временная зона пользователя |
callMode | режим работы: «create», «update», «delete», «register» (перевести заявку в историю), «assign»(прикрепить объект к заявке), «reject»(отменить заявку), «confirm» - пометить заявку как завершенную. |
Параметры x
, y
и r
формируют область, которую объект должен посетить, чтобы выполнить заявку.
Значение | Описание |
---|---|
0x1 | заявка будет выполнен, если было зарегистрировано хотя бы одно сообщение внутри области заявки с нулевой скоростью |
0x2 | заявка будет выполнен после выхода из области заявки |
0x4 | начальный склад |
0x8 | конечный склад |
0x10 | склад перезагрузки |
0x20 | фиксированная заявка |
Флаги 0x8,0x10 учитываются при оптимизации, только если указывать склады в «warehouses».
callMode=create
:
[<uint>, { "id":<uint>, /* id заявки внутри ресурса */ "n":<text>, /* имя заявки */ "p":{ /* пользовательский объект */ "n":<text>, /* имя клиента */ "p":<text>, /* телефонный номер */ "p2":<text>, /* второй телефонный номер */ "e":<text>, /* email */ "a":<text>, /* адрес */ "v":<uint>, /* объем */ "w":<uint>, /* масса, кг */ "c":<uint>, /* стоимость */ "ut":<uint>, /* время разгрузки, с */ "t":<text>, /* тип ТС */ "d":<text>, /* описание */ "uic":<text>, /* ТТН */ "cid":<text>, /* произвольный идентификатор */ "cm":<text>, /* комментарий из confirm/reject */ "aff":<text>, /* [ СКЛАД ] список ID юнитов, закрепленных за складом ("123,456") */ "z":<text>, /* [ СКЛАД ] список геозон, закрепленных за складом ("resId_geofenceId,...") */ "ntf":<uint>, /* Флаги нотификации об изменении статуса заявки */ "pr":<uint>, /* Приоритет заявки (больше значение - выше приоритет) */ "r": { /* информация по маршруту (если нет - заявка не привязана к маршруту) */ "id":<uint>, /* id маршрута */ "i":<uint>, /* порядковый номер [0..] */ "m":<uint>, /* пробег с предыдущей точки по плану, м */ "t":<uint>, /* время с предыдущей точки по плану, с */ "ndt":<uint>, /* время, за которое должно прийти уведомление, с */ "vt":<uint> /* время посещения по плану, UNIX_TIME */ }, "rp":<text>, /* маршрут заявки */ "f":<uint>, /* флаги заявки */ "tf":<uint>, /* начальное разрешенное время доставки */ "tt":<uint>, /* последнее разрешенное время доставки */ "trt":<uint>, /* допустимое опережение, сек */ "uid":<uint>, /* уникальный id (нужен для уникальности заявки в истории) */ "r":<uint>, /* радиус точки заявки */ "y":<double>, /* широта */ "x":<double>, /* долгота */ "u":<long>, /* id объекта */ "s":<uint>, /* статус: 0 - неактивный (не привязан объект), 1 - активный, 2 - завершен вовремя, 3 - завершен с опозданием, 4 отклонён, 5 - объект в области заявки. */ "sf":<uint>, /* статус флаг заявки (0x100 - отменён, 0x200 - подтверждён, 0x400 - оповещение по заявке было выполнено) */ "st":<uint>, /* время последней смены статуса */ "tz":<uint> /* временная зона пользователя */ } ]
callMode=update
:
[<uint>] /* значение "id" изменённого заявки */
callMode=delete
:
[ <uint>, /* значение "id" удаленной заявки */ null ]
callMode=assign
,register
,reject
:
{ } /* если всё успешно */
или
{"error":4} /* если не удалось прикрепить объект к заявке */
|