forum.bitel.ru http://forum.bitel.ru/ |
|
Как узнать из скрипта сумму в дебитовых абонплата http://forum.bitel.ru/viewtopic.php?f=19&t=7796 |
Страница 1 из 1 |
Автор: | madmax [ 04 мар 2013, 11:10 ] |
Заголовок сообщения: | Как узнать из скрипта сумму в дебитовых абонплата |
Имеется задача закрытия статуса договора Npay по балансу после которой напротив абонентской платы пишется недостающая сумма. Как можно в скрипте узнать данную сумму? |
Автор: | snark [ 04 мар 2013, 11:54 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
Например так. Поиск по слову Calculator в вики и на форуме даст массу скриптов ![]() |
Автор: | madmax [ 04 мар 2013, 12:38 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
Да забыл написать что мы знаем как через код рассчитать планируемую сумму по наработке абонплаты. Но биллинг уже сам посчитал недостающую сумму и отображает ее напротив модуля абонплаты, зачем изобретать велосипед если где то эта сумма хранится и достаточно ее там посмотреть. И вот вопрос - где биллинг хранит эту посчитанную сумму или как через какую-нибудь функцию ее можно получить |
Автор: | skyb [ 04 мар 2013, 15:04 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
вопрос, зачем? |
Автор: | madmax [ 04 мар 2013, 15:32 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
Хотим для закрытых договоров в кабинете статистики сделать возможность активировать договор если сумма задолженность которая напротив абонентской платы <= 0. А то сейчас договор закрывается когда денег не хватает, а на следующий день денег становится достаточно так как начислений меньше но договор не активируется и приходится клиенту бежать и оплачивать любую сумму чтобы по движению денег система активировала договор |
Автор: | skyb [ 04 мар 2013, 17:28 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
второе предложение не понял |
Автор: | madmax [ 04 мар 2013, 17:52 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
на договоре подневное начисление и каждый день сумма напротив абонплаты рассчитывается с учетом оставшихся дней до конца месяца |
Автор: | madmax [ 05 мар 2013, 14:57 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
А вот в api есть такая возможность Код: getSummaForUnlock(java.sql.Connection con, int mid, Contract contract) Что то код не отрабатывает пишу но выдает ошибку что не так не подскажите Код: import ru.bitel.bgbilling.modules.npay.server.bean.DebetStatusManageConfig;
import bitel.billing.server.contract.bean.Contract; import bitel.billing.server.contract.bean.ContractManager; import bitel.billing.server.contract.bean.ContractStatus; import bitel.billing.server.contract.bean.ContractStatusManager; import java.sql.SQLException; ContractManager contractManager = new ContractManager(this.con); Contract contract = contractManager.getContractById(cid); BigDecimal needsum = getSummaForUnlock(con, 2, contractManager.getContractById(contract.getSuperId()); |
Автор: | skyb [ 05 мар 2013, 17:48 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
я всеравно не понял, куда потом эту сумму сувать будите? |
Автор: | madmax [ 05 мар 2013, 21:31 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
да все просто если getSummaForUnlock=0 значит разрешено переводит договор со статуса закрыт на активен. Если >0 тогда нельзя |
Автор: | Phricker [ 06 мар 2013, 00:33 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
Без класса ага. по идее сначала нужно объявить а потом использовать Код: dsm = new DebetStatusManageConfig(Preferences moduleSetup); BigDecimal needsum = dsm.getSummaForUnlock(con, 2, contractManager.getContractById(contract.getSuperId()); только я понятия не имею что там в этом Preferences должно быть ![]() |
Автор: | skyb [ 06 мар 2013, 08:19 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
madmax писал(а): да все просто если getSummaForUnlock=0 значит разрешено переводит договор со статуса закрыт на активен. Если >0 тогда нельзя а чем дебитовые абонплаты не устраивают? |
Автор: | madmax [ 06 мар 2013, 10:40 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
не понял, при чем тут дебитовые абонплаты. Почитайте выше я написал же все Цитата: Хотим для закрытых договоров в кабинете статистики сделать возможность активировать договор если сумма задолженность которая напротив абонентской платы <= 0.
А то сейчас договор закрывается когда денег не хватает, а на следующий день денег становится достаточно так как начислений меньше но договор не активируется и приходится клиенту бежать и оплачивать любую сумму чтобы по движению денег система активировала договор |
Автор: | madmax [ 06 мар 2013, 10:54 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
На этом куске кода ругается что не хватает ; или ) Код: dsm = new DebetStatusManageConfig(Preferences moduleSetup);
|
Автор: | KostiK [ 11 мар 2013, 10:17 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
madmax писал(а): На этом куске кода ругается что не хватает ; или ) Код: dsm = new DebetStatusManageConfig(Preferences moduleSetup); надо делать вот так: Код: dsm = new DebetStatusManageConfig(moduleSetup);
|
Автор: | madmax [ 11 мар 2013, 12:29 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
да с таким кодом заработало и все скомпилировалось. DebetStatusManageConfig dsm = new DebetStatusManageConfig(moduleSetup); BigDecimal needsum = dsm.getSummaForUnlock(con, mid, contractManager.getContractById(contract.getSuperId())); Но выходит ошибка которая ссылается на строку с кодом Код: DebetStatusManageConfig dsm = new DebetStatusManageConfig(moduleSetup); Код: ERROR ["http-bio-/0.0.0.0-8443"-exec-7] CommonExecuter -
java.lang.NullPointerException at ru.bitel.bgbilling.modules.npay.server.bean.DebetStatusManageConfig.<init>(DebetStatusManageConfig.java:37) at bitel.billing.server.contract.action.web.ActionCustomSuspend.doAction(ActionCustomSuspend.java:145) at bitel.billing.server.WebExecuter.executeAction(WebExecuter.java:436) at bitel.billing.server.WebExecuter.doPost(WebExecuter.java:210) at bitel.billing.server.WebExecuter.doGet(WebExecuter.java:74) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at ru.bitel.server.servlet.filters.MultipartFilter.doFilter(MultipartFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at ru.bitel.server.servlet.filters.XSSFilter.doFilter(XSSFilter.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at bitel.billing.server.filters.BGAuthFilter.doFilter(BGAuthFilter.java:295) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) |
Автор: | KostiK [ 11 мар 2013, 12:43 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
из-за того что moduleSetup=null. Покажите весь код скрипта. И на какое событие вы вешаете скрипт? |
Автор: | KostiK [ 11 мар 2013, 12:44 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
на динамических java классах пишете? |
Автор: | stark [ 11 мар 2013, 12:44 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
madmax писал(а): да с таким кодом заработало и все скомпилировалось. DebetStatusManageConfig dsm = new DebetStatusManageConfig(moduleSetup); [/code] А где кусок кода, который создает moduleSetup? |
Автор: | madmax [ 11 мар 2013, 15:04 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
Да на динамических. Скорректировал код Код: mid=2; ModuleSetup modset = new ModuleSetup(con, mid); DebetStatusManageConfig dsm = new DebetStatusManageConfig(modset); BigDecimal needsum = dsm.getSummaForUnlock(con, mid, contractManager.getContractById(contract.getSuperId())); теперь выходит ошибка на Код: needsum = dsm.getSummaForUnlock(con, mid, contractManager.getContractById(contract.getSuperId())); Код: ERROR ["http-bio-/0.0.0.0-8443"-exec-5] CommonExecuter -
java.lang.NullPointerException at ru.bitel.bgbilling.modules.npay.server.bean.DebetStatusManageConfig.getSummaForUnlock(DebetStatusManageConfig.java:94) at bitel.billing.server.contract.action.web.ActionCustomSuspendWiMax.doAction(ActionCustomSuspendWiMax.java:147) at bitel.billing.server.WebExecuter.executeAction(WebExecuter.java:436) at bitel.billing.server.WebExecuter.doPost(WebExecuter.java:210) at bitel.billing.server.WebExecuter.doGet(WebExecuter.java:74) at javax.servlet.http.HttpServlet.service(HttpServlet.java:621) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at ru.bitel.server.servlet.filters.MultipartFilter.doFilter(MultipartFilter.java:42) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at ru.bitel.server.servlet.filters.XSSFilter.doFilter(XSSFilter.java:89) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at bitel.billing.server.filters.BGAuthFilter.doFilter(BGAuthFilter.java:295) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at bitel.billing.server.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:48) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:403) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:301) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:162) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:140) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:309) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907) at java.lang.Thread.run(Thread.java:619) |
Автор: | stark [ 11 мар 2013, 17:45 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
У вас скорее всего Код: contractManager.getContractById(contract.getSuperId()) возвращает null. Распечатайте contract.getSuperId() может у него и нет супера ? |
Автор: | madmax [ 12 мар 2013, 17:37 ] |
Заголовок сообщения: | Re: Как узнать из скрипта сумму в дебитовых абонплата |
Все работает. спасибо |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |