Controller.php 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <?php
  2. namespace App\Http\Controllers;
  3. use App\Models\AppSession;
  4. use App\Models\Note;
  5. use App\Models\NoteTemplate;
  6. use App\Models\Pro;
  7. use App\Models\ProProAccess;
  8. use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
  9. use Illuminate\Foundation\Bus\DispatchesJobs;
  10. use Illuminate\Foundation\Validation\ValidatesRequests;
  11. use Illuminate\Http\Request;
  12. use Illuminate\Routing\Controller as BaseController;
  13. use Illuminate\Support\Facades\Cookie;
  14. class Controller extends BaseController
  15. {
  16. use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
  17. protected $performer = null;
  18. protected $pro = null;
  19. protected $pros = null;
  20. public function __construct()
  21. {
  22. $this->performer = get_current_session();
  23. if($this->performer && $this->performer->pro) {
  24. $this->pro = $this->performer->pro;
  25. view()->share('pro', $this->performer->pro);
  26. }
  27. view()->share('performer', $this->performer);
  28. $this->pros = [];
  29. /*$this->pros = Pro::all();
  30. if($this->pro && $this->pro->pro_type != 'ADMIN'){
  31. $accessiblePros = ProProAccess::where('owner_pro_id', $this->pro->id);
  32. $accessibleProIds = [];
  33. foreach($accessiblePros as $accessiblePro){
  34. $accessibleProIds[] = $accessiblePro->id;
  35. }
  36. $accessibleProIds[] = $this->pro->id;
  37. $this->pros = Pro::whereIn('id', $accessibleProIds)->get();
  38. }*/
  39. view()->share('pros',$this->pros);
  40. // view()->share('notes', Note::all());
  41. // $noteTemplates = NoteTemplate::all();
  42. // view()->share('noteTemplates', $noteTemplates);
  43. $initiatives = ['LHI', 'BHI'];
  44. view()->share('intiatives', $initiatives);
  45. $rmCodes = ['RMB','RM20', 'RM40','RM60'];
  46. view()->share('rmCodes', $rmCodes);
  47. }
  48. public function performer(){
  49. $sessionKey = Cookie::get('sessionKey');
  50. if ($sessionKey == null){
  51. throw new \Exception('No session key in cookie.');
  52. }
  53. $performer = AppSession::where('session_key', $sessionKey)->first();
  54. return $performer;
  55. }
  56. public function getMyClientIds(){
  57. if($this->pro == null){
  58. return [];
  59. }
  60. return $this->pro->getMyClientIds();
  61. }
  62. public function pass($data = null): array
  63. {
  64. return [
  65. 'success' => true,
  66. 'data' => $data,
  67. ];
  68. }
  69. public function fail($message): array
  70. {
  71. return [
  72. 'success' => false,
  73. 'message' => $message
  74. ];
  75. }
  76. public function filterMultiQuery(Request $request, $query, $columnName, $keyName, $valueName1, $valueName2, $onlyDate = true) {
  77. switch($request->input($keyName)) {
  78. case 'EXACTLY':
  79. if($request->input($valueName1)) {
  80. if($onlyDate){
  81. $query->whereDate($columnName, $request->input($valueName1));
  82. }else{
  83. $query->where($columnName, $request->input($valueName1));
  84. }
  85. }
  86. break;
  87. case 'LESS_THAN':
  88. if($request->input($valueName1)) {
  89. $query->where($columnName, '<', $request->input($valueName1));
  90. }
  91. break;
  92. case 'GREATER_THAN':
  93. if($request->input($valueName1)) {
  94. $query->where($columnName, '>', $request->input($valueName1));
  95. }
  96. break;
  97. case 'BETWEEN':
  98. if($request->input($valueName1) && $request->input($valueName2)) {
  99. $query
  100. ->where($columnName, '>=', $request->input($valueName1))
  101. ->where($columnName, '<=', $request->input($valueName2));
  102. }
  103. break;
  104. case 'NOT_BETWEEN':
  105. if($request->input($valueName1) && $request->input($valueName2)) {
  106. $query
  107. ->where(function ($q) use ($request, $columnName, $valueName1, $valueName2) {
  108. $q->where($columnName, '<', $request->input($valueName1))
  109. ->orWhere($columnName, '>', $request->input($valueName2));
  110. });
  111. }
  112. break;
  113. }
  114. }
  115. public function filterSimpleQuery(Request $request, $query, $columnName, $valueName) {
  116. if($request->input($valueName)) {
  117. $query->where($columnName, $request->input($valueName));
  118. }
  119. }
  120. }