Recurring tasks (#847): Fix php error (substract is not always defined)
This commit is contained in:
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
namespace Model;
|
namespace Model;
|
||||||
|
|
||||||
|
use DateTime;
|
||||||
|
use DateInterval;
|
||||||
use Event\TaskEvent;
|
use Event\TaskEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -174,24 +176,18 @@ class TaskDuplication extends Base
|
|||||||
* @access private
|
* @access private
|
||||||
* @param array $values
|
* @param array $values
|
||||||
*/
|
*/
|
||||||
private function recurrenceDateDue(&$values)
|
private function recurrenceDateDue(array &$values)
|
||||||
{
|
{
|
||||||
if ($values['date_due'] && $values['recurrence_factor'])
|
if (! empty($values['date_due']) && $values['recurrence_factor'] != 0) {
|
||||||
{
|
|
||||||
if ($values['recurrence_basedate'])
|
if ($values['recurrence_basedate'] == Task::RECURE_BASEDATE_TRIGGERDATE) {
|
||||||
{
|
|
||||||
$values['date_due'] = time();
|
$values['date_due'] = time();
|
||||||
}
|
}
|
||||||
|
|
||||||
$factor = abs($values['recurrence_factor']);
|
$factor = abs($values['recurrence_factor']);
|
||||||
|
$subtract = $values['recurrence_factor'] < 0;
|
||||||
|
|
||||||
if ($values['recurrence_factor'] < 0)
|
switch ($values['recurrence_timeframe']) {
|
||||||
{
|
|
||||||
$subtract=TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
switch ($values['recurrence_timeframe'])
|
|
||||||
{
|
|
||||||
case Task::RECURE_MONTHS:
|
case Task::RECURE_MONTHS:
|
||||||
$interval = 'P' . $factor . 'M';
|
$interval = 'P' . $factor . 'M';
|
||||||
break;
|
break;
|
||||||
@@ -200,14 +196,12 @@ class TaskDuplication extends Base
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
$interval = 'P' . $factor . 'D';
|
$interval = 'P' . $factor . 'D';
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$date_due = new \DateTime();
|
$date_due = new DateTime();
|
||||||
|
|
||||||
$date_due->setTimestamp($values['date_due']);
|
$date_due->setTimestamp($values['date_due']);
|
||||||
|
|
||||||
$subtract ? $date_due->sub(new \DateInterval($interval)) : $date_due->add(new \DateInterval($interval));
|
$subtract ? $date_due->sub(new DateInterval($interval)) : $date_due->add(new DateInterval($interval));
|
||||||
|
|
||||||
$values['date_due'] = $date_due->getTimestamp();
|
$values['date_due'] = $date_due->getTimestamp();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user