Расчёт отправки
Раздел Расчёт отправки — это калькулятор: система считает стоимость и показывает, из чего эта сумма получилась.
Раздел называется «Расчёт отправки», но задачу, которую он решает, называют по-разному: калькуляция перевозки, просчёт стоимости, прикидка цены, тарификация груза, котировка для клиента. Отдельного раздела «Калькуляция» в системе нет — всё перечисленное делается здесь.
У калькулятора два режима, они переключаются вкладками над формой:
| Вкладка | Когда нужна |
|---|---|
| По заявке | Заявка уже заведена. Вес и объём берутся из неё. |
| Без заявки | Клиент звонит и спрашивает «сколько будет 300 кг до Алматы». Вес и объём вводятся руками, заявка не нужна и не создаётся. |
Он отвечает на вопрос «сколько это будет стоить по такому-то тарифу сегодня». Ничего не сохраняет и не меняет: ни заявку, ни счёт. Это «прикидка» перед разговором с клиентом или перед выбором тарифа в заявке.
Калькулятор — только просмотр. Чтобы зафиксировать ставку за заявкой, тариф нужно выбрать в самой заявке; чтобы получить сумму в документе — добавить позицию в счёт. См. Тариф в заявке и счёте.
Кому доступен раздел
| Роль | Доступ |
|---|---|
| Администратор, Руководитель | Полный: расчёт по любой заявке и любому тарифу + управление тарифами |
| Менеджер | Расчёт по любой заявке и любому тарифу, просмотр тарифов; создавать и менять тарифы нельзя |
| Клиент | Расчёт по своим заявкам и по доступным ему тарифам (оба режима); тарифы только на просмотр |
| Кладовщик | Раздел не виден |
Обоих списка формы это касается по-разному, но принцип один — клиент работает только со «своим»:
- Заявки — только те, где он указан заказчиком. Ровно как на странице Заявки: чужие заявки в поиске не находятся.
- Тарифы — публичные плюс те, что проставлены в его заявках. Подробнее — Что видит клиент.
Ограничение работает на сервере: подобрать чужую заявку или закрытый тариф нельзя, даже зная их номер.
Мобильной версии у раздела нет — расчёт делается на десктопе. Клиенту, открывшему /calculation с телефона, система покажет мобильную версию системы, а не калькулятор.
Экран раздела
Слева — вкладки «По заявке» / «Без заявки» и под ними форма «Параметры расчёта», справа — карточка результата. Вверху справа — кнопка «Тарифы», открывающая справочник тарифов.
Пока расчёт не выполнен, справа стоит подсказка: «Расчёт ещё не выполнен».
Это сделано специально: иначе справа осталась бы сумма, посчитанная по форме, которой на экране уже нет, — и её легко принять за результат текущей формы.
Как посчитать по заявке
- Заявка — выберите заявку. Поиск в списке идёт по номеру заявки; рядом с номером показывается клиент.
- Тариф — выберите тариф. Поиск — по названию; под названием видна ставка («1200.00 EUR за 100.000 кг»).
- Нажмите «Рассчитать».
Комбобокс тарифов показывает только тарифы с флагом «Активен» — чтобы нельзя было случайно посчитать по отменённой ставке. Об этом же говорит подпись под полем: «В списке только активные тарифы».
Оба поля обязательны: без заявки или без тарифа форма покажет ошибку под полем и запрос не отправит.
Как посчитать без заявки
Режим для входящих вопросов «сколько будет столько-то килограммов» — когда заявки ещё нет и заводить её незачем.
- Перейдите на вкладку «Без заявки».
- Тариф — выберите тариф. Список тот же, что и в первом режиме.
- Введите вес и/или объём — какие и менно поля появятся, зависит от выбранного тарифа.
- Нажмите «Рассчитать».
Что нужно ввести, решает сам тариф — и подсказка под ним говорит это прямо:
| Тариф | Поля | Подсказка |
|---|---|---|
| По весу, объёмный вес выключен | только Вес | «Этот тариф считает по весу» |
| По весу, объёмный вес включён | Вес и Объём | «Этот тариф считает по объёмному весу — нужны и вес, и объём» |
| По объёму | только Объём | «Этот тариф считает по объёму» |
Поле, которое на цену не влияет, не показывается вовсе — чтобы не пришлось выдумывать число, которое никуда не пойдёт.
Числа можно вводить и через запятую, и через точку: «1,2» и «1.2» — одно и то же.
Блок «Посчитать по местам»
Партию из нескольких мест не нужно складывать в уме или в стороннем калькуляторе. Под полями есть свёрнутый блок «Посчитать по местам» — разверните его и опишите груз строками.
Одна строка — один тип места:
| Поле | Что вводить |
|---|---|
| Длина / Ширина / Высота | габариты одного места, в сантиметрах — по крайним точкам, вместе с паллетой и обрешёткой |
| Вес одного места | вес одной штуки, а не всей группы |
| Одинаковых мест | сколько таких же штук в партии |
Справа в строке система сразу показывает, что из этого получилось: 90 кг · 1.920 м³.
Это главная ловушка при вводе. Если ввести вес поддона 600 кг и поставить количество 5, партия получится 3 000 кг — система именно так и посчитает. Поэтому сверяйтесь с числом справа в строке: там стоит вес всей группы, и ошибка видна сразу.
Кнопки в строке: ⧉ — дублировать (удобно, когда коробка такая же, а вес другой), ✕ — удалить. У единственной строки крестик её не удаляет, а очищает.
Внизу блока — итог «Итого: 12 мест · 210 кг · 2.220 м³» и кнопка «Подставить вес и объём». Она переносит оба числа в поля расчёта, после чего можно нажать «Рассчитать».
- Количество мест на цену не влияет — оно нужно, чтобы вы могли сверить обмер с накладной клиента.
- Подстановка происходит только по кнопке: пока вы её не нажали, введённое руками остаётся нетронутым. После подстановки значения тоже можно поправить — считается всегда то, что стоит в полях «Вес» и «Объём».
- Если поля разошлись с таблицей, блок об этом скажет: «Считаем по полям выше. Итог по местам: …». Ничего не блокируется — просто чтобы вы не удивились цифре.
- Если тариф считает только по весу, колонки габаритов не показываются: они на цену не влияют, а блок всё равно полезен — он суммирует вес по местам.
- Enter добавляет новую строку, Ctrl+Enter запускает расчёт.
Объёмный вес применяется к отправке целиком, а не к каждому месту по отдельности. Если посчитать «оплачиваемый вес» отдельно для каждого места и сложить, сумма почти всегда получится больше реальной — на данных этой системы расхождение доходило до +32 %. Строку такой таблицы легко принять за цену отдельной отправки и ошибиться на де сятки процентов, поэтому денег на уровне места в системе нет и не будет.
По той же причине не стоит делить итог на количество мест: «цены за место» в такой перевозке просто не существует.
Чем режим «без заявки» отличается
- В карточке результата нет бейджей «факт» / «заявлено»: у введённых руками величин нет ни того, ни другого источника.
- Результат никуда не сохраняется и не может стать позицией счёта. Чтобы выставить счёт, заявка всё-таки нужна — см. Тариф в заявке и счёте.
- Расчёт всегда идёт на сегодня и по услуге, указанной в тарифе: выбрать другую дату или другую услугу нельзя.
Как читать результат
Карточка результата состоит из двух блоков.
Количество в расчёте
Крупное число — то количество (кг или м³), от которого посчитаны деньги. Под ним подпись «Сумма посчитана от этого количества».
Справа — бейджи-источники, отдельно по весу и по объёму:
| Бейдж | Что значит |
|---|---|
| Вес: факт | В расчёт пошёл фактический вес заявки (взвешенный складом). |
| Вес: заявлено | Фактического веса нет, взят заявленный (со слов клиента). |
| Объём: факт / Объём: заявлено | То же для объёма. |
Правило простое: фактическое значение вытесняет заявленное. Как только склад проставил факт. вес — считаем по нему; пока не проставил — по заявленному. Вес и объём при этом независимы: бывает «Вес: факт» и одновременно «Объём: заявлено».
Если у тарифа включён объёмный вес, блок показывает обе величины — физический и объёмный вес — рядом, и подсвечивает победившую с подписью «Применён объёмный вес»:
Физический вес 100,00 кг · Объёмный вес 375,00 кг — объёмный больше физического, поэтому в расчёт пошёл он.
Это сделано специально: «250 кг» в ответе при физических 80 кг выглядит как ошибка, пока не видно, откуда взялись 250.
Стоимость
| Строка | Что показывает |
|---|---|
| Стоимость в валюте тарифа | Сумма по ставке, до конвертации. |
| Курс | «1 EUR = 95,0000 RUB». Если валюты совпадают — вместо курса стоит «Валюта тарифа и валюта услуги совпадают — конвертация не нужна». |
| Дата расчёта | Дата, на которую запрошен курс (для калькулятора — сегодня). |
| Курс на дату | Дата курса, который реально применён. Если на запрошенную дату курса нет, берётся ближайший предыдущий — и тогда эта дата отличается от даты расчёта. |
| Объём в расчёте | Объём, из которого получен объёмный вес. Показывается, когда сработал объёмный вес — чтобы было видно, откуда он взялся. |
| Стоимость в валюте услуги | Итог — та сумма, которую вы поставите в счёт. |
| Цена за единицу | «12,00 RUB за 1 кг» — цена, из которой сложился итог. |
Если расчёт сделан по таблице мест, под итогом стоит подпись «За всю партию: 12 мест · 210.00 кг · 2.220 м³». Она не декоративная: по телефону сумма после перечисления мест почти всегда слышится как цена за одно место — подпись снимает этот вопрос заранее.
Под карточкой стоит оговорка: «Предварительный расчёт, не является офертой». При расчёте партии к ней добавляется вторая строка — о том, что расчёт не учитывает ограничений по отдельному месту, надбавок за негабарит, минимальной партии и дополнительных услуг.
Кнопка «Скопировать расчёт»
Копирует ра счёт готовым текстом — тариф, состав партии, применённый вес, итог, дату и обе оговорки. Текст можно сразу вставить в мессенджер или письмо клиенту.
Она уезжает вместе с суммой намеренно. Цифра без оговорки, отправленная клиенту, читается как обещание цены.
Расчёт идёт по курсу на сегодня и по действующей ставке; оба основания могут измениться. Кроме того, минимальный оплачиваемый вес система пока не учитывает — на мелких партиях каль кулятор занижает стоимость, и такую цифру менеджеру нужно поправить вручную.
Расчёт также не проверяет ограничения по отдельному месту: перевес на одно место, негабарит, невозможность штабелирования. Партия 2 000 кг одним местом и десятью местами — это разные перевозки, и калькулятор об этом не знает.
Если и валюта тарифа, и валюта услуги отличаются от базовой валюты компании, курсы для них ищутся независимо и могут прийти с разных дат. Тогда вместо одной строки показываются две: «Курс EUR на дату» и «Курс USD на дату».