# Первичная настройка системы

# Первичная настройка системы (пошаговый запуск)

Этот раздел — для администратора, который первый раз открыл HUVIS и хочет быстро довести систему до рабочего состояния. Шаги идут в том порядке, в котором модули зависят друг от друга: нельзя создать курс без направления, нельзя разослать уведомление без шаблона.

Названия пунктов меню в этом руководстве — **точно как в боковом меню HUVIS**.

Пройдите шаги сверху вниз. После каждого шага проверяйте результат в системе.

> **Перед началом:** войдите под административной ролью (**Manager**) — обычный работник не увидит часть пунктов меню.

---

## 1. Организация

Первым делом нужно настроить свою организацию — её название, реквизиты, контакты.

- **Где:** Настройки → Организации → [ваша организация] → Редактировать
- **Что заполнить:**
  - Название
  - Регистрационный номер (рег. код юрлица)
  - Номер НСО (VAT / tax_id) — если плательщик НСО
  - Контактное имя, телефон, e-mail
  - Адрес (юридический адрес компании)
  - Расчётный счёт (IBAN) — для счетов
- **Зачем это важно:** все сгенерированные счета и документы будут ссылаться на эти данные. Без корректного названия и рег. кода PDF-счета не пройдут бухгалтерскую проверку.

---

## 2. Адреса (физические здания)

Адрес — это здание/филиал, в котором проходят занятия. К адресу привязываются кабинеты.

- **Где:** **Учёба** → **Адреса**.
- **Как создать:**
  1. Нажмите **Создать / Добавить**.
  2. Введите название адреса (например, «Стоматологов, 4» или название филиала).
  3. Сохраните.
- **Когда нужно:** у школы один главный адрес — создайте один. Несколько филиалов — по одному на каждый.

---

## 3. Кабинеты (помещения)

Кабинет — конкретное помещение внутри адреса. На него заводится расписание.

- **Где:** **Учёба** → **Кабинеты**.
- **Как добавить:**
  1. **Создать**.
  2. Выберите **адрес** из списка (из шага 2).
  3. Название кабинета (например, «Кабинет 101», «Зал танцев»).
  4. Вместимость — опционально, используется визуально.
  5. Сохраните.
- **Проверка:** кабинет появился в списке. На странице курса в расписании можно будет выбрать этот кабинет.

---

## 4. Учителя (сотрудники)

- **Где:** **Управление персоналом** → **Сотрудники**.
- **Как добавить:**
  1. **Создать / Добавить работника**.
  2. Заполните **имя, фамилию, личный код (isikukood), e-mail, телефон**.
  3. Назначьте **роль** — для учителя обычно *Worker* или *Teacher*.
  4. Поставьте статус **Активный**.
  5. Сохраните.
- **После сохранения** система отправит письмо-приглашение работнику на вход через Smart-ID / Mobile-ID (если шаблон `worker_invite` настроен — см. шаг 8).
- **Ассистент:** создаётся так же, но с ролью *Assistant* — в расписании можно будет указать его рядом с основным учителем.

---

## 5. Направления

Направление — общая область (танцы, фортепиано, шахматы, программирование).

- **Где:** **Курсы** → **Направления**.
- **Как добавить:**
  1. **Создать**.
  2. Название (на всех поддерживаемых языках).
  3. Сохраните.
- **Зачем:** одно направление объединяет несколько специализаций. Например, направление «Танцы» содержит специализации «Балет», «Хип-хоп», «Бальные танцы».

---

## 6. Специализации

Специализация — более узкое направление внутри направления. К ней привязываются конкретные курсы (группы).

- **Где:** **Курсы** → **Специализации**.
- **Как добавить:**
  1. **Создать специализацию**.
  2. Выберите **дисциплину** (из шага 5).
  3. Название, описание.
  4. (Опционально) шаблон договора, настройки биллинга по умолчанию — можно задать позже.
  5. Сохраните.

---

## 7. Курс (группа)

Курс — конкретная группа учеников с расписанием и учителем. Это основная сущность, по которой идёт учёт посещаемости, счета, заявления.

- **Где:** **Курсы** → **Специализации** → [ваша специализация] → **Создать курс**.
- **Что заполнить при создании:**
  - **Учебный год** — важно! Выберите тот же год, что указан в **Курсы** → **Настройки** → *Год для веб-регистрации*, иначе курс не появится в публичной форме.
  - **Название** (на всех языках).
  - **Даты начала и окончания курса**.
  - **Возрастные рамки** (min/max age) — опционально.
  - **Макс. кол-во студентов**, **лимит листа ожидания**.
  - Переключатели *Регистрация закрыта*, *Уведомлять преподавателей*, *Пробный урок* — по необходимости.

