Merge branch 'staging' of itcorp.primaya.id:rajif/aso into staging
This commit is contained in:
@@ -6,6 +6,8 @@ use App\Helpers\Helper;
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\ClaimRequest;
|
||||
use Modules\Client\Transformers\ClaimReport\ShowResources;
|
||||
use Illuminate\Support\Facades\Crypt;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class ClaimReportController extends Controller
|
||||
{
|
||||
@@ -25,6 +27,7 @@ class ClaimReportController extends Controller
|
||||
$corporateEmployee->where('corporate_id', $corporateId);
|
||||
});
|
||||
})
|
||||
->whereHas('claim', fn ($query) => $query->where('status', 'approved'))
|
||||
->where('status', 'approved')
|
||||
->get();
|
||||
|
||||
@@ -38,13 +41,148 @@ class ClaimReportController extends Controller
|
||||
->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)
|
||||
'rejecteds' => count($rejecteds),
|
||||
'disbrusments' => count($disbrusments)
|
||||
]);
|
||||
}
|
||||
|
||||
public function claimDetail($corporate_id, $claimRequestId)
|
||||
{
|
||||
$claimRequestId = Crypt::decrypt($claimRequestId);
|
||||
|
||||
$status = DB::table('claim_requests')
|
||||
->leftJoin('claims', 'claim_requests.id', '=', 'claims.claim_request_id')
|
||||
->leftJoin('members', 'claim_requests.member_id', '=', 'members.id')
|
||||
->leftJoin('corporate_employees', 'members.id', '=', 'corporate_employees.member_id')
|
||||
->leftJoin('corporate_divisions', 'corporate_employees.division_id', '=', 'corporate_divisions.id')
|
||||
->where('corporate_employees.corporate_id', '=', $corporate_id)
|
||||
->where('claim_requests.id', '=', $claimRequestId)
|
||||
->select(
|
||||
'claim_requests.submission_date',
|
||||
DB::raw('
|
||||
CASE
|
||||
WHEN claim_requests.status = "requested" THEN "requested"
|
||||
WHEN claim_requests.status = "approved" AND claims.status = "approved" THEN "approved"
|
||||
WHEN claim_requests.status = "approved" AND claims.status = "declined" THEN "declined"
|
||||
WHEN claim_requests.status = "approved" AND claims.status = "disbrusmented" THEN "disbrusmented"
|
||||
/*WHEN claim_requests.status = "approved" AND claims.status = "received" THEN "pending"*/
|
||||
WHEN claim_requests.status = "approved" AND claims.status = "received" THEN "reviewed"
|
||||
ELSE ""
|
||||
END AS status
|
||||
')
|
||||
)
|
||||
->first();
|
||||
$results['status'] = $status;
|
||||
$timeline = DB::table('claim_logs')
|
||||
->where('claim_logs.claim_request_id', '=', $claimRequestId)
|
||||
->select(
|
||||
DB::raw('
|
||||
CASE
|
||||
WHEN claim_logs.status = "requested" THEN "Request"
|
||||
WHEN claim_logs.status = "reviewed" THEN "Review"
|
||||
WHEN claim_logs.status = "approved" THEN "Approval"
|
||||
ELSE "-"
|
||||
END AS txt_status
|
||||
'),
|
||||
DB::raw('
|
||||
CASE
|
||||
WHEN claim_logs.status = "requested" THEN "#159C9C"
|
||||
WHEN claim_logs.status = "reviewed" THEN "#0C53B7"
|
||||
WHEN claim_logs.status = "approved" THEN "#229A16"
|
||||
ELSE "-"
|
||||
END AS txt_status_color
|
||||
'),
|
||||
DB::raw('
|
||||
CASE
|
||||
WHEN claim_logs.status = "requested" THEN "#00AB5529"
|
||||
WHEN claim_logs.status = "reviewed" THEN "#1890FF29"
|
||||
WHEN claim_logs.status = "approved" THEN "#54D62C29"
|
||||
ELSE "-"
|
||||
END AS txt_status_backgroundColor
|
||||
'),
|
||||
'claim_logs.date',
|
||||
'claim_logs.description',
|
||||
'claim_logs.status'
|
||||
)
|
||||
->orderBy('claim_logs.id', 'desc')
|
||||
->get();
|
||||
$results['timeline'] = $timeline;
|
||||
$request_files = DB::table('claim_request_files')
|
||||
->where('claim_request_files.claim_request_id', '=', $claimRequestId)
|
||||
->get();
|
||||
$results['request_files'] = $request_files;
|
||||
|
||||
return Helper::responseJson($results);
|
||||
}
|
||||
|
||||
public function claimDetailHistory($corporate_id, $claimRequestId)
|
||||
{
|
||||
$claimRequestId = Crypt::decrypt($claimRequestId);
|
||||
|
||||
$member = DB::table('claim_requests')
|
||||
->leftJoin('claims', 'claim_requests.id', '=', 'claims.claim_request_id')
|
||||
->leftJoin('members', 'claim_requests.member_id', '=', 'members.id')
|
||||
->leftJoin('corporate_employees', 'members.id', '=', 'corporate_employees.member_id')
|
||||
->leftJoin('corporate_divisions', 'corporate_employees.division_id', '=', 'corporate_divisions.id')
|
||||
->where('corporate_employees.corporate_id', '=', $corporate_id)
|
||||
->where('claim_requests.id', '=', $claimRequestId)
|
||||
->select(
|
||||
'claim_requests.code','members.member_id', 'members.name'
|
||||
)
|
||||
->first();
|
||||
$results['member'] = $member;
|
||||
$claim_item = DB::table('claim_items')
|
||||
->leftJoin('claims','claim_items.claim_id', '=', 'claims.id')
|
||||
->leftJoin('benefits', 'claim_items.claim_itemable_id', '=', 'benefits.id')
|
||||
->leftJoin('claim_requests', 'claims.claim_request_id', '=', 'claim_requests.id')
|
||||
->leftJoin('members', 'claim_requests.member_id', '=', 'members.id')
|
||||
->leftJoin('corporate_employees', 'members.id', '=', 'corporate_employees.member_id')
|
||||
->where('corporate_employees.corporate_id', '=', $corporate_id)
|
||||
->where('claim_requests.id', '=', $claimRequestId)
|
||||
->select(
|
||||
'claim_items.nominal_ditagihkan',
|
||||
'claim_items.nominal_dicover',
|
||||
'benefits.description',
|
||||
'claim_requests.submission_date'
|
||||
)
|
||||
->orderBy('claim_items.id', 'desc')
|
||||
->get();
|
||||
$results['claim_item'] = $claim_item;
|
||||
$tot_claim_item = DB::table('claim_items')
|
||||
->leftJoin('claims','claim_items.claim_id', '=', 'claims.id')
|
||||
->leftJoin('benefits', 'claim_items.claim_itemable_id', '=', 'benefits.id')
|
||||
->leftJoin('claim_requests', 'claims.claim_request_id', '=', 'claim_requests.id')
|
||||
->leftJoin('members', 'claim_requests.member_id', '=', 'members.id')
|
||||
->leftJoin('corporate_employees', 'members.id', '=', 'corporate_employees.member_id')
|
||||
->where('corporate_employees.corporate_id', '=', $corporate_id)
|
||||
->where('claim_requests.id', '=', $claimRequestId)
|
||||
->select(
|
||||
DB::raw('SUM(claim_items.nominal_ditagihkan) AS nominal_ditagihkan'),
|
||||
DB::raw('SUM(claim_items.nominal_dicover) AS nominal_dicover'),
|
||||
DB::raw('(SUM(claim_items.nominal_ditagihkan) - SUM(claim_items.nominal_dicover)) AS difference'),
|
||||
)
|
||||
->groupBy('claim_items.id')
|
||||
->orderBy('claim_items.id', 'desc')
|
||||
->first();
|
||||
$results['tot_claim_item'] = $tot_claim_item;
|
||||
|
||||
|
||||
return Helper::responseJson($results);
|
||||
}
|
||||
|
||||
public function show($corporateId, $claimRequestId)
|
||||
{
|
||||
$data = ClaimRequest::query()
|
||||
|
||||
@@ -16,6 +16,7 @@ use Modules\Client\Transformers\AlarmCenter\DataServiceMonitoring;
|
||||
use Modules\Client\Transformers\Dashboard\MemberResources as ClaimSubmitMemberResources;
|
||||
use Modules\Client\Transformers\Dashboard\MemberResources as DashboardMemberResources;
|
||||
use Modules\Client\Transformers\Dashboard\MemberAlarmCenterResources as DashboardMemberAlarmResources;
|
||||
use Modules\Client\Transformers\Dashboard\MemberEmployeeDataResources as DashboardMemberEmployeeDataResources;
|
||||
use Modules\Client\Transformers\DataMemberResource;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
@@ -33,8 +34,8 @@ class CorporateMemberController extends Controller
|
||||
{
|
||||
switch ($request->input('type')) {
|
||||
case 'employee-data':
|
||||
$members = $this->corporateMemberService->getAllMemberAlarmCenter($corporate_id, $request);
|
||||
return response()->json(Helper::paginateResources(DashboardMemberAlarmResources::collection($members)));
|
||||
$members = $this->corporateMemberService->getAllMemberEmployeeData($corporate_id, $request);
|
||||
return response()->json(Helper::paginateResources(DashboardMemberEmployeeDataResources::collection($members)));
|
||||
case 'claim-report':
|
||||
$members = $this->corporateMemberService->getAllMemberClaimReports($corporate_id, $request);
|
||||
return response()->json(Helper::paginateResources(ClaimReportMemberResources::collection($members)));
|
||||
|
||||
Reference in New Issue
Block a user