// === БАЗА ЗНАНИЙ === // Центральный источник данных для всего приложения 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% (смотрите таблицу полномочий выше)

` }, { id: 'lesson_02', icon: '📝', title: 'Как создать скидку', description: 'Пошаговая инструкция по оформлению скидки', duration: '15 мин', content: `

Пошаговая инструкция: Создание скидки

1

Найдите клиента в системе

Введите ИИН/БИН или номер договора в поиске.

💡 Убедитесь, что клиент активен и не имеет блокировок
2

Выберите тариф для скидки

Перейдите в раздел "Тарифы клиента" и выберите активный тариф.

💡 Скидка применяется только к действующим тарифам
3

Нажмите "Добавить скидку"

Откроется форма создания скидки.

💡 Кнопка находится в карточке тарифа
4

Заполните поля формы

💡 Все поля обязательны для заполнения
5

Проверьте данные

Перед сохранением убедитесь:

6

Сохраните скидку

Нажмите "Создать скидку". Система проверит данные и применит скидку.

💡 После сохранения скидка отображается в карточке клиента

Типичные ошибки при создании

` }, { id: 'lesson_03', icon: '⚠️', title: 'Типичные ошибки', description: 'Разбор частых ошибок и способы их устранения', duration: '12 мин', content: `

Типичные ошибки и их решения

Ошибка 1: "Нет прав на создание скидки"

Причина: Вы пытаетесь создать скидку выше своего лимита.

Решение:

  1. Проверьте свой лимит полномочий
  2. Запросите согласование у руководителя
  3. Или уменьшите размер скидки

Ошибка 2: "Тариф не найден"

Причина: Тариф архивный или недоступен для скидок.

Решение:

  1. Проверьте статус тарифа в справочнике
  2. Предложите клиенту актуальный тариф
  3. Переведите клиента на новый тариф, затем примените скидку

Ошибка 3: "Дублирующая скидка"

Причина: На тарифе уже есть активная скидка.

Решение:

  1. Проверьте раздел "Активные скидки"
  2. Дождитесь окончания текущей скидки
  3. Или оформите продление вместо новой

Ошибка 4: "Недопустимый период"

Причина: Срок вне допустимого диапазона.

Решение:

  1. Минимальный срок: 3 месяца
  2. Максимальный срок: 24 месяца
  3. Используйте стандартные значения: 3, 6, 12, 24

Таблица: Коды ошибок

Код Описание Действие
403 Нет прав Согласование
TARIFF_NOT_FOUND Тариф не найден Проверить тариф
DISCOUNT_LIMIT Превышен лимит Уменьшить / согласовать
INVALID_PERIOD Неверный период Исправить срок
` }, { id: 'lesson_04', icon: '🎯', title: 'Основания для скидки', description: 'Какие основания указывать и когда', duration: '8 мин', content: `

Основания для предоставления скидки

Правильный выбор основания важен для отчётности и анализа эффективности скидок.

1. Лояльность клиента

Когда использовать:

Максимальный размер: до 25%

2. Акция / Продвижение

Когда использовать:

Максимальный размер: до 40% (по условиям акции)

3. Жалоба клиента

Когда использовать:

Максимальный размер: до 50% (компенсация)

💡 Требуется указание номера жалобы

4. Удержание клиента

Когда использовать:

Максимальный размер: до 60%

💡 Требуется согласование руководителя

5. Мультиуслуга

Когда использовать:

Максимальный размер: до 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 } } };