HomeController.php 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\AppSession;
  4. use App\Models\Client;
  5. use App\Models\Bill;
  6. use App\Models\Note;
  7. use App\Models\ProTransaction;
  8. use Illuminate\Http\Request;
  9. use Illuminate\Support\Facades\DB;
  10. class HomeController extends Controller
  11. {
  12. public function dashboard(Request $request)
  13. {
  14. //patients where performer is the mcp
  15. $performer = $this->performer();
  16. $keyNumbers = [];
  17. $totalPatients = Client::where('mcp_pro_id', $performer->pro->id)->count();
  18. $keyNumbers['totalPatients'] = $totalPatients;
  19. $patientNotSeenYet = Client::where('mcp_pro_id', $performer->pro->id)
  20. ->where(function($query){
  21. $query->where('has_mcp_done_onboarding_visit', 'UNKNOWN')
  22. ->orWhere('has_mcp_done_onboarding_visit', 'NO');
  23. })->count();
  24. $keyNumbers['patientsNotSeenYet'] = $patientNotSeenYet;
  25. $performerProID = $performer->pro->id;
  26. $pendingBillsToSign = Bill::where(function($query) use ($performerProID){
  27. $query->where('hcp_pro_id', $performerProID)->where('is_signed_by_hcp', false);
  28. })
  29. ->orWhere(function($query) use ($performerProID){
  30. $query->where('cm_pro_id', $performerProID)->where('is_signed_by_cm', false);
  31. })->orWhere(function($query) use ($performerProID){
  32. $query->where('rme_pro_id', $performerProID)->where('is_signed_by_rme', false);
  33. })->orWhere(function($query) use ($performerProID){
  34. $query->where('rmm_pro_id', $performerProID)->where('is_signed_by_rmm', false);
  35. })->count();
  36. $keyNumbers['pendingBillsToSign'] = $pendingBillsToSign;
  37. $pendingNotesToSign = Note::where(function($query) use ($performerProID){
  38. $query->where('hcp_pro_id', $performerProID)->where('is_signed_by_hcp', false);
  39. })
  40. ->orWhere(function($query) use ($performerProID){
  41. $query->where('ally_pro_id', $performerProID)->where('is_signed_by_ally', false);
  42. })->count();
  43. $keyNumbers['pendingNotesToSign'] = $pendingNotesToSign;
  44. $reimbursement = [];
  45. $reimbursement["currentBalance"] = $performer->pro->balance;
  46. $reimbursement["nextPaymentDate"] = '--';
  47. $lastPayment = ProTransaction::where('pro_id', $performerProID)->where('plus_or_minus', 'PLUS')->orderBy('created_at', 'DESC')->first();
  48. if($lastPayment) {
  49. $reimbursement["lastPayment"] = $lastPayment->amount;
  50. $reimbursement["lastPaymentDate"] = $lastPayment->created_at;
  51. }else{
  52. $reimbursement["lastPayment"] = '--';
  53. $reimbursement["lastPaymentDate"] = '--';
  54. }
  55. return view('app/dashboard', compact('keyNumbers','reimbursement'));
  56. }
  57. public function patients(Request $request)
  58. {
  59. $patients = Client::orderBy('name_last', 'asc')->orderBy('name_first', 'asc')->get();
  60. return view('app/patients', ['patients' => $patients]);
  61. }
  62. public function newPatient(Request $request)
  63. {
  64. return view('app/new-patient');
  65. }
  66. public function mc(Request $request, $fragment = "") {
  67. $page = "/";
  68. if($fragment) {
  69. $page = '/' . $fragment;
  70. }
  71. return view('app/mc', compact('page'));
  72. }
  73. }