INA-5 | Add biweekly option

This commit is contained in:
Nikola Cirkovic 2022-05-27 02:50:03 +02:00
parent 63061b6cf4
commit 8754ac9375
2 changed files with 10 additions and 7 deletions

View File

@ -33,7 +33,7 @@ class UpdateScheduleRequest extends Request
{ {
return [ return [
'paused' => 'sometimes|bool', 'paused' => 'sometimes|bool',
'repeat_every' => 'sometimes|string|in:DAY,WEEK,MONTH,3MONTHS,YEAR', 'repeat_every' => 'sometimes|string|in:DAY,WEEK,BIWEEKLY,MONTH,3MONTHS,YEAR',
'start_from' => 'sometimes', 'start_from' => 'sometimes',
'scheduled_run'=>'sometimes' 'scheduled_run'=>'sometimes'
]; ];

View File

@ -52,6 +52,7 @@ class Scheduler extends BaseModel
const DAILY = 'DAY'; const DAILY = 'DAY';
const WEEKLY = 'WEEK'; const WEEKLY = 'WEEK';
const BIWEEKLY = 'BIWEEKLY';
const MONTHLY = 'MONTH'; const MONTHLY = 'MONTH';
const QUARTERLY = '3MONTHS'; const QUARTERLY = '3MONTHS';
const ANNUALLY = 'YEAR'; const ANNUALLY = 'YEAR';
@ -107,12 +108,14 @@ class Scheduler extends BaseModel
return Carbon::parse($this->scheduled_run)->startOfDay()->addDay()->addSeconds($offset); return Carbon::parse($this->scheduled_run)->startOfDay()->addDay()->addSeconds($offset);
case self::WEEKLY: case self::WEEKLY:
return Carbon::parse($this->scheduled_run)->startOfDay()->addWeek()->addSeconds($offset); return Carbon::parse($this->scheduled_run)->startOfDay()->addWeek()->addSeconds($offset);
case self::BIWEEKLY:
return Carbon::parse($this->scheduled_run)->startOfDay()->addWeeks(2)->addSeconds($offset);
case self::MONTHLY: case self::MONTHLY:
return Carbon::parse($this->scheduled_run)->startOfDay()->addMonth()->addSeconds($offset); return Carbon::parse($this->scheduled_run)->startOfDay()->addMonthNoOverflow()->addSeconds($offset);
case self::QUARTERLY: case self::QUARTERLY:
return Carbon::parse($this->scheduled_run)->startOfDay()->addMonths(3)->addSeconds($offset); return Carbon::parse($this->scheduled_run)->startOfDay()->addMonthsNoOverflow(3)->addSeconds($offset);
case self::ANNUALLY: case self::ANNUALLY:
return Carbon::parse($this->scheduled_run)->startOfDay()->addYear()->addSeconds($offset); return Carbon::parse($this->scheduled_run)->startOfDay()->addYearNoOverflow()->addSeconds($offset);
default: default:
return null; return null;
} }