forum.bitel.ru
http://forum.bitel.ru/

Смена статуса через клиент и через скрипт
http://forum.bitel.ru/viewtopic.php?f=22&t=13548
Страница 1 из 1

Автор:  gup [ 04 мар 2020, 09:19 ]
Заголовок сообщения:  Смена статуса через клиент и через скрипт

Если поменять статус через клиент по нажатию кнопки "Выполнить" (например, в подключении => активен с текущего дня), то в клиенте сразу видно, что начисляется наработка за этот месяц с текущего дня.
Если меняю статус через скрипт, то статус меняется, но наработки никакой не появляется, все по нулям.

Код:
public class test extends GlobalScriptBase {
    @Override
    public void execute(Setup setup, ConnectionSet set) throws Exception {
        int cid = 109148;
        Connection connection = set.getConnection();

        ContractStatusManager contractStatusManager = new ContractStatusManager(connection);
        ContractStatus status = new ContractStatus();
        status.setContractId(cid);
        status.setDateFrom(new Date());
        status.setDateTo(null);
        status.setStatus(0);
        contractStatusManager.changeStatus(status, 0, true);
    }
}


Что происходит дополнительно по кнопке "Выполнить"? Можно как-то "добавить" наработку через скрипт?

BG 6.2

Автор:  dimOn [ 04 мар 2020, 13:39 ]
Заголовок сообщения:  Re: Смена статуса через клиент и через скрипт

Нет такого механизма в общем случае - переначисление наработки при ручной смене статуса, речь в вашем случае про очень частный настраиваемый костыль одного модуля npay.
Но в вашем случае теоретически так же должно работать, т.к. события на которые завязан этот костыль бросаются внутри changeStatus при установленном processEvent=true
мысли чего не хватает:
1. contractStatusManager.recycle();
2. и/или connection.commit()
3. и/или обновить в клиенте может оно работает просто вы не видите что всё же изменилось на самом деле

Автор:  gup [ 04 мар 2020, 14:09 ]
Заголовок сообщения:  Re: Смена статуса через клиент и через скрипт

1/2 - не помогло
3 - естественно проверял

Автор:  dimOn [ 04 мар 2020, 15:38 ]
Заголовок сообщения:  Re: Смена статуса через клиент и через скрипт

статус который вы в клиенте ставите и 0 - это один и тот же? и он настроен в дебетовых абонплатах как активный?
договор тоже тот же самый? или хотя бы cid = 109148 имеет модуль npay и договор дебетовый?

Автор:  gup [ 05 мар 2020, 08:45 ]
Заголовок сообщения:  Re: Смена статуса через клиент и через скрипт

Код:
contract.status.list=0:Активен;1:В отключении;2:Отключен;3:Закрыт;4:Приостановлен;5:В подключении;6:Отказ


конфиг npay
Код:
#--------------------------------------------------------------------------
# Группы услуг
service.set.1.title=Абонплаты конца месяца(все)
service.set.1.sids=8,11,12,13,18,22,23
service.set.2.title=Абонплата Интернет посуточно
service.set.2.sids=7
service.set.3.title=Абонплата Интернет помесячно
service.set.3.sids=13
service.set.4.title=Абонплата СКПТ-Междуреченск
service.set.4.sids=8
service.set.5.title=Абонплата СКПТ-Мыски
service.set.5.sids=11
service.set.6.title=Абонплата СКПТ Миксы (Междуреченск)
service.set.6.sids=12
service.set.7.title=Абонплата СКПТ Миксы (Мыски)
service.set.7.sids=18
service.set.8.title=Абонплата Телефония
service.set.8.sids=27
service.set.9.title=Абонплата IPTV
service.set.9.sids=29
#--------------------------------------------------------------------------
# статусы договора, в которых не начисляется абонентская плата service.no.suspend.<status_list>=<service_codes>
contract.status.suspend.codes=1,2,3,4,5,6
#
# автоматическое переначисление абонентских плат договора при изменении их периода, количества и т.п.
# 0 - выключить переначисление, 1 - включить переначисление, 2 - включить переначисление, но выполнять только для текущего месяца
recalculate.on.service.change=0
# 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
#--------------------------------------------------------------------------
# абонплаты, на которые не влияет приостановка договора
service.no.suspend.3=12,18,22,8,11
#--------------------------------------------------------------------------
debet.npay.status.manage=1
#код активного статуса договора
debet.npay.active.status=0
#код заблокированного статуса договора
debet.npay.locked.status=3
#коды групп, для которых применяется режим через запятую
debet.npay.status.manage.groups=1,14,15
#коды тарифных планов через запятую
#при указании параметра блокировка осуществляется только если на дату блокировки в договоре стоит один из указанных тарифов
#debet.npay.status.manage.tariff.ids=
#учитываемый в дебетовых абонплатах набор услуг (если не указан, считается, что после разблокировки будут начислены все услуги из полного набора)
#debet.npay.service.set=2
#--------------------------------------------------------------------------
#contract.status.active.codes=0
#contract.status.suspend.codes=3
module.amount.1.title=Voiceip трафик
module.amount.1.mid=18
module.amount.1.class=bitel.billing.server.npay.bean.VoipModuleAmount
module.amount.1.sids=27


Вложения:
npay.jpg
npay.jpg [ 496.04 КБ | Просмотров: 4162 ]

Автор:  dimOn [ 05 мар 2020, 19:00 ]
Заголовок сообщения:  Re: Смена статуса через клиент и через скрипт

картинка подробная спасибо!
у вас точно никаких скриптов или переписанных методов на смене статуса нет?

Автор:  dimOn [ 05 мар 2020, 19:07 ]
Заголовок сообщения:  Re: Смена статуса через клиент и через скрипт

Потому что нет такого штатного механизма "перерасчёт при смене статуса", о чём было сказано в первом сообщении. Другой вопрос что надо найти чем ваши случаи отличаются и на чём висит тогда что-то что у вас это делает и почему не вызывается при смене из скрипта. У вас там пугающее кол-во скриптов на договоре, проинспектируйте что и в каком случае они делают.

Автор:  gup [ 06 мар 2020, 08:53 ]
Заголовок сообщения:  Re: Смена статуса через клиент и через скрипт

Да, у нас есть скрипт при смене статуса, в нем идет http запрос в другую систему с текущим ip из модуля inet. В той системе "рулятся" порты на свитчах, а именно скорости портов. Т.е. если статус активен, то full speed, иначе 512 kb/s. Этот скрипт отрабатывает в обоих случаях. Для эксперимента закрыл период всех скриптов поведения вчерашним днем и ... ничего не изменилось, кроме как теперь не меняет скорость порта. Заколдованный круг...

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/