input('bulan', date('m')); $tahun = $request->input('tahun', date('Y')); // Ambil data penjualan berdasarkan bulan & tahun $cashier = DB::table('cashiers') ->join('products', 'cashiers.produk_id', '=', 'products.id') ->select( 'cashiers.id as order_id', 'products.nama_produk as Nama_Produk', 'cashiers.jumlah_item as Jumlah_Item', 'cashiers.total as Total_Bayar', 'cashiers.tipe_bayar as Metode_Bayar', 'cashiers.createdAt as Waktu_Tanggal' ) ->whereMonth('cashiers.createdAt', $bulan) ->whereYear('cashiers.createdAt', $tahun) ->orderBy('cashiers.id', 'desc') ->get(); // Hitung total penjualan $totalPenjualan = $cashier->sum('Total_Bayar'); // Hitung jumlah hari unik dalam bulan tersebut $jumlahHariUnik = $cashier ->map(fn($item) => date('Y-m-d', strtotime($item->Waktu_Tanggal))) ->unique() ->count(); // Hitung rata-rata per hari $rataRataPerHari = $jumlahHariUnik > 0 ? ($totalPenjualan / $jumlahHariUnik) : 0; // Hitung jumlah produk terjual $jumlahProdukTerjual = $cashier->sum('Jumlah_Item'); // Hitung rata-rata produk terjual per hari $rataRataProdukPerHari = $jumlahHariUnik > 0 ? ($jumlahProdukTerjual / $jumlahHariUnik) : 0; // Hitung metode bayar yang paling sering $metodeBayarCount = $cashier->groupBy('Metode_Bayar') ->map(fn($group) => $group->count()); // Mendapatkan metode bayar yang paling sering digunakan $metodeBayarNama = $metodeBayarCount->keys()->first(); $metodeBayarJumlah = $metodeBayarCount->max(); return view('income', compact( 'cashier', 'bulan', 'tahun', 'totalPenjualan', 'rataRataPerHari', 'jumlahProdukTerjual', 'rataRataProdukPerHari', 'metodeBayarNama', 'metodeBayarJumlah' )); } // public function index() // { // // Mengambil data dari database menggunakan query builder // $cashier = DB::table('cashiers') // ->join('products', 'cashiers.produk_id', '=', 'products.id') // ->select( // 'cashiers.id as No', // 'products.nama_produk as Nama_Produk', // 'cashiers.jumlah_item as Jumlah_Item', // 'cashiers.total as Total_Bayar', // 'cashiers.tipe_bayar as Metode_Bayar', // 'cashiers.createdAt as Waktu_Tanggal' // ) // ->get(); // // Mengirim data ke Blade view // return view('income', compact('cashier')); // } public function exportExcel(Request $request) { $bulan = $request->input('bulan'); $tahun = $request->input('tahun'); if (!$bulan || !$tahun) { return redirect()->back()->with('error', 'Silakan pilih bulan dan tahun terlebih dahulu.'); } return Excel::download(new IncomeExport($bulan, $tahun), 'laporan_penjualan_'.$bulan.'_'.$tahun.'.xlsx'); } public function exportPDF(Request $request) { $bulan = $request->input('bulan'); $tahun = $request->input('tahun'); if (!$bulan || !$tahun) { return redirect()->back()->with('error', 'Silakan pilih bulan dan tahun terlebih dahulu.'); } $data = DB::table('cashiers') ->join('products', 'cashiers.produk_id', '=', 'products.id') ->select( 'products.nama_produk as Nama_Produk', 'cashiers.jumlah_item as Jumlah_Item', 'cashiers.total as Total_Bayar', 'cashiers.tipe_bayar as Metode_Bayar', 'cashiers.createdAt as Waktu_Tanggal' ) ->whereMonth('cashiers.createdAt', $bulan) ->whereYear('cashiers.createdAt', $tahun) ->orderBy('cashiers.createdAt', 'desc') ->get(); $total = $data->sum('Total_Bayar'); $pdf = Pdf::loadView('exports.income_pdf', compact('data', 'bulan', 'tahun', 'total')); return $pdf->stream('laporan_penjualan_'.$bulan.'_'.$tahun.'.pdf'); } }