Your IP : 216.73.216.84


Current Path : /home/helpink/www/administrator/components/com_jbusinessdirectory/tables/
Upload File :
Current File : /home/helpink/www/administrator/components/com_jbusinessdirectory/tables/companycategory.php

<?php
/**
 * @package    J-BusinessDirectory
 *
 * @author     CMSJunkie http://www.cmsjunkie.com/
 * @copyright  Copyright (C) 2007 - 2022 CMSJunkie. All rights reserved.
 * @license    https://www.gnu.org/licenses/agpl-3.0.en.html
 */
defined('_JEXEC') or die('Restricted access');

class JTableCompanyCategory extends JTable {
	public $companyId			= null;
	public $categoryId			= null;

	/**
	 * Constructor
	 *
	 * @param object Database connector object
	 */
	public function __construct(&$db) {
		parent::__construct('#__jbusinessdirectory_company_category', 'id', $db);
	}

	public function setKey($k) {
		$this->_tbl_key = $k;
	}

	public function insertRelations($companyId, $categoryIds) {
		if (empty($categoryIds)) {
			return;
		}
		
		$db =JFactory::getDBO();
		$query = "insert into #__jbusinessdirectory_company_category(companyId, categoryId) values ";
		foreach ($categoryIds as $categoryId) {
			$query = $query."(".$companyId.",".$categoryId."),";
		}
		$query =substr($query, 0, -1);
		$query = $query." ON DUPLICATE KEY UPDATE companyId=values(companyId), categoryId=values(categoryId) ";
		
		$db->setQuery($query);
		
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}
		
