X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FCore_notify_recur.php;h=ceca27cb28f11d8144010a2e3a0beb3c719e9ea4;hp=24325bbfcee085cfcfea8097281736d6638cf07c;hb=HEAD;hpb=d45e8864038b2d6b4b7c8846381ebf73c1b40cf9 diff --git a/DataObjects/Core_notify_recur.php b/DataObjects/Core_notify_recur.php index 24325bbf..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,15 +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){ - print_r(date_default_timezone_get());exit; $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'); } } @@ -128,7 +134,6 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject { //DB_DataObject::debugLevel(1); $w = DB_DataObject::factory($this->tableName()); -// $w->id = 117; $w->find(); while($w->fetch()){ @@ -143,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()'); @@ -152,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); @@ -167,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( @@ -195,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(); @@ -214,44 +224,4 @@ class Pman_Core_DataObjects_Core_notify_recur extends DB_DataObject $n->delete(DB_DATAOBJECT_WHEREADD_ONLY); } - function toRooSingleArray($authUser, $request) - { - $ret = $this->toArray(); - - if(!empty($ret['keyword_filters'])){ - $keywords = array_unique(array_filter(explode(',', $ret['keyword_filters']))); - - $clipping_keywords = DB_DataObject::factory('clipping_keywords'); - $clipping_keywords->whereAddIn('id', $keywords, 'int'); - - $li = array(); - - foreach ($clipping_keywords->fetchAll('id', 'keyword') as $k => $v){ - $li[] = array( - 'id' => $k, - 'keyword' => $v - ); - } - - $ret['keywords'] = json_encode($li); - } - - return $ret; - } - - function toRooArray($request) - { - $ret = $this->toArray(); - - if(!empty($ret['keyword_filters'])){ - $keywords = array_unique(array_filter(explode(',', $ret['keyword_filters']))); - - $clipping_keywords = DB_DataObject::factory('clipping_keywords'); - $clipping_keywords->whereAddIn('id', $keywords, 'int'); - - $ret['keywords'] = implode(',', $clipping_keywords->fetchAll('keyword')); - } - - return $ret; - } }