Make sure the date is passed on when running the cron job.

This commit is contained in:
James Cole 2019-07-02 06:11:06 +02:00
parent 5bbe1eab7c
commit 54623061d8
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
3 changed files with 21 additions and 3 deletions

View File

@ -24,10 +24,12 @@ declare(strict_types=1);
namespace FireflyIII\Console\Commands\Tools; namespace FireflyIII\Console\Commands\Tools;
use Carbon\Carbon;
use Exception; use Exception;
use FireflyIII\Exceptions\FireflyException; use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Support\Cronjobs\RecurringCronjob; use FireflyIII\Support\Cronjobs\RecurringCronjob;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use InvalidArgumentException;
/** /**
* Class Cron * Class Cron
@ -58,9 +60,23 @@ class Cron extends Command
*/ */
public function handle(): int public function handle(): int
{ {
$date = null;
try {
$date = new Carbon($this->option('date'));
} catch (InvalidArgumentException $e) {
$this->error(sprintf('"%s" is not a valid date', $this->option('date')));
$e->getMessage();
}
$recurring = new RecurringCronjob; $recurring = new RecurringCronjob;
$recurring->setForce($this->option('force')); $recurring->setForce($this->option('force'));
// set date in cron job:
if (null !== $date) {
$recurring->setDate($date);
}
try { try {
$result = $recurring->fire(); $result = $recurring->fire();
} catch (FireflyException $e) { } catch (FireflyException $e) {

View File

@ -55,7 +55,6 @@ use FireflyIII\Models\Recurrence;
use FireflyIII\Models\RecurrenceMeta; use FireflyIII\Models\RecurrenceMeta;
use FireflyIII\Models\RecurrenceRepetition; use FireflyIII\Models\RecurrenceRepetition;
use FireflyIII\Models\RecurrenceTransaction; use FireflyIII\Models\RecurrenceTransaction;
use FireflyIII\Models\Rule;
use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface; use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
@ -63,7 +62,6 @@ use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
use FireflyIII\Repositories\Rule\RuleRepositoryInterface; use FireflyIII\Repositories\Rule\RuleRepositoryInterface;
use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface; use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface;
use FireflyIII\TransactionRules\Engine\RuleEngine; use FireflyIII\TransactionRules\Engine\RuleEngine;
use FireflyIII\TransactionRules\Processor;
use FireflyIII\User; use FireflyIII\User;
use Illuminate\Bus\Queueable; use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldQueue;
@ -109,6 +107,8 @@ class CreateRecurringTransactions implements ShouldQueue
$this->groupRepository = app(TransactionGroupRepositoryInterface::class); $this->groupRepository = app(TransactionGroupRepositoryInterface::class);
$this->force = false; $this->force = false;
Log::debug(sprintf('Created new CreateRecurringTransactions("%s")', $this->date->format('Y-m-d')));
} }
/** /**

View File

@ -118,9 +118,11 @@ class RecurringCronjob extends AbstractCronjob
*/ */
private function fireRecurring(): void private function fireRecurring(): void
{ {
Log::info(sprintf('Will now fire recurring cron job task for date "%s".', $this->date->format('Y-m-d')));
$job = new CreateRecurringTransactions($this->date); $job = new CreateRecurringTransactions($this->date);
$job->setForce($this->force); $job->setForce($this->force);
$job->handle(); $job->handle();
app('fireflyconfig')->set('last_rt_job', $this->date->format('U')); app('fireflyconfig')->set('last_rt_job', (int)$this->date->format('U'));
Log::info('Done with recurring cron job task.');
} }
} }