DataObjects/core.sql
[Pman.Core] / DataObjects / Core_enum.php
index bbc9802..e991c78 100644 (file)
@@ -117,7 +117,9 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         }
     }
     
-    
+    /**
+     * lookup by etype/name and return id
+     */
     function lookup($etype,$name) {
         $ce = DB_DataObject::Factory('core_enum');
         $ce->etype = $etype;
@@ -183,7 +185,12 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         return false;
         
     }
-     
+     // fixme - all calls should be to initDatabase, we need to remove initEnums
+    function initDatabase($roo, $data)
+    {
+        $this->initEnums($data);
+    }
+    
     
     function initEnums($data, $base = array())
     {
@@ -192,7 +199,6 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         if (!empty($base['etype'])) {
             $seq_id = 1;
             $t = DB_DAtaObject::Factory('core_enum');
-            $t->is_system_enum = 1;
             $t->etype = $base['etype'];
             $t->selectAdD();
             $t->selectAdD('max(seqid) as seqid');
@@ -202,13 +208,13 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         }
         foreach($data as $row) {
             $t = DB_DAtaObject::Factory('core_enum');
-            $t->is_system_enum = 1;
+            
             $t->setFrom($row);
             $t->setFrom($base);
+            
             unset($t->seqid); // these might have been changed
             unset($t->display_name); // these might have been changed
             
-            
             if (!$t->find(true))
             {
                 $t->setFrom($row);
@@ -219,6 +225,9 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
                     $seq_id++;
                 }
                 $t->insert();
+            }else{
+                $t->is_system_enum = 1;
+                $t->update();
             }
             if (!empty($row['cn'])) {
                 $this->initEnums($row['cn'], array('etype' => $t->name));