75 lines
2.1 KiB
PHP
75 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Exports;
|
|
|
|
use Maatwebsite\Excel\Concerns\FromCollection;
|
|
use App\Exports\DataExport;
|
|
use App\Models\UserOverView;
|
|
use App\Models\User;
|
|
use Maatwebsite\Excel\Concerns\WithHeadings;
|
|
use Carbon\Carbon;
|
|
|
|
class DataExport implements FromCollection, WithHeadings
|
|
{
|
|
/**
|
|
* @return \Illuminate\Support\Collection
|
|
*/
|
|
public function collection()
|
|
{
|
|
$start_date = request()->start_date;
|
|
// dd($start_date);
|
|
$end_date = request()->end_date;
|
|
// dd($end_date);
|
|
$userData = UserOverView::select('id','user_id','muscle_rate','body_fat','skeletal_muscle', 'protein', 'bmr','water','age','weight','created_at')->with('userData')->whereBetween('created_at', [$start_date, $end_date])->get();
|
|
// dd($userData);
|
|
if ($userData->isEmpty()) {
|
|
|
|
return collect([
|
|
[
|
|
'message' => 'No data found for the specified date.',
|
|
]
|
|
]);
|
|
}
|
|
|
|
$formattedData = $userData->map(function ($userData, $index) {
|
|
|
|
$user_name = isset($userData->userData) && isset($userData->userData)
|
|
? $userData->userData->full_name : 'N/A';
|
|
|
|
return [
|
|
'id' => $index + 1,
|
|
'user_id' => $user_name,
|
|
'Muscle Rate' => $userData->muscle_rate,
|
|
'Body Fat' => $userData->body_fat,
|
|
'Skeletal Muscle' => $userData->skeletal_muscle,
|
|
'Protein' => $userData->protein,
|
|
'BMR' => $userData->bmr,
|
|
'Water' => $userData->water,
|
|
'Age' => $userData->age,
|
|
'Weight' => $userData->weight,
|
|
'Date' => Carbon::parse($userData->created_at)->format('Y-m-d'),
|
|
|
|
];
|
|
});
|
|
|
|
return $formattedData;
|
|
}
|
|
|
|
public function headings(): array
|
|
{
|
|
return [
|
|
'id',
|
|
'Name',
|
|
'Muscle Rate',
|
|
'Body Fat',
|
|
'Skeletal Muscle',
|
|
'Protein',
|
|
'BMR',
|
|
'Water',
|
|
'Age',
|
|
'Weight',
|
|
'Date'
|
|
];
|
|
}
|
|
}
|