Merge pull request #978 from chaotixkilla/fix-cash-cassettes-wizard-disabled-cashout

Fix cash cassettes wizard not working on disabled cash-out machines
This commit is contained in:
Rafael Taranto 2021-12-07 16:42:42 +00:00 committed by GitHub
commit 18ab814ca8
3 changed files with 36 additions and 19 deletions

View file

@ -151,7 +151,10 @@ const CashCassettes = () => {
machines machines
) )
const onSave = (id, cashbox, cassette1, cassette2, cassette3, cassette4) => { const getCashoutSettings = id => fromNamespace(id)(cashout)
const isCashOutDisabled = ({ id }) => !getCashoutSettings(id).active
const onSave = (id, cashbox, cassettes) => {
const oldCashboxCount = cashboxCounts[id] const oldCashboxCount = cashboxCounts[id]
if (cashbox < oldCashboxCount) { if (cashbox < oldCashboxCount) {
createBatch({ createBatch({
@ -167,15 +170,10 @@ const CashCassettes = () => {
action: 'setCassetteBills', action: 'setCassetteBills',
deviceId: id, deviceId: id,
cashbox, cashbox,
cassette1, ...cassettes
cassette2,
cassette3,
cassette4
} }
}) })
} }
const getCashoutSettings = id => fromNamespace(id)(cashout)
const isCashOutDisabled = ({ id }) => !getCashoutSettings(id).active
const elements = [ const elements = [
{ {

View file

@ -12,6 +12,8 @@ const MODAL_WIDTH = 554
const MODAL_HEIGHT = 520 const MODAL_HEIGHT = 520
const CASHBOX_DEFAULT_CAPACITY = 500 const CASHBOX_DEFAULT_CAPACITY = 500
const CASSETTE_FIELDS = ['cassette1', 'cassette2', 'cassette3', 'cassette4']
const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => { const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
const [{ step, config }, setState] = useState({ const [{ step, config }, setState] = useState({
step: 0, step: 0,
@ -26,6 +28,17 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
const title = `Update counts` const title = `Update counts`
const isLastStep = step === LAST_STEP const isLastStep = step === LAST_STEP
const buildCassetteObj = cassetteInput => {
return R.reduce(
(acc, value) => {
acc[value] = defaultToZero(cassetteInput[value])
return acc
},
{},
CASSETTE_FIELDS
)
}
const onContinue = it => { const onContinue = it => {
if (isLastStep) { if (isLastStep) {
const wasCashboxEmptied = [ const wasCashboxEmptied = [
@ -34,12 +47,9 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
].includes('YES') ].includes('YES')
const cashbox = wasCashboxEmptied ? 0 : machine?.cashbox const cashbox = wasCashboxEmptied ? 0 : machine?.cashbox
const cassettes = buildCassetteObj(it)
const { cassette1, cassette2, cassette3, cassette4 } = R.map( save(machine.id, cashbox, cassettes)
defaultToZero,
it
)
save(machine.id, cashbox, cassette1, cassette2, cassette3, cassette4)
return onClose() return onClose()
} }
@ -66,6 +76,18 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
})) }))
) )
const makeInitialValues = () =>
!R.isEmpty(cashoutSettings)
? R.reduce(
(acc, value) => {
acc[`cassette${value}`] = ''
return acc
},
{},
R.range(1, numberOfCassettes + 1)
)
: {}
const steps = R.prepend( const steps = R.prepend(
{ {
type: 'cashbox', type: 'cashbox',
@ -98,6 +120,7 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
steps={steps} steps={steps}
fiatCurrency={locale.fiatCurrency} fiatCurrency={locale.fiatCurrency}
onContinue={onContinue} onContinue={onContinue}
initialValues={makeInitialValues()}
/> />
)} )}
</Modal> </Modal>

View file

@ -112,7 +112,8 @@ const WizardStep = ({
lastStep, lastStep,
steps, steps,
fiatCurrency, fiatCurrency,
onContinue onContinue,
initialValues
}) => { }) => {
const classes = useStyles() const classes = useStyles()
@ -211,12 +212,7 @@ const WizardStep = ({
validateOnBlur={false} validateOnBlur={false}
validateOnChange={false} validateOnChange={false}
onSubmit={onContinue} onSubmit={onContinue}
initialValues={{ initialValues={initialValues}
cassette1: '',
cassette2: '',
cassette3: '',
cassette4: ''
}}
enableReinitialize enableReinitialize
validationSchema={steps[step - 1].schema}> validationSchema={steps[step - 1].schema}>
{({ values }) => ( {({ values }) => (