diff --git a/app/Views/billing/ipd/discharge_create.php b/app/Views/billing/ipd/discharge_create.php index f6b67e1..68e887d 100644 --- a/app/Views/billing/ipd/discharge_create.php +++ b/app/Views/billing/ipd/discharge_create.php @@ -6643,19 +6643,32 @@ $historyFields = [ $('#discharge_med_name').trigger('focus'); }); - $(document).on('click', '.btn-remove-discharge-med', function(ev) { + $(document).off('click', '.btn-remove-discharge-med').on('click', '.btn-remove-discharge-med', function(ev) { if (ev) ev.preventDefault(); var $btn = $(this); var $tr = $btn.closest('tr'); - var tbody = section.querySelector('#discharge_medicine_tbody'); - if (!$tr.length || !tbody) { - return; - } + // Extract IDs before removing from DOM var rowId = parseInt($btn.attr('data-id') || $btn.data('id') || $tr.attr('data-row-id') || $tr.data('row-id') || 0, 10); var rowSource = String($btn.attr('data-source') || $btn.data('source') || $tr.attr('data-row-source') || $tr.data('row-source') || 'legacy').trim() || 'legacy'; - var activeForm = section.closest('form') || getDischargeForm(); + // Instantly remove row from DOM + if ($tr.length) { + $tr.remove(); + } + + var tbody = document.getElementById('discharge_medicine_tbody'); + if (tbody && !tbody.querySelector('tr')) { + tbody.innerHTML = 'No medicine added'; + } + + var secEl = document.getElementById('section-medicine'); + var activeForm = (secEl && secEl.closest('form')) || getDischargeForm(); + if (!activeForm) { + setMedicineStatus('Medicine removed.', 'info'); + return; + } + var csrf = getCsrfPair(activeForm); var payload = { action: 'remove_drug', @@ -6667,12 +6680,6 @@ $historyFields = [ setMedicineStatus('Removing medicine...', 'muted'); - // Instantly remove row from DOM - $tr.remove(); - if (!tbody.querySelector('tr')) { - tbody.innerHTML = 'No medicine added'; - } - if (rowId > 0) { $.post($(activeForm).attr('action') || window.location.href, payload, function(data) { updateFormCsrf(activeForm, data || {});