DataObjects/core.sql
[Pman.Core] / DataObjects / Core_enum.php
index 54d610f..e18e02e 100644 (file)
@@ -15,7 +15,8 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
     public $name;                            // string(255)  not_null
     public $active;                          // int(2)  not_null
     public $seqid;                           // int(11)  not_null multiple_key
-
+    public $seqmax;                           // int(11)  not_null multiple_key
+    public $display_name;
     
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
@@ -37,5 +38,79 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         }
         
     }
+    function beforeUpdate($old, $request,$roo)
+    {
+        $tn = $this->tableName();
+        $x = $this->factory($tn);
+        if(!($old->etype == $request['etype'] && $old->name == $request['name'])){
+            $x->whereAdd("etype = '{$request['etype']}' AND name = '{$request['name']}'");
+            $x->find(true);
+            if($x->count() > 0){
+                $roo->jerr('is exsiting');
+            }
+        }
+    }
+    function beforeInsert($req, $roo)
+    {
+        $tn = $this->tableName();
+        $x = $this->factory($tn);
+        
+        if(empty($req['etype'])){
+            if($x->get('name', $req['name'])){
+                $roo->jerr('name is exsiting');
+            }
+        }else{
+            $x->whereAdd("etype = '{$req['etype']}' AND name = '{$req['name']}'");
+            $x->find(true);
+            if($x->count() > 0){
+                $roo->jerr('is exsiting');
+            }
+        }
+    }
+    function onInsert($req)
+    {
+        $x = $this->factory($this->tableName());
+        $x->query("SELECT core_enum_seqmax_update('". $this->escape($this->etype) ."')");
+         
+    }
+    
+    function lookup($etype,$name) {
+        $ce = DB_DataObject::Factory('core_enum');
+        $ce->etype = $etype;
+        $ce->name = $name;
+        if ($ce->find(true)) {
+            return $ce->id;
+        }
+        return 0;
+        
+    }
+    
+    function lookupObject($etype,$name, $create= false)
+    {
+        
+        static $cache = array();
+        $key = "$etype:$name";
+        if (isset($cache[$key]) ) {
+            return $cache[$key];
+        }
+        $ce = DB_DataObject::Factory('core_enum');
+        $ce->etype = $etype;
+        $ce->name = $name;
+        if ($ce->find(true)) {
+            $cache[$key] = $ce;
+            return $ce;
+        }
+        if ($create) {
+            $ce->active = 1;
+            $ce->insert();
+            $cache[$key] = $ce;
+            return $ce->id;
+            
+        }
+        
+        
+        return false;
+        
+    }
     
 }