diff --git a/InvenTree/part/templates/part/detail.html b/InvenTree/part/templates/part/detail.html index ab238a0859..86ad10f35e 100644 --- a/InvenTree/part/templates/part/detail.html +++ b/InvenTree/part/templates/part/detail.html @@ -435,8 +435,12 @@ var chart = loadPartSchedulingChart('part-schedule-chart', {{ part.pk }}); $('#btn-schedule-reload').click(function() { - chart.destroy(); - loadPartSchedulingChart('part-schedule-chart', {{ part.pk }}); + + if (chart != null) { + chart.destroy(); + } + + chart = loadPartSchedulingChart('part-schedule-chart', {{ part.pk }}); }); }); diff --git a/InvenTree/templates/js/translated/build.js b/InvenTree/templates/js/translated/build.js index 7b42e3216d..f5b16c87c6 100644 --- a/InvenTree/templates/js/translated/build.js +++ b/InvenTree/templates/js/translated/build.js @@ -1831,6 +1831,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { var available_stock = availableQuantity(row); var required = requiredQuantity(row); + var allocated = allocatedQuantity(row); var text = ''; @@ -1838,7 +1839,7 @@ function loadBuildOutputAllocationTable(buildInfo, output, options={}) { text += `${available_stock}`; } - if (available_stock < required) { + if (available_stock < (required - allocated)) { text += ``; } else { text += ``; diff --git a/InvenTree/templates/js/translated/part.js b/InvenTree/templates/js/translated/part.js index 4b204df45b..5a3799e0b2 100644 --- a/InvenTree/templates/js/translated/part.js +++ b/InvenTree/templates/js/translated/part.js @@ -2269,6 +2269,8 @@ function loadPartSchedulingChart(canvas_id, part_id) { var part_info = null; + var was_error = false; + // First, grab updated data for the particular part inventreeGet(`/api/part/${part_id}/`, {}, { async: false, @@ -2302,6 +2304,8 @@ function loadPartSchedulingChart(canvas_id, part_id) { var initial_stock_min = part_info.in_stock; var initial_stock_max = part_info.in_stock; + var n_entries = 0; + /* Request scheduling information for the part. * Note that this information has already been 'curated' by the server, * and arranged in increasing chronological order @@ -2313,6 +2317,8 @@ function loadPartSchedulingChart(canvas_id, part_id) { async: false, success: function(response) { + n_entries = response.length; + for (var idx = 0; idx < response.length; idx++) { var entry = response[idx]; @@ -2330,7 +2336,7 @@ function loadPartSchedulingChart(canvas_id, part_id) { var quantity_string = entry.quantity + entry.speculative_quantity; if (entry.speculative_quantity != 0) { - quantity_string += ``; + quantity_string += ``; } // Add an entry to the scheduling table @@ -2376,7 +2382,7 @@ function loadPartSchedulingChart(canvas_id, part_id) { // If no scheduling information is available for the part, // remove the chart and display a message instead - if (quantity_scheduled.length <= 1) { + if (n_entries < 1) { var message = `