Recurring tasks (#847): Fix php error (substract is not always defined)

This commit is contained in:
Frederic Guillot
2015-05-10 13:56:03 -04:00
parent 94a5b12e68
commit b51d41f331

View File

@@ -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();
} }