added info message #315

This commit is contained in:
denisdulici
2018-04-28 11:56:11 +03:00
parent 17758a24cc
commit 0efd3721f6
7 changed files with 81 additions and 26 deletions

View File

@ -71,9 +71,7 @@ class RecurringCheck extends Command
$recurring = $company->recurring();
foreach ($recurring as $recur) {
$schedule = $this->schedule($recur);
$current = Date::parse($schedule->current()->getStart());
$current = Date::parse($recur->schedule()->current()->getStart()->format('Y-m-d'));
// Check if should recur today
if ($this->today->ne($current)) {
@ -183,27 +181,4 @@ class RecurringCheck extends Command
$user->notify(new BillNotification($clone));
}
}
protected function schedule($recur)
{
$config = new ArrayTransformerConfig();
$config->enableLastDayOfMonthFix();
$transformer = new ArrayTransformer();
$transformer->setConfig($config);
return $transformer->transform($this->rule($recur));
}
protected function rule($recur)
{
$rule = (new Rule())
->setStartDate($recur->started_at)
->setTimezone(setting('general.timezone'))
->setFreq(strtoupper($recur->frequency))
->setInterval($recur->interval)
->setCount($recur->count);
return $rule;
}
}

View File

@ -3,6 +3,11 @@
namespace App\Models\Common;
use App\Models\Model;
use DateTime;
use DateTimeZone;
use Recurr\Rule;
use Recurr\Transformer\ArrayTransformer;
use Recurr\Transformer\ArrayTransformerConfig;
class Recurring extends Model
{
@ -24,4 +29,30 @@ class Recurring extends Model
{
return $this->morphTo();
}
public function schedule()
{
$config = new ArrayTransformerConfig();
$config->enableLastDayOfMonthFix();
$transformer = new ArrayTransformer();
$transformer->setConfig($config);
return $transformer->transform($this->rule());
}
public function rule()
{
// 0 means infinite
$count = ($this->count == 0) ? 999 : $this->count;
$rule = (new Rule())
->setStartDate(new DateTime($this->started_at, new DateTimeZone(setting('general.timezone'))))
->setTimezone(setting('general.timezone'))
->setFreq(strtoupper($this->frequency))
->setInterval($this->interval)
->setCount($count);
return $rule;
}
}