function chado_organism_delete
2.x tripal_organism.chado_node.inc | chado_organism_delete($node) |
3.x tripal_organism.chado_node.inc | chado_organism_delete($node) |
1.x tripal_organism.module | chado_organism_delete($node) |
Delete organism from both drupal and chado databases. Check dependency before deleting from chado.
Related topics
File
- tripal_organism/
tripal_organism.module, line 373 - tripal_organism Organism Module
Code
function chado_organism_delete($node) {
$organism_id = chado_get_id_for_node('organism', $node);
// if we don't have an organism id for this node then this isn't a node of
// type chado_organism or the entry in the chado_organism table was lost.
if (!$organism_id) {
return;
}
// Remove data from the {chado_organism}, {node}, and {node_revisions} tables
$sql_del = "DELETE FROM {chado_organism} " .
"WHERE nid = %d " .
"AND vid = %d";
db_query($sql_del, $node->nid, $node->vid);
$sql_del = "DELETE FROM {node} " .
"WHERE nid = %d " .
"AND vid = %d";
db_query($sql_del, $node->nid, $node->vid);
$sql_del = "DELETE FROM {node_revisions} " .
"WHERE nid = %d " .
"AND vid = %d";
db_query($sql_del, $node->nid, $node->vid);
// Test dependency before deleting from chado database. If a library or
// feature depends on this organism, don't delete it
$sql = "SELECT feature_id FROM {feature} WHERE organism_id = %d";
$check_feature = db_result(chado_query($sql, $organism_id));
$sql = "SELECT library_id FROM {library} WHERE organism_id = %d";
$check_lib = db_result(chado_query($sql, $organism_id));
if ($check_lib == 0 && $check_feature == 0) {
tripal_core_chado_delete('organism', array('organism_id' => $organism_id));
}
else {
drupal_set_message(t("Organism deleted from drupal. Warning: at least one " .
"library or feature depends on this organism. It was " .
"not removed from chado."));
}
}