From ca5d3a57de0804997634852ca8d74b4b6307dc4a Mon Sep 17 00:00:00 2001 From: Oliver Date: Sun, 11 Jul 2021 20:49:54 +1000 Subject: [PATCH] Set quantity input parameters based on action --- InvenTree/templates/js/forms.js | 10 +++++----- InvenTree/templates/js/stock.js | 33 +++++++++++++++++++++++++++++++-- 2 files changed, 36 insertions(+), 7 deletions(-) diff --git a/InvenTree/templates/js/forms.js b/InvenTree/templates/js/forms.js index 722db85d1c..f0807bda28 100644 --- a/InvenTree/templates/js/forms.js +++ b/InvenTree/templates/js/forms.js @@ -1482,21 +1482,21 @@ function constructInputOptions(name, classes, type, parameters) { opts.push(`readonly=''`); } - if (parameters.value) { + if (parameters.value != null) { // Existing value? opts.push(`value='${parameters.value}'`); - } else if (parameters.default) { + } else if (parameters.default != null) { // Otherwise, a defualt value? opts.push(`value='${parameters.default}'`); } // Maximum input length - if (parameters.max_length) { + if (parameters.max_length != null) { opts.push(`maxlength='${parameters.max_length}'`); } // Minimum input length - if (parameters.min_length) { + if (parameters.min_length != null) { opts.push(`minlength='${parameters.min_length}'`); } @@ -1516,7 +1516,7 @@ function constructInputOptions(name, classes, type, parameters) { } // Placeholder? - if (parameters.placeholder) { + if (parameters.placeholder != null) { opts.push(`placeholder='${parameters.placeholder}'`); } diff --git a/InvenTree/templates/js/stock.js b/InvenTree/templates/js/stock.js index 339b0c4f43..a2be9b4fc0 100644 --- a/InvenTree/templates/js/stock.js +++ b/InvenTree/templates/js/stock.js @@ -70,6 +70,33 @@ function adjustStock(items, options={}) { var pk = item.pk; + var readonly = (item.serial != null); + var minValue = null; + var maxValue = null; + var value = null; + + switch (options.action) { + case 'move': + minValue = 0; + maxValue = item.quantity; + value = item.quantity; + break; + case 'add': + minValue = 0; + value = 0; + break; + case 'take': + minValue = 0; + value = 0; + break; + case 'count': + minValue = 0; + value = item.quantity; + break; + default: + break; + } + var image = item.part_detail.thumbnail || item.part_detail.image || blankImage(); var status = stockStatusDisplay(item.status, { @@ -94,8 +121,10 @@ function adjustStock(items, options={}) { actionInput = constructNumberInput( item.pk, { - value: item.quantity, - min_value: 0, + value: value, + min_value: minValue, + max_value: maxValue, + readonly: readonly, } ) };