// === БАЗА ЗНАНИЙ ===
// Центральный источник данных для всего приложения
const KB = {
// Ошибки
errors: [
{
id: 'err_001',
code: '403',
title: 'Нет прав на создание скидки',
meaning: 'У пользователя недостаточно прав для выполнения операции',
causes: [
'Отсутствует роль "Менеджер по скидкам"',
'Истек срок действия полномочий',
'Попытка создать скидку выше лимита'
],
solution: [
'Проверьте свою роль в системе (Раздел "Профиль")',
'Убедитесь, что размер скидки входит в ваш лимит',
'При необходимости запросите согласование у руководителя',
'Обратитесь к администратору для расширения прав'
],
contact: 'helpdesk@kazakhtelecom.kz, внутренний номер: 1111'
},
{
id: 'err_002',
code: 'TARIFF_NOT_FOUND',
title: 'Тариф не найден',
meaning: 'Выбранный тариф недоступен для применения скидки',
causes: [
'Тариф архивный или выведен из эксплуатации',
'На тариф действуют ограничения по скидкам',
'Неверно выбран код тарифа в системе'
],
solution: [
'Проверьте актуальность тарифа в справочнике',
'Убедитесь, что тариф поддерживает скидки',
'Сверьте код тарифа с официальным каталогом',
'Выберите альтернативный тариф из доступных'
],
contact: 'Отдел продуктового маркетинга, номер: 2222'
},
{
id: 'err_003',
code: 'DISCOUNT_LIMIT',
title: 'Превышен лимит скидки',
meaning: 'Запрошенный размер скидки превышает максимально допустимый',
causes: [
'Размер скидки выше полномочий менеджера',
'Превышен совокупный лимит на клиента',
'Для тарифа установлен максимальный порог'
],
solution: [
'Проверьте максимально допустимый размер скидки для тарифа',
'Сверьте свои полномочия (см. таблицу лимитов)',
'Запросите согласование у руководителя при необходимости',
'Предложите клиенту альтернативный вариант скидки'
],
contact: 'Руководитель отдела продаж'
},
{
id: 'err_004',
code: 'INVALID_PERIOD',
title: 'Недопустимый период',
meaning: 'Указанный срок действия скидки не соответствует правилам',
causes: [
'Срок меньше минимального (3 месяца)',
'Срок превышает максимальный (24 месяца)',
'Дата окончания раньше даты начала'
],
solution: [
'Минимальный срок действия скидки — 3 месяца',
'Максимальный срок — 24 месяца',
'Проверьте, что дата окончания позже даты начала',
'Используйте стандартные периоды: 3, 6, 12, 24 месяца'
],
contact: null
},
{
id: 'err_005',
code: 'CLIENT_NOT_FOUND',
title: 'Клиент не найден',
meaning: 'Не удалось найти клиента в базе данных',
causes: [
'Неверно введен ИИН/БИН',
'Клиент отсутствует в базе',
'Техническая ошибка поиска'
],
solution: [
'Проверьте правильность ввода ИИН/БИН (12/9 цифр)',
'Попробуйте найти клиента по номеру договора',
'Убедитесь, что клиент активен в системе',
'При технической ошибке повторите попытку через 5 минут'
],
contact: 'Техподдержка: 1111'
},
{
id: 'err_006',
code: 'DUPLICATE_DISCOUNT',
title: 'Дублирующая скидка',
meaning: 'На данный тариф уже оформлена активная скидка',
causes: [
'Скидка уже действует на этом тарифе',
'Есть_pending заявка на скидку',
'Попытка продления без закрытия предыдущей'
],
solution: [
'Проверьте активные скидки клиента',
'Убедитесь, что текущая скидка завершена',
'При необходимости оформите продление',
'Закройте pending-заявку перед созданием новой'
],
contact: null
},
{
id: 'err_007',
code: 'MISSING_FIELD',
title: 'Не заполнено обязательное поле',
meaning: 'Отсутствуют данные в обязательных полях формы',
causes: [
'Не выбрано основание для скидки',
'Не указан размер скидки',
'Не выбран тариф или срок действия'
],
solution: [
'Проверьте все поля, отмеченные звёздочкой (*)',
'Обязательно выберите основание скидки',
'Укажите размер скидки в процентах или тенге',
'Выберите тариф и срок действия'
],
contact: null
},
{
id: 'err_008',
code: 'SYSTEM_ERROR',
title: 'Системная ошибка',
meaning: 'Внутренняя ошибка системы обработки данных',
causes: [
'Временный сбой сервера',
'Превышено время ожидания ответа',
'Ошибка базы данных'
],
solution: [
'Повторите операцию через 1-2 минуты',
'Очистите кэш браузера (Ctrl+Shift+Delete)',
'Попробуйте в другом браузере',
'При повторении ошибки обратитесь в техподдержку'
],
contact: 'helpdesk@kazakhtelecom.kz, 1111'
}
],
// Уроки
lessons: [
{
id: 'lesson_01',
icon: '💡',
title: 'Что такое скидка',
description: 'Основы работы со скидками: виды, условия, ограничения',
duration: '10 мин',
content: `
Что такое скидка?
Скидка — это уменьшение абонентской платы или стоимости услуги для клиента на определённый период.
Зачем используются скидки?
- Удержание существующих клиентов
- Привлечение новых абонентов
- Поощрение лояльности
- Компенсация при жалобах
- Продвижение новых тарифов
Когда можно применять скидку?
✅ Можно:
- Клиент хочет уйти к конкуренту
- Клиент длительное время пользуется услугами
- Проводится акция по тарифу
- Клиент пожаловался на качество
- Клиент подключает несколько услуг
❌ Нельзя:
- Без согласования превышать лимит
- Применять к архивным тарифам
- Создавать скидку без основания
- Обещать клиенту невыполнимые условия
Виды скидок
| Тип |
Описание |
Пример |
| Процентная |
Снижение на X% |
30% от абонентской платы |
| Фиксированная |
Снижение на X тенге |
5 000 ₸ ежемесячно |
| Разовая |
Единовременное начисление |
Бонус за подключение |
Кто имеет право создавать скидку?
- Менеджер Call-центра: до 20%
- Старший менеджер: до 40%
- Руководитель отдела: до 60%
- Директор: без ограничений
📝 Мини-тест
Вопрос: Какой максимальный размер скидки может предложить менеджер Call-центра?
Ответ: 20% (смотрите таблицу полномочий выше)
`
},
{
id: 'lesson_02',
icon: '📝',
title: 'Как создать скидку',
description: 'Пошаговая инструкция по оформлению скидки',
duration: '15 мин',
content: `
Пошаговая инструкция: Создание скидки
1
Найдите клиента в системе
Введите ИИН/БИН или номер договора в поиске.
💡 Убедитесь, что клиент активен и не имеет блокировок
2
Выберите тариф для скидки
Перейдите в раздел "Тарифы клиента" и выберите активный тариф.
💡 Скидка применяется только к действующим тарифам
3
Нажмите "Добавить скидку"
Откроется форма создания скидки.
💡 Кнопка находится в карточке тарифа
4
Заполните поля формы
- Тип скидки: процентная или фиксированная
- Размер: числовое значение
- Срок действия: от 3 до 24 месяцев
- Основание: выберите из списка
💡 Все поля обязательны для заполнения
5
Проверьте данные
Перед сохранением убедитесь:
- Размер скидки в пределах вашего лимита
- Тариф поддерживает скидки
- Срок действия корректен
- Основание выбрано
6
Сохраните скидку
Нажмите "Создать скидку". Система проверит данные и применит скидку.
💡 После сохранения скидка отображается в карточке клиента
Типичные ошибки при создании
- ❌ Не выбрано основание — система не сохранит
- ❌ Превышен лимит — требуется согласование
- ❌ Неверный срок — используйте стандартные периоды
- ❌ Дублирование — проверьте активные скидки
`
},
{
id: 'lesson_03',
icon: '⚠️',
title: 'Типичные ошибки',
description: 'Разбор частых ошибок и способы их устранения',
duration: '12 мин',
content: `
Типичные ошибки и их решения
Ошибка 1: "Нет прав на создание скидки"
Причина: Вы пытаетесь создать скидку выше своего лимита.
Решение:
- Проверьте свой лимит полномочий
- Запросите согласование у руководителя
- Или уменьшите размер скидки
Ошибка 2: "Тариф не найден"
Причина: Тариф архивный или недоступен для скидок.
Решение:
- Проверьте статус тарифа в справочнике
- Предложите клиенту актуальный тариф
- Переведите клиента на новый тариф, затем примените скидку
Ошибка 3: "Дублирующая скидка"
Причина: На тарифе уже есть активная скидка.
Решение:
- Проверьте раздел "Активные скидки"
- Дождитесь окончания текущей скидки
- Или оформите продление вместо новой
Ошибка 4: "Недопустимый период"
Причина: Срок вне допустимого диапазона.
Решение:
- Минимальный срок: 3 месяца
- Максимальный срок: 24 месяца
- Используйте стандартные значения: 3, 6, 12, 24
Таблица: Коды ошибок
| Код |
Описание |
Действие |
| 403 |
Нет прав |
Согласование |
| TARIFF_NOT_FOUND |
Тариф не найден |
Проверить тариф |
| DISCOUNT_LIMIT |
Превышен лимит |
Уменьшить / согласовать |
| INVALID_PERIOD |
Неверный период |
Исправить срок |
`
},
{
id: 'lesson_04',
icon: '🎯',
title: 'Основания для скидки',
description: 'Какие основания указывать и когда',
duration: '8 мин',
content: `
Основания для предоставления скидки
Правильный выбор основания важен для отчётности и анализа эффективности скидок.
1. Лояльность клиента
Когда использовать:
- Клиент пользуется услугами более 1 года
- Нет жалоб и просрочек
- Клиент подключает дополнительные услуги
Максимальный размер: до 25%
2. Акция / Продвижение
Когда использовать:
- Официальная маркетинговая акция
- Запуск нового тарифа
- Сезонное предложение
Максимальный размер: до 40% (по условиям акции)
3. Жалоба клиента
Когда использовать:
- Клиент пожаловался на качество
- Были технические сбои
- Недовольство обслуживанием
Максимальный размер: до 50% (компенсация)
💡 Требуется указание номера жалобы
4. Удержание клиента
Когда использовать:
- Клиент заявил об уходе
- Получено заявление на расторжение
- Клиент сравнивает с конкурентами
Максимальный размер: до 60%
💡 Требуется согласование руководителя
5. Мультиуслуга
Когда использовать:
- Подключение 2+ услуг одновременно
- Переход на конвергентный тариф
Максимальный размер: до 30%
📝 Проверка знаний
Ситуация: Клиент хочет уйти к конкуренту из-за высокой цены. Какое основание выбрать?
Ответ: "Удержание клиента" — это максимальная скидка до 60%
`
}
],
// Инструкции
instructions: [
{
id: 'inst_01',
icon: '📋',
title: 'Создание процентной скидки',
category: 'Базовые операции',
steps: [
'Откройте карточку клиента',
'Перейдите на вкладку "Тарифы"',
'Выберите активный тариф',
'Нажмите кнопку "Добавить скидку"',
'Выберите тип "Процентная"',
'Укажите размер в процентах (например, 30)',
'Выберите срок действия (3/6/12/24 месяца)',
'Выберите основание из списка',
'Нажмите "Проверить" — система покажет итоговую сумму',
'Нажмите "Создать скидку"'
]
},
{
id: 'inst_02',
icon: '💰',
title: 'Создание фиксированной скидки',
category: 'Базовые операции',
steps: [
'Откройте карточку клиента',
'Перейдите на вкладку "Тарифы"',
'Выберите активный тариф',
'Нажмите кнопку "Добавить скидку"',
'Выберите тип "Фиксированная"',
'Укажите сумму в тенге (например, 5000)',
'Выберите срок действия',
'Выберите основание',
'Проверьте, что сумма не превышает абонентскую плату',
'Нажмите "Создать скидку"'
]
},
{
id: 'inst_03',
icon: '🔄',
title: 'Продление существующей скидки',
category: 'Работа с активными скидками',
steps: [
'Найдите клиента в системе',
'Откройте раздел "Активные скидки"',
'Найдите скидку для продления',
'Нажмите кнопку "Продлить"',
'Выберите новый срок действия',
'Проверьте, что основание актуально',
'Нажмите "Подтвердить продление"',
'Система создаст новую скидку со старой даты окончания'
]
},
{
id: 'inst_04',
icon: '❌',
title: 'Отмена / удаление скидки',
category: 'Работа с активными скидками',
steps: [
'Найдите клиента',
'Откройте "Активные скидки"',
'Выберите скидку для отмены',
'Нажмите "Отменить скидку"',
'Укажите причину отмены',
'Подтвердите операцию',
'Скидка будет отменена с текущей даты',
'Перерасчёт выполнится автоматически'
]
},
{
id: 'inst_05',
icon: '📊',
title: 'Проверка лимитов скидки',
category: 'Контроль',
steps: [
'Откройте свой профиль пользователя',
'Перейдите в раздел "Полномочия"',
'Найдите таблицу "Лимиты на скидки"',
'Определите свой максимальный процент',
'При создании скидки система автоматически проверит лимит',
'При превышении потребуется согласование'
]
},
{
id: 'inst_06',
icon: '📄',
title: 'Запрос согласования скидки',
category: 'Согласования',
steps: [
'При создании скидки с превышением лимита система предложит "Запросить согласование"',
'Нажмите эту кнопку',
'Заполните обоснование (почему нужна такая скидка)',
'Прикрепите документы при необходимости',
'Выберите руководителя для согласования',
'Отправьте запрос',
'Отслеживайте статус в разделе "Мои согласования"',
'После согласования скидка будет доступна для создания'
]
}
],
// FAQ
faq: [
{
id: 'faq_01',
question: 'Как создать скидку?',
answer: 'Откройте карточку клиента → Выберите тариф → Нажмите "Добавить скидку" → Заполните форму (тип, размер, срок, основание) → Проверьте данные → Нажмите "Создать". Подробная инструкция в разделе "Обучение" → "Как создать скидку".'
},
{
id: 'faq_02',
question: 'Почему скидка не применяется?',
answer: 'Возможные причины: 1) Превышен ваш лимит — запросите согласование; 2) Тариф не поддерживает скидки — выберите другой; 3) Уже есть активная скидка — дождитесь окончания или продлите; 4) Не заполнены обязательные поля — проверьте форму.'
},
{
id: 'faq_03',
question: 'Почему не отображается тариф?',
answer: 'Тариф может быть: 1) Архивным (выведен из эксплуатации); 2) Неактивным (истёк срок); 3) Недоступным для вашего региона. Проверьте статус тарифа в справочнике или предложите клиенту актуальные тарифы.'
},
{
id: 'faq_04',
question: 'Как изменить размер скидки?',
answer: 'Изменить активную скидку нельзя. Нужно: 1) Отменить текущую скидку; 2) Создать новую с нужным размером. Убедитесь, что новый размер в пределах вашего лимита.'
},
{
id: 'faq_05',
question: 'Какие поля обязательны?',
answer: 'Все поля формы обязательны: тип скидки, размер, срок действия, основание. Без заполнения любого из них система не сохранит скидку.'
},
{
id: 'faq_06',
question: 'Что делать, если появилась ошибка?',
answer: '1) Запишите код ошибки; 2) Откройте раздел "Ошибки" и найдите код; 3) Следуйте пошаговому решению; 4) Если не помогло — обратитесь в техподдержку (контакты указаны в карточке ошибки).'
},
{
id: 'faq_07',
question: 'Куда обращаться при технической ошибке?',
answer: 'При системных ошибках (код SYSTEM_ERROR, таймауты, сбои): 1) Повторите через 5 минут; 2) Очистите кэш браузера; 3) Если не помогло — helpdesk@kazakhtelecom.kz, внутренний номер 1111.'
},
{
id: 'faq_08',
question: 'Какой максимальный размер скидки я могу предложить?',
answer: 'Зависит от вашей роли: Менеджер Call-центра — до 20%; Старший менеджер — до 40%; Руководитель отдела — до 60%; Директор — без ограничений. Проверьте свои полномочия в профиле.'
},
{
id: 'faq_09',
question: 'Можно ли применить скидку к архивному тарифу?',
answer: 'Нет, к архивным тарифам скидки не применяются. Предложите клиенту перейти на актуальный тариф, затем примените скидку.'
},
{
id: 'faq_10',
question: 'Как проверить, какие скидки активны у клиента?',
answer: 'В карточке клиента откройте вкладку "Активные скидки". Там отображаются все действующие скидки с датами начала и окончания, размером и основанием.'
}
],
// Тесты
tests: [
{
id: 'test_main',
title: 'Готов к работе со скидками',
description: 'Итоговый тест по работе со скидками',
questions: [
{
question: 'Какое действие необходимо выполнить первым при создании скидки?',
answers: [
'Выбрать размер скидки',
'Найти клиента в системе',
'Сохранить заявку',
'Отправить клиенту'
],
correct: 1,
explanation: 'Первым шагом нужно найти клиента в системе по ИИН/БИН или номеру договора.'
},
{
question: 'Максимальный размер скидки для менеджера Call-центра:',
answers: ['10%', '20%', '30%', '40%'],
correct: 1,
explanation: 'Менеджер Call-центра может самостоятельно предлагать скидку до 20%.'
},
{
question: 'Минимальный срок действия скидки:',
answers: ['1 месяц', '3 месяца', '6 месяцев', '12 месяцев'],
correct: 1,
explanation: 'Минимальный срок действия скидки — 3 месяца.'
},
{
question: 'Что делать, если система выдаёт ошибку "Нет прав на создание скидки"?',
answers: [
'Повторить попытку',
'Запросить согласование у руководителя',
'Обратиться в техподдержку',
'Уменьшить размер скидки или запросить согласование'
],
correct: 3,
explanation: 'Нужно либо уменьшить размер скидки до своего лимита, либо запросить согласование.'
},
{
question: 'Какое основание выбрать, если клиент хочет уйти к конкуренту?',
answers: ['Лояльность', 'Акция', 'Удержание клиента', 'Жалоба'],
correct: 2,
explanation: '"Удержание клиента" — специальное основание для таких ситуаций, максимальная скидка до 60%.'
},
{
question: 'Можно ли изменить активную скидку?',
answers: ['Да, в любой момент', 'Нет, нужно отменить и создать новую', 'Только размер', 'Только срок'],
correct: 1,
explanation: 'Изменить активную скидку нельзя. Нужно отменить текущую и создать новую.'
},
{
question: 'Что означает ошибка TARIFF_NOT_FOUND?',
answers: [
'Неверный пароль',
'Тариф архивный или недоступен',
'Клиент не найден',
'Системный сбой'
],
correct: 1,
explanation: 'Эта ошибка означает, что выбранный тариф архивный или недоступен для скидок.'
},
{
question: 'Какое поле НЕ является обязательным при создании скидки?',
answers: ['Тип скидки', 'Размер', 'Основание', 'Все поля обязательны'],
correct: 3,
explanation: 'Все поля формы обязательны для заполнения.'
},
{
question: 'Максимальный срок действия скидки:',
answers: ['6 месяцев', '12 месяцев', '18 месяцев', '24 месяца'],
correct: 3,
explanation: 'Максимальный срок действия скидки — 24 месяца.'
},
{
question: 'Что делать при ошибке "Дублирующая скидка"?',
answers: [
'Создать новую скидку',
'Проверить активные скидки и дождаться окончания',
'Обратиться в техподдержку',
'Удалить клиента'
],
correct: 1,
explanation: 'Нужно проверить активные скидки клиента и дождаться окончания текущей или оформить продление.'
},
{
question: 'Какое основание даёт максимальный размер скидки?',
answers: ['Лояльность', 'Акция', 'Удержание клиента', 'Жалоба'],
correct: 2,
explanation: '"Удержание клиента" позволяет предложить скидку до 60%.'
},
{
question: 'Куда обращаться при системной ошибке SYSTEM_ERROR?',
answers: [
'Руководителю',
'В техподдержку (helpdesk@kazakhtelecom.kz, 1111)',
'Клиенту',
'В отдел кадров'
],
correct: 1,
explanation: 'При системных ошибках нужно обратиться в техподдержку.'
}
]
}
],
// Тарифы для калькулятора
tariffs: [
{ id: 't1', name: 'Интернет ЕШДИ 100', price: 5990 },
{ id: 't2', name: 'Интернет ЕШДИ 200', price: 7990 },
{ id: 't3', name: 'Интернет ЕШДИ 500', price: 10990 },
{ id: 't4', name: 'Домашний телефон + Интернет', price: 4990 },
{ id: 't5', name: 'Триколор (ТВ + Интернет + Телефон)', price: 8990 }
],
// Быстрые решения
quickSolutions: {
'not-created': {
title: 'Не создается скидка',
steps: [
'Проверьте, все ли обязательные поля заполнены (тип, размер, срок, основание)',
'Убедитесь, что размер скидки не превышает ваш лимит',
'Проверьте, что тариф активен и поддерживает скидки',
'Убедитесь, что нет активной скидки на этом тарифе',
'Проверьте срок действия (от 3 до 24 месяцев)'
],
contact: 'Если проблема не решена — раздел "Ошибки" или техподдержка 1111'
},
'error': {
title: 'Появилась ошибка',
steps: [
'Запишите код ошибки (например, 403, TARIFF_NOT_FOUND)',
'Откройте раздел "Ошибки" и найдите код',
'Следуйте пошаговому решению из карточки ошибки',
'Если ошибки нет в справочнике — используйте AI-помощника',
'При технической ошибке повторите через 5 минут'
],
contact: 'helpdesk@kazakhtelecom.kz'
},
'no-tariff': {
title: 'Не вижу нужный тариф',
steps: [
'Проверьте, активен ли тариф у клиента',
'Убедитесь, что тариф не архивный',
'Сверьте код тарифа с официальным каталогом',
'Проверьте доступность тарифа в вашем регионе',
'Предложите клиенту актуальные тарифы из каталога'
],
contact: 'Отдел продуктового маркетинга: 2222'
},
'cant-change': {
title: 'Не могу изменить скидку',
steps: [
'Активную скидку изменить нельзя',
'Отмените текущую скидку (раздел "Активные скидки")',
'Создайте новую скидку с нужными параметрами',
'Убедитесь, что новый размер в пределах лимита',
'Перерасчёт выполнится автоматически'
],
contact: null
},
'which-choose': {
title: 'Какую скидку выбрать',
steps: [
'Определите цель: удержание, лояльность, жалоба, акция',
'Проверьте свой лимит полномочий',
'Для удержания — до 60% (требует согласования)',
'Для лояльности — до 25%',
'При жалобе — до 50% (компенсация)',
'По акции — до 40% (по условиям акции)'
],
contact: null
},
'check-conditions': {
title: 'Проверить условия',
steps: [
'Откройте карточку клиента',
'Проверьте активные тарифы',
'Откройте "Активные скидки"',
'Убедитесь, что нет дублирующих скидок',
'Проверьте срок действия текущих скидок',
'Сверьте лимиты в своём профиле'
],
contact: null
}
}
};