From 131cacd47f88745a608dd0c326ebe66d37527958 Mon Sep 17 00:00:00 2001 From: Nikola Cirkovic Date: Thu, 19 May 2022 00:33:29 +0200 Subject: [PATCH] INA-5 | TaskScheduler Job [WIP] --- app/Jobs/Ninja/TaskScheduler.php | 120 +++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 app/Jobs/Ninja/TaskScheduler.php diff --git a/app/Jobs/Ninja/TaskScheduler.php b/app/Jobs/Ninja/TaskScheduler.php new file mode 100644 index 000000000000..772a1722ef78 --- /dev/null +++ b/app/Jobs/Ninja/TaskScheduler.php @@ -0,0 +1,120 @@ +fetchJobs(); + foreach ($pending_schedulers as $scheduler) { + $this->doJob($scheduler); + } + } + + private function doJob(Scheduler $scheduler) + { + $job = $scheduler->job; + $parameters = $job->parameters; + $company = Company::where('company_key', $parameters['company']['company_key'])->first(); + if (!$job) { + return; + } + switch ($job->action_name) { + case ScheduledJob::CREATE_CLIENT_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'contacts.csv'); + break; + case ScheduledJob::CREATE_CLIENT_CONTACT_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'clients.csv'); + break; + case ScheduledJob::CREATE_CREDIT_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'credits.csv'); + break; + case ScheduledJob::CREATE_DOCUMENT_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'documents.csv'); + break; + case ScheduledJob::CREATE_EXPENSE_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'expense.csv'); + break; + case ScheduledJob::CREATE_INVOICE_ITEM_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'invoice_items.csv'); + break; + case ScheduledJob::CREATE_INVOICE_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'invoices.csv'); + break; + case ScheduledJob::CREATE_PAYMENT_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'payments.csv'); + break; + case ScheduledJob::CREATE_PRODUCT_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'products.csv'); + break; + case ScheduledJob::CREATE_PROFIT_AND_LOSS_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'profit_and_loss.csv'); + break; + case ScheduledJob::CREATE_QUOTE_ITEM_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'quote_items.csv'); + break; + case ScheduledJob::CREATE_QUOTE_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'quotes.csv'); + break; + case ScheduledJob::CREATE_RECURRING_INVOICE_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'recurring_invoices.csv'); + break; + case ScheduledJob::CREATE_TASK_REPORT: + SendToAdmin::dispatch($company, $parameters, $job->action_class, 'tasks.csv'); + break; + + } + + //setup new scheduled_run + } + + private function fetchJobs() + { + + return Scheduler::where('paused', false) + ->where('archived', false) + ->whereDate('scheduled_run', '<=', Carbon::now()) + ->get(); + } + +}