Если можно хотелось бы получить более детальную информацию по данному классу, т.к. он часто используем а в доках о нем кажется вообще ничего нет.
Стандартная задача с отключением абонентов при достижении нуля.
Но у меня используются разные тарифы.
В одном тарифе абонплата снимается за месяц безусловно.
В другом тарифе абонплата снимается посуточно и цена указана за сутки.
В третьем тарифе абонплата снимается посуточно но цена указана за месяц.
Возможно из за моего недопонимания как работать с классом TariffRequest мне приходится в первом случае сделать скрипт который выполняется раз в месяц.
Во втором случае скрипт выполняется ежесуточно но при этом:
Код:
for( TariffModuleTree tree : tts.getTreeList( df ) ) {
req = new TariffRequest();
req.setRequestParam( "action", "calculate" );
req.setRequestParam( "sid", sid );
// считаем абонплату пропорционально количеству дней до конца месяца(действует для тарифов "Пропорционально периоду")
// всего дней в месяце
req.setRequestParam( "month_days",1);
// всего дней до конца месяца
req.setRequestParam( "period_days", 1);
req.setRequestParam( "time", df);
tree.processRequest( req );
cost = (Double) req.getResponseParam( "cost" );
cost_type = req.getResponseParam( "cost_type" );
print ( "cost: " + cost );
print ( "cost: " + cost_type );
if( req.wasAccepted() && cost != null ) {
print( cost );
totalCost += cost;
break;
}
}
ну и в третьем случае.
Код:
for( TariffModuleTree tree : tts.getTreeList( df ) ) {
req = new TariffRequest();
req.setRequestParam( "action", "calculate" );
req.setRequestParam( "sid", sid );
// считаем абонплату пропорционально количеству дней до конца месяца(действует для тарифов "Пропорционально периоду")
// всего дней в месяце
req.setRequestParam( "month_days",1);
// всего дней до конца месяца
req.setRequestParam( "period_days", 1);
req.setRequestParam( "time", df);
tree.processRequest( req );
cost = (Double) req.getResponseParam( "cost" );
if (cost != null)
cost = cost /df.getActualMaximum(Calendar.DAY_OF_MONTH);
cost_type = req.getResponseParam( "cost_type" );
print ( "cost: " + cost );
print ( "cost: " + cost_type );
if( req.wasAccepted() && cost != null ) {
print( cost );
totalCost += cost;
break;
}
}
Самое что не догоняю это параметры month_days, period_days для чего служат. Я экспериментировал с ними однако в результате все равно одно вычисляется полная абонплата за месяц.
Хотелось бы сделать все это одним скриптом!! А не 3 скрипта для разных тарифов использовать.