Files
aso/Modules/Internal/Transformers/ClaimRequestShowResource.php

82 lines
3.5 KiB
PHP

<?php
namespace Modules\Internal\Transformers;
use Illuminate\Http\Resources\Json\JsonResource;
use Illuminate\Support\Str;
use App\Models\Service;
use App\Models\MemberPlan;
use App\Models\Plan;
use App\Models\CorporateBenefit;
use App\Models\RequestLogBenefit;
use App\Models\CorporatePolicy;
use App\Models\RequestLogMedicine;
use App\Models\Organization;
use App\Helpers\Helper;
class ClaimRequestShowResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request
* @return array
*/
public function toArray($request)
{
$data = parent::toArray($request);
$corporateId = $data['member']['current_plan']['corporate_id'] ?? 0;
$planMember = MemberPlan::where('member_id', $data['member_id'])->get('plan_id');
$planId = Plan::whereIn('id', $planMember)->where('service_code', $data['service_code'])->first();
$benefit = CorporateBenefit::with('benefit')->where('plan_id', $planId->id)->get()->toArray();
$benefitDetailLog = RequestLogBenefit::with('benefit')->where('request_log_id', $data['request_log_id'])->get()->toArray();
$medicineDetailLog = RequestLogMedicine::where('request_log_id', $data['request_log_id'])->get()->toArray();
$benefitData = [];
if (count($benefit)){
foreach($benefit as $row){
array_push($benefitData, $row['benefit']);
}
}
// Policy Number
$policyNumber = CorporatePolicy::query()
->where('corporate_id', $corporateId)
->first();
$response = [
'id' => $data['id'],
'code' => $data['code'],
'request_log_id' => $data['request_log_id'],
'provider' => $data['request_log']['organization']['name'],
'member_id' => $data['request_log']['member']['member_id'],
'policy_number' => $policyNumber->code ? $policyNumber->code : '-',
'name' => $data['request_log']['member']['name'],
'date_of_birth' => $data['request_log']['member']['birth_date'],
'gender' => $data['request_log']['member']['gender'],
'marital_status' => $data['request_log']['member']['status_marital'],
'member_type' => Helper::memberType($data['request_log']['member']['record_type']),
'principal_id' => $data['request_log']['member']['principal_id'] ? $data['request_log']['member']['principal_id'] : '-',
'principal_name' => $data['request_log']['member']['principal_id'] ? Helper::principalName($data['request_log']['member']['principal_id']) : '-',
'relation_with_principal' => Helper::relationWithPrincipal($data['request_log']['member']['relation_with_principal']),
'submission_date' => $data['submission_date'],
'no_identitas' => $data['request_log']['member']['nric'],
'keterangan' => $data['request_log']['keterangan'],
'hak_kamar_pasien' => $data['request_log']['hak_kamar_pasien'],
'penempatan_kamar' => $data['request_log']['penempatan_kamar'],
'catatan' => $data['request_log']['catatan'],
'service_type' => Helper::serviceName( $data['request_log']['service_code']),
'claim_method' => $data['request_log']['payment_type'],
'files' => $data['request_log']['files'],
'benefit' => $benefitData,
'benefit_data' => $benefitDetailLog,
];
return $response;
}
}