diff --git a/app/Filament/Pages/GuardPatrolEntryDashboard.php b/app/Filament/Pages/GuardPatrolEntryDashboard.php
new file mode 100644
index 0000000..07dd172
--- /dev/null
+++ b/app/Filament/Pages/GuardPatrolEntryDashboard.php
@@ -0,0 +1,108 @@
+forget(['select_guard_plant', 'select_guard_date']);
+ $this->filtersForm->fill([
+ 'plant' => null,
+ 'date' => null,
+ ]);
+ }
+
+ public function filtersForm(Form $form): Form
+ {
+ return $form
+ ->statePath('filters') // Explicitly set where to store form data
+ ->schema([
+ Select::make('plant')
+ ->options(Plant::pluck('name', 'id'))
+ ->label('Select Plant')
+ ->reactive()
+ ->required()
+ ->afterStateUpdated(function ($state, callable $set, callable $get){
+ // $this->dispatch('invoiceChart');
+ if(!$state)
+ {
+ $set('date', now()->format('Y-m-d')); // H:i:s
+ session(['select_guard_plant' => $state]);
+ session(['select_guard_date' => $get('date')]);
+ } else {
+ if(!$get('date'))
+ {
+ $set('date', now()->format('Y-m-d'));
+ session(['select_guard_plant' => $state]);
+ session(['select_guard_date' => $get('date')]);
+ } else {
+ session(['select_guard_plant' => $state]);
+ session(['select_guard_date' => $get('date')]);
+ }
+ }
+ $this->dispatch('loadGuardData', $state, $get('date')); //->format('Y-m-d')
+ }),
+ DatePicker::make('date')
+ ->label('Select Date')
+ ->placeholder('Select Date')
+ ->reactive()
+ ->required()
+ ->beforeOrEqual(now())
+ ->default(now()->format('Y-m-d'))
+ ->afterStateUpdated(function ($state, callable $set, callable $get){
+ if(!$get('plant'))
+ {
+ $set('date', now()->format('Y-m-d'));
+ session(['select_guard_plant' => $get('plant')]);
+ session(['select_guard_date' => $state]);
+ } else {
+ if(!$get('date'))
+ {
+ $set('date', now()->format('Y-m-d'));
+ session(['select_guard_plant' => $get('plant')]);
+ session(['select_guard_date' => $state]);
+ } else {
+ $records = GuardPatrolEntry::whereDate('patrol_time', $state)->where('plant_id', $get('plant'))->orderBy('patrol_time', 'asc')->first(); //desc
+ //dd($get('plant'), $state, $records->patrol_time);//->toTimeString()
+ session(['select_guard_plant' => $get('plant')]);
+ session(['select_guard_date' => $state]);
+ }
+ }
+ // $this->dispatch('invoiceChart');
+ $this->dispatch('loadGuardData', $get('plant'), $state);//->format('Y-m-d')
+ })
+ ])
+ ->columns(2);
+ }
+
+
+ public static function getNavigationLabel(): string
+ {
+ return 'Guard Patrol Entry';
+ }
+
+ public static function canAccess(): bool
+ {
+ return Auth::check() && Auth::user()->can('view guard patrol entry dashboard');
+ }
+}
diff --git a/app/Livewire/GuardPatrolEntryDataTable.php b/app/Livewire/GuardPatrolEntryDataTable.php
new file mode 100644
index 0000000..696bc65
--- /dev/null
+++ b/app/Livewire/GuardPatrolEntryDataTable.php
@@ -0,0 +1,354 @@
+ 'loadGuardPatrolData',
+ ];
+
+ public function loadGuardPatrolData($plantId, $date)
+ {
+ // $this->plantId = $plantId;
+ // $this->date = $date;
+
+ $this->records = [];
+ $this->newNameFound = true;
+ $this->guardName = null;
+ // $this->checkPointName = null;
+ $this->startTime = null;
+ $this->endTime = null;
+ $this->start = null;
+ $this->finish = null;
+ $this->begin = null;
+ $this->end = null;
+ $this->labTime = null;
+ $this->minDiff = 0;
+ $this->seqNo = 0;
+ $this->isSequenced = true;
+ $this->sequence1 = null;
+ $this->sequence2 = null;
+ $this->sequence3 = null;
+ $this->sequence4 = null;
+ $this->sequence5 = null;
+ $this->sequence6 = null;
+ $this->sequence7 = null;
+ $this->sequence8 = null;
+ $this->sequence9 = null;
+
+ if(!$plantId || !$date)
+ {
+ $this->records = [];
+ return;
+ }
+
+ $this->startSeqCheckPoint1 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 1)->where('plant_id', $plantId)->first();
+ $this->startSeqCheckPoint2 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 2)->where('plant_id', $plantId)->first();
+ $this->startSeqCheckPoint3 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 3)->where('plant_id', $plantId)->first();
+ $this->startSeqCheckPoint4 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 4)->where('plant_id', $plantId)->first();
+ $this->startSeqCheckPoint5 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 5)->where('plant_id', $plantId)->first();
+ $this->startSeqCheckPoint6 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 6)->where('plant_id', $plantId)->first();
+ $this->startSeqCheckPoint7 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 7)->where('plant_id', $plantId)->first();
+ $this->startSeqCheckPoint8 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 8)->where('plant_id', $plantId)->first();
+ $this->startSeqCheckPoint9 = CheckPointTime::with('checkPointNames1')->with('checkPointNames2')->where('sequence_number', 9)->where('plant_id', $plantId)->first();
+
+ $records = GuardPatrolEntry::with('guardNames')->with('checkPointNames')->whereDate('patrol_time', $date)->where('plant_id', $plantId)->orderBy('patrol_time', 'asc')->get(); //desc Carbon::parse($record->patrol_time)->toTimeString()
+ foreach ($records as $record) {
+ $guardName = $record->guardNames ? $record->guardNames->name : null;
+ $checkPointName = $record->checkPointNames ? $record->checkPointNames->name : null;
+ if ($this->guardName != $guardName || $this->newNameFound) {//if ($this->newNameFound) {
+ if($this->guardName)
+ {
+ $this->records[] = [
+ 'guard_name' => $this->guardName,
+ // 'check_point_name' => $record->checkPointNames ? $record->checkPointNames->name : "",
+ 'start_time' => $this->startTime,
+ 'end_time' => $this->endTime,
+ 'lap_time' => $this->labTime,
+ 'Sequence_1' => $this->sequence1,
+ 'Sequence_2' => $this->sequence2,
+ 'Sequence_3' => $this->sequence3,
+ 'Sequence_4' => $this->sequence4,
+ 'Sequence_5' => $this->sequence5,
+ 'Sequence_6' => $this->sequence6,
+ 'Sequence_7' => $this->sequence7,
+ 'Sequence_8' => $this->sequence8,
+ 'Sequence_9' => $this->sequence9
+ //'created_at' => $record->created_at,
+ ];
+ }
+
+ $this->guardName = $guardName;
+ $this->startTime = Carbon::parse($record->patrol_time)->toTimeString(); //"2025-06-01 00:07:12"
+ $this->start = Carbon::parse($record->patrol_time);
+ $this->endTime = Carbon::parse($record->patrol_time)->toTimeString(); //"2025-06-01 00:07:12"
+ $this->finish = Carbon::parse($record->patrol_time);
+ $this->begin = Carbon::parse($record->patrol_time);
+ $this->end = Carbon::parse($record->patrol_time);
+ $this->labTime = (int)$this->start->diffInMinutes($this->finish);
+ $this->minDiff = (int)$this->begin->diffInMinutes($this->end);
+ $this->seqNo = 0;
+ $this->newNameFound = false;
+ $this->isSequenced = true;
+ }
+ else if ($this->guardName == $guardName && $this->start && $this->begin)
+ {
+ $this->endTime = Carbon::parse($record->patrol_time)->toTimeString(); //"2025-06-01 00:07:12"
+ $this->finish = Carbon::parse($record->patrol_time);
+ $this->end = Carbon::parse($record->patrol_time);
+ $this->labTime = (int)$this->start->diffInMinutes($this->finish);
+ $this->minDiff = (int)$this->begin->diffInMinutes($this->end);
+ $this->begin = Carbon::parse($record->patrol_time);
+ // $this->seqNo = 0;
+ }
+
+ $this->seqNo++;
+
+ if ($this->seqNo == 1) {
+ if ($checkPointName == $this->startSeqCheckPoint1->checkPointNames1->name) {//"STP BACKSIDE"
+ $this->isSequenced = true;
+ $this->sequence1 = "X";
+ $this->sequence2 = "X";
+ $this->sequence3 = "X";
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence1 = "X";
+ $this->sequence2 = "X";
+ $this->sequence3 = "X";
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else if ($this->seqNo == 2) {
+ if ($checkPointName == $this->startSeqCheckPoint2->checkPointNames1->name) {//"CANTEEN"
+ if ($this->isSequenced) {
+ $this->sequence1 = $this->minDiff;
+ $this->sequence2 = "X";
+ $this->sequence3 = "X";
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence1 = "X";
+ $this->sequence2 = "X";
+ $this->sequence3 = "X";
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else if ($this->seqNo == 3) {
+ if ($checkPointName == $this->startSeqCheckPoint3->checkPointNames1->name) {//"D BLOCK BACK GATE"
+ if ($this->isSequenced) {
+ $this->sequence2 = $this->minDiff;
+ $this->sequence3 = "X";
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence2 = "X";
+ $this->sequence3 = "X";
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else if ($this->seqNo == 4) {
+ if ($checkPointName == $this->startSeqCheckPoint4->checkPointNames1->name) {//"C BLOCK PACKING END"
+ if ($this->isSequenced) {
+ $this->sequence3 = $this->minDiff;
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence3 = "X";
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else if ($this->seqNo == 5) {
+ if ($checkPointName == $this->startSeqCheckPoint5->checkPointNames1->name) {//"EXPORT WINDING FRONT"
+ if ($this->isSequenced) {
+ $this->sequence4 = $this->minDiff;
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence4 = "X";
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ elseif ($this->seqNo == 6) {
+ if ($checkPointName == $this->startSeqCheckPoint6->checkPointNames1->name) {//"DOMESTIC WINDING FRONT"
+ if ($this->isSequenced) {
+ $this->sequence5 = $this->minDiff;
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence5 = "X";
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ elseif ($this->seqNo == 7) {
+ if ($checkPointName == $this->startSeqCheckPoint7->checkPointNames1->name) {//"POWER HOUSE FRONT"
+ if ($this->isSequenced) {
+ $this->sequence6 = $this->minDiff;
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence6 = "X";
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ elseif ($this->seqNo == 8) {
+ if ($checkPointName == $this->startSeqCheckPoint8->checkPointNames1->name) {//"B BLOCK BUFFING FRONT"
+ if ($this->isSequenced) {
+ $this->sequence7 = $this->minDiff;
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence7 = "X";
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ elseif ($this->seqNo == 9) {
+ if ($checkPointName == $this->startSeqCheckPoint9->checkPointNames1->name) {//"D BLOCK DESPATCH FRONT"
+ if ($this->isSequenced) {
+ $this->sequence8 = $this->minDiff;
+ $this->sequence9 = "X";
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence8 = "X";
+ $this->sequence9 = "X";
+ }
+ }
+ elseif ($this->seqNo == 10) {
+ if ($checkPointName == $this->startSeqCheckPoint9->checkPointNames2->name) {//"D 72 END"
+ if ($this->isSequenced) {
+ $this->sequence9 = $this->minDiff;
+ }
+ }
+ else {
+ $this->isSequenced = false;
+ $this->sequence9 = "X";
+ }
+ $this->newNameFound = true;
+ }
+ }
+ }
+
+ public function render()
+ {
+ return view('livewire.guard-patrol-entry-data-table');
+ }
+}
diff --git a/app/Policies/CheckPointNamePolicy.php b/app/Policies/CheckPointNamePolicy.php
new file mode 100644
index 0000000..e301485
--- /dev/null
+++ b/app/Policies/CheckPointNamePolicy.php
@@ -0,0 +1,106 @@
+checkPermissionTo('view-any CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can view the model.
+ */
+ public function view(User $user, CheckPointName $checkpointname): bool
+ {
+ return $user->checkPermissionTo('view CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can create models.
+ */
+ public function create(User $user): bool
+ {
+ return $user->checkPermissionTo('create CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ */
+ public function update(User $user, CheckPointName $checkpointname): bool
+ {
+ return $user->checkPermissionTo('update CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ */
+ public function delete(User $user, CheckPointName $checkpointname): bool
+ {
+ return $user->checkPermissionTo('delete CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can delete any models.
+ */
+ public function deleteAny(User $user): bool
+ {
+ return $user->checkPermissionTo('delete-any CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can restore the model.
+ */
+ public function restore(User $user, CheckPointName $checkpointname): bool
+ {
+ return $user->checkPermissionTo('restore CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can restore any models.
+ */
+ public function restoreAny(User $user): bool
+ {
+ return $user->checkPermissionTo('restore-any CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can replicate the model.
+ */
+ public function replicate(User $user, CheckPointName $checkpointname): bool
+ {
+ return $user->checkPermissionTo('replicate CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can reorder the models.
+ */
+ public function reorder(User $user): bool
+ {
+ return $user->checkPermissionTo('reorder CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can permanently delete the model.
+ */
+ public function forceDelete(User $user, CheckPointName $checkpointname): bool
+ {
+ return $user->checkPermissionTo('force-delete CheckPointName');
+ }
+
+ /**
+ * Determine whether the user can permanently delete any models.
+ */
+ public function forceDeleteAny(User $user): bool
+ {
+ return $user->checkPermissionTo('force-delete-any CheckPointName');
+ }
+}
diff --git a/app/Policies/CheckPointTimePolicy.php b/app/Policies/CheckPointTimePolicy.php
new file mode 100644
index 0000000..517f583
--- /dev/null
+++ b/app/Policies/CheckPointTimePolicy.php
@@ -0,0 +1,106 @@
+checkPermissionTo('view-any CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can view the model.
+ */
+ public function view(User $user, CheckPointTime $checkpointtime): bool
+ {
+ return $user->checkPermissionTo('view CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can create models.
+ */
+ public function create(User $user): bool
+ {
+ return $user->checkPermissionTo('create CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ */
+ public function update(User $user, CheckPointTime $checkpointtime): bool
+ {
+ return $user->checkPermissionTo('update CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ */
+ public function delete(User $user, CheckPointTime $checkpointtime): bool
+ {
+ return $user->checkPermissionTo('delete CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can delete any models.
+ */
+ public function deleteAny(User $user): bool
+ {
+ return $user->checkPermissionTo('delete-any CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can restore the model.
+ */
+ public function restore(User $user, CheckPointTime $checkpointtime): bool
+ {
+ return $user->checkPermissionTo('restore CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can restore any models.
+ */
+ public function restoreAny(User $user): bool
+ {
+ return $user->checkPermissionTo('restore-any CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can replicate the model.
+ */
+ public function replicate(User $user, CheckPointTime $checkpointtime): bool
+ {
+ return $user->checkPermissionTo('replicate CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can reorder the models.
+ */
+ public function reorder(User $user): bool
+ {
+ return $user->checkPermissionTo('reorder CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can permanently delete the model.
+ */
+ public function forceDelete(User $user, CheckPointTime $checkpointtime): bool
+ {
+ return $user->checkPermissionTo('force-delete CheckPointTime');
+ }
+
+ /**
+ * Determine whether the user can permanently delete any models.
+ */
+ public function forceDeleteAny(User $user): bool
+ {
+ return $user->checkPermissionTo('force-delete-any CheckPointTime');
+ }
+}
diff --git a/app/Policies/GuardNamePolicy.php b/app/Policies/GuardNamePolicy.php
new file mode 100644
index 0000000..a23446f
--- /dev/null
+++ b/app/Policies/GuardNamePolicy.php
@@ -0,0 +1,106 @@
+checkPermissionTo('view-any GuardName');
+ }
+
+ /**
+ * Determine whether the user can view the model.
+ */
+ public function view(User $user, GuardName $guardname): bool
+ {
+ return $user->checkPermissionTo('view GuardName');
+ }
+
+ /**
+ * Determine whether the user can create models.
+ */
+ public function create(User $user): bool
+ {
+ return $user->checkPermissionTo('create GuardName');
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ */
+ public function update(User $user, GuardName $guardname): bool
+ {
+ return $user->checkPermissionTo('update GuardName');
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ */
+ public function delete(User $user, GuardName $guardname): bool
+ {
+ return $user->checkPermissionTo('delete GuardName');
+ }
+
+ /**
+ * Determine whether the user can delete any models.
+ */
+ public function deleteAny(User $user): bool
+ {
+ return $user->checkPermissionTo('delete-any GuardName');
+ }
+
+ /**
+ * Determine whether the user can restore the model.
+ */
+ public function restore(User $user, GuardName $guardname): bool
+ {
+ return $user->checkPermissionTo('restore GuardName');
+ }
+
+ /**
+ * Determine whether the user can restore any models.
+ */
+ public function restoreAny(User $user): bool
+ {
+ return $user->checkPermissionTo('restore-any GuardName');
+ }
+
+ /**
+ * Determine whether the user can replicate the model.
+ */
+ public function replicate(User $user, GuardName $guardname): bool
+ {
+ return $user->checkPermissionTo('replicate GuardName');
+ }
+
+ /**
+ * Determine whether the user can reorder the models.
+ */
+ public function reorder(User $user): bool
+ {
+ return $user->checkPermissionTo('reorder GuardName');
+ }
+
+ /**
+ * Determine whether the user can permanently delete the model.
+ */
+ public function forceDelete(User $user, GuardName $guardname): bool
+ {
+ return $user->checkPermissionTo('force-delete GuardName');
+ }
+
+ /**
+ * Determine whether the user can permanently delete any models.
+ */
+ public function forceDeleteAny(User $user): bool
+ {
+ return $user->checkPermissionTo('force-delete-any GuardName');
+ }
+}
diff --git a/app/Policies/GuardPatrolEntryPolicy.php b/app/Policies/GuardPatrolEntryPolicy.php
new file mode 100644
index 0000000..633658b
--- /dev/null
+++ b/app/Policies/GuardPatrolEntryPolicy.php
@@ -0,0 +1,106 @@
+checkPermissionTo('view-any GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can view the model.
+ */
+ public function view(User $user, GuardPatrolEntry $guardpatrolentry): bool
+ {
+ return $user->checkPermissionTo('view GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can create models.
+ */
+ public function create(User $user): bool
+ {
+ return $user->checkPermissionTo('create GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can update the model.
+ */
+ public function update(User $user, GuardPatrolEntry $guardpatrolentry): bool
+ {
+ return $user->checkPermissionTo('update GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can delete the model.
+ */
+ public function delete(User $user, GuardPatrolEntry $guardpatrolentry): bool
+ {
+ return $user->checkPermissionTo('delete GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can delete any models.
+ */
+ public function deleteAny(User $user): bool
+ {
+ return $user->checkPermissionTo('delete-any GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can restore the model.
+ */
+ public function restore(User $user, GuardPatrolEntry $guardpatrolentry): bool
+ {
+ return $user->checkPermissionTo('restore GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can restore any models.
+ */
+ public function restoreAny(User $user): bool
+ {
+ return $user->checkPermissionTo('restore-any GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can replicate the model.
+ */
+ public function replicate(User $user, GuardPatrolEntry $guardpatrolentry): bool
+ {
+ return $user->checkPermissionTo('replicate GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can reorder the models.
+ */
+ public function reorder(User $user): bool
+ {
+ return $user->checkPermissionTo('reorder GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can permanently delete the model.
+ */
+ public function forceDelete(User $user, GuardPatrolEntry $guardpatrolentry): bool
+ {
+ return $user->checkPermissionTo('force-delete GuardPatrolEntry');
+ }
+
+ /**
+ * Determine whether the user can permanently delete any models.
+ */
+ public function forceDeleteAny(User $user): bool
+ {
+ return $user->checkPermissionTo('force-delete-any GuardPatrolEntry');
+ }
+}
diff --git a/resources/views/filament/pages/guard-patrol-entry-dashboard.blade.php b/resources/views/filament/pages/guard-patrol-entry-dashboard.blade.php
new file mode 100644
index 0000000..05c9c63
--- /dev/null
+++ b/resources/views/filament/pages/guard-patrol-entry-dashboard.blade.php
@@ -0,0 +1,15 @@
+
| Patrol Round | + {{--Created Datetime | --}} +Guard Name | +Patrol | +Sequences | + {{--Scanned Status | --}} +||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Start Time | +End Time | +Lap Time | +1 | +2 | +3 | +4 | +5 | +6 | +7 | +8 | +9 | + {{--Scanned Status | --}} +|||
| {{ $index + 1 }} | + {{--{{ $record['created_at'] ?? '' }} | --}} +{{ $record['guard_name'] ?? '' }} | +{{ $record['start_time'] ?? '' }} | +{{ $record['end_time'] ?? '' }} | +{{ $record['lap_time'] ?? '' }} | +{{ $actualVal1 }} | +{{ $actualVal2 }} | +{{ $actualVal3 }} | +{{ $actualVal4 }} | +{{ $actualVal5 }} | +{{ $actualVal6 }} | +{{ $actualVal7 }} | +{{ $actualVal8 }} | +{{ $actualVal9 }} | + {{--+ @php + $status = $record['scanned_status'] ?? ''; + @endphp + $status === 'Scanned', + 'text-yellow-600 font-semibold' => $status === 'Incompleted', + 'text-red-600 font-semibold' => $status === 'Not Exist', + ])> + {{ $status }} + + | --}} +
| + No records found. + | +|||||||||||||||