update input transaksi
This commit is contained in:
93
Modules/Client/Http/Controllers/Api/MemberController.php
Normal file
93
Modules/Client/Http/Controllers/Api/MemberController.php
Normal file
@@ -0,0 +1,93 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Modules\Client\Http\Controllers\Api;
|
||||||
|
|
||||||
|
use App\Models\Member;
|
||||||
|
use Illuminate\Contracts\Support\Renderable;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Routing\Controller;
|
||||||
|
|
||||||
|
class MemberController extends Controller
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function index(Request $request)
|
||||||
|
{
|
||||||
|
return Member::query()
|
||||||
|
->when($request->search, function ($query, $search) {
|
||||||
|
return $query->where('name', 'LIKE', '%' . $search . '%')
|
||||||
|
->orWhere('member_id', 'LIKE', '%' . $search . '%');
|
||||||
|
})
|
||||||
|
->with('currentPlan', 'currentCorporate')
|
||||||
|
->paginate();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('internal::create');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
* @param Request $request
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the specified resource.
|
||||||
|
* @param int $id
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function show($id)
|
||||||
|
{
|
||||||
|
return view('internal::show');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
* @param int $id
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
return view('internal::edit');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
* @param Request $request
|
||||||
|
* @param int $id
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
* @param int $id
|
||||||
|
* @return Renderable
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
public function benefits($member_id)
|
||||||
|
{
|
||||||
|
$member = Member::findOrFail($member_id);
|
||||||
|
|
||||||
|
return response()->json($member->currentPlan->benefits()->select(['description', 'code', 'id'])->get());
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -4,6 +4,7 @@ use Modules\Client\Http\Controllers\Api\AuthController;
|
|||||||
use Modules\Client\Http\Controllers\Api\CorporateDivisionController;
|
use Modules\Client\Http\Controllers\Api\CorporateDivisionController;
|
||||||
use Modules\Client\Http\Controllers\Api\CorporateManageController;
|
use Modules\Client\Http\Controllers\Api\CorporateManageController;
|
||||||
use Modules\Client\Http\Controllers\Api\CorporateMemberController;
|
use Modules\Client\Http\Controllers\Api\CorporateMemberController;
|
||||||
|
use Modules\Client\Http\Controllers\Api\MemberController;
|
||||||
use Modules\Client\Http\Controllers\Api\CorporatePolicyController;
|
use Modules\Client\Http\Controllers\Api\CorporatePolicyController;
|
||||||
use Modules\Client\Http\Controllers\Api\UserController;
|
use Modules\Client\Http\Controllers\Api\UserController;
|
||||||
use Modules\Client\Http\Controllers\Api\ClaimController;
|
use Modules\Client\Http\Controllers\Api\ClaimController;
|
||||||
@@ -40,6 +41,7 @@ Route::prefix('client')->group(function () {
|
|||||||
Route::get('corporate-manage', [CorporateManageController::class, 'index']);
|
Route::get('corporate-manage', [CorporateManageController::class, 'index']);
|
||||||
Route::get('corporate-manage/{corporate_id}', [CorporateManageController::class, 'show']);
|
Route::get('corporate-manage/{corporate_id}', [CorporateManageController::class, 'show']);
|
||||||
Route::prefix('{corporate_id}')->group(function () {
|
Route::prefix('{corporate_id}')->group(function () {
|
||||||
|
Route::post('search-member', [MemberController::class, 'index']);
|
||||||
Route::get('policy', [CorporatePolicyController::class, 'index']);
|
Route::get('policy', [CorporatePolicyController::class, 'index']);
|
||||||
Route::get('division', [CorporateDivisionController::class, 'index']);
|
Route::get('division', [CorporateDivisionController::class, 'index']);
|
||||||
Route::get('members', [CorporateMemberController::class, 'index']);
|
Route::get('members', [CorporateMemberController::class, 'index']);
|
||||||
|
|||||||
@@ -300,7 +300,7 @@ class ClaimController extends Controller
|
|||||||
// Membuat penulis entitas Spout
|
// Membuat penulis entitas Spout
|
||||||
$writer = WriterEntityFactory::createXLSXWriter();
|
$writer = WriterEntityFactory::createXLSXWriter();
|
||||||
// Membuka penulis untuk menulis ke file
|
// Membuka penulis untuk menulis ke file
|
||||||
$writer->openToFile(public_path('files/CorporatePlan&BenefitImportData.xlsx'));
|
$writer->openToFile(public_path('files/Benefit Usage Report.xlsx'));
|
||||||
|
|
||||||
// Sheet 1
|
// Sheet 1
|
||||||
$writer->getCurrentSheet()->setName('Worksheet');
|
$writer->getCurrentSheet()->setName('Worksheet');
|
||||||
@@ -320,15 +320,17 @@ class ClaimController extends Controller
|
|||||||
'plan',
|
'plan',
|
||||||
'benefit',
|
'benefit',
|
||||||
'claimRequest',
|
'claimRequest',
|
||||||
'claimRequest.service'
|
'claimRequest.service',
|
||||||
|
'encounters',
|
||||||
])
|
])
|
||||||
// ->latest()
|
// ->latest()
|
||||||
->get()->toArray();
|
->get()->toArray();
|
||||||
foreach ($claims as $index => $row){
|
foreach ($claims as $index => $row){
|
||||||
|
dd($row);
|
||||||
$rowData = [
|
$rowData = [
|
||||||
'', // Count of Usage
|
'', // Count of Usage
|
||||||
$row['code'], // Claim Number
|
$row['code'], // Claim Number
|
||||||
'', // Insurar Code
|
$row['member']? $row['member']['payor_id'] : '-', // Insurar Code
|
||||||
$row['member']['current_policy']? $row['member']['current_policy']['code'] : '', // Policy no
|
$row['member']['current_policy']? $row['member']['current_policy']['code'] : '', // Policy no
|
||||||
$row['member']['current_corporate']? $row['member']['current_corporate']['name'] : '', // Corporate Name
|
$row['member']['current_corporate']? $row['member']['current_corporate']['name'] : '', // Corporate Name
|
||||||
$row['member']['current_plan']? $row['member']['current_plan']['code'] : '', // Plan Code
|
$row['member']['current_plan']? $row['member']['current_plan']['code'] : '', // Plan Code
|
||||||
@@ -339,7 +341,7 @@ class ClaimController extends Controller
|
|||||||
$row['member']['current_corporate']? $row['member']['current_corporate']['code'] : '', // Institution Code
|
$row['member']['current_corporate']? $row['member']['current_corporate']['code'] : '', // Institution Code
|
||||||
'', // Invoice Line Number
|
'', // Invoice Line Number
|
||||||
$row['status'], // Claim Status
|
$row['status'], // Claim Status
|
||||||
'', // Admission Date
|
$row['claim_request']? $row['claim_request']['submission_date'] : '-', // Admission Date
|
||||||
'', // Discharge Date
|
'', // Discharge Date
|
||||||
'', // Date Of Service
|
'', // Date Of Service
|
||||||
'', // Place Of Service
|
'', // Place Of Service
|
||||||
@@ -354,7 +356,7 @@ class ClaimController extends Controller
|
|||||||
$row['claim_request'] ? $row['claim_request']['service']['description'] : '', // ServiceDescription
|
$row['claim_request'] ? $row['claim_request']['service']['description'] : '', // ServiceDescription
|
||||||
'', // UnitPrice
|
'', // UnitPrice
|
||||||
'', // Quantity
|
'', // Quantity
|
||||||
'', // Tarif
|
$row['member']['current_policy']['latest_limit_journal'] ? abs($row['member']['current_policy']['latest_limit_journal']['total_credit']): '', // Tarif
|
||||||
'', // Claimable amount
|
'', // Claimable amount
|
||||||
'', // Paid by customer
|
'', // Paid by customer
|
||||||
'', // HD Disc
|
'', // HD Disc
|
||||||
@@ -369,7 +371,7 @@ class ClaimController extends Controller
|
|||||||
'', // Claimable Status
|
'', // Claimable Status
|
||||||
$row['claim_request'] ? $row['claim_request']['service']['description'] : '', // ServiceDescription, // Benefit Code
|
$row['claim_request'] ? $row['claim_request']['service']['description'] : '', // ServiceDescription, // Benefit Code
|
||||||
];
|
];
|
||||||
|
// dd($rowData);
|
||||||
$row = WriterEntityFactory::createRowFromArray($rowData);
|
$row = WriterEntityFactory::createRowFromArray($rowData);
|
||||||
$writer->addRow($row);
|
$writer->addRow($row);
|
||||||
}
|
}
|
||||||
@@ -444,7 +446,7 @@ class ClaimController extends Controller
|
|||||||
|
|
||||||
return Helper::responseJson([
|
return Helper::responseJson([
|
||||||
'file_name' => "Data Claim Report " . date('Y-m-d h:i:s'),
|
'file_name' => "Data Claim Report " . date('Y-m-d h:i:s'),
|
||||||
"file_url" => url('files/CorporatePlan&BenefitImportData.xlsx')
|
"file_url" => url('files/Benefit Usage Report.xlsx')
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,6 +61,10 @@ type CardPolicyProps = {
|
|||||||
};
|
};
|
||||||
maxTopUp: number;
|
maxTopUp: number;
|
||||||
};
|
};
|
||||||
|
members: {
|
||||||
|
memberId: string;
|
||||||
|
memberFullName: string;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -95,7 +99,7 @@ export default function CardPolicy(props: CardPolicyProps) {
|
|||||||
const [dialogTitle, setDialogTitle] = useState('');
|
const [dialogTitle, setDialogTitle] = useState('');
|
||||||
const [isDialog, setIsDialog] = useState('');
|
const [isDialog, setIsDialog] = useState('');
|
||||||
|
|
||||||
const { limit, topUpLimit } = props.data || {};
|
const { limit, topUpLimit, members } = props.data || {};
|
||||||
if (!limit || !topUpLimit) {
|
if (!limit || !topUpLimit) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -185,14 +189,14 @@ export default function CardPolicy(props: CardPolicyProps) {
|
|||||||
</Stack>
|
</Stack>
|
||||||
</>
|
</>
|
||||||
|
|
||||||
{/* {isDialog === 'submitClaim' && (
|
{isDialog === 'submitClaim' && (
|
||||||
<DialogClaimSubmitMember
|
<DialogClaimSubmitMember
|
||||||
openDialog={openDialog}
|
openDialog={openDialog}
|
||||||
setOpenDialog={setOpenDialog}
|
setOpenDialog={setOpenDialog}
|
||||||
title={{ name: dialogTitle }}
|
title={{ name: dialogTitle }}
|
||||||
data={members}
|
data={members}
|
||||||
/>
|
/>
|
||||||
)} */}
|
)}
|
||||||
|
|
||||||
{isDialog === 'topUpLimit' && (
|
{isDialog === 'topUpLimit' && (
|
||||||
<DialogTopUpLimit
|
<DialogTopUpLimit
|
||||||
|
|||||||
@@ -11,9 +11,11 @@ import {
|
|||||||
IconButton,
|
IconButton,
|
||||||
} from '@mui/material';
|
} from '@mui/material';
|
||||||
import { Search as SearchIcon } from '@mui/icons-material';
|
import { Search as SearchIcon } from '@mui/icons-material';
|
||||||
|
import axios from '../../utils/axios';
|
||||||
// components
|
// components
|
||||||
import MuiDialog from '../../components/MuiDialog';
|
import MuiDialog from '../../components/MuiDialog';
|
||||||
import Iconify from '../../components/Iconify';
|
import Iconify from '../../components/Iconify';
|
||||||
|
import { useSnackbar } from 'notistack';
|
||||||
// React
|
// React
|
||||||
import { ReactElement, useState } from 'react';
|
import { ReactElement, useState } from 'react';
|
||||||
import DialogClaimSubmitMemberSubmission from './DialogClaimSubmitMemberSubmission';
|
import DialogClaimSubmitMemberSubmission from './DialogClaimSubmitMemberSubmission';
|
||||||
@@ -83,11 +85,31 @@ export default function DialogClaimSubmitMember({
|
|||||||
|
|
||||||
/* --------------------------------- Search --------------------------------- */
|
/* --------------------------------- Search --------------------------------- */
|
||||||
const [searchText, setSearchText] = useState('');
|
const [searchText, setSearchText] = useState('');
|
||||||
|
/* --------------------------------- Benefit--------------------------------- */
|
||||||
|
const {enqueueSnackbar} = useSnackbar();
|
||||||
|
const [openDialogBenefit, setOpenDialogBenefit] = useState(false);
|
||||||
|
const [currentMember, setCurrentMember] = useState(null);
|
||||||
|
const [nameMember, setNameMember] = useState('');
|
||||||
|
const [loadingBenefit, setLoadingBenefit] = useState(false);
|
||||||
|
|
||||||
const handleSearchSubmit = async (event: React.FormEvent<HTMLFormElement>) => {
|
const handleSearchSubmit = async (event: React.FormEvent<HTMLFormElement>) => {
|
||||||
event.preventDefault();
|
// await new Promise((resolve) => setTimeout(resolve, 500));
|
||||||
|
// setLoadingBenefit(true)
|
||||||
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
||||||
|
// axios.post('/search-member', {
|
||||||
|
// search: searchText,
|
||||||
|
// })
|
||||||
|
// .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.meta.message : 'Opps, Something went Wrong!'), {variant : "error"})
|
||||||
|
// })
|
||||||
|
// .then(() => {
|
||||||
|
// setLoadingBenefit(false)
|
||||||
|
// });
|
||||||
};
|
};
|
||||||
/* -------------------------------------------------------------------------- */
|
/* -------------------------------------------------------------------------- */
|
||||||
|
|
||||||
|
|||||||
@@ -173,8 +173,8 @@ export default function List() {
|
|||||||
{open ? <KeyboardArrowDownIcon /> : <KeyboardArrowRightIcon />}
|
{open ? <KeyboardArrowDownIcon /> : <KeyboardArrowRightIcon />}
|
||||||
</IconButton>
|
</IconButton>
|
||||||
</TableCell>
|
</TableCell>
|
||||||
<TableCell align="left">{row.code}</TableCell>
|
|
||||||
<TableCell align="left">{row.claim_request?.code}</TableCell>
|
<TableCell align="left">{row.claim_request?.code}</TableCell>
|
||||||
|
<TableCell align="left">{row.code}</TableCell>
|
||||||
<TableCell align="left">{row.member?.full_name}</TableCell>
|
<TableCell align="left">{row.member?.full_name}</TableCell>
|
||||||
<TableCell align="left">{row.plan?.code}</TableCell>
|
<TableCell align="left">{row.plan?.code}</TableCell>
|
||||||
<TableCell align="left">{row.claim_request?.service?.name}</TableCell>
|
<TableCell align="left">{row.claim_request?.service?.name}</TableCell>
|
||||||
|
|||||||
0
public/files/Benefit Usage Report.xlsx
Normal file
0
public/files/Benefit Usage Report.xlsx
Normal file
Binary file not shown.
Reference in New Issue
Block a user