penjadwalan-ga/app/Exports/JadwalTimetableSheet.php

51 lines
1.2 KiB
PHP

<?php
namespace App\Exports;
use Illuminate\Contracts\View\View;
use Maatwebsite\Excel\Concerns\FromView;
use Maatwebsite\Excel\Concerns\WithTitle;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
class JadwalTimetableSheet implements FromView, WithTitle, ShouldAutoSize
{
protected $jadwalMaster;
protected $sesiList;
public function __construct($jadwalMaster, $sesiList)
{
$this->jadwalMaster = $jadwalMaster;
$this->sesiList = $sesiList;
}
public function title(): string
{
return '1. Timetable Grid Mingguan';
}
public function view(): View
{
$days = [
1 => 'Senin',
2 => 'Selasa',
3 => 'Rabu',
4 => 'Kamis',
5 => 'Jumat',
6 => 'Sabtu',
7 => 'Minggu'
];
// Grouping data jadwal berdasarkan "hari-sesi_id"
$jadwalGrouped = $this->jadwalMaster->groupBy(function ($item) {
return "{$item->hari}-{$item->sesi_id}";
});
return view('admin.exports.excel-timetable', [
'jadwalMaster' => $this->jadwalMaster,
'sesiList' => $this->sesiList,
'days' => $days,
'jadwalGrouped' => $jadwalGrouped
]);
}
}