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

View file

@ -12,6 +12,8 @@ const MODAL_WIDTH = 554
const MODAL_HEIGHT = 520
const CASHBOX_DEFAULT_CAPACITY = 500
const CASSETTE_FIELDS = ['cassette1', 'cassette2', 'cassette3', 'cassette4']
const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
const [{ step, config }, setState] = useState({
step: 0,
@ -26,6 +28,17 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
const title = `Update counts`
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 => {
if (isLastStep) {
const wasCashboxEmptied = [
@ -34,12 +47,9 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
].includes('YES')
const cashbox = wasCashboxEmptied ? 0 : machine?.cashbox
const cassettes = buildCassetteObj(it)
const { cassette1, cassette2, cassette3, cassette4 } = R.map(
defaultToZero,
it
)
save(machine.id, cashbox, cassette1, cassette2, cassette3, cassette4)
save(machine.id, cashbox, cassettes)
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(
{
type: 'cashbox',
@ -98,6 +120,7 @@ const Wizard = ({ machine, cashoutSettings, locale, onClose, save, error }) => {
steps={steps}
fiatCurrency={locale.fiatCurrency}
onContinue={onContinue}
initialValues={makeInitialValues()}
/>
)}
</Modal>

View file

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