| Ученик | Статус | ||
|---|---|---|---|
|
{{ initials(d.surname, d.first_name) }}
{{ d.surname }} {{ d.first_name }} {{ d.patronymic }} ДР {{ formatDate(d.birth_date) }} / {{ fmtYearsFull(calcAge(d.birth_date)) }} |
{{ statusLabel(d.status) }} |
Занятия
Контакты
{{ d.has_debt ? 'Долг' : 'Оплата' }}
|
|
| {{ dancerSearch ? 'Ничего не найдено' : 'Нет данных' }} | |||
| Название | Филиал | Уровень | Ученики | Педагог / Упр. | Взнос | Статус | |
|---|---|---|---|---|---|---|---|
|
{{ g.name || g.direction || '—' }}
{{ g.direction }}
|
{{ g.institution_name || '—' }}
{{ g.institution_address }}
|
{{ levelLabel(g.level) }} | {{ g.students_count||0 }}/{{ g.max_students }} {{ g.students_count||0 }} |
Пед.:{{ g.teacher_name }}
Педагог не назначен
Упр.:{{ g.manager_name }}
Управляющий не назначен
|
{{ g.subscription_price ? formatNum(g.subscription_price)+'₽' : '—' }}
{{ g.lessons_per_month }} зан./мес
|
{{ g.status==='active'?'Активна':g.status==='archive'?'Архив':'Закрыта' }} |
|
| {{ groupSearch ? 'Ничего не найдено' : 'Нет данных' }} | |||||||
| Ученик | К оплате | Оплачено | Статус | Действия |
|---|---|---|---|---|
| {{ r.surname }} {{ r.first_name }} | ₽{{ formatNum(r.expected_amount) }}({{ r.lessons_charged }}/{{ r.lessons_per_month }} зан.) | ₽{{ formatNum(r.amount) }} | {{ payStatusLabel(r.status) }} |
{{ r.note }}
|
| В группе нет учеников | ||||
| Группа | К оплате | Оплачено | Статус | Действия |
|---|---|---|---|---|
| {{ r.group_name }} | ₽{{ formatNum(r.expected_amount) }}({{ r.lessons_charged }}/{{ r.lessons_per_month }} зан.) | ₽{{ formatNum(r.amount) }} | {{ payStatusLabel(r.status) }} |
{{ r.note }}
|
| Танцор не состоит ни в одной группе | ||||
| Ученик | Группа | Период | Сумма | Статус | Дата | |
|---|---|---|---|---|---|---|
| {{ p.dancer_name }} | {{ p.group_name }} | {{ p.period }} | ₽{{ formatNum(p.amount) }} | {{ payStatusLabel(p.status) }} | {{ p.paid_at ? formatDate(p.paid_at) : '—' }} | |
| Нет данных | ||||||
{{ showPinModal.pin.address || '—' }} · {{ showPinModal.pin.corpus }}
{{ branchEffectiveCoords(showPinModal.pin)[0].toFixed(6) }}, {{ branchEffectiveCoords(showPinModal.pin)[1].toFixed(6) }}
Координаты ещё не заданы
{{ showPinModal.geocodeError }}
Кликните на карте, чтобы поставить метку в нужном месте. Можно перетаскивать уже поставленную метку.
{{ payAction.mode==='partial' ? 'Частичная оплата' : payAction.mode==='edit' ? 'Изменить оплату' : 'Перерасчёт' }}
{{ payAction.dancerName }} · {{ payAction.groupName }}
Осталось к оплате: ₽{{ formatNum(payAction.currentExpected) }}
К оплате за период: ₽{{ formatNum(payAction.expectedAmount) }}
| Педагог | Стиль | Стаж | Группы | Медиа | Доступ | Статус | |||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
{{ initials(t.surname, t.first_name) }}
{{ t.surname }} {{ t.first_name }}
{{ t.patronymic }}
{{ t.preferred_okrug_code }} · {{ t.preferred_rayon_name }}
{{ flagLabel(f) }}
|
{{ t.style || '—' }} | {{ t.experience_yrs ? fmtYears(t.experience_yrs) : '—' }} |
{{ gd.group }}
({{ gd.institution || '—' }})
|
|
{{ t.staff_status==='active' ? 'Есть доступ' : 'Заблокирован' }} Нет доступа |
{{ teacherStatusLabel(t.status) }}
В резерве
|
|
||||||
| Нет данных | |||||||||||||
| Номер | Ученик | Дата | СОД | Подписан | Статус | |
|---|---|---|---|---|---|---|
| {{ c.number }} | {{ c.dancer_name || '—' }} | {{ formatDate(c.signed_at) }} | {{ contractStatusLabel(c.status) }} | |||
| Нет данных | ||||||
| Номер | Название | Тип | Контрагент | Сумма | Ответственный | Согласование | Статус | |
|---|---|---|---|---|---|---|---|---|
| {{ c.number }} | {{ c.title }} | {{ registryTypeLabel(c.contract_type) }} | {{ c.counterparty_name || '—' }} | {{ c.amount ? Number(c.amount).toLocaleString('ru-RU') + ' ' + c.currency : '—' }} | {{ c.responsible_name || '—' }} | {{ c.approval_steps ? c.approval_done + '/' + c.approval_steps : '—' }} | {{ registryStatusLabel(c.status) }} | |
| Нет данных | ||||||||
| Название | Должность | Версия | Статус | Файл | Ознакомление | |
|---|---|---|---|---|---|---|
| {{ j.title }} | {{ j.role_label || '—' }} | {{ j.version || '—' }} | {{ j.status==='approved'?'Утверждена':'Черновик' }} | Открыть — | Подтверждено {{ j.ack_done }}/{{ j.ack_total }} — |
|
| Нет данных | ||||||
| Группа & Филиал | Ученики | Соотношение % | Вертикаль & % | Педагог & Оплата | Период расчёта | Карточка периода | |
|---|---|---|---|---|---|---|---|
|
{{ g.name || g.direction || '—' }}
{{ g.direction }}
{{ g.institution_name || '—' }}
{{ g.institution_address }}
|
{{ g.students_count||0 }}/{{ g.max_students }}
{{ g.students_count||0 }} чел.
{{ formatNum(g.subscription_price) }} ₽
|
{{ getGroupStaffHierarchy(g).rentPct }}% / {{ getGroupStaffHierarchy(g).dpPct }}%
Аренда / DP
|
Дир. ({{ getGroupStaffHierarchy(g).directorPct }}%):{{ getGroupStaffHierarchy(g).directorName }}
Рук.УП. ({{ getGroupStaffHierarchy(g).headPct }}%):{{ getGroupStaffHierarchy(g).headName }}
Упр. ({{ getGroupStaffHierarchy(g).managerPct }}%):{{ getGroupStaffHierarchy(g).managerName }}
Управляющий не назначен
|
{{ g.teacher_name || 'Не назначен' }}
{{ g.teacher_salary_terms }}
|
{{ salaryPeriodLabel(filters.salary.period) }}
авторасчёт за период
|
{{ salaryPeriodLabel(filters.salary.period) }}
|
|
| Нет данных по группам | |||||||
| Сотрудник | Должность | Период | Кол. групп | Бонусы | Итого | Статус | |
|---|---|---|---|---|---|---|---|
| {{ s.teacher_name || '—' }} | {{ roleLabel(s.person_role) }} | {{ s.period }} | {{ s.groups_cnt || 0 }} | +₽{{ formatNum(s.bonuses) }} | ₽{{ formatNum(s.total) }} | {{ s.status==='paid'?'Выплачено':'Начислено' }} Не рассчитано | |
| {{ filters.salary.period ? 'Нет данных за выбранный период' : 'Выберите период, чтобы увидеть данные' }} | |||||||
| Итого: {{ salaryTotals.count }} чел. | +₽{{ formatNum(salaryTotals.bonuses) }} | ₽{{ formatNum(salaryTotals.total) }} | |||||
Период отчётности
Настройка единого дня начала расчётного периода компании (например, 10 — период считается с 10 числа текущего месяца по 9-е число следующего месяца).
Системы расчёта
ОткрытьУправление шаблонами ставок, диапазонами и правилами расчета зарплаты для преподавателей и персонала.
Шаблоны вертикали власти
ОткрытьФормирование, создание и настройка шаблонов процентных ставок для руководства (Директор, Рук. Управляющий, Управляющий) и назначение их на филиалы.
{{ salaryBreakdown.teacherName }}
{{ salaryBreakdown.period }} · Итого: ₽{{ formatNum(salaryBreakdown.total) }}
| Дата | Детей | Ставка |
|---|---|---|
| {{ formatDate(l.date) }} | {{ l.present }} | ₽{{ formatNum(l.rate) }} |
{{ salaryGroupsListModal.name }}
{{ salaryGroupsListModal.role }} · групп: {{ salaryGroupsListModal.groups.length }}
Условия оплаты: {{ salaryConfig.teacherName }}
Система расчёта задаётся отдельно для каждой группы, которую ведёт педагог. Значение по умолчанию используется только если для группы ничего не задано.
Для этой должности пока доступна только фиксированная ставка в месяц.
Системы расчёта
Готовые схемы оплаты — загружайте их в условия любого педагога или сотрудника, не вводя цифры заново
Вертикаль подчинения
% от выручки группы директору / рук. управляющему / управляющему — сверх зарплаты педагога, которая считается отдельно
Если один и тот же человек выбран на несколько ролей — он просто получит сумму по каждой из них (так и получаются «схема 2» и «схема 3»).
{{ groupSalaryModal.group ? (groupSalaryModal.group.name || groupSalaryModal.group.direction || '—') : '—' }}
Шкала расчёта (ступени педагога)
Ставка за занятие зависит от количества присутствовавших детей
{{ groupSalaryCardModal.group_name || 'Группа' }}
({{ groupSalaryCardModal.institution_name || '—' }}) Сформированный отчёт (фактический) Расчётная карточка группыФинансовая сводка
| Показатель | Сумма |
|---|---|
| Планировалась выручка (План) | {{ formatNum(groupCardCalculatedFinals.plannedRevenue) }} ₽ |
| Фактически собрано по взносам (Факт) | {{ formatNum(groupCardCalculatedFinals.collectedRevenue) }} ₽ |
| Аренда ({{ (groupSalaryCardModal.rent_pct != null && groupSalaryCardModal.rent_pct !== '') ? Number(groupSalaryCardModal.rent_pct).toFixed(2) : '50.00' }}%) | {{ formatNum(groupCardCalculatedFinals.rentAmount) }} ₽ |
| Доля Dance Planet ({{ (groupSalaryCardModal.dp_pct != null && groupSalaryCardModal.dp_pct !== '') ? Number(groupSalaryCardModal.dp_pct).toFixed(2) : '50.00' }}%) | {{ formatNum(groupCardCalculatedFinals.dpRevenue) }} ₽ |
Итоговый баланс
| Показатель | Сумма |
|---|---|
| Выручка группы | {{ formatNum(groupCardCalculatedFinals.collectedRevenue) }} ₽ |
| Аренда | −{{ formatNum(groupCardCalculatedFinals.rentAmount) }} ₽ |
| Руководство | −{{ formatNum(groupCardCalculatedFinals.directorAmount + groupCardCalculatedFinals.headAmount + groupCardCalculatedFinals.managerAmount) }} ₽ |
| Педагог | −{{ formatNum(groupCardCalculatedFinals.teacherAmount) }} ₽ |
| — в т.ч. корректировки (штраф/премия) | {{ ((groupCardCalculatedFinals.directorAdjustment||0) + (groupCardCalculatedFinals.headAdjustment||0) + (groupCardCalculatedFinals.managerAdjustment||0) + (groupCardCalculatedFinals.teacherAdjustment||0))<0 ? '+' : '−' }}{{ formatNum(Math.abs((groupCardCalculatedFinals.directorAdjustment||0) + (groupCardCalculatedFinals.headAdjustment||0) + (groupCardCalculatedFinals.managerAdjustment||0) + (groupCardCalculatedFinals.teacherAdjustment||0))) }} ₽ |
Бонусы / Премия / Штраф
| Тип | Кому | Сумма |
|---|---|---|
| {{ groupCardAdjustmentTypeLabel(adj.type) }} | {{ salaryHierarchyRoleLabel(adj.role) }} | {{ adj.type==='penalty' ? '−' : '+' }}{{ formatNum(adj.amount) }} ₽ |
| {{ adj.comment }} | ||
Начисления руководству
| Должность | ФИО | Ставка | Сумма |
|---|---|---|---|
| Директор | {{ groupSalaryCardModal.director_name || 'Не назначен' }} | {{ groupSalaryCardModal.director_pct != null ? groupSalaryCardModal.director_pct + '%' : '—' }} |
{{ formatNum(groupCardCalculatedFinals.directorAmount) }} ₽
{{ formatNum(groupCardCalculatedFinals.directorAmount - groupCardCalculatedFinals.directorAdjustment) }} ₽ {{ groupCardCalculatedFinals.directorAdjustment<0?'−':'+' }} {{ formatNum(Math.abs(groupCardCalculatedFinals.directorAdjustment)) }} ₽ корр.
|
| Рук. УП | {{ groupSalaryCardModal.head_manager_name || 'Не назначен' }} | {{ groupSalaryCardModal.head_manager_pct != null ? groupSalaryCardModal.head_manager_pct + '%' : '—' }} |
{{ formatNum(groupCardCalculatedFinals.headAmount) }} ₽
{{ formatNum(groupCardCalculatedFinals.headAmount - groupCardCalculatedFinals.headAdjustment) }} ₽ {{ groupCardCalculatedFinals.headAdjustment<0?'−':'+' }} {{ formatNum(Math.abs(groupCardCalculatedFinals.headAdjustment)) }} ₽ корр.
|
| Управляющий | {{ groupSalaryCardModal.manager_name || 'Не назначен' }} | {{ groupSalaryCardModal.manager_pct != null ? groupSalaryCardModal.manager_pct + '%' : '—' }} |
{{ formatNum(groupCardCalculatedFinals.managerAmount) }} ₽
{{ formatNum(groupCardCalculatedFinals.managerAmount - groupCardCalculatedFinals.managerAdjustment) }} ₽ {{ groupCardCalculatedFinals.managerAdjustment<0?'−':'+' }} {{ formatNum(Math.abs(groupCardCalculatedFinals.managerAdjustment)) }} ₽ корр.
|
{{ groupSalaryCardModal.teacher_name || 'Педагог' }}
| Дата | Детей | Ставка |
|---|---|---|
| {{ l.date }} | {{ l.present }} | {{ formatNum(l.rate) }} ₽ |
Педагог
{{ groupSalaryCardModal.teacher_name || 'Не назначен' }}| Дата | Учеников | Начислено |
|---|---|---|
| {{ l.date }} | {{ l.present }} | {{ formatNum(l.rate) }} ₽ |
Управление
Бонусы / Премия / Штраф
История сохранённых карточек ({{ groupSalaryCardModal.history.length }})
{{ salaryNoticeModal.title }}
{{ salaryNoticeModal.message }}
{{ formNoticeModal.title }}
{{ formNoticeModal.message }}
- {{ item }}
| Название | Размер | Выдан | Вернуть до | Статус | |
|---|---|---|---|---|---|
| {{ c.name }} | {{ c.size || '—' }} | {{ c.issued_name || '—' }} | {{ formatDate(c.return_by) }} | {{ {storage:'На складе',issued:'Выдан',lost:'Утерян'}[c.status] }} | |
| Нет данных | |||||
| Тип | Канал | Тема | Статус | Отправлено |
|---|---|---|---|---|
| {{ notifTypeLabel(n.type) }} | {{ n.channel }} | {{ n.subject || '—' }} | {{ {pending:'Ожидает',sent:'Отправлено',error:'Ошибка'}[n.status] }} | {{ n.sent_at ? formatDate(n.sent_at) : '—' }} |
| Нет данных | ||||
| Название | Контакт | Метро / Район | Статус | |
|---|---|---|---|---|
|
{{ l.name }}
{{ l.address }} · {{ l.corpus }}
|
{{ locationContactLabel(l) }} {{ (l.contacts && l.contacts[0] && l.contacts[0].phone) || l.contact_phone || '' }} |
{{ s.name }}, {{ s.walk_min }}мин
{{ [l.okrug_code, l.rayon_join_name || l.rayon_name].filter(Boolean).join(' / ') }}
—
|
Свободна
В работе
Архив
{{ line.label }}: {{ line.names.join(', ') }}
|
|
| {{ locationSearch ? 'Ничего не найдено' : 'Нет данных' }} | ||||
| ФИО | Стиль | Стаж | Медиа | Рейтинг | Интервью | Статус | |
|---|---|---|---|---|---|---|---|
| {{ c.surname }} {{ c.first_name }} {{ c.patronymic }} {{ c.preferred_okrug_code }} · {{ c.preferred_rayon_name }} |
{{ c.style || '—' }} | {{ c.experience_yrs ? fmtYears(c.experience_yrs) : '—' }} |
|
{{ '★'.repeat(c.scout_rating)+'☆'.repeat(5-c.scout_rating) }} — | {{ c.interview_date ? formatDate(c.interview_date) : '—' }} |
|
|
| {{ candidateSearch ? 'Ничего не найдено' : 'Нет данных' }} | |||||||
| Название | Город | Метро / Район | Штатный план | Статус | |
|---|---|---|---|---|---|
|
{{ b.name }}
{{ b.address }}
Нет доступа к подробностям
|
{{ {msk:'Москва',mo:'МО',other:'Другой'}[b.city] || b.city }} |
—
{{ s.name }}, {{ s.walk_min }}мин
{{ [b.okrug_code, b.rayon_join_name].filter(Boolean).join(' / ') }}
—
|
—
{{ line.label }}: {{ line.names.join(', ') }}
|
{{ b.status==='active'?'Активен':b.status==='prospect'?'Свободна':'Архив' }}
Сверено
Просрочено
|
|
| {{ branchSearch ? 'Ничего не найдено' : 'Нет данных' }} | |||||
| ФИО | Контакты | Роль | Профиль педагога | Статус | Документы | |
|---|---|---|---|---|---|---|
| {{ u.surname }} {{ u.first_name }} {{ u.patronymic }} |
{{ u.phone }}
{{ u.email }}
—
|
{{ rolesLabel(u.roles||[u.role]) }} | — {{ u.teacher_name }} Нет профиля | {{ u.status==='active'?'Активен':u.status==='archive'?'Архив':'Заблокирован' }} |
Перс. данные
Перс. данные
Договор
Договор
|
|
| {{ staffSearch ? 'Ничего не найдено' : 'Нет данных' }} | ||||||
Перетащите сотрудника на холст справа
| Объект | Раздел | Филиал | Кто удалил | Когда | ||
|---|---|---|---|---|---|---|
| {{ it.name }} | {{ it.section_label }} | {{ it.institution_name || '—' }} | {{ it.deleted_by_name }} {{ it.deleted_by_role }} |
{{ formatDateTime(it.deleted_at) }} |
|
|
| {{ trashData.total ? 'По фильтрам ничего не найдено' : 'Корзина пуста' }} | ||||||
{{ roleManageError }}
| Раздел | Режим | Просмотр | Редакт. | Удаление | Переход м/у разделами |
|---|---|---|---|---|---|
| {{ m.label }} |
|
| Раздел | Режим | Просмотр | Редакт. | Удаление | Переход м/у разделами | |
|---|---|---|---|---|---|---|
| {{ m.label }} персонально |
|
| # | Документ | Статус | |
|---|---|---|---|
| {{ idx + 1 }} | {{ d.title }} | {{ docTypeLabel(d) }} | |
|
Документы не загружены
|
|||
|
|
|||
Можно выбрать несколько — каждому создастся своя задача со своим этапом.
| Тип | Куда | Статус | Размер | Начало | Конец |
|---|---|---|---|---|---|
| {{ BACKUP_TYPE_LABELS[b.type] || b.type }} | {{ b.destination==='local' ? 'Сервер' : 'Яндекс.Диск' }} | {{ {success:'Успех',failed:'Ошибка',partial:'Частично'}[b.status] }} | {{ b.file_size_kb ? (b.file_size_kb/1024).toFixed(1)+' МБ' : '—' }} | {{ formatDateTime(b.started_at) }} | {{ formatDateTime(b.finished_at) }} |
| Нет данных | |||||
| Когда | Кто | Раздел | Действие | |
|---|---|---|---|---|
| {{ formatDateTime(r.timestamp) }} | {{ r.user_name ? r.user_name.trim() : '—' }} | {{ r.entity }} #{{ r.record_id }} | {{ auditActionLabel(r.action) }} | |
|
Было {{ JSON.stringify(r.old_value, null, 1) }}Стало {{ JSON.stringify(r.new_value, null, 1) }} |
||||
| Нет данных | ||||
{{ JSON.stringify(r.old_value, null, 1) }}{{ JSON.stringify(r.new_value, null, 1) }}| Кто | Вход | Выход | Длительность | Статус |
|---|---|---|---|---|
| {{ s.user_name ? s.user_name.trim() : '—' }} | {{ s.login_at ? formatDateTime(s.login_at) : '—' }} | {{ s.logout_at ? formatDateTime(s.logout_at) : '—' }} | {{ formatSessionDuration(s.duration_sec) }} | {{ s.status==='active' ? 'В сети' : s.status==='expired' ? 'Сессия истекла' : 'Завершена' }} |
| Нет данных | ||||
| Тип | Тема | Автор | Дата | Статус | Файлы |
|---|---|---|---|---|---|
| {{ DEV_CATEGORY_LABELS[item.category] }} | {{ item.title }} | {{ item.author_name }} | {{ formatDateTime(item.created_at) }} | {{ DEV_STATUS_LABELS[item.status] }} | {{ item.attachment_count || 0 }} |
| Нет обращений | |||||
| Сотрудник | Логин (Email) | Пароль для входа | Должности | Телефон | Статус | Действия |
|---|---|---|---|---|---|---|
|
{{ u.surname }} {{ u.first_name }} {{ u.patronymic }}
ID: {{ u.id }}
|
{{ u.email }} |
{{ adminPassVisible[u.id] ? (u.plain_password || '— не сохранён —') : '••••••••••••' }}
|
{{ rolesLabel(u.roles||[u.role]) }} | {{ u.phone || '—' }} | {{ u.status==='active'?'Активен':u.status==='archive'?'Архив':'Заблокирован' }} |
|
| Пользователи не найдены | ||||||
| Дата | Родитель | Ребёнок | Телефон | Источник | Филиал | Управляющий | Этап | Пробное | Следующее действие |
|---|---|---|---|---|---|---|---|---|---|
| {{ formatDate(l.created_at) }} | {{ l.parent_name }} | {{ l.child_first_name }} {{ l.child_last_name||'' }} | {{ l.phone }} | {{ PL_SOURCE_LABELS[l.source]||l.source }} | {{ l.institution_name }} | {{ l.owner_name||'—' }} | {{ l.lead_status==='lost' ? 'Потеряна' : PL_STAGE_LABELS[l.stage] }} | {{ l.next_trial_at ? formatDateTime(l.next_trial_at) : '—' }} | {{ l.next_action_note||'—' }} |
| Заявок нет | |||||||||
{{ plCreateErrors.parent_name }}
{{ plCreateErrors.phone }}
{{ plCreateErrors.child_first_name }}
{{ plCreateErrors.institution_id }}
| Показатель | {{ reportsSummary.period.from }} — {{ reportsSummary.period.to }} | {{ reportsSummary.comparison.period.from }} — {{ reportsSummary.comparison.period.to }} | Δ |
|---|---|---|---|
| Оплаченная выручка | ₽{{ formatNum(reportsSummary.paid_revenue) }} | ₽{{ formatNum(reportsSummary.comparison.paid_revenue) }} | {{ reportsSummary.comparison.paid_revenue_change_pct!==null ? (reportsSummary.comparison.paid_revenue_change_pct>=0?'+':'')+reportsSummary.comparison.paid_revenue_change_pct+'%' : '—' }} |
| Активные ученики | {{ reportsSummary.active_students }} | {{ reportsSummary.comparison.active_students }} | {{ reportsSummary.comparison.active_students_change_pct!==null ? (reportsSummary.comparison.active_students_change_pct>=0?'+':'')+reportsSummary.comparison.active_students_change_pct+'%' : '—' }} |
| Посещаемость | {{ reportsSummary.attendance_pct }}% | {{ reportsSummary.comparison.attendance_pct !== null ? reportsSummary.comparison.attendance_pct+'%' : 'Нет данных' }} | {{ reportsSummary.comparison.attendance_change_pct!==null ? (reportsSummary.comparison.attendance_change_pct>=0?'+':'')+reportsSummary.comparison.attendance_change_pct+'%' : '—' }} |
| Филиал | Выручка | Доля партнёра | Доля компании |
|---|---|---|---|
| {{ r.name }} | ₽{{ formatNum(r.revenue) }} | ₽{{ formatNum(r.org_share) }} | ₽{{ formatNum(r.company_share) }} |
| Филиал | Стадия | Управляющий | Группы | <7 | Без педагога | Ученики | Посещаемость | Выручка | Следующее действие |
|---|---|---|---|---|---|---|---|---|---|
| {{ r.name }} | {{ r.stage||'—' }} | {{ r.manager_name||'—' }} | {{ r.active_groups }} | {{ r.groups_below_min }} | {{ r.groups_without_teacher }} | {{ r.active_students }} | {{ r.attendance_pct!==null ? r.attendance_pct+'%' : '—' }} | ₽{{ formatNum(r.revenue) }} | {{ r.next_action_text||'—' }} |
| Группа | Филиал | Педагог | Ученики | Заполненность | Новые | Посещаемость | Выручка |
|---|---|---|---|---|---|---|---|
| {{ r.name }} | {{ r.institution_name }} | {{ r.teacher_name||'—' }} | {{ r.active_students }} | {{ r.occupancy_pct!==null ? r.occupancy_pct+'%' : '—' }} | {{ r.new_joins }} | {{ r.attendance_pct!==null ? r.attendance_pct+'%' : '—' }} | ₽{{ formatNum(r.revenue) }} |
| Сотрудник | Роль | Филиалы | Группы | <7 | Ученики | Выручка | Посещаемость | В запуске | Просрочено | Заявки→Оплатили |
|---|---|---|---|---|---|---|---|---|---|---|
| {{ r.name }} | {{ r.role==='head'?'Руководитель':'Управляющий' }} | {{ r.branches }} | {{ r.active_groups }} | {{ r.groups_below_min }} | {{ r.active_students }} | ₽{{ formatNum(r.revenue) }} | {{ r.attendance_pct }}% | {{ r.branches_in_launch }} | {{ r.overdue_actions }} | {{ r.leads }}→{{ r.paid }} |
| Источник | Заявки | Пробное | Пришли | Оплатили |
|---|---|---|---|---|
| {{ PL_SOURCE_LABELS[r.source]||r.source }} | {{ r.application }} | {{ r.trial_booked }} | {{ r.attended }} | {{ r.paid }} |
Игра окончена
Здесь только те разделы, доступ к которым у вас сейчас активен в «Доступ». Как только доступ к разделу включат или выключат — соответствующий пункт появится или исчезнет здесь.
{{ instructionContent[sec.slug].purpose }}
- {{ line }}