mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Always ensure next_run is calculated from the time the scheduler was last run, not when the scheduler was restarted.
This commit is contained in:
parent
368006f63f
commit
6b2ca2dfb2
@ -119,40 +119,40 @@ class SchedulerService
|
||||
|
||||
switch ($this->scheduler->frequency_id) {
|
||||
case RecurringInvoice::FREQUENCY_DAILY:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addDay();
|
||||
$next_run = now()->startOfDay()->addDay();
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_WEEKLY:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addWeek();
|
||||
$next_run = now()->startOfDay()->addWeek();
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_TWO_WEEKS:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addWeeks(2);
|
||||
$next_run = now()->startOfDay()->addWeeks(2);
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_FOUR_WEEKS:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addWeeks(4);
|
||||
$next_run = now()->startOfDay()->addWeeks(4);
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_MONTHLY:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addMonthNoOverflow();
|
||||
$next_run = now()->startOfDay()->addMonthNoOverflow();
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_TWO_MONTHS:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addMonthsNoOverflow(2);
|
||||
$next_run = now()->startOfDay()->addMonthsNoOverflow(2);
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_THREE_MONTHS:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addMonthsNoOverflow(3);
|
||||
$next_run = now()->startOfDay()->addMonthsNoOverflow(3);
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_FOUR_MONTHS:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addMonthsNoOverflow(4);
|
||||
$next_run = now()->startOfDay()->addMonthsNoOverflow(4);
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_SIX_MONTHS:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addMonthsNoOverflow(6);
|
||||
$next_run = now()->startOfDay()->addMonthsNoOverflow(6);
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_ANNUALLY:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addYear();
|
||||
$next_run = now()->startOfDay()->addYear();
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_TWO_YEARS:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addYears(2);
|
||||
$next_run = now()->startOfDay()->addYears(2);
|
||||
break;
|
||||
case RecurringInvoice::FREQUENCY_THREE_YEARS:
|
||||
$next_run = Carbon::parse($this->scheduler->next_run)->startOfDay()->addYears(3);
|
||||
$next_run = now()->startOfDay()->addYears(3);
|
||||
break;
|
||||
default:
|
||||
$next_run = null;
|
||||
|
@ -32,7 +32,7 @@ class SchedulerFactory extends Factory
|
||||
'frequency_id' => RecurringInvoice::FREQUENCY_MONTHLY,
|
||||
'next_run' => now()->addSeconds(rand(86400,8640000)),
|
||||
'next_run_client' => now()->addSeconds(rand(86400,8640000)),
|
||||
'template' => 'statement_task',
|
||||
'template' => 'client_statement',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -229,7 +229,7 @@ class SchedulerTest extends TestCase
|
||||
$data = [
|
||||
'name' => 'A test statement scheduler',
|
||||
'frequency_id' => RecurringInvoice::FREQUENCY_MONTHLY,
|
||||
'next_run' => "2023-01-01",
|
||||
'next_run' => now()->format('Y-m-d'),
|
||||
'template' => 'client_statement',
|
||||
'parameters' => [
|
||||
'date_range' => 'previous_month',
|
||||
@ -251,7 +251,7 @@ class SchedulerTest extends TestCase
|
||||
|
||||
$scheduler->fresh();
|
||||
|
||||
$this->assertEquals("2023-02-01", $scheduler->next_run->format('Y-m-d'));
|
||||
$this->assertEquals(now()->addMonth()->format('Y-m-d'), $scheduler->next_run->format('Y-m-d'));
|
||||
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user