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

Возможности

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

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

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

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

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

Таблицы БД:

  • 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

Это снижение стоимости владения

за счет меньшего количества людей для поддержки

Это быстрое внесение изменений

по ходу эксплуатации программы

Это современный интерфейс

полная адаптация под мобильные устройства

Веб-приложения на чистом MS SQL. Обучение разработке на Falcon Space

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