Calendar.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace App\Http\Livewire;
  3. use Livewire\Component;
  4. class Calendar extends Component
  5. {
  6. public $records;
  7. public $course_types = [];
  8. public $course_durations = [];
  9. public $course_frequencies = [];
  10. public $course_levels = [];
  11. public $courts = [];
  12. public $instructors = [];
  13. public $name = null;
  14. public $from = null;
  15. public $to = null;
  16. public $course_type_id = null;
  17. public $course_duration_id = null;
  18. public $course_frequency_id = null;
  19. public $course_level_id = null;
  20. public function mount()
  21. {
  22. $this->course_types = \App\Models\CourseType::select('*')->where('enabled', true)->get();
  23. $this->course_durations = \App\Models\CourseDuration::select('*')->where('enabled', true)->get();
  24. $this->course_levels = \App\Models\CourseLevel::select('*')->where('enabled', true)->get();
  25. $this->course_frequencies = \App\Models\CourseFrequency::select('*')->where('enabled', true)->get();
  26. $this->courts = \App\Models\Court::select('*')->where('enabled', true)->get();
  27. $this->instructors = \App\Models\User::select('*')->where('level', 2)->where('enabled', true)->get();
  28. }
  29. public function render()
  30. {
  31. $this->records = [];
  32. if ($this->course_type_id != null && $this->course_type_id != "")
  33. {
  34. $course_ids = \App\Models\Course::where('course_type_id', $this->course_type_id)->pluck('id')->toArray();
  35. $calendars = \App\Models\Calendar::whereIn('course_id', $course_ids)->get();
  36. }
  37. else
  38. $calendars = \App\Models\Calendar::get();
  39. foreach($calendars as $c)
  40. {
  41. $data = array('id' => $c->id, 'title' => $c->course ? $c->course->name : $c->name . ($c->status == 99 ? ' (annullata)' : ''), 'start' => $c->from, 'end' => $c->to);
  42. if ($c->course && $c->course->color != '')
  43. $data['color'] = $c->course->color;
  44. $this->records[] = $data;
  45. }
  46. return view('livewire.calendar');
  47. }
  48. public function createCalendar()
  49. {
  50. $calendar = new \App\Models\Calendar();
  51. $calendar->course_id = null;
  52. $calendar->court_id = null;
  53. $calendar->name = $this->name;
  54. $calendar->course_type_id = $this->course_type_id != '' ? $this->course_type_id : null;
  55. $calendar->course_duration_id = $this->course_duration_id != '' ? $this->course_duration_id : null;
  56. $calendar->course_frequency_id = $this->course_frequency_id != '' ? $this->course_frequency_id : null;
  57. $calendar->course_level_id = $this->course_level_id != '' ? $this->course_level_id : null;
  58. $calendar->instructor_id = null;
  59. $calendar->from = $this->from;
  60. $calendar->to = $this->to;
  61. $calendar->note = '';
  62. $calendar->status = 0;
  63. $calendar->save();
  64. return redirect()->to('/presences?calendarId=' . $calendar->id);
  65. }
  66. }