public DefaultTieredBlock(TieredBlock in, TieredBlockPriceOverride override, Currency currency) { super((DefaultUnit) in.getUnit(), in.getSize(), (DefaultInternationalPrice) in.getPrice(), override.getPrice(), currency); this.max = in.getMax(); }
assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getPrice().getPrices().length, 1); assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getPrice().getPrices()[0].getCurrency(), Currency.BTC); assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getPrice().getPrices()[0].getValue(), new BigDecimal("0.5")); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getPrice().getPrices().length, 1); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getPrice().getPrices()[0].getCurrency(), Currency.BTC); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getPrice().getPrices()[0].getValue(), new BigDecimal("0.3")); } catch (Exception e) { Assert.fail(e.toString());
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; }
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); }
public DefaultTieredBlock(TieredBlock in, TieredBlockPriceOverride override, Currency currency) { super((DefaultUnit) in.getUnit(), in.getSize(), (DefaultInternationalPrice) in.getPrice(), override.getPrice(), currency); this.max = in.getMax(); }
toBeBilledDetails.add(new UsageConsumableInArrearTierUnitAggregate(tierNum, tieredBlock.getUnit().getName(), tieredBlock.getPrice().getPrice(getCurrency()), blockTierSize, nbUsedTierBlocks));
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); } }
assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getPrice().getPrices().length, 1); assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getPrice().getPrices()[0].getCurrency(), Currency.BTC); assertEquals(usage.getTiers()[0].getTieredBlocks()[0].getPrice().getPrices()[0].getValue(), new BigDecimal("0.5")); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getPrice().getPrices().length, 1); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getPrice().getPrices()[0].getCurrency(), Currency.BTC); assertEquals(usage.getTiers()[0].getTieredBlocks()[1].getPrice().getPrices()[0].getValue(), new BigDecimal("0.3")); } catch (Exception e) { Assert.fail(e.toString());
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; }