Процесс Проставление Маркера для скидки

Script: ru.bgcrm.plugin.ufanet.promotion.listener.PromotionProcessListener

Описание

Маркер - тарифная опция.

Маркет на договор можно проставить через процесс.

Процесс создать можно с контрагента, договора. Начальный статус “Открыт”. Создатель процесса станет его инициатором.

Также процесс можно создать связанным от другого процесса.

Инструкция по проставлению маркеров

При создании процесса, требуется привязать договор(ы) и контрагента.

После создания нужно выбрать навешиваемый маркер. После этого процесс можно перевести в статус "Принят". Процесс выведет все несовместимости по договорам контрагента в описании процесса.

В процессе можно настроить оповещение клиенту. Оповещение отправляется при переводе процесса в статус "Закрыт".

Закрытие процесса, активирует маркер на договоре.

Конфигурация маркеров

Добавление маркеров производится в конфигурации типа процесса.

Проверить заполнение конфигурации можно при создании процесса. Проверка выведет ошибку с полным описанием ошибки конфигурации и ID маркера
# Наименование акции
# Пример
# promotion.1.title=Скидка 20% при оплате за 3 месяца
#
promotion.<n>.title=

# Поддерживаемый биллинги (ID биллингов через запятую) (Обязательный параметр)
# Если не указано, то проверка производиться не будет
# По-умолчанию rb
# Пример
# promotion.1.billings=rb
#
promotion.<n>.billings=

# Категория абонентов (Обязательный параметр)
# fl - физические лица
# ul - юридические лица
# По-умолчанию fl
# Пример
# promotion.1.face=fl
#
promotion.<n>.face=

# Дата начала акции (в формате yyyy-MM-dd)
# Использовать, для планирования акций в будущем
# Если не указано, проверка производиться не будет
# По-умолчанию, проверка не производится
# Пример
# promotion.1.startDate=2022-10-01
#
promotion.<n>.startDate=

# Дата окончания акции, т.е. дата, после которой будет запрещено использовать процесс для данной акции (в формате yyyy-MM-dd)
# Если не указано, акция считается бессрочной
# По-умолчанию, акция бессрочная
# Пример
# promotion.1.endDate=2023-01-01
#
promotion.<n>.endDate=

# Множитель акционной суммы (число от 0 до 1) (Обязательный параметр)
# Пример
# promotion.<n>.multiplier=0.8 //Скидка 20%
#
promotion.<n>.multiplier=

# Период оплаты для активации акции в месяцах (Обязательный параметр)
# Пример
# promotion.1.paymentPeriod=3 // 3 месяца
#
promotion.<n>.paymentPeriod=

# Период действия маркера акции в месяцах
# Пример
# promotion.1.promotionPeriod=1 // 1 месяц
#
promotion.<n>.promotionPeriod=

# Фиксированная дата окончания маркера
# Пример
# promotion.1.markerEndDate=2022-10-29
#
promotion.<n>.markerEndDate=

# ID тарифной опции маркера акции (Обязательный параметр для каждого биллинга указанного в параметре promotion.<n>.billings)
# Пример:
# promotion.1.markerOptionId.rb=1
# promotion.1.markerOptionId.ds=2
#
promotion.<n>.markerOptionId.<billingId>=

# ID режима активации тарифной опции маркера акции (Обязательный параметр для каждого биллинга указанного в параметре promotion.<n>.billings)
# Пример:
# promotion.1.markerModeId.rb=1
# promotion.1.markerModeId.ds=2
#
promotion.<n>.markerModeId.<billingId>=

# ID тарифной опции скидки (Обязательный параметр для каждого биллинга указанного в параметре promotion.<n>.billings)
# Пример:
# promotion.1.discountOptionId.rb=1
# promotion.1.discountOptionId.ds=2
#
promotion.<n>.discountOptionId.<billingId>=

# ID режима активации тарифной опции скидки (Обязательный параметр для каждого биллинга указанного в параметре promotion.<n>.billings)
# Пример:
# promotion.1.discountModeId.rb=1
# promotion.1.discountModeId.ds=2
#
promotion.<n>.discountModeId.<billingId>=

# Текст сообщения для уведомления абонента
# Для создания динамических текстов можно использовать инструмент шаблонов
# Для использования шаблонов достаточно использовать знаки @ и ключ
# Доступные ключи:
# @customerName - Имя контрагента
# @balance - Баланс договора
# @recsum - Рекомендуемая к оплате сумма
# @cost - Сколько должно быть денег на балансе
# @contractId - ID договора
# @percentage - Процент скидки
# @contractTitle - Номер договора
#
# Пример
# promotion.1.notifyText=Для получения скидки @percentage, нужно пополнить договор @contractTitle на @recsum
#
# Что придет абоненту
# "Для получения скидки 20%, нужно пополнить договор 71234567 на 100.00 руб"
#
promotion.<n>.notifyText=

# Необходимость проверки наличия участия в акции в прошлом
# По-умолчанию false
# Пример
# promotion.1.checkParticipation=false
#
promotion.<n>.checkParticipation=

# Необходимость проверки населенного пункта для акции
# Если не указана, любой населенный пункт подходит
# По-умолчанию пуст
# Пример
# promotion.1.cityIds=1,2
#
promotion.<n>.cityIds=

