}
}
-
+ /**
+ * lookup by etype/name and return id
+ */
function lookup($etype,$name) {
$ce = DB_DataObject::Factory('core_enum');
$ce->etype = $etype;
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())
{
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');
}
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);
$seq_id++;
}
$t->insert();
+ }else{
+ $t->is_system_enum = 1;
+ $t->update();
}
if (!empty($row['cn'])) {
$this->initEnums($row['cn'], array('etype' => $t->name));