/**
  * 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}");
 }