'Ikhtisar' ]; $year = $request->input('year') ? $request->input('year') : Carbon::now()->year; if(is_role(['3'])){ $mediaId = Auth::user()->company->media->id; $media = Media::with('cooperations')->findOrFail($mediaId); $user = User::with(['announcements'])->find(Auth::id()); // Data pengumuman $data['announcements'] = $user->announcements() ->where(function ($query) { $query->where('announcements_users.category', '=', 'general'); }) ->get(); // Data pengajuan kerjasama $data['cooperationRequests'] = $media->cooperations() ->where(function ($query) { $query->where('media_cooperations.status', '=', '0'); }) ->get(); // Data kalender Kerjasama $data['cooperationMedia'] = $media->cooperations->filter(function ($cooperation) use ($mediaId){ return $cooperation->proposals->where('status', 1)->where('media_id', $mediaId)->isNotEmpty(); }); // Data kalender media order $data['mediaOrders'] = $media->orders() ->where(function ($query) { $query->where('media_orders.status', '=', '1'); }) ->get(); }else if(is_role(['1'])){ // Statistik Isu $issues = IssueManagement::all(); $issueCounts = $issues->groupBy('issue')->map(function ($group) { return $group->count(); }); $data['crisisIssue'] = $issueCounts->get('krisis', 0); $data['negativeIssue'] = $issueCounts->get('negatif', 0); $data['neutralIssue'] = $issueCounts->get('netral', 0); $data['positiveIssue'] = $issueCounts->get('positif', 0); // Akhir Statistik Isu // Statistik Monitoring Media $mediaMonitorings = MediaMonitoring::all(); $mediaMonitoringCount = $mediaMonitorings->groupBy('channel')->map(function ($group) { return $group->count(); }); $data['facebookMediaMonitoring'] = $mediaMonitoringCount->get('facebook', 0); $data['twitterMediaMonitoring'] = $mediaMonitoringCount->get('twitter', 0); $data['websiteMediaMonitoring'] = $mediaMonitoringCount->get('website', 0); $data['youtubeMediaMonitoring'] = $mediaMonitoringCount->get('youtube', 0); $data['instagramMediaMonitoring'] = $mediaMonitoringCount->get('instagram', 0); $data['tiktokMediaMonitoring'] = $mediaMonitoringCount->get('tiktok', 0); $data['cetakMediaMonitoring'] = $mediaMonitoringCount->get('cetak', 0); // Akhir Statistik Monitoring Media // Statistik Media Order $mediaOrder = MediaOrder::select('status', DB::raw('count(*) as total')) ->groupBy('status') ->pluck('total', 'status'); $data['waitingMediaOrder'] = $mediaOrder[0] ?? 0; // Status 0 = menunggu $data['acceptedMediaOrder'] = $mediaOrder[1] ?? 0; // Status 1 = diterima $data['rejectedMediaOrder'] = $mediaOrder[2] ?? 0; // Status 2 = ditolak // Akhir Statistik Media Order // Statistik Rekap Konten $contentRecap = ContentRecap::all(); $contentRecapCount = $contentRecap->groupBy('channel')->map(function ($group) { return $group->count(); }); $data['facebookContentRecap'] = $contentRecapCount->get('facebook', 0); $data['twitterContentRecap'] = $contentRecapCount->get('twitter', 0); $data['websiteContentRecap'] = $contentRecapCount->get('website', 0); $data['youtubeContentRecap'] = $contentRecapCount->get('youtube', 0); $data['instagramContentRecap'] = $contentRecapCount->get('instagram', 0); $data['tiktokContentRecap'] = $contentRecapCount->get('tiktok', 0); $data['cetakContentRecap'] = $contentRecapCount->get('cetak', 0); // Akhir Statistik Rekap Konten // Inisialisasi array 12 bulan (0-11) $mediaMonitoringMonthly = array_fill(0, 12, 0); $issueManagementMonthly = array_fill(0, 12, 0); // Media Monitoring $mediaMonitorings = DB::table('media_monitorings') ->whereYear('created_at', $year) ->selectRaw('MONTH(created_at) as month, COUNT(*) as total') ->groupBy('month') ->pluck('total', 'month'); foreach ($mediaMonitorings as $month => $total) { $mediaMonitoringMonthly[$month - 1] = $total; } // Issue Management $issueManagements = DB::table('issue_managements') ->whereYear('created_at', $year) ->selectRaw('MONTH(created_at) as month, COUNT(*) as total') ->groupBy('month') ->pluck('total', 'month'); foreach ($issueManagements as $month => $total) { $issueManagementMonthly[$month - 1] = $total; } $data['mediaMonitoringMonthly'] = $mediaMonitoringMonthly; $data['issueManagementMonthly'] = $issueManagementMonthly; // Data kalender pengajuan kerjasama $data['cooperationRequests'] = Cooperation::all(); // Data kalender media order $data['mediaOrders'] = Order::with(['cooperation'])->get(); }else if(is_role(['5'])){ // Statistik Penyelesaian Kerjasama $cooperationCompletion = CooperationCompletion::all(); $cooperationCompletionCounts = $cooperationCompletion->groupBy('status')->map(function ($group) { return $group->count(); }); $data['cooperationCompletionWaiting'] = $cooperationCompletionCounts->get('0', 0); $data['cooperationCompletionAccepted'] = $cooperationCompletionCounts->get('1', 0); $data['cooperationCompletionRejected'] = $cooperationCompletionCounts->get('2', 0); } return view('dashboard.overview.index', $data); } }