X-Git-Url: http://git.roojs.org/?a=blobdiff_plain;f=DataObjects%2FCore_notify_recur.php;h=3c871ddfc716ef593d4e02b94b5c21072f38f4cf;hb=a10228b0478a4f93e13abdd8b5caaeeb6e3e2b48;hp=54e532ba1fd4872ab8e37a592515d410ba2ab8dd;hpb=16f266154e4ad29521188c26a133d0730c4ffd5f;p=Pman.Core diff --git a/DataObjects/Core_notify_recur.php b/DataObjects/Core_notify_recur.php index 54e532ba..3c871ddf 100644 --- a/DataObjects/Core_notify_recur.php +++ b/DataObjects/Core_notify_recur.php @@ -64,7 +64,7 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject function notifytimesRange($advance) { $start = date('Y-m-d H:i:s', max(strtotime("NOW"), strtotime($this->dtstart))); - $end = date('Y-m-d H:i:s', min(strtotime("NOW + $advance DAYS"), strtotime($this->dtend))); + $end = min( new DateTime("NOW + $advance DAYS"), new DateTime($this->dtend ) )->format('Y-m-d H:i:s'); return array($start, $end); } @@ -83,6 +83,8 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject // it starts 24 hours ago.. or when dtstart list($start, $end) = $this->notifytimesRange($advance); + var_dump(array($start, $end)); + print_r($this); if (strtotime($start) > strtotime($end)) { return array(); // no data.. @@ -117,9 +119,9 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject foreach($usedays as $d){ foreach($hours as $h){ $date = new DateTime($d. ' ' . $h, new DateTimeZone($this->tz)); - - if(!empty(ini_get('date.timezone'))){ - $date->setTimezone(new DateTimeZone(ini_get('date.timezone'))); + $tz= ini_get('date.timezone'); + if(!empty($tz)){ + $date->setTimezone(new DateTimeZone($tz)); } $ret[] = $date->format('Y-m-d H:i:s'); @@ -146,7 +148,8 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject $notifytimes = $this->notifyTimes(2); - //print_R($notifytimes); + echo "{$this->person()->email}\n"; + print_R($notifytimes); $newSearch = DB_DataObject::factory('core_notify'); $newSearch->whereAdd( 'act_start > NOW()'); @@ -154,13 +157,11 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject $old = $newSearch->fetchAll('act_start', 'id'); // returns array('2012-12-xx'=>12, 'date' => id....) - print_R($notifytimes);exit; foreach($notifytimes as $time){ if (isset($old[$time])) { // we already have it... - $oo = DB_DataObject::Factory('core_notify'); $oo->get($old[$time]); $oc = clone($oo); @@ -170,12 +171,11 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject unset($old[$time]); continue; } - if (strtotime($time) < time()) { - // will not get deleted.. - //echo "SKIP BEFORE NOW"; - unset($old[$time]); + + if (strtotime($time) < time()) { // should not happen, just in case... continue; } + // do not have a notify event... creat it.. $add = DB_DataObject::factory('core_notify'); $add->setFrom(array( @@ -198,6 +198,13 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject } + function person() + { + $p = DB_DAtaObject::factory('Person'); + $p->get($this->person_id); + return $p; + } + function onUpdate($old, $request,$roo) { $this->generateNotificationsSingle();