BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 19 мар 2024, 08:59

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Логика работы модуля NPay
СообщениеДобавлено: 10 мар 2022, 14:53 
Не в сети

Зарегистрирован: 05 мар 2022, 07:14
Сообщения: 4
Карма: 0
Добрый день! Начинаю только изучать BGBilling (Тестовая лицензия) и возник ряд вопросов:

1) Завел тестовый дебетовый договор в котором, добавил глобальный тарифный план с помесячным режимом снятия пропорционально периоду.
На договоре в модуле NPAY добавил услугу, после этого на договоре появилась наработка по услуге, изменился исходящий остаток и доступная сумма, но статус договора остался Активен, почему? Разве договор не должен приостанавливаться, когда ему не хватает суммы для списания абон.платы?

2) Так же на этом же тестовом договоре попробовал сделать действия которые описывались на форуме: в модуле NPAY очистил наработку, запустил в ручную задачу планировщика "Закрытие статуса NPay договоров по балансу" статус договора изменился на "Приостановлен", но также не будешь делать для всех вновь созданных договоров? Еще при удалении услуги из модуля абон. плат на договоре статус договора не меняется на "Активен"

Конфигурация модуля NPAY:

npay.service.status.mode=param
# Статусы договора, в которых не начисляется абонентская плата
contract.status.suspend.codes=3,4
#абонплаты, на которые не влияет приостановка договора
#service.no.suspend.3,4=9
#Режим дебетовых абонплат позволяет изменять статус дебетовых договоров в случае, если начисление им абонентской платы может привести к опусканию остатка меньше лимита.
#Режим применяется только к договорам с режимом Дебет
debet.npay.status.manage=1
#Коды активных статусов договоров через запятую
debet.npay.active.status=0
#Коды заблокированных статусов договоров через запятую
debet.npay.locked.status=3,4
#Правила перехода статусов, если не указана, от переводит на первый статус активного или заблокированного статуса соответственно.
debet.npay.status.rule=0:3,3:0,4:0,0:4
#Коды групп, для которых применяется режим; через запятую
#debet.npay.status.manage.groups=
#Коды тарифных планов; через запятую.
#При указании параметра блокировка осуществляется только, если на дату блокировки в договоре стоит один из указанных тарифов
#debet.npay.status.manage.tariff.ids=
#Учитываемый в дебетовых абонплатах набор услуг (если не указан, считается, что после разблокировки будут начислены все услуги из полного набора)
#debet.npay.service.set=
#сумма на балансе, для которой возможна разблокировка
debet.npay.unlock.balance.limit=0
#при открытии статуса супердоговора открывать статусы зависимых договоров(1-открывать, 0 - не открывать).
debet.npay.processDependentSub=0
#Проверять увеличение наработки, при закрытии договоров (0 - позволяет отключать договора с отрицательным балансом независимо от увеличения наработки по абонплате)
##check.account.changed=1
# Автоматическое переначисление абонентских плат договора при изменении их периода, количества, закрытие договора и т.п.
# 0 - выключить переначисление, 1 - включить переначисление, 2 - включить переначисление, но выполнять только для текущего месяца
recalculate.on.service.change=1
# E-Mail для отправки уведомлений об автоматическом переначислении при изменении абонплаты, если не указан - уведомление не высылается
#auto.recalculate.email=
# Набор услуг для переобсчета при автоматическом переначислении при изменении абонплаты, если не указан - все услуги
#auto.recalculate.email.service.set=
# Количество выводимых ошибок в периодических процессах
max.periodic.errors=30
# Подмена абонплаты другой услугой на период определённого статуса
#wrap.service=
#
#----------------------------------------
# Выборочное отключение проверки закрытого периода
# перенести абонплату на другой договор
#closed.date.disabled.ActionMovePay=1
# Начисление абонплат
#closed.date.disabled.ActionRecalculatePay=1
# Удаление абонплаты
#closed.date.disabled.ActionServiceObjectDelete=1
# Изменение абонплаты
#closed.date.disabled.ActionServiceObjectUpdate=1
# Перенести абонплату на другой договор с даты
#closed.date.disabled.ActionWrapPay=1
#----------------------------------------

PS. Информация о версии:

Клиент: 8.2201-2203020229 / 02.03.2022 02:29
os: Windows 7; java: Java HotSpot(TM) 64-Bit Server VM, v.15
ВНИМАНИЕ: Спецификация 15 не рекомендуется (поддерживается 17)
Сервер: 8.2201-2203020229 / 02.03.2022 02:29
os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.15.0.2
ВНИМАНИЕ: Спецификация 15 не рекомендуется (поддерживается 17)

