1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 21:22:58 +01:00
invoiceninja/app/Services/Scheduler/SchedulerService.php
2023-05-18 08:31:21 +10: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\Models\Scheduler;
use App\Utils\Traits\MakesHash;
use App\Utils\Traits\MakesDates;
use App\Services\Scheduler\EmailReport;
class SchedulerService
{
use MakesHash;
use MakesDates;
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 email_record()
{
(new EmailRecord($this->scheduler))->run();
}
private function email_statement()
{
(new EmailStatementService($this->scheduler))->run();
}
private function email_report()
{
(new EmailReport($this->scheduler))->run();
}
/**
* Sets the next run date of the scheduled task
*
*/
//handle when the scheduler has been paused.
}