diff --git a/application/core/DB_Model.php b/application/core/DB_Model.php index 6591e7288..e0c318961 100644 --- a/application/core/DB_Model.php +++ b/application/core/DB_Model.php @@ -4,6 +4,8 @@ class DB_Model extends FHC_Model { protected $dbTable; // Name of the DB-Table for CI-Insert, -Update, ... protected $pk; // Name of the PrimaryKey for DB-Update, Load, ... + protected $hasSequence; // False if this table has a composite primary key that is not using a sequence + // True if this table has a primary key that uses a sequence protected $acl; // Name of the PrimaryKey for DB-Update, Load, ... function __construct($dbTable = null, $pk = null) @@ -11,6 +13,7 @@ class DB_Model extends FHC_Model parent::__construct(); $this->dbTable = $dbTable; $this->pk = $pk; + $this->hasSequence = true; $this->load->database(); $this->acl = $this->config->item('fhc_acl'); } @@ -34,19 +37,27 @@ class DB_Model extends FHC_Model // DB-INSERT if ($this->db->insert($this->dbTable, $data)) { + // If the table has a primary key that uses a sequence + if ($this->hasSequence === true) + { + return $this->_success($this->db->insert_id()); + } // Avoid to use method insert_id() from CI because it forces to have a sequence // and doesn't return the primary key when it's composed by more columns - $primaryKeysArray = array(); - - foreach ($this->pk as $key => $value) + else { - if(isset($data[$value])) + $primaryKeysArray = array(); + + foreach ($this->pk as $key => $value) { - $primaryKeysArray[$value] = $data[$value]; + if (isset($data[$value])) + { + $primaryKeysArray[$value] = $data[$value]; + } } + + return $this->_success($primaryKeysArray); } - - return $this->_success($primaryKeysArray); } else return $this->_error($this->db->error(), FHC_DB_ERROR); diff --git a/application/models/crm/Prestudentstatus_model.php b/application/models/crm/Prestudentstatus_model.php index dbc6f3abe..8f6b57a41 100644 --- a/application/models/crm/Prestudentstatus_model.php +++ b/application/models/crm/Prestudentstatus_model.php @@ -1,7 +1,7 @@ dbTable = 'public.tbl_prestudentstatus'; $this->pk = array('ausbildungssemester', 'studiensemester_kurzbz', 'status_kurzbz', 'prestudent_id'); + $this->hasSequence = false; } -} +} \ No newline at end of file