1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-11 21:52:35 +01:00
invoiceninja/app/Services/Scheduler/SchedulerService.php
2023-03-18 19:06:32 +11:00

64 lines
1.3 KiB
PHP

<?php
/**
* Invoice Ninja (https://invoiceninja.com).
*
* @link https://github.com/invoiceninja/invoiceninja source repository
*
* @copyright Copyright (c) 2023. Invoice Ninja LLC (https://invoiceninja.com)
*
* @license https://www.elastic.co/licensing/elastic-license
*/
namespace App\Services\Scheduler;
use App\DataMapper\Schedule\EmailStatement;
use App\Models\Client;
use App\Models\RecurringInvoice;
use App\Models\Scheduler;
use App\Utils\Traits\MakesDates;
use App\Utils\Traits\MakesHash;
class SchedulerService
{
use MakesHash;
use MakesDates;
private string $method;
public function __construct(public Scheduler $scheduler)
{
}
/**
* Called from the TaskScheduler Cron
*
* @return void
*/
public function runTask(): void
{
if (method_exists($this, $this->scheduler->template)) {
$this->{$this->scheduler->template}();
}
}
private function schedule_entity()
{
(new ScheduleEntity($this->scheduler))->run();
}
private function email_statement()
{
(new EmailStatementService($this->scheduler))->run();
}
/**
* Sets the next run date of the scheduled task
*
*/
//handle when the scheduler has been paused.
}