TIF_NGANJUK_E41220737/app/Http/Controllers/Petani/DashboardController.php

43 lines
1.6 KiB
PHP

<?php
namespace App\Http\Controllers\Petani;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
use App\Models\Produk;
use App\Models\DetailTransaksi;
class DashboardController extends Controller
{
public function index()
{
$petaniId = Auth::guard('petani')->id();
// 1. Hitung Total Produk Aktif
$totalProduk = Produk::where('petani_id', $petaniId)->count();
// 2. Hitung Pesanan Baru (Yang statusnya 'dibayar' / perlu diproses)
$pesananBaru = DetailTransaksi::whereHas('produk', function($q) use ($petaniId) {
$q->where('petani_id', $petaniId);
})->whereHas('transaksi', function($q) {
$q->where('status', 'dibayar');
})->count();
// 3. Hitung TOTAL SEMUA PEMESANAN (Valid)
// Menghitung semua transaksi masuk (Dibayar, Dikirim, Selesai) kecuali yang Batal
$totalPemesanan = DetailTransaksi::whereHas('produk', function($q) use ($petaniId) {
$q->where('petani_id', $petaniId);
})->whereHas('transaksi', function($q) {
$q->where('status', '!=', 'batal'); // Ambil semua kecuali yang batal
})->count();
// 4. Hitung Total Pendapatan (Hanya yang status 'selesai')
$totalPendapatan = DetailTransaksi::whereHas('produk', function($q) use ($petaniId) {
$q->where('petani_id', $petaniId);
})->whereHas('transaksi', function($q) {
$q->where('status', 'selesai');
})->sum('subtotal');
return view('petani.dashboard', compact('totalProduk', 'pesananBaru', 'totalPemesanan', 'totalPendapatan'));
}
}