diff --git a/lib/plugins.js b/lib/plugins.js index e67fa503..1c7b3681 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -105,18 +105,14 @@ function plugins (settings, deviceId) { } function computeAvailableCassettes (cassettes, redeemableTxs) { - const orderedCassettes = _.orderBy(['denomination'], ['desc'], cassettes) - if (_.isEmpty(redeemableTxs)) return orderedCassettes + if (_.isEmpty(redeemableTxs)) return cassettes const sumTxs = (sum, tx) => { // cash-out-helper sends 0 as fallback value, need to filter it out as there are no '0' denominations const bills = _.filter(it => it.denomination > 0, tx.bills) const sameDenominations = a => a[0]?.denomination === a[1]?.denomination - // Order cassettes and bills to make sure they match - const orderedBills = _.orderBy(['denomination'], ['desc'], bills) - - const doDenominationsMatch = _.every(sameDenominations, _.zip(orderedCassettes, orderedBills)) + const doDenominationsMatch = _.every(sameDenominations, _.zip(cassettes, bills)) if (!doDenominationsMatch) { throw new Error('Denominations don\'t add up, cassettes were changed.') @@ -125,8 +121,8 @@ function plugins (settings, deviceId) { return _.map(r => r[0] + r[1].provisioned, _.zip(sum, tx.bills)) } - const provisioned = _.reduce(sumTxs, _.times(_.constant(0), _.size(orderedCassettes)), redeemableTxs) - const zipped = _.zip(_.map('count', orderedCassettes), provisioned) + const provisioned = _.reduce(sumTxs, _.times(_.constant(0), _.size(cassettes)), redeemableTxs) + const zipped = _.zip(_.map('count', cassettes), provisioned) const counts = _.map(r => r[0] - r[1], zipped) if (_.some(_.lt(_, 0), counts)) { @@ -136,10 +132,10 @@ function plugins (settings, deviceId) { const computedCassettes = [] _.forEach(it => { computedCassettes.push({ - denomination: orderedCassettes[it].denomination, + denomination: cassettes[it].denomination, count: counts[it] }) - }, _.times(_.identity(), _.size(orderedCassettes))) + }, _.times(_.identity(), _.size(cassettes))) return computedCassettes }