ScheduleObserver.php 764 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Observers;
  3. use App\Models\Schedule;
  4. use Carbon\Carbon;
  5. class ScheduleObserver
  6. {
  7. public function updated(Schedule $schedule): void
  8. {
  9. if (! $schedule->wasChanged('code_verified') || ! $schedule->code_verified) {
  10. return;
  11. }
  12. if (in_array($schedule->status, ['finished', 'cancelled', 'rejected'], true)) {
  13. return;
  14. }
  15. $endedAt = Carbon::parse($schedule->date->format('Y-m-d').' '.$schedule->end_time);
  16. // if ($endedAt->isFuture()) {
  17. // return;
  18. // }
  19. $schedule->forceFill(['status' => 'finished'])->saveQuietly();
  20. $schedule->provider?->increment('total_services');
  21. $schedule->client?->increment('total_services');
  22. }
  23. }