public function getTypeFields() { $tableName = MasterSQLUteis::decodeProperties(get_class($this)); $query = $this->db->query("SELECT COLUMN_NAME, DATA_TYPE, NVL(DATA_SCALE,0) DATA_SCALE FROM USER_TAB_COLUMNS WHERE TABLE_NAME = '" . $tableName . "'"); MasterSQLUteis::exception($this->db->error(), false); if ($query->num_rows() > 0) { $arrayObjects = $query->result(); $array = array(); foreach ($arrayObjects as $object) { $array[$object->COLUMN_NAME] = (object) array('dataType' => $object->DATA_TYPE, 'dataScale' => $object->DATA_SCALE); } return $array; } else { return false; } }
public function insert($array) { $class = new $this->className(); if (isset($class->getMapping()['pk']) && isset($class->getMapping()['sequence'])) { $pk = $class->getMapping()['pk']; $sequence = $class->getMapping()['sequence']; $this->db->select($sequence . '.NEXTVAL AS SEQUENCE'); $this->db->from('DUAL'); $query = $this->db->get(); MasterSQLUteis::exception($this->db->error(), false); $this->returnPk = $query->row()->SEQUENCE; $array[$pk] = $this->returnPk; } $array = (array) MasterSQLUteis::cast(new $this->className(), (object) $array); $array = MasterSQLUteis::decodeProperties($array); // ///// // verifica se há campos customizados e os exclui do insert // //// $customFields = isset($class->getMapping()['customFields']) ? $class->getMapping()['customFields'] : false; if ($customFields) { $customFields = array_keys(MasterSQLUteis::decodeProperties($customFields)); foreach ($customFields as $customField) { unset($array[$customField]); } } // ///// foreach ($array as $key => $value) { if (MasterSQLUteis::isDate($value)) { $this->db->set($key, "to_date('" . $value . "','RRRR-MM-DD HH24:MI:SS')", FALSE); } else { $this->db->set($key, $value); } } $this->db->insert($this->table); $this->error = MasterSQLUteis::exception($this->db->error()); $this->affectedRows = $this->db->affected_rows(); if ($this->error) { $this->success = $this->error; } else { $this->success = true; } return $this->returnPk; }