package postingrules;
/*Generated by MPS */
import mf.Money;
import mf.Quantity;
public class PoorCapPR extends PostingRule {
public PoorCapPR(AccountType type, boolean isTaxable) {
super(type, isTaxable);
}
@Override
protected Money calculateAmount(AccountingEvent evt) {
Quantity amountUsed = ((Usage) evt).getAmount();
Quantity usageLimit = (Quantity) evt.getAgreement().getValue("CAP", evt.getWhenOccurred());
final double reducedRate = (Double) evt.getAgreement().getValue("REDUCED_RATE", evt.getWhenOccurred());
return ((amountUsed.isGreaterThan(usageLimit)) ? Money.dollars(amountUsed.getAmount() * (Double) evt.getAgreement().getValue("BASE_RATE", evt.getWhenOccurred())) : Money.dollars(amountUsed.getAmount() * reducedRate));
}
}