agr: ?
alfabank: ?
assist: ?
bill: 8.2201-2202162116 / 16.02.2022 21:16
botmanager: ?
buyemoney: ?
bvcom: ?
card: 8.2201-2201010257 / 01.01.2022 02:57
cerbercrypt: ?
chronopay: ?
dba: ?
dialup: ?
drweb: ?
drwebn: ?
email: ?
enaza: ?
gazprombank: ?
gorod: ?
hd: ?
inet: 8.2201-2202162116 / 16.02.2022 21:16
ipn: ?
license: ?
mangooffice: ?
megogo: ?
mobile: ?
mobimoney: ?
moneta: ?
mps: ?
mtsbank: ?
npay: 8.2201-2202162116 / 16.02.2022 21:16
omega: ?
onpay: ?
paykeeper: ?
paylinks: ?
paymaster: ?
payonline: ?
payture: ?
phone: ?
psb: ?
pscb: ?
qiwi: ?
rbkmoney: ?
rentsoft: ?
reports: 8.2201-2202162116 / 16.02.2022 21:16
rfiec: ?
robokassa: ?
rscm: ?
ru.bitel.bgbilling.plugins.assistant: ?
ru.bitel.bgbilling.plugins.bonus: ?
ru.bitel.bgbilling.plugins.cashcheck: ?
ru.bitel.bgbilling.plugins.cladr: ?
ru.bitel.bgbilling.plugins.crm: ?
ru.bitel.bgbilling.plugins.dispatch: ?
ru.bitel.bgbilling.plugins.documents: ?
ru.bitel.bgbilling.plugins.edo: ?
ru.bitel.bgbilling.plugins.fias: ?
ru.bitel.bgbilling.plugins.helpdesk: ?
ru.bitel.bgbilling.plugins.im: ?
ru.bitel.bgbilling.plugins.message4user: ?
ru.bitel.bgbilling.plugins.news: ?
ru.bitel.bgbilling.plugins.organizer: ?
ru.bitel.bgbilling.plugins.sbpilot: ?
ru.bitel.bgbilling.plugins.sqleditor: ?
runtel: ?
rurupay: ?
sberbank: ?
simplepay: ?
smarthouse: ?
softkey: ?
softline: ?
sorm: ?
subscription: ?
tinkoff: ?
trayinfo: 8.2201-2201010257 / 01.01.2022 02:57
tv: ?
twpg: ?
uniteller: ?
vepay: ?
vidimax: ?
voice: ?
voiceip: 8.2201-2202162116 / 16.02.2022 21:16
vseplatezhi: ?
wm: ?
yoomoney: ?

Окружение:

Клиент:
os: Windows 7 amd64, 6.1
java: Java HotSpot(TM) 64-Bit Server VM, v.15
jre home: C:\Program Files\Java\jdk-15
memory (use/total/max): 89M/154M/4076M
default tz: 10.03.2022 15:34 NOVT +0700 (Asia/Novosibirsk)
user tz: 10.03.2022 15:34 KRAT +0700 (Asia/Krasnoyarsk)
locale: ru_RU
Сервер:
os: Linux amd64, 3.10.0-1160.53.1.el7.x86_64
java: Java HotSpot(TM) 64-Bit Server VM, v.15.0.2
jre home: /opt/java/jdk15
default tz: 10.03.2022 15:35 NOVT +0700 (Asia/Novosibirsk)
memory (use/total/max): 286M/455M/494M
db time: master: 10.03.2022 15:35 +07
db charset: connection: utf8mb4(utf8mb4_unicode_ci), database: utf8mb4(utf8mb4_unicode_ci)
locale: en_US
uptime: Started: 04.03.2022 12:08:31 Uptime: 6 d 03:26:40

Третьи стороны:

Fugue Icons. Copyright © 2011 Yusuke Kamiyamane. All rights reserved.
http://p.yusukekamiyamane.com/
Silk icon set. Copyright © Mark James. All rights reserved.
http://www.famfamfam.com/lab/icons/silk/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 10 мар 2022, 18:05 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
1) Настройте дебетовые абонлаты в конфигурации и добавьте в планировщик задачу закрытия договоров до начисление абонплаты
2) Не понятно что вы тут делаете и какую задачу решаете. Коротко можно скриптом через дин код


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 10 мар 2022, 19:37 
Не в сети

Зарегистрирован: 05 мар 2022, 07:14
Сообщения: 4
Карма: 0
Конфигурация модуля NPAY:

