/** * Method to delete a row from the database table by primary key value. * * @param mixed $pk An optional primary key value to delete. If not set the instance property value is used. * * @return boolean True on success. * * @link http://docs.joomla.org/JTable/delete * @since 11.1 * @throws UnexpectedValueException */ public function delete($pk = null) { $storeHelper = new storeHelper(); /*$this->load($pk); //$result = parent::delete($pk); if ($result) { } return $result; */ if (is_array($pk)) { foreach ($pk as $pkid) { $entryStatus = $storeHelper->isAllowedToDelStore($pkid); if ($entryStatus === true) { $query = $this->_db->getQuery(true); //@TODO use query builder $query = 'DELETE FROM `#__kart_role`, `#__kart_store` USING `#__kart_store` INNER JOIN `#__kart_role` WHERE `#__kart_store`.id = `#__kart_role`.store_id AND `#__kart_store`.id = ' . $pkid; $this->_db->setQuery($query); try { $this->_db->execute(); } catch (RuntimeException $e) { $this->setError($e->getMessage()); return false; } } } } else { $entryStatus = $storeHelper->isAllowedToDelStore($pk); if ($entryStatus === true) { $query = $this->_db->getQuery(true); //@TODO use query builder $query = 'DELETE FROM `#__kart_role`, `#__kart_store` USING `#__kart_store` INNER JOIN `#__kart_role` WHERE `#__kart_store`.id = `#__kart_role`.store_id AND `#__kart_store`.id = ' . $pk; $this->_db->setQuery($query); try { $this->_db->execute(); } catch (RuntimeException $e) { $this->setError($e->getMessage()); return false; } } else { return false; } } return true; }