match_making/app/Http/Controllers/LandingPageController.php
2025-01-02 09:09:28 +07:00

145 lines
6.1 KiB
PHP

<?php
namespace App\Http\Controllers;
use App\Models\AkademisiDetails;
use App\Models\InvestorDetails;
use App\Models\KomunitasDetails;
use App\Models\PemerintahDetails;
use App\Models\PenawaranProject;
use App\Models\permohonanPelatihan;
use App\Models\permohonanPendanaan;
use App\Models\permohonanProject;
use App\Models\permohonanProyekInvestor;
use App\Models\permohonanRiset;
use App\Models\Project;
use App\Models\UmkmDetails;
use Illuminate\Http\Request;
class LandingPageController extends Controller
{
// public function index(Request $request)
// {
// // Query builder untuk proyek
// $query = permohonanProject::query();
// // Menambahkan filter jika ada parameter
// if ($request->has('judul_project') && $request->input('judul_project') != '') {
// $query->where('judul_project', 'like', '%' . $request->input('judul_project') . '%');
// }
// if ($request->has('bidang') && $request->input('bidang') != '') {
// $query->where('bidang_sub_sektor_ekonomi_kreatif', 'like', '%' . $request->input('bidang') . '%');
// }
// if ($request->has('tanggal_mulai') && $request->input('tanggal_mulai') != '') {
// $query->whereDate('tanggal_mulai', '>=', $request->input('tanggal_mulai'));
// }
// if ($request->has('tanggal_berakhir') && $request->input('tanggal_berakhir') != '') {
// $query->whereDate('tanggal_berakhir', '<=', $request->input('tanggal_berakhir'));
// }
// if ($request->has('kategori') && $request->input('kategori') != '') {
// $query->where('kategori', $request->input('kategori'));
// }
// if ($request->has('batas_terima_tawaran') && $request->input('batas_terima_tawaran') != '') {
// $query->whereDate('batas_terima_tawaran', '<=', $request->input('batas_terima_tawaran'));
// }
// // Mengambil proyek yang sudah difilter
// $projects = $query->get();
// // Mengembalikan tampilan dengan data proyek
// return view('landing page.index', ['projects' => $projects]);
// }
public function index()
{
// Menghitung jumlah setiap role
$jumlah_pemerintah = PemerintahDetails::count();
$jumlah_umkm = UmkmDetails::count();
$jumlah_komunitas = KomunitasDetails::count();
$jumlah_akademisi = AkademisiDetails::count();
$jumlah_investor = InvestorDetails::count();
// Menghitung jumlah penawaran proyek yang statusnya 'berjalan'
$jumlah_penawaran_project_aktif = PenawaranProject::where('status', 'Berjalan')->count();
// Menghitung jumlah penawaran proyek yang statusnya 'berjalan'
$jumlah_penawaran_project_coming_soon = PenawaranProject::where('status', 'Coming Soon')->count();
// Menghitung jumlah permohonan berdasarkan status
$jumlah_permohonan_project_aktif = [
'pelatihan' => PermohonanPelatihan::where('status_pelatihan', 'berjalan')->count(),
'pendanaan' => PermohonanPendanaan::where('status_pendanaan', 'berjalan')->count(),
'riset' => PermohonanRiset::where('status_riset', 'berjalan')->count(),
'project_investor' => PermohonanProyekInvestor::where('status_project', 'berjalan')->count(),
];
// Hitung total permohonan project
$total_permohonan_project_aktif = array_sum($jumlah_permohonan_project_aktif);
// Menghitung jumlah permohonan berdasarkan status
$jumlah_permohonan_project_coming_soon = [
'pelatihan' => PermohonanPelatihan::where('status_pelatihan', 'coming soon')->count(),
'pendanaan' => PermohonanPendanaan::where('status_pendanaan', 'coming soon')->count(),
'riset' => PermohonanRiset::where('status_riset', 'coming soon')->count(),
'project_investor' => PermohonanProyekInvestor::where('status_project', 'coming soon')->count(),
];
// Hitung total permohonan project
$total_permohonan_project_coming_soon = array_sum($jumlah_permohonan_project_coming_soon);
$PenawaranProjectPendanaan = PenawaranProject::with('pendanaan')->whereHas('pendanaan')->get();
$PenawaranProjectPelatihan = PenawaranProject::with('pelatihan')->whereHas('pelatihan')->get();
$PenawaranProjectRiset = PenawaranProject::with('riset')->whereHas('riset')->get();
$PermohonanProjectPelatihan = permohonanProject::with('pelatihan')->whereHas('pelatihan')->get();
$PermohonanProjectPendanaan = permohonanProject::with('pendanaan')->whereHas('pendanaan')->get();
$PermohonanProjectRiset = permohonanProject::with('riset')->whereHas('riset')->get();
// Menggabungkan kedua koleksi menggunakan union
$combinedProjectsPelatihan = $PenawaranProjectPelatihan->concat($PermohonanProjectPelatihan);
$combinedProjectsPendanaan = $PenawaranProjectPendanaan->concat($PermohonanProjectPendanaan);
$combinedProjectsRiset = $PenawaranProjectRiset->concat($PermohonanProjectRiset);
// Mengirim data ke view
return view('landing page.index', compact(
'jumlah_pemerintah',
'jumlah_umkm',
'jumlah_komunitas',
'jumlah_akademisi',
'jumlah_investor',
'jumlah_penawaran_project_aktif',
'jumlah_penawaran_project_coming_soon',
'total_permohonan_project_aktif',
'total_permohonan_project_coming_soon',
'PermohonanProjectPelatihan',
'PermohonanProjectPendanaan',
'PermohonanProjectRiset',
'combinedProjectsPelatihan',
'combinedProjectsPendanaan',
'combinedProjectsRiset'
));
}
public function show(string $id)
{
// Mencari proyek berdasarkan ID
$project = permohonanProject::find($id);
// Jika proyek ditemukan, tampilkan tampilan detail proyek
if ($project) {
return view('landing page.show', compact('project'));
} else {
return redirect()->route('landingpage.index')->with('error', 'Project not found');
}
}
}