npay.service.status.mode=param
# Статусы договора, в которых не начисляется абонентская плата
contract.status.suspend.codes=3,4
#абонплаты, на которые не влияет приостановка договора
#service.no.suspend.3,4=9
#Режим дебетовых абонплат позволяет изменять статус дебетовых договоров в случае, если начисление им абонентской платы может привести к опусканию остатка меньше лимита.
#Режим применяется только к договорам с режимом Дебет
debet.npay.status.manage=1
#Коды активных статусов договоров через запятую
debet.npay.active.status=0
#Коды заблокированных статусов договоров через запятую
debet.npay.locked.status=3,4
#Правила перехода статусов, если не указана, от переводит на первый статус активного или заблокированного статуса соответственно.
debet.npay.status.rule=0:3,3:0,4:0,0:4
#Коды групп, для которых применяется режим; через запятую
#debet.npay.status.manage.groups=
#Коды тарифных планов; через запятую.
#При указании параметра блокировка осуществляется только, если на дату блокировки в договоре стоит один из указанных тарифов
#debet.npay.status.manage.tariff.ids=
#Учитываемый в дебетовых абонплатах набор услуг (если не указан, считается, что после разблокировки будут начислены все услуги из полного набора)
#debet.npay.service.set=
#сумма на балансе, для которой возможна разблокировка
debet.npay.unlock.balance.limit=0
#при открытии статуса супердоговора открывать статусы зависимых договоров(1-открывать, 0 - не открывать).
debet.npay.processDependentSub=0
#Проверять увеличение наработки, при закрытии договоров (0 - позволяет отключать договора с отрицательным балансом независимо от увеличения наработки по абонплате)
##check.account.changed=1
# Автоматическое переначисление абонентских плат договора при изменении их периода, количества, закрытие договора и т.п.
# 0 - выключить переначисление, 1 - включить переначисление, 2 - включить переначисление, но выполнять только для текущего месяца
recalculate.on.service.change=1
# E-Mail для отправки уведомлений об автоматическом переначислении при изменении абонплаты, если не указан - уведомление не высылается
#auto.recalculate.email=
# Набор услуг для переобсчета при автоматическом переначислении при изменении абонплаты, если не указан - все услуги
#auto.recalculate.email.service.set=
# Количество выводимых ошибок в периодических процессах
max.periodic.errors=30
# Подмена абонплаты другой услугой на период определённого статуса
#wrap.service=
#
#----------------------------------------
# Выборочное отключение проверки закрытого периода
# перенести абонплату на другой договор
#closed.date.disabled.ActionMovePay=1
# Начисление абонплат
#closed.date.disabled.ActionRecalculatePay=1
# Удаление абонплаты
#closed.date.disabled.ActionServiceObjectDelete=1
# Изменение абонплаты
#closed.date.disabled.ActionServiceObjectUpdate=1
# Перенести абонплату на другой договор с даты
#closed.date.disabled.ActionWrapPay=1
#----------------------------------------

Задача закрытия договоров в планировщике настроена до задачи начисление абонплаты

А как прикрепить файлы к теме? Пытаюсь добавить, а выводится "Не удалось закачать вложение ./files/4314_d178fa9dd8c9d01a60a456bcbbfb9775." может форматы, какие-то определенные нужны?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 10 мар 2022, 23:31 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
В каком то определенном формате должно быть изображение, по файлу не видно вообще какой это формат картинки.
Конфиг npay больше чем 1 раз кидать смысла нет. Пока не понятно в чем конкретно вопросы. Если вы за планировщик хотите работать - ни кто не против. Но лучше ему доверить задачи


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 11 мар 2022, 14:14 
Не в сети

Зарегистрирован: 05 мар 2022, 07:14
Сообщения: 4
Карма: 0
После добавления услуги на договоре в модуле абонплата у договора появилась наработка по услуге, исходящий остаток и доступная сумма стали отрицательными, но статус договора остался активен, а не приостановился Изображение
Статус договора не приостановился и после ночного запуска задачи закрытие статусов Npay договоров Изображение Почему так?
Хотя в модуле Интернет на договоре сервис приостановился по недостатку средств Изображение


Планировщик Изображение
В задаче закрытие статусов Npay договоров в параметрах запуска указано mid=2
В задаче начисление NPay абонплат в параметрах запуска указано hour.minus=0 mid=2

Тарифный план договора Изображение


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 11 мар 2022, 16:33 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
Maksim писал(а):
После добавления услуги на договоре в модуле абонплата у договора появилась наработка по услуге

