|
|
@@ -2,6 +2,7 @@
|
|
|
|
|
|
namespace App\Http\Livewire;
|
|
|
|
|
|
+use Illuminate\Support\Carbon;
|
|
|
use Livewire\Component;
|
|
|
|
|
|
class AbsenceReport extends Component
|
|
|
@@ -9,6 +10,8 @@ class AbsenceReport extends Component
|
|
|
|
|
|
public $records;
|
|
|
|
|
|
+ public $year;
|
|
|
+
|
|
|
public function mount()
|
|
|
{
|
|
|
setlocale(LC_ALL, 'it_IT');
|
|
|
@@ -20,9 +23,16 @@ class AbsenceReport extends Component
|
|
|
|
|
|
$this->records = [];
|
|
|
|
|
|
- $to = date("Y-m-d 23:59:59");
|
|
|
-
|
|
|
- $calendars = \App\Models\Calendar::where('from', '<=', $to)->orderBy('from')->get();
|
|
|
+ // $to = date("Y-m-d 23:59:59");
|
|
|
+ // $calendars = \App\Models\Calendar::where('from', '<=', $to)->orderBy('from')->get();
|
|
|
+
|
|
|
+ $month = date("n");
|
|
|
+ $this->year = ($month >= 9) ? date("Y") : date("Y") - 1;
|
|
|
+
|
|
|
+ $start = date("Y-m-d H:i:s", mktime(0, 0, 0, 9, 1, $this->year));
|
|
|
+ $end = date("Y-m-d 23:59:59");
|
|
|
+
|
|
|
+ $calendars = \App\Models\Calendar::whereBetween('from', [$start, $end])->orderBy('from')->get();
|
|
|
|
|
|
foreach ($calendars as $calendar) {
|
|
|
|
|
|
@@ -48,27 +58,21 @@ class AbsenceReport extends Component
|
|
|
foreach ($members as $member) {
|
|
|
|
|
|
$presence = \App\Models\Presence::where('member_id', $member->member->id)->where('calendar_id', $calendar->id)->first();
|
|
|
-
|
|
|
- if (!in_array($member->member->id, $presences))
|
|
|
- {
|
|
|
- if (!in_array($member->member->id, $presences_annullate))
|
|
|
- {
|
|
|
- if (array_key_exists($member->member->id, $this->records))
|
|
|
- {
|
|
|
+
|
|
|
+ if (!in_array($member->member->id, $presences)) {
|
|
|
+ if (!in_array($member->member->id, $presences_annullate)) {
|
|
|
+ if (array_key_exists($member->member->id, $this->records)) {
|
|
|
$this->records[$member->member->id]['total'] += 1;
|
|
|
- $this->records[$member->member->id]['date'] .= ", " . date("d/m/Y", strtotime($calendar->from));
|
|
|
- }
|
|
|
- else
|
|
|
+ $this->records[$member->member->id]['date'] .= " - " . date("d/m/Y", strtotime($calendar->from));
|
|
|
+ } else
|
|
|
$this->records[$member->member->id] = array("last_name" => $member->member->last_name, "first_name" => $member->member->first_name, "course" => $calendar->name, "total" => 1, "date" => date("d/m/Y", strtotime($calendar->from)));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
array_multisort(array_column($this->records, 'total'), SORT_DESC, $this->records);
|
|
|
|
|
|
return view('livewire.absence_report');
|
|
|
}
|
|
|
-
|
|
|
}
|