Модуль Тарифы
Возможности
Данные компонент реализует универсальную систему тарифов для пользователей системы.
Компонент тарифов позволяет быстро внедрить в систему возможность создания для пользователей тарифных планов:
- Создание тарифа
- Создание опций для тарифов
- Возможность задать индивидуальное значение для опций каждого тарифа
Предполагается настройка системы под учет спецификаций тарифных планов индивидуально под каждый проект.
Основные объекты
Таблицы БД:
- as_trf_tariffs
- as_trf_tariffOptions
- as_trf_tariffOptionValues
- as_trf_tariffLog
ХП и функции в бд:
- trf_cahngeUserTariff (sp)
- trf_getUserTariffOptionValue (f)
- trf_getUserTariffDeadline (f)
- trf_deadlineNotificationUsers (sp)
Компоненты (страницы, таблицы и формы)
- страницы
- /tariffs - страница управления тарифами
- Таблицы
- tariffManagement - главная таблица управления тарифами. Роли: администратор.
- tariffOptions - модальная таблица управления опциями тарифов. Роли: администратор.
- tariffOptionValues - таблица управления значениями опций для тарифа. Роли: администратор.
- tariffUsers - информ-я таблица с пользователями тарифа. Роли: администратор.
- Формы
- tariffOptions - под-форма управления параметрами тарифа в таблице Роли: администратор.
- setTariffOptionValue - поповер-форма установки значения опции тарифа. Роли: администратор.
- tariffInfo - форма с информацией по текущему тарифу. Роли: пользователь, администратор.
- changeTariff - форма смены тарифа с информацией по имеющимся тарифным планам. Роли: пользователь, администратор.
Зависимости со стандартными компонентами Falcon
- Для работы компонента необходимо в таблицу as_users добавить поля:
- tariffID int null, с внешним ключом на id as_trf_tariffs
- tariffDeadline date null
- Также в as_settings можно добавить настройку tariffDaysLeftNotification - число дней, за которое будет уведомлен пользователь (на информационной панели в ЛК - форма tariffInfo) об окончании тарифа. По умолчанию это значение берется за 5 дней.
- Также компонент связан с системой финансов: fin_accounts, fin_finances, fin_financeStatuses, fin_financeStatusLog
Ключевые функции и процедуры
trf_changeUserTariff
Процедура установки/смены тарифа.
На входе:
- @username nvarchar - кому устанавливаем тариф
- @tariffID int - какой устанавливаем тариф
- @period int - на какой период (месяцев) устанавливаем тариф, может принимать только значения 0, 1, 6, 12, 36, т.к. от этого параметра зависит устанавливаемая цена (в таблице as_trf_tariffs price, price6, price12, price36 соответственно).
Если передан 0, то тариф устанавливается без дедлайна, т.е. навсегда (например, при регистрации можно таким образом установить дефолтный бесплатный тариф).
На выходе:
- result, msg
Процедура проверяет если на счету достаточно средств для перехода на тариф, то выполняет соответствующие финансовые операции, в противном случае пользователь оповещается о недостаточном балансе.
trf_getUserTariffOptionValue
Функция возвращает значение опции для юзера на определенном тарифе.
На входе:
- @username nvarchar - пользователь для которого хотим узнать значение опции
- @optionCode nvarchar - код опции
На выходе получаем @value - строковое значение опции.
trf_getUserTariffDeadline
Функция возвращает дату окончания тарифа для юзера в формате yyyy-mm-dd.
На входе @username nvarchar, @deadline в формате date.
trf_deadlineNotificationUsers
Процедура возвращает список пользователей, у которых приближается срок окончания тарифа.
На входе:
- @days int - количество дней до дедлайна
На выходе таблица (username nvarchar(128), tariffID int, deysLeft int, deadline date).
Можно использовать в периодических процедурах для оповещения пользователей об окончании тарифа.
Как внедрить компонент
- Берем все необходимые объекты с системы Аукцион и переносим в решение.
- На странице управления тарифами (/tariffs - под админом) создаем тарифы и опции.
- Заполняем данные по тарифам: описание, цены (если у тарифа не указано ни одной цены, то он считается бесплатным, в противном случае система потребует указать цены для всех периодов), указываем значение опций для тарифа. Есть возможность отключения тарифов и опций. Отключенные тарифы недоступны для выбора.
- Вносим изменения в бизнес-логику проекта для учета тарифов. Чтобы узнать значение опции для текущего пользователя - вызываем функцию trf_getUserTariffOptionValue и передаем в нее username и optionCode.
- В кабинет пользователя выводим информационную форму тарифа (tariffInfo). В ней отображена информация о текущем тарифе, сроке окончания и кнопка смены тарифа.
Другие модули
SQL-инструмент для создания личных кабинетов на сайте
Выгода от использования Falcon Space
В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности
Веб-приложения на MS SQL. Партнерская программа для разработчиков и веб-студий
Документация по платформе
NOTE! Модули, представленные в данном каталоге не являются частью ядра платформы. Это микрорешения, сделанные на базе платформы.
Модули не предполагают автоматического обновления. Развитие, доработка модулей, исправление возможных ошибок/коллизий не входит в стоимость платформы.
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта