# yatra/3.0.14.1/app/Services/DepartureCronService.php

Yatra – Travel Booking &amp; Tour Operator Software, version 3.0.14.1. 59 lines.

- Page: https://pluginprobe.com/plugins/yatra/3.0.14.1/code/app/Services/DepartureCronService.php
- Raw: https://pluginprobe.com/plugins/yatra/3.0.14.1/raw/app/Services/DepartureCronService.php
- Modified: 2026-04-14T03:47:24+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/yatra/3.0.14.1/code/app/Services/DepartureCronService.php#L10-L20`.

```php
<?php

declare(strict_types=1);

namespace Yatra\Services;

use Yatra\Repositories\DepartureRepository;

/**
 * Departure Cron Service
 * Handles daily cron job tasks for departure status updates
 */
class DepartureCronService
{
    private DepartureRepository $repository;

    public function __construct()
    {
        $this->repository = new DepartureRepository();
    }

    /**
     * Daily cron job handler
     * Updates statuses for all departures:
     * - Marks past departures (end_date < today)
     * - Marks full departures (booked_count >= max_capacity)
     * - Marks upcoming departures (otherwise)
     * 
     * Note: Uses end_date to determine if trip is complete (past)
     */
    public function dailyStatusUpdate(): void
    {
        $updated = $this->repository->recalculateAllStatuses();
        
        }

    /**
     * Register WordPress cron hook
     */
    public static function registerCronHook(): void
    {
        if (!wp_next_scheduled('yatra_daily_departure_status_update')) {
            wp_schedule_event(time(), 'daily', 'yatra_daily_departure_status_update');
        }
    }

    /**
     * Unregister WordPress cron hook
     */
    public static function unregisterCronHook(): void
    {
        $timestamp = wp_next_scheduled('yatra_daily_departure_status_update');
        if ($timestamp) {
            wp_unschedule_event($timestamp, 'yatra_daily_departure_status_update');
        }
    }
}


```
