From 81a47bfb078e05a0edac4f1947aaa2ae69a965f8 Mon Sep 17 00:00:00 2001 From: ivan-sim Date: Thu, 17 Oct 2024 14:08:14 +0700 Subject: [PATCH 1/9] Update --- .../Http/Controllers/ApotekController.php | 27 ++++++++++++++---- .../hospital-portal/src/components/Table.tsx | 28 ++++++++++++++++--- frontend/hospital-portal/src/lang/en-US.json | 6 +++- frontend/hospital-portal/src/lang/id-ID.json | 5 +++- .../sections/dashboardApotek/TableList.tsx | 8 +++++- 5 files changed, 62 insertions(+), 12 deletions(-) diff --git a/Modules/HospitalPortal/Http/Controllers/ApotekController.php b/Modules/HospitalPortal/Http/Controllers/ApotekController.php index 822d178d..6da003f9 100644 --- a/Modules/HospitalPortal/Http/Controllers/ApotekController.php +++ b/Modules/HospitalPortal/Http/Controllers/ApotekController.php @@ -65,6 +65,15 @@ class ApotekController extends Controller 'tx_prescription_orders.nIDApotek', 'tx_prescription_orders.sStatus as status', 'tx_prescription_orders.sStatus', + DB::raw(' + CASE + WHEN TIMESTAMPDIFF(HOUR, tx_prescriptions.dTanggalResep, NOW()) > 72 THEN "" + WHEN TIMESTAMPDIFF(HOUR, tx_prescriptions.dTanggalResep, NOW()) > 1 AND tx_prescription_orders.sStatus = "waiting_pharmacy" THEN "1" + WHEN TIMESTAMPDIFF(HOUR, tx_prescriptions.dTanggalResep, NOW()) > 2 AND tx_prescription_orders.sStatus = "order_prepared" THEN "2" + WHEN TIMESTAMPDIFF(HOUR, tx_prescriptions.dTanggalResep, NOW()) > 3 AND tx_prescription_orders.sStatus = "ready" THEN "3" + ELSE "" + END AS alert + '), DB::raw(' CASE WHEN tx_prescription_orders.sStatus = "waiting_pharmacy" THEN "Diterima" @@ -234,6 +243,14 @@ class ApotekController extends Controller $item->apotek = $organizations->get($item->nIDApotek, '-'); // Default to 'Unknown' if not found return $item; }); + $apotek_phone = DB::connection('mysql')->table('organizations') + ->leftJoin('addresses', 'addresses.id','=', 'organizations.main_address_id') + ->whereIn('organizations.id', $apotekIds) + ->pluck('addresses.phone', 'organizations.id'); + $results->getCollection()->transform(function ($item) use ($apotek_phone) { + $item->phone_apotek = $apotek_phone->get($item->nIDApotek, '-'); // Default to 'Unknown' if not found + return $item; + }); // Transform results to include allergies $results->getCollection()->transform(function ($item) use ($organizations) { // Get the allergies for each user @@ -378,26 +395,26 @@ class ApotekController extends Controller 'dUpdateOn' => date('Y-m-d H:i:s'), ]); - // Insert the log + // Insert the log $prescriptionOrder = DB::connection('oldlms') ->table('tx_prescription_orders') ->where('tx_prescription_orders.nID', '=', $id) ->join('tx_delivery_orders', 'tx_delivery_orders.nIDPrescriptionOrder', '=', 'tx_prescription_orders.nID') ->select('tx_prescription_orders.*', 'tx_delivery_orders.*', 'tx_delivery_orders.nID as nIDDelivery') // Add specific columns you want to select ->first(); - + if ($prescriptionOrder) { $createdBy = $prescriptionOrder->sCreateBy; $nIDPrescription = $prescriptionOrder->nIDPrescription; $nIDDeliveryOrder = $prescriptionOrder->nIDDelivery; - + // Insert data into the tx_delivery_log table DB::connection('oldlms')->table('tx_delivery_log')->insert([ 'sStatus' => $prescriptionOrder->sDeliveryStatus, 'sStatusPrescription' => $status, 'nIDDeliveryOrder' => $nIDDeliveryOrder, 'nIDPrescription' => $nIDPrescription, - 'dCreatedOn' => now(), + 'dCreatedOn' => now(), ]); } @@ -697,5 +714,5 @@ class ApotekController extends Controller $uuidV5 = Uuid::uuid5($namespace, $id_prescription_order); return $uuidV5->toString(); } - + } diff --git a/frontend/hospital-portal/src/components/Table.tsx b/frontend/hospital-portal/src/components/Table.tsx index 064d4c84..fa6806ee 100755 --- a/frontend/hospital-portal/src/components/Table.tsx +++ b/frontend/hospital-portal/src/components/Table.tsx @@ -28,7 +28,8 @@ import { Divider, IconButton, Modal, - CircularProgress + CircularProgress, + Container, Alert, AlertTitle } from '@mui/material'; import { Dialog, DialogTitle, DialogContent, DialogActions } from '@mui/material'; @@ -339,6 +340,16 @@ const allowedStatusesForCSLMS = ['waiting_pharmacy', 'order_prepared', 'ready', return ( // + {/* Check if any row has an alert and display a warning message */} + {rows.some(row => row.alert) && ( + + + {localeData.txtAttention} + {localeData.txtAttentionInfo} + + + + )} {/* Field 1 */} @@ -530,6 +541,7 @@ const allowedStatusesForCSLMS = ['waiting_pharmacy', 'order_prepared', 'ready', {/* Table */} + {/* Table Header */} {/* End Table Header */} @@ -544,7 +556,10 @@ const allowedStatusesForCSLMS = ['waiting_pharmacy', 'order_prepared', 'ready', ) : rows && rows.length >= 1 ? ( rows.map((row, rowIndex) => ( <> - + {!selected.useSelected ? ( '' ): (selected.useSelected && row.check_status === 'approved' && !row.check_claim ? ( @@ -651,6 +666,11 @@ const allowedStatusesForCSLMS = ['waiting_pharmacy', 'order_prepared', 'ready', + + setOpenRowId(null)}> + + + {/* Icon inside a Box for spacing and alignment */} @@ -922,9 +942,9 @@ const allowedStatusesForCSLMS = ['waiting_pharmacy', 'order_prepared', 'ready', {/* Close Button on the Left */} - + */} {/* Accept Button on the Right */} {/* {row.button_accept && formattedRoleName === 'admin-apotek' && allowedStatusesForApotek.includes(row.sStatus) ? (