{
###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
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
if (!empty($q['query']['empty_etype'])) {
$this->whereAdd("core_enum.etype = ''");
}
+
// this should be handled by roo... using '!name[0]' ....
if(!empty($q['!name'])){
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();
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(
$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;
}
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)
{
$seq_id = $t->seqid+1;
}
}
+
foreach($data as $row) {
$t = DB_DAtaObject::Factory('core_enum');
$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");
+ die("ERROR: invalid name used for core_enum\n\n" );
}
if (!$t->count()) {
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) {
$this->delete();
- $roo->jok('Merged');
+
}