/** * */ public function removeRelationship($pm_rel_table_name_or_num, $pn_relation_id) { $va_path = array_keys($this->getAppDatamodel()->getPath($this->tableName(), $pm_rel_table_name_or_num)); $vn_rel_id = $t_rel_item = null; if (sizeof($va_path) == 3 && ($t_rel = $this->getAppDatamodel()->getInstance($va_path[1]))) { $t_rel->setTransaction($this->getTransaction()); $t_rel_item = $this->getAppDatamodel()->getInstance($va_path[2], true); if ($t_rel->load($pn_relation_id)) { $vn_rel_id = $t_rel->get($t_rel_item->primaryKey()); } } if ($vn_rc = parent::removeRelationship($pm_rel_table_name_or_num, $pn_relation_id)) { if ($vn_rel_id && $t_rel_item) { $this->_setCurrent($t_rel_item->tableName(), $vn_rel_id); } } return $vn_rc; }
/** * Override BaseModel::removeRelationship() to update current location fields in ca_objects * * @param mixed $pm_rel_table_name_or_num * @param int $pn_relation_id * * @return int */ public function removeRelationship($pm_rel_table_name_or_num, $pn_relation_id) { if ($vn_rc = parent::removeRelationship($pm_rel_table_name_or_num, $pn_relation_id)) { if ($this->relationshipChangeMayAffectCurrentLocation($pm_rel_table_name_or_num, null, null)) { $this->deriveCurrentLocationForBrowse(); } } return $vn_rc; }