После создания курса нужно поочерёдно заполнить вкладки:

### 7.1 Расписание

- Вкладка **Расписание** курса → **Добавить блок**.
- Для каждого блока: день недели, время начала/окончания, кабинет (из шага 3), учитель (из шага 4), ассистент (опционально).
- Сохраните. Без расписания курс **не появится** в форме регистрации.

### 7.2 Цена

- Вкладка **Цены** (или **Цена**).
- Добавьте хотя бы один тариф: *ежемесячно / ежеквартально / за курс* + сумма в евро.
- Можно завести несколько тарифов — пользователь выберет при регистрации.
- Без цены курс тоже не появится в форме регистрации.

### 7.3 Шаблон заявления (договор)

- Если не настроен дефолтный шаблон заявления — залейте docx через **Курсы** → **Настройки** → *Шаблоны заявлений* и пометьте как **По умолчанию**.
- Без шаблона не получится сгенерировать PDF-договор для подписания.

### 7.4 Открытие регистрации

Чтобы курс появился в публичной форме:

1. Переключатель *Регистрация закрыта* — **выключен**.
2. Поле *Дата начала регистрации* — пустое или уже наступило.
3. Курс, цена и расписание — заполнены.
4. Год курса совпадает с *Год для веб-регистрации* в **Курсы** → **Настройки**.

Проверить: откройте публичную ссылку на регистрацию → курс должен быть в выпадающем списке.

