commit
[Pman.Core] / DataObjects / Core_enum.php
index 69dc2f0..3140cf7 100644 (file)
@@ -8,7 +8,6 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
 {
     ###START_AUTOCODE
     /* the code below is auto generated do not remove the above tag */
-
     public $__table = 'core_enum';                       // table name
     public $id;                              // int(11)  not_null primary_key auto_increment
     public $etype;                           // string(32)  not_null
@@ -28,6 +27,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'])){
@@ -137,8 +137,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();
@@ -345,6 +359,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');
 
@@ -353,7 +368,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
 
             $t->name = isset($row['name']) ? $row['name'] : '';
 
-            if (empty($t->name)) {
+            if (empty($t->name) && $t->name != 0) {
                 print_R($data);
                 die("ERROR: invalid name used for core_enum\n\n");
             }
@@ -396,8 +411,9 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
     function merge($merge_to, $roo)
     {
         $affects  = array();
-
-        $all_links = $GLOBALS['_DB_DATAOBJECT']['LINKS'][$this->_database];
+        $tn = $this->tableName();
+        $x = $this->factory($tn);
+        $all_links = $x->databaseLinks();
 
         foreach($all_links as $tbl => $links) {
             foreach($links as $col => $totbl_col) {
@@ -430,7 +446,7 @@ class Pman_Core_DataObjects_Core_enum extends DB_DataObject
 
         $this->delete();
 
-        $roo->jok('Merged');
+        
 
     }