update banyak
This commit is contained in:
@@ -33,6 +33,9 @@ class CorporateMemberController extends Controller
|
||||
case 'alarm-center':
|
||||
$members = $this->corporateMemberService->getAllMemberAlarmCenter($corporate_id, $request);
|
||||
return response()->json(Helper::paginateResources(DashboardMemberAlarmResources::collection($members)));
|
||||
case 'service-monitoring':
|
||||
$members = $this->corporateMemberService->getAllEncounter($corporate_id, $request);
|
||||
return response()->json(Helper::paginateResources(DashboardMemberAlarmResources::collection($members)));
|
||||
default:
|
||||
$members = $this->corporateMemberService->getAllMemberDashboards($corporate_id, $request);
|
||||
return response()->json(Helper::paginateResources(DashboardMemberResources::collection($members)));
|
||||
|
||||
@@ -62,6 +62,23 @@ class TopUpController extends Controller
|
||||
return view('client::show');
|
||||
}
|
||||
|
||||
public function get($corporate_id)
|
||||
{
|
||||
$data = CorporatePolicy::query()
|
||||
->where('corporate_id', $corporate_id)
|
||||
->with(['currentPolicy', 'employees'])
|
||||
->withCount(['employees', 'claims' => function ($query) {
|
||||
$query->where('claims.status', 'paid');
|
||||
}])
|
||||
->first();
|
||||
|
||||
if (!$data) {
|
||||
return response()->json(['message' => 'Corporate policy not found'], 404);
|
||||
}
|
||||
|
||||
return Helper::responseJson(TopUpLimitResources::make($data));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
* @param Request $request
|
||||
|
||||
@@ -8,6 +8,9 @@ use Modules\Client\Http\Controllers\Api\CorporatePolicyController;
|
||||
use Modules\Client\Http\Controllers\Api\UserController;
|
||||
use Modules\Client\Http\Controllers\Api\ClaimController;
|
||||
use Modules\Client\Http\Controllers\Api\TopUpController;
|
||||
use Modules\Internal\Http\Controllers\ClaimEncounterController;
|
||||
use App\Models\Encounter;
|
||||
use Modules\Internal\Transformers\EncounterResource;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@@ -38,11 +41,16 @@ Route::prefix('client')->group(function () {
|
||||
Route::get('members', [CorporateMemberController::class, 'index']);
|
||||
Route::get('claims/status', [ClaimController::class, 'status']);
|
||||
Route::get('claims', [ClaimController::class, 'index']);
|
||||
|
||||
Route::get('claims/{claim_id}/encounters', [ClaimEncounterController::class, 'getEncounterData']);
|
||||
Route::get('topup', [TopUpController::class, 'index']);
|
||||
// Route::get('topup', [TopUpController::class, 'get']);
|
||||
Route::post('topup', [TopUpController::class, 'store']);
|
||||
});
|
||||
|
||||
Route::get('claims/{id}', [ClaimController::class, 'show']);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
@@ -12,6 +12,7 @@ use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Modules\Internal\Transformers\EncounterResource;
|
||||
|
||||
|
||||
class ClaimEncounterController extends Controller
|
||||
{
|
||||
/**
|
||||
@@ -31,6 +32,13 @@ class ClaimEncounterController extends Controller
|
||||
{
|
||||
return view('internal::create');
|
||||
}
|
||||
public function getAllData()
|
||||
{
|
||||
$encounters = Encounter::with('claim.member')->get();
|
||||
|
||||
return Helper::responseJson(data: EncounterResource::collection($encounters), message: 'Data berhasil diambil');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
@@ -255,6 +263,22 @@ class ClaimEncounterController extends Controller
|
||||
}
|
||||
}
|
||||
|
||||
public function x`counters($claim_id)
|
||||
{
|
||||
$claim = Claim::findOrFail($claim_id);
|
||||
$encounters = $claim->encounters()->get();
|
||||
return response()->json($encounters);
|
||||
}
|
||||
|
||||
public function getEncounterData($encounter_id)
|
||||
{
|
||||
$encounter = Encounter::with('claim.member')->findOrFail($encounter_id);
|
||||
|
||||
return Helper::responseJson(data: EncounterResource::make($encounter), message: 'Data berhasil diambil');
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
* @param int $id
|
||||
|
||||
@@ -54,6 +54,12 @@ class Encounter extends Model
|
||||
return $this->hasMany(EncounterParticipant::class, 'encounter_id');
|
||||
}
|
||||
|
||||
public function claim()
|
||||
{
|
||||
return $this->belongsTo(Claim::class);
|
||||
}
|
||||
|
||||
|
||||
public function doctors()
|
||||
{
|
||||
|
||||
@@ -96,6 +102,7 @@ class Encounter extends Model
|
||||
return $this->belongsTo(Service::class, 'class', 'code');
|
||||
}
|
||||
|
||||
|
||||
public function getMetaAttribute()
|
||||
{
|
||||
$orgMeta = [];
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace App\Services;
|
||||
|
||||
use App\Models\Member;
|
||||
use App\Models\Encounter;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
@@ -120,4 +121,9 @@ class CorporateMemberService
|
||||
->selectRaw("(select sum(`claims`.`total_claim`) from `claims` where `members`.`id` = `claims`.`member_id` AND `claims`.`deleted_at` IS NULL) AS `claims_sum_total_claim`")
|
||||
->paginate($limit);
|
||||
}
|
||||
|
||||
public function getAllEncounter(int $corporateId){
|
||||
return Encounter::query()->select(['id'])->paginate(10);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,9 +107,9 @@ export default function Drugs() {
|
||||
<Card>
|
||||
<Box sx={{ borderBottom: 1, borderColor: 'divider' }}>
|
||||
<StyledTabs value={value} onChange={handleChange} aria-label="basic tabs example">
|
||||
<StyledTab label="All Data (999)" {...a11yProps(0)} />
|
||||
<StyledTab label="Ongoing (888)" {...a11yProps(1)} />
|
||||
<StyledTab label="Done (777)" {...a11yProps(2)} />
|
||||
<StyledTab label="All Data" {...a11yProps(0)} />
|
||||
<StyledTab label="Ongoing" {...a11yProps(1)} />
|
||||
<StyledTab label="Done" {...a11yProps(2)} />
|
||||
</StyledTabs>
|
||||
</Box>
|
||||
<TabPanel value={value} index={0}>
|
||||
|
||||
@@ -289,7 +289,7 @@ export default function List() {
|
||||
,
|
||||
status:
|
||||
obj.status === 1 ? (
|
||||
<Button onClick={() => navigate('service-monitoring/:id')}
|
||||
<Button onClick={() => navigate('service-monitoring/'+obj.personId )}
|
||||
startIcon={<Iconify icon="ic:round-check" />}
|
||||
sx={{
|
||||
backgroundColor: palette.light.grey[300],
|
||||
@@ -328,6 +328,8 @@ export default function List() {
|
||||
setPaginationTable(response.data);
|
||||
setRowsPerPage(response.data.per_page);
|
||||
|
||||
|
||||
|
||||
if (searchParams.get('page')) {
|
||||
//@ts-ignore
|
||||
const currentPage = parseInt(searchParams.get('page')) - 1;
|
||||
|
||||
@@ -17,8 +17,13 @@ import Page from '../../components/Page';
|
||||
import Iconify from '../../components/Iconify';
|
||||
// utils
|
||||
import useSettings from '../../hooks/useSettings';
|
||||
import { useState, SyntheticEvent } from 'react';
|
||||
import { useNavigate } from 'react-router-dom';
|
||||
import { useState, SyntheticEvent, useContext, useEffect } from 'react';
|
||||
import { UserCurrentCorporateContext } from '../../contexts/UserCurrentCorporate';
|
||||
import { useNavigate, useParams } from 'react-router-dom';
|
||||
import axios from '../../utils/axios';
|
||||
|
||||
|
||||
|
||||
// sections
|
||||
// import ListTable from '../../sections/claimreports/ListTable';
|
||||
// import ClaimStatusCard from '../../sections/claimreports/ClaimStatusCard';
|
||||
@@ -115,6 +120,47 @@ export default function ServiceMonitoring() {
|
||||
|
||||
};
|
||||
|
||||
const [data, setData] = useState({});
|
||||
const [data1, setData1] = useState();
|
||||
|
||||
|
||||
|
||||
const {corporateValue} = useContext(UserCurrentCorporateContext);
|
||||
const {id} = useParams();
|
||||
const claimId = '2'
|
||||
console.log('id',id);
|
||||
|
||||
useEffect (() => {
|
||||
|
||||
console.log('fetching data...')
|
||||
axios.get('/data/'+id )
|
||||
.then(response => {
|
||||
console.log('data fetched...', response.data)
|
||||
setData(response.data);
|
||||
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('error fetching data...', error);
|
||||
});
|
||||
}, []);
|
||||
|
||||
console.log('Data:' , data);
|
||||
|
||||
const [encounterData, setEncounterData] = useState({});
|
||||
|
||||
useEffect(() => {
|
||||
console.log('fetching encounter data...');
|
||||
axios.get('/claims/${claim_id}/encounters')
|
||||
.then(response => {
|
||||
console.log('encounter data fetched...', response.data);
|
||||
setEncounterData(response.data);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error('error fetching encounter data...', error);
|
||||
});
|
||||
}, []);
|
||||
|
||||
|
||||
|
||||
return (
|
||||
<Page title="Service Monitoring 123456">
|
||||
@@ -160,23 +206,23 @@ export default function ServiceMonitoring() {
|
||||
<Stack spacing={2}>
|
||||
<Stack>
|
||||
<Typography variant="caption">Nama perusahaan</Typography>
|
||||
<Typography variant="body2">PT. Amman Mineral</Typography>
|
||||
<Typography variant="body2">{corporateValue}</Typography>
|
||||
</Stack>
|
||||
<Stack>
|
||||
<Typography variant="caption">Nama Lengkap</Typography>
|
||||
<Typography variant="body2">Stephen kuow</Typography>
|
||||
</Stack>
|
||||
<Typography variant="caption">Nama Lengkap</Typography>
|
||||
<Typography variant="body2">{data.name || 'Loading...'}</Typography>
|
||||
</Stack>
|
||||
<Stack>
|
||||
<Typography variant="caption">Tanggal lahir</Typography>
|
||||
<Typography variant="body2">09 Aug 1980</Typography>
|
||||
<Typography variant="body2">{data.birth_date}</Typography>
|
||||
</Stack>
|
||||
<Stack>
|
||||
<Typography variant="caption">Email</Typography>
|
||||
<Typography variant="body2">Stephen.uow@gmal.com</Typography>
|
||||
<Typography variant="body2">{data.email}</Typography>
|
||||
</Stack>
|
||||
<Stack>
|
||||
<Typography variant="caption">No telepon</Typography>
|
||||
<Typography variant="body2">+62 821-8123-2323</Typography>
|
||||
<Typography variant="body2">{data.phone}</Typography>
|
||||
</Stack>
|
||||
</Stack>
|
||||
<Stack>
|
||||
|
||||
@@ -43,7 +43,7 @@ export default function UserProfile() {
|
||||
});
|
||||
}, []);
|
||||
|
||||
console.log(id)
|
||||
console.log('data', data)
|
||||
|
||||
return (
|
||||
<Page title="Profile Peserta Jessica Lie">
|
||||
|
||||
@@ -277,6 +277,8 @@ export default function Index() {
|
||||
const corporateMembers = await axios.get(`${corporateValue}/members`, {
|
||||
params: { ...parameters },
|
||||
});
|
||||
|
||||
console.log('member',corporateMembers );
|
||||
const corporateTopUpLimit = await axios.get(`${corporateValue}/topup`);
|
||||
|
||||
setSearchParams(parameters);
|
||||
@@ -331,11 +333,11 @@ export default function Index() {
|
||||
Inactive
|
||||
</Button>
|
||||
),
|
||||
action: (
|
||||
/* action: (
|
||||
<IconButton onClick={handleAction}>
|
||||
<MoreVertIcon />
|
||||
</IconButton>
|
||||
),
|
||||
), */
|
||||
};
|
||||
})
|
||||
);
|
||||
|
||||
@@ -256,13 +256,13 @@ export default function CardPersonalInformation({data}) {
|
||||
fullWidth
|
||||
sx={{ marginTop: '16px' }}
|
||||
/>
|
||||
<TextField
|
||||
{/* <TextField
|
||||
label="Address"
|
||||
value={address}
|
||||
onChange={(e) => setAddress(e.target.value)}
|
||||
fullWidth
|
||||
sx={{ marginTop: '16px' }}
|
||||
/>
|
||||
/> */}
|
||||
|
||||
|
||||
{/* Add more fields as needed */}
|
||||
|
||||
@@ -2,7 +2,10 @@
|
||||
import { styled } from '@mui/material/styles';
|
||||
import { Card, Typography, Stack, LinearProgress, linearProgressClasses } from '@mui/material';
|
||||
import CardBenefitSummary from './CardBenefitSummary';
|
||||
import axios from '../../../utils/axios';
|
||||
|
||||
import { useContext, useState, useEffect } from 'react';
|
||||
import { UserCurrentCorporateContext } from '../../../contexts/UserCurrentCorporate';
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({
|
||||
@@ -17,10 +20,73 @@ const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({
|
||||
},
|
||||
}));
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
type CardPolicyProps = {
|
||||
limit: {
|
||||
myLimit: {
|
||||
balance: number;
|
||||
total: number;
|
||||
percentage: number;
|
||||
};
|
||||
lockLimit: {
|
||||
balance: number;
|
||||
percentage: number;
|
||||
};
|
||||
};
|
||||
topUpLimit: {
|
||||
companyName: string;
|
||||
policyNumber: number;
|
||||
totalMembers: number;
|
||||
totalCases: number;
|
||||
totalPersen: number;
|
||||
myLimit: {
|
||||
balance: number;
|
||||
total: number;
|
||||
percentage: number;
|
||||
};
|
||||
maxTopUp: number;
|
||||
};
|
||||
members?: DataMember[];
|
||||
};
|
||||
|
||||
// ----------------------------------------------------------------------
|
||||
|
||||
export default function CardPolicyNumber() {
|
||||
return (
|
||||
|
||||
|
||||
const { corporateValue } = useContext(UserCurrentCorporateContext);
|
||||
const [policyNumber,setPolicyNumber] = useState('');
|
||||
const [policyData, setPolicyData] = useState<CardPolicyProps>();
|
||||
|
||||
/* axios.get(`${corporateValue}/topup`)
|
||||
.then(response => {
|
||||
console.log(response.data);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error);
|
||||
}); */
|
||||
|
||||
useEffect(() => {
|
||||
axios
|
||||
.get(`${corporateValue}/topup`)
|
||||
.then(response => {
|
||||
const { data } = response.data; // Access the 'data' object from the response
|
||||
const { policyNumber } = data; // Access the 'policyNumber' field from the 'data' object
|
||||
setPolicyNumber(policyNumber);
|
||||
})
|
||||
.catch(error => {
|
||||
console.error(error);
|
||||
});
|
||||
|
||||
// const corporatePolicyLimit = axios.get(`${corporateValue}/policy`);
|
||||
// const corporateTopUpLimit = axios.get(`${corporateValue}/topup`);
|
||||
// setPolicyData({
|
||||
// limit: corporatePolicyLimit.data.data,
|
||||
// topUpLimit: corporateTopUpLimit.data.data,
|
||||
// });
|
||||
}, [corporateValue]);
|
||||
|
||||
return (
|
||||
<Card sx={{ padding: 2 }}>
|
||||
<Stack>
|
||||
<Stack direction="row" alignItems="center" spacing={1} justifyContent="space-between">
|
||||
@@ -28,7 +94,7 @@ export default function CardPolicyNumber() {
|
||||
<img width={52} height={52} src="/logo/logo-linksehat.png" alt="LinkSehat" />
|
||||
<Stack spacing={1}>
|
||||
<Typography variant="subtitle2">Policy Number</Typography>
|
||||
<Typography variant="subtitle2">12345678910</Typography>
|
||||
<Typography variant="subtitle2">{policyNumber}</Typography>
|
||||
</Stack>
|
||||
</Stack>
|
||||
<Stack spacing={1} sx={{ width: '206.5px' }}>
|
||||
|
||||
Reference in New Issue
Block a user