Перейти к основному контенту

Процедура

Процедури кампанії оцінки (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)