====== Дополнительные услуги ====== Дополнительные услуги вводились в биллиг с целью удовлетворить множественные потребности оказания услуг различных уровней и комплектаций. В данный момент можно привязать доп. услугу к определённым тарифам, указать заложенные условия срабатывания и тип услуги. Такие услуги считаются "базовыми", т.е. их наследуют все абоненты от тарифа, а затем уже "отсеиваются" с помощью условий. ===== Справочник доп. услуг ===== Найти его можно в интерфейсе админки по адресу "настройки" -> "справочники" -> "дополнительные услуги": \\ {{: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|}}