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;
use Carbon\Carbon;
use Exception;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Support\Cronjobs\RecurringCronjob;
use Illuminate\Console\Command;
use InvalidArgumentException;
/**
* Class Cron
@ -58,9 +60,23 @@ class Cron extends Command
*/
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->setForce($this->option('force'));
// set date in cron job:
if (null !== $date) {
$recurring->setDate($date);
}
try {
$result = $recurring->fire();
} catch (FireflyException $e) {

View File

@ -55,7 +55,6 @@ use FireflyIII\Models\Recurrence;
use FireflyIII\Models\RecurrenceMeta;
use FireflyIII\Models\RecurrenceRepetition;
use FireflyIII\Models\RecurrenceTransaction;
use FireflyIII\Models\Rule;
use FireflyIII\Models\TransactionGroup;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
@ -63,7 +62,6 @@ use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface;
use FireflyIII\Repositories\Rule\RuleRepositoryInterface;
use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface;
use FireflyIII\TransactionRules\Engine\RuleEngine;
use FireflyIII\TransactionRules\Processor;
use FireflyIII\User;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
@ -109,6 +107,8 @@ class CreateRecurringTransactions implements ShouldQueue
$this->groupRepository = app(TransactionGroupRepositoryInterface::class);
$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
{
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->setForce($this->force);
$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.');
}
}