Package org.fenixedu.academic.util

Examples of org.fenixedu.academic.util.Money


        @Override
        public Object convert(Class type, Object value) {
            final String numberText = ((String) value).trim();
            try {
                return numberText.length() == 0 ? null : new Money(numberText);
            } catch (NumberFormatException e) {
                throw new ConversionException("renderers.converter.money", e, true, value);
            }
        }
View Full Code Here


        setPenaltyPerDay(penaltyPerDay);
    }

    @Override
    public List<EntryDTO> calculateEntries(Event event, DateTime when) {
        Money amounToPay = event.calculateAmountToPay(when);
        return Collections.singletonList(new EntryDTO(getEntryType(), event, calculateTotalAmountToPay(event, when), amounToPay,
                amounToPay, event.getDescriptionForEntryType(getEntryType()), amounToPay));
    }
View Full Code Here

    }

    @Override
    protected Money doCalculationForAmountToPay(Event event, DateTime when, boolean applyDiscount) {
        ResidenceEvent residenceEvent = (ResidenceEvent) event;
        Money baseValue = residenceEvent.getRoomValue();
        if (residenceEvent.getPaymentLimitDate().isAfter(when)) {
            return baseValue;
        }
        return baseValue.add(getPenaltyPerDay().multiply(
                BigDecimal.valueOf(Days.daysBetween(residenceEvent.getPaymentLimitDate(), when).getDays())));
    }
View Full Code Here

        }
    }

    @Override
    protected Money doCalculationForAmountToPay(Event event, DateTime when, boolean applyDiscount) {
        final Money result = isUrgent(event) ? getBaseAmount().multiply(BigDecimal.valueOf(2d)) : getBaseAmount();
        return result.add(getAmountForPages(event));
    }
View Full Code Here

        final YearMonthDay paymentEndDate =
                administrativeOfficeFeeAndInsuranceEvent.getPaymentEndDate() != null ? administrativeOfficeFeeAndInsuranceEvent
                        .getPaymentEndDate() : getWhenToApplyFixedAmountPenalty();

        final Money amountPayedUntilEndDate =
                calculateAmountPayedUntilEndDate(administrativeOfficeFeeAndInsuranceEvent, paymentEndDate);

        if (!when.toYearMonthDay().isAfter(paymentEndDate)) {
            return false;
        }

        return amountPayedUntilEndDate.lessThan(getFixedAmount());

    }
View Full Code Here

        return amountPayedUntilEndDate.lessThan(getFixedAmount());

    }

    private Money calculateAmountPayedUntilEndDate(AdministrativeOfficeFeeAndInsuranceEvent event, YearMonthDay paymentEndDate) {
        Money result = Money.ZERO;

        for (final AccountingTransaction transaction : event.getNonAdjustingTransactions()) {
            if (transaction.getToAccountEntry().getEntryType() == getEntryType()
                    && !transaction.getWhenRegistered().toYearMonthDay().isAfter(paymentEndDate)) {
                result = result.add(transaction.getAmountWithAdjustment());
            }
        }

        return result;
    }
View Full Code Here

        final List<EntryDTO> result = new ArrayList<EntryDTO>(super.calculateEntries(event, when));
        Map<EntryType, Money> payedAmounts = new HashMap<EntryType, Money>();
        final Iterator<EntryDTO> iterator = result.iterator();
        while (iterator.hasNext()) {
            final EntryDTO entryDTO = iterator.next();
            Money payedAmount = payedAmounts.get(entryDTO.getEntryType());
            if (payedAmount == null) {
                payedAmount = event.getPayedAmountFor(entryDTO.getEntryType());
            }
            entryDTO.setAmountToPay(entryDTO.getAmountToPay().subtract(payedAmount));
            if (!entryDTO.getAmountToPay().isPositive()) {
View Full Code Here

    public Money getPayedAmountFor(EntryType entryType) {
        if (isCancelled()) {
            throw new DomainException("error.accounting.Event.cannot.calculatePayedAmount.on.invalid.events");
        }

        Money payedAmount = Money.ZERO;
        for (final AccountingTransaction transaction : getNonAdjustingTransactions()) {
            if (transaction.getToAccountEntry().getEntryType().equals(entryType)) {
                payedAmount = payedAmount.add(transaction.getToAccountEntry().getAmountWithAdjustment());
            }
        }
        return payedAmount;
    }
View Full Code Here

    public Money getPayedAmount(final DateTime until) {
        if (isCancelled()) {
            throw new DomainException("error.accounting.Event.cannot.calculatePayedAmount.on.invalid.events");
        }

        Money payedAmount = Money.ZERO;
        for (final AccountingTransaction transaction : getNonAdjustingTransactions()) {
            if (until == null || !transaction.getWhenRegistered().isAfter(until)) {
                payedAmount = payedAmount.add(transaction.getToAccountEntry().getAmountWithAdjustment());
            }
        }

        return payedAmount;
    }
View Full Code Here

    public Money getPayedAmountBetween(final DateTime startDate, final DateTime endDate) {
        if (isCancelled()) {
            throw new DomainException("error.accounting.Event.cannot.calculatePayedAmountBetween.on.invalid.events");
        }

        Money payedAmount = Money.ZERO;
        for (final AccountingTransaction transaction : getNonAdjustingTransactions()) {
            if (!transaction.getWhenRegistered().isBefore(startDate) && !transaction.getWhenRegistered().isAfter(endDate)) {
                payedAmount = payedAmount.add(transaction.getToAccountEntry().getAmountWithAdjustment());
            }
        }

        return payedAmount;
View Full Code Here

TOP

Related Classes of org.fenixedu.academic.util.Money

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.