diff --git a/app/Console/Commands/SendPermitsReminderEmails.php b/app/Console/Commands/SendPermitsReminderEmails.php index 15d4e626..c5f0d3d2 100644 --- a/app/Console/Commands/SendPermitsReminderEmails.php +++ b/app/Console/Commands/SendPermitsReminderEmails.php @@ -7,6 +7,7 @@ use App\Models\PermitsReminder; use App\Models\User; use Carbon\Carbon; use Illuminate\Console\Command; +use Illuminate\Support\Facades\Log; class SendPermitsReminderEmails extends Command { @@ -41,26 +42,26 @@ class SendPermitsReminderEmails extends Command */ public function handle() { - $now = now(); - $startRange = $now->subDays(3)->startOfDay(); - $endRange = $now->copy()->addDays(6)->endOfDay(); + $currentDateTime = now(); + $startRange = $currentDateTime->subDays(3)->startOfDay(); + $endRange = $currentDateTime->copy()->addDays(6)->endOfDay(); $reminders = PermitsReminder::whereDate('reminder_date', '>=', $startRange) ->whereDate('reminder_date', '<=', $endRange) + ->orWhere('reminder_date', '<', now()) ->pluck('model'); - $this->info($this->getTimeStamp() . json_encode($reminders)); + if ($reminders->isEmpty()) { + Log::info('No reminders expiring within the specified range.'); + return; + } - $users = User::whereIn( - 'email', - [ - 'edmond.wuiming2021@gmail.com', - 'anithagurl96@gmail.com' - ] - )->get(); + Log::info($this->getTimeStamp() . 'Reminders: ' . $reminders->toJson()); + + $users = User::whereIn('email', $this->getEmailList())->get(); foreach ($users as $user) { - $this->info($this->getTimeStamp() . 'Reminder email sent to ' . $user->email); + Log::info($this->getTimeStamp() . 'Reminder email sent to ' . $user->email); if (app()->environment('production')) { $user->notify(new PermitsReminderEmail($user, $reminders)); } @@ -71,4 +72,12 @@ class SendPermitsReminderEmails extends Command { return '[' . Carbon::now()->format('Y-m-d H:i:s') . '] - '; } + + protected function getEmailList(): array + { + return [ + 'edmond.wuiming2021@gmail.com', + 'anithagurl96@gmail.com' + ]; + } } diff --git a/app/Http/Controllers/PermitsReminder/ListPermitsReminderController.php b/app/Http/Controllers/PermitsReminder/ListPermitsReminderController.php index b2db4c58..111381bc 100644 --- a/app/Http/Controllers/PermitsReminder/ListPermitsReminderController.php +++ b/app/Http/Controllers/PermitsReminder/ListPermitsReminderController.php @@ -3,6 +3,7 @@ namespace App\Http\Controllers\PermitsReminder; use App\Models\PermitsReminder; +use Carbon\Carbon; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -15,14 +16,25 @@ class ListPermitsReminderController public function list(Request $request): JsonResponse { $perPage = 10; // Number of items per page - $page = request('page', 1); // Get the current page from the request + $page = $request->query('page', 1); // Get the current page from the request // Paginate the PermitsReminder model - $query = PermitsReminder::orderBy('id', 'desc'); - $paginator = $query->paginate($perPage, ['*'], 'page', $page); + $paginator = PermitsReminder::orderBy('reminder_date')->paginate($perPage, ['*'], 'page', $page); - // Convert paginated data to an array + // Get current date and time + $currentDateTime = now(); + + // Define date range + $startRange = $currentDateTime->subDays(3)->startOfDay(); + $endRange = $currentDateTime->copy()->addDays(6)->endOfDay(); + + // Process paginated items $data = $paginator->items(); + foreach ($data as &$item) { + // Check if the reminder_date is within the date range or after the current date + $reminderDate = Carbon::parse($item->reminder_date); + $item->show_remind = $reminderDate->between($startRange, $endRange) || $reminderDate->isBefore($currentDateTime); + } // Create pagination links $links = [ @@ -32,6 +44,7 @@ class ListPermitsReminderController "next" => $paginator->nextPageUrl(), ]; + // Prepare response $response = [ "title" => "List Permits Reminder", "message" => "You have successfully retrieved a list of Permits Reminder", diff --git a/resources/assets/vue/components/settings/elements/PermitsReminderItemComponent.vue b/resources/assets/vue/components/settings/elements/PermitsReminderItemComponent.vue index 07624dac..1463fa42 100644 --- a/resources/assets/vue/components/settings/elements/PermitsReminderItemComponent.vue +++ b/resources/assets/vue/components/settings/elements/PermitsReminderItemComponent.vue @@ -29,7 +29,7 @@
-
{{ data.model }}
+
{{ data.model }}
@@ -41,7 +41,7 @@
-
{{ data.expiry_date }}
+
{{ data.expiry_date }}
@@ -53,7 +53,7 @@
-
{{ data.reminder_date }}
+
{{ data.reminder_date }}
@@ -65,7 +65,7 @@
-
{{ data.created_at }}
+
{{ data.created_at }}