Модуль Тарифы

Возможности

Данные компонент реализует универсальную систему тарифов для пользователей системы.

Компонент тарифов позволяет быстро внедрить в систему возможность создания для пользователей тарифных планов:

  • Создание тарифа
  • Создание опций для тарифов
  • Возможность задать индивидуальное значение для опций каждого тарифа

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

Основные объекты

Таблицы БД:

  • 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

Процедура установки/смены тарифа.

https://pastebin.com/rT9hKPUW

На входе:

  • @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).

Можно использовать в периодических процедурах для оповещения пользователей об окончании тарифа.

Как внедрить компонент

  1. Берем все необходимые объекты с системы Аукцион и переносим в решение.
  2. На странице управления тарифами (/tariffs - под админом) создаем тарифы и опции.
  3. Заполняем данные по тарифам: описание, цены (если у тарифа не указано ни одной цены, то он считается бесплатным, в противном случае система потребует указать цены для всех периодов), указываем значение опций для тарифа. Есть возможность отключения тарифов и опций. Отключенные тарифы недоступны для выбора.
  4. Вносим изменения в бизнес-логику проекта для учета тарифов. Чтобы узнать значение опции для текущего пользователя - вызываем функцию trf_getUserTariffOptionValue и передаем в нее username и optionCode.
  5. В кабинет пользователя выводим информационную форму тарифа (tariffInfo). В ней отображена информация о текущем тарифе, сроке окончания и кнопка смены тарифа.

 

Другие модули

SQL-инструмент для создания личных кабинетов на сайте

Суть подхода и история создания Falcon Space

Выгода от использования Falcon Space

В 2-3 раза экономнее и быстрее, чем заказная разработка
Более гибкая, чем коробочные решения и облачные сервисы
Используйте готовые решения и изменяйте под свои потребности

Веб-приложения на MS SQL. Партнерская программа для разработчиков и веб-студий

Вы можете разрабатывать самостоятельно или сотрудничать с нами в плане веб-разработки на платформе Falcon Space, используя только SQL и HTML.
Смотреть примеры с кодом SQL
Документация по платформе
Работа на MS SQL Server
NOTE! Модули, представленные в данном каталоге не являются частью ядра платформы. Это микрорешения, сделанные на базе платформы.
Модули не предполагают автоматического обновления. Развитие, доработка модулей, исправление возможных ошибок/коллизий не входит в стоимость платформы.
Нужна бесплатная консультация?
Получить оценку проекта
Создайте концепцию проекта на основе нашего шаблона и получите оценку проекта в виде КП.
Демо-сайт решений
Базисные решения, которые можно гибко адаптировать под себя: менять внешний вид, бизнес-логику и даже структуру базы данных.
Сайт использует Cookie. Правила конфиденциальности OK