forum.bitel.ru
http://forum.bitel.ru/

Модуль NPay, получить значение
http://forum.bitel.ru/viewtopic.php?f=19&t=9302
Страница 1 из 1

Автор:  Lesto [ 30 май 2014, 10:24 ]
Заголовок сообщения:  Модуль NPay, получить значение

Доброго времени суток.
В договоре, напротив модуля NPay есть число:
Вложение:
2.JPG
2.JPG [ 4.15 КБ | Просмотров: 7024 ]

Откуда оно берется и как его получить?
если есть возможность, - можете показать два способа: через классы и через селект из базы?
с селектом понятней и роднее работать в IRepots :)

Автор:  Phricker [ 30 май 2014, 10:50 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

http://bgbilling.ru/v6.1/javadoc/ru/bit ... onfig.html

Автор:  Lesto [ 30 май 2014, 11:33 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

так возвращает исходящий остаток - лимит. а если лимит < исх. остатка, возвращается null.
например. есть человеки, у которых лимит = 0, исх. остат. = 320, статус - отключен, у NPay записано 379 (долг).
Код:
dsmc.getSummaForUnlock(con, 5, cm.getContractByTitle(title));

вернул null.

Автор:  skyb [ 30 май 2014, 12:43 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

ещё наработка за день вроде как считается, тоесть суть в том что после разблокировки снимется сумма

Автор:  Lesto [ 30 май 2014, 14:14 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

о, понял. то число у NPay - это сумма цен за услуги - исх.ост. - лимит
показывает сколько денег не хватило, чтобы оплатить эти самые услуги.
но как нормально получить это значение?
и все же хорошо бы селектом из бд. (не получается у меня в IReports писать на bgbs...)
из таблицы "contract_tariff" - получаю какие услуги активны у пользователя
отсюда "contract_balance" получу исх. ост.
из "contract" получу лимит.
но из какой таблицы взять цены услуг? в "tariff_plan" нету.
да, я знаю толк в извращениях :)

Автор:  stark [ 30 май 2014, 14:44 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

Lesto писал(а):
но из какой таблицы взять цены услуг? в "tariff_plan" нету.
да, я знаю толк в извращениях :)


Ну что ж, если есть именно желание идти этим путем :

http://wiki.bitel.ru/index.php/%D0%A0%D ... 1%81%D1%8B

Цитата:
SELECT * FROM tariff_plan
LEFT JOIN tariff_tree ON tariff_tree.id = tariff_plan.tree_id
LEFT JOIN module_tariff_tree ON module_tariff_tree.tree_id = tariff_plan.tree_id
LEFT JOIN mtree_node ON mtree_node.mtree_id = module_tariff_tree.id
WHERE tariff_plan.id = XXX


mtree_node - там нужная вам информация . Но это неверный путь.

Автор:  Cromeshnic [ 30 май 2014, 15:00 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

Here be dragons :)

Автор:  Lesto [ 02 июн 2014, 10:10 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

даа, не красиво...
а какой тогда человеческий вариант? :)

Автор:  skyb [ 02 июн 2014, 11:02 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

фрикер жеж написал

Автор:  Lesto [ 02 июн 2014, 11:27 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

а я же в ответ написал, что выдает не то.
вот:
Код:
DebetStatusManageConfig dsmc = new DebetStatusManageConfig(setup);
print( dsmc.getSummaForUnlock(con, 5, cm.getContractByTitle(title)) );

результат: null.
а что на самом деле:
Вложение:
3.JPG
3.JPG [ 14.04 КБ | Просмотров: 6970 ]

т.е. мне надо получить 99.00.
как я выяснил, это число вычисляется как сумма_стоимости_услуг - исх. ост. - лимит
или как-то так.
возможно я неправильно что-то делаю...

Автор:  stark [ 02 июн 2014, 13:17 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

Lesto писал(а):
а я же в ответ написал, что выдает не то.
вот:
Код:
DebetStatusManageConfig dsmc = new DebetStatusManageConfig(setup);
print( dsmc.getSummaForUnlock(con, 5, cm.getContractByTitle(title)) );

результат: null.


5 - код модуля абонплат ?

cm.getContractByTitle(title) - точно возвращает правильный договор ? выведите id договора, которое оно вернуло и проверьте правильный ли он.

Автор:  Lesto [ 02 июн 2014, 13:56 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

Код:
// беру из базы нужные договоры
String query = "SELECT * from contract where gr = 3";
while ( rs.next() )
{
title = rs.getString(3);
// проверяю все возможные модули (психанул :) )
for (int j = 0; j < 11; j++)
{
print( j + " " + title + " " + dsmc.getSummaForUnlock(con, j, cm.getContractByTitle(title)) );
}
}

результат:
Цитата:
0 00474 null
1 00474 null
2 00474 null
3 00474 null
4 00474 null
5 00474 null
6 00474 null
7 00474 null
8 00474 null
9 00474 null
10 00474 null

Автор:  stark [ 02 июн 2014, 14:06 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

Используйте все-таки getContractById, так надежнее , вдруг у вас там title одинаковые есть .

Автор:  stark [ 02 июн 2014, 14:09 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

Lesto писал(а):
Код:
DebetStatusManageConfig dsmc = new DebetStatusManageConfig(setup);



А setup какой туда передайте ? Точно ModuleSetup модуля npay ?

Код:
 new DebetStatusManageConfig( Setup.getSetup().getModuleSetup( mid ) );

Автор:  Lesto [ 02 июн 2014, 14:14 ]
Заголовок сообщения:  Re: Модуль NPay, получить значение

ааа, вот где собака зарыта. поправил - заработало. большое Вам русское мерси!

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/