> Детальный чек-лист «курс не виден» см. в [03-courses.md](https://docs.huvis.ee/link/142#курс-создан-но-не-отображается-в-форме-регистрации).

---

## 8. Шаблоны писем

Автоматические письма (приглашение работника, уведомление о заявлении, напоминание об оплате) рассылаются по шаблонам. Без шаблона соответствующее письмо не уйдёт.

- **Где:** **Уведомления** → **Шаблоны**.
- **Минимальный набор, который нужно заполнить сразу:**
  - **Общий HTML-шаблон** — общее оформление всех писем (шапка, подвал, логотип).
  - **Приглашение работника** (`worker_invite`) — иначе новые учителя не получат письмо на вход.
  - **Уведомление плательщика** (`payer_template_notification`) — письмо плательщику о созданном заявлении.
  - **Уведомление работника** (`worker_template_notification`) — письмо учителю о новом заявлении на курс.
  - **Оплата счёта** (`invoice_payment_templates`) — подтверждение оплаты / напоминание.
- **Как редактировать:** нажмите на шаблон → отредактируйте текст, используя переменные в квадратных скобках (например, `[[STUDENT_NAME]]`, `[[COURSE_NAME]]`) → **Сохранить**. Кнопка **Предпросмотр** покажет как будет выглядеть.

---

## 9. SMTP (сервер исходящей почты)

Без настроенного SMTP ни одно письмо не уйдёт.

- **Где:** **Уведомления** → **Настройки** → вкладка **SMTP** (доступно только системному администратору платформы — обычному пользователю школы пункт не виден).
- **Что заполнить:** host, port, username, password, шифрование (TLS/SSL), e-mail отправителя (*from_address*), имя отправителя (*from_name*).
- **Проверка:** кнопка **Тест соединения** — если сервер ответит OK, SMTP настроен.

---

## 10. Уведомления при смене статуса заявления

Когда статус заявления меняется (создано → отправлено → подписано → закрыто), система может автоматически писать плательщику и/или учителю.

- **Где:** **Курсы** → **Настройки** → вкладка **Автоматизация**.
- **Что настроить:**
  - Для каких статусов отправлять уведомление плательщику.
  - Для каких статусов отправлять уведомление работнику/ассистенту.
  - Задержка/напоминания (если заявление долго в статусе «создано» — напомнить через N дней).
- **Зависит от:** шаблонов писем из шага 8 (должны существовать соответствующие шаблоны для каждого события).

---

## 11. Настройки биллинга (счета)

Перед выставлением первого счёта нужно настроить как система их нумерует, какой шаблон PDF использует и когда рассылает.

- **Где:** **Счета** → **Настройки счетов**.
- **Что заполнить:**
  - **Шаблон номера счёта** (например, `[[YYYY]]-[[SEQ]]`).
  - **Шаблон имени PDF файла**.
  - **Режим выставления** — за прошлый месяц или за следующий.
  - **День генерации** и **час отправки**.
  - **Платёжный шлюз** (Montonio и т.д.) — заполняется администратором платформы.
  - **Шаблон PDF-счёта** (docx) — залейте файл и пометьте как основной.
- **Проверка:** **Счета** → **Настройки счетов** → под номером примера шаблона нет красных сообщений, PDF-шаблон загружен.

---

## 12. Публичные ссылки на регистрацию

Чтобы плательщики могли записываться на курсы с сайта школы — нужна публичная ссылка.

- **Где:** **Настройки** → **Публичные ссылки**.
- **Как создать:**
  1. Нажмите **Создать ссылку**.
  2. Тип: **Регистрация на курсы** или **Расписание**.
  3. Метка (для себя, не видна пользователю).
  4. **Сохранить**.
- **Скопировать** сгенерированный URL и/или iframe-код → разместить на сайте школы.
- Подробнее: [19-iframe-embed.md](19-iframe-embed.md).

---

## 13. Роли и права

Если в школе несколько администраторов — настройте роли, чтобы каждому дать ровно нужные права.

- **Где:** **Настройки** → **Роли**.
- **Готовые роли:** Manager, Worker, Assistant, Student, Payer.
- **Что можно кастомизировать:** внутри каждой роли — список прав (view/edit/delete по каждому модулю).
- **Рекомендация:** Manager — основная рабочая роль администратора школы. Worker — учитель. Assistant — ассистент на курсах. Student и Payer назначаются автоматически при регистрации учеников и плательщиков.

---

## 14. Причины отчисления

Справочник используется плательщиком, когда он закрывает заявление через личный кабинет.

- **Где:** **Настройки** → **Настройки** → вкладка *Причины отчисления*.
- **Что добавить:** 3–5 типовых причин на каждом языке организации (нет времени, смена места жительства, потеря интереса и т.п.).

---

## 15. Анкета при регистрации (опционально)

Если хотите собирать дополнительные данные с плательщика/студента при подаче заявления (откуда узнали о школе, мед. ограничения, согласия на фото) — настройте анкету.

- **Где:** **Учёба** → **Анкеты**.
- Создайте дефолтную анкету → добавьте поля (текст, галочка, выпадающий список) → пометьте нужные обязательными.

---

## 16. Нерабочие (неучебные) дни

Государственные праздники Эстонии импортируются автоматически при установке. Свои каникулы/выходные добавляйте вручную.

- **Где:** **Учёба** → **Неучебные дни**.
- Даты каникул → занятия в эти дни автоматически исключаются из расписания и не тарифицируются.

---

## Быстрый чек-лист

Отметьте по мере настройки:

- [ ] 1. Организация заполнена (название, рег. код, IBAN)
- [ ] 2. Адреса созданы (**Учёба** → **Адреса**)
- [ ] 3. Кабинеты созданы и привязаны к адресам (**Учёба** → **Кабинеты**)
- [ ] 4. Сотрудники добавлены, роли назначены (**Управление персоналом** → **Сотрудники**)
- [ ] 5. Направления созданы (**Курсы** → **Направления**)
- [ ] 6. Специализации созданы (**Курсы** → **Специализации**)
- [ ] 7. Хотя бы один курс создан (+ расписание + цена + шаблон)
- [ ] 8. Минимальные шаблоны писем заполнены (**Уведомления** → **Шаблоны**)
- [ ] 9. SMTP настроен, тест прошёл (**Уведомления** → **Настройки** → **SMTP**)
- [ ] 10. Уведомления при смене статуса настроены (**Курсы** → **Настройки** → *Автоматизация*)
- [ ] 11. Настройки счетов заполнены (**Счета** → **Настройки счетов**)
- [ ] 12. Публичная ссылка создана (**Настройки** → **Публичные ссылки**)
- [ ] 13. Роли розданы сотрудникам (**Настройки** → **Роли**)
- [ ] 14. Справочник причин отчисления заполнен
- [ ] 15. Анкета (если нужна)
- [ ] 16. Неучебные дни добавлены (**Учёба** → **Неучебные дни**)

После прохождения всех пунктов система готова к работе: можно принимать регистрации, выставлять счета, вести посещаемость.