From d003c67b1e88cc81f29af2ddb0639a6e569f708c Mon Sep 17 00:00:00 2001 From: DevSoftTech Server Date: Wed, 8 Apr 2026 11:45:25 +0530 Subject: [PATCH] Harden IPD charges tab render to avoid Whoops on remote --- app/Controllers/Billing/Ipd.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Controllers/Billing/Ipd.php b/app/Controllers/Billing/Ipd.php index 864a73f..71ec30e 100644 --- a/app/Controllers/Billing/Ipd.php +++ b/app/Controllers/Billing/Ipd.php @@ -400,6 +400,17 @@ class Ipd extends BaseController } if ($tab === 'ipd-charges') { + $panelData['ipd_charges_grouped'] = $panelData['ipd_charges_grouped'] ?? []; + $panelData['ipd_charges_total'] = $panelData['ipd_charges_total'] ?? 0; + $panelData['ipd_packages'] = $panelData['ipd_packages'] ?? []; + $panelData['bedside_items_by_category'] = $panelData['bedside_items_by_category'] ?? []; + $panelData['ipd_insurance_id'] = $panelData['ipd_insurance_id'] ?? 0; + $panelData['doc_list'] = $panelData['doc_list'] ?? []; + $panelData['doctor_visit_fee_types'] = $panelData['doctor_visit_fee_types'] ?? []; + $panelData['doctor_visit_fee_map'] = $panelData['doctor_visit_fee_map'] ?? []; + $panelData['item_types'] = $panelData['item_types'] ?? []; + $panelData['item_lists'] = $panelData['item_lists'] ?? []; + try { $this->syncNursingChargesToInvoice($ipdId); $panelData['ipd_charges_grouped'] = $this->ipdModel->getIpdChargesGrouped($ipdId); @@ -445,7 +456,13 @@ class Ipd extends BaseController $panelData['item_lists'] = []; } - return view('billing/ipd/panel_ipd_charges', $panelData); + try { + return view('billing/ipd/panel_ipd_charges', $panelData); + } catch (\Throwable $e) { + log_message('error', 'IPD Charges view render failed for IPD #' . $ipdId . ': ' . $e->getMessage()); + + return '
Unable to load IPD Charges right now. Please contact admin and check server log for IPD #' . (int) $ipdId . '.
'; + } } if ($tab === 'package') {