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