private TokenAllocationResult distributeTotalRemainingTokensToTier(SaleTier tier) { BigInteger totalRemainingTokens = getTotalRemainingTomics(); tier.setTomicsSold(tier.getTomicsSold().add(totalRemainingTokens)); saleTierRepository.save(tier); return new TokenAllocationResult(totalRemainingTokens, BigDecimal.ZERO); }
/** * Calculates the status of the sale tier according to his current properties. * See {@link StatusType} for how which status is determined. * * @param date The date at which to determine the tiers status. Usually one will want to use the * current date. * @return the status of the sale tier at the given date. */ public StatusType getStatusAtDate(Date date) { StatusType status; if (this.getEndDate().compareTo(date) <= 0) { status = StatusType.CLOSED; } else if (this.getStartDate().compareTo(date) <= 0 && this.getEndDate().compareTo(date) > 0) { if (this.getTomicsSold().compareTo(this.getTomicsMax()) >= 0) { status = StatusType.CLOSED; } else { status = StatusType.ACTIVE; } } else { status = StatusType.INCOMING; } return status; } }
protected SaleTierResponse fromEntityToResponse(SaleTier tier) { SaleTierResponse response = new SaleTierResponse(); response.setAmount(tier.getTomicsSold()); response.setDiscount(tier.getDiscount()); response.setEndDate(tier.getEndDate()); response.setStartDate(tier.getStartDate()); response.setMaxAmount(tier.getTomicsMax()); response.setName(tier.getDescription()); response.setTierNo(tier.getTierNo()); response.setType(tier.getStatusAtDate(Date.from(Instant.now()))); return response; } }
return handleTotalMaxOverflow(tier, tomicsInteger); } else { tier.setTomicsSold(tier.getTomicsSold().add(tomicsInteger)); if (tier.isFull()) { if (tier.hasDynamicDuration()) shiftDates(tier, blockTime);
tiers.get(5).datesMustBeShiftedBy(dateShift); tiers.get(2).tomicsMaxMustBe(totalTomicsAmount() .subtract(tiers.get(0).getTier().getTomicsSold()) .subtract(tiers.get(1).getTomicsMax()));
public void assertTier() { LOG.info("Asserting Tier {}", tierNo); if (newStartDate != null) assertEquals(0, newStartDate.compareTo(getTier().getStartDate())); else assertEquals(0, initialStartDate.compareTo(getTier().getStartDate())); if (newEndDate != null) assertEquals(0, newEndDate.compareTo(getTier().getEndDate())); else assertEquals(0, initialEndDate.compareTo(getTier().getEndDate())); LOG.info("{} tomics sold on Tier {}", getTier().getTomicsSold(), tierNo); LOG.info("{} tomics should have been sold on Tier {}", tomicsSold, tierNo); if (tomicsSold != null) assertEquals(0, tomicsSold.compareTo(getTier().getTomicsSold())); if (mustBeFull) assertTrue(getTier().isFull()); else assertFalse(getTier().isFull()); if (newTomicsMax != null) assertEquals(0, newTomicsMax.compareTo(getTier().getTomicsMax())); else assertEquals(0, initialTomicsMax.compareTo(getTier().getTomicsMax())); }