64 lines
1.7 KiB
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,
|
|
];
|
|
}
|
|
}
|