[WIP] Claim Report & Dashboard

This commit is contained in:
Fajar
2023-03-25 16:15:26 +07:00
parent 59e7394d13
commit 4a7c3ebdda
8 changed files with 178 additions and 109 deletions

View File

@@ -4,6 +4,7 @@ namespace Modules\Client\Http\Controllers\Api;
use App\Helpers\Helper;
use App\Models\Claim;
use App\Services\ClaimService;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
@@ -11,6 +12,24 @@ use Modules\Client\Transformers\ClaimShowResource;
class ClaimController extends Controller
{
public function __construct(public ClaimService $claimService)
{
}
public function status($corporate_id)
{
$claims = $this->claimService->getCountClaimRequestPerStatus($corporate_id);
dd($claims);
return Helper::responseJson([
'count_requested' => 0,
'count_approval' => 0,
'count_disbrushment' => 0,
'count_rejected' => 0,
]);
}
/**
* Display a listing of the resource.
* @return Renderable
@@ -18,8 +37,8 @@ class ClaimController extends Controller
public function index(Request $request, $corporate_id)
{
$claims = Claim::query()
->when($request->search ?? null, function($query, $search) {
$query->where('code', 'LIKE', '%'.$search.'%');
->when($request->search ?? null, function ($query, $search) {
$query->where('code', 'LIKE', '%' . $search . '%');
})
->with([
'member',
@@ -27,7 +46,7 @@ class ClaimController extends Controller
return $diagnosis->where('type', 'primary');
},
'diagnoses.icd',
'plan',
'plan',
'benefit',
'claimRequest',
'claimRequest.service'
@@ -65,8 +84,8 @@ class ClaimController extends Controller
{
$claim = Claim::query()
->with([
'member',
'member.currentPlan',
'member',
'member.currentPlan',
'member.currentPlan.benefits',
'member.currentCorporate',
'member.currentPolicy',
@@ -78,7 +97,7 @@ class ClaimController extends Controller
'claimRequest.files',
'items',
'items.claim_itemable',
])
])
->findOrFail($id);
return Helper::responseJson(ClaimShowResource::make($claim));

View File

@@ -7,7 +7,8 @@ use App\Services\CorporateMemberService;
use Illuminate\Contracts\Support\Renderable;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Modules\Client\Transformers\Dashboard\MemberResources;
use Modules\Client\Transformers\ClaimReport\MemberResources as ClaimReportMemberResources;
use Modules\Client\Transformers\Dashboard\MemberResources as DashboardMemberResources;
class CorporateMemberController extends Controller
{
@@ -21,68 +22,13 @@ class CorporateMemberController extends Controller
*/
public function index(Request $request, $corporate_id)
{
$members = $this->corporateMemberService->getAllDashboardMembers($corporate_id, $request);
return response()->json(Helper::paginateResources(MemberResources::collection($members)));
}
/**
* Show the form for creating a new resource.
* @return Renderable
*/
public function create()
{
return view('client::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('client::show');
}
/**
* Show the form for editing the specified resource.
* @param int $id
* @return Renderable
*/
public function edit($id)
{
return view('client::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)
{
//
switch ($request->input('type')) {
case 'claim-report':
$members = $this->corporateMemberService->getAllMemberClaimReports($corporate_id, $request);
return response()->json(Helper::paginateResources(ClaimReportMemberResources::collection($members)));
default:
$members = $this->corporateMemberService->getAllMemberDashboards($corporate_id, $request);
return response()->json(Helper::paginateResources(DashboardMemberResources::collection($members)));
}
}
}