forum.bitel.ru http://forum.bitel.ru/ |
|
Проблема с подсчетом текущего баланса http://forum.bitel.ru/viewtopic.php?f=22&t=4590 |
Страница 1 из 1 |
Автор: | __Андрей__ [ 27 сен 2010, 17:29 ] |
Заголовок сообщения: | Проблема с подсчетом текущего баланса |
Версия 4.6. В скрипте по событию "Таймер" запускается скрипт для выполнения операций над договорами (например, приостановка в 12 ночи по некоторым признакам). Логика построена на методе getBalance. К сожалению, возвращаемое значение ИНОГДА отличается от реального (того, что показывается клиенту или в клиенте самого bgbilling), меньше реального на одну итерацию снятия абонентской платы. Например, у клиента текущий баланс 49,0 р., фрагмент Код: cid = event.getContractID(); Calendar cx = Calendar.getInstance(); cx.roll(Calendar.HOUR_OF_DAY, 3); balanceold5 = bu.getBalance(tu.convertCalendarToDate(cx), cid).floatValue(); print ( "balanceold5 = "+balanceold5 ); выдает "balanceold5 = 22.33", хотя этот баланс должен быть на следующий день. Аналогично выдает и bu.getBalance(new Date(), cid).floatValue() и bu.getBalance(tu.convertCalendarToDate(event.getGenerateTime()), cid).floatValue(). К сожалению, данная проблема наблюдается только на части договоров. Проследить закономерность пока не удается. Начисление аб. платы и эта функция разнесены по таймеру. |
Автор: | Администратор [ 28 сен 2010, 10:21 ] |
Заголовок сообщения: | Re: Проблема с подсчетом текущего баланса |
Ну вы можете распечатать состояние таблицы contract_balance для договора на этот же момент. Данные берутся оттуда. |
Автор: | Cromeshnic [ 28 сен 2010, 11:04 ] |
Заголовок сообщения: | Re: Проблема с подсчетом текущего баланса |
Может параллельно какой-нибудь процесс начисления работает? |
Автор: | __Андрей__ [ 28 сен 2010, 14:14 ] |
Заголовок сообщения: | Re: Проблема с подсчетом текущего баланса |
Cromeshnic писал(а): Может параллельно какой-нибудь процесс начисления работает? Не работает. Есть одно начисление, разнесено специально по времени. |
Автор: | __Андрей__ [ 28 сен 2010, 14:23 ] |
Заголовок сообщения: | Re: Проблема с подсчетом текущего баланса |
Администратор писал(а): Ну вы можете распечатать состояние таблицы contract_balance для договора на этот же момент. Данные берутся оттуда. Должно быть примерно так? Новичок в java, прошу простить. Код: query = "select summa1+summa2-summa3 as curb from contract_balance where yy=YEAR(now()) and mm=MONTH(now()) and cid=" + event.getContractID();
rs = con.createStatement().executeQuery( query ); if( rs.next() ) { balans = rs.srs.getFloat("curb"); } |
Автор: | Администратор [ 28 сен 2010, 15:23 ] |
Заголовок сообщения: | Re: Проблема с подсчетом текущего баланса |
Ну да, примерно. Только типы лучше переменных объявляйте. |
Автор: | dimOn [ 28 сен 2010, 16:15 ] |
Заголовок сообщения: | Re: Проблема с подсчетом текущего баланса |
Администратор писал(а): Ну да, примерно. Только типы лучше переменных объявляйте. Видимо, не объявляют оттого, что у нас в документации явно сказано "не следует указывать типы переменных" (sic!). пруф |
Автор: | stark [ 05 окт 2010, 20:08 ] |
Заголовок сообщения: | Re: Проблема с подсчетом текущего баланса |
документация поправлена. Но это для 5.1 . Для 4.6 не настолько актуально , но лучше все равно указывать типы переменных |
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |