Заменить категории на услуги в тарифах с типом «Услуги»

В старых версиях LANBilling в тарифах с типом «Услуги» можно было работать с категориями. В версии 2.0.31 мы убрали возможность добавлять новые категории, а в версии 2.0.37 — редактировать существующие. Система не удалит созданные категории — они будут отображаться в интерфейсе, но работать с ними не получится.

Вместо категорий нужно использовать услуги. Это более гибкий инструмент, с которым удобнее работать. Например, если услуга подорожает, вам не придётся создавать отдельную категорию. В этом случае можно просто задать для услуги новую стоимость. Подробнее про это можно прочитать в актуальной документации.

Вы можете проверить, есть ли категории в ваших активных тарифах с типом «Услуги». Для этого выполните запрос:

select t.descr,c.descr from categories c join tarifs t using(tar_id) where t.archive=0 and t.type=5 and c.cat_idx<>0 and c.archive=0 and t.used=1 limit 10;

Также вы можете проверить, назначены ли такие категории на действующие учётные записи. Для это выполните запрос:

select * from usbox_services where timeto>now() limit 10;

Все категории в тарифах с типом «Услуги» нужно заменить на услуги. Это можно сделать двумя способами: автоматически с помощью процедуры или вручную.

Автоматический способ

Чтобы автоматически заменить категории на услуги, воспользуйтесь процедурой usbox_to_services. Она совершает три последовательных действия.

  1. Создаёт услуги в каталоге.
  2. Добавляет эти услуги в тарифы вместо категорий.
  3. С определённой даты назначает эти услуги на учётные записи вместо категорий. При этом процедура не изменит категории, которые действовали на учётных записях до указанной даты.

Чтобы воспользоваться процедурой, выполните несколько шагов. Рекомендуем сначала скопировать вашу базу данных на тестовый сервер и пройти все шаги там. Если возникнут ошибки — обратитесь за помощью в техподдержку.

  1. Скачайте актуальный пакет модуля lbcore на client.lanbilling.ru. Распакуйте его.

    • Centos:

      mkdir /tmp/lbcore/
      cd /tmp/lbcore/
      rpm2cpio lbcore-2.0.*.rpm | cpio -idmv
      
      
      
    • Debian:

      dpkg --extract lbcore-2.0.*.deb /tmp/lbcore/
      
      
      
  2. Добавьте процедуру usbox_to_services в базу данных:

    mysql -uroot -p billing < /tmp/lbcore/usr/local/billing/mysql/tools/usbox_to_services.sql
    

    ``

  3. Запустите процедуру и укажите дату в формате гггг-мм-01 00:00:00. Это должна быть дата начала следующего отчётного периода — с этого дня система заменит категории на дополнительные услуги в учётных записях. Чтобы запустить процедуру, выполните команду:

    call usbox_to_services('гггг-мм-01 00:00:00');
    

    ``

Убедитесь, что процедура завершилась успешно — проверьте созданные услуги. После этого старые категории можно отправить в архив, чтобы они не отображались в административном интерфейсе. Для это выполните команду:

update categories c join tarifs t using(tar_id) set c.archive = 1 where t.type = 5;

Ручной способ

Сначала нужно создать услуги в каталоге.

  1. Перейдите в раздел «Свойства» — «Тарификация» — «Каталоги». Создайте каталог с типом «Услуги».

  2. Дополнительно можно создать тип услуги. Он влияет на то, в каких, в каких тарифах будут отображаться услуги этого типа. Спосок доступных тарифов нужно указать в поле «Область видимости».

  3. Создайте услугу в каталоге. Введите описание, выберите тип услуги, и укажите тип списаний — разовая или периодическая. Таким образом добавьте все услуги.

Далее нужно добавить услуги в тарифные планы.

  1. Перейдите в раздел «Свойства» — «Тарификация» — «Тарифы». Откройте тариф и перейдите на вкладку «Категории». Кликните «Действия» и выберите «Добавить дополнительную услугу».

  2. Заполните данные.

    • Выберите каталог и услугу.
    • Для периодических услуг укажите тип списаний: ежедневно, ежемесячно или раз в несколько месяцев.
    • Выберите тип услуги: основная или дополнительная. Это влияет на поведение системы, когда у абонента недостаточно средств на оплату. Если услуга основная, то при нехватке средств будет заблокирована вся учётная запись. Если дополнительная — то будет заблокирована только услуга.
  3. Нажмите «Сохранить». Таким образом добавьте в тарифные планы остальные услуги.

После этого услуги из тарифных планов можно назначать на учётные записи.