74 lines
2.1 KiB
PHP
74 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Models\Petani;
|
|
use App\Models\Produk;
|
|
use App\Models\Transaksi;
|
|
|
|
class AdminController extends Controller
|
|
{
|
|
public function dashboard()
|
|
{
|
|
$totalPetani = Petani::where('status_akun', 'aktif')->count();
|
|
$petaniPending = Petani::where('status_akun', 'menunggu')->count();
|
|
$totalProduk = Produk::count();
|
|
$totalTransaksi = Transaksi::count();
|
|
|
|
$transaksiTerbaru = Transaksi::with(['pembeli', 'details'])->latest()->take(5)->get();
|
|
|
|
return view('admin.dashboard', compact(
|
|
'totalPetani',
|
|
'petaniPending',
|
|
'totalProduk',
|
|
'totalTransaksi',
|
|
'transaksiTerbaru'
|
|
));
|
|
}
|
|
|
|
public function monitoring()
|
|
{
|
|
$produks = Produk::with('petani')->latest()->paginate(10);
|
|
$transaksis = Transaksi::with(['pembeli'])->latest()->paginate(10);
|
|
|
|
return view('admin.monitoring', compact('produks', 'transaksis'));
|
|
}
|
|
|
|
public function verifikasiIndex()
|
|
{
|
|
// Ambil data petani yang statusnya 'menunggu'
|
|
$petanis = Petani::orderBy('created_at', 'desc')->get();
|
|
|
|
return view('admin.verifikasi.index', compact('petanis'));
|
|
}
|
|
|
|
// Tampilkan Detail Petani
|
|
public function verifikasiShow($id)
|
|
{
|
|
$petani = Petani::findOrFail($id);
|
|
return view('admin.verifikasi.show', compact('petani'));
|
|
}
|
|
|
|
// Proses Terima Pendaftaran (Approve)
|
|
public function verifikasiApprove($id)
|
|
{
|
|
$petani = Petani::findOrFail($id);
|
|
|
|
$petani->status_akun = 'aktif';
|
|
$petani->save();
|
|
|
|
return redirect('admin/verifikasi')->with('success', 'Pendaftaran Petani BERHASIL diterima.');
|
|
}
|
|
|
|
// Proses Tolak Pendaftaran (Reject)
|
|
public function verifikasiReject($id)
|
|
{
|
|
$petani = Petani::findOrFail($id);
|
|
|
|
$petani->status_akun = 'ditolak';
|
|
$petani->save();
|
|
|
|
return redirect('admin/verifikasi')->with('success', 'Pendaftaran Petani DITOLAK.');
|
|
}
|
|
} |