fix #8131 - chinese translations
[Pman.Core] / DataObjects / Core_enum.php
index 7963642..a2d08ca 100644 (file)
@@ -16,7 +16,9 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
     public $seqid;                           // int(11)  not_null multiple_key
     public $seqmax;                           // int(11)  not_null multiple_key
     public $display_name;
-
+    public $is_system_enum;
+   
+    
     /* the code above is auto generated do not remove the tag below */
     ###END_AUTOCODE
 
@@ -27,6 +29,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         if (!empty($q['query']['empty_etype'])) {
             $this->whereAdd("core_enum.etype = ''");
         }
+        
 
         // this should be handled by roo... using '!name[0]' ....
         if(!empty($q['!name'])){
@@ -136,8 +139,22 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
 
     function beforeUpdate($old, $request,$roo)
     {
+
+        /* multiple id merge */
         if(!empty($request['_merge_id'])){
-            $this->merge($request['_merge_id'], $roo);
+            if(!empty($request['_ids'])){
+                //DB_DataObject::DebugLevel(1);
+                $ce = DB_DataObject::factory('core_enum');
+                $ce->whereAddIn("id", explode(",", $request['_ids']), "int");
+
+                foreach($ce->fetchAll() as $mergeItem){
+
+                    $mergeItem->merge($request['_merge_id'], $roo);
+                }
+            } else {
+                $this->merge($request['_merge_id'], $roo);
+            }
+            $roo->jok('Merged'); 
         }
 
         $tn = $this->tableName();
@@ -187,7 +204,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
                 $x->setFrom($rr);
                 $x->insert();
 
-            }echo "here"; exit;
+            }
             $roo->jok("inserted");
 
         } else {
@@ -239,6 +256,12 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
 
     function lookupCreate($etype,$name, $display_name=false) {
 
+        static $cache = array();
+        $ckey = json_encode(array($etype, $name));
+        if (isset($cache[$ckey])) {
+            return $cache[$ckey];
+        }
+        
         // check
         $ce = DB_DataObject::Factory('core_enum');
         $ce->setFrom(array(
@@ -254,11 +277,14 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         $ce->etype = $etype;
         $ce->name = $name;
         if ($ce->find(true)) {
+            $cache[$ckey] = $ce->id;
             return $ce->id;
         }
         $ce->active = 1;
         $ce->display_name = $display_name === false ? $ce->name : $display_name;
-        return  $ce->insert();
+        $ret = $ce->insert();
+        $cache[$ckey] = $ret;
+        return  $ret;
 
     }
 
@@ -297,6 +323,15 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
         return $x->fetchAll($fetchArg1, $fetchArg2, $fetchArg3);
     }
 
+    function fetchAllByTypeOrderDisplay($etype, $fetchArg1=false, $fetchArg2=false, $fetchArg3=false)
+    {
+        $x = DB_DataObject::factory('core_enum');
+        $x->etype = $etype;
+        $x->active = 1;
+        $x->orderBy('display_name ASC');
+        return $x->fetchAll($fetchArg1, $fetchArg2, $fetchArg3);
+    }
+    
     function lookupObject($etype,$name, $create= false)
     {
 
@@ -344,6 +379,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
                 $seq_id = $t->seqid+1;
             }
         }
+        
         foreach($data as $row) {
             $t = DB_DAtaObject::Factory('core_enum');
 
@@ -354,7 +390,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
 
             if (empty($t->name) && $t->name != 0) {
                 print_R($data);
-                die("ERROR: invalid name used for core_enum\n\n");
+                die("ERROR:   invalid name used for core_enum\n\n" );
             }
 
             if (!$t->count()) {
@@ -430,7 +466,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
 
         $this->delete();
 
-        $roo->jok('Merged');
+        
 
     }