diff --git a/app/Config/Routes.php b/app/Config/Routes.php index 163aab1..83bc903 100644 --- a/app/Config/Routes.php +++ b/app/Config/Routes.php @@ -873,6 +873,7 @@ $routes->post('Lab_Admin/pathology_master_add_component', 'Setting\Template::pat $routes->get('Lab_Admin/pathology_bridge_debug', 'Setting\Template::pathologyBridgeDebug'); $routes->match(['get', 'post'], 'setting/template/discharge_templates', 'Setting\Template::discharge_templates'); +$routes->post('setting/template/discharge_templates_seed', 'Setting\Template::discharge_templates_seed'); $routes->get('setting/template/discharge_template_get/(:num)', 'Setting\Template::discharge_template_get/$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'); diff --git a/app/Controllers/Ipd_discharge.php b/app/Controllers/Ipd_discharge.php index fc839ac..2d3f56e 100644 --- a/app/Controllers/Ipd_discharge.php +++ b/app/Controllers/Ipd_discharge.php @@ -272,7 +272,9 @@ class Ipd_discharge extends BaseController private function getDischargeTemplateRows(): array { - $this->ensureDefaultDischargeTemplateSeeded(); + // Ensure table structure exists, but don't auto-seed templates + // This allows users to delete all templates without them auto-regenerating + $this->ensureDischargeTemplateTable(); if (! $this->db->tableExists('ipd_discharge_templates')) { return []; } diff --git a/app/Controllers/Setting/Template.php b/app/Controllers/Setting/Template.php index d24dd85..e9180fb 100644 --- a/app/Controllers/Setting/Template.php +++ b/app/Controllers/Setting/Template.php @@ -2804,7 +2804,9 @@ HTML; return $resp; } - $this->ensureDefaultDischargeTemplateSeeded(); + // Ensure table structure exists, but don't auto-seed templates + // This allows users to delete all templates without them auto-regenerating + $this->ensureDischargeTemplateTable(); $notice = ''; $noticeType = 'success'; @@ -2966,6 +2968,27 @@ HTML; ]); } + public function discharge_templates_seed() + { + if ($resp = $this->requireAnyPermission(['template.discharge'])) { + return $resp; + } + + // Manually seed default templates (on user request) + $this->ensureDefaultDischargeTemplateSeeded(); + + if ($this->request->isAJAX()) { + return $this->response->setJSON([ + 'update' => 1, + 'error_text' => 'Default templates created successfully.', + 'csrfName' => csrf_token(), + 'csrfHash' => csrf_hash(), + ]); + } + + return redirect()->to(base_url('setting/template/discharge_templates')); + } + public function discharge_template_delete(int $id) { if ($resp = $this->requireAnyPermission(['template.discharge'])) { diff --git a/app/Views/Setting/Template/discharge_templates.php b/app/Views/Setting/Template/discharge_templates.php index 0cfed68..7aef3bc 100644 --- a/app/Views/Setting/Template/discharge_templates.php +++ b/app/Views/Setting/Template/discharge_templates.php @@ -181,7 +181,15 @@ $status = (int) ($edit['status'] ?? 1);
-