X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FCore_notify_recur.php;h=ceca27cb28f11d8144010a2e3a0beb3c719e9ea4;hp=bd683128b44c16e7f7a6d1c23f92f857b9064b42;hb=HEAD;hpb=2a38115acdac2ba798a0f73a9d39d7a72b7e5787 diff --git a/DataObjects/Core_notify_recur.php b/DataObjects/Core_notify_recur.php index bd683128..ceca27cb 100644 --- a/DataObjects/Core_notify_recur.php +++ b/DataObjects/Core_notify_recur.php @@ -2,7 +2,7 @@ /** * Table Definition for core_notify_recur */ -require_once 'DB/DataObject.php'; +class_exists('DB_DataObject') ? '' : require_once 'DB/DataObject.php'; class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject { @@ -64,8 +64,9 @@ 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); } function method() @@ -82,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.. @@ -109,14 +112,18 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject $usedays[] = date("Y-m-d", $ut); } } - + //print_r($this); foreach($usedays as $d){ foreach($hours as $h){ $date = new DateTime($d. ' ' . $h, new DateTimeZone($this->tz)); - $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'); } } @@ -141,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()'); @@ -150,12 +158,10 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject // returns array('2012-12-xx'=>12, 'date' => id....) - 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); @@ -165,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( @@ -193,6 +198,13 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject } + function person() + { + $p = DB_DAtaObject::factory('core_person'); + $p->get($this->person_id); + return $p; + } + function onUpdate($old, $request,$roo) { $this->generateNotificationsSingle();