finished_at)) { abort(404); } return view('maintenance.planned-detail', [ 'maintenance_history' => $maintenance_history, ]); } public function plannedDetailPut(Request $request, MaintenanceHistory $maintenance_history) { if (!empty($maintenance_history->finished_at)) { abort(404); } return view('maintenance.planned-detail-done', [ 'maintenance_history' => $maintenance_history, 'maintenance_task_status' => $request->input('maintenance_task_status'), 'maintenance_host_skipped' => $request->input('maintenance_host_skipped'), ]); } public function plannedDetailFinishPost(Request $request, MaintenanceHistory $maintenance_history) { if (!empty($maintenance_history->finished_at)) { abort(404); } foreach ($request->input('skippedHostsSummary') as $history_host_id => $summary) { $maintenance_history->historyHosts->find($history_host_id)->update([ 'summary' => $summary, ]); } if (!$request->has('skippedHostsTasksSummary')) { foreach ($maintenance_history->historyHosts as $history_host) { if (!isset($request->input('skippedHostsTasksSummary')[$history_host->id])) continue; foreach ($request->input('skippedHostsTasksSummary')[$history_host->id] as $history_task_id => $task_summary) { $history_host->find($history_task_id)->update([ 'summary' => $task_summary, ]); } } } $maintenance_history->finished_at = Carbon::now(); $maintenance_history->save(); return redirect()->route('maintenance.history.detail', $maintenance_history->id); } public function history(Request $request) { return view('maintenance.history'); } public function historyDetail(Request $request, MaintenanceHistory $maintenance_history) { dd($maintenance_history->historyHosts); } }