89 lines
3.3 KiB
PHP
89 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Resources\OLDLMS;
|
|
|
|
use App\Services\ClaimService;
|
|
use App\Models\Corporate;
|
|
use App\Models\CorporateBenefit;
|
|
use App\Models\RequestLog;
|
|
use App\Models\RequestLogBenefit;
|
|
use App\Models\MemberPlan;
|
|
use App\Helpers\Helper;
|
|
use Carbon\Carbon;
|
|
use Illuminate\Http\Resources\Json\JsonResource;
|
|
|
|
|
|
class MemberResource extends JsonResource
|
|
{
|
|
/**
|
|
* Transform the resource into an array.
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @return array|\Illuminate\Contracts\Support\Arrayable|\JsonSerializable
|
|
*/
|
|
public function toArray($request)
|
|
{
|
|
// $data = parent::toArray($request);
|
|
$currentMemberPlan = $this->memberPlans?->first();
|
|
$limitTelecon = $currentMemberPlan->plan->limit_telecon ?? null;
|
|
$limitTelecon = $this->totalUsage >= 6 ? null : $limitTelecon;
|
|
$services = MemberPlan::where('member_id', $this->id)->with('plan')->get()->toArray();
|
|
$dataServices = [];
|
|
if ($services) {
|
|
foreach($services as $service) {
|
|
$serviceName = Helper::serviceName($service['plan']['service_code']);
|
|
$benefits = CorporateBenefit::where('plan_id', $service['plan_id'])->with('benefit')->get()->toArray();
|
|
$dataBenefit = [];
|
|
foreach($benefits as $benefit){
|
|
$dataBenefitItem = $benefit['benefit']['description'];
|
|
array_push($dataBenefit, $dataBenefitItem);
|
|
}
|
|
$data = [
|
|
'name' => $serviceName,
|
|
'benefit' => $dataBenefit
|
|
];
|
|
|
|
array_push($dataServices, $data);
|
|
}
|
|
}
|
|
|
|
// LOG
|
|
$dataLog = [];
|
|
$requestLogs = RequestLog::where('member_id', $this->id)->with('organization')->get()->toArray();
|
|
$totalBenefit = 0;
|
|
if ($requestLogs) {
|
|
foreach($requestLogs as $requestLog) {
|
|
$requestLogBenefit = RequestLogBenefit::where('request_log_id', $requestLog['id'])->sum('amount_approved');
|
|
$totalBenefit += $requestLogBenefit;
|
|
$data = [
|
|
'id' => $requestLog['id'],
|
|
'code' => $requestLog['code'],
|
|
'submission_date' => Carbon::parse($requestLog['submission_date'])->format('d M Y H:i:s'),
|
|
'provider_name' => $requestLog['organization']['name'],
|
|
'service' => Helper::serviceName($requestLog['service_code'])
|
|
];
|
|
|
|
array_push($dataLog, $data);
|
|
}
|
|
}
|
|
|
|
$data = [
|
|
'id' => $this->id,
|
|
'member_name' => $this->full_name,
|
|
'member_id' => $this->member_id,
|
|
'policy_holder' => $this->currentPolicy->corporate->name,
|
|
'policy_number' => $this->currentPolicy->code ?? null,
|
|
'date_of_birth' => $this->birth_date,
|
|
'gender' => $this->gender,
|
|
'start_date' => $this->members_effective_date,
|
|
'corporate_logo' => $_ENV['LMS_APP_STORAGE'] . $this->corporateLogo,
|
|
'valid_until' => $this->members_expire_date,
|
|
'total_benefit_usage' => $totalBenefit,
|
|
'service' => $dataServices,
|
|
'histor_log' => $dataLog
|
|
|
|
];
|
|
return $data;
|
|
}
|
|
}
|