У вас в конфиге
Код:
# Автоматическое переначисление абонентских плат договора при изменении их периода, количества, закрытие договора и т.п.
# 0 - выключить переначисление, 1 - включить переначисление, 2 - включить переначисление, но выполнять только для текущего месяца
recalculate.on.service.change=1

Сделайте 0 и все.

Maksim писал(а):
Статус договора не приостановился и после ночного запуска задачи закрытие статусов Npay договоров

Так у вас абонплата как я понял по месячная и еще и уже начислилась. Как договор приостановится если деньги уже взяты.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 14 мар 2022, 08:39 
Не в сети

Зарегистрирован: 05 мар 2022, 07:14
Сообщения: 4
Карма: 0
Цитата:
Так у вас абонплата как я понял по месячная и еще и уже начислилась. Как договор приостановится если деньги уже взяты.


Да, все верно, в тарифном плане добавлен модуль абонплата с помесячным режимом снятия пропорционально периоду.

Я завожу новый договор в системе с нулевым балансом, с нулевой наработкой и т.д. платежей на договоре ни каких нет, добавляю ему тарифный план и соответственно я должен добавить услугу в модуле на договоре, как только я ее добавляю то она автоматически начисляется системой до конца месяца в соответствии с настройками тарифного плана, но договор остается активным и при последующем снятии абонпланты, к примеру в апреле, договор приостановится, но тогда абонент должен будет уже за апрель и за предыдущий период, так же не должно быть?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 14 мар 2022, 19:41 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 27 мар 2012, 11:59
Сообщения: 2676
Карма: 72
Так быть должно и это правильно с всех сторон. Я вам выше описал параметр который за это отвечает и да же на какое значение его надо поменять. Если это сложно - то вы в ШАБЛОНЕ договора добавьте абонплату сразу. И тогда при создании договора абонлата уже будет на договоре и ее добавлять РУКАМИ не нужно будет.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 17 мар 2022, 01:07 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Maksim писал(а):
Цитата:
Так у вас абонплата как я понял по месячная и еще и уже начислилась. Как договор приостановится если деньги уже взяты.


Да, все верно, в тарифном плане добавлен модуль абонплата с помесячным режимом снятия пропорционально периоду.

Я завожу новый договор в системе с нулевым балансом, с нулевой наработкой и т.д. платежей на договоре ни каких нет, добавляю ему тарифный план и соответственно я должен добавить услугу в модуле на договоре, как только я ее добавляю то она автоматически начисляется системой до конца месяца в соответствии с настройками тарифного плана, но договор остается активным и при последующем снятии абонпланты, к примеру в апреле, договор приостановится, но тогда абонент должен будет уже за апрель и за предыдущий период, так же не должно быть?


Не должно и не будет, если вы корректно настроите задачи модуля NPay в планировщике заданий.
В частности у вас будет задача "Закрытие статуса NPay договоров по балансу" запускаемая в 00:00 каждый день.
И задача "Начисление NPay абонплат" запускаемая например в 00:15 (каждый день).
Т.е. ПОСЛЕ того как отработает задача закрытия.

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

P.S. Как по мне - лучше обсуждать такие вопросы в https://t.me/bgbilling
Быстрее и проще

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Логика работы модуля NPay
СообщениеДобавлено: 17 мар 2022, 01:22 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 29 мар 2010, 23:11
Сообщения: 5854
Карма: 472
Прошу прощения.
Фото не грузились, пришлось через цитату глянуть.

Да, корректно настроено.
В любом случае - в апреле не посчитает уже, должно будет заблокировать 1 числа при запуске задачи блокировки.

Чтобы избежать подобного, можно сделать подневной тарифный план со списанием "Авансом за месяц" или в конфиге задачи/модуля прописать
Код:
check.account.changed=false


В случае флага - проверяет баланс в любом случае, а не только в том, когда наработка изменилась.
И если его недостаточно - закрывает статус. Даже для помесячных тарифных планов.

_________________
Цитаты великих людей :umnik:
Напишите в helpdesk © stark
повторяю: => хелпдеск => доработка => профит © dimOn
свершилось... © skn
Мой код изящен, лёгок, оригинален, краток. Как прохладный весенний ветерок, как звонкий ручей! © dimOn
Вежливый разработчик © Artur
Эти баги тоже исправлены, как и те, которые еще не написаны © Artur
ну т.е. существует воркэраунд, ок © dimOn


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.047s | 40 Queries | GZIP : On ]