detail dan add document dan hapus di claim request
This commit is contained in:
@@ -5,6 +5,14 @@ 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
|
||||
{
|
||||
@@ -17,34 +25,57 @@ class ClaimRequestShowResource extends JsonResource
|
||||
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');
|
||||
|
||||
$service = Service::where('code',$data['service_code'])->first();
|
||||
if($service){
|
||||
$serviceName = $service->name;
|
||||
} else {
|
||||
$serviceName = '-';
|
||||
$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']);
|
||||
}
|
||||
}
|
||||
|
||||
$data['service_name'] = $serviceName;
|
||||
// Policy Number
|
||||
$policyNumber = CorporatePolicy::query()
|
||||
->where('corporate_id', $corporateId)
|
||||
->first();
|
||||
|
||||
// Map Histories to Group by Dates
|
||||
$historiesGroupByDate = $this->histories->mapToGroups(function($history) {
|
||||
return [$history->created_at->format('Y-m-d') => $history];
|
||||
});
|
||||
$data['histories_by_date'] = [];
|
||||
foreach ($historiesGroupByDate as $date => $histories) {
|
||||
$data['histories_by_date'][] = [
|
||||
'date' => $date,
|
||||
'histories' => $histories
|
||||
];
|
||||
}
|
||||
|
||||
$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,
|
||||
];
|
||||
|
||||
// Map Files by type
|
||||
$filesGroupByType = $this->files->mapToGroups(function($file) {
|
||||
return [Str::slug($file->type, '_') => $file];
|
||||
});
|
||||
$data['files_by_type'] = $filesGroupByType;
|
||||
|
||||
return $data;
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user