From 2321e708c5e4a441aa919114b57f83d81b826219 Mon Sep 17 00:00:00 2001 From: pajri Date: Thu, 22 Dec 2022 19:13:24 +0700 Subject: [PATCH] add config msc (belum kelar) --- .../Api/CorporateServiceController.php | 134 ++- Modules/Internal/Routes/api.php | 1 + .../CorporateServiceConfigResource.php | 46 +- app/Models/CorporateServiceSpeciality.php | 7 +- ...e_corporate_service_specialities_table.php | 4 +- .../src/pages/Corporates/Benefit/List.tsx | 3 - .../Corporates/CorporateTabNavigations.tsx | 75 +- .../src/pages/Corporates/Services/Create.tsx | 884 ++++++++++++------ .../src/pages/Corporates/Services/Index.tsx | 26 +- 9 files changed, 814 insertions(+), 366 deletions(-) diff --git a/Modules/Internal/Http/Controllers/Api/CorporateServiceController.php b/Modules/Internal/Http/Controllers/Api/CorporateServiceController.php index 61e3717e..f2c3e561 100755 --- a/Modules/Internal/Http/Controllers/Api/CorporateServiceController.php +++ b/Modules/Internal/Http/Controllers/Api/CorporateServiceController.php @@ -74,6 +74,7 @@ class CorporateServiceController extends Controller public function update(Request $request, $corporate_id) { $corporateService = CorporateService::where('corporate_id', $corporate_id)->where('service_code', $request->service_code)->first(); + $corporateServiceConfig = $corporateService->configs()->updateOrCreate([ 'corporate_service_id' => $corporateService->id, 'name' => $request->config_name @@ -99,17 +100,21 @@ class CorporateServiceController extends Controller { $corporate = Corporate::findOrFail($corporate_id); $corporateService = CorporateService::query() - ->where('corporate_id', $corporate_id) - ->where('service_code', $service_code) - ->with(['configs', 'service', - 'specialities' => function($speciality) { - $speciality->where('status', 'active'); - }, - 'specialities.speciality']) - ->first(); + ->where('corporate_id', $corporate_id) + ->where('service_code', $service_code) + ->with([ + 'configs', 'service', + 'specialities' => function ($speciality) { + $speciality->where('active', true); + }, + 'specialities.speciality', + 'specialities.exclusions.rules' + ]) + ->first(); + // $service = CorporateServiceConfigResource::make($corporateService); $specialities = Speciality::get(); - + return response()->json( [ 'corporate' => $corporate, @@ -123,10 +128,10 @@ class CorporateServiceController extends Controller { // $corporate = Corporate::findOrFail($corporate_id); $corporateService = CorporateService::query() - ->where('corporate_id', $corporate_id) - ->where('service_code', $service_code) - // ->with('configs', 'service') - ->first(); + ->where('corporate_id', $corporate_id) + ->where('service_code', $service_code) + // ->with('configs', 'service') + ->first(); $corporateService->fill([ 'status' => $request->status == 'active' ? 'active' : 'inactive' ]); @@ -137,25 +142,108 @@ class CorporateServiceController extends Controller public function corporateServiceSpecialityUpdate(Request $request, $corporate_id, $service_code) { + + + // return response()->json([$request->msc, $request->name, $request->speciality_id]); + $corporateService = CorporateService::query() - ->where('corporate_id', $corporate_id) - ->where('service_code', $service_code) - ->first(); - CorporateServiceSpeciality::updateOrCreate([ + ->where('corporate_id', $corporate_id) + ->where('service_code', $service_code) + ->first(); + + + $corporateServiceSpeciality = CorporateServiceSpeciality::updateOrCreate([ 'corporate_service_id' => $corporateService->id, 'speciality_id' => $request->speciality_id, ], [ 'corporate_service_id' => $corporateService->id, 'speciality_id' => $request->speciality_id, - 'status' => $request->status + 'active' => $request->active ]); + $exclusion = $corporateServiceSpeciality->exclusions()->updateOrCreate([ + 'corporate_id' => $corporate_id, + 'service_code' => $service_code, + ], [ + 'corporate_id' => $corporate_id, + 'service_code' => $service_code, + 'type' => 'speciality', + ]); + + $selected_specialities = CorporateServiceSpeciality::query() - ->where('corporate_service_id', $corporateService->id) - ->where('status', 'active') - ->with('speciality') - ->get() - ->pluck('speciality.name', 'speciality.id'); + ->where('corporate_service_id', $corporateService->id) + ->where('active', true) + ->with('speciality') + ->get() + ->pluck('speciality.name', 'speciality.id'); + + return response()->json($selected_specialities); + } + + public function storeExclusion(Request $request, $corporate_id, $service_code) + { + + $corporateService = CorporateService::query() + ->where('corporate_id', $corporate_id) + ->where('service_code', $service_code) + ->first(); + + $corporateServiceSpeciality = CorporateServiceSpeciality::where('corporate_service_id', $corporateService->id) + ->where('speciality_id', $request->speciality_id) + ->first(); + + // return ([$corporateServiceSpeciality, $request->msc, $request->name, $request->speciality_id, $request->type]); + + $exclusion = $corporateServiceSpeciality->exclusions()->updateOrCreate([ + 'corporate_id' => $corporate_id, + 'service_code' => $service_code, + ], [ + 'corporate_id' => $corporate_id, + 'service_code' => $service_code, + 'type' => 'speciality', + ]); + + + if ($request->type == 'msc') { + if ($request->name == 'member' && $request->msc == "1") { + $m = "m"; + } else { + $m = ""; + } + + if ($request->name == 'spouse' && $request->msc == "1") { + $s = "s"; + } else { + $s = ""; + } + + if ($request->name == 'child' && $request->msc == "1") { + $c = "c"; + } else { + $c = ""; + } + + $values = $m . $s . $c; + + + + + $exclusion_rule = $exclusion->rules()->updateOrCreate([ + 'exclusion_id' => $exclusion->id, + 'name' => 'msc', + ], [ + 'name' => 'msc', + 'values' => $values, + ]); + } + + $selected_specialities = CorporateServiceSpeciality::query() + ->where('corporate_service_id', $corporateService->id) + ->where('active', true) + ->with('speciality') + ->get() + ->pluck('speciality.name', 'speciality.id'); return response()->json($selected_specialities); } diff --git a/Modules/Internal/Routes/api.php b/Modules/Internal/Routes/api.php index 1dbf0dac..26fb664b 100755 --- a/Modules/Internal/Routes/api.php +++ b/Modules/Internal/Routes/api.php @@ -88,6 +88,7 @@ Route::prefix('internal')->group(function () { Route::get('corporates/{corporate_id}/services/{service_code}', [CorporateServiceController::class, 'corporateServiceIndex']); Route::put('corporates/{corporate_id}/services/{service_code}', [CorporateServiceController::class, 'corporateServiceUpdate']); Route::post('corporates/{corporate_id}/services/{service_code}/specialities', [CorporateServiceController::class, 'corporateServiceSpecialityUpdate']); + Route::post('corporates/{corporate_id}/services/{service_code}/specialities/exclusion', [CorporateServiceController::class, 'storeExclusion']); Route::get('corporates/{corporate_id}/formulariums', [CorporateFormulariumController::class, 'index']); Route::put('corporates/{corporate_id}/formulariums/{formularium_id}/{action}', [CorporateFormulariumController::class, 'updateStatus']); diff --git a/Modules/Internal/Transformers/CorporateServiceConfigResource.php b/Modules/Internal/Transformers/CorporateServiceConfigResource.php index 64337560..50b4ed20 100755 --- a/Modules/Internal/Transformers/CorporateServiceConfigResource.php +++ b/Modules/Internal/Transformers/CorporateServiceConfigResource.php @@ -15,7 +15,7 @@ class CorporateServiceConfigResource extends JsonResource public function toArray($request) { - return [ + $data = [ 'id' => $this->id, 'corporate_id' => $this->corporate_id, 'service_code' => $this->service_code, @@ -23,7 +23,49 @@ class CorporateServiceConfigResource extends JsonResource 'name' => $this->service->name, 'description' => $this->service->description, 'configurations' => $this->configs->pluck('value', 'name'), - 'selected_specialities' => $this->specialities->pluck('speciality.name', 'speciality_id') + 'selected_specialities' => $this->specialities->pluck('speciality.name', 'speciality_id'), + 'exclusions' => $this->specialities->map(function ($speciality) { + return [ + 'speciality_id' => $speciality->speciality_id, + 'rules' => $speciality->exclusions->first()->rules->map( + function ($rule) { + return [ + 'name' => $rule->name, + 'value' => explode(',', $rule->values) + ]; + } + ), + + ]; + }), ]; + + $list_msc = $this->specialities->map(function ($speciality) { + return explode(',', $speciality->exclusions->first()->rules->where('name', 'msc')->first()->values); + })->map(function ($item) { + return [ + 'm' => in_array('m', $item), + 's' => in_array('s', $item), + 'c' => in_array('c', $item), + ]; + }); + // $msc = $cek->map(function ($item) { + // return [ + // 'name' => $item, + // 'value' => true + // ]; + // }); + + $data['exclusions'] = $data['exclusions']->map(function ($item, $key) use ($list_msc) { + + $item['msc'] = $list_msc[$key]; + return $item; + }); + + + + + + return $data; } } diff --git a/app/Models/CorporateServiceSpeciality.php b/app/Models/CorporateServiceSpeciality.php index 5746ba40..6a4f898b 100755 --- a/app/Models/CorporateServiceSpeciality.php +++ b/app/Models/CorporateServiceSpeciality.php @@ -14,7 +14,7 @@ class CorporateServiceSpeciality extends Model protected $fillable = [ 'corporate_service_id', 'speciality_id', - 'status' + 'active' ]; public function corporateService() @@ -31,4 +31,9 @@ class CorporateServiceSpeciality extends Model { return $this->belongsTo(Speciality::class, 'speciality_id'); } + + public function exclusions() + { + return $this->morphMany(Exclusion::class, 'exclusionable'); + } } diff --git a/database/migrations/2022_08_24_225705_create_corporate_service_specialities_table.php b/database/migrations/2022_08_24_225705_create_corporate_service_specialities_table.php index 34af5752..2017a123 100755 --- a/database/migrations/2022_08_24_225705_create_corporate_service_specialities_table.php +++ b/database/migrations/2022_08_24_225705_create_corporate_service_specialities_table.php @@ -17,11 +17,11 @@ return new class extends Migration $table->id(); $table->foreignId('corporate_service_id'); $table->foreignId('speciality_id'); - $table->string('status')->default('active'); + $table->boolean('active'); $table->timestamps(); $table->softDeletes(); - + $table->foreignId('created_by')->nullable(); $table->foreignId('updated_by')->nullable(); $table->foreignId('deleted_by')->nullable(); diff --git a/frontend/dashboard/src/pages/Corporates/Benefit/List.tsx b/frontend/dashboard/src/pages/Corporates/Benefit/List.tsx index 399a08f6..e1648df6 100755 --- a/frontend/dashboard/src/pages/Corporates/Benefit/List.tsx +++ b/frontend/dashboard/src/pages/Corporates/Benefit/List.tsx @@ -259,9 +259,6 @@ export default function PlanList() { const [open, setOpen] = React.useState(false); const [openEdit, setOpenEdit] = React.useState(false); - console.log('edit', openEdit); - console.log('open', open); - const handleActivate = (model: any, status: string) => { axios .put(`/benefits/${row.id}/activation`, { diff --git a/frontend/dashboard/src/pages/Corporates/CorporateTabNavigations.tsx b/frontend/dashboard/src/pages/Corporates/CorporateTabNavigations.tsx index 4e4289ff..4cfffe6d 100755 --- a/frontend/dashboard/src/pages/Corporates/CorporateTabNavigations.tsx +++ b/frontend/dashboard/src/pages/Corporates/CorporateTabNavigations.tsx @@ -1,15 +1,19 @@ -import { Tab, Tabs } from "@mui/material"; -import { useTheme } from "@mui/system"; -import React, { useEffect } from "react"; -import { Link, useNavigate, useParams } from "react-router-dom"; +import { Tab, Tabs } from '@mui/material'; +import { useTheme } from '@mui/system'; +import React, { useEffect, useRef, useState } from 'react'; +import axios from '../../utils/axios'; +import { Corporate } from '../../@types/corporates'; + +import { Link, useNavigate, useParams } from 'react-router-dom'; type Props = { - position: string -} + position: string; +}; export default function CorporateTabNavigations({ position }: Props) { const theme = useTheme(); const navigate = useNavigate(); + const [corporate, setCorporate] = useState(); const { corporate_id } = useParams(); @@ -17,70 +21,79 @@ export default function CorporateTabNavigations({ position }: Props) { const mainTabItems = [ { - 'path' : '', - 'label': 'Dashboard', + path: '', + label: 'Dashboard', }, // { // 'path' : 'corporate-plans', // 'label': 'Corporate Plan', // }, { - 'path' : 'services', - 'label': 'Services', + path: 'services', + label: 'Services', }, { - 'path' : 'plans', - 'label': 'Plans', + path: 'plans', + label: 'Plans', }, // { // 'path' : 'corporate-benefits', // 'label': 'Corporate Benefit', // }, { - 'path' : 'benefits', - 'label': 'Benefit', + path: 'benefits', + label: 'Benefit', }, { - 'path' : 'divisions', - 'label': 'Division', + path: 'divisions', + label: 'Division', }, { - 'path' : 'members', - 'label': 'Member List', + path: 'members', + label: 'Member List', }, { - 'path' : 'diagnosis-exclusions', - 'label': 'Exclusion', + path: 'diagnosis-exclusions', + label: 'Exclusion', }, { - 'path' : 'hospitals', - 'label': 'Hospital', + path: 'hospitals', + label: 'Hospital', }, { - 'path' : 'formularium', - 'label': 'Formularium', + path: 'formularium', + label: 'Formularium', }, { - 'path' : 'claim-history', - 'label': 'Claim History', + path: 'claim-history', + label: 'Claim History', }, ]; useEffect(() => { - let currentIndex = mainTabItems.findIndex(item => item.path === position); + let currentIndex = mainTabItems.findIndex((item) => item.path === position); setCurrentTab(currentIndex); - }, []) + }, []); return ( false} variant="scrollable" scrollButtons allowScrollButtonsMobile aria-label="scrollable force tabs example" > - {mainTabItems.map((tabItem, index) => ( { navigate("/corporates/"+corporate_id+"/"+mainTabItems[index].path) }}label={tabItem.label}/>))} + {mainTabItems.map((tabItem, index) => ( + { + navigate('/corporates/' + corporate_id + '/' + mainTabItems[index].path); + }} + label={tabItem.label} + /> + ))} - ) + ); } diff --git a/frontend/dashboard/src/pages/Corporates/Services/Create.tsx b/frontend/dashboard/src/pages/Corporates/Services/Create.tsx index 9556c2d1..c2046df5 100755 --- a/frontend/dashboard/src/pages/Corporates/Services/Create.tsx +++ b/frontend/dashboard/src/pages/Corporates/Services/Create.tsx @@ -1,19 +1,38 @@ import * as Yup from 'yup'; -import { yupResolver } from "@hookform/resolvers/yup"; -import { Box, Card, Checkbox, Collapse, Divider, FormControlLabel, Grid, Modal, Paper, Stack, Table, TableBody, TableCell, TableContainer, TableHead, TableRow, Typography } from "@mui/material"; -import { useForm } from "react-hook-form"; -import { useParams } from "react-router-dom"; -import HeaderBreadcrumbs from "../../../components/HeaderBreadcrumbs"; -import { FormProvider, RHFCheckbox, RHFSelect, RHFTextField } from "../../../components/hook-form"; -import Page from "../../../components/Page"; -import useSettings from "../../../hooks/useSettings"; -import CorporateTabNavigations from "../CorporateTabNavigations"; -import DivisionsList from "./List"; +import { yupResolver } from '@hookform/resolvers/yup'; +import { + Box, + Card, + Checkbox, + Collapse, + Divider, + FormControlLabel, + FormGroup, + Grid, + Modal, + Paper, + Stack, + Table, + TableBody, + TableCell, + TableContainer, + TableHead, + TableRow, + TextField, + Typography, +} from '@mui/material'; +import { useForm } from 'react-hook-form'; +import { useParams } from 'react-router-dom'; +import HeaderBreadcrumbs from '../../../components/HeaderBreadcrumbs'; +import { FormProvider, RHFCheckbox, RHFSelect, RHFTextField } from '../../../components/hook-form'; +import Page from '../../../components/Page'; +import useSettings from '../../../hooks/useSettings'; +import CorporateTabNavigations from '../CorporateTabNavigations'; +import DivisionsList from './List'; import { ChangeEvent, useEffect, useMemo, useState } from 'react'; import axios from '../../../utils/axios'; import { CorporateService } from '../../../@types/corporates'; - - +import { InfoIcon } from '../../../theme/overrides/CustomIcons'; export default function Divisions() { const { themeStretch } = useSettings(); @@ -21,63 +40,117 @@ export default function Divisions() { const { corporate_id, service_code } = useParams(); const [service, setService] = useState({ - "configurations" : {}, - "corporate_id": "null", - "name" : "", - "description" : "", - "service_code" : "", - "status" : "active" + configurations: {}, + corporate_id: 'null', + name: '', + description: '', + service_code: '', + status: 'active', }); - const [specialities, setSpecialities] = useState([]) + const [specialities, setSpecialities] = useState([]); - useEffect(() => { - axios.get('/corporates/'+corporate_id+'/services/'+service_code) - .then((res) => { - setService(res.data.service) - setSpecialities(res.data.specialities) - }); - }, []) + // console.log('specialities', specialities); + useEffect(() => { + axios.get('/corporates/' + corporate_id + '/services/' + service_code).then((res) => { + setService(res.data.service); + setSpecialities(res.data.specialities); + setExclusion(res.data.service?.exclusions); + }); + }, []); const handleConfigChange = (event: ChangeEvent, service: any) => { - axios.put(`/corporates/${corporate_id}/services`, { - service_code: service.service_code, - config_name: event.target.name, - config_value: event.target.checked - }) - .then((res) => { - let newConfigurations = service.configurations - newConfigurations[res.data.name] = res.data.value == true - - setService({ - ...service, - configurations: { ...newConfigurations } + axios + .put(`/corporates/${corporate_id}/services`, { + service_code: service.service_code, + config_name: event.target.name, + config_value: event.target.checked, }) - }) - } + .then((res) => { + let newConfigurations = service.configurations; + newConfigurations[res.data.name] = res.data.value == true; - const handleToggleSpeciality = (event: ChangeEvent, service: any, speciality: any) => { - console.log('Changing Service ', service, 'and', speciality) - axios.post(`/corporates/${corporate_id}/services/${service_code}/specialities`, { - // service_code: service.service_code, - speciality_id: speciality.id, - status: event.target.checked ? 'active' : 'inactive' - }) - .then((res) => { - setService({ - ...service, - selected_specialities : res.data + setService({ + ...service, + configurations: { ...newConfigurations }, + }); + }); + }; + + // const [configExclusions, setConfigExclusions] = useState([]); + + // console.log('Config Exclusions', configExclusions); + + // const handleConfigExclusion = (event: ChangeEvent, speciality: any) => { + + // setConfigExclusions({ + // ...configExclusions, + // [event.target.name]: event.target.checked, + // }); + // }; + + const [exclusion, setExclusion] = useState([]); + + console.log('Exclusions', exclusion); + + const handleConfigExclusion = ( + event: ChangeEvent, + service: any, + speciality: any, + name: string, + type: string + ) => { + console.log(event.target.checked, service, speciality, name, type); + + axios + .post(`/corporates/${corporate_id}/services/${service_code}/specialities/exclusion`, { + // service_code: service.service_code, + speciality_id: speciality.id, + msc: event.target.checked ? '1' : '0', + name: name, + type: type, }) - // let newConfigurations = service.configurations - // newConfigurations[res.data.name] = res.data.value == true + .then((res) => { + setService({ + ...service, + selected_specialities: res.data, + }); + setExclusion({ + ...exclusion, + [event.target.name]: event.target.checked, + }); + // let newConfigurations = service.configurations + // newConfigurations[res.data.name] = res.data.value == true + }); + }; - // setService({ - // ...service, - // configurations: { ...newConfigurations } - // }) - }) - } + const handleToggleSpeciality = ( + event: ChangeEvent, + service: any, + speciality: any + ) => { + console.log('Changing Service ', service, 'and', speciality); + axios + .post(`/corporates/${corporate_id}/services/${service_code}/specialities`, { + // service_code: service.service_code, + speciality_id: speciality.id, + active: event.target.checked ? '1' : '0', + }) + .then((res) => { + setService({ + ...service, + selected_specialities: res.data, + }); + // let newConfigurations = service.configurations + // newConfigurations[res.data.name] = res.data.value == true + + // setService({ + // ...service, + // configurations: { ...newConfigurations } + // }) + }); + }; const specialityModalStyle = { position: 'absolute' as 'absolute', @@ -92,12 +165,32 @@ export default function Divisions() { boxShadow: 24, p: 4, }; - const [specialityModal, setSpecialityModal] = useState(false) + const [specialityModal, setSpecialityModal] = useState(false); + const listMsc = [ + { + id: 1, + name: 'Member', + value: 'm', + checked: false, + }, + { + id: 2, + name: 'Spouse', + value: 's', + checked: false, + }, + { + id: 3, + name: 'Child', + value: 'c', + checked: false, + }, + ]; + console.log('Service _exclusions', service.exclusions); return ( - - {/* */} - + + + + + + + General Practitioner + + + + + + External Doctor + Internal Doctor + + + + { + handleConfigChange(event, service); + }} + name="gp_external_doctor_online" + /> + } + label="Online" + /> + + + { + handleConfigChange(event, service); + }} + name="gp_external_doctor_offline" + /> + } + label="Offline" + /> + + + { + handleConfigChange(event, service); + }} + name="gp_internal_doctor_online" + /> + } + label="Online" + /> + + + { + handleConfigChange(event, service); + }} + name="gp_internal_doctor_offline" + /> + } + label="Offline" + /> + + + +
+
- - - - - General Practitioner - - - - - External Doctor - Internal Doctor - - - - {handleConfigChange(event, service)}} - name="gp_external_doctor_online" /> - )} - label="Online" /> - - - {handleConfigChange(event, service)}} - name="gp_external_doctor_offline" /> - )} - label="Offline" /> - - - {handleConfigChange(event, service)}} - name="gp_internal_doctor_online" /> - )} - label="Online" /> - - - {handleConfigChange(event, service)}} - name="gp_internal_doctor_offline" /> - )} - label="Offline" /> - - - -
-
+ + + + + + Specialist Practitioner + + + + + + External Doctor + Internal Doctor + + + + { + handleConfigChange(event, service); + }} + name="sp_external_doctor_online" + /> + } + label="Online" + /> + + + { + handleConfigChange(event, service); + }} + name="sp_external_doctor_offline" + /> + } + label="Offline" + /> + + + { + handleConfigChange(event, service); + }} + name="sp_internal_doctor_online" + /> + } + label="Online" + /> + + + { + handleConfigChange(event, service); + }} + name="sp_internal_doctor_offline" + /> + } + label="Offline" + /> + + + + + { + setSpecialityModal(true); + }} + > + Specialities : ( + {service.selected_specialities + ? Object.keys(service.selected_specialities).length + : '0'} + ) + + + {service.selected_specialities + ? '{' + Object.values(service.selected_specialities).join(', ') + '}' + : ''} + + + + +
+
- - - - - Specialist Practitioner - - - - - External Doctor - Internal Doctor - - - - {handleConfigChange(event, service)}} - name="sp_external_doctor_online" /> - )} - label="Online" /> - - - {handleConfigChange(event, service)}} - name="sp_external_doctor_offline" /> - )} - label="Offline" /> - - - {handleConfigChange(event, service)}} - name="sp_internal_doctor_online" /> - )} - label="Online" /> - - - {handleConfigChange(event, service)}} - name="sp_internal_doctor_offline" /> - )} - label="Offline" /> - - - - - { setSpecialityModal(true) }}> - Specialities : ({service.selected_specialities ? Object.keys(service.selected_specialities).length : '0'}) - - {service.selected_specialities ? '{'+Object.values(service.selected_specialities).join(', ')+'}' : ''} - - - -
-
+ { + setSpecialityModal(false); + }} + aria-labelledby="modal-modal-title" + aria-describedby="modal-modal-description" + > + + + Specialities + + + + + + Covered - { setSpecialityModal(false) }} - aria-labelledby="modal-modal-title" - aria-describedby="modal-modal-description" - > - - - Specialities - - -
- - - - Nama Spesialisasi + Nama Spesialisasi + MSC + Gender + Min Age + Max Age + Plan + + + + {specialities.map((row) => ( + + + { + handleToggleSpeciality(event, service, row); + }} + name="vitamins" + /> + + + {row.name} + + + + {/* {listMsc.map((list) => ( + item.speciality_id == 2) + .includes(row.id)} + onChange={(event) => { + handleConfigExclusion(event, service, row, 'msc'); + }} + /> + } + label={list.name} + /> + ))} */} + + + item.speciality_id == row.id && item.msc?.m == '1' + )} + onChange={(event) => { + handleConfigExclusion( + event, + service, + row, + 'member', + 'msc' + ); + }} + name="member" + /> + } + label="Member" + /> + + item.speciality_id == row.id && item.msc?.s == '1' + )} + onChange={(event) => { + handleConfigExclusion( + event, + service, + row, + 'spouse', + 'msc' + ); + }} + name="spouse" + /> + } + label="Spouse" + /> + + item.speciality_id == row.id && item.msc?.c == '1' + )} + onChange={(event) => { + handleConfigExclusion( + event, + service, + row, + 'child', + 'msc' + ); + }} + name="child" + /> + } + label="Child" + /> + + + + + { + handleConfigChange(event, service); + }} + name="sp_external_doctor_online" + /> + } + label="Male" + /> + { + handleConfigChange(event, service); + }} + name="sp_external_doctor_online" + /> + } + label="Female" + /> + + + + + + + + - - - {specialities.map((row) => ( - - - {handleToggleSpeciality(event, service, row)}} - name="vitamins" /> - - - {row.name} - - - ))} - -
-
-
-
+ ))} + + + +
+ - - - - - Medicine - - - - - - {handleConfigChange(event, service)}} - name="vitamins" /> - )} - label="Vitamins" /> - - - {handleConfigChange(event, service)}} - name="delivery_fee" /> - )} - label="Delivery Fee" /> - - - - - -
-
+ + + + + + Medicine + + + + + + + { + handleConfigChange(event, service); + }} + name="vitamins" + /> + } + label="Vitamins" + /> + + + { + handleConfigChange(event, service); + }} + name="delivery_fee" + /> + } + label="Delivery Fee" + /> + + + + + +
+
- - - - - Free Admin Fee - - - - - - {handleConfigChange(event, service)}} - name="general_practitioner_fee" /> - )} - label="General Practitioner" /> - - - {handleConfigChange(event, service)}} - name="specialist_practitioner_fee" /> - )} - label="Specialist Practitioner" /> - - - - - -
-
- - - - + + + + + + Free Admin Fee + + + + + + + { + handleConfigChange(event, service); + }} + name="general_practitioner_fee" + /> + } + label="General Practitioner" + /> + + + { + handleConfigChange(event, service); + }} + name="specialist_practitioner_fee" + /> + } + label="Specialist Practitioner" + /> + + + + + +
+
+ + {/*
*/}
diff --git a/frontend/dashboard/src/pages/Corporates/Services/Index.tsx b/frontend/dashboard/src/pages/Corporates/Services/Index.tsx index 0db72eaa..97600d34 100755 --- a/frontend/dashboard/src/pages/Corporates/Services/Index.tsx +++ b/frontend/dashboard/src/pages/Corporates/Services/Index.tsx @@ -1,12 +1,10 @@ -import { Card, Grid } from "@mui/material"; -import { useParams } from "react-router-dom"; -import HeaderBreadcrumbs from "../../../components/HeaderBreadcrumbs"; -import Page from "../../../components/Page"; -import useSettings from "../../../hooks/useSettings"; -import CorporateTabNavigations from "../CorporateTabNavigations"; -import List from "./List"; - - +import { Card, Grid } from '@mui/material'; +import { useParams } from 'react-router-dom'; +import HeaderBreadcrumbs from '../../../components/HeaderBreadcrumbs'; +import Page from '../../../components/Page'; +import useSettings from '../../../hooks/useSettings'; +import CorporateTabNavigations from '../CorporateTabNavigations'; +import List from './List'; export default function Divisions() { const { themeStretch } = useSettings(); @@ -15,10 +13,9 @@ export default function Divisions() { const pageTitle = 'Services'; return ( - - + @@ -39,7 +36,6 @@ export default function Divisions() { - );