get(); // Hitung total uang masuk (termasuk uang_masuk2-5) $totalUangMasuk = LaporanModel::selectRaw('SUM(uang_masuk) + COALESCE(SUM(uang_masuk2), 0) + COALESCE(SUM(uang_masuk3), 0) + COALESCE(SUM(uang_masuk4), 0) + COALESCE(SUM(uang_masuk5), 0) as total') ->value('total') ?? 0; // Hitung total uang keluar (termasuk uang_keluar2-5) $totalUangKeluar = LaporanModel::selectRaw('SUM(uang_keluar) + COALESCE(SUM(uang_keluar2), 0) + COALESCE(SUM(uang_keluar3), 0) + COALESCE(SUM(uang_keluar4), 0) + COALESCE(SUM(uang_keluar5), 0) as total') ->value('total') ?? 0; // Tidak ada lagi kolom gaji, jadi kita menghilangkannya $totalKredit = $totalUangKeluar; // Hanya menggunakan total uang keluar $saldo = $totalUangMasuk - $totalKredit; return view('Laporan', compact('laporan', 'totalUangMasuk', 'totalUangKeluar', 'totalKredit', 'saldo')); } public function exportExcel() { try { // Buat class export inline $export = new class implements FromCollection, WithHeadings, WithMapping { public function collection() { return LaporanModel::orderBy('Tanggal', 'desc')->get(); } public function headings(): array { return [ 'ID', 'Tanggal', 'Kode', 'Kategori', 'Keterangan', 'Uang Masuk', 'Uang Keluar' ]; } public function map($laporan): array { // Hitung total uang masuk untuk baris ini $totalUangMasuk = $laporan->uang_masuk + ($laporan->uang_masuk2 ?? 0) + ($laporan->uang_masuk3 ?? 0) + ($laporan->uang_masuk4 ?? 0) + ($laporan->uang_masuk5 ?? 0); // Hitung total uang keluar untuk baris ini $totalUangKeluar = $laporan->uang_keluar + ($laporan->uang_keluar2 ?? 0) + ($laporan->uang_keluar3 ?? 0) + ($laporan->uang_keluar4 ?? 0) + ($laporan->uang_keluar5 ?? 0); return [ $laporan->id, $laporan->Tanggal, $laporan->kode, $laporan->kategori, $laporan->keterangan, $totalUangMasuk, $totalUangKeluar ]; } }; return Excel::download($export, 'laporan-keuangan-'.date('Y-m-d').'.xlsx'); } catch (\Exception $e) { return redirect()->back()->with('error', 'Gagal mengekspor Excel: ' . $e->getMessage()); } } public function exportPDF() { try { $laporan = LaporanModel::orderBy('Tanggal', 'desc')->get(); // Hitung total uang masuk $totalUangMasuk = LaporanModel::selectRaw('SUM(uang_masuk) + COALESCE(SUM(uang_masuk2), 0) + COALESCE(SUM(uang_masuk3), 0) + COALESCE(SUM(uang_masuk4), 0) + COALESCE(SUM(uang_masuk5), 0) as total') ->value('total') ?? 0; // Hitung total uang keluar $totalKredit = LaporanModel::selectRaw('SUM(uang_keluar) + COALESCE(SUM(uang_keluar2), 0) + COALESCE(SUM(uang_keluar3), 0) + COALESCE(SUM(uang_keluar4), 0) + COALESCE(SUM(uang_keluar5), 0) as total') ->value('total') ?? 0; $saldo = $totalUangMasuk - $totalKredit; // Generate PDF $html = '
Tanggal: '.date('d-m-Y').'
No | Tanggal | Kode | Kategori | Keterangan | Uang Masuk | Uang Keluar |
---|---|---|---|---|---|---|
'.($index + 1).' | '.$item->Tanggal.' | '.$item->kode.' | '.$item->kategori.' | '.$item->keterangan.' | Rp '.number_format($rowUangMasuk, 0, ',', '.').' | Rp '.number_format($rowUangKeluar, 0, ',', '.').' |
Total Uang Masuk | Rp '.number_format($totalUangMasuk, 0, ',', '.').' |
Total Uang Keluar | Rp '.number_format($totalKredit, 0, ',', '.').' |
Saldo | Rp '.number_format($saldo, 0, ',', '.').' |