X-Git-Url: http://git.roojs.org/?p=Pman.Core;a=blobdiff_plain;f=DataObjects%2FCore_project.php;h=92c202ebee15fbfc64b2614845b0966b0cc3ccd7;hp=d6b6bde250eecc97da6fd0e833eb929afbf22855;hb=HEAD;hpb=c14fed651c0fb9a87e4abb3bb8af83871baa899a diff --git a/DataObjects/Core_project.php b/DataObjects/Core_project.php index d6b6bde2..5cc1f559 100644 --- a/DataObjects/Core_project.php +++ b/DataObjects/Core_project.php @@ -27,6 +27,8 @@ class Pman_Core_DataObjects_Core_project extends DB_DataObject public $languages; // string(128) not_null public $agency_id; // int(11) not_null public $updated_dt; // datetime(19) not_null binary + public $deleted_by; // INT + public $deleted_dt; // datetime(19) not_null binary /* the code above is auto generated do not remove the tag below */ @@ -89,7 +91,10 @@ class Pman_Core_DataObjects_Core_project extends DB_DataObject function applyFilters($q, $au, $roo) { - + if (empty($q['_show_deleted']) && empty($q['_is_update_request'])) { + $this->whereAdd('core_project.deleted_by = 0'); + } + $tn = $this->tableName(); if (!empty($q['query']['project_search'])) { $s = $this->escape($q['query']['project_search']); @@ -106,7 +111,7 @@ class Pman_Core_DataObjects_Core_project extends DB_DataObject case 'A': // all break; case 'C': // current - $this->whereAdd("{$tn}.close_date >= NOW()"); + $this->whereAdd("{$tn}.close_date is NULL OR {$tn}.close_date >= NOW()"); break; case 'O': // old $this->whereAdd("{$tn}.close_date < NOW()"); @@ -130,7 +135,7 @@ class Pman_Core_DataObjects_Core_project extends DB_DataObject //&& $au->hasPerm('Documents.Documents','S') << this is dependant on the doc modules - if (!$au->hasPerm('Core.Projects_All','S') ) { + if (php_sapi_name() != 'cli' && !$au->hasPerm('Core.Projects_All','S') ) { @@ -174,8 +179,22 @@ class Pman_Core_DataObjects_Core_project extends DB_DataObject } + + function beforeUpdate($old, $q, $roo) + { + if (!empty($q['_flag_deleted'])) { + //DB_DataObject::DebugLevel(1); + $this->deleted_by = $roo->getAuthUser()->id; + $this->deleted_dt = date("Y-m-d H:i:s"); + } + if (!empty($q['_flag_undeleted'])) { + $this->deleted_by = 0; + $this->deleted_dt = '1000-01-01 00:00:00'; + } + } + - function onInsert() + function onInsert($request,$roo,$event) { $oo = clone($this); if (empty($this->code)) { @@ -186,7 +205,7 @@ class Pman_Core_DataObjects_Core_project extends DB_DataObject } } - function onUpdate($old) + function onUpdate($old, $request, $roo,$event) { $oo = clone($this); if (empty($this->code)) { @@ -321,4 +340,23 @@ class Pman_Core_DataObjects_Core_project extends DB_DataObject return $au->hasPerm("Core.Projects_Member_Of",$lvl) || $au->hasPerm("Core.Projects_All",$lvl); } + static $cache = array(); + function cacheLoad($id) + { + if (isset(self::$cache[$id])) { + return self::$cache[$id]; + } + $n = $this->factorySelf(); + $n->get($id); + $n->cacheSave(); + return $n; + } + + function cacheSave() + { + self::$cache[$this->id] = $this; + } + + + }