diff --git a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php index 4a69d876..52af40fb 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/MemberController.php @@ -96,6 +96,16 @@ class MemberController extends Controller $res_data['type'] = $request->type; + // Provider + $providers = DB::table('organizations') + ->select( + 'organizations.id', + 'organizations.name' + ) + ->get(); + + $res_data['providers'] = $providers; + return ApiResponse::apiResponse("Success", $res_data, trans('Message.success'), 200); } diff --git a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php index db2cf4b9..a7f796ad 100644 --- a/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php +++ b/Modules/HospitalPortal/Http/Controllers/Api/RequestLogController.php @@ -23,7 +23,10 @@ class RequestLogController extends Controller { $data = [ 'member_id' => $request->member_id, - 'service_code' => $request->service_code + 'service_code' => $request->service_code, + 'id_provider' => $request->id_provider, + 'name_provider' => $request->name_provider, + 'adress_provider' => $request->address_provider ]; $validator = Validator::make($request->all(), [ 'member_id' => 'required', @@ -32,6 +35,18 @@ class RequestLogController extends Controller 'member_id.required' => trans('Validation.required',['attribute' => 'Member ID']), 'service_code.required' => trans('Validation.required',['attribute' => 'Service Code']), ]); + if($request->id_provider) + { + $validator = Validator::make($request->all(), [ + 'id_provider' => 'required', + 'member_id' => 'required', + 'service_code' => 'required' + ], [ + 'id_provider.required' => trans('Validation.required',['attribute' => 'Provider ID']), + 'member_id.required' => trans('Validation.required',['attribute' => 'Member ID']), + 'service_code.required' => trans('Validation.required',['attribute' => 'Service Code']), + ]); + } if ($validator->fails()) { return ApiResponse::apiResponse('Bad Request', $data, $validator->errors(), 400); diff --git a/frontend/hospital-portal/public/lang/en-US.json b/frontend/hospital-portal/public/lang/en-US.json index c8060371..7bb9238b 100644 --- a/frontend/hospital-portal/public/lang/en-US.json +++ b/frontend/hospital-portal/public/lang/en-US.json @@ -34,5 +34,9 @@ "txtSupportingResultDocument" : "Supporting Result Document", "txtAddResult" : "Add Result", "txtServiceType" : "Service Type", - "txtAdditionalDocuments" : "Additional Documents" + "txtAdditionalDocuments" : "Additional Documents", + "txtAddNew" : "Add New", + "txtAddress" : "Address", + "txtProvider": "Provider", + "txtAlertProvider" : "Please enter provider" } diff --git a/frontend/hospital-portal/public/lang/id-ID.json b/frontend/hospital-portal/public/lang/id-ID.json index 5ca6e767..29798776 100644 --- a/frontend/hospital-portal/public/lang/id-ID.json +++ b/frontend/hospital-portal/public/lang/id-ID.json @@ -34,5 +34,9 @@ "txtSupportingResultDocument" : "Dokumen Hasil Pendukung", "txtAddResult" : "Tambah Hasil", "txtServiceType" : "Tipe Layanan", - "txtAdditionalDocuments" : "Dokumen Tambahan" + "txtAdditionalDocuments" : "Dokumen Tambahan", + "txtAddNew" : "Tambah Baru", + "txtAddress" : "Alamat", + "txtProvider": "Penyedia", + "txtAlertProvider" : "Mohon masukan provider" } diff --git a/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx b/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx index 1f6433c2..43b6204f 100644 --- a/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx +++ b/frontend/hospital-portal/src/sections/dashboard/FormRequestLog.tsx @@ -16,10 +16,14 @@ import { useRef, useState, useContext } from 'react'; import { makeFormData } from '@/utils/jsonToFormData'; import { format } from 'date-fns'; import { LanguageContext } from '@/contexts/LanguageContext'; +import Autocomplete from '@mui/material/Autocomplete'; +import TextField from '@mui/material/TextField'; +import Button from '@mui/material/Button'; interface MemberType { members: any; services: any; + providers:any; } interface FormRequestClaimProps { member: MemberType; @@ -28,9 +32,15 @@ interface FormRequestClaimProps { export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRequestClaimProps) { const { localeData }: any = useContext(LanguageContext); const [serviceCode, setServiceCode] = useState(''); + const [idProvider, setIdProvider] = useState(0); const [submitLoading, setSubmitLoading] = useState(false); function submitRequest() { + if(!idProvider&& (name == '' || alamat == '')) + { + enqueueSnackbar(localeData.txtAlertProvider, { variant: 'warning' }); + return false; + } if(serviceCode == '') { enqueueSnackbar(localeData.txtDialogMember4, { variant: 'warning' }); @@ -39,7 +49,10 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe setSubmitLoading(true); const formData = { member_id: member.members.id, - service_code: serviceCode + service_code: serviceCode, + id_provider: idProvider, + name_provider : name, + address_provider: alamat }; axios .post('/request-log', formData) @@ -64,8 +77,26 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe name: string; } + interface Providers { + id: number; + name: string; + } + + const [showAddNewForm, setShowAddNewForm] = useState(false); + const [name, setName] = useState(''); + const [alamat, setAlamat] = useState(''); + + const handleAddNewData = () => { + // Logika untuk menambahkan data baru ke database + // Pastikan untuk menyesuaikan logika ini sesuai dengan kebutuhan aplikasi Anda + console.log('Adding new data:', { name, alamat }); + + // Setelah menambahkan data baru, Anda mungkin ingin melakukan sesuatu seperti menutup formulir tambahan atau melakukan pengaturan lainnya + setShowAddNewForm(false); + }; + return ( - + {localeData.txtDialogMember5} @@ -74,27 +105,71 @@ export default function FormRequestClaim({ member, handleSubmitSuccess }: FormRe - - {localeData.txtDialogMember1}* - - - {localeData.txtDialogMember1} - - + /> + )} + /> + {showAddNewForm && ( + + {localeData.txtAddNew} * + setName(e.target.value)} + /> + setAlamat(e.target.value)} + /> + + )} + + + + + + + {localeData.txtDialogMember1} * + option.name || ''} + value={member?.services.find((item: MemberService) => item.service_code === serviceCode) || null} + onChange={(event: React.ChangeEvent<{}>, newValue: MemberService | null) => { + setServiceCode(newValue?.service_code || ''); + }} + renderInput={(params) => ( + + )} + /> -