43 lines
1.6 KiB
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'));
|
|
}
|
|
} |