Модуль notifier

Материал из Felix2
Перейти к: навигация, поиск


Создает автоматически уведомления для абонентов, которые потом передаются различными транспортными модулями (например, sms_sender).


На текущий момент обрабатываются следующие события:

  1. Пополнение счета (Уведомление формируется в момент пополнения счета). Обработчик: notifier.set_deposit
  2. Необходимость пополнить баланс за N дней до окончания платежа, если на счету недостаточно средств для следующего платежа по тарифному плану. В сообщении указывается номер договора, сумма, на которую необходимо пополнить счет, и срок окончания действия платежа. Обработчик: notifier.update
  3. Создание/редактирование заказ-наряда. Обработчик: notifier.set_ticket

Уведомления о необходимости пополнения баланса формируются и приходят абонентам только в заданный временной диапазон (по умолчанию с 10 до 22). Уведомления о пополнении баланса формируются и приходят абонентам в момент пополнения баланса.


Параметры конфигурации модуля:

  • notify_period_start – начало временного диапазона рассылки [часы] (по умолчанию: 10)
  • notify_period_end – конец временного диапазона рассылки [часы] (по умолчанию: 22)
  • delivery_type – тип доставки уведомления (по умолчанию: 5 (клиент авторизации + SMS)). Поддерживаются следующие типы доставки:
    1. Оповещение через клиент авторизации (значение - 1)
    2. Доставка посредством EMail (значение - 2)
    3. Доставка посредством SMS (значение - 4)
    Можно указывать сразу несколько типов доставки, объединяя значения через логическое «И».
  • integer_sum – этот флаг задает округление сумм до целых чисел (до рублей) (по умолчанию: 1). Если установить значение флага в 0, в уведомлениях будут указываться суммы с точностью до сотых (с точностью до копеек).
  • notify_times – время отправки уведомления (в часах) до даты X (по умолчанию 24,48,72).
  • msg_set_deposit – переопределение текста уведомления, отправляемого пользователю по пополнении счета.
  • msg_need_to_pay – переопределение текста автоматического напоминания, отправляемого пользователю при необходимости пополнения счета.
  • <set_ticket> - определение текста автоматических уведомлений от системы учета заявок (bl_crm).
    • <message> - определение параметров конкретного уведомления.
      • ticket_type_id - идентификатор типа заказ-наряда.
      • action - состояние заказ-наряда для данного уведомления: new - создание нового заказ-наряда, edit - редактирование данных заказ-наряда.
      • text - текст уведомления.

Пример конфигурации:

    <module name="notifier" file="modules/notifier.so" />
    ...
    <scheduler>
         ...
         <entry cmd="notifier.update" period="60 sec" start_delay="2 sec" />
         ...
    </scheduler>
    ...
    <hook cmd="bl_basic.set_deposit"
        handlers="notifier.set_deposit"
        type="after" />
    <hook   cmd="bl_crm.set_ticket"
        handlers="notifier.set_ticket"
        type="after" />
    ...
    <notifier
        notify_times="120 48"
        notify_period_start="10"
        notify_period_end="21"

        msg_set_deposit= "Баланс Вашего счета пополнен на ${sum} руб. Благодарим Вас за оплату наших услуг!"
        msg_need_to_pay= 'Уважаемый абонент, просьба оплатить "Доступ в Интернет" до ${date}. Номер Вашего договора: ${contract}.\nСумма к оплате: ${sum} руб.'
    >
        <set_ticket>
            <message ticket_type_id="2011" action="new" text="Подключение к сети Example.NET по заявке № ${document_id} запланировано на ${date} ${time}. Благодарим Вас, что выбрали нашу компанию! Example.NET, +7(000)0000000" />
            <message ticket_type_id="2011" action="edit" text="Подключение к сети Example.NET по заявке № ${document_id} перенесено на ${date} ${time}. Благодарим Вас, что выбрали нашу компанию! Example.NET, +7(000)0000000" />
            <message ticket_type_id="2012" action="new" text="Подключение к сети Example.NET (настройка, подписание договора) по заявке № ${document_id} запланировано на ${date} ${time}. Благодарим Вас, что выбрали нашу компанию! Example.NET, +7(000)0000000" />
            <message ticket_type_id="2012" action="edit" text="Подключение к сети Example.NET (настройка,подписание договора) по заявке № ${document_id} перенесено на ${date} ${time}. Благодарим Вас, что выбрали нашу компанию! Example.NET, +7(000)0000000" />
            <message ticket_type_id="2013" action="new" text="Ремонтные работы по заявке № ${document_id} запланированы на ${date} ${time}. Благодарим Вас, что выбрали нашу компанию! Example.NET, +7(000)0000000" />
            <message ticket_type_id="2013" action="edit" text="Ремонтные работы по заявке № ${document_id} перенесены на ${date} ${time}. Благодарим Вас, что выбрали нашу компанию! Example.NET, +7(000)0000000" />
        </set_ticket>
    </notifier>

В данном примере проверка необходимости пополнения баланса (notifier.update) выполняется раз в минуту для всех абонентов.
Уведомления о необходимости пополнения счета формируются за 5 и 2 дня до окончания платежа.
Уведомления отправляются только в интервале с 10:00 до 21:00 (Если, например, платеж заканчивается через 3 дня в 3 часа ночи, то уведомление будет отправлено абоненту не в 3 часа ночи, а в 10 часов утра).
Также установлен «пост-обработчик» для команды (bl_basic.set_deposit), формирующий уведомление о пополнение счета.

Установлен «пост-обработчик» для команды (bl_crm.set_ticket), обрабатывающий изменение состояния заказ-наряда.
В разделе <set_ticket> определены уведомления для системы учета заявок.