where('periode_month', $periode_month) ->where('periode_year', $periode_year) ->with(['user.cabang']) ->get(); $usedBudget = 0; $users = UserHasCabang::where('cabang_id', $cabang_id)->get(); $userIds = $users->pluck('user_id')->toArray(); $forms = FormHelper::getFormsByUserIds($userIds, $periode_month, $periode_year) ->sortByDesc('tanggal') ->sortByDesc('created_at'); $usedBudget += $forms->sum('approved_total'); $availableBudget = $budget->sum('amount') - $usedBudget; return $availableBudget; } public static function getNominalByFormType($userIds, $type, $type_id, $month, $year) { if ($type == 'Up Country') { $form = FormUpCountry::select('approved_total') ->whereIn('user_id', $userIds) ->whereMonth('tanggal', '=', date('m', strtotime($month))) ->whereYear('tanggal', '=', $year) ->whereIn('status', ['Approved', 'Closed']) ->get(); } elseif ($type == 'Vehicle Running Cost') { $form = FormVehicleRunningCost::select('approved_total') ->whereIn('user_id', $userIds) ->whereMonth('tanggal', '=', date('m', strtotime($month))) ->whereYear('tanggal', '=', $year) ->whereIn('status', ['Approved', 'Closed']) ->get(); } elseif ($type == 'Entertainment') { $form = FormEntertaimentPresentation::select('approved_total') ->whereIn('user_id', $userIds) ->whereMonth('tanggal', '=', date('m', strtotime($month))) ->whereYear('tanggal', '=', $year) ->whereIn('status', ['Approved', 'Closed']) ->get(); } elseif ($type == 'Meeting / Seminar') { $form = FormMeetingSeminar::select('approved_total') ->whereIn('user_id', $userIds) ->whereMonth('created_at', '=', date('m', strtotime($month))) ->whereYear('created_at', '=', $year) ->whereIn('status', ['Approved', 'Closed']) ->get(); } else { $form = FormOthers::select('approved_total') ->whereIn('user_id', $userIds) ->whereMonth('tanggal', '=', date('m', strtotime($month))) ->whereYear('tanggal', '=', $year) ->where('kategori_id', $type_id) ->whereIn('status', ['Approved', 'Closed']) ->get(); } return $form->sum('approved_total'); } public static function getClosingDate($cabang_id) { $budget = BudgetControl::where('cabang_id', $cabang_id)->orderBy('created_at', 'desc')->first(); return $budget->closing_at; } }