/**
  * Get the stats page
  *
  * @param Request $Request
  *
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
  */
 public function getIndex(Request $Request)
 {
     $requestData = $Request->all();
     $authUser = Auth::user();
     $data['quorumId'] = $authUser->quorum_id;
     $data['wardId'] = $authUser->ward_id;
     $year = $curYear = (int) date('Y');
     if (!empty($requestData['year'])) {
         $year = (int) $requestData['year'];
     }
     $data['firstYear'] = 2015;
     $data['nowYear'] = $curYear;
     $data['selectedYear'] = $year;
     $data['visitMonths'] = CompanionshipVisit::where('ward_id', '=', $authUser->ward_id)->select(DB::raw("*, COUNT(*) AS count, FIELD(visit_month,'Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec') AS month_order"))->where('quorum_id', '=', $authUser->quorum_id)->where('visit_year', '=', $data['selectedYear'])->where('visited', '=', 'yes')->groupBy('visit_month')->having('count', '>', 0)->orderBy("month_order")->get();
     $data['members'] = [];
     foreach ($data['visitMonths'] as $month) {
         $Families = CompanionshipVisit::where('visit_month', '=', $month['visit_month'])->where('ward_id', '=', $authUser->ward_id)->where('quorum_id', '=', $authUser->quorum_id)->where('visit_year', '=', $data['selectedYear'])->where('visited', '=', 'yes')->get();
         foreach ($Families as $Family) {
             try {
                 $data['members'][$month['visit_month']][] = Member::withTrashed()->findOrFail($Family->member_id);
             } catch (Exception $exception) {
                 continue;
             }
         }
         if (!empty($data['members'][$month['visit_month']])) {
             usort($data['members'][$month['visit_month']], function ($one, $two) {
                 //Compare by last name first followed by first name.
                 return strcmp($one->lastName . $one->firstName, $two->lastName . $two->firstName);
             });
         }
     }
     return view('stats', $data);
 }
 public function postDelete()
 {
     $CompanionshipVisit = CompanionshipVisit::where(Input::get())->first();
     $CompanionshipVisit->delete();
     if (Request::ajax()) {
         return Response::json(['success' => true, 'status' => 'Visit Removed']);
     }
     return Redirect::back()->with('status', 'Visit Removed');
 }
 public function getIndex()
 {
     $data = [];
     $authUser = Auth::user();
     $data['authId'] = $authUser->id;
     $data['wardId'] = $authUser->ward_id;
     $data['companionship'] = Companionship::where('ht_one_id', '=', $data['authId'])->orWhere('ht_two_id', '=', $data['authId'])->first();
     $data['allFamilies'] = [];
     if (!empty($data['companionship'])) {
         if ($data['companionship']->ht_one_id == $data['authId']) {
             $data['companion'] = Member::find($data['companionship']->ht_two_id);
         } else {
             $data['companion'] = Member::find($data['companionship']->ht_one_id);
         }
         $data['allFamilies'] = CompanionshipFamily::where('companionship_id', '=', $data['companionship']->id)->get();
     }
     if (!empty($data['companion'])) {
         $data['companionName'] = $data['companion']->first_name . ' ' . $data['companion']->last_name;
         $data['companionPhone'] = $data['companion']->phone;
     }
     $data['numFamilies'] = count($data['allFamilies']);
     $data['totalVisitCount'] = 0;
     if ($data['numFamilies'] > 0) {
         foreach ($data['allFamilies'] as $key => $family) {
             $count = 0;
             $familyData =& $data['myFamilies'][$key];
             $familyData['family'] = Member::find($family['member_id']);
             $familyData['visitMonth'] = [];
             $familyData['visitMonthYes'] = [];
             $familyData['visitMonthNo'] = [];
             $visits = CompanionshipVisit::where('member_id', '=', $family['member_id'])->where('visit_year', '=', date('Y'))->get();
             foreach ($visits as $visit) {
                 $familyData['visitMonth'][] = $visit->visitMonth;
                 if ($visit->visited === 'yes') {
                     $familyData['visitMonthYes'][] = $visit->visitMonth;
                     ++$count;
                 } else {
                     $familyData['visitMonthNo'][] = $visit->visitMonth;
                 }
             }
             $familyData['visitCount'] = $count;
             $data['totalVisitCount'] += $familyData['visitCount'];
             $familyData['comments'] = Comment::whereHas('companionship', function ($query) use($data) {
                 $query->where('ht_one_id', '=', $data['authId'])->orWhere('ht_two_id', '=', $data['authId']);
             })->where('family_id', '=', $family['member_id'])->get();
         }
     }
     $data['months'] = ['Jan' => 'January', 'Feb' => 'February', 'Mar' => 'March', 'Apr' => 'April', 'May' => 'May', 'Jun' => 'June', 'Jul' => 'July', 'Aug' => 'August', 'Sep' => 'September', 'Oct' => 'October', 'Nov' => 'November', 'Dec' => 'December'];
     $compMemberRow = CompanionshipFamily::where('member_id', '=', $data['authId'])->first();
     $data['myHomeTeachers'] = [];
     if ($compMemberRow) {
         $compRow = Companionship::where('id', '=', $compMemberRow->companionship_id)->first();
         $data['numHomeTeachers'] = 0;
         if (!empty($compRow->ht_one_id)) {
             $data['myHomeTeachers'][1] = Member::find($compRow->ht_one_id);
             ++$data['numHomeTeachers'];
         }
         if (!empty($compRow->ht_two_id)) {
             $data['myHomeTeachers'][2] = Member::find($compRow->ht_two_id);
             ++$data['numHomeTeachers'];
         }
     }
     $data['year'] = date('Y');
     return view('dashboard', $data);
 }