Example #1
0
    /**
     * 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;
    }