diff --git a/lib/plugins.js b/lib/plugins.js index 1f8cd51b..c08ba46f 100644 --- a/lib/plugins.js +++ b/lib/plugins.js @@ -599,7 +599,7 @@ function plugins (settings, deviceId) { } : null - const cassette1Alert = cashOutEnabled && device.cassette1 < notifications.fiatBalanceCassette1 + const cassette1Alert = cashOutEnabled && (device.cassette1 / 500) < notifications.fillingPercentageCassette1 ? { code: 'LOW_CASH_OUT', cassette: 1, @@ -611,7 +611,7 @@ function plugins (settings, deviceId) { } : null - const cassette2Alert = cashOutEnabled && device.cassette2 < notifications.fiatBalanceCassette2 + const cassette2Alert = cashOutEnabled && (device.cassette2 / 500) < notifications.fillingPercentageCassette2 ? { code: 'LOW_CASH_OUT', cassette: 2, diff --git a/migrations/1619968992683-fiat-balance-notification-to-percent.js b/migrations/1619968992683-fiat-balance-notification-to-percent.js new file mode 100644 index 00000000..ea9a7afa --- /dev/null +++ b/migrations/1619968992683-fiat-balance-notification-to-percent.js @@ -0,0 +1,52 @@ +const _ = require('lodash/fp') +const { saveConfig, loadLatest } = require('../lib/new-settings-loader') + +exports.up = function (next) { + loadLatest() + .then(({ config }) => { + const fiatBalance1 = config.notifications_fiatBalanceCassette1 + const fiatBalance2 = config.notifications_fiatBalanceCassette2 + + if (fiatBalance1) { + config.notifications_fiatBalanceCassette1 = (100 * (fiatBalance1 / 500)).toFixed(0) + } + if (fiatBalance2) { + config.notifications_fiatBalanceCassette2 = (100 * (fiatBalance2 / 500)).toFixed(0) + } + + const { + notifications_fiatBalanceCassette1: notifications_fillingPercentageCassette1, + notifications_fiatBalanceCassette2: notifications_fillingPercentageCassette2, + ...rest + } = config + + config = { notifications_fillingPercentageCassette1, notifications_fillingPercentageCassette2, ...rest } + + config.notifications_fiatBalanceOverrides = _.map(override => { + if (override.fiatBalanceCassette1) { + override.fiatBalanceCassette1 = (100 * (override.fiatBalanceCassette1 / 500)).toFixed(0) + } + if (override.fiatBalanceCassette2) { + override.fiatBalanceCassette2 = (100 * (override.fiatBalanceCassette2 / 500)).toFixed(0) + } + const { + fiatBalanceCassette1: fillingPercentageCassette1, + fiatBalanceCassette2: fillingPercentageCassette2, + ...rest } = override + return { fillingPercentageCassette1, fillingPercentageCassette2, ...rest } + }, config.notifications_fiatBalanceOverrides) + + return saveConfig(config) + .then(() => next()) + }) + .catch(err => { + if (err.message === 'lamassu-server is not configured') { + return next() + } + console.log(err.message) + return next(err) + }) +} +module.exports.down = function (next) { + next() +} diff --git a/new-lamassu-admin/src/components/inputs/cashbox/Cashbox.js b/new-lamassu-admin/src/components/inputs/cashbox/Cashbox.js index 52cb5d25..13123963 100644 --- a/new-lamassu-admin/src/components/inputs/cashbox/Cashbox.js +++ b/new-lamassu-admin/src/components/inputs/cashbox/Cashbox.js @@ -18,20 +18,26 @@ const Cashbox = ({ cashOut = false, className, emptyPartClassName, - labelClassName + labelClassName, + inFiatBalanceAlerts }) => { const classes = cashboxClasses({ percent, cashOut }) const threshold = 51 return ( -