/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $requirement = Requirements::find($id); $scenario = Scenarios::find($requirement->scenario_id); $project = Projects::find($scenario->project_id); $context = ContextScenarioUserAppInteraction::leftJoin('users', 'users.id', '=', 'context_scenario_user_app_interaction.user_id')->leftJoin('context_scenario_ideal_way AS context', 'context.id', '=', 'context_scenario_user_app_interaction.context_id')->leftJoin('context_ratings as CR', 'CR.context_id', '=', 'context_scenario_user_app_interaction.id')->leftJoin('context_ratings as CR1', function ($join) { $join->on('CR1.context_id', '=', 'context_scenario_user_app_interaction.id'); $join->where('CR1.user_id', '=', $this->user['id']); })->leftJoin('ways_of_interaction_voting as WOIV', function ($join) { $join->on('WOIV.context_id', '=', 'context_scenario_user_app_interaction.id'); $join->where('WOIV.user_id', '=', $this->user['id']); })->select('context_scenario_user_app_interaction.*', 'users.name AS user_name', 'context.context_name', 'context.full_name', 'CR1.rating', DB::raw('avg(CR.rating) AS avg_rating, count(CR.id) AS rating_count'), 'WOIV.accompanying', 'WOIV.intermittent', 'WOIV.interrupting')->where('requirement_id', $id)->groupBy('context_scenario_user_app_interaction.id')->orderBy('context_id', 'asc')->get(); $context_arr = $context->toArray(); if ($context_arr) { foreach ($context_arr as &$c) { $cid = $c['id']; $context_scene = ContextSceneRelation::select('context_scene_relation.user_id AS context_scene_user', 'context_scene_relation.scene', 'users.name AS user_name')->leftJoin('users', 'users.id', '=', 'context_scene_relation.user_id')->where('context_id', $cid)->get()->toArray(); $c['scenes'] = $context_scene; $c = (object) $c; } } $context_arr = (object) $context_arr; $breadcrumbs = array('Projects' => '/projects', 'All Requirements' => "/scenarios/{$requirement->scenario_id}"); return view('requirements.details', compact('requirement', 'context_arr', 'project', 'breadcrumbs')); }
/** * @param $id * @return \Illuminate\View\View */ public function show($id) { $project = Projects::leftJoin('users', 'users.id', '=', 'projects.project_owner')->select('projects.*', 'users.name as owner')->where('projects.id', $id)->first(); // $requirements = Requirements::leftJoin('users', 'users.id', '=', 'requirements.user_id') // ->select('requirements.*', 'users.name as created_by') // ->where('scenario_id', $id)->latest()->get(); $scenarios = Scenarios::leftJoin('users', 'users.id', '=', 'scenarios.user_id')->leftJoin('context_scenario_ideal_way', 'context_scenario_ideal_way.id', '=', 'scenarios.context_id')->select('scenarios.*', 'users.name as created_by', 'context_scenario_ideal_way.context_name', 'context_scenario_ideal_way.full_name')->where('project_id', $id)->latest()->get(); return view('projects.details', compact('project', 'requirements', 'scenarios')); }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $scenario = Scenarios::findOrFail($id); $project_id = $scenario->project_id; if ($scenario->user_id != $this->user['id']) { Session::flash('flash_message_warning', 'Sorry, you do not have enough privilege to make this change!'); return redirect("projects/{$project_id}"); } $scenario->delete(); Session::flash('flash_message', 'Scenario successfully deleted!'); return redirect("projects/{$project_id}"); }