Update
This commit is contained in:
@@ -277,4 +277,50 @@ class CorporateMemberController extends Controller
|
|||||||
|
|
||||||
return response()->json($deposit);
|
return response()->json($deposit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getLimits($corporate_id, $member_id)
|
||||||
|
{
|
||||||
|
$deposit = DB::table('corporate_policies')
|
||||||
|
->select('total_premi')
|
||||||
|
->where('corporate_id','=', $corporate_id)
|
||||||
|
->first();
|
||||||
|
$usage = DB::table('corporate_employees')
|
||||||
|
->join('request_logs', 'request_logs.member_id', '=', 'corporate_employees.member_id')
|
||||||
|
->join('request_log_benefits', 'request_log_benefits.request_log_id', '=', 'request_logs.id')
|
||||||
|
->where('corporate_employees.corporate_id', '=', $corporate_id)
|
||||||
|
->where('request_logs.member_id', '=', $member_id)
|
||||||
|
->sum('request_log_benefits.amount_approved');
|
||||||
|
|
||||||
|
$services = DB::table('member_plans')
|
||||||
|
->leftJoin('plans', 'plans.id', '=', 'member_plans.plan_id')
|
||||||
|
->leftJoin('services', 'services.code', '=', 'plans.service_code')
|
||||||
|
->where('member_plans.member_id', '=', $member_id)
|
||||||
|
->whereNull('member_plans.deleted_at')
|
||||||
|
->select(
|
||||||
|
'plans.service_code',
|
||||||
|
'services.name as title',
|
||||||
|
'plans.limit_rules as total',
|
||||||
|
DB::raw("
|
||||||
|
(
|
||||||
|
SELECT SUM(request_log_benefits.amount_approved)
|
||||||
|
FROM request_logs
|
||||||
|
INNER JOIN request_log_benefits
|
||||||
|
ON request_log_benefits.request_log_id = request_logs.id
|
||||||
|
WHERE request_logs.member_id = $member_id
|
||||||
|
AND request_logs.service_code = plans.service_code
|
||||||
|
) as current
|
||||||
|
")
|
||||||
|
|
||||||
|
)
|
||||||
|
->get();
|
||||||
|
// Ganti dengan logika Anda untuk mendapatkan data deposit
|
||||||
|
$deposit = [
|
||||||
|
'deposit' => $deposit->total_premi,
|
||||||
|
'usage' => $usage,
|
||||||
|
'services' => $services
|
||||||
|
];
|
||||||
|
|
||||||
|
return response()->json($deposit);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,6 +72,8 @@ Route::prefix('client')->group(function () {
|
|||||||
Route::get('corporate', [CorporateCurrentController::class, 'index']);
|
Route::get('corporate', [CorporateCurrentController::class, 'index']);
|
||||||
Route::put('corporate-update', [CorporateCurrentController::class, 'update']);
|
Route::put('corporate-update', [CorporateCurrentController::class, 'update']);
|
||||||
Route::get('get-deposits', [CorporateMemberController::class, 'getDeposit']);
|
Route::get('get-deposits', [CorporateMemberController::class, 'getDeposit']);
|
||||||
|
|
||||||
|
Route::get('get-limits/{member_id}', [CorporateMemberController::class, 'getLimits']);
|
||||||
});
|
});
|
||||||
Route::get('claims/{id}', [ClaimController::class, 'show']);
|
Route::get('claims/{id}', [ClaimController::class, 'show']);
|
||||||
|
|
||||||
|
|||||||
@@ -86,6 +86,7 @@ class DataServiceMonitoring extends JsonResource
|
|||||||
return [
|
return [
|
||||||
'companyName' => $this->member->currentCorporate->name ?? null,
|
'companyName' => $this->member->currentCorporate->name ?? null,
|
||||||
'serviceCode' => $this->service_code ?? null,
|
'serviceCode' => $this->service_code ?? null,
|
||||||
|
'member_id' => $this->member->id ?? null,
|
||||||
'memberId' => $this->member->member_id ?? null,
|
'memberId' => $this->member->member_id ?? null,
|
||||||
'fullName' => $this->member->full_name ?? null,
|
'fullName' => $this->member->full_name ?? null,
|
||||||
'dateOfBirth' => $this->member->birth_date ?? null,
|
'dateOfBirth' => $this->member->birth_date ?? null,
|
||||||
|
|||||||
@@ -84,7 +84,8 @@ class PermissionTableSeeder extends Seeder
|
|||||||
'corporate-client-portal',
|
'corporate-client-portal',
|
||||||
'alarm-center-list-client-portal',
|
'alarm-center-list-client-portal',
|
||||||
'formularium-list-client-portal',
|
'formularium-list-client-portal',
|
||||||
'case-management-client-portal'
|
'case-management-client-portal',
|
||||||
|
'service-monitoring-limit-client-portal',
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
|
|||||||
@@ -20,11 +20,14 @@ import {
|
|||||||
ListItemText,
|
ListItemText,
|
||||||
ListItemButton,
|
ListItemButton,
|
||||||
Divider,
|
Divider,
|
||||||
|
CardContent,
|
||||||
|
LinearProgress
|
||||||
} from '@mui/material';
|
} from '@mui/material';
|
||||||
import { styled } from '@mui/material/styles';
|
import { styled } from '@mui/material/styles';
|
||||||
import { Download as DownloadIcon, Circle as CircleIcon, TableView } from '@mui/icons-material';
|
import { Download as DownloadIcon, Circle as CircleIcon, TableView } from '@mui/icons-material';
|
||||||
// components
|
// components
|
||||||
import Page from '../../components/Page';
|
import Page from '../../components/Page';
|
||||||
|
import { fCurrency } from '../../utils/formatNumber';
|
||||||
// utils
|
// utils
|
||||||
import { useState, SyntheticEvent, useContext, useEffect } from 'react';
|
import { useState, SyntheticEvent, useContext, useEffect } from 'react';
|
||||||
import { UserCurrentCorporateContext } from '../../contexts/UserCurrentCorporate';
|
import { UserCurrentCorporateContext } from '../../contexts/UserCurrentCorporate';
|
||||||
@@ -45,6 +48,8 @@ import TableMoreMenu from '../../components/table/TableMoreMenu';
|
|||||||
import Label from '../../components/Label';
|
import Label from '../../components/Label';
|
||||||
import { fSplit } from '../../utils/formatNumber';
|
import { fSplit } from '../../utils/formatNumber';
|
||||||
|
|
||||||
|
import useAuth from '../../hooks/useAuth';
|
||||||
|
|
||||||
interface TabPanelProps {
|
interface TabPanelProps {
|
||||||
children?: React.ReactNode;
|
children?: React.ReactNode;
|
||||||
index: number;
|
index: number;
|
||||||
@@ -208,6 +213,13 @@ type ServiceMonitoringProps = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export default function ServiceMonitoring() {
|
export default function ServiceMonitoring() {
|
||||||
|
const {user} = useAuth();
|
||||||
|
const checkIfNameExists = (name) => {
|
||||||
|
return user.user.permissions.some(item => item.name === name);
|
||||||
|
};
|
||||||
|
|
||||||
|
const nameToCheck = 'service-monitoring-limit-client-porta';
|
||||||
|
const doesNameExist = checkIfNameExists(nameToCheck);
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
const controller = new AbortController();
|
const controller = new AbortController();
|
||||||
|
|
||||||
@@ -221,7 +233,7 @@ export default function ServiceMonitoring() {
|
|||||||
|
|
||||||
const { corporateValue } = useContext(UserCurrentCorporateContext);
|
const { corporateValue } = useContext(UserCurrentCorporateContext);
|
||||||
const { memberId, requestLogId } = useParams();
|
const { memberId, requestLogId } = useParams();
|
||||||
|
const [depositData, setDepositData] = useState({ deposit: 0, limit: 0, usage: 0 });
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
(async () => {
|
(async () => {
|
||||||
try {
|
try {
|
||||||
@@ -236,6 +248,18 @@ export default function ServiceMonitoring() {
|
|||||||
if (response.data.data.serviceCode !== 'IP') {
|
if (response.data.data.serviceCode !== 'IP') {
|
||||||
setValue(1);
|
setValue(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var member_id = response.data.data.member_id;
|
||||||
|
const fetchDepositData = async () => {
|
||||||
|
try {
|
||||||
|
const response = await axios.get(`${corporateValue}/get-limits/${member_id}`);
|
||||||
|
setDepositData(response.data);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Failed to fetch deposit data:', error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
fetchDepositData();
|
||||||
} catch (error: any) {
|
} catch (error: any) {
|
||||||
console.error('Error fetching data:', error.message);
|
console.error('Error fetching data:', error.message);
|
||||||
} finally {
|
} finally {
|
||||||
@@ -256,7 +280,32 @@ export default function ServiceMonitoring() {
|
|||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
const formatNumber = (number) => {
|
||||||
|
return new Intl.NumberFormat('id-ID').format(number);
|
||||||
|
};
|
||||||
|
const LimitPlanCard = ({ title, current, total }) => (
|
||||||
|
<Card variant="outlined" sx={{ minWidth: 200, m: 1 }}>
|
||||||
|
<CardContent>
|
||||||
|
<Typography variant="h6" component="div">
|
||||||
|
{title}
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="subtitle2" color="text.secondary">
|
||||||
|
Yearly Limits
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="subtitle1">
|
||||||
|
{formatNumber(current)} / {formatNumber(total)}
|
||||||
|
</Typography>
|
||||||
|
<LinearProgress variant="determinate" value={(current / total) * 100} />
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
);
|
||||||
|
|
||||||
|
const plans = [
|
||||||
|
{ title: 'Outpatient', current: 200000, total: 1000000 },
|
||||||
|
{ title: 'Inpatient', current: 1000000, total: 5000000 },
|
||||||
|
{ title: 'Dental', current: 250000, total: 1000000 },
|
||||||
|
{ title: 'Maternity', current: 0, total: 3000000 },
|
||||||
|
];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page title="Service Monitoring">
|
<Page title="Service Monitoring">
|
||||||
@@ -277,14 +326,14 @@ export default function ServiceMonitoring() {
|
|||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
<Card sx={{ borderRadius: 2, padding: 3 }}>
|
<Card sx={{ borderRadius: 2, padding: 3 }}>
|
||||||
<Grid container spacing={5}>
|
<Grid container spacing={5}>
|
||||||
<Grid item xs={12}>
|
<Grid item container spacing={3}>
|
||||||
<Typography component={'h6'} fontWeight={700} fontSize={18}>
|
|
||||||
{loading ? <Skeleton animation="wave" width={175} /> : 'Employee Profile'}
|
|
||||||
</Typography>
|
|
||||||
</Grid>
|
|
||||||
<Grid item xs={12} container spacing={3}>
|
|
||||||
<Grid item container xs={12} md={6} spacing={1.5}>
|
<Grid item container xs={12} md={6} spacing={1.5}>
|
||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
|
<Typography component={'h6'} fontWeight={700} fontSize={18}>
|
||||||
|
{loading ? <Skeleton animation="wave" width={175} /> : 'Employee Profile'}
|
||||||
|
</Typography>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={12}>
|
||||||
<Typography variant="subtitle2" color={'grey.600'}>
|
<Typography variant="subtitle2" color={'grey.600'}>
|
||||||
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Company Name'}
|
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Company Name'}
|
||||||
</Typography>
|
</Typography>
|
||||||
@@ -300,8 +349,6 @@ export default function ServiceMonitoring() {
|
|||||||
)}
|
)}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
|
||||||
<Grid item container xs={12} md={6} spacing={1.5}>
|
|
||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
<Typography variant="subtitle2" color={'grey.600'}>
|
<Typography variant="subtitle2" color={'grey.600'}>
|
||||||
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Member ID'}
|
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Member ID'}
|
||||||
@@ -318,8 +365,6 @@ export default function ServiceMonitoring() {
|
|||||||
)}
|
)}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
|
||||||
<Grid item container xs={12} md={6} spacing={1.5}>
|
|
||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
<Typography variant="subtitle2" color={'grey.600'}>
|
<Typography variant="subtitle2" color={'grey.600'}>
|
||||||
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Full Name'}
|
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Full Name'}
|
||||||
@@ -336,8 +381,6 @@ export default function ServiceMonitoring() {
|
|||||||
)}
|
)}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
|
||||||
<Grid item container xs={12} md={6} spacing={1.5}>
|
|
||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
<Typography variant="subtitle2" color={'grey.600'}>
|
<Typography variant="subtitle2" color={'grey.600'}>
|
||||||
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Date of Birth'}
|
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Date of Birth'}
|
||||||
@@ -354,8 +397,6 @@ export default function ServiceMonitoring() {
|
|||||||
)}
|
)}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
|
||||||
<Grid item container xs={12} md={6} spacing={1.5}>
|
|
||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
<Typography variant="subtitle2" color={'grey.600'}>
|
<Typography variant="subtitle2" color={'grey.600'}>
|
||||||
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Phone Number'}
|
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Phone Number'}
|
||||||
@@ -372,8 +413,6 @@ export default function ServiceMonitoring() {
|
|||||||
)}
|
)}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
|
||||||
<Grid item container xs={12} md={6} spacing={1.5}>
|
|
||||||
<Grid item xs={12}>
|
<Grid item xs={12}>
|
||||||
<Typography variant="subtitle2" color={'grey.600'}>
|
<Typography variant="subtitle2" color={'grey.600'}>
|
||||||
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Email'}
|
{loading ? <Skeleton animation={'wave'} width={200} /> : 'Email'}
|
||||||
@@ -391,6 +430,43 @@ export default function ServiceMonitoring() {
|
|||||||
</Typography>
|
</Typography>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
<Grid item container xs={12} md={6} spacing={1.5}>
|
||||||
|
{doesNameExist ? (
|
||||||
|
<Stack direction="column">
|
||||||
|
<Box display="flex" flexWrap="wrap" justifyContent="left">
|
||||||
|
<Card variant="outlined" sx={{ minWidth: 200, marginBottom: 1, borderRadius: 2, padding: 0 }}>
|
||||||
|
<CardContent>
|
||||||
|
<Typography variant="h6" component="div">
|
||||||
|
Limit
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="subtitle2" color="text.secondary">
|
||||||
|
Yearly Limits
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="subtitle1">
|
||||||
|
{formatNumber(depositData.usage)} / {formatNumber(depositData.deposit)}
|
||||||
|
</Typography>
|
||||||
|
<LinearProgress variant="determinate" value={(depositData.usage / depositData.deposit) * 100} />
|
||||||
|
</CardContent>
|
||||||
|
</Card>
|
||||||
|
</Box>
|
||||||
|
<Card sx={{ borderRadius: 2, padding: 3 }}>
|
||||||
|
<Typography component={'h6'} fontWeight={700} fontSize={18}>
|
||||||
|
Limit Plan
|
||||||
|
</Typography>
|
||||||
|
<Box display="flex" flexWrap="wrap" justifyContent="left">
|
||||||
|
{depositData.services?.map((plan) => (
|
||||||
|
<LimitPlanCard
|
||||||
|
key={plan.title}
|
||||||
|
title={plan.title}
|
||||||
|
current={plan.current}
|
||||||
|
total={plan.total}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</Box>
|
||||||
|
</Card>
|
||||||
|
</Stack>
|
||||||
|
) : ''}
|
||||||
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Grid item xs={12} paddingY={2}>
|
<Grid item xs={12} paddingY={2}>
|
||||||
<Typography component={'h6'} fontWeight={700} fontSize={18}>
|
<Typography component={'h6'} fontWeight={700} fontSize={18}>
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// @mui
|
// @mui
|
||||||
import { CardContent,Button, Container, Grid, styled, Typography, Card, Stack } from '@mui/material';
|
import { Box,CardContent,Button, Container, Grid, styled, Typography, Card, Stack } from '@mui/material';
|
||||||
// hooks
|
// hooks
|
||||||
import useSettings from '../../hooks/useSettings';
|
import useSettings from '../../hooks/useSettings';
|
||||||
// components
|
// components
|
||||||
@@ -15,16 +15,34 @@ import { useContext, useEffect, useState } from 'react';
|
|||||||
|
|
||||||
import { UserCurrentCorporateContext } from '../../contexts/UserCurrentCorporate';
|
import { UserCurrentCorporateContext } from '../../contexts/UserCurrentCorporate';
|
||||||
|
|
||||||
|
import { useNavigate, useParams } from 'react-router-dom';
|
||||||
|
|
||||||
// ----------------------------------------------------------------------
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
export default function Dashboard() {
|
export default function Dashboard() {
|
||||||
|
|
||||||
|
const navigate = useNavigate();
|
||||||
const { themeStretch } = useSettings();
|
const { themeStretch } = useSettings();
|
||||||
|
|
||||||
const { logout } = useAuth();
|
const { user } = useAuth();
|
||||||
|
|
||||||
const loadSomething = () => {
|
|
||||||
axios.get('/user')
|
|
||||||
};
|
const checkIfNameExists = (name) => {
|
||||||
|
return user.user.permissions.some(item => item.name === name);
|
||||||
|
};
|
||||||
|
|
||||||
|
const nameToCheck = 'dashboard-list-client-portal';
|
||||||
|
const doesNameExist = checkIfNameExists(nameToCheck);
|
||||||
|
useEffect(() => {
|
||||||
|
const doesNameExist = checkIfNameExists(nameToCheck);
|
||||||
|
if (!doesNameExist) {
|
||||||
|
navigate('/corporate');
|
||||||
|
}
|
||||||
|
}, [nameToCheck, user, navigate]);
|
||||||
|
// const loadSomething = () => {
|
||||||
|
// axios.get('/user')
|
||||||
|
// };
|
||||||
|
|
||||||
const Wallet = styled(AccountBalanceWalletIcon)(({ theme }) => ({
|
const Wallet = styled(AccountBalanceWalletIcon)(({ theme }) => ({
|
||||||
color: 'orange',
|
color: 'orange',
|
||||||
@@ -78,55 +96,79 @@ const [depositData, setDepositData] = useState({ deposit: 0, limit: 0, usage: 0
|
|||||||
fetchDepositData();
|
fetchDepositData();
|
||||||
}, [corporateValue]);
|
}, [corporateValue]);
|
||||||
|
|
||||||
|
const handleGoBack = () => {
|
||||||
|
// Logic untuk kembali ke halaman sebelumnya atau halaman utama
|
||||||
|
navigate('/corporate')
|
||||||
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Page title="Dashboard">
|
<Page title="Dashboard">
|
||||||
<Container maxWidth={themeStretch ? false : 'xl'}>
|
<Container maxWidth={themeStretch ? false : 'xl'}>
|
||||||
<Typography variant="h3" component="h1" paragraph>
|
<Typography variant="h3" component="h1" paragraph>
|
||||||
Dashboard
|
Dashboard
|
||||||
</Typography>
|
</Typography>
|
||||||
|
{doesNameExist ? (
|
||||||
|
<Grid container spacing={2}>
|
||||||
|
<Grid item xs={4}>
|
||||||
|
{/* <SomethingUsage /> */}
|
||||||
|
<DefaultCard>
|
||||||
|
<CardContent>
|
||||||
|
<Stack direction="column" alignItems="flex-start" justifyContent="space-between" sx={{ mb: 0.6 }}>
|
||||||
|
<Stack direction="row" alignItems="center" justifyContent="space-between" sx={{ width: '100%' }}>
|
||||||
|
<Typography variant='h4'>{fCurrency(depositData.deposit)}</Typography>
|
||||||
|
<Wallet />
|
||||||
|
</Stack>
|
||||||
|
<Typography variant='h6'>Deposit</Typography>
|
||||||
|
</Stack>
|
||||||
|
</CardContent>
|
||||||
|
</DefaultCard>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={4}>
|
||||||
|
<DefaultCard>
|
||||||
|
<CardContent>
|
||||||
|
<Stack direction="column" alignItems="flex-start" justifyContent="space-between" sx={{ mb: 0.6 }}>
|
||||||
|
<Stack direction="row" alignItems="center" justifyContent="space-between" sx={{ width: '100%' }}>
|
||||||
|
<Typography variant='h4'>{fCurrency(depositData.limit)}</Typography>
|
||||||
|
<TrendUp />
|
||||||
|
</Stack>
|
||||||
|
<Typography variant='h6'>Limit</Typography>
|
||||||
|
</Stack>
|
||||||
|
</CardContent>
|
||||||
|
</DefaultCard>
|
||||||
|
</Grid>
|
||||||
|
<Grid item xs={4}>
|
||||||
|
<DefaultCard>
|
||||||
|
<CardContent>
|
||||||
|
<Stack direction="column" alignItems="flex-start" justifyContent="space-between" sx={{ mb: 0.6 }}>
|
||||||
|
<Stack direction="row" alignItems="center" justifyContent="space-between" sx={{ width: '100%' }}>
|
||||||
|
<Typography variant='h4'>{fCurrency(depositData.usage)}</Typography>
|
||||||
|
<Monet />
|
||||||
|
</Stack>
|
||||||
|
<Typography variant='h6'>This Year Usage</Typography>
|
||||||
|
</Stack>
|
||||||
|
</CardContent>
|
||||||
|
</DefaultCard>
|
||||||
|
</Grid>
|
||||||
|
</Grid>
|
||||||
|
):(
|
||||||
|
<Box
|
||||||
|
display="flex"
|
||||||
|
flexDirection="column"
|
||||||
|
alignItems="center"
|
||||||
|
justifyContent="center"
|
||||||
|
minHeight="55vh"
|
||||||
|
textAlign="center"
|
||||||
|
padding={2}
|
||||||
|
>
|
||||||
|
<Typography variant="body1" color="textSecondary" paragraph>
|
||||||
|
Maaf, halaman ini tidak bisa diakses atau tidak ada.
|
||||||
|
</Typography>
|
||||||
|
<Button variant="contained" color="primary" onClick={handleGoBack}>
|
||||||
|
Kembali
|
||||||
|
</Button>
|
||||||
|
</Box>
|
||||||
|
)}
|
||||||
|
|
||||||
<Grid container spacing={2}>
|
|
||||||
<Grid item xs={4}>
|
|
||||||
{/* <SomethingUsage /> */}
|
|
||||||
<DefaultCard>
|
|
||||||
<CardContent>
|
|
||||||
<Stack direction="column" alignItems="flex-start" justifyContent="space-between" sx={{ mb: 0.6 }}>
|
|
||||||
<Stack direction="row" alignItems="center" justifyContent="space-between" sx={{ width: '100%' }}>
|
|
||||||
<Typography variant='h4'>{fCurrency(depositData.deposit)}</Typography>
|
|
||||||
<Wallet />
|
|
||||||
</Stack>
|
|
||||||
<Typography variant='h6'>Deposit</Typography>
|
|
||||||
</Stack>
|
|
||||||
</CardContent>
|
|
||||||
</DefaultCard>
|
|
||||||
</Grid>
|
|
||||||
<Grid item xs={4}>
|
|
||||||
<DefaultCard>
|
|
||||||
<CardContent>
|
|
||||||
<Stack direction="column" alignItems="flex-start" justifyContent="space-between" sx={{ mb: 0.6 }}>
|
|
||||||
<Stack direction="row" alignItems="center" justifyContent="space-between" sx={{ width: '100%' }}>
|
|
||||||
<Typography variant='h4'>{fCurrency(depositData.limit)}</Typography>
|
|
||||||
<TrendUp />
|
|
||||||
</Stack>
|
|
||||||
<Typography variant='h6'>Limit</Typography>
|
|
||||||
</Stack>
|
|
||||||
</CardContent>
|
|
||||||
</DefaultCard>
|
|
||||||
</Grid>
|
|
||||||
<Grid item xs={4}>
|
|
||||||
<DefaultCard>
|
|
||||||
<CardContent>
|
|
||||||
<Stack direction="column" alignItems="flex-start" justifyContent="space-between" sx={{ mb: 0.6 }}>
|
|
||||||
<Stack direction="row" alignItems="center" justifyContent="space-between" sx={{ width: '100%' }}>
|
|
||||||
<Typography variant='h4'>{fCurrency(depositData.usage)}</Typography>
|
|
||||||
<Monet />
|
|
||||||
</Stack>
|
|
||||||
<Typography variant='h6'>This Year Usage</Typography>
|
|
||||||
</Stack>
|
|
||||||
</CardContent>
|
|
||||||
</DefaultCard>
|
|
||||||
</Grid>
|
|
||||||
</Grid>
|
|
||||||
</Container>
|
</Container>
|
||||||
</Page>
|
</Page>
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user