コード例 #1
0
 /**
  * Returns an array of indices for the current module
  *
  * @return array
  */
 private function _getIndexVardefs()
 {
     $indexes = $this->_focus->getIndices();
     //grab any custom indexes if they exist
     if ($this->_focus->hasCustomFields()) {
         $custmIndexes = $this->_focus->db->helper->get_indices($this->_focus->table_name . '_cstm');
         $indexes = array_merge($custmIndexes, $indexes);
     }
     // remove any that are datetime or time field as we can't dupe check them correctly since we don't export
     // seconds
     $fields = $this->_focus->getFieldDefinitions();
     foreach ($indexes as $key => $index) {
         foreach ($index['fields'] as $field) {
             if (isset($fields[$field]) && ($fields[$field]['type'] == 'datetime' || $fields[$field]['type'] == 'datetimecombo' || $fields[$field]['type'] == 'time')) {
                 unset($indexes[$key]);
                 break 1;
             }
         }
     }
     if ($this->_focus->getFieldDefinition('email1')) {
         $indexes[] = array('name' => 'special_idx_email1', 'type' => 'index', 'fields' => array('email1'));
     }
     if ($this->_focus->getFieldDefinition('email2')) {
         $indexes[] = array('name' => 'special_idx_email2', 'type' => 'index', 'fields' => array('email2'));
     }
     return $indexes;
 }
コード例 #2
0
ファイル: DBHelper.php プロジェクト: rgauss/sugarcrm_dev
 /**
  * Generates sql for create table statement for a bean.
  *
  * @param  object $bean SugarBean instance
  * @return string SQL Create Table statement
  */
 public function createTableSQL(SugarBean $bean)
 {
     $tablename = $bean->getTableName();
     $fieldDefs = $bean->getFieldDefinitions();
     $indices = $bean->getIndices();
     return $this->createTableSQLParams($tablename, $fieldDefs, $indices);
 }
コード例 #3
0
 /**
  * Implements repair of a db table for a bean.
  *
  * @param  object $bean    SugarBean instance
  * @param  bool   $execute true if we want the action to take place, false if we just want the sql returned
  * @return string SQL statement or empty string, depending upon $execute
  */
 public function repairTable(SugarBean $bean, $execute = true)
 {
     $indices = $bean->getIndices();
     $fielddefs = $bean->getFieldDefinitions();
     $tablename = $bean->getTableName();
     //Clean the indicies to prevent duplicate definitions
     $new_Indecies = array();
     foreach ($indices as $ind_def) {
         $new_Indecies[$ind_def['name']] = $ind_def;
     }
     //jc: added this for beans that do not actually have a table, namely
     //ForecastOpportunities
     if ($tablename == 'does_not_exist' || $tablename == '') {
         return '';
     }
     global $dictionary;
     $engine = null;
     if (isset($dictionary[$bean->getObjectName()]['engine']) && !empty($dictionary[$bean->getObjectName()]['engine'])) {
         $engine = $dictionary[$bean->getObjectName()]['engine'];
     }
     return $this->repairTableParams($tablename, $fielddefs, $new_Indecies, $execute, $engine);
 }
コード例 #4
0
ファイル: DBManager.php プロジェクト: congtt/pj.ntk
 /**
  * Implements repair of a db table for a bean.
  *
  * @param  object $bean    SugarBean instance
  * @param  bool   $execute true if we want the action to take place, false if we just want the sql returned
  * @return string SQL statement or empty string, depending upon $execute
  */
 public function repairTable(SugarBean $bean, $execute = true)
 {
     $indices = $bean->getIndices();
     $fielddefs = $bean->getFieldDefinitions();
     $tablename = $bean->getTableName();
     //jc: added this for beans that do not actually have a table, namely
     //ForecastOpportunities
     if ($tablename == 'does_not_exist' || $tablename == '') {
         return '';
     }
     global $dictionary;
     $engine = null;
     if (isset($dictionary[$bean->getObjectName()]['engine']) && !empty($dictionary[$bean->getObjectName()]['engine'])) {
         $engine = $dictionary[$bean->getObjectName()]['engine'];
     }
     return $this->repairTableParams($tablename, $fielddefs, $indices, $execute, $engine);
 }