# Необходимость проверки улиц для акции
# Если не указана, любая улица подходит
# По-умолчанию пуст
# Пример
# promotion.1.streetIds=100,102
#
promotion.<n>.streetIds=

# Необходимость проверки домов для акции
# Если не указан, любой дом подходит
# По-умолчанию пуст
# Пример
# promotion.1.houseIds=1234,1235
#
promotion.<n>.houseIds=

# Необходимость проверки типа жилого здания
# Если не указан, любой тип жилого здания подходит
# По-умолчанию не указан
#
# 5=Медь клиенту (FTTB - AON)
# 7=Медь клиенту (FTTB-PON)
# 2=Оптика клиенту (FTTH - AON)
# 1=Оптика клиенту (FTTH - PON)
# 6=Wi-Fi
# 4=Radio
#
# Пример
# promotion.1.buildTypes=1,2
promotion.<n>.buildTypes=

# Совместимые тарифные планы (ID тарифных планов через запятую)
# Если не указано - совместимы все тарифы, за исключением тарифов из incompatibleTariffs
# По-умолчанию совместимы все тарифы
# Пример
# promotion.1.compatible.rb.tariffs=1,2
# promotion.1.compatible.ds.tariffs=3,4
#
promotion.<n>.compatible.<billingId>.tariffs=

# Несовместимые тарифные планы (ID тарифных планов через запятую)
# Если не указано - несовместимых тарифов нет
# По-умолчанию несовместимых тарифов нет
# Пример
# promotion.1.incompatible.rb.tariffs=1,2
# promotion.1.incompatible.ds.tariffs=3,4
#
promotion.<n>.incompatible.<billingId>.tariffs=

# Совместимые акции (ID тарифных опций через запятую)
# Если не указано - совместимы все акции, за исключением акций из incompatiblePromotions
# По-умолчанию совместимы все акции
# Пример
# promotion.1.compatible.rb.promotions=1,2
# promotion.1.compatible.ds.promotions=3,4
#
promotion.<n>.compatible.<billingId>.promotions=

# Несовместимые акции (ID тарифных опций через запятую)
# Если не указано - несовместимых акций нет
# По-умолчанию несовместимых акций нет
# Пример
# promotion.1.incompatible.rb.promotions=1,2
# promotion.1.incompatible.ds.promotions=3,4
#
promotion.<n>.incompatible.<billingId>.promotions=

# Совместимые услуги (перечисление типов услуг через запятую)
# Если не указано - совместимы все услуги, за исключением услуг из incompatibleServices
# По-умолчанию совместимы все услуги
# Пример
# promotion.1.compatibleServices=INET,CTV
#
promotion.<n>.compatibleServices=

# Несовместимые услуги (перечисление типов услуг через запятую)
# Если не указано - несовместимых услуг нет
# По-умолчанию несовместимых услуг нет
# Пример
# promotion.1.incompatibleServices=CCTV
#
promotion.<n>.incompatibleServices=

# Совместимые подписки (описание id подписок с использованием модулей)
# Если не указано - совместимы все подписки
# По-умолчанию совместимы все подписки
# Id подписок нужно указывать через запятую в параметре: productIds ИЛИ servicesIds (Только 1 на выбор)
# При полной совместимости всех услуг модуля нужно указать "*" в параметре productIds или serviceIds
#
# Пример
# promotion.1.compatible.rb.subscription.1.module=tv
# promotion.1.compatible.rb.subscription.1.mid=33
# promotion.1.compatible.rb.subscription.1.productIds=*
#
# promotion.1.compatible.rb.subscription.2.module=npay
# promotion.1.compatible.rb.subscription.2.mid=123456
# promotion.1.compatible.rb.subscription.2.productIds=12345,12346
#
promotion.<n>.compatible.<billingId>.subscription.<k>.module=
promotion.<n>.compatible.<billingId>.subscription.<k>.mid=
promotion.<n>.compatible.<billingId>.subscription.<k>.productIds=
promotion.<n>.compatible.<billingId>.subscription.<k>.serviceIds=

# Несовместимые подписки (описание id подписок с использованием модулей)
# Если не указано - несовместимых подписок нет
# По-умолчанию несовместимых подписок нет
# Id подписок нужно указывать через запятую в параметре: productIds ИЛИ servicesIds (Только 1 на выбор)
# При несовместимости всех услуг модуля нужно указать "*" в параметре productIds или serviceIds
# Пример
# promotion.1.incompatible.rb.subscription.1.module=tv
# promotion.1.incompatible.rb.subscription.1.mid=33
# promotion.1.incompatible.rb.subscription.1.productIds=7
#
# promotion.1.incompatible.rb.subscription.2.module=tv
# promotion.1.incompatible.rb.subscription.2.mid=58
# promotion.1.incompatible.rb.subscription.2.productIds=*
#
promotion.<n>.incompatible.<billingId>.subscription.<k>.module=
promotion.<n>.incompatible.<billingId>.subscription.<k>.mid=
promotion.<n>.incompatible.<billingId>.subscription.<k>.productIds=
promotion.<n>.incompatible.<billingId>.subscription.<k>.serviceIds=