DataObjects/Core_domain.php
[Pman.Core] / DataObjects / Projects.php
index e398f61..e29664d 100644 (file)
@@ -9,7 +9,7 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
 
-    public $__table = 'Projects';                        // table name
+    public $__table = 'Projects';            // table name
     public $id;                              // int(11)  not_null primary_key auto_increment
     public $name;                            // string(254)  not_null
     public $remarks;                         // blob(65535)  not_null blob
@@ -26,6 +26,7 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
     public $countries;                       // string(128)  not_null
     public $languages;                       // string(128)  not_null
     public $agency_id;                       // int(11)  not_null
+    public $updated_dt;                      // datetime(19)  not_null binary
 
     
     /* the code above is auto generated do not remove the tag below */
@@ -111,11 +112,10 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
             
                
             $pf = empty($q['query']['project_filter']) ? 'P,N,U' : $q['query']['project_filter'];
-            $bits= explode(',' ,$pf);
-            foreach($bits as $i=>$k) {
-                $bits[$i] = $this->escape($k);
-            }
-            $this->whereAdd("Projects.type in ('". implode("','", $bits) . "')");
+        
+         
+        
+            $this->whereAddIn("Projects.type", explode(',', $pf), 'string');
         }
          // user projects!!!! - make sure they can only see project they are suppsed to..
          // only applies to document stuff..
@@ -166,21 +166,14 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
         
         
     }
-    function whereAddIn($key, $list, $type) {
-        $ar = array();
-        foreach($list as $k) {
-            $ar[] = $type =='int' ? (int)$k : $this->escape($k);
-        }
-        if (!$ar) {
-            return;
-        }
-        $this->whereAdd("$key IN (". implode(',', $ar). ')');
-    }
     function onInsert()
     {
         $oo = clone($this);
         if (empty($this->code)) {
             $this->code = 'C' + $this->client_id + '-P' + $this->id;
+            $dt = new DateTime();
+            $this->updated_dt = $dt->format('Y-m-d H:i:s');
             $this->update($oo);
         }
     }
@@ -190,6 +183,8 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
         $oo = clone($this);
         if (empty($this->code)) {
             $this->code = 'C' + $this->client_id + '-P' + $this->id;
+            $dt = new DateTime();
+            $this->updated_dt = $dt->format('Y-m-d H:i:s');
             $this->update($oo);
         }
         
@@ -203,7 +198,7 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
         $olddir =  $opts['storedir'] . '/' . $old->code;
         $newdir =  $opts['storedir'] . '/' . $this->code;
         if ( file_exists($olddir)) {
-            move ($olddir, $newdir);
+            move($olddir, $newdir);
         }
          
         
@@ -244,50 +239,10 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
         
     }
     
+   
     
-    function i18toArray($type, $str) 
-    {
-        if (empty($str)) {
-            return array();
-        }
-        static $au;
-        static $langs;
-        static $cts;
-        
-        if (!$au) {
-            $u = DB_DataObject::factory('Person');
-            $au =$u->getAuthUser();
-            $lang = empty($au->lang ) ? 'en' : $au->lang;
-            $lbits = explode('_', strtoupper($lang));
-            // no validation here!!!!
-            require_once 'I18Nv2/Language.php';
-            require_once 'I18Nv2/Country.php';
-            $langs = new I18Nv2_Language($lbits[0]); // locale support not there??
-            $cts = new I18Nv2_Country($lbits[0]); // lo
-            
-        }
-        $lk = $type == 'c' ? $cts : $langs;
-        $ar  =explode(',', $str);
-        $ret = array();
-        foreach($ar as $k) {
-            $ret[] = array('code'=>$k, 'title' => $lk->getName($k));
-        }
-        return $ret;
-        // work out locale...
-        
-        
-        
-        
-    }
     
-    
-    function toRooArray($req= array()) {
-        $ret = parent::toArray();
-        // sor tout 
-        $ret['countrylist'] = $this->I18toArray('c',$ret['countries']);
-        $ret['languagelist'] = $this->I18toArray('l',$ret['languages']);
-        return $ret;
-    }
+   
     function setFromRoo($q) 
     {
         $this->setFrom($q);
@@ -297,27 +252,33 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
             ));
         }
         return true;
-    } 
+    }
+    
+    
     /**
      * fetch a list of user projects.
      * if you need to filter open/closed.. then add whereAdds before calling
      */
-    function getUserProjects($au, $data='id') // COMPANY BASED!!!!
+    function userProjects($au, $data='id') // COMPANY BASED!!!!
     {
+        
         $id = (int) $au->company_id;
+        
         $this->whereAdd("
             (client_id= $id) OR (agency_id= $id)
         ");
-        if (!empty($data)) {
-            $this->selectAdd();
-            $this->selectAdd($data);
-        }
-        $this->find();
-        $ret = array();
-        while ($this->fetch()) {
-            $ret[] = empty($data) ? clone($this) : $this->$data;
-        }
-        return $ret;
+        
+        return empty($data) ? $this->fetchAll() :$this->fetchAll($data); 
+         
+            
+    }
+    
+    // DEPRICATED - use userProjects
+    
+    function getUserProjects($au, $data='id') // COMPANY BASED!!!!
+    {
+        return $this->userProjects($au, $data);
+         
             
     }
     
@@ -336,4 +297,5 @@ class Pman_Core_DataObjects_Projects extends DB_DataObject
     {
         return $au->hasPerm("Core.Projects_Member_Of",$lvl) || $au->hasPerm("Core.Projects_All",$lvl);
     }
+    
 }