diff --git a/global_actions.py b/global_actions.py index ad917b8..61217ec 100644 --- a/global_actions.py +++ b/global_actions.py @@ -116,9 +116,9 @@ def execute_pipeline(actions, barcode, context): placeholders = ', '.join(['?'] * len(cols)) sql = f"INSERT INTO {context['table_name']} ({', '.join(cols)}) VALUES ({placeholders})" - execute_db(sql, vals) - - return {'success': True, 'message': 'Saved Successfully', 'data': field_values} + new_id = execute_db(sql, vals) + + return {'success': True, 'message': 'Saved Successfully', 'detail_id': new_id, 'data': field_values} except Exception as e: return {'success': False, 'message': f"Database Error: {str(e)}", 'data': field_values} else: diff --git a/modules/conssheets/templates/conssheets/scan_session.html b/modules/conssheets/templates/conssheets/scan_session.html index eeefa24..141d700 100644 --- a/modules/conssheets/templates/conssheets/scan_session.html +++ b/modules/conssheets/templates/conssheets/scan_session.html @@ -307,8 +307,12 @@ function processSmartScan(barcode, confirm = false) { feedbackArea.style.border = '1px solid #28a745'; feedbackText.style.color = '#28a745'; feedbackText.textContent = data.message; - if (data.message.includes('Saved')) setTimeout(() => location.reload(), 800); - } else { + if (data.detail_id && data.data) { + addScanToList(data.detail_id, data.data, data.data.duplicate_status); + } + setTimeout(() => feedbackArea.style.display = 'none', 1000); + } + else { feedbackArea.style.background = 'rgba(220, 53, 69, 0.2)'; feedbackArea.style.border = '1px solid #dc3545'; feedbackText.style.color = '#dc3545'; @@ -357,8 +361,12 @@ function saveSmartScanData() { .then(data => { if (data.success) { document.getElementById('fieldsModal').style.display = 'none'; - // Optional: Small delay to let the user see it worked - setTimeout(() => location.reload(), 300); + if (data.detail_id && data.data) { + addScanToList(data.detail_id, data.data, data.data.duplicate_status); + } + currentDupKeyValue = ''; + smartInput.value = ''; + smartInput.focus(); } else if (data.needs_input) { alert("Error: Please fill in all required fields."); } else {