33namespace App \Filament \Resources \Anggotas \Pages ;
44
55use App \Filament \Resources \Anggotas \AnggotaResource ;
6+ use Carbon \Carbon ;
67use Filament \Actions \CreateAction ;
8+ // use Filament\Forms\Components\Builder;
79use Filament \Resources \Pages \ListRecords ;
10+ use pxlrbt \FilamentExcel \Columns \Column ;
11+ use pxlrbt \FilamentExcel \Actions \ExportAction ;
12+ use pxlrbt \FilamentExcel \Exports \ExcelExport ;
13+ use Illuminate \Database \Eloquent \Builder ;
814
915class ListAnggotas extends ListRecords
1016{
@@ -14,6 +20,45 @@ protected function getHeaderActions(): array
1420 {
1521 return [
1622 CreateAction::make (),
23+ ExportAction::make ()
24+ ->label ('Ekspor ke Excel ' )
25+ ->exports ([
26+ ExcelExport::make ()
27+ ->fromTable ()
28+ ->modifyQueryUsing (function (Builder $ query ) {
29+ return $ query ->whereHas ('user ' , function (Builder $ userQuery ) {
30+ $ userQuery ->whereHas ('roles ' , function (Builder $ roleQuery ) {
31+ $ roleQuery ->where ('name ' , 'Anggota ' );
32+ });
33+ });
34+ })
35+ ->withFilename ('Data Anggota - ' . date ('Y-m-d ' ))
36+ ->withColumns ([
37+ Column::make ('nama ' )->heading ('Nama ' ),
38+ Column::make ('kelamin ' )->heading ('Jenis Kelamin ' ),
39+ Column::make ('tempat_tanggal_lahir ' )
40+ ->heading ('Tempat, Tanggal Lahir ' )
41+ ->formatStateUsing (function ($ record ) {
42+ if (empty ($ record ->tanggal_lahir )) {
43+ return $ record ->tempat_lahir ?? null ;
44+ }
45+ $ tanggal = Carbon::parse ($ record ->tanggal_lahir )
46+ ->locale ('id ' )
47+ ->translatedFormat ('d F Y ' );
48+ return $ record ->tempat_lahir . ', ' . $ tanggal ;
49+ }),
50+ Column::make ('alamat ' )->heading ('Alamat ' ),
51+ Column::make ('no_wa ' )->heading ('No. WA ' ),
52+ Column::make ('jurusan.nama_jurusan ' )->heading ('Jurusan ' ),
53+ Column::make ('tahun_masuk_kuliah ' )->heading ('Masuk Kuliah ' ),
54+ Column::make ('tahun_lk1 ' )->heading ('Tahun LK1 ' ),
55+ Column::make ('tahun_lk2 ' )->heading ('Tahun LK2 ' ),
56+ Column::make ('tahun_lk3 ' )->heading ('Tahun LK3 ' ),
57+ Column::make ('tahun_lkk ' )->heading ('Tahun LKK ' ),
58+ Column::make ('komisariat.nama ' )->heading ('Komisariat ' ),
59+ Column::make ('prestasi ' )->heading ('Prestasi ' ),
60+ ])
61+ ]),
1762 ];
1863 }
1964}
0 commit comments