diff --git a/Modules/HospitalPortal/Http/Controllers/ApotekController.php b/Modules/HospitalPortal/Http/Controllers/ApotekController.php index 822d178d..3322e795 100644 --- a/Modules/HospitalPortal/Http/Controllers/ApotekController.php +++ b/Modules/HospitalPortal/Http/Controllers/ApotekController.php @@ -52,9 +52,12 @@ class ApotekController extends Controller }); }) ->when($request->input('status'), function ($query, $status) { - $query->where(function ($query) use ($status) { - $query->where('tx_prescription_orders.sStatus', '=', $status); - }); + // Apply the filter if 'status' has a value + if ($status !== 'all') { + $query->where(function ($query) use ($status) { + $query->where('tx_prescription_orders.sStatus', '=', $status); + }); + } }) ->select( 'tx_prescriptions.nID as id', @@ -65,6 +68,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 +246,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('organizations.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 +398,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 +717,5 @@ class ApotekController extends Controller $uuidV5 = Uuid::uuid5($namespace, $id_prescription_order); return $uuidV5->toString(); } - + } diff --git a/Modules/Internal/Http/Controllers/Api/RequestLogController.php b/Modules/Internal/Http/Controllers/Api/RequestLogController.php index 2f4804bb..ae1eeb3a 100755 --- a/Modules/Internal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/Internal/Http/Controllers/Api/RequestLogController.php @@ -307,6 +307,10 @@ class RequestLogController extends Controller $requestLog->reason = $request->reason; } + if (!empty($request->type_of_member)){ + $requestLog->type_of_member = $request->type_of_member; + } + if ($request->status){ $requestLog->status = $request->status; $requestLog->approved_by = auth()->user()->id; diff --git a/Modules/Internal/Transformers/RequestLogShowResource.php b/Modules/Internal/Transformers/RequestLogShowResource.php index dc46b978..8aa77dfb 100755 --- a/Modules/Internal/Transformers/RequestLogShowResource.php +++ b/Modules/Internal/Transformers/RequestLogShowResource.php @@ -126,6 +126,7 @@ class RequestLogShowResource extends JsonResource 'code' => $requestLog['code'], 'code_claim' => $claimCode, 'member_id' => $requestLog['member']['member_id'], + 'type_of_member' => $requestLog['type_of_member'], 'corporate_id' => $corporateId, 'policy_number' =>$policyNumber->code ? $policyNumber->code : '-', 'name' => $requestLog['member']['name'], diff --git a/app/Models/RequestLog.php b/app/Models/RequestLog.php index 5c2e47a8..08e45eb7 100755 --- a/app/Models/RequestLog.php +++ b/app/Models/RequestLog.php @@ -51,6 +51,7 @@ class RequestLog extends Model 'approved_final_log_at', 'created_final_at', 'created_final_by', + 'type_of_member' ]; protected $hidden = [ diff --git a/database/seeders/ApotekMandiriInhealtSeeder.php b/database/seeders/ApotekMandiriInhealtSeeder.php index ca5158af..c49f249b 100644 --- a/database/seeders/ApotekMandiriInhealtSeeder.php +++ b/database/seeders/ApotekMandiriInhealtSeeder.php @@ -16,7 +16,7 @@ class ApotekMandiriInhealtSeeder extends Seeder */ public function run() { - $file_path = resource_path('files/data-apotik-layanan-pharmacy-delivery.xlsx'); + $file_path = resource_path('files/data-apotik-layanan-pharmacy-delivery-update.xlsx'); $reader = ReaderEntityFactory::createReaderFromFile($file_path); $reader->open($file_path); diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogConfirmation.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogConfirmation.tsx index 75134e54..92d27c39 100755 --- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogConfirmation.tsx +++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Components/DialogConfirmation.tsx @@ -111,6 +111,10 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo Member ID {requestLog?.member_id} + + Member Of Type + {requestLog?.type_of_member} + Policy Number {requestLog?.policy_number} diff --git a/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx b/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx index cc97e63e..c0be7e85 100755 --- a/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx +++ b/frontend/dashboard/src/pages/CustomerService/FinalLog/Detail.tsx @@ -200,6 +200,10 @@ export default function Detail() { Member ID {requestLog?.member_id} + + Type Of Member + {requestLog?.type_of_member} + Policy Number {requestLog?.policy_number} diff --git a/frontend/dashboard/src/pages/CustomerService/Request/Components/DialogConfirmation.tsx b/frontend/dashboard/src/pages/CustomerService/Request/Components/DialogConfirmation.tsx index 2523e229..068c8be2 100755 --- a/frontend/dashboard/src/pages/CustomerService/Request/Components/DialogConfirmation.tsx +++ b/frontend/dashboard/src/pages/CustomerService/Request/Components/DialogConfirmation.tsx @@ -1,7 +1,7 @@ import MuiDialog from "@/components/MuiDialog"; import { Button, Card, Checkbox, DialogActions, Grid, TextField, TextareaAutosize, Typography } from "@mui/material"; import { Paper } from "@mui/material"; -import { Stack } from '@mui/material'; +import { Stack, Select, MenuItem } from '@mui/material'; import React, { useEffect, useState } from 'react'; import { DetailRequestLogType } from "../Model/Types"; import { fDateTimesecond, toTitleCase } from "@/utils/formatTime"; @@ -28,6 +28,7 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo keterangan: '', hak_kamar_pasien: '', penempatan_kamar: '', + type_of_member: '' }); useEffect(() => { @@ -90,6 +91,7 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo keterangan: '', hak_kamar_pasien: '', penempatan_kamar: '', + type_of_member: '' }); }; @@ -123,6 +125,10 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo Member ID {requestLog?.member_id} + + Type of Member + {requestLog?.type_of_member} + Policy Number {requestLog?.policy_number} @@ -183,6 +189,22 @@ export default function DialogConfirmation({requestLog, setOpenDialog, openDialo onChange={(e) => handleChange('hak_kamar_pasien', e.target.value)} /> + + Type Of Member + + Penempatan Kamar Member ID {requestLog?.member_id} + + Type Of Member + {requestLog?.type_of_member} + Policy Number {requestLog?.policy_number} diff --git a/frontend/hospital-portal/src/components/BaseTablePagination.tsx b/frontend/hospital-portal/src/components/BaseTablePagination.tsx index 3af750e6..a0d67ca0 100755 --- a/frontend/hospital-portal/src/components/BaseTablePagination.tsx +++ b/frontend/hospital-portal/src/components/BaseTablePagination.tsx @@ -13,7 +13,7 @@ export default function BaseTablePagination({ + {/* 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) ? (