Какая формула у этих расчетов командировочных?

Добрый день. Стоит задача написать калькулятор начисления командировочных. За образец взята вот эта форма-калькулятор (конкретно - секция Päivärahat). Суть в следующем: при нахождении работника в командировке, в зависимости от времени, в ней проведенного, работнику начисляется определенная сумма по логике, которая мне не вполне ясна.
Полная суточная ставка - 43 евро. Частичная ставка - 20 евро. Если командировка длилась менее 6 часов, то не начисляется ничего. Если более 6 - то частичная ставка. Если более 10 - то полная суточная ставка. Но когда я стал тестировать более длинные интервалы времени, то выяснилось следующее:

01.01.2020, 22:00 - 0 (до 6 часов) (выехал 1-го января в 22 часа, пока не полагается никаких начислений)
02.01.2020, 4:01 - 20 евро (> 6 часов) + 6 часов __частичная ставка__
02.01.2020, 8:01 - 43 евро (> 10 часов) + 4 часа _____полная ставка_____
03.01.2020, 0:01 - 63 евро (> 26 часов) + 16 часов __+ еще частичная ставка__
03.01.2020, 4:01 - 86 евро (> 30 часов) + 4 часа _____+ еще одна полная ставка_____
04.01.2020, 0:01 - 106 евро (> 50 часов) + 20 часов __+ еще частичная ставка__
04.01.2020, 4:01 - 129 евро (> 54 часов) + 4 часа _____+ еще одна полная ставка_____
05.01.2020, 0:01 - 149 евро (> 74 часов) + 20 часов __+ еще частичная ставка__
05.01.2020, 4:01 - 172 евро (> 78 часов) + 4 часа _____+ еще одна полная ставка_____
06.01.2020, 0:01 - 192 евро (> 98 часов) + 20 часов __+ еще частичная ставка__
и т.д...

Т.е. сначала идут интервалы +6, +4, +16 часов. А потом - только чередуются +4 и +20. Так, например, до 4 утра 04.01 полагается выплатить 106 евро (это 2 полные суточные ставки + одна частичная: 43 * 2 + 20). А с 04:01 начинается очередной интервал, и выплате подлежит 129 евро (три полные суточные ставки).

Проблема в том, что я не могу увидеть какой-то универсальной закономерности в этих расчетах. Сбивает с толку еще, что расчету подлежат не просто значения, а интервалы значений. Буду признателен за подсказку формулы, по которой эти расчеты проводятся.
  • Вопрос задан
  • 152 просмотра
Решения вопроса 1
hint000
@hint000
у админа три руки
В ёкселе эмпирически набросал:
=MAX(0,INT((A1+18)/24)*43+IF(MOD((A1-6),24)>19,20,0)-IF(A1<10,23,0))

A1=количество часов
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@d-stream
Готовые решения - не подаю, но...
Первозданная "формула" скорее всего присутствует где-нибудь на законодательном сайте страны (если это регулируется государственным законодательством) или в чем-то аналогичном по организации.

Пытаться выявить закономерности из выхлопа некоего сайта без понимания хотя бы общих принципов - бессмысленно, а при понимании принципов - сайт не нужен (разве что сверить свою реализацию).

На мой взгляд как минимум при расчете командировочных могут учитываться "особым образом":
- день выезда и день возврата
- официально рабочие и праздничные дни (типа экстрапереработок и с разными ставками в зависимости от величины переработок)
- суммарное проведенное в командировке время относительно некоего минимального/максимального количества рабочих часов в неделю/месяц
- тип ставки (полный/неполный день) работника
- график (табель) работника - у сотрудника 5/7 цифры могут отличаться от 2/3 и т.п.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы