forum.bitel.ru http://forum.bitel.ru/ |
|
как правильно удалять расход? http://forum.bitel.ru/viewtopic.php?f=19&t=10598 |
Страница 1 из 1 |
Автор: | skyb [ 09 июн 2015, 13:06 ] |
Заголовок сообщения: | как правильно удалять расход? |
Код: ServerContext contextCc = ServerContext.get(); ChargeService chargeService = contextCc.getService(ChargeService.class, 0); Charge charge = new Charge(); charge.setContractId(cid); chargeService.chargeDelete(cid, ccid); chargeService.chargeUpdate(charge); не работает, как правильно это делать? |
Автор: | dimOn [ 09 июн 2015, 13:21 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
какая-то какафония кода. зачем update то делать после удаления? тем более пустого объекта. нужно просто один метод вызвать: chargeDelete( int chargeId ) или его синоним: chargeDelete( int contractId, int chargeId ) |
Автор: | skyb [ 09 июн 2015, 14:23 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
dimOn писал(а): какая-то какафония кода. зачем update то делать после удаления? тем более пустого объекта. нужно просто один метод вызвать: chargeDelete( int chargeId ) или его синоним: chargeDelete( int contractId, int chargeId ) я так делал. баланс не обновлялся, тоесть сам расход был удален, а в расходах он был показан (напротив слова расход - был, а когда заходиш в расход, нет) |
Автор: | stark [ 09 июн 2015, 15:20 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
skyb писал(а): Код: ServerContext contextCc = ServerContext.get(); ChargeService chargeService = contextCc.getService(ChargeService.class, 0); Charge charge = new Charge(); charge.setContractId(cid); chargeService.chargeDelete(cid, ccid); chargeService.chargeUpdate(charge); не работает, как правильно это делать? chargeUpdate - создает еще раз расход. Не нужно его вызывать. Это неправильно. |
Автор: | stark [ 09 июн 2015, 15:22 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
skyb писал(а): dimOn писал(а): какая-то какафония кода. зачем update то делать после удаления? тем более пустого объекта. нужно просто один метод вызвать: chargeDelete( int chargeId ) или его синоним: chargeDelete( int contractId, int chargeId ) я так делал. баланс не обновлялся, тоесть сам расход был удален, а в расходах он был показан (напротив слова расход - был, а когда заходиш в расход, нет) Проверил по коду, там баланс должен был обновиться. Видимо дерево не обновилось при отображении. Попробуйте закрыть/открыть договор. |
Автор: | skyb [ 09 июн 2015, 16:13 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
в логах вот так Код: 06-09/13:06:29 WARN [Finalizer] ConnectionSet - Not recycled before finalize! 06-09/13:06:29 WARN [Finalizer] ConnectionSet - Not recycled before finalize! И после строчки Код: ServerContext contextCc = ServerContext.get(); ChargeService chargeService = contextCc.getService(ChargeService.class, 0); chargeService.chargeDelete(cid, ccid); Ничего не выводится, тоесть действия не выполняются, принт не отрабатывает переоткрывал, ничего не обновлено |
Автор: | stark [ 09 июн 2015, 16:27 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
skyb писал(а): в логах вот так Код: 06-09/13:06:29 WARN [Finalizer] ConnectionSet - Not recycled before finalize! 06-09/13:06:29 WARN [Finalizer] ConnectionSet - Not recycled before finalize! И после строчки Код: ServerContext contextCc = ServerContext.get(); ChargeService chargeService = contextCc.getService(ChargeService.class, 0); chargeService.chargeDelete(cid, ccid); Ничего не выводится, тоесть действия не выполняются, принт не отрабатывает переоткрывал, ничего не обновлено т.е он упал чтоли ? Или повис в это месте ? Повисание можно jtstack-ом проверить . А вообще чувствую что от нас что-то скрывают ![]() |
Автор: | Amir [ 09 июн 2015, 16:31 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
А на какое действие скрипт? |
Автор: | dimOn [ 09 июн 2015, 16:31 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
если после строчки ничего не выводится - значит оно вываливается наружу с экзепшеном |
Автор: | skyb [ 09 июн 2015, 16:32 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
а что означает упал или повис? в логах только это. делается это в переписанном экшене, там все работает кроме удаление расхода Код: EventProcessor eventProc = EventProcessor.getInstance(); ChargeDao cd = new ChargeDao(con); Charge ch = new Charge(); ch.setContractId(cid); ch.setDate(new Date()); ch.setSum(new BigDecimal("-"+setup_fee)); ch.setTypeId(7); ch.setUserId(0); ch.setComment("Добавлен к номеру " + phone_number); cd.update(ch); BalanceUtils bu = new BalanceUtils(con); bu.updateBalance(new Date(), cid); eventProc.publishAfterCommit(new ChargeEvent(0, ch)); eventProc.publishAfterCommit(new ContractBalanceChangedEvent(0, ch.getSum())); cd.recycle(); так расход добавляется Amir, дергается по http экшен |
Автор: | skyb [ 09 июн 2015, 16:34 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
Код: 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - ru.bitel.bgbilling.common.BGException: java.sql.SQLException: Can't call commit when autocommit=true 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at ru.bitel.bgbilling.kernel.contract.balance.server.ChargeServiceImpl.chargeDelete(ChargeServiceImpl.java:109) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at ru.bitel.bgbilling.kernel.contract.balance.server.ChargeServiceImpl.chargeDelete(ChargeServiceImpl.java:81) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at ru.exchange.zoho.ActionNewContract.doAction(ActionNewContract.java:1259) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at bitel.billing.server.Executer.doModule(Unknown Source) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at bitel.billing.server.Executer$1.run(Unknown Source) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at java.security.AccessController.doPrivileged(Native Method) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at javax.security.auth.Subject.doAs(Subject.java:415) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at bitel.billing.server.Executer.doPost(Unknown Source) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 06-09/13:06:24 ERROR [http-bio-0.0.0.0-8080-exec-2] LoggingPrintStream - at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) это тоже нада гдето что то добавлять? |
Автор: | Amir [ 09 июн 2015, 17:16 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
Не понятно откуда autocommit=true. Может быть в ActionNewContract ставится принудительно? |
Автор: | stark [ 09 июн 2015, 17:21 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
Покажите весь код свой. |
Автор: | skyb [ 09 июн 2015, 18:14 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
да там 2000 строк кода |
Автор: | Phricker [ 09 июн 2015, 18:20 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
на чье место в бителе метишь с таким количеством? |
Автор: | skyb [ 09 июн 2015, 18:54 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
вроде нашел, главное не поломать )))) |
Автор: | skyb [ 09 июн 2015, 19:16 ] |
Заголовок сообщения: | Re: как правильно удалять расход? |
Amir писал(а): Не понятно откуда autocommit=true. Может быть в ActionNewContract ставится принудительно? Как всегда прав, а говорите нет штатного экстрасенса )))) уже второй раз разгадывает что я понах**вертил )))) |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |