MIF_E31211891/app/Exports/SeminarProposalExport.php

60 lines
1.7 KiB
PHP

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