claimService->getCountClaimRequestPerStatus($corporate_id); // dd($claims); return Helper::responseJson([ 'count_requested' => 0, 'count_approval' => 0, 'count_disbrushment' => 0, 'count_rejected' => 0, ]); } /** * Display a listing of the resource. * @return Renderable */ public function index(Request $request, $corporate_id) { $claims = Claim::query() ->when($request->search ?? null, function ($query, $search) { $query->where('code', 'LIKE', '%' . $search . '%'); }) ->with([ 'member', 'diagnoses' => function ($diagnosis) { return $diagnosis->where('type', 'primary'); }, 'diagnoses.icd', 'plan', 'benefit', 'claimRequest', 'claimRequest.service' ]) ->paginate(10); return Helper::responseJson($claims); } /** * Show the form for creating a new resource. * @return Renderable */ public function create() { return view('client::create'); } /** * Store a newly created resource in storage. * @param Request $request * @return Renderable */ public function store(Request $request) { // } /** * Show the specified resource. * @param int $id * @return Renderable */ public function show($id) { $claim = Claim::query() ->with([ 'member', 'member.currentPlan', 'member.currentPlan.benefits', 'member.currentCorporate', 'member.currentPolicy', 'diagnosis', 'diagnoses', 'benefit', 'files', 'claimRequest', 'claimRequest.files', 'items', 'items.claim_itemable', ]) ->findOrFail($id); return Helper::responseJson(ClaimShowResource::make($claim)); } /** * Show the form for editing the specified resource. * @param int $id * @return Renderable */ public function edit($id) { return view('client::edit'); } /** * Update the specified resource in storage. * @param Request $request * @param int $id * @return Renderable */ public function update(Request $request, $id) { // } /** * Remove the specified resource from storage. * @param int $id * @return Renderable */ public function destroy($id) { // } public function export($corporate_id){ $corporate = Corporate::where('id', $corporate_id)->with(['currentPolicy'])->first(); $member_id = CorporateEmployee::where('corporate_id', $corporate_id)->get('member_id')->toArray(); // dd($member_id); $claim = Claim::whereIn('member_id', $member_id)->with(['member', 'member.plans'])->get(); $data = []; if (count( $claim) > 0){ $temp = []; foreach($claim as $c) { $diagnosis = ClaimHistoryCare::where('claim_id', 34)->with('icd')->get(); $diagnosisName = ''; if (count($diagnosis) > 0){ $tempDiagnosis = []; foreach($diagnosis as $key => $d){ $diagnosis = Icd::where('id', $d['main_diagnosis_id'])->first(); array_push($tempDiagnosis, $diagnosis->name); } $diagnosisName = implode(", ", $tempDiagnosis); } $temp['id'] = $c['id']; $temp['plan_id'] = $c['member']['plans'][0]['code']; $temp['payor_id'] = $c['member']['payor_id']; $temp['corporate_id'] = $corporate->name; $temp['policy_number'] = $corporate->currentPolicy->code; $temp['member_id'] = $c['member']['member_id']; $temp['benefit_code'] = $c['benefit_code']; $temp['benefit_desc'] = $c['benefit_desc']; $temp['amount_incurred'] = $c['amount_incurred']; $temp['amount_approved'] = $c['amount_approved']; $temp['amount_not_approved'] = $c['amount_not_approved']; $temp['excess_paid'] = $c['excess_paid']; $temp['diganosis'] = $diagnosisName; array_push($data, $temp); } $headers = [ ['value' => 'Plan ID', 'cell' => 'A1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Payor ID', 'cell' => 'B1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Corporate ID', 'cell' => 'C1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Policy Number', 'cell' => 'D1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Member ID', 'cell' => 'E1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Benefit Code', 'cell' => 'F1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Benefit Desc', 'cell' => 'G1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Amt Incurred', 'cell' => 'H1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Amt Approved', 'cell' => 'I1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Amt Not Approved', 'cell' => 'J1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Excess Paid', 'cell' => 'K1', 'mergeCell' => false, 'mergeToCell' => ''], ['value' => 'Diagnosis', 'cell' => 'L1', 'mergeCell' => false, 'mergeToCell' => 'J2'], ]; $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); foreach ($headers as $header) { $sheet->setCellValue($header['cell'], $header['value']); if ($header['mergeCell'] === true) { $sheet->mergeCells($header['cell'] . ':' . $header['mergeToCell']); } $sheet->getStyle($header['cell'])->getFont()->setBold(true); $sheet->getStyle($header['cell'])->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER)->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); } $startFrom = 2; foreach($data as $i => $d){ $sheet->setCellValue('A' . $startFrom, $d['plan_id'] ?? '-'); $sheet->setCellValue('B' . $startFrom, $d['payor_id'] ?? '-'); $sheet->setCellValue('C' . $startFrom, $d['corporate_id'] ?? '-'); $sheet->setCellValue('D' . $startFrom, $d['policy_number'] ?? '-'); $sheet->setCellValue('E' . $startFrom, $d['member_id'] ?? '-'); $sheet->setCellValue('F' . $startFrom, $d['benefit_code'] ?? '-'); $sheet->setCellValue('G' . $startFrom, $d['benefit_desc'] ?? '-'); $sheet->setCellValue('H' . $startFrom, $d['amount_incurred'] ?? '-'); $sheet->setCellValue('I' . $startFrom, $d['amount_approved'] ?? '-'); $sheet->setCellValue('J' . $startFrom, $d['amount_not_approved'] ?? '-'); $sheet->setCellValue('K' . $startFrom, $d['excess_paid'] ?? '-'); $sheet->setCellValue('L' . $startFrom, $d['diganosis'] ?? '-'); $startFrom++; } foreach (['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J','K'] as $header) { if ($header === 'A') { $spreadsheet->getActiveSheet()->getColumnDimension($header)->setWidth(35, 'px'); } elseif ($header === 'H' || $header === 'I') { $spreadsheet->getActiveSheet()->getColumnDimension($header)->setWidth(100, 'px'); } else { $spreadsheet->getActiveSheet()->getColumnDimension($header)->setAutoSize(true); } } $spreadsheet->getActiveSheet()->getStyle('A2:A' . $startFrom)->getAlignment()->setHorizontal(\PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER)->setVertical(\PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER); $sheet->getDefaultRowDimension()->setRowHeight(-1); $sheet->setTitle('Alarm Center Report'); $writer = new Xlsx($spreadsheet); ob_start(); $writer->save('php://output'); $content = ob_get_contents(); ob_end_clean(); $fileName = 'result-' . now()->getPreciseTimestamp(3) . '-alarm-center-report.xlsx'; Storage::disk('public')->put('temp/' . $fileName, $content); $fileUrl = url('storage/temp/' . $fileName); return Helper::responseJson([ "file_url" => $fileUrl ]); } } }