performer(); $performerProID = $performer->pro->id; $keyNumbers = []; $totalPatients = Client::where('mcp_pro_id', $performer->pro->id)->count(); $keyNumbers['totalPatients'] = $totalPatients; $patientNotSeenYet = Client::where('mcp_pro_id', $performer->pro->id) ->where(function ($query) { $query->where('has_mcp_done_onboarding_visit', 'UNKNOWN') ->orWhere('has_mcp_done_onboarding_visit', 'NO'); })->count(); $keyNumbers['patientsNotSeenYet'] = $patientNotSeenYet; $pendingBillsToSign = Bill::where(function ($query) use ($performerProID) { $query->where('hcp_pro_id', $performerProID)->where('is_signed_by_hcp', false)->where('is_cancelled', false); }) ->orWhere(function ($query) use ($performerProID) { $query->where('cm_pro_id', $performerProID)->where('is_signed_by_cm', false)->where('is_cancelled', false);; })->orWhere(function ($query) use ($performerProID) { $query->where('rme_pro_id', $performerProID)->where('is_signed_by_rme', false)->where('is_cancelled', false);; })->orWhere(function ($query) use ($performerProID) { $query->where('rmm_pro_id', $performerProID)->where('is_signed_by_rmm', false)->where('is_cancelled', false);; })->count(); $keyNumbers['pendingBillsToSign'] = $pendingBillsToSign; $pendingNotesToSign = Note::where(function ($query) use ($performerProID) { $query->where('hcp_pro_id', $performerProID)->where('is_signed_by_hcp', false)->where('is_cancelled', false);; }) ->orWhere(function ($query) use ($performerProID) { $query->where('ally_pro_id', $performerProID)->where('is_signed_by_ally', false)->where('is_cancelled', false);; })->count(); $keyNumbers['pendingNotesToSign'] = $pendingNotesToSign; $reimbursement = []; $reimbursement["currentBalance"] = '$'.$performer->pro->balance; $reimbursement["nextPaymentDate"] = '--'; $lastPayment = ProTransaction::where('pro_id', $performerProID)->where('plus_or_minus', 'PLUS')->orderBy('created_at', 'DESC')->first(); if ($lastPayment) { $reimbursement["lastPayment"] = '$'.$lastPayment->amount; $reimbursement["lastPaymentDate"] = $lastPayment->created_at; } else { $reimbursement["lastPayment"] = '--'; $reimbursement["lastPaymentDate"] = '--'; } //if today is < 15th, next payment is 15th, else nextPayment is $today = strtotime(date('Y-m-d')); $todayDate = date('j', $today); $todayMonth = date('m', $today); $todayYear = date('Y', $today); if($todayDate < 15){ $nextPaymentDate = new DateTime(); $nextPaymentDate->setDate($todayYear, $todayMonth, 15); $reimbursement['nextPaymentDate'] = $nextPaymentDate->format('m/d/Y'); }else{ $nextPaymentDate = new \DateTime(); $lastDayOfMonth = date('t', $today); $nextPaymentDate->setDate($todayYear, $todayMonth, $lastDayOfMonth); $reimbursement['nextPaymentDate'] = $nextPaymentDate->format('m/d/Y'); } //expectedPay $expectedForHcp = DB::select(DB::raw("SELECT coalesce(SUM(hcp_expected_payment_amount),0) as expected_pay FROM bill WHERE hcp_pro_id = :performerProID AND has_hcp_been_paid = false AND is_cancelled = false"), ['performerProID'=>$performerProID])[0]->expected_pay; $expectedForCm = DB::select(DB::raw("SELECT coalesce(SUM(cm_expected_payment_amount),0) as expected_pay FROM bill WHERE cm_pro_id = :performerProID AND has_cm_been_paid = false AND is_cancelled = false"), ['performerProID'=>$performerProID])[0]->expected_pay; $expectedForRme = DB::select(DB::raw("SELECT coalesce(SUM(rme_expected_payment_amount),0) as expected_pay FROM bill WHERE rme_pro_id = :performerProID AND has_rme_been_paid = false AND is_cancelled = false"), ['performerProID'=>$performerProID])[0]->expected_pay; $expectedForRmm = DB::select(DB::raw("SELECT coalesce(SUM(rmm_expected_payment_amount),0) as expected_pay FROM bill WHERE rmm_pro_id = :performerProID AND has_rmm_been_paid = false AND is_cancelled = false"), ['performerProID'=>$performerProID])[0]->expected_pay; $expectedForNa = DB::select(DB::raw("SELECT coalesce(SUM(na_expected_payment_amount),0) as expected_pay FROM bill WHERE na_pro_id = :performerProID AND has_na_been_paid = false AND is_cancelled = false"), ['performerProID'=>$performerProID])[0]->expected_pay; $totalExpectedAmount = $expectedForHcp + $expectedForCm + $expectedForRme + $expectedForRmm + $expectedForNa; $reimbursement['nextPaymentAmount'] = '$'.$totalExpectedAmount; $clientsWithAppointments = Client::where("mcp_pro_id", $performerProID) ->whereNotNull('next_mcp_appointment')->get(); $appointments = []; foreach ($clientsWithAppointments as $client) { $appointment = [ 'client_uid' => $client->uid, 'title' => $client->name_first . ' ' . $client->name_last, 'start' => $client->next_mcp_appointment ]; $appointments[] = $appointment; } return view('app/dashboard', compact('keyNumbers', 'reimbursement', 'appointments')); } public function patients(Request $request) { $proID = $this->performer()->pro->id; $patients = Client::where(function ($q) use($proID) { $q->where('mcp_pro_id', $proID) ->orWhere('cm_pro_id', $proID) ->orWhere('rmm_pro_id', $proID) ->orWhere('rme_pro_id', $proID) ->orWhereRaw('id IN (SELECT client_id FROM client_pro_access WHERE is_active AND pro_id = ?)', [$proID]); }) ->orderBy('name_last', 'asc') ->orderBy('name_first', 'asc') ->get(); return view('app/patients', ['patients' => $patients]); } public function newPatient(Request $request) { return view('app/new-patient'); } public function mc(Request $request, $fragment = "") { $page = "/"; if ($fragment) { $page = '/' . $fragment; } return view('app/mc', compact('page')); } public function blank(Request $request) { return view('app/blank'); } }