forum.bitel.ru http://forum.bitel.ru/ |
|
Не начисляется абонплата. http://forum.bitel.ru/viewtopic.php?f=16&t=9382 |
Страница 1 из 1 |
Автор: | isDen [ 27 июн 2014, 13:10 ] | ||||
Заголовок сообщения: | Не начисляется абонплата. | ||||
Добрый день! Биллинг мне достался в наследство поэтому приходится с работать с тем что имеем. Версия 4.5. Есть договор, на нём подвешена услуга Абонплаты. Смотрим в наработке за май месяц 2014 года. абонка отсутствует. Иду в модуль абон платы, выбираю интересующий договор и делаю перерасчёт за май месяц. результат работы в логах: scheduler.log Код: INFO 27.06.2014 10:54:21 Running Task: Thread[Thread-267109,1,main] INFO 27.06.2014 10:54:21 PaymentRecalculator time: 01.05.2014 00 INFO 27.06.2014 10:54:21 [23:00:00; 0] Calculate past month DEBUG 27.06.2014 10:54:21 [23:00:00; 0] Services: -1,72,73,74,75,76,78,79,80,81,82,83,84,85,86,87,89,90,91,92,93,94,95,96,97,113,240,126,127,128,129,151,152,153,154,155,171,172,173,174,175,184,263,222,223,224,236,264,265,266,267,268,269,272,273,276,277,280,281,283,284,285,286,287,288,290,292,293,294,296,297,298,299,300,301,302,303,304,305,306,308,309,310,315,316,317,318,319,320,321,327,322,323,324,325,326,332,334,335,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,356,357,358,359,360,361,362,363,364,366,367,368,369,370,371,372,376,375,377,378,379,380,381,382,383,384,385,386,387,388,389 INFO 27.06.2014 10:54:21 Memory total: 265 158 656; max: 1 864 171 520; free: 100 653 400 DEBUG 27.06.2014 10:54:21 [23:00:00; 0] Found service taker cid: 103099; sid: 345; date1: 01.01.2013; date2: ; col: 1; eid: 1156274 DEBUG 27.06.2014 10:54:21 [23:00:00; 0] After trimming cid: 103099; sid: 345; date1: 01.05.2014; date2: 31.05.2014 DEBUG 27.06.2014 10:54:21 [23:00:00; 0] Tariff period: 01.06.2010- DEBUG 27.06.2014 10:54:21 [23:00:00; 0] Calculating item 01.05.2014-31.05.2014 DEBUG 27.06.2014 10:54:21 [23:00:00; 0] Reset request accepted => false relevance => -1 REQ: sid => 345 action => reset RESP: calc_type => 0 calc_mode => month HIST: DEBUG 27.06.2014 10:54:21 [23:00:00; 0] Request accepted => true relevance => -1 REQ: sid => 345 time => 31.05.2014 00:00:00 action => calculate month_days => 31 period_days => 31 RESP: cost => 12000.0 HIST: ERROR 27.06.2014 10:54:21 [23:00:00; 0] Duplicate entry '2014-5-103099-345' for key 1 com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException: Duplicate entry '2014-5-103099-345' for key 1 at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:931) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573) at com.mysql.jdbc.ServerPreparedStatement.serverExecute(ServerPreparedStatement.java:1160) at com.mysql.jdbc.ServerPreparedStatement.executeInternal(ServerPreparedStatement.java:685) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1400) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1314) at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1299) at org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:233) at bitel.billing.server.npay.Calculator.executeTask(Calculator.java:334) at bitel.billing.server.task.TaskBase.run(TaskBase.java:45) INFO 27.06.2014 10:54:21 [23:00:00; 0] time=319 ms. server.log Код: DEBUG 27.06.2014 10:54:21 executing bitel.billing.server.npay.action.ActionRecalculatePay; time => 14 ms. DEBUG 27.06.2014 10:54:21 executing bitel.billing.server.contract.action.ActionUpdateContractTariffPlan; time => 16 ms. DEBUG 27.06.2014 10:54:22 executing bitel.billing.server.contract.action.ActionContractTariffPlans; time => 11 ms. DEBUG 27.06.2014 10:54:24 executing bitel.billing.server.contract.action.ActionContractTariffPlan; time => 14 ms. scheduler.out ни чего не попало. видим что sheduler.log есть проблемы (но об этом ниже) Код: bitel.billing.server.npay.Calculator.executeTask(Calculator.java:334) после перерасчёта смотрим в наработку абон плата появляется. Всё бы ни чего и можно было бы наплевать на ошибку но при преобсчёте по всем договорам начисление происходит только по 1-му договору, после которого вылетает указанная ошибка и задача дальше не выполняется. Стало интересно что же там такое в Код: bitel.billing.server.npay.Calculator.executeTask(Calculator.java:334) Декомпильнул модуль и вот что в нем увидел: Код: query = "DELETE FROM contract_account WHERE yy=? AND mm=? AND sid IN (" + this.serviceList + ")"; query = query + andCidPart; ps = this.con.prepareStatement(query); ps.setInt(1, this.startMonth.get(1)); ps.setInt(2, this.startMonth.get(2) + 1); ps.executeUpdate(); query = "INSERT INTO contract_account (yy, mm, cid, sid, summa) VALUES (?, ?, ?, ?, ?)"; ps = this.con.prepareStatement(query); ps.setInt(1, this.startMonth.get(1)); ps.setInt(2, this.startMonth.get(2) + 1); for (CostSum costSum : this.costCache.getAmounts()) { ps.setInt(3, costSum.cid); ps.setInt(4, costSum.sid); ps.setFloat(5, (float)costSum.cost); ps.executeUpdate(); contractForSetBalance.add(Integer.valueOf(costSum.cid)); } 334 строка это ps.executeUpdate(); видно что из таблицы contract_account сначала вычищаются записи, а потом они туда добавляются снова. Вроде бы всё логично, НО откуда тогда берётся злосчастный «Duplicate entry '2014-5-103099-345' for key 1»?
|
Автор: | stark [ 27 июн 2014, 14:48 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
Обновитесь до 4.6. Там эта функция переписана и скорее всего будет работать. |
Автор: | stark [ 27 июн 2014, 15:24 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
а 345 что за услуга ? Это услуга модуля абоплат ? пробовали удалить эту запись перед переобсчетом? |
Автор: | isDen [ 27 июн 2014, 16:00 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
stark писал(а): а 345 что за услуга ? Это услуга модуля абоплат ? пробовали удалить эту запись перед переобсчетом? 345 это как раз услуга «Тарифный план "Горячая линия 2000": абон плата 12000», которая подвешена на договор. Да пробовал в ручную удалять ее из contract_account, не помогает. есть ли какие то зависимости от перерасчёта абон плат от настройки модуля? У меня в настройках модуля есть только одна запись (код модуля совпадает): Код: mid=15 сколько не искал так и не смог найти описание всех настроек модуля. Подскажите, пожалуйста, какие нужно выставить настройки модуля. Или, на крайняк, дайте ссылку с полным описанием свойств. |
Автор: | dimOn [ 27 июн 2014, 16:12 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
isDen писал(а): У меня в настройках модуля есть только одна запись (код модуля совпадает): Код: mid=15 не модуля , а задачи уж наверное |
Автор: | stark [ 27 июн 2014, 16:44 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
так про настройку модуля или задачи идет речь?..Там для задачи больше и нет никаких настроек |
Автор: | isDen [ 27 июн 2014, 17:41 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
может не совсем корректно выразился. Запись mid=15 указана в конфигурации модуля. Цитата: так про настройку модуля или задачи идет речь?..Там для задачи больше и нет никаких настроек речь идёт о том что бы заставить биллинг вновь считать абонплату. Я предположил что это может быть связано с конфигурацией модуля. |
Автор: | stark [ 27 июн 2014, 17:52 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
isDen писал(а): может не совсем корректно выразился. Запись mid=15 указана в конфигурации модуля. Цитата: так про настройку модуля или задачи идет речь?..Там для задачи больше и нет никаких настроек речь идёт о том что бы заставить биллинг вновь считать абонплату. Я предположил что это может быть связано с конфигурацией модуля. Я не знаю зачем у вас указано mid=15 в конфигурации модуля. Про настройку модуля написано тут: http://bgbilling.ru/v4.5/doc/ch18s02.html |
Автор: | stark [ 27 июн 2014, 18:00 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
и тут: http://bgbilling.ru/v4.5/doc/ch18s06.html |
Автор: | isDen [ 30 июн 2014, 11:47 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
доброй наступившей рабочей недели! «И вновь продолжается бой...» с абонплатами. Цитата: Я не знаю зачем у вас указано mid=15 в конфигурации модуля Цитата: вот как раз отсюда я и взял настройку Код: mid=15 вот ещё наткнулся на форуме на подобную тему. Я только не понял при чём тут различные движки (MySQL и InnoDB). Разработчики поясните в этом ли дело. |
Автор: | dimOn [ 30 июн 2014, 12:15 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
Читайте внимательнее: mid=15 указано для настройки задачи, а не модуля |
Автор: | dimOn [ 30 июн 2014, 12:17 ] |
Заголовок сообщения: | Re: Не начисляется абонплата. |
У вас 4.5. так что для вас всё только в MyISAM |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |