@Override public boolean apply(final CatalogOverrideBlockDefinitionModelDao input) { return (input.getParentUnitName().equals(curTieredBlock.getUnit().getName()) && Double.compare(input.getSize(), curTieredBlock.getSize()) == 0 && Double.compare(input.getMax(), curTieredBlock.getMax()) == 0); } }).orNull();
@Override public boolean apply(final TieredBlockPriceOverride input) { return (input != null && input.getUnitName().equals(curTieredBlock.getUnit().getName()) && Double.compare(input.getSize(), curTieredBlock.getSize()) == 0 && Double.compare(input.getMax(), curTieredBlock.getMax()) == 0); }
@Override public boolean apply(final TieredBlockPriceOverride input) { return input.getUnitName() != null && input.getSize() != null && input.getMax() != null && (input.getUnitName().equals(curTieredBlock.getUnit().getName()) && Double.compare(input.getSize(), curTieredBlock.getSize()) == 0 && Double.compare(input.getMax(), curTieredBlock.getMax()) == 0); } }).orNull();
public DefaultTieredBlock(TieredBlock in, TieredBlockPriceOverride override, Currency currency) { super((DefaultUnit) in.getUnit(), in.getSize(), (DefaultInternationalPrice) in.getPrice(), override.getPrice(), currency); this.max = in.getMax(); }
@Override public boolean apply(final TierPriceOverride input) { if (input != null) { final List<TieredBlockPriceOverride> blockPriceOverrides = input.getTieredBlockPriceOverrides(); for (TieredBlockPriceOverride blockDef : blockPriceOverrides) { String unitName = blockDef.getUnitName(); Double max = blockDef.getMax(); Double size = blockDef.getSize(); for (TieredBlock curTieredBlock : curTieredBlocks) { if (unitName.equals(curTieredBlock.getUnit().getName()) && Double.compare(size, curTieredBlock.getSize()) == 0 && Double.compare(max, curTieredBlock.getMax()) == 0) { return true; } } } } return false; } }).orNull();
@Override public boolean apply(final CatalogOverrideTierDefinitionModelDao input) { final List<CatalogOverrideBlockDefinitionModelDao> blockDefs = overrideDao.getOverriddenTierBlocks(input.getRecordId(), context); for (CatalogOverrideBlockDefinitionModelDao blockDef : blockDefs) { String unitName = blockDef.getParentUnitName(); Double max = blockDef.getMax(); Double size = blockDef.getSize(); for (TieredBlock curTieredBlock : curTieredBlocks) { if (unitName.equals(curTieredBlock.getUnit().getName()) && Double.compare(size, curTieredBlock.getSize()) == 0 && Double.compare(max, curTieredBlock.getMax()) == 0) { return true; } } } return false; }
@Override public boolean apply(final TierPriceOverride input) { if (input.getTieredBlockPriceOverrides() != null) { for (TieredBlockPriceOverride blockPriceOverride : input.getTieredBlockPriceOverrides()) { String unitName = blockPriceOverride.getUnitName(); Double max = blockPriceOverride.getMax(); Double size = blockPriceOverride.getSize(); for (int i = 0; i < curTier.getTieredBlocks().length; i++) { TieredBlock curTieredBlock = curTier.getTieredBlocks()[i]; if (unitName.equals(curTieredBlock.getUnit().getName()) && Double.compare(size, curTieredBlock.getSize()) == 0 && Double.compare(max, curTieredBlock.getMax()) == 0) { return true; } } } } return false; } }).orNull();
private DefaultTieredBlock toDefaultTieredBlock(TieredBlock input) { DefaultTieredBlock result = null; if (input != null) { result = new DefaultTieredBlock(); result.setUnit(toDefaultUnit(input.getUnit())); result.setMax(input.getMax()); result.setType(input.getType()); result.setSize(input.getSize()); result.setPrice(toDefaultInternationalPrice(input.getPrice())); } return result; }
assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getUnit().getName(), "cell-phone-minutes"); assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getSize(), new Double("1000")); assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getMax(), new Double("10000")); assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getPrice().getPrices().length, 1); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getSize(), new Double("512")); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getMax(), new Double("512000")); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getPrice().getPrices().length, 1);
private List<TieredBlockJson> buildTieredBlocks(final TieredBlock[] tieredBlocks) throws CurrencyValueNull { List<TieredBlockJson> tieredBlocksJson = new ArrayList<TieredBlockJson>(); if (tieredBlocks != null && tieredBlocks.length > 0) { for (int i = 0; i < tieredBlocks.length; i++) { tieredBlocksJson.add(new TieredBlockJson(tieredBlocks[i].getUnit().getName(), tieredBlocks[i].getSize().toString(), tieredBlocks[i].getMax().toString(), buildPrices(tieredBlocks[i].getPrice()))); } } return tieredBlocksJson; } }
UsageConsumableInArrearTierUnitAggregate computeToBeBilledConsumableInArrearWith_TOP_TIER(final List<TieredBlock> tieredBlocks, final List<UsageConsumableInArrearTierUnitAggregate> previousUsage, final Long units) throws CatalogApiException { int remainingUnits = units.intValue(); // By default last last tierBlock TieredBlock targetBlock = tieredBlocks.get(tieredBlocks.size() - 1); int targetTierNum = tieredBlocks.size(); int tierNum = 0; // Loop through all tier block for (final TieredBlock tieredBlock : tieredBlocks) { tierNum++; final int blockTierSize = tieredBlock.getSize().intValue(); final int tmp = remainingUnits / blockTierSize + (remainingUnits % blockTierSize == 0 ? 0 : 1); if ( tmp > tieredBlock.getMax()) { /* Includes the case where max is unlimited (-1) */ remainingUnits -= tieredBlock.getMax() * blockTierSize; } else { targetBlock = tieredBlock; targetTierNum = tierNum; break; } } final int lastBlockTierSize = targetBlock.getSize().intValue(); final int nbBlocks = units.intValue() / lastBlockTierSize + (units.intValue() % lastBlockTierSize == 0 ? 0 : 1); return new UsageConsumableInArrearTierUnitAggregate(targetTierNum, targetBlock.getUnit().getName(), targetBlock.getPrice().getPrice(getCurrency()), targetBlock.getSize().intValue(), nbBlocks); }
@Override public boolean apply(final CatalogOverrideBlockDefinitionModelDao input) { return (input.getParentUnitName().equals(curTieredBlock.getUnit().getName()) && Double.compare(input.getSize(), curTieredBlock.getSize()) == 0 && Double.compare(input.getMax(), curTieredBlock.getMax()) == 0); } }).orNull();
@Override public boolean apply(final TieredBlockPriceOverride input) { return (input != null && input.getUnitName().equals(curTieredBlock.getUnit().getName()) && Double.compare(input.getSize(), curTieredBlock.getSize()) == 0 && Double.compare(input.getMax(), curTieredBlock.getMax()) == 0); }
public DefaultTieredBlock(TieredBlock in, TieredBlockPriceOverride override, Currency currency) { super((DefaultUnit) in.getUnit(), in.getSize(), (DefaultInternationalPrice) in.getPrice(), override.getPrice(), currency); this.max = in.getMax(); }
@Override public boolean apply(final TieredBlockPriceOverride input) { return input.getUnitName() != null && input.getSize() != null && input.getMax() != null && (input.getUnitName().equals(curTieredBlock.getUnit().getName()) && Double.compare(input.getSize(), curTieredBlock.getSize()) == 0 && Double.compare(input.getMax(), curTieredBlock.getMax()) == 0); } }).orNull();
@Override public boolean apply(final TierPriceOverride input) { if (input != null) { final List<TieredBlockPriceOverride> blockPriceOverrides = input.getTieredBlockPriceOverrides(); for (TieredBlockPriceOverride blockDef : blockPriceOverrides) { String unitName = blockDef.getUnitName(); Double max = blockDef.getMax(); Double size = blockDef.getSize(); for (TieredBlock curTieredBlock : curTieredBlocks) { if (unitName.equals(curTieredBlock.getUnit().getName()) && Double.compare(size, curTieredBlock.getSize()) == 0 && Double.compare(max, curTieredBlock.getMax()) == 0) { return true; } } } } return false; } }).orNull();
@Override public boolean apply(final CatalogOverrideTierDefinitionModelDao input) { final List<CatalogOverrideBlockDefinitionModelDao> blockDefs = overrideDao.getOverriddenTierBlocks(input.getRecordId(), context); for (CatalogOverrideBlockDefinitionModelDao blockDef : blockDefs) { String unitName = blockDef.getParentUnitName(); Double max = blockDef.getMax(); Double size = blockDef.getSize(); for (TieredBlock curTieredBlock : curTieredBlocks) { if (unitName.equals(curTieredBlock.getUnit().getName()) && Double.compare(size, curTieredBlock.getSize()) == 0 && Double.compare(max, curTieredBlock.getMax()) == 0) { return true; } } } return false; }
@Override public boolean apply(final TierPriceOverride input) { if (input.getTieredBlockPriceOverrides() != null) { for (TieredBlockPriceOverride blockPriceOverride : input.getTieredBlockPriceOverrides()) { String unitName = blockPriceOverride.getUnitName(); Double max = blockPriceOverride.getMax(); Double size = blockPriceOverride.getSize(); for (int i = 0; i < curTier.getTieredBlocks().length; i++) { TieredBlock curTieredBlock = curTier.getTieredBlocks()[i]; if (unitName.equals(curTieredBlock.getUnit().getName()) && Double.compare(size, curTieredBlock.getSize()) == 0 && Double.compare(max, curTieredBlock.getMax()) == 0) { return true; } } } } return false; } }).orNull();
public PhasePriceJson(final String planName, final String phaseName, final String phaseType, final BigDecimal fixedPrice, final BigDecimal recurringPrice, final Usage[] usagePrices, final Currency currency) throws CatalogApiException { this.planName = planName; this.phaseName = phaseName; this.phaseType = phaseType; this.fixedPrice = fixedPrice; this.recurringPrice = recurringPrice; this.usagePrices = new LinkedList<UsagePriceJson>(); for (final Usage usage : usagePrices) { List<TierPriceJson> usageTierPrices = new LinkedList<TierPriceJson>(); for (final Tier tier : usage.getTiers()) { List<BlockPriceJson> blockPrices = new LinkedList<BlockPriceJson>(); for (final TieredBlock block : tier.getTieredBlocks()) { BlockPriceJson blockPriceJson = new BlockPriceJson(block.getUnit().getName(), block.getSize(), block.getPrice().getPrice(currency), block.getMax()); blockPrices.add(blockPriceJson); } TierPriceJson tierPriceJson = new TierPriceJson(blockPrices); usageTierPrices.add(tierPriceJson); } final UsagePriceJson usagePriceJson = new UsagePriceJson(usage.getName(), usage.getUsageType(), usage.getBillingMode(), usage.getTierBlockPolicy(), usageTierPrices); this.usagePrices.add(usagePriceJson); } }
private DefaultTieredBlock toDefaultTieredBlock(TieredBlock input) { DefaultTieredBlock result = null; if (input != null) { result = new DefaultTieredBlock(); result.setUnit(toDefaultUnit(input.getUnit())); result.setMax(input.getMax()); result.setType(input.getType()); result.setSize(input.getSize()); result.setPrice(toDefaultInternationalPrice(input.getPrice())); } return result; }