		$filter ="(";
		foreach ($categoryIds as $categoryId) {
			$filter = $filter.$categoryId.",";
		}
		$filter =substr($filter, 0, -1);
		$filter = $filter.")";
		$query = "delete from #__jbusinessdirectory_company_category where companyId =$companyId and categoryId not in $filter ";
		$db->setQuery($query);
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}
		
		return true;
	}
	
	public function getSelectedCategories($companyId) {
		$db =JFactory::getDBO();
		$query = "select * from #__jbusinessdirectory_company_category  cc inner join #__jbusinessdirectory_categories c  on cc.categoryId=c.id  where companyId=".$companyId;
		$db->setQuery($query);
		return $db->loadObjectList();
	}
	
	public function getSelectedCategoriesList($companyId) {
		$db =JFactory::getDBO();
		$query = "select categoryId from #__jbusinessdirectory_company_category  cc inner join #__jbusinessdirectory_categories c  on cc.categoryId=c.id  where companyId=".$companyId;
		$db->setQuery($query);
		$list = $db->loadObjectList();
		$result = array();
		foreach ($list as $item) {
			$result[]=$item->categoryId;
		}
		
		return $result;
	}

	public function updateCategoriesNumber($companyId, $categoryNr) {
		$db =JFactory::getDBO();
		$query = "DELETE FROM #__jbusinessdirectory_company_category 
                    WHERE companyId = $companyId 
                    ORDER BY companyId ASC 
                    LIMIT $categoryNr";
		$db->setQuery($query);
		return $db->execute();
	}

	public function insertVideoRelations($videoId, $categoryIds) {
		if (empty($categoryIds)) {
			return;
		}
		
		$db =JFactory::getDBO();
		$query = "insert into #__jbusinessdirectory_video_category(video_id, category_id) values ";
		foreach ($categoryIds as $categoryId) {
			$query = $query."(".$videoId.",".$categoryId."),";
		}
		$query =substr($query, 0, -1);
		$query = $query." ON DUPLICATE KEY UPDATE video_id=values(video_id), category_id=values(category_id) ";
		
		$db->setQuery($query);
		
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}
		
		$filter ="(";
		foreach ($categoryIds as $categoryId) {
			$filter = $filter.$categoryId.",";
		}
		$filter =substr($filter, 0, -1);
		$filter = $filter.")";
		$query = "delete from #__jbusinessdirectory_video_category where video_id =$videoId and category_id not in $filter ";
		$db->setQuery($query);
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}
		
		return true;
	}
	
	public function getSelectedVideoCategories($videoId) {
		$db =JFactory::getDBO();
		$query = "select * from #__jbusinessdirectory_video_category  cc 
				  inner join #__jbusinessdirectory_categories c  on cc.category_id=c.id  where video_id=".$videoId;
		$db->setQuery($query);
		return $db->loadObjectList();
	}
	
	public function getSelectedVideoCategoriesList($videoId) {
		$db =JFactory::getDBO();
		$query = "select category_id 
				 from #__jbusinessdirectory_video_category  cc 
				 inner join #__jbusinessdirectory_categories c  on cc.category_id=c.id  where video_id=".$videoId;
		$db->setQuery($query);
		$list = $db->loadObjectList();
		$result = array();
		foreach ($list as $item) {
			$result[]=$item->category_id;
		}
		
		return $result;
	}
	
	public function getSelectedOfferCategories($offerId) {
		$db =JFactory::getDBO();
		$query = "select categoryId from #__jbusinessdirectory_company_offer_category  cc inner join #__jbusinessdirectory_categories c  on cc.categoryId=c.id  where offerId=".$offerId;
		$db->setQuery($query);
		$list = $db->loadObjectList();
		$result = array();
		foreach ($list as $item) {
			$result[]=$item->categoryId;
		}
		
		return $result;
	}

	public function getSelectedOfferCategoriesList($offerId) {
		$db =JFactory::getDBO();
		$query = "select * from #__jbusinessdirectory_company_offer_category  cc inner join #__jbusinessdirectory_categories c  on cc.categoryId=c.id  where offerId=".$offerId;
		$db->setQuery($query);
		$list = $db->loadObjectList();

		return $list;
	}

	
	public function insertOfferRelations($offerId, $categoryIds) {
		$db =JFactory::getDBO();
		
		if (empty($categoryIds)) {
			$query = "delete from #__jbusinessdirectory_company_offer_category where offerId =$offerId ";
			$db->setQuery($query);
			if (!$db->execute()) {
				echo 'INSERT / UPDATE sql STATEMENT error !';
				return false;
			}
			
			return;
		}
			
		$db =JFactory::getDBO();
		$query = "insert into #__jbusinessdirectory_company_offer_category(offerId, categoryId) values ";
		foreach ($categoryIds as $categoryId) {
			$query = $query."(".$offerId.",".$categoryId."),";
		}
		$query =substr($query, 0, -1);
		$query = $query." ON DUPLICATE KEY UPDATE offerId=values(offerId), categoryId=values(categoryId) ";
	
		$db->setQuery($query);
	
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}
	
		$filter ="(";
		foreach ($categoryIds as $categoryId) {
			$filter = $filter.$categoryId.",";
		}
		$filter =substr($filter, 0, -1);
		$filter = $filter.")";
		$query = "delete from #__jbusinessdirectory_company_offer_category where offerId =$offerId and categoryId not in $filter ";
		$db->setQuery($query);
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}
	
		return true;
	}
	
	public function getSelectedEventCategories($eventId) {
		$db =JFactory::getDBO();
		$query = "select categoryId from #__jbusinessdirectory_company_event_category  cc 
				  inner join #__jbusinessdirectory_categories c  on cc.categoryId=c.id  where eventId=".$eventId;
		
		$db->setQuery($query);
		$list = $db->loadObjectList();
		$result = array();
		foreach ($list as $item) {
			$result[]=$item->categoryId;
		}
	
		return $result;
	}

	public function getSelectedEventCategoriesList($eventId) {
		$db =JFactory::getDBO();
		$query = "select * from #__jbusinessdirectory_company_event_category  cc 
				  inner join #__jbusinessdirectory_categories c  on cc.categoryId=c.id  where eventId=".$eventId;

		$db->setQuery($query);
		$list = $db->loadObjectList();

		return $list;
	}

	public function getSelectedAttributeCategories($attributeId) {
		$db =JFactory::getDbo();
		$query = "select * from #__jbusinessdirectory_attribute_category  cc inner join #__jbusinessdirectory_categories c  on cc.categoryId=c.id  where attributeId=".$attributeId;

		$db->setQuery($query);
		$list = $db->loadObjectList();
		$result = array();
		foreach ($list as $item) {
			$result[]=$item->categoryId;
		}

		$db->setQuery($query);
		return $result;
	}
	
	public function insertEventRelations($eventId, $categoryIds) {
		$db =JFactory::getDBO();
	
		if (empty($categoryIds)) {
			$query = "delete from #__jbusinessdirectory_company_event_category where eventId =$eventId ";
			$db->setQuery($query);
			if (!$db->execute()) {
				echo 'INSERT / UPDATE sql STATEMENT error !';
				return false;
			}
				
			return;
		}
			
		$db =JFactory::getDBO();
		$query = "insert into #__jbusinessdirectory_company_event_category(eventId, categoryId) values ";
		foreach ($categoryIds as $categoryId) {
			$query = $query."(".$eventId.",".$categoryId."),";
		}
		$query =substr($query, 0, -1);
		$query = $query." ON DUPLICATE KEY UPDATE eventId=values(eventId), categoryId=values(categoryId) ";
	
		$db->setQuery($query);
	
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}
	
		$filter ="(";
		foreach ($categoryIds as $categoryId) {
			$filter = $filter.$categoryId.",";
		}
		$filter =substr($filter, 0, -1);
		$filter = $filter.")";
		$query = "delete from #__jbusinessdirectory_company_event_category where eventId =$eventId and categoryId not in $filter ";
		$db->setQuery($query);
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}
	
		return true;
	}

	public function getCategoriesByType($searchDetails, $type = 1, $limitstart = 0, $limit = 0) {
		$db = JFactory::getDbo();

		$keyword = isset($searchDetails['keyword'])?$searchDetails['keyword']:null;
		$orderBy = isset($searchDetails["orderBy"])?$searchDetails["orderBy"]:null;
		$asc_desc = isset($searchDetails["asc_desc"])?$searchDetails["asc_desc"]:null;

		$whereNameCond='';
		if (!empty($keyword)) {
			$keyword = $db->escape($keyword);
			$whereNameCond=" and (c.name like '%$keyword%' or c.description like '%$keyword%') ";
		}

		if (empty($asc_desc)) {
			$asc_desc = "";
		}

		if ($orderBy=="rand()" || empty($orderBy)) {
			$orderBy = "c.id";
			$asc_desc = "desc";
		}

		$query = " select c.id, c.name, c.alias, c.description
		 		   from #__jbusinessdirectory_categories c
		 		   where c.published = 1 $whereNameCond and c.type = $type
		 		   order by $orderBy $asc_desc
		 		   ";

		$db->setQuery($query, $limitstart, $limit);
		return $db->loadObjectList();
	}

	public function insertAttributeRelations($attributeId, $categoryIds) {
		$db =JFactory::getDBO();

		if (empty($categoryIds)) {
			$query = "delete from #__jbusinessdirectory_attribute_category where attributeId =".$attributeId;
			$db->setQuery($query);
			if (!$db->execute()) {
				echo 'INSERT / UPDATE sql STATEMENT error !';
				return false;
			}

			return;
		}

		$db =JFactory::getDBO();
		$query = "insert into #__jbusinessdirectory_attribute_category(attributeId, categoryId) values ";
		foreach ($categoryIds as $categoryId) {
			$query = $query."(".$attributeId.",".$categoryId."),";
		}
		$query =substr($query, 0, -1);
		$query = $query." ON DUPLICATE KEY UPDATE attributeId=values(attributeId), categoryId=values(categoryId) ";

		$db->setQuery($query);

		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}

		$filter ="(";
		foreach ($categoryIds as $categoryId) {
			$filter = $filter.$categoryId.",";
		}
		$filter =substr($filter, 0, -1);
		$filter = $filter.")";
		$query = "delete from #__jbusinessdirectory_attribute_category where attributeId =$attributeId and categoryId not in $filter ";
		$db->setQuery($query);
		if (!$db->execute()) {
			echo 'INSERT / UPDATE sql STATEMENT error !';
			return false;
		}

		return true;
	}
}