Зарплата тренерів
Конструктор, а не модель
У системі не зашита жодна «модель зарплати тренера». На співробітника вішається скільки завгодно правил, і вони складаються.
Сім видів:
- фікс за проведене заняття;
- за кожну людину на занятті;
- відсоток проведених персональних тренувань;
- відсоток проданих абонементів;
- відсоток продажу товару;
- за зміну;
- оклад за календарний місяць.
Правило можна звузити конкретним заняттям або секцією. «Кросфіт 300, йога 250» — це два правила, а не окрема логіка в коді.
Звідки беруться факти
Нічого вводити руками не треба — система бере вже наявне:
- проведені заняття і відмітки приходу з розкладу;
- персональні тренування — з проходів за персональним абонементом;
- продані абонементи — з того, хто оформив продаж;
- товар — із проведених складських документів;
- зміни — з відміток у розділі «Зміни»;
- оклад — синтетичний факт за календарний місяць.
Двічі за той самий факт не платять
Кожен рядок виплати посилається на конкретний факт, і наступний розрахунок цей факт не бачить. Це гарантія самої бази, а не акуратності інтерфейсу.
Практичний наслідок: кнопку «Порахувати» можна тиснути скільки завгодно. Двічі порахували — вдруге буде порожньо.
Розрахунковий лист і виплата
Розрахунок показує, хто скільки заробив; лист розкриває розшифровку по кожному факту. Коригування — штраф, премія, аванс — застосовуються в фіксованому порядку: штрафи першими, бо саме вони інакше застрягають назавжди, а аванс може утримуватись частинами.
Скасування виплати повертає гроші в касу, факти — в наступний розрахунок, утримання — в залишок коригувань. Тобто помилкову виплату можна відкотити цілком, а не «сторнувати вручну».
Далі — звіти.