input('tahun'); $list_tahun = DB::table('pemasukan') // atau 'pengeluaran' ->select(DB::raw('YEAR(tanggal) as tahun')) ->distinct() ->orderBy('tahun', 'desc') ->pluck('tahun'); $pemasukan = Pemasukan::when($tahun, function ($query) use ($tahun) { return $query->whereYear('tanggal', $tahun); })->get(); $pengeluaran = Pengeluaran::when($tahun, function ($query) use ($tahun) { return $query->whereYear('tanggal', $tahun); })->get(); // Gabungkan data pemasukan dan pengeluaran $gabungan = collect($pemasukan)->map(function($item) { $item->jenis = 'masuk'; return $item; })->merge( collect($pengeluaran)->map(function($item) { $item->jenis = 'keluar'; return $item; }) )->sortByDesc('tanggal'); return view('laporan.review', compact('pemasukan', 'pengeluaran', 'list_tahun', 'gabungan')); } public function semua(Request $request) { $tahun = $request->input('tahun'); $pemasukan = Pemasukan::query(); $pengeluaran = Pengeluaran::query(); if ($tahun) { $pemasukan->whereYear('tanggal', $tahun); $pengeluaran->whereYear('tanggal', $tahun); } $list_tahun = Pemasukan::selectRaw('YEAR(tanggal) as tahun')->distinct() ->union( Pengeluaran::selectRaw('YEAR(tanggal) as tahun')->distinct() ) ->orderBy('tahun', 'desc')->pluck('tahun')->unique(); return view('laporan.semua', [ 'pemasukan' => $pemasukan->get(), 'pengeluaran' => $pengeluaran->get(), 'list_tahun' => $list_tahun, 'filter' => $request->all() ]); } public function exportPdf(Request $request) { $tahun = $request->input('tahun'); $pemasukan = Pemasukan::when($tahun, function ($query) use ($tahun) { return $query->whereYear('tanggal', $tahun); })->get(); $pengeluaran = Pengeluaran::when($tahun, function ($query) use ($tahun) { return $query->whereYear('tanggal', $tahun); })->get(); // Gabungkan semua transaksi $gabungan = collect($pemasukan)->map(function($item) { $item->jenis = 'Masuk'; return $item; })->merge( collect($pengeluaran)->map(function($item) { $item->jenis = 'Keluar'; return $item; }) )->sortBy('tanggal'); // urutkan tanggal naik $pdf = PDF::loadView('laporan.pdf', compact('gabungan'))->setPaper('a4', 'landscape'); return $pdf->download('laporan_transaksi.pdf'); } }