Phricker писал(а):
А как там отработать фильтр?
Т.е. якобы стоят галочки "Только используемые" и "Фильтр по договору"
Код:
boolean getUsed - только используемые
int mid - код модуля
tariffGroupFilter - фильтр по группе тарифа
TariffPlanManager planManager = new TariffPlanManager( con );
for ( TariffPlan plan : planManager.getTariffPlanList() )
{
if ( (!getUsed || plan.isUsed() || plan.getId() == defaultID)
&& (planManager.usesModule( plan.getId(), mid ) || mid < 0)
&& ( !tariffGroupFilter || isPlanInContractTariffGroup( plan ) ) )
{
}
}
private boolean isPlanInContractTariffGroup( TariffPlan plan )
{
boolean result = false;
List<Integer> contractTariffGroups = new ContractTariffGroupManager( con ).getContractTariffGroupIds( cid, new Date() );
for( Integer contractTariffGroup : contractTariffGroups )
{
TariffGroup tariffGroup = new TariffGroupManager( con ).getTariffGroupById( contractTariffGroup );
List<TariffGroupTariff> tariffGroupItems = tariffGroup.getPlanList();
//смотрим ТП в группе тарифов и отбираем только активные
for( TariffGroupTariff tariffItem : tariffGroupItems )
{
if( tariffItem.getDate2() == null )
{
if( tariffItem.getId() == plan.getId() )
{
result = true;
break;
}
}
}
}
return result;
}
Примерно так, если я верно понял то, что вы хотите сделать.