fix(discharge-template): make delete endpoint reliable for URL and AJAX
This commit is contained in:
parent
a169ab174b
commit
f341e8e76e
|
|
@ -864,7 +864,7 @@ $routes->get('Lab_Admin/pathology_bridge_debug', 'Setting\Template::pathologyBri
|
|||
|
||||
$routes->match(['get', 'post'], 'setting/template/discharge_templates', 'Setting\Template::discharge_templates');
|
||||
$routes->get('setting/template/discharge_template_get/(:num)', 'Setting\Template::discharge_template_get/$1');
|
||||
$routes->get('setting/template/discharge_templates/delete/(:num)', 'Setting\Template::discharge_template_delete/$1');
|
||||
$routes->match(['get', 'post'], 'setting/template/discharge_templates/delete/(:num)', 'Setting\Template::discharge_template_delete/$1');
|
||||
$routes->match(['get', 'post'], 'setting/template/ipd_document_templates', 'Setting\Template::ipd_document_templates');
|
||||
$routes->get('setting/template/ipd_document_templates/delete/(:num)', 'Setting\Template::ipd_document_template_delete/$1');
|
||||
$routes->match(['get', 'post'], 'setting/template/diagnosis_print_settings', 'Setting\Template::diagnosis_print_settings');
|
||||
|
|
|
|||
|
|
@ -2976,14 +2976,51 @@ HTML;
|
|||
|
||||
$id = (int) $id;
|
||||
$ok = false;
|
||||
$message = 'Unable to delete template.';
|
||||
if ($id > 0 && $this->db->tableExists('ipd_discharge_templates')) {
|
||||
$ok = (bool) $this->db->table('ipd_discharge_templates')->where('id', $id)->delete();
|
||||
$row = $this->db->table('ipd_discharge_templates')
|
||||
->where('id', $id)
|
||||
->get(1)
|
||||
->getRowArray() ?? [];
|
||||
|
||||
if (! empty($row)) {
|
||||
$ok = (bool) $this->db->table('ipd_discharge_templates')->where('id', $id)->delete();
|
||||
|
||||
if (! $ok) {
|
||||
// Some legacy/live schemas may reject delete via engine constraints; archive instead.
|
||||
$ok = (bool) $this->db->table('ipd_discharge_templates')
|
||||
->where('id', $id)
|
||||
->update(['status' => 0, 'is_default' => 0]);
|
||||
if ($ok) {
|
||||
$message = 'Template archived.';
|
||||
}
|
||||
}
|
||||
|
||||
if ($ok && (int) ($row['is_default'] ?? 0) === 1) {
|
||||
$nextDefault = $this->db->table('ipd_discharge_templates')
|
||||
->select('id')
|
||||
->where('status', 1)
|
||||
->orderBy('id', 'ASC')
|
||||
->get(1)
|
||||
->getRowArray();
|
||||
|
||||
if (! empty($nextDefault['id'])) {
|
||||
$this->db->table('ipd_discharge_templates')
|
||||
->where('id', (int) $nextDefault['id'])
|
||||
->update(['is_default' => 1]);
|
||||
}
|
||||
}
|
||||
|
||||
if ($ok && $message === 'Unable to delete template.') {
|
||||
$message = 'Template deleted.';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->request->isAJAX()) {
|
||||
return $this->response->setJSON([
|
||||
'update' => $ok ? 1 : 0,
|
||||
'error_text' => $ok ? 'Template deleted.' : 'Unable to delete template.',
|
||||
'error_text' => $message,
|
||||
'csrfName' => csrf_token(),
|
||||
'csrfHash' => csrf_hash(),
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -564,6 +564,8 @@ $status = (int) ($edit['status'] ?? 1);
|
|||
}
|
||||
|
||||
fetch('<?= base_url('setting/template/discharge_templates/delete') ?>/' + id, {
|
||||
method: 'POST',
|
||||
body: new FormData(form),
|
||||
headers: {
|
||||
'X-Requested-With': 'XMLHttpRequest'
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user