/** * Deletes all associated CustomFieldSelections * @return void */ public function DeleteAllCustomFieldSelections() { if (is_null($this->intCustomFieldValueId)) { throw new QUndefinedPrimaryKeyException('Unable to call UnassociateCustomFieldSelection on this unsaved CustomFieldValue.'); } // Get the Database Object for this Class $objDatabase = CustomFieldValue::GetDatabase(); // Perform the SQL Query $objDatabase->NonQuery(' DELETE FROM `custom_field_selection` WHERE `custom_field_value_id` = ' . $objDatabase->SqlVariable($this->intCustomFieldValueId) . ' '); }
public function Delete() { $arrEntityQtype = EntityQtypeCustomField::LoadArrayByCustomFieldId($this->CustomFieldId); parent::Delete(); foreach ($arrEntityQtype as $objEntityQtype) { $strHelperTableArray = $this->GetHelperTableByEntityQtypeId($objEntityQtype->EntityQtypeId); $strHelperTable = $strHelperTableArray[0]; $strTableName = $strHelperTableArray[1]; $strQuery = sprintf("UPDATE %s SET `cfv_%s` = NULL WHERE `cfv_%s` = '%s'", $strHelperTable, $this->CustomFieldId, $this->CustomFieldId, $this->ShortDescription); $objDatabase = CustomFieldValue::GetDatabase(); $objDatabase->NonQuery($strQuery); } /* $objCondition = QQ::Equal(QQN::CustomFieldSelection()->CustomFieldValueId, $this->CustomFieldValueId); $objClauses = QQ::Clause(QQ::Expand(QQN::CustomFieldSelection()->CustomFieldValue)); // Select all CustomFieldSelections (and expanded CustomFieldValues) by CustomFieldValueId $objCustomFieldSelectionArray = CustomFieldSelection::QueryArray($objCondition, $objClauses); //parent::Delete(); $intRowsToDeleteArray = array(); // Create an array switched by helper tables (to minimize number of queries) foreach ($objCustomFieldSelectionArray as $objCustomFieldSelection) { if ($this->GetHelperTableByEntityQtypeId($objCustomFieldSelection->EntityQtypeId)) { $intRowsToDeleteArray[$objCustomFieldSelection->EntityQtypeId][] = $objCustomFieldSelection->EntityId; } } $objDatabase = CustomFieldValue::GetDatabase(); // For each helper table foreach (array_keys($intRowsToDeleteArray) as $intEntityQtypeId) { $strHelperTableArray = $this->GetHelperTableByEntityQtypeId($intEntityQtypeId); $strHelperTable = $strHelperTableArray[0]; $strTableName = $strHelperTableArray[1]; $strQuery = sprintf("UPDATE %s SET `cfv_%s`='' WHERE `%s_id` IN (%s);", $strHelperTable, $objCustomFieldSelection->CustomFieldValue->CustomFieldId, $strTableName, implode(', ', $intRowsToDeleteArray[$intEntityQtypeId])); $objDatabase->NonQuery($strQuery); }*/ }
/** * Deletes all associated CustomFieldsAsDefault * @return void */ public function DeleteAllCustomFieldsAsDefault() { if (is_null($this->intCustomFieldValueId)) { throw new QUndefinedPrimaryKeyException('Unable to call UnassociateCustomFieldAsDefault on this unsaved CustomFieldValue.'); } // Get the Database Object for this Class $objDatabase = CustomFieldValue::GetDatabase(); // Journaling if ($objDatabase->JournalingDatabase) { foreach (CustomField::LoadArrayByDefaultCustomFieldValueId($this->intCustomFieldValueId) as $objCustomField) { $objCustomField->Journal('DELETE'); } } // Perform the SQL Query $objDatabase->NonQuery(' DELETE FROM `custom_field` WHERE `default_custom_field_value_id` = ' . $objDatabase->SqlVariable($this->intCustomFieldValueId) . ' '); }