Расчет по тарифу

Описание работы тарифов в Скат

Статья актуальна для СКАТ 5.0 и выше

Входные данные

Данные заказа

Значение Тип Единица измерения Описание
waitTime Целый Секунда Платное время ожидания водителем клиента
standTime Целый Секунда Общее время стоянки на заказе
allTime Целый Секунда Общее время заказа
distance Целый Метр Пройденная на заказе дистанция
waypoints Целый Количество промежуточных точек на заказе

Данные тарифа

Значение Тип Единица измерения Описание
minFare Десятичное (2 знака после запятой) Основная денежная единица Минимальная стоимость заказа
farePerKm Десятичное (2 знака после запятой) Основная денежная единица Базовая стоимость километра
skipFirstKm Целое Километр Бесплатные первые километры
timeUnitFare Десятичное (2 знака после запятой) Основная денежная единица Стоимость единицы времени
markupRatio Целое Процент Процент от стоимости километража, прибавляемый к заказу
freeStationaryTime Целое Основная денежная единица Бесплатное время стоянки
seatCost Десятичное (2 знака после запятой) Основная денежная единица Стоимость посадки
waipointMarkup Десятичное (2 знака после запятой) Основная денежная единица Наценка за промежуточные точки
waitingRate Десятичное (2 знака после запятой) Основная денежная единица Стоимость ожидания
stationaryFare Десятичное (2 знака после запятой) Основная денежная единица Стоимость стоянки
timeUnitSize Целое Минута Величина единицы времени. Повременная тарификация производится по целому кол-ву таких единиц, затраченных на время выполнения заказа
freeTime Целое Единица времени Количество единиц времени, исключеннных из тарификации. Время бесплатного ожидания
startDists Список(Число с плавающей точкой) Километр Список дистанций, на которых изменяется стоимость расчета
startCosts Список(Десятичное (2 знака после запятой)) Основная денежная единица Список стоимостей расчета для дистанций startDists

Расчет

totalCost, Десятичное (2 знака после запятой), основные денежные единицы
Результат всех описанных операций округляется до двух знаков после запятой
В большей части расчетов используется дистанция в километрах(с точностью 3 знака после запятой)

Стоимость ожидания клиента

waitCost, Десятичное (2 знака после запятой), основные денежные единицы
Количество платного времени ожидания (в минутах) водителем клиента умножаются на стоимость ожидания

Стоимость стоянки

standCost, Десятичное (2 знака после запятой), основные денежные единицы
Общее время стоянки (в минутах) умножается на стоимость стоянки, при этом из времени стоянки исключается бесплатное время стоянки.

Стоимость времени (повременные тарифы)

timeCost, Десятичное (2 знака после запятой), основные денежные единицы
Из общего времени заказа вычитается время бесплатного ожидания в определенных единицах времени (минута, 10 минут, час и т.п.).

Полученное число единиц времени в итоге умножается на стоимость единицы времени.

Стоимость поездки

distanceCost, Десятичное (2 знака после запятой), основные денежные единицы
Используется один из вариантов в зависимости от наличия модификаторов стоимости. После этого к расчету прибавляется наценка.

Тариф без модификаторов стоимости

Тариф с модификаторами стоимости

= минимальное целое , удовлетворяющее условию

Если lastModIndex не существует, то принимаем и
Иначе расчитываем их по формулам, приведенным ниже:

Для всех :

Наценка

Стоимость промежуточных точек

Стоимость промежуточных точек выходит из произведения количества точек на величину наценки, согласно представленной ниже формуле:

Общая стоимость (totalCost, Десятичное (2 знака после запятой), основные денежные единицы)