java的getA_Java Transfer.getAmount方法代码示例

import nl.strohalm.cyclos.entities.accounts.transactions.Transfer; //导入方法依赖的package包/类

@Override

public TransactionFeePreviewDTO preview(AccountOwner from, final AccountOwner to, TransferType transferType, final BigDecimal amount, final RatesResultDTO rates) {

Calendar rawARate = rates.getEmissionDate();

Calendar rawDRate = rates.getExpirationDate();

final LocalSettings localSettings = settingsService.getLocalSettings();

if (from == null) {

from = LoggedUser.accountOwner();

}

boolean showZeroFees = (rates instanceof RatesPreviewDTO && ((RatesPreviewDTO) rates).isGraph());

final Account fromAccount = accountService.getAccount(new AccountDTO(from, transferType.getFrom()));

final Account toAccount = accountService.getAccount(new AccountDTO(to, transferType.getTo()));

BigDecimal finalAmount = amount;

final Map map = new LinkedHashMap();

transferType = fetchService.fetch(transferType, TransferType.Relationships.TRANSACTION_FEES);

final Collection extends TransactionFee> fees = transferType.getTransactionFees();

final Calendar processDate = (rates != null && rates.getDate() != null) ? rates.getDate() : Calendar.getInstance();

if (fees != null && !fees.isEmpty()) {

// Search for enabled fees that the source pays

for (final TransactionFee fee : fees) {

// We just want fees the source member would pay

if (!shouldPreviewFee(from, to, amount, fee)) {

continue;

}

// The buildTransfer() method returns a transfer if the fee should be applied or null

final BuildTransferWithFeesDTO buildParams = new BuildTransferWithFeesDTO(processDate, fromAccount, toAccount, amount, fee, true);

buildParams.setEmissionDate(rawARate);

buildParams.setExpirationDate(rawDRate);

buildParams.setShowZeroFees(showZeroFees);

final Transfer generatedTransfer = buildTransfer(buildParams);

if (generatedTransfer != null) {

final BigDecimal feeAmount = generatedTransfer.getAmount();

map.put(fee, feeAmount);

// Check deducted amount

if (fee.isDeductAmount()) {

finalAmount = finalAmount.subtract(feeAmount);

}

}

}

}

final TransactionFeePreviewForRatesDTO result = new TransactionFeePreviewForRatesDTO();

result.setFees(map);

result.setFinalAmount(localSettings.round(finalAmount));

result.setAmount(localSettings.round(amount));

result.setARate(rates.getaRate());

result.setDRate(rates.getdRate());

return result;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值