cek all spesialis

This commit is contained in:
2023-11-15 14:18:05 +07:00
parent 643fd2b6cd
commit 0dc10587a8
4 changed files with 156 additions and 11 deletions

View File

@@ -756,6 +756,7 @@ class ClaimController extends Controller
->leftJoin('corporate_benefits','corporate_benefits.plan_id', '=', 'member_plans.plan_id')
->leftJoin('benefits', 'benefits.id', '=', 'corporate_benefits.benefit_id')
->where('member_plans.member_id', '=', $data_claim_requests->member_id)
->where('member_plans.plan_id', '=', $plan_id->plan_id)
->select('benefits.code', 'benefits.description', 'benefits.id')
->get();
$results['benefit_name'] = $benefit_name;

View File

@@ -154,8 +154,6 @@ class CorporateServiceController extends Controller
public function corporateServiceSpecialityUpdate(Request $request, $corporate_id, $service_code)
{
// return response()->json([$request->checked, $request->value, $request->speciality_id]);
$corporateService = CorporateService::query()
@@ -163,7 +161,6 @@ class CorporateServiceController extends Controller
->where('service_code', $service_code)
->first();
$corporateServiceSpeciality = CorporateServiceSpeciality::updateOrCreate([
'corporate_service_id' => $corporateService->id,
'speciality_id' => $request->speciality_id,
@@ -193,6 +190,105 @@ class CorporateServiceController extends Controller
return response()->json($selected_specialities);
}
public function corporateServiceSpecialityAllUpdate(Request $request, $corporate_id, $service_code)
{
// return response()->json([$request->checked, $request->value, $request->speciality_id]);
$corporateService = CorporateService::query()
->where('corporate_id', $corporate_id)
->where('service_code', $service_code)
->first();
$specialities = Speciality::get()->toArray();
if ($specialities){
foreach($specialities as $s){
$corporateServiceSpeciality = CorporateServiceSpeciality::updateOrCreate([
'corporate_service_id' => $corporateService->id,
'speciality_id' => $s['id'],
], [
'corporate_service_id' => $corporateService->id,
'speciality_id' => $s['id'],
'active' => $request->active
]);
$corporateServiceSpeciality = CorporateServiceSpeciality::updateOrCreate([
'corporate_service_id' => $corporateService->id,
'speciality_id' => $s['id'],
], [
'corporate_service_id' => $corporateService->id,
'speciality_id' => $s['id'],
'active' => $request->active
]);
$corporateServiceSpecialityRule = CorporateServiceSpeciality::where('corporate_service_id', $corporateService->id)
->where('speciality_id', $s['id'])
->with('exclusions.rules')
->first();
// Exclusion Rules
if (empty($corporateServiceSpecialityRule)) {
$corporateServiceSpecialityRule = CorporateServiceSpeciality::create([
'corporate_service_id' => $corporateService->id,
'speciality_id' => $s['id'],
'active' => false,
]);
$corporateServiceSpecialityRule->exclusions()->updateOrCreate([
'corporate_id' => $corporate_id,
'service_code' => $service_code,
], [
'corporate_id' => $corporate_id,
'service_code' => $service_code,
'type' => 'speciality',
]);
}
$exclusion = $corporateServiceSpecialityRule->exclusions()->where('corporate_id', $corporate_id)->where('service_code', $service_code)->first();
$exclusion_rule = $exclusion->rules()->updateOrCreate([
'exclusion_id' => $exclusion->id,
'name' => 'msc',
], [
'name' => 'msc',
'values' => $request->active ? 'm,s,c' : '',
]);
$exclusion_rule = $exclusion->rules()->updateOrCreate([
'exclusion_id' => $exclusion->id,
'name' => 'gender',
], [
'name' => 'gender',
'values' => $request->active ? 'male,female' : '',
]);
}
}
$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('active', true)
->with('speciality')
->get()
->pluck('speciality.name', 'speciality.id');
// return response()->json($selected_specialities);
return response()->json([
'selected_specialities' => $selected_specialities,
'service' => CorporateServiceConfigResource::make($corporateService),
]);
}
public function storeExclusion(Request $request, $corporate_id, $service_code)
{
@@ -227,12 +323,10 @@ class CorporateServiceController extends Controller
if ($request->type == 'msc') {
$value_input = $request->value;
$current_msc = $exclusion->rules()->where('name', 'msc')->first()->values ?? null;
if (!empty($current_msc)) {
$values = "";
if ($request->value == 'm' && $request->checked == "1") {
$values = $current_msc . "," . $value_input;
@@ -438,4 +532,6 @@ class CorporateServiceController extends Controller
'service' => CorporateServiceConfigResource::make($corporateService),
]);
}
}

View File

@@ -134,6 +134,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-all', [CorporateServiceController::class, 'corporateServiceSpecialityAllUpdate']);
Route::post('corporates/{corporate_id}/services/{service_code}/specialities/exclusion', [CorporateServiceController::class, 'storeExclusion']);
Route::get('corporates/{corporate_id}/formulariums', [CorporateFormulariumController::class, 'index']);

View File

@@ -230,9 +230,46 @@ export default function Divisions() {
}
};
const handleToggleSpecialityAll = (
event: ChangeEvent<HTMLInputElement>,
service: any,
specialityAll: boolean
) => {
console.log('Changing Service ', service, 'and', specialityAll);
try {
axios
.post(`/corporates/${corporate_id}/services/${service_code}/specialities-all`, {
active: specialityAll,
})
.then((res) => {
setService({
...service,
selected_specialities: res.data?.selected_specialities,
exclusions: res.data?.service?.exclusions,
});
// let newConfigurations = service.configurations
// newConfigurations[res.data.name] = res.data.value == true
// setService({
// ...service,
// configurations: { ...newConfigurations }
// })
enqueueSnackbar('Speciality Updated', {
variant: 'success',
});
});
} catch (error) {
console.log(error);
enqueueSnackbar('Speciality Update Failed', {
variant: 'error',
});
}
};
const [minAge, setMinAge] = useState('');
const [maxAge, setMaxAge] = useState('');
const [valuePlan, setValuePlan] = useState([]);
const [checkAll, setCheckAll] = useState(false);
const [exclusion, setExclusion] = useState([
{
@@ -263,6 +300,11 @@ export default function Divisions() {
}
};
const handleCheckAll = (event, checkAll) => {
setCheckAll(!checkAll); // Membalik nilai checkAll saat checkbox di klik
handleToggleSpecialityAll(event, service, !checkAll)
};
// const handleSubmit = (event: any, service: any, row: any) => {
// const allData = exclusion.find((item: any) => item.speciality_id === row.id);
@@ -494,7 +536,7 @@ export default function Divisions() {
<FormControlLabel
control={
<Checkbox
checked={service?.configurations?.sp_external_doctor_online == '1'}
checked={ service?.configurations?.sp_external_doctor_online == '1'}
onChange={(event) => {
handleConfigChange(event, service);
}}
@@ -662,7 +704,7 @@ export default function Divisions() {
alignItems="center"
>
<Typography id="modal-modal-title" variant="h6" color={'#FFF'} component="h2">
Specialities
Specialities Exclusion
</Typography>
<Button
sx={{ color: '#FFF' }}
@@ -680,10 +722,11 @@ export default function Divisions() {
<TableHead>
<TableRow>
<TableCell>
<Checkbox
/>
<Checkbox
onClick={(event) => handleCheckAll(event, checkAll)}
checked={checkAll} // Ini penting untuk memastikan status checkbox sesuai dengan state checkAll
content='test'
/>
</TableCell>
<TableCell sx={{ width: 10 }}>Specialitation</TableCell>
<TableCell>MSC</TableCell>
@@ -708,6 +751,7 @@ export default function Divisions() {
checked={Object.keys(service.selected_specialities).includes(
String(row.id)
)}
// checked={checkAll}
onChange={(event) => {
handleToggleSpeciality(event, service, row);
}}
@@ -725,6 +769,7 @@ export default function Divisions() {
(item: { speciality_id: any; msc: { m: string } }) =>
item.speciality_id == row.id && item.msc?.m == '1'
)}
// checked={true}
onChange={(event) => {
handleConfigExclusion(event, service, row, 'm', 'msc');
}}
@@ -739,6 +784,7 @@ export default function Divisions() {
(item: { speciality_id: any; msc: { s: string } }) =>
item.speciality_id == row.id && item.msc?.s == '1'
)}
// checked={true}
onChange={(event) => {
handleConfigExclusion(event, service, row, 's', 'msc');
}}
@@ -775,6 +821,7 @@ export default function Divisions() {
item.speciality_id == row.id &&
item.gender?.male == '1'
)}
// checked={true}
onChange={(event) => {
handleConfigExclusion(
event,