diff --git a/app/Jobs/Ninja/TaskScheduler.php b/app/Jobs/Ninja/TaskScheduler.php index 891cc35e65f4..69862f8877c2 100644 --- a/app/Jobs/Ninja/TaskScheduler.php +++ b/app/Jobs/Ninja/TaskScheduler.php @@ -60,8 +60,15 @@ class TaskScheduler implements ShouldQueue private function doJob(Scheduler $scheduler) { nlog("Doing job {$scheduler->name}"); - // - // - + + try { + $scheduler->service()->runTask(); + } + catch(\Exception $e){ + nlog($e->getMessage()); + + } } + + } diff --git a/app/Services/Scheduler/SchedulerService.php b/app/Services/Scheduler/SchedulerService.php index b3935ba68882..bcaf4c95d7f8 100644 --- a/app/Services/Scheduler/SchedulerService.php +++ b/app/Services/Scheduler/SchedulerService.php @@ -11,49 +11,82 @@ namespace App\Services\Scheduler; +use App\Models\Client; use App\Models\Scheduler; +use App\Utils\Traits\MakesHash; +use Illuminate\Support\Str; class SchedulerService { + use MakesHash; + + private string $method; public function __construct(public Scheduler $scheduler) {} - public function scheduleStatement() + /** + * Called from the TaskScheduler Cron + * + * @return void + */ + public function runTask(): void { - - //Is it for one client - //Is it for all clients - //Is it for all clients excluding these clients - - //Frequency - - //show aging - //show payments - //paid/unpaid - - //When to send? 1st of month - //End of month - //This date - + $this->{$this->scheduler->template}(); } - public function scheduleReport() - { - //Report type - //same schema as ScheduleStatement + private function client_statement() + { + $query = Client::query() + ->where('company_id', $this->scheduler->company_id); + + //Email only the selected clients + if(count($this->scheduler->parameters['clients']) >= 1) + $query->where('id', $this->transformKeys($this->scheduler->parameters['clients'])); + + $query->cursor() + ->each(function ($client){ + + //work out the date range + + }); } - public function scheduleEntitySend() - { - //Entity - //Entity Id - //When - } + // public function scheduleStatement() + // { + + // //Is it for one client + // //Is it for all clients + // //Is it for all clients excluding these clients + + // //Frequency + + // //show aging + // //show payments + // //paid/unpaid + + // //When to send? 1st of month + // //End of month + // //This date + + // } - public function projectStatus() - { - //Project ID - //Tasks - task statuses - } + // public function scheduleReport() + // { + // //Report type + // //same schema as ScheduleStatement + // } + + // public function scheduleEntitySend() + // { + // //Entity + // //Entity Id + // //When + // } + + // public function projectStatus() + // { + // //Project ID + // //Tasks - task statuses + // } } \ No newline at end of file