MIF_E31211891/app/Exports/SidangExport.php

64 lines
1.7 KiB
PHP

<?php
namespace App\Exports;
use Carbon\Carbon;
use App\Models\SidangJadwal;
use Maatwebsite\Excel\Concerns\WithMapping;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\FromCollection;
class SidangExport implements FromCollection, WithHeadings, WithMapping
{
public function collection()
{
// Pastikan untuk memuat relasi yang diperlukan
return SidangJadwal::with([
'pengajuan',
'mahasiswa',
'dosenPembimbing',
'dosenPanelis1',
'dosenPanelis2',
'seminarProposal',
'sidang',
'sidangWaktu',
'sidangTempat'
])->get();
}
public function headings(): array
{
return [
'Tanggal',
'Waktu',
'Tempat',
'Nama Mahasiswa',
'Ketua Penguji',
'Sekretaris Penguji',
'Anggota Penguji',
];
}
public function map($sidangJadwal): array
{
// Format tanggal
$tanggal = Carbon::parse($sidangJadwal->tanggal_seminar)->format('d-m-Y');
// Gabungkan waktu mulai dan selesai
$waktu = '';
if ($sidangJadwal->sidangWaktu) {
$waktu = Carbon::parse($sidangJadwal->sidangWaktu->waktu_mulai)->format('H:i') . ' - ' . Carbon::parse($sidangJadwal->sidangWaktu->waktu_selesai)->format('H:i');
}
return [
$tanggal,
$waktu,
$sidangJadwal->sidangTempat->ruang,
$sidangJadwal->mahasiswa->name,
$sidangJadwal->dosenPanelis1->name,
$sidangJadwal->dosenPembimbing->name,
$sidangJadwal->dosenPanelis2->name,
];
}
}