diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 4994e18..8810f0a 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -555,6 +555,7 @@ $routes->get('Opd_prescription/rx_group_medicine_list/(:num)', 'Opd_prescription $routes->get('Opd_prescription/rx_group_medicine_get/(:num)', 'Opd_prescription::rx_group_medicine_get/$1'); $routes->post('Opd_prescription/rx_group_medicine_save/(:num)', 'Opd_prescription::rx_group_medicine_save/$1'); $routes->post('Opd_prescription/rx_group_medicine_remove/(:num)', 'Opd_prescription::rx_group_medicine_remove/$1'); +$routes->post('Opd_prescription/rx_group_delete/(:num)', 'Opd_prescription::rx_group_delete/$1'); $routes->get('Opd_prescription/rx_group_medicine_suggest', 'Opd_prescription::rx_group_medicine_suggest'); $routes->get('Opd_prescription/rx_group_generic_suggest', 'Opd_prescription::rx_group_generic_suggest'); $routes->get('Opd_prescription/rx_group_dose_masters', 'Opd_prescription::rx_group_dose_masters'); diff --git a/app/Controllers/Opd_prescription.php b/app/Controllers/Opd_prescription.php index 8441c37..8588f02 100644 --- a/app/Controllers/Opd_prescription.php +++ b/app/Controllers/Opd_prescription.php @@ -1778,6 +1778,41 @@ class Opd_prescription extends BaseController return $this->response->setJSON(['update' => 1, 'error_text' => 'Rx group medicine removed']); } + public function rx_group_delete(int $rxId) + { + if (! $this->request->isAJAX()) { + return $this->response->setStatusCode(400)->setJSON(['update' => 0, 'error_text' => 'Invalid request']); + } + + $rxId = max(0, $rxId); + if ($rxId <= 0) { + return $this->response->setJSON(['update' => 0, 'error_text' => 'Invalid Rx-Group ID']); + } + + if (! $this->db->tableExists('opd_prescription_template')) { + return $this->response->setJSON(['update' => 0, 'error_text' => 'Rx group table not found']); + } + + // Delete linked medicines first + $medTable = $this->findExistingTable(['opd_prescrption_prescribed_template', 'opd_prescription_prescribed_template']); + if ($medTable !== null) { + $medFields = $this->db->getFieldNames($medTable); + $fkField = $this->resolveFirstField($medFields, ['opd_prescription_template_id', 'rx_group_id', 'template_id']); + if ($fkField !== null) { + $this->db->table($medTable)->where($fkField, $rxId)->delete(); + } + } + + $this->db->table('opd_prescription_template')->where('id', $rxId)->delete(); + + return $this->response->setJSON([ + 'update' => 1, + 'error_text' => 'Rx-Group deleted', + 'csrfName' => csrf_token(), + 'csrfHash' => csrf_hash(), + ]); + } + public function rx_group_medicine_suggest() { $q = trim((string) $this->request->getGet('q')); diff --git a/app/Views/billing/opd_rx_group_workspace.php b/app/Views/billing/opd_rx_group_workspace.php index cd1d1cf..64b5f40 100644 --- a/app/Views/billing/opd_rx_group_workspace.php +++ b/app/Views/billing/opd_rx_group_workspace.php @@ -9,7 +9,7 @@
| Rx-Group Name | Access | Action | |
|---|---|---|---|
| Rx-Group Name | Access | Action | |
| No data | |||