diff options
author | Florian Dold <florian.dold@gmail.com> | 2020-09-01 20:37:50 +0530 |
---|---|---|
committer | Florian Dold <florian.dold@gmail.com> | 2020-09-01 20:37:50 +0530 |
commit | 044b7236572089b98a9f230499bb4cd9ad0342a3 (patch) | |
tree | f80955c0fdf6e7dc5e836d8b811e43ce637093ab /packages/taler-wallet-core/src/operations/transactions.ts | |
parent | 7f4ebca0c4330805ea8f3821dba075b34dd2be58 (diff) | |
download | wallet-core-044b7236572089b98a9f230499bb4cd9ad0342a3.tar.xz |
correct refund amounts and better testing
Diffstat (limited to 'packages/taler-wallet-core/src/operations/transactions.ts')
-rw-r--r-- | packages/taler-wallet-core/src/operations/transactions.ts | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/packages/taler-wallet-core/src/operations/transactions.ts b/packages/taler-wallet-core/src/operations/transactions.ts index 2515415d2..da75f6e53 100644 --- a/packages/taler-wallet-core/src/operations/transactions.ts +++ b/packages/taler-wallet-core/src/operations/transactions.ts @@ -281,22 +281,27 @@ export async function getTransactions( groupKey, ); let r0: WalletRefundItem | undefined; - let amountEffective = Amounts.getZero( + let amountRaw = Amounts.getZero( pr.contractData.amount.currency, ); - let amountRaw = Amounts.getZero(pr.contractData.amount.currency); + let amountEffective = Amounts.getZero(pr.contractData.amount.currency); for (const rk of Object.keys(pr.refunds)) { const refund = pr.refunds[rk]; + const myGroupKey = `${refund.executionTime.t_ms}`; + if (myGroupKey !== groupKey) { + continue; + } if (!r0) { r0 = refund; } + if (refund.type === RefundState.Applied) { - amountEffective = Amounts.add( - amountEffective, - refund.refundAmount, - ).amount; amountRaw = Amounts.add( amountRaw, + refund.refundAmount, + ).amount; + amountEffective = Amounts.add( + amountEffective, Amounts.sub( refund.refundAmount, refund.refundFee, |