diff --git a/index.php b/index.php
index 7e49dab..9a68a77 100644
--- a/index.php
+++ b/index.php
@@ -4935,8 +4935,8 @@ document.addEventListener('DOMContentLoaded', function() {
}
};
- returnInvoiceSelect.addEventListener('change', async function() {
- const invoiceId = this.value;
+ const handleInvoiceChange = async function() {
+ const invoiceId = returnInvoiceSelect.value;
const container = document.getElementById('return_items_container');
const tbody = document.getElementById('return_items_tbody');
const submitBtn = document.getElementById('submit_return_btn');
@@ -4986,15 +4986,27 @@ document.addEventListener('DOMContentLoaded', function() {
if (submitBtn) submitBtn.disabled = true;
// Add event listeners for qty changes
- tbody.querySelectorAll('.return-qty-input').forEach(input => {
+ const qtyInputs = tbody.querySelectorAll('.return-qty-input');
+ qtyInputs.forEach(input => {
input.addEventListener('input', calculateReturnTotal);
+ input.addEventListener('change', calculateReturnTotal);
+ input.addEventListener('keyup', calculateReturnTotal);
});
+ calculateReturnTotal();
+
} catch (e) {
console.error(e);
- Swal.fire('Error', 'Failed to fetch invoice items', 'error');
+ if (window.Swal) Swal.fire('Error', 'Failed to fetch invoice items', 'error');
}
- });
+ };
+
+ returnInvoiceSelect.addEventListener('change', handleInvoiceChange);
+ // Also support Select2
+ if (window.jQuery && jQuery.fn.select2) {
+ $(returnInvoiceSelect).on('select2:select', handleInvoiceChange);
+ $(returnInvoiceSelect).on('change', handleInvoiceChange);
+ }
}
// View Return Logic
@@ -5025,7 +5037,7 @@ document.addEventListener('DOMContentLoaded', function() {
-
+