diff --git a/Modules/Internal/Http/Controllers/Api/DiagnosisExclusionController.php b/Modules/Internal/Http/Controllers/Api/DiagnosisExclusionController.php index 932388ee..51cbaec1 100644 --- a/Modules/Internal/Http/Controllers/Api/DiagnosisExclusionController.php +++ b/Modules/Internal/Http/Controllers/Api/DiagnosisExclusionController.php @@ -18,6 +18,8 @@ use Illuminate\Support\Facades\Http; use Illuminate\Support\Facades\Storage; use Modules\Internal\Services\ExclusionService; use Modules\Internal\Transformers\DiagnosisExclusionResource; +use Illuminate\Support\Facades\Validator; +use Illuminate\Validation\Rule; class DiagnosisExclusionController extends Controller { @@ -327,4 +329,19 @@ class DiagnosisExclusionController extends Controller // return $exclusions; return Helper::paginateResources(DiagnosisExclusionResource::collection($exclusions)); } + + public function updateActivation(Request $request) + { + // validation rule + $validator = Validator::make($request->all(),[ + 'id' => 'required|exists:exclusions', + 'active' => 'required|in:0,1', + ],$this->messages()); + + // validation error + if ($validator->fails()) { + return response()->json($validator->getMessageBag(),400); + } + + } } diff --git a/Modules/Internal/Routes/api.php b/Modules/Internal/Routes/api.php index 2377549d..a8d6ed5e 100644 --- a/Modules/Internal/Routes/api.php +++ b/Modules/Internal/Routes/api.php @@ -107,6 +107,7 @@ Route::prefix('internal')->group(function () { Route::get('corporates/{corporate_id}/diagnosis-exclusions', [DiagnosisExclusionController::class, 'index']); Route::post('corporates/{corporate_id}/diagnosis-exclusions/store', [DiagnosisExclusionController::class, 'storeExclusion']); + Route::put('corporates/diagnosis-exclusions/update_activation', [DiagnosisExclusionController::class, 'updateActivation']); Route::delete('diagnosis-exclusions/{id}', [DiagnosisExclusionController::class, 'destroy']); Route::post('corporates/{corporate_id}/diagnosis-exclusions/import', [DiagnosisExclusionController::class, 'import']); @@ -132,7 +133,7 @@ Route::prefix('internal')->group(function () { // Audittrail Route::get('audittrail/{corporate_id}', [AuditTrailController::class, 'index']); - + Route::get('master/diagnosis-template', [DiagnosisTemplateController::class, 'index']); Route::get('master/diagnosis-template/search', [DiagnosisTemplateController::class, 'search']); Route::post('master/diagnosis-template/store', [DiagnosisTemplateController::class, 'store']); @@ -157,10 +158,10 @@ Route::prefix('internal')->group(function () { Route::post('master/diagnosis/{diagnosis_template_id}/import', [DiagnosisController::class, 'import']); Route::get('master/diagnosis/{diagnosis_template_id}/list', [DiagnosisController::class, 'generateIcdList']); Route::put('master/diagnosis/{diagnosis_template_id}/activation', [DiagnosisController::class, 'activation']); - + Route::get('master/drugs', [DrugController::class, 'index']); - + Route::get('members', [MemberController::class, 'index']); Route::get('members/{member_id}/benefits', [MemberController::class, 'benefits']); diff --git a/frontend/dashboard/src/pages/Corporates/DiagnosisExclusion/List.tsx b/frontend/dashboard/src/pages/Corporates/DiagnosisExclusion/List.tsx index b256b944..9d09e4b1 100644 --- a/frontend/dashboard/src/pages/Corporates/DiagnosisExclusion/List.tsx +++ b/frontend/dashboard/src/pages/Corporates/DiagnosisExclusion/List.tsx @@ -38,13 +38,13 @@ import { } from '@mui/material'; import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; import KeyboardArrowRightIcon from '@mui/icons-material/KeyboardArrowRight'; -import AddIcon from '@mui/icons-material/Add'; +import GetApp from '@mui/icons-material/GetApp'; import UploadIcon from '@mui/icons-material/Upload'; import CancelIcon from '@mui/icons-material/Cancel'; // hooks import React, { ChangeEvent, Component, useEffect, useRef, useState } from 'react'; import useSettings from '../../../hooks/useSettings'; -import { Link, useParams, useSearchParams } from 'react-router-dom'; +import { Link, useParams, useSearchParams, useNavigate } from 'react-router-dom'; // components import axios from '../../../utils/axios'; import { LaravelPaginatedData } from '../../../@types/paginated-data'; @@ -54,6 +54,11 @@ import { enqueueSnackbar } from 'notistack'; import { Icon } from '@iconify/react'; import { LoadingButton } from '@mui/lab'; import HistoryIcon from '@mui/icons-material/History'; +import CachedIcon from '@mui/icons-material/Cached'; +import TableMoreMenu from '@/components/table/TableMoreMenu'; +import { EditOutlined, FindInPageOutlined } from '@mui/icons-material'; +import Label from '@/components/Label'; +import { display } from '@mui/system'; export default function List(props: any) { const { themeStretch } = useSettings(); @@ -82,7 +87,7 @@ export default function List(props: any) { }, [searchParams]); return ( -
+ { axios.get('corporates/import-document-example/' + type) .then((response) => { @@ -191,17 +196,19 @@ export default function List(props: any) { {/*

kjasndkjandskjasndkjansdkjansd

*/} + { + axios + .put(`/corporates/diagnosis-exclusions/update_activation`, { + id: row.id, + active: row.active == 1 ? 0 : 1, + }) + .then((res) => { + // setDataTableData({ + // ...dataTableData, + // data: dataTableData.data.map((model) => { + // let updatedModel = model; + // if (row.id == model.id) { + // updatedModel.active = res.data.corporate.active; + // } + // return updatedModel; + // }), + // }); + }) + .catch((error) => { + enqueueSnackbar( + error.response.data.message ?? error.message ?? 'Failed Processing Request', + { variant: 'error' } + ); + }); + }; + return ( *': { borderBottom: 'unset' } }}> - - setOpen(!open)}> - {open ? : } - - - {row.service_code} - {row.code} - {row.name} - {Object.keys(row.rules).length ? 'With Rules' : 'All'} - {row.active ? 'Active' : 'Inactive'} + {if(open==true) setOpen(!open)}}/> + {if(open==true) setOpen(!open)}}> + {row.service_code} + + {if(open==true) setOpen(!open)}}> + {row.code} + + {if(open==true) setOpen(!open)}}> + {row.name} + + {if(open==true) setOpen(!open)}}> + {Object.keys(row.rules).length ? 'With Rules' : 'All'} + + {if(open==true) setOpen(!open)}}> + {row.active == 1 && ( + + )} + {row.active != 1 && ( + + )} + - - - {openEdit ? ( - - ) : ( - - )} - {/* */} - {/* - - */} - - + + + setOpen(!open)}> + + Detail + + navigate(`/corporates/${corporate_id}/diagnosis-exclusions/history`)} > + + Edit + + handleActivate(row)}> + + Update Status + + + } /> {/* COLLAPSIBLE ROW */} - {open == true ? ( + {open == true ? ( + + + + + + Excluded Only for : + + + + + + + MSC : + + + + {row?.rules?.msc && row?.rules?.msc[0] ? ( + row?.rules?.msc[0].split(',').map((text,i) => { + return ( + + + + ) + }) + ) : '-'} + + + + Gender : + + + + {row?.rules?.gender && row?.rules?.gender[0] ? ( + + + + ) : '-'} + + + + Min Age : + + + + + {row?.rules?.min_age && row?.rules?.min_age[0] ? row?.rules?.min_age[0] : '-'} + + + + + Max Age : + + + + + {row?.rules?.max_age && row?.rules?.max_age[0] ? row?.rules?.max_age[0] : '-'} + + + + + Play : + + + + + {row?.rules?.plan && row?.rules?.plan[0] ? row?.rules?.plan[0] : '-'} + + + + + + + + ) : null } + {/* {open == true ? ( openEdit == false ? ( - {Object.keys(row.rules).length ? ( -
+
Excluded Only for : @@ -560,12 +658,7 @@ export default function List(props: any) { Plan : {row.rules.plan.join(', ') ?? '-'} )} -
- ) : ( - - Excluded for All - - )} +
) : ( // @@ -752,7 +845,7 @@ export default function List(props: any) { ) - ) : null} + ) : null} */}
@@ -866,6 +959,8 @@ export default function List(props: any) { loadDataTableData(); }, []); + const navigate = useNavigate() + return ( @@ -874,9 +969,9 @@ export default function List(props: any) { {/* The Main Table */} - + - + Service @@ -893,15 +988,17 @@ export default function List(props: any) { Status - Action - - - - - + + navigate(`/corporates/${corporate_id}/diagnosis-exclusions/history`)}> + + History + + + } /> - + {dataTableIsLoading ? ( diff --git a/frontend/dashboard/src/pages/Corporates/Index.tsx b/frontend/dashboard/src/pages/Corporates/Index.tsx index 11c2936e..070ead9c 100644 --- a/frontend/dashboard/src/pages/Corporates/Index.tsx +++ b/frontend/dashboard/src/pages/Corporates/Index.tsx @@ -297,7 +297,11 @@ export default function Corporates() { Import */} +<<<<<<< HEAD diff --git a/frontend/dashboard/src/pages/Corporates/Show.tsx b/frontend/dashboard/src/pages/Corporates/Show.tsx index 06c77ac0..1b1a597c 100644 --- a/frontend/dashboard/src/pages/Corporates/Show.tsx +++ b/frontend/dashboard/src/pages/Corporates/Show.tsx @@ -38,7 +38,7 @@ export default function Corporates() { const headStyle = { fontWeight: 'bold', - }; + }; // Upload Docs const fileDocsInput = useRef(null); const [fileDocs, setFileDocs] = useState([]); @@ -109,7 +109,7 @@ export default function Corporates() { } axios .post('/update-status-files-doc', {status_download : statusDownload, corporate_id : corporate_id}) - .then((response) => { + .then((response) => { enqueueSnackbar(response.data.message, { variant: 'success' }); }) .catch((error) => { @@ -138,7 +138,7 @@ export default function Corporates() { }, ]} /> - + {/* */} @@ -204,7 +204,7 @@ export default function Corporates() { accept="application/pdf" multiple /> - +