Процедура
Процедури кампанії оцінки (Grade)
Документ описує автоматизацію та полуавтоматичні процедури процесу оцінки: блокування керівників, дашборд, тег боржника, нагадування та щорічні операції.
1. Блокування вибору керівників
При виборі «друзяк» блокуються обидва керівники аппліканта — і лінійний,
і функціональний. Джерело — профіль співробітника (linejnyjRukovoditel,
funkcionalnyjRukovoditel), що зіставляється з довідником leaders
(з фолбеком на пряме зіставлення за ПІБ) плюс історична колонка
employees.leader_id.
Код: app/Domains/Grade/GradeService.php — методи checkBoss() та
applicantLeaderIds(). Довідник leaders та логіка узгодження не змінювались.
2. Дашборд
Панель Grade → сторінка «Дашборд» (/grade). Показує на поточну
дату/час воронку по трьох етапах:
-
Етап 1 — не зробили вибір (
employees_evaluation.status = Created); -
Етап 2 — керівник не погодив (
Approval) / погоджено (Confirmed); -
Етап 3 — оцінок не завершено / людей не завершили / оцінок завершено
(
reviewers.is_finished).
Код: app/Filament/Grade/Widgets/GradeFunnelStats.php,
app/Filament/Grade/Pages/GradeDashboard.php.
3. Автоматизація боржників (без участі програміста)
Боржник — співробітник, у якого є незавершені рядки оцінки
(reviewers.is_finished = 0), як оцінювач.
Планувальник (автоматично)
-
grade:debtors:sync— щодня о 08:00: чіпляє тег боржника (config kernel.grade.debtor_tag_id, за замовч.3036) підписникам grade-бота, що не завершили оцінку, і знімає тег з тих, хто завершив. -
grade:debtors:remind— щодня о 09:00, якщо увімкненоkernel.grade.reminder.enabled. Розсилає нагадування підписникам з тегом.
Налаштування (.env)
GRADE_DEBTOR_TAG_ID=3036 # id тегу боржника
GRADE_REMINDER_ENABLED=true # увімкнути авто-нагадування
GRADE_REMINDER_DAYS=1,3,5 # дні тижня (1=Пн..7=Нд); порожньо = щодня
GRADE_REMINDER_STORY=#grade_reminder # story-attach у боті; якщо порожньо — текст нижче
GRADE_REMINDER_TEXT="Нагадуємо: завершіть оцінку колег."
grade_bot_idбереться зі змінноїGRADE_BOT_ID.
Ручний запуск
php artisan grade:debtors:sync --dry-run # лише показати кількість боржників
php artisan grade:debtors:sync # оновити тег
php artisan grade:debtors:remind --sync # синхронізувати тег і розіслати
php artisan grade:debtors:remind --force # розіслати навіть якщо вимкнено у конфізі
4. Щорічні полуавтоматичні процедури
Наприкінці кампанії потрібно виконати однакові дії. Доступні двома способами.
A. Кнопки в адмінці (для HR, без CLI)
Панель Grade → Адміністрування → «Процедури оцінки»
(/grade/grade-procedures). Сторінка показує поточні лічильники та кнопки:
- Оновити тег боржників — безпечно, ідемпотентно;
- Надіслати нагадування — з підтвердженням;
- Затвердити всі вибори — незворотно, з підтвердженням;
- Завершити етап оцінки — незворотно, з підтвердженням.
Код: app/Filament/Grade/Pages/GradeProcedures.php.
B. Artisan-команди (з --dry-run та підтвердженням)
php artisan grade:approve-all --dry-run # скільки виборів буде затверджено
php artisan grade:approve-all # перевести незатверджені → Затверджено
php artisan grade:finish-stage --dry-run # скільки рядків оцінки буде завершено
php artisan grade:finish-stage # примусово завершити етап оцінки
Прапор --force пропускає інтерактивне підтвердження (для скриптів/CI).
Де що в коді
- Бізнес-логіка:
app/Domains/Grade/GradeAutomationService.php - Команди:
Modules/Kernel/Console/Grade/* - Розклад:
app/Console/Kernel.php - Конфіг:
Modules/Kernel/Config/config.php(секціяgrade)