/**
  * Display a listing of the resource.
  *
  * @return Response
  */
 public function index(Request $request)
 {
     $reports = Report::orderBy('id', 'desc')->get();
     // remove data when viewing list of all reports
     foreach ($reports as $key => $report) {
         unset($reports[$key]->data);
     }
     return $reports;
 }
 public function paginate()
 {
     $report = Report::orderBy('created_at', 'desc')->paginate(4);
     $report_array = array();
     // will fetch every performance and results for the specific report
     foreach ($report as $key => $value) {
         $query = DB::table('reports')->join('performances', 'performances.report_id', '=', 'reports.id')->join('results', 'results.performance_id', '=', 'performances.id')->join('positions', 'positions.id', '=', 'performances.position_id')->join('projects', 'projects.id', '=', 'reports.project_id')->join('members', 'members.id', '=', 'performances.member_id')->select('members.*', 'performances.*', DB::raw('DATE_FORMAT(performances.date_start, "%b. %d, %Y") as date_start_formatted'), DB::raw('DATE_FORMAT(performances.date_end, "%b. %d, %Y") as date_end_formatted'), 'results.*', 'projects.*', 'projects.name as project', 'positions.name as position')->whereNull('reports.deleted_at')->whereNull('performances.deleted_at')->where('performances.report_id', $value->id)->where('results.report_id', $value->id)->groupBy('performances.id')->orderBy('positions.name')->orderBy('members.full_name')->get();
         foreach ($query as $queryKey => $queryValue) {
             $quality_target = DB::table('targets')->join('positions', 'positions.id', '=', 'targets.position_id')->join('members', 'members.experience', '=', 'targets.experience')->select('*')->where('targets.position_id', $queryValue->position_id)->where('targets.experience', $queryValue->experience)->where('targets.type', 'Quality')->where('targets.created_at', '<=', $this->date_end)->orderBy('targets.created_at', 'desc')->first();
             if (!$quality_target) {
                 $quality_target = DB::table('targets')->join('positions', 'positions.id', '=', 'targets.position_id')->join('members', 'members.experience', '=', 'targets.experience')->select('*')->where('targets.position_id', $queryValue->position_id)->where('targets.experience', $queryValue->experience)->where('targets.type', 'Quality')->where('targets.active', true)->first();
             }
             if ($queryValue->productivity < 100 && $queryValue->quality >= 100) {
                 $queryValue->quadrant = 'Quadrant 1';
             } else {
                 if ($queryValue->productivity >= 100 && $queryValue->quality >= 100) {
                     $queryValue->quadrant = 'Quadrant 2';
                 } else {
                     if ($queryValue->productivity >= 100 && $queryValue->quality < 100) {
                         $queryValue->quadrant = 'Quadrant 3';
                     } else {
                         $queryValue->quadrant = 'Quadrant 4';
                     }
                 }
             }
             // $queryValue->quota = (($queryValue->productivity >= 100) && ($queryValue->quality >= $quality_target->value)) ? 'Met' : 'Not met';
         }
         // push each results to custom array
         array_push($report_array, $query);
     }
     return response()->json($report_array);
 }