BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 22 июн 2025, 19:40

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
СообщениеДобавлено: 27 сен 2010, 17:29 
Не в сети

Зарегистрирован: 27 сен 2010, 17:13
Сообщения: 7
Карма: 0
Версия 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 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Ну вы можете распечатать состояние таблицы contract_balance для договора на этот же момент. Данные берутся оттуда.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 сен 2010, 11:04 
Не в сети
Клиент
Аватара пользователя

Зарегистрирован: 20 апр 2009, 12:03
Сообщения: 3092
Откуда: Иркутск
Карма: 338
Может параллельно какой-нибудь процесс начисления работает?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 сен 2010, 14:14 
Не в сети

Зарегистрирован: 27 сен 2010, 17:13
Сообщения: 7
Карма: 0
Cromeshnic писал(а):
Может параллельно какой-нибудь процесс начисления работает?

Не работает. Есть одно начисление, разнесено специально по времени.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 сен 2010, 14:23 
Не в сети

Зарегистрирован: 27 сен 2010, 17:13
Сообщения: 7
Карма: 0
Администратор писал(а):
Ну вы можете распечатать состояние таблицы 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 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Ну да, примерно. Только типы лучше переменных объявляйте.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 28 сен 2010, 16:15 
Не в сети
Аватара пользователя

Зарегистрирован: 30 май 2008, 15:51
Сообщения: 6055
Карма: 244
Администратор писал(а):
Ну да, примерно. Только типы лучше переменных объявляйте.

Видимо, не объявляют оттого, что у нас в документации явно сказано "не следует указывать типы переменных" (sic!). пруф

_________________
I'm clever. I've got a computer.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 05 окт 2010, 20:08 
Не в сети
Разработчик

Зарегистрирован: 08 ноя 2007, 01:05
Сообщения: 8343
Откуда: Уфа
Карма: 238
документация поправлена. Но это для 5.1 . Для 4.6 не настолько актуально , но лучше все равно указывать типы переменных


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: Bing [Bot], Google [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.041s | 34 Queries | GZIP : On ]