В программе Агент добавлена функция контроля расстояния от торгового агента до клиента, по которому вводится заявка. Для того, чтобы контроль работал, необходимо выполнение следующих условий:
- со стороны сервера нужно передать опцию checkOrderLocation со значением true
- для клиента должны быть заданы координаты, которые должны быть переданы на устройство в составе данных обмена, записи с идентификатором client_location
При выборе в заявке клиента, для которого заданы координаты, Агент попытается включить службы геолокации и получить текущие координаты устройства. При получении геоданных будет вычисляться расстояние до клиента, что будет отображено в заголовке документа, между номером и датой.
Если расстояние до клиента будет меньше 50 м, координаты будут зафиксированы в документе и такой документ можно будет сохранить для отправки на сервер. В случае, если расстояние больше 50 м или его вообще не удалось получить, например, пользователь не дал доступ к службам геолокации, отсутствие видимости спутников GPS или неисправность устройства, документ можно будет сохранить, но нельзя передать на сервер.
В состав данных, передаваемых на сервер добавлены координаты, в которых была сохранена заявка, поля latitude и longitude, а также расстояние до клиента — поле distance.
Если в учетной системе ведется журнал посещений торговых точек и торговому агенту нужно отметиться на точке, которая не дает заявку, в приложении нужно ввести заказ, выбрать клиента, подождать определения координат и сохранить заказ без выбора товаров. Дальнейшую логику нужно выстроить уже в учетной системе — сделать запись журнала посещений и проигнорировать пустую заявку.