Таксометр

Материал из FAQ
Версия от 12:40, 7 ноября 2016; Dzubenko (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Описание

Работа таксометра

Запуск таксометра осуществляется либо при взятии заказа в случае использования команды «Свой заказ», либо при переводе в статус «Посадка клиента» (команда «С клиентом»), либо из окна таксометра (команда «Старт»). При запуске таксометра заказ переводится в состояние "Старт таксометра".

При старте таксометра, если в зависимости от параметров заказа тариф не определяется однозначно, выдаётся список тарифов, из которых водитель выбирает нужный. Выбор тарифа необходим для начала выполнения заказа. Также тариф может быть выбран водителем в меню заказа, открытом из окна таксометра.

В этом же меню может быть изменён список услуг заказа.

При команде "Стоп", если таксометр был включен менее 2-х минут, выводится сообщение:

  1. Отменить ошибочный старт;
  2. Остановить таксометр;
  3. Продолжить работу.

Просчет таксометра осуществляется таким образом:

  1. расчет выполняется раз в период, равный 10-и секундам,
  2. при расчете используются параметры, установленные на сервере в данный момент,
  3. вычисляемая сумма добавляется к текущей сумме заказа.

При расчете при каждом такте идет проверка валидности текущего скрипта. Если параметры (время/зона) более не соответствуют текущему тарифу, то выполняется автоопределение нового тарифа и переключение на него.

При использовании команды «Пауза» водителю предоставляется выбор типа простоя: оплачиваемый или неоплачиваемый. При этом время идёт в простой, независимо от перемещения. При нажатии «Продолжить», опять начинает считаться километраж.

При остановке таксометра – заказ переходит в состояние "Стоп таксометра". После остановки таксометр не может быть запущен снова.

Таксометр в опциях системы

В рамках службы управление разрешением использовать таксометр в системе осуществляется с помощью опций в разделе Настройки/Параметры/Настройки/Система

  1. Всегда использовать таксометр для расчёта оплаты.
  2. Разрешается использовать таксометр для расчёта оплаты (Кроме того, ограничить использование таксометра водителям можно в настройках бригад).

Признаком использования таксометра для расчета заказа в диспетчерской является чекбокс «Таксометр» в форме заказа

  1. Чекбокс отображается всегда.
  2. Чекбокс доступен для корректировки только при создании заказа.
  3. Чекбокс недоступен для корректировки, если отключено использование таксометра на уровне службы.
  4. Если включено использование таксометра на уровне службы - чекбокс автоматически включается при открытии новой карточки заказа.
  5. Если определён маршрут (хотя бы одна точка "куда") - чекбокс сбрасывается. Но его можно включить вручную.
  6. Если чекбокс переключен вручную - автоматически он более не переключается.
  7. Если на уровне службы выставлено использование таксометра всегда, чекбокс не может быть отключен.

Таксометр в АРМ водителе

В АРМ водителя при выполнении заказа, для которого используется таксометр (в том числе, если водитель берёт «Свой заказ»), пункт «Таксометр» есть в меню заказа. Этот пункт вызывает окно управления таксометром.

Настройка тарифов

Тариф, по которому выполняется расчет стоимости заказа по таксометру, должен содержать реализацию функции TaximeterParameters(). Только те тарифы, которые содержат заполненные параметры для расчета заказа по таксометру, видны при выборе тарифов при использовании таксометра.

Примечание.

Может быть указано наименование другого тарифа, от которого наследуются параметры. Такой тариф в свою очередь должен содержать параметр Abstract, означающий, что тариф используется в качестве базового для наследования и не используется для расчёта. Базовый тариф должен быть активным.

Управление выбором тарифа

Возможность выбора тарифа для таксометра определяется следующими свойствами

  1. SelectableByDriver - Тариф может быть выбран/переключен водителем
  2. AutoSwitchable - Тариф участвует в автоматическом переключении
  3. UsingForTaximeter - Тариф предназначен для работы таксометра
  4. DefaultForTaximeter - Тариф по умолчанию для работы таксометра
  5. Abstract - Тариф используется в качестве базового для наследования и не используется для расчёта

Учёт класса авто

В рамках тарифа нет учёта наценок за разные классы автомобилей. Вместо этого задаётся возможность использование тарифа для перечня классов с помощью свойства:

  1. CarClasses - Классы автомобилей, для которых действует тариф (если указан null, то тариф используется для любых классов автомобилей)

Таким образом, если для разных классов есть отличия по стоимости, необходимо создать несколько тарифов из которых будет производиться выбор тарифа, соответствующего используемому классу автомобиля.

Ценовые зоны

  1. PriceZoneNames - Наименования ценовых зон, в пределах или вне пределов которых действует тариф (если указан null, то тариф используется повсеместно); использование перечня наименований ценовых зон определяется параметром OutOfZones
  2. OutOfZones - Управление поведением перечня ценовых зон, определённых параметром PriceZoneNames
  3. true - тариф действует вне пределов перечисленных ценовых зон
  4. false - тариф действует в пределах перечисленных ценовых зон

Управление услугами

  1. Provision - Параметры типов (услуг) заказа

Включает:

  1. RelativeAddition - Относительное увеличение стоимости заказа (в процентах)
  2. AbsoluteAddition - Абсолютное увеличение стоимости заказа (в копейках)
  3. DriverCanSwitch - Водитель может включать и отключать использование услуги
  4. Reversable - При отключении услуги, её абсолютная стоимость вычитается из стоимости заказа
  5. Multiply - При повторном включении услуги, её абсолютная стоимость повторно добавляется к стоимости заказа

Оплата опоздания клиента/водителя

LatePenalties - Параметры оплаты времени опоздания (прогрессивная шкала от времени опоздания в секундах).

Ключ - верхняя граница времени опоздания. Позитивные значения ключа используются для опоздания клиента, негативные значения ключа используются для опоздания водителя.

Время опоздания водителя рассчитывается как интервал между плановым временем начала заказа и временем прибытия водителя на место.

Время опоздания клиента рассчитывается как интервал между фактическим временем начала исполнения заказа и плановым временем начала заказа.

Параметры штрафа за опоздание включают:

  1. Relative - Относительный размер штрафа (копеек/мин)
  2. Absolute - Абсолютный размер штрафа (в копейках)

Штраф применяется к финальной рассчитанной сумме, после применения дисконтов и минимальной стоимости оплаты.

Если заказ назначен/взят водителем уже после того, как установленное планируемое время начала наступило, то данный параметр не рассчитывается.

Другие параметры тарифа

  1. TimeIntervals - Интервалы времени, в пределах которых действует тариф (если указан null, то тариф используется в любое время)
  2. PriceCostMinimal - Минимальная стоимость оплаты (в копейках)
  3. PriceMounting - Цена посадки клиента в машину (в копейках)
  4. PriceMountingDistance - Расстояние, входящее в стоимость посадки (километров)
  5. PriceOfDistance - Цена за 1 километр (в копейках) в зависимости от пройденного расстояния (километров); перечень соответствий цена-расстояние задаётся непосредственно в скрипте тарифа
  6. PriceOfTimeWorking - Цена за 1 минуту работы (в копейках)
  7. PriceOfTimeStandby - Цена за 1 минуту простоя (в копейках)
  8. MinimalCarSpeed - Минимальная скорость движения автомобиля, менее которой считается простой автомобиля (метров/сек)
  9. PauseAllowed - Разрешается постановка таксометра на паузу

Наследование параметров тарифа

Чтобы избежать необходимости многократного ввода одних и тех же значений параметров при создании группы тарифов, а также при изменении значений параметров, общих для такой группы, предусмотрена возможность использования базового тарифа. Другие тарифы могут наследовать параметры от базового.

В этом случае, если необходимо изменить какой-либо параметр, нет необходимости редактировать его в каждом тарифе, достаточно поменять в базовом.

Кроме того, тарифы не перегружаются информацией, а содержат только параметры, отличающие их от других тарифов, что улучшает их читаемость.

Базовый тариф

  1. Определяется параметром Abstract - Тариф используется в качестве базового для наследования и не используется для расчёта
  2. Обязательно должен быть активным
  3. Должен содержать все необходимые заполненные параметры для расчета заказа по таксометру (то есть те параметры, которые имеют значения, общие для группы тарифов, и которые будут наследоваться)

Если такой тариф, в котором заданы глобальные параметры, есть в системе, то другие тарифы могут использовать эти параметры.

Для этого в тарифах необходимо

  1. Задать наименование тарифа, от которого наследуются параметры
  2. Задать использование наследуемых параметров, если они определены
  3. Добавить параметры, которые отличаются от параметров базового тарифа (или не заданы)

Пример:

  	' Объявляем переменную результата расчёта
Dim result As OrderTaximeterTariffParameters

	' Если у нас наследуемые параметры ещё не определены 
If arguments.InheritParameters Is Nothing Then

	' то задаём наименование тарифа, от которого параметры наследуются
arguments.InheritingTariffName = "Экспресс-Город"
return Nothing

	' иначе (если наследуемые параметры определены), возвращаем их в результат
Else
    result = arguments.InheritParameters
End If

       ' Далее добавляем в унаследованный тариф те параметры, которые не заданы в базовом тарифе,
или значения которых в текущем тарифе отличаются.

Порядок разбора заказа по таксометру

Получить журнал работы таксометра могут пользователи с ролями «Системный администратор», «Администратор службы такси», «Техническая поддержка». Для получения журнала работы таксометра нужно найти соответствующий закза в текущих или архиве и открыть его. В карточке заказа нажать "Ctrl + Shift + C".

Вы получите отображение в json виде всего журнала таксометра. Для форматирования журнала таксометра можно воспользоваться, например, этим сервисом: http://www.freeformatter.com/json-formatter.html#ad-output

Информация, которая пишется в журнал

  1. OrderId - в начале журнала выводится номер заказа.
  2. Segments – далее следуют сегменты, соответствующие расчетам, которые выполняются каждые 10 секунд (если за несколько таких периодов параметры не изменились, сегмент включает все эти периоды).

Параметры сегмента:

  1. Number - Номер сегмента
  2. Type - Тип сегмента
Undefined - Не определён (рассчитывается)
Start - Начало работы таксометра
Stop - Завершение работы таксометра
Pause - Пауза работы таксометра
Riding - Поездка
Standby - Простой
  1. TariffManualSelection Ручной выбор тарифа
  2. ProvisionAddition Добавление услуги
  3. ProvisionDeletion Удаление услуги
  4. PaidPause - Признак оплачиваемой паузы таксометра
  5. AutoSelectTariffDisabled - Признак запрета автоматического выбора тарифа
  6. StartPoint - Точка начала
  7. FinishPoint - Точка завершения
  8. StartTime - Время начала
  9. FinishTime - Время завершения
  10. StartSpeedByGPS - Скорость по GPS в точке начала (метров/сек)
  11. FinishSpeedByGPS - Скорость по GPS в точке завершения (метров/сек)
  12. AverageSpeedByInterval - Средняя скорость по интервалу (метров/сек)
  13. Distance - Расстояние сегмента (в метрах)
  14. DistanceToCalc - Расстояние сегмента за вычетом расстояния, входящего в стоимость посадки (в метрах)
  15. Duration - Продолжительность сегмента (в секундах)
  16. CostByDistance - Прирост стоимости заказа от расстояния (в копейках)
  17. CostByDuration - Прирост стоимости заказа от продолжительности (в копейках)
  18. CostByProvisions - Прирост стоимости заказа от услуг (в копейках)
  19. Cost - Прирост стоимости заказа (в копейках)
  20. TotalDistance - Общее пройденное расстояние (в метрах)
  21. TotalDuration - Общая продолжительность работы (в секундах)
  22. TotalDurationRiding - Общая продолжительность движения (в секундах)
  23. TotalDurationStandby - Общая продолжительность простоя (в секундах)
  24. TotalCostByDistance - Общая стоимость заказа от расстояния (в копейках)
  25. TotalCostByDuration - Общая стоимость заказа от продолжительности (в копейках)
  26. TotalCostByProvisions - Общая стоимость заказа от услуг (в копейках)
  27. TotalCost - Общая стоимость заказа (в копейках)
  28. TotalCostToCalc - Общая стоимость заказа с учётом минимальной стоимости поездки (в копейках)
  29. TariffId - Идентификатор записи тарифа
  30. TariffName - Наименование тарифа
  31. PriceZoneId - Идентификатор записи ценовой зоны
  32. PriceZoneName - Наименование ценовой зоны
  33. PriceCostMinimal - Минимальная стоимость оплаты (в копейках)
  34. PriceMounting - Цена посадки клиента в машину (в копейках)
  35. MountingDistance - Расстояние, входящее в стоимость посадки (метров)
  36. PriceOfDistance - Цена за 1 километр (в копейках) в зависимости от пройденного расстояния (километров)
  37. PriceOfTimeWorking - Цена за 1 минуту работы (в копейках)
  38. PriceOfTimeStandby - Цена за 1 минуту простоя (в копейках)
  39. Provisions - Услуги заказа
  40. ChangedProvision - Изменённая услуга заказа (для типов сегмента "ProvisionAddition" и "ProvisionDeletion")
  41. Late - Опоздание клиента/водителя
Duration - Продолжительность опоздания (позитивная - клиента, негативная - водителя) (в секундах)
Relative - Относительный размер штрафа (копеек/мин)
Absolute - Абсолютный размер штрафа (в копейках)
Cost - Прирост стоимости заказа от опоздания (позитивный - клиента, негативный - водителя) (в копейках)

Порядок тестирования тарифов таксометра

Перед началом тестирования следует определиться с проверяемым тарифом. Для того, чтобы осуществлять тестирование, можно использовать режим "эмуляции GPS". Такая эмуляция включается только в тестовом режиме. Для возможности входа в тестовый режим с учетными данными водителя своей службы необходимо обратиться в техподдержку, для активации на Вашей службе этого режима.


Тестовый режим включается при входе в АРМ водителя тройным нажатием на заставку входа в программу (машинку при запуске программы); при этом в окне авторизации внизу будет написано «Тестовый режим». После этого залогинится как обычно в Вашу службу.

Для включения/отключения эмуляции GPS нужно нажать и пару секунд удерживать правую стрелку смены страницы на экране "Статус"

При эмуляции движения по GPS:

  1. Не учитывается карта
  2. Если имеется текущий заказ - при включении эмуляции начнётся "движение" от начальной до конечной точки
  3. Иначе если водитель встал на стоянку - при включении эмуляции начнётся "движение" от текущей точки до "центра" стоянки
  4. Иначе автомобиль "движется" в окрестностях точки "центра города"

После подготовки тестовой ситуации выполняется полный цикл обработки заказа. Результаты обработки заказа сверяются с данными журнала работы таксометра (получение журнала и фиксируемые параметры выполнения заказа описаны в п.4 данной инструкции).