Update validation, dll Hospital-Portal

This commit is contained in:
ivan
2023-07-20 11:51:44 +07:00
parent 5632e9ff29
commit 4c8570b542
28 changed files with 598 additions and 128 deletions

View File

@@ -13,7 +13,7 @@ import {
} from '@mui/material';
import { ChevronRight } from '@mui/icons-material';
// React
import React, { useState } from 'react';
import React, { useContext, useState } from 'react';
import { LoadingButton } from '@mui/lab';
import Iconify from '@/components/Iconify';
import { DatePicker, LocalizationProvider, MobileDatePicker } from '@mui/x-date-pickers';
@@ -25,6 +25,7 @@ import MuiDialog from '@/components/MuiDialog';
import axios from '@/utils/axios';
import { useSnackbar } from 'notistack';
import DialogMember from './DialogMember';
import { LanguageContext } from '@/contexts/LanguageContext';
// ----------------------------------------------------------------------
@@ -46,29 +47,32 @@ const ItemNotificationStyle = styled(Card)(({ theme }) => ({
// ----------------------------------------------------------------------
export default function CardSearchMember(handleSubmitSuccess) {
const { localeData } = useContext(LanguageContext);
const {enqueueSnackbar} = useSnackbar();
const [noPolis, setNoPolis] = useState('AW001-01');
const [tanggalLahir, setTanggalLahir] = useState('1991-01-10');
const [birthDate, setBirthDate] = useState('1991-01-10');
const [loadingBenefit, setLoadingBenefit] = useState(false);
const [loadingClaim, setLoadingClaim] = useState(false);
const [openDialogBenefit, setOpenDialogBenefit] = useState(false);
const [openDialogClaim, setOpenDialogClaim] = useState(false);
const [currentMember, setCurrentMember] = useState(null);
const [nameMember, setNameMember] = useState('');
function handleSearchMember() {
setLoadingBenefit(true)
axios.post('/search-member', {
no_polis: noPolis,
birth_date: tanggalLahir ? fPostFormat(tanggalLahir, 'yyyy-MM-dd') : null
birth_date: birthDate ? fPostFormat(birthDate, 'yyyy-MM-dd') : null
})
.then((response) => {
setOpenDialogBenefit(true)
setCurrentMember(response.data.data)
setNameMember(response.data.data.name);
})
.catch(({response}) => {
enqueueSnackbar(response.data.errors ? response.data.errors[0] : (response.data ? response.data.message : 'Opps, Something went Wrong!'), {variant : "error"})
enqueueSnackbar(response.data.errors ? response.data.errors[0] : (response.data ? response.data.meta.message : 'Opps, Something went Wrong!'), {variant : "error"})
})
.then(() => {
setLoadingBenefit(false)
@@ -90,23 +94,23 @@ export default function CardSearchMember(handleSubmitSuccess) {
component="span"
sx={{ display: 'flex', alignItems: 'center' }}
>
Pengajuan Jaminan
{localeData.txtCardSearchMember1}
</Typography>
</Typography>
</Stack>
<Stack gap={2}>
<TextField variant="outlined" label="Member ID" value={noPolis} onChange={(event) => {
<TextField variant="outlined" label={localeData.txtCardSearchMember4} value={noPolis} onChange={(event) => {
setNoPolis(event.target.value)
}}></TextField>
}} required></TextField>
<LocalizationProvider dateAdapter={AdapterDateFns}>
<DatePicker
label="Tanggal Lahir"
value={tanggalLahir}
label={localeData.txtCardSearchMember3}
value={birthDate}
onChange={(newValue) => {
setTanggalLahir( (newValue));
}}
inputFormat="dd-MM-yyyy"
renderInput={(params) => <TextField {...params} />}
renderInput={(params) => <TextField {...params} required/>}
/>
</LocalizationProvider>
@@ -124,7 +128,7 @@ export default function CardSearchMember(handleSubmitSuccess) {
}}
>
<Iconify icon="eva:eye-fill" marginRight={0.75} />
Cari Member
{localeData.txtCardSearchMember2}
</LoadingButton>
{/* <LoadingButton
variant="contained"
@@ -142,7 +146,7 @@ export default function CardSearchMember(handleSubmitSuccess) {
{/*
<DialogBenefit open={openDialogBenefit} setOpen={setOpenDialogBenefit}></DialogBenefit> */}
<MuiDialog
title={{name: "Member"}}
title={{name: nameMember}}
openDialog={openDialogBenefit}
setOpenDialog={setOpenDialogBenefit}
content={DialogMember(currentMember, () => {setOpenDialogBenefit(false); handleSubmitSuccess()})}

View File

@@ -4,20 +4,22 @@ import { LoadingButton, TabPanel } from "@mui/lab";
import { Button, Card, Divider, Grid, LinearProgress, linearProgressClasses, Typography } from "@mui/material";
import { Tab, Tabs } from "@mui/material";
import { Box, Stack } from "@mui/material";
import { useEffect, useState } from "react";
import React, { useEffect, useState, useContext } from "react";
import { fCurrency } from '@/utils/formatNumber';
import { fPostFormat } from '@/utils/formatTime';
import { Avatar } from '@mui/material';
import Iconify from '@/components/Iconify';
import FormRequestClaim from './FormRequestClaim';
import { LanguageContext } from '@/contexts/LanguageContext';
export default function DialogMember(member, handleSubmitSuccess) {
const { localeData } = useContext(LanguageContext);
const [currentTab, setCurrentTab] = useState('request')
// ----------------------------------------------------------------------
useEffect(() => {
setCurrentTab('benefit')
setCurrentTab('detail')
}, [member])
function handleChangeTab(event: React.SyntheticEvent, newValue: string) {
@@ -67,13 +69,93 @@ export default function DialogMember(member, handleSubmitSuccess) {
onChange={handleChangeTab}
aria-label="wrapped label tabs example"
>
<Tab
value="benefit"
label="Benefit Summary"
/>
<Tab value="request" label="Request Penjaminan" />
<Tab value="detail" label={localeData.txtDialogMember3} />
<Tab value="benefit" label={localeData.txtDialogMember1} />
<Tab value="request" label={localeData.txtDialogMember2} />
</Tabs>
<TabPanel value={currentTab} index={'detail'}>
<Stack spacing={2}>
<Grid container sx={{ pb: 2, mb: 2, borderBottom: 0 }}>
<Grid item xs={6}>
<Grid container>
<Grid item xs={6}>
Mapping ID
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
Policy Number
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
NRIC
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
NIK
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
Email
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
</Grid>
</Grid>
<Grid item xs={6}>
<Grid container>
<Grid item xs={6}>
Birth Date
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
Gender
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
Marital Status
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
Language
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
Race
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
<Grid item xs={6}>
Relationship
</Grid>
<Grid item xs={6}>
: {1 ?? '-'}
</Grid>
</Grid>
</Grid>
</Grid>
</Stack>
</TabPanel>
<TabPanel value={currentTab} index={'benefit'}>
<Grid container spacing={2}>
{ member && member?.current_plan?.corporate_benefits?.map((corporateBenefit, index) => {return (