====== Дополнительные услуги ======
Дополнительные услуги вводились в биллиг с целью удовлетворить множественные потребности оказания услуг различных уровней и комплектаций.
В данный момент можно привязать доп. услугу к определённым тарифам, указать заложенные условия срабатывания и тип услуги. Такие услуги считаются "базовыми", т.е. их наследуют все абоненты от тарифа, а затем уже "отсеиваются" с помощью условий.
===== Справочник доп. услуг =====
Найти его можно в интерфейсе админки по адресу "настройки" -> "справочники" -> "дополнительные услуги":
\\ {{:mikbill:services:add_services_reference.png?nolink&|}}
===== Настройка доп. услуг =====
{{:mikbill:services:add_services_pref.png?nolink&|}}
^ № ^ Название ^ Назначение ^
| 1 | Имя | Название доп. услуги. Будет отображаться в отчётах |
| 2 | Цена | Сумма, которая будет начисляться/снимать с абонента (единоразовое списание) |
| 3 | Период | Как часто будет активироваться услуга |
| 4 | Вид фактической услуги | Направление движения средств: +/- |
| 5 | Условие срабатывания | Можно выбрать условие, при выполнении которого будет выполнятся доп. услуга над абонентом |
| 6 | Группы абонентов | Те группы абонентов, на которых распространяется услуга |
| 7 | Описание | Внутреннее описание доп. услуги для ориентации среди них |
| 8 | Приостановлена | Можно на время приостановить доп. услугу без её удаления и открепления её от тарифов |
| 9 | Таблица тарифов | Можно выбрать тарифы, к которым будет прикреплена доп. услуга (абоненты) |
| 10 | Фильтр тарифов | Можно быстро найти необходимый тариф |
Также можно со стороны настроек тарифа привязать доп. услуги:
\\ {{:mikbill:services:packet_add_services.png?nolink&|}}
==== Консольные команды ====
Начиная с 2.10.7 ничего никуда прописывать не нужно
==== Период ====
* Месячный (первого числа) - доп. услуга отрабатывает один раз в месяц - первого числа (на самом деле зависит от того, когда запускается скрипт по крону)
* Суточный - доп. услуга начисляет/списывает средства с абонента при каждом запуске (рекомендуется вызывать по крону каждый день)
==== Вид услуги ====
* Абон. плата - снимает средства с депозита абонента
* Акция/подарок - начисляет средства на депозит абонента
==== Условие срабатывания ====
* Безусловное (всегда) - срабатывает каждый раз
* Положительный баланс и интернет включен - срабатывает только на пользователях, у которых: положительный баланс и включен интернет
* Отрицательный баланс или интернет выключен - срабатывает только на пользователях, у которых: отрицательный баланс (депозит + лимит < 0) или отключен интернет
=== Настраиваемые условия ===
В ближайшее время будут доступны настраиваемые условия, т.е. Вы сами сможете задать критерии, по которым абонентам начислять/списывать сумму на депозит. Будут они построены на основе SQL-запросов, будут их примеры. Также думаем, что пользователи будут делиться своими запросами, дабы помочь сообществу.
\\ Тема на форуме:
==== Фильтр тарифов ====
Если указать 'true' (без кавычек), то отобразятся только те тарифы, которые прикреплены к этой услуге (и те, у которые в названии содержат 'true').
\\ Если указать 'false' (без кавычек), то отобразятся только те тарифы, которые не прикреплены к этой услуге (и те, у которые в названии содержат 'false').
===== Отчёты =====
С версии 2.7.19 появилась возможность активировать логирование пополнений/списаний с абонентов а таблицу платежей (помимо таблиц услуг и дополнительных услуг). При занесении в таблицу платежей записи делятся на 2 типа:
- Дополнительные услуги - пополнение абонента
- Дополнительные услуги - списание с абонента
В поле "комментарий" попадает название доп. услуги из справочника. Пример:
\\ {{ :mikbill:services:additional_services_payments.png?direct&600 |}}
Настройка в системных опциях (услуги -> "дополнительные услуги"):
\\ {{:mikbill:services:add_services_log_to_payments_sys_opts.png?nolink&|}}
Отчёт во вкладке услуги в админ. панели:
===== Примеры использования =====
==== аренда порта ====
Арена порта: всем активным абонентам (обычный, замороженный) тарифа "Тестовый", у которых на счету (депозит с учётом лимита) меньше нуля или заблокирован интернет - списываем каждый день "аренду порта".
\\ {{:mikbill:services:add_service_port_rent.png?nolink&|}}
===== Настраиваемые условия =====
В "настраиваемых условиях" текст кода нужно писать с учётом того, что мы находимся в одной из 4-х таблиц или во всех по очереди, в зависимости от выбранной группы пользователей:
\\ ''users, usersfreeze, usersblok, usersdel''
Условие нужно начинать с 'AND', т.к. до этого идут системные условия.
Попробовать составить и проверить условие можно в удобном Вам редакторе (phpMyAdmin, dbForge, adminer):
- Берём тестового пользователя (например, uid = 1)
- Наделяем его необходимыми свойствами (день рождение в текущем месяце)
- Создаём SQL запрос и получаем этого пользователя ( ''SELECT uid, MONTH(date_birth) FROM users WHERE MONTH(date_birth) = MONTH(NOW())'' )
Таким образом можно связать всевозможными способами несколько таблиц с таблицей пользователей.
=== Подарок в месяц, когда день рождения абонента ===
Видно, что нужно использовать следующие параметры:
* ежемесячная услуга
* подарок
* "настраиваемое условие"
* состояния: обычный, заморожен
* собственное SQL-условие
Условие в услуге (SQL):
AND MONTH(`date_birth`) = MONTH(NOW())
{{:mikbill:services:add_services_birthday.png?direct&400|}}
=== Подарок каждый месяц, если платит вовремя ===
{{:mikbill:services:82b86240bb.png?direct&600|}}