78 lines
3.0 KiB
PHP
78 lines
3.0 KiB
PHP
<?php
|
|
|
|
namespace Modules\Client\Http\Controllers\Api;
|
|
|
|
use App\Helpers\Helper;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Models\ClaimRequest;
|
|
use Modules\Client\Transformers\ClaimReport\ShowResources;
|
|
|
|
class ClaimReportController extends Controller
|
|
{
|
|
public function claimStatus($corporateId)
|
|
{
|
|
$requesteds = ClaimRequest::query()
|
|
->whereHas('member', function ($query) use ($corporateId) {
|
|
$query->whereHas('employeds', function ($corporateEmployee) use ($corporateId) {
|
|
$corporateEmployee->where('corporate_id', $corporateId);
|
|
});
|
|
})
|
|
->where('status', 'requested')
|
|
->get();
|
|
$approveds = ClaimRequest::query()
|
|
->whereHas('member', function ($query) use ($corporateId) {
|
|
$query->whereHas('employeds', function ($corporateEmployee) use ($corporateId) {
|
|
$corporateEmployee->where('corporate_id', $corporateId);
|
|
});
|
|
})
|
|
->whereHas('claim', fn ($query) => $query->where('status', 'approved'))
|
|
->where('status', 'approved')
|
|
->get();
|
|
|
|
$rejecteds = ClaimRequest::query()
|
|
->whereHas('member', function ($query) use ($corporateId) {
|
|
$query->whereHas('employeds', function ($corporateEmployee) use ($corporateId) {
|
|
$corporateEmployee->where('corporate_id', $corporateId);
|
|
});
|
|
})
|
|
->whereHas('claim', fn ($query) => $query->where('status', 'declined'))
|
|
->where('status', 'approved')
|
|
->get();
|
|
|
|
$disbrusments = ClaimRequest::query()
|
|
->whereHas('member', function ($query) use ($corporateId) {
|
|
$query->whereHas('employeds', function ($corporateEmployee) use ($corporateId) {
|
|
$corporateEmployee->where('corporate_id', $corporateId);
|
|
});
|
|
})
|
|
->whereHas('claim', fn ($query) => $query->where('status', 'disbrusmented'))
|
|
->where('status', 'approved')
|
|
->get();
|
|
|
|
return Helper::responseJson([
|
|
'requesteds' => count($requesteds),
|
|
'approveds' => count($approveds),
|
|
'rejecteds' => count($rejecteds),
|
|
'disbrusments' => count($disbrusments)
|
|
]);
|
|
}
|
|
|
|
public function show($corporateId, $claimRequestId)
|
|
{
|
|
$data = ClaimRequest::query()
|
|
->with([
|
|
'histories:historiable_type,historiable_id,title,description,created_at',
|
|
'member:id,person_id,name_prefix,name,name_suffix' => [
|
|
'person:id,name_prefix,name,name_suffix,gender'
|
|
],
|
|
'claim:id,status',
|
|
'claimResults',
|
|
'claimConditions',
|
|
'claimDiagnosis'
|
|
])
|
|
->find($claimRequestId, ['id', 'submission_date', 'member_id', 'claim_id', 'status']);
|
|
|
|
return Helper::responseJson(new ShowResources($data));
|
|
}
|
|
}
|