85 lines
2.0 KiB
PHP
85 lines
2.0 KiB
PHP
<?php
|
|
|
|
namespace App\Exports;
|
|
|
|
use App\Models\HasilPengujian;
|
|
use App\Models\DataUji;
|
|
use Illuminate\Support\Collection;
|
|
use Maatwebsite\Excel\Concerns\FromCollection;
|
|
use Maatwebsite\Excel\Concerns\WithHeadings;
|
|
|
|
class PrediksiExport implements FromCollection, WithHeadings
|
|
{
|
|
public function collection()
|
|
{
|
|
$dataUji = DataUji::select([
|
|
'kecamatan',
|
|
'data_tahun',
|
|
'phbs',
|
|
'rata_rata_imunisasi',
|
|
'perilaku_merokok',
|
|
'data_kasus',
|
|
'latitude',
|
|
'longitude',
|
|
'status_prediksi',
|
|
])->get()->map(function ($item) {
|
|
return [
|
|
$item->kecamatan,
|
|
$item->data_tahun,
|
|
$item->phbs,
|
|
$item->rata_rata_imunisasi,
|
|
$item->perilaku_merokok,
|
|
$item->data_kasus,
|
|
$item->latitude,
|
|
$item->longitude,
|
|
$item->data_tahun ? $item->data_tahun + 1 : '-',
|
|
$item->status_prediksi,
|
|
];
|
|
});
|
|
|
|
$hasilPengujian = HasilPengujian::select([
|
|
'kecamatan',
|
|
'data_tahun',
|
|
'phbs',
|
|
'imunisasi',
|
|
'merokok',
|
|
'jumlah_kasus',
|
|
'latitude',
|
|
'longitude',
|
|
'prediksi_tahun',
|
|
'status_prediksi',
|
|
])->get()->map(function ($item) {
|
|
return [
|
|
$item->kecamatan,
|
|
$item->data_tahun,
|
|
$item->phbs,
|
|
$item->imunisasi,
|
|
$item->merokok,
|
|
$item->jumlah_kasus,
|
|
$item->latitude,
|
|
$item->longitude,
|
|
$item->prediksi_tahun,
|
|
$item->status_prediksi,
|
|
];
|
|
});
|
|
|
|
// Gabung array, lalu jadikan Collection
|
|
return collect($dataUji->toArray())
|
|
->merge($hasilPengujian->toArray());
|
|
}
|
|
public function headings(): array
|
|
{
|
|
return [
|
|
'Kecamatan',
|
|
'Data Tahun',
|
|
'PHBS',
|
|
'Imunisasi',
|
|
'Merokok',
|
|
'Jumlah Kasus',
|
|
'Latitude',
|
|
'Longitude',
|
|
'Prediksi Tahun',
|
|
'Status Prediksi',
|
|
];
|
|
}
|
|
} |