| 1 | {"ast":null,"code":"var _jsxFileName = \"C:\\\\Users\\\\User\\\\Downloads\\\\medora5\\\\frontend\\\\src\\\\pages\\\\billing\\\\BillingDetail.js\",\n _s = $RefreshSig$();\nimport React, { useState, useEffect } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { billingService } from '../../services/billingService';\nimport Loading from '../../components/Loading';\nimport ErrorAlert from '../../components/ErrorAlert';\nimport SuccessAlert from '../../components/SuccessAlert';\nimport { jsxDEV as _jsxDEV, Fragment as _Fragment } from \"react/jsx-dev-runtime\";\nfunction BillingDetail() {\n _s();\n const {\n id\n } = useParams();\n const navigate = useNavigate();\n const user = JSON.parse(localStorage.getItem('user') || '{}');\n const isPatient = user.role === 'PATIENT';\n const [billing, setBilling] = useState(null);\n const [billingDetail, setBillingDetail] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [success, setSuccess] = useState(null);\n const [updating, setUpdating] = useState(false);\n const [paymentStatus, setPaymentStatus] = useState('');\n const [downloading, setDownloading] = useState(false);\n useEffect(() => {\n const fetchBilling = async () => {\n try {\n setLoading(true);\n const response = await billingService.getBillingById(id);\n setBilling(response.data);\n setPaymentStatus(response.data.paymentStatus);\n\n // Fetch detailed billing information\n try {\n const detailResponse = await billingService.getBillingDetail(id);\n setBillingDetail(detailResponse.data);\n } catch (err) {\n console.error('Could not fetch billing details:', err);\n }\n } catch (err) {\n setError('Failed to fetch billing record');\n console.error(err);\n } finally {\n setLoading(false);\n }\n };\n fetchBilling();\n }, [id]);\n const handleUpdatePaymentStatus = async () => {\n try {\n setUpdating(true);\n const response = await billingService.updatePaymentStatus(id, {\n paymentStatus,\n paymentDate: new Date().toISOString().split('T')[0]\n });\n setBilling(response.data);\n setSuccess('Payment status updated successfully!');\n } catch (err) {\n setError('Failed to update payment status');\n } finally {\n setUpdating(false);\n }\n };\n const handleDownloadInvoice = async () => {\n try {\n setDownloading(true);\n await billingService.downloadInvoicePDF(id);\n setSuccess('Invoice downloaded successfully!');\n } catch (err) {\n setError('Failed to download invoice');\n console.error(err);\n } finally {\n setDownloading(false);\n }\n };\n if (loading) return /*#__PURE__*/_jsxDEV(Loading, {}, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 78,\n columnNumber: 23\n }, this);\n\n // Prevent unauthorized access to billing\n if (user.role === 'DOCTOR' || user.role === 'LAB_TECHNICIAN') {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n style: {\n padding: '20px',\n textAlign: 'center'\n },\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n className: \"text-2xl font-bold\",\n style: {\n color: '#7c3aed',\n marginBottom: '10px'\n },\n children: \"Access Denied\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 84,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n style: {\n color: 'var(--color-neutral-600)'\n },\n children: \"You do not have permission to access billing records.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 85,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 83,\n columnNumber: 7\n }, this);\n }\n if (!billing) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: /*#__PURE__*/_jsxDEV(ErrorAlert, {\n message: \"Billing record not found\",\n onClose: () => navigate('/billing')\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 93,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 92,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex justify-between items-center mb-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h1\", {\n className: \"text-3xl font-bold\",\n style: {\n color: '#7c3aed'\n },\n children: [\"Billing Record #\", billing.billId]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 101,\n columnNumber: 9\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-x-2\",\n children: [/*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleDownloadInvoice,\n disabled: downloading,\n className: \"bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700 disabled:opacity-50\",\n children: downloading ? 'Downloading...' : 'Download Invoice (PDF)'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 103,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: () => navigate('/billing'),\n className: \"bg-gray-300 text-gray-700 px-4 py-2 rounded hover:bg-gray-400\",\n children: \"Back\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 110,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 102,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 100,\n columnNumber: 7\n }, this), error && /*#__PURE__*/_jsxDEV(ErrorAlert, {\n message: error,\n onClose: () => setError(null)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 116,\n columnNumber: 17\n }, this), success && /*#__PURE__*/_jsxDEV(SuccessAlert, {\n message: success,\n onClose: () => setSuccess(null)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 117,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: `grid gap-6 mb-6 ${isPatient ? 'grid-cols-1 lg:grid-cols-2' : 'grid-cols-1 lg:grid-cols-3'}`,\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-xl font-bold mb-4\",\n children: \"Billing Information\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 121,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-3\",\n children: [/*#__PURE__*/_jsxDEV(InfoRow, {\n label: \"Patient\",\n value: billing.patientName\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 123,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(InfoRow, {\n label: \"Total Cost\",\n value: `$${billing.totalCost}`\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 124,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(InfoRow, {\n label: \"Current Status\",\n value: billing.paymentStatus\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 125,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(InfoRow, {\n label: \"Payment Date\",\n value: billing.paymentDate || 'Not paid'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 126,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 122,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 120,\n columnNumber: 9\n }, this), !isPatient && /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-xl font-bold mb-4\",\n children: \"Update Payment Status\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 132,\n columnNumber: 13\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-4\",\n children: [/*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"label\", {\n className: \"block text-sm font-semibold mb-2\",\n children: \"Payment Status\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 135,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"select\", {\n value: paymentStatus,\n onChange: e => setPaymentStatus(e.target.value),\n className: \"w-full px-4 py-2 border rounded-lg\",\n children: [/*#__PURE__*/_jsxDEV(\"option\", {\n value: \"PENDING\",\n children: \"Pending\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 141,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"PAID\",\n children: \"Paid\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 142,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"option\", {\n value: \"CANCELLED\",\n children: \"Cancelled\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 143,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 136,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 134,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"button\", {\n onClick: handleUpdatePaymentStatus,\n disabled: updating || paymentStatus === billing.paymentStatus,\n className: \"w-full bg-purple-600 text-white px-4 py-2 rounded hover:bg-purple-700 disabled:opacity-50\",\n children: updating ? 'Updating...' : 'Update Status'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 146,\n columnNumber: 15\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 133,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 131,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-xl font-bold mb-4\",\n children: \"Patient Details\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 158,\n columnNumber: 11\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-3\",\n children: billingDetail && /*#__PURE__*/_jsxDEV(_Fragment, {\n children: [/*#__PURE__*/_jsxDEV(InfoRow, {\n label: \"EMBG\",\n value: billingDetail.patientEmbg\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 162,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(InfoRow, {\n label: \"Phone\",\n value: billingDetail.patientPhone\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 163,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(InfoRow, {\n label: \"Bill Date\",\n value: billingDetail.billDate\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 164,\n columnNumber: 17\n }, this)]\n }, void 0, true)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 159,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 157,\n columnNumber: 9\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 119,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"bg-white rounded-lg shadow p-6\",\n children: [/*#__PURE__*/_jsxDEV(\"h2\", {\n className: \"text-xl font-bold mb-4\",\n children: \"Itemized Services\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 172,\n columnNumber: 9\n }, this), billingDetail && (billingDetail.procedures.length > 0 || billingDetail.labTests.length > 0) ? /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"space-y-4\",\n children: [billingDetail.procedures.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-semibold text-lg mb-2\",\n children: \"Procedures\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 178,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"table\", {\n className: \"w-full\",\n children: [/*#__PURE__*/_jsxDEV(\"thead\", {\n className: \"bg-gray-100\",\n children: /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n className: \"px-4 py-2 text-left\",\n children: \"Description\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 182,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n className: \"px-4 py-2 text-right\",\n children: \"Cost\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 183,\n columnNumber: 23\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 181,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 180,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: billingDetail.procedures.map((proc, idx) => /*#__PURE__*/_jsxDEV(\"tr\", {\n className: \"border-t\",\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n className: \"px-4 py-2\",\n children: proc.description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 189,\n columnNumber: 25\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n className: \"px-4 py-2 text-right\",\n children: [\"$\", proc.cost]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 190,\n columnNumber: 25\n }, this)]\n }, idx, true, {\n fileName: _jsxFileName,\n lineNumber: 188,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 186,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 179,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 177,\n columnNumber: 15\n }, this), billingDetail.labTests.length > 0 && /*#__PURE__*/_jsxDEV(\"div\", {\n children: [/*#__PURE__*/_jsxDEV(\"h3\", {\n className: \"font-semibold text-lg mb-2\",\n children: \"Lab Tests\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 200,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"table\", {\n className: \"w-full\",\n children: [/*#__PURE__*/_jsxDEV(\"thead\", {\n className: \"bg-gray-100\",\n children: /*#__PURE__*/_jsxDEV(\"tr\", {\n children: [/*#__PURE__*/_jsxDEV(\"th\", {\n className: \"px-4 py-2 text-left\",\n children: \"Description\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 204,\n columnNumber: 23\n }, this), /*#__PURE__*/_jsxDEV(\"th\", {\n className: \"px-4 py-2 text-right\",\n children: \"Cost\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 205,\n columnNumber: 23\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 203,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 202,\n columnNumber: 19\n }, this), /*#__PURE__*/_jsxDEV(\"tbody\", {\n children: billingDetail.labTests.map((test, idx) => /*#__PURE__*/_jsxDEV(\"tr\", {\n className: \"border-t\",\n children: [/*#__PURE__*/_jsxDEV(\"td\", {\n className: \"px-4 py-2\",\n children: test.description\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 211,\n columnNumber: 25\n }, this), /*#__PURE__*/_jsxDEV(\"td\", {\n className: \"px-4 py-2 text-right\",\n children: [\"$\", test.cost]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 212,\n columnNumber: 25\n }, this)]\n }, idx, true, {\n fileName: _jsxFileName,\n lineNumber: 210,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 208,\n columnNumber: 19\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 201,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 199,\n columnNumber: 15\n }, this), /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"border-t-2 pt-4 mt-4 flex justify-end\",\n children: /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"text-right\",\n children: [/*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-gray-600\",\n children: \"Total Amount:\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 222,\n columnNumber: 17\n }, this), /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-2xl font-bold text-purple-600\",\n children: [\"$\", billing.totalCost]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 223,\n columnNumber: 17\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 221,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 220,\n columnNumber: 13\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 175,\n columnNumber: 11\n }, this) : /*#__PURE__*/_jsxDEV(\"p\", {\n className: \"text-gray-500\",\n children: \"No services itemized for this billing record.\"\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 228,\n columnNumber: 11\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 171,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 99,\n columnNumber: 5\n }, this);\n}\n_s(BillingDetail, \"+L49HC9Vi3EUS7jcBFcybPeaKcU=\", false, function () {\n return [useParams, useNavigate];\n});\n_c = BillingDetail;\nfunction InfoRow({\n label,\n value\n}) {\n return /*#__PURE__*/_jsxDEV(\"div\", {\n className: \"flex justify-between\",\n children: [/*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-800\",\n children: [label, \":\"]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 238,\n columnNumber: 7\n }, this), /*#__PURE__*/_jsxDEV(\"span\", {\n className: \"text-gray-800\",\n children: value || 'N/A'\n }, void 0, false, {\n fileName: _jsxFileName,\n lineNumber: 239,\n columnNumber: 7\n }, this)]\n }, void 0, true, {\n fileName: _jsxFileName,\n lineNumber: 237,\n columnNumber: 5\n }, this);\n}\n_c2 = InfoRow;\nexport default BillingDetail;\nvar _c, _c2;\n$RefreshReg$(_c, \"BillingDetail\");\n$RefreshReg$(_c2, \"InfoRow\");","map":{"version":3,"names":["React","useState","useEffect","useParams","useNavigate","billingService","Loading","ErrorAlert","SuccessAlert","jsxDEV","_jsxDEV","Fragment","_Fragment","BillingDetail","_s","id","navigate","user","JSON","parse","localStorage","getItem","isPatient","role","billing","setBilling","billingDetail","setBillingDetail","loading","setLoading","error","setError","success","setSuccess","updating","setUpdating","paymentStatus","setPaymentStatus","downloading","setDownloading","fetchBilling","response","getBillingById","data","detailResponse","getBillingDetail","err","console","handleUpdatePaymentStatus","updatePaymentStatus","paymentDate","Date","toISOString","split","handleDownloadInvoice","downloadInvoicePDF","fileName","_jsxFileName","lineNumber","columnNumber","style","padding","textAlign","children","className","color","marginBottom","message","onClose","billId","onClick","disabled","InfoRow","label","value","patientName","totalCost","onChange","e","target","patientEmbg","patientPhone","billDate","procedures","length","labTests","map","proc","idx","description","cost","test","_c","_c2","$RefreshReg$"],"sources":["C:/Users/User/Downloads/medora5/frontend/src/pages/billing/BillingDetail.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { useParams, useNavigate } from 'react-router-dom';\nimport { billingService } from '../../services/billingService';\nimport Loading from '../../components/Loading';\nimport ErrorAlert from '../../components/ErrorAlert';\nimport SuccessAlert from '../../components/SuccessAlert';\n\nfunction BillingDetail() {\n const { id } = useParams();\n const navigate = useNavigate();\n const user = JSON.parse(localStorage.getItem('user') || '{}');\n const isPatient = user.role === 'PATIENT';\n\n const [billing, setBilling] = useState(null);\n const [billingDetail, setBillingDetail] = useState(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState(null);\n const [success, setSuccess] = useState(null);\n const [updating, setUpdating] = useState(false);\n const [paymentStatus, setPaymentStatus] = useState('');\n const [downloading, setDownloading] = useState(false);\n\n useEffect(() => {\n const fetchBilling = async () => {\n try {\n setLoading(true);\n const response = await billingService.getBillingById(id);\n setBilling(response.data);\n setPaymentStatus(response.data.paymentStatus);\n\n // Fetch detailed billing information\n try {\n const detailResponse = await billingService.getBillingDetail(id);\n setBillingDetail(detailResponse.data);\n } catch (err) {\n console.error('Could not fetch billing details:', err);\n }\n } catch (err) {\n setError('Failed to fetch billing record');\n console.error(err);\n } finally {\n setLoading(false);\n }\n };\n\n fetchBilling();\n }, [id]);\n\n const handleUpdatePaymentStatus = async () => {\n try {\n setUpdating(true);\n const response = await billingService.updatePaymentStatus(id, {\n paymentStatus,\n paymentDate: new Date().toISOString().split('T')[0],\n });\n setBilling(response.data);\n setSuccess('Payment status updated successfully!');\n } catch (err) {\n setError('Failed to update payment status');\n } finally {\n setUpdating(false);\n }\n };\n\n const handleDownloadInvoice = async () => {\n try {\n setDownloading(true);\n await billingService.downloadInvoicePDF(id);\n setSuccess('Invoice downloaded successfully!');\n } catch (err) {\n setError('Failed to download invoice');\n console.error(err);\n } finally {\n setDownloading(false);\n }\n };\n\n if (loading) return <Loading />;\n\n // Prevent unauthorized access to billing\n if (user.role === 'DOCTOR' || user.role === 'LAB_TECHNICIAN') {\n return (\n <div style={{ padding: '20px', textAlign: 'center' }}>\n <h1 className=\"text-2xl font-bold\" style={{ color: '#7c3aed', marginBottom: '10px' }}>Access Denied</h1>\n <p style={{ color: 'var(--color-neutral-600)' }}>You do not have permission to access billing records.</p>\n </div>\n );\n }\n\n if (!billing) {\n return (\n <div>\n <ErrorAlert message=\"Billing record not found\" onClose={() => navigate('/billing')} />\n </div>\n );\n }\n\n return (\n <div>\n <div className=\"flex justify-between items-center mb-6\">\n <h1 className=\"text-3xl font-bold\" style={{ color: '#7c3aed' }}>Billing Record #{billing.billId}</h1>\n <div className=\"space-x-2\">\n <button\n onClick={handleDownloadInvoice}\n disabled={downloading}\n className=\"bg-green-600 text-white px-4 py-2 rounded hover:bg-green-700 disabled:opacity-50\"\n >\n {downloading ? 'Downloading...' : 'Download Invoice (PDF)'}\n </button>\n <button onClick={() => navigate('/billing')} className=\"bg-gray-300 text-gray-700 px-4 py-2 rounded hover:bg-gray-400\">\n Back\n </button>\n </div>\n </div>\n\n {error && <ErrorAlert message={error} onClose={() => setError(null)} />}\n {success && <SuccessAlert message={success} onClose={() => setSuccess(null)} />}\n\n <div className={`grid gap-6 mb-6 ${isPatient ? 'grid-cols-1 lg:grid-cols-2' : 'grid-cols-1 lg:grid-cols-3'}`}>\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h2 className=\"text-xl font-bold mb-4\">Billing Information</h2>\n <div className=\"space-y-3\">\n <InfoRow label=\"Patient\" value={billing.patientName} />\n <InfoRow label=\"Total Cost\" value={`$${billing.totalCost}`} />\n <InfoRow label=\"Current Status\" value={billing.paymentStatus} />\n <InfoRow label=\"Payment Date\" value={billing.paymentDate || 'Not paid'} />\n </div>\n </div>\n\n {!isPatient && (\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h2 className=\"text-xl font-bold mb-4\">Update Payment Status</h2>\n <div className=\"space-y-4\">\n <div>\n <label className=\"block text-sm font-semibold mb-2\">Payment Status</label>\n <select\n value={paymentStatus}\n onChange={(e) => setPaymentStatus(e.target.value)}\n className=\"w-full px-4 py-2 border rounded-lg\"\n >\n <option value=\"PENDING\">Pending</option>\n <option value=\"PAID\">Paid</option>\n <option value=\"CANCELLED\">Cancelled</option>\n </select>\n </div>\n <button\n onClick={handleUpdatePaymentStatus}\n disabled={updating || paymentStatus === billing.paymentStatus}\n className=\"w-full bg-purple-600 text-white px-4 py-2 rounded hover:bg-purple-700 disabled:opacity-50\"\n >\n {updating ? 'Updating...' : 'Update Status'}\n </button>\n </div>\n </div>\n )}\n\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h2 className=\"text-xl font-bold mb-4\">Patient Details</h2>\n <div className=\"space-y-3\">\n {billingDetail && (\n <>\n <InfoRow label=\"EMBG\" value={billingDetail.patientEmbg} />\n <InfoRow label=\"Phone\" value={billingDetail.patientPhone} />\n <InfoRow label=\"Bill Date\" value={billingDetail.billDate} />\n </>\n )}\n </div>\n </div>\n </div>\n\n <div className=\"bg-white rounded-lg shadow p-6\">\n <h2 className=\"text-xl font-bold mb-4\">Itemized Services</h2>\n\n {billingDetail && (billingDetail.procedures.length > 0 || billingDetail.labTests.length > 0) ? (\n <div className=\"space-y-4\">\n {billingDetail.procedures.length > 0 && (\n <div>\n <h3 className=\"font-semibold text-lg mb-2\">Procedures</h3>\n <table className=\"w-full\">\n <thead className=\"bg-gray-100\">\n <tr>\n <th className=\"px-4 py-2 text-left\">Description</th>\n <th className=\"px-4 py-2 text-right\">Cost</th>\n </tr>\n </thead>\n <tbody>\n {billingDetail.procedures.map((proc, idx) => (\n <tr key={idx} className=\"border-t\">\n <td className=\"px-4 py-2\">{proc.description}</td>\n <td className=\"px-4 py-2 text-right\">${proc.cost}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n\n {billingDetail.labTests.length > 0 && (\n <div>\n <h3 className=\"font-semibold text-lg mb-2\">Lab Tests</h3>\n <table className=\"w-full\">\n <thead className=\"bg-gray-100\">\n <tr>\n <th className=\"px-4 py-2 text-left\">Description</th>\n <th className=\"px-4 py-2 text-right\">Cost</th>\n </tr>\n </thead>\n <tbody>\n {billingDetail.labTests.map((test, idx) => (\n <tr key={idx} className=\"border-t\">\n <td className=\"px-4 py-2\">{test.description}</td>\n <td className=\"px-4 py-2 text-right\">${test.cost}</td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n\n <div className=\"border-t-2 pt-4 mt-4 flex justify-end\">\n <div className=\"text-right\">\n <p className=\"text-gray-600\">Total Amount:</p>\n <p className=\"text-2xl font-bold text-purple-600\">${billing.totalCost}</p>\n </div>\n </div>\n </div>\n ) : (\n <p className=\"text-gray-500\">No services itemized for this billing record.</p>\n )}\n </div>\n </div>\n );\n}\n\nfunction InfoRow({ label, value }) {\n return (\n <div className=\"flex justify-between\">\n <span className=\"text-gray-800\">{label}:</span>\n <span className=\"text-gray-800\">{value || 'N/A'}</span>\n </div>\n );\n}\n\nexport default BillingDetail;\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]} |
|---|