Current File : /home/pacjaorg/public_html/km/components/com_djclassifieds/models/userbids.php
<?php
/**
 * @package DJ-Classifieds
 * @copyright Copyright (C) DJ-Extensions.com, All rights reserved.
 * @license http://www.gnu.org/licenses GNU/GPL
 * @author url: http://dj-extensions.com
 * @author email: contact@dj-extensions.com
 */

defined ('_JEXEC') or die('Restricted access');

class DjclassifiedsModelUserbids extends DJClassifiedsModel
{	
	private static $_items_query = '';

	function getItems()
	{
		$app = JFactory::getApplication();
		$user = JFactory::getUser();
		$par = $app->getParams('com_djclassifieds');

		$limit = $app->input->getInt('limit', $par->get('limit_djitem_show','7'));
		$limitstart	= $app->input->getInt('limitstart', 0);

		$bid_type = $app->input->get('bid_type');
		if($bid_type == 'won'){
			$bid_type_where = "a.closed IS NOT NULL AND a.win=1 ";
		}elseif($bid_type == 'ended'){
			$bid_type_where = "a.closed IS NOT NULL AND a.win=0 ";
		}else{
			$bid_type_where = "a.closed IS NULL ";
		}
			 
		$order = $app->input->get('order', 'date_a');
		$ord_t = $app->input->get('ord_t', 'desc');
		$ord = "i.date_start ";
		if($order == "title"){
			$ord = "i.name ";
		}elseif($order == "date_a"){
			$ord = "i.date_start ";
		}elseif($order=="date_e"){
			$ord = "i.date_exp ";
		}
		if($ord_t == 'desc'){
			$ord .= 'DESC';
		}else{
			$ord .= 'ASC';
		}

		$query = "SELECT i.id, i.name, i.alias, i.user_id, i.date_start, i.date_exp, i.cat_id, i.region_id, i.currency, i.price_negotiable, last_bid_id, a.item_id, a.win, a.date bid_date, a.closed, u.username, u.name u_name, u.".$par->get('authorname','name')." as authorname, u.email as u_email, p.group_id, c.id c_id, c.name c_name, c.alias c_alias, r.id r_id, r.name r_name, r.alias r_alias "
		."FROM (SELECT max(id) last_bid_id FROM #__djcf_auctions WHERE user_id=".$user->id." GROUP BY item_id, closed) user_bids "
		."INNER JOIN #__djcf_auctions a ON user_bids.last_bid_id=a.id "
		."INNER JOIN #__djcf_items i ON a.item_id=i.id "
		."LEFT JOIN #__users u ON i.user_id = u.id "
		."LEFT JOIN #__djcf_profiles p ON i.user_id=p.user_id "
		."LEFT JOIN #__djcf_categories c ON i.cat_id = c.id "
		."LEFT JOIN #__djcf_regions r ON i.region_id = r.id "
		."WHERE "
		.$bid_type_where
		."ORDER BY ".$ord;
		$app->triggerEvent('onDJClassifiedsUserbidsQuery', array(&$query, &$limitstart, &$limit));
		self::$_items_query = $query;

		$items = $this->_getList($query, $limitstart, $limit);	
		
		if($items){
			$items_img = DJClassifiedsImage::getAdsImages(implode(',', array_map(function($v){return $v->id;}, $items)), true);
			
			for($i=0;$i<count($items);$i++){
				$items[$i]->images = !empty($items_img[$items[$i]->id]) ? $items_img[$items[$i]->id] : array();

				$items[$i]->bid_users = $this->_getBiddingUsers($items[$i]->item_id, $items[$i]->closed);
				$items[$i]->user_max_bid = $this->_getUserMaxBid($items[$i]->item_id, $items[$i]->closed, $user->id);
				$items[$i]->max_bid = $this->_getMaxBid($items[$i]->item_id, $items[$i]->closed);

				$items[$i]->item_uri = DJClassifiedsSEO::getItemRoute($items[$i]->id.':'.$items[$i]->alias,$items[$i]->cat_id.':'.$items[$i]->c_alias,$items[$i]->region_id.':'.$items[$i]->r_alias);
				$items[$i]->profile_uri = DJClassifiedsSEO::getViewUri('profile', array('group_id' => $items[$i]->group_id)).'&uid='.DJClassifiedsSEO::getUserSlug($items[$i]->user_id, $items[$i]->authorname);
			}
		}

		return $items;
	}

	function getCountItems()
	{
		$db = JFactory::getDBO();
		$query = "SELECT count(id) FROM (".self::$_items_query.") as q";
		$db->setQuery($query);
		$items_count = $db->loadResult();

		return $items_count;
	}

	private function _getBiddingUsers($item_id, $closing_time)
	{
		$db = JFactory::getDBO();
		$query = "SELECT DISTINCT user_id FROM #__djcf_auctions WHERE item_id=".$item_id." AND closed".($closing_time ? "=".$db->q($closing_time) : " IS NULL");
		$db->setQuery($query);
		$user_ids = $db->loadColumn();

		return count($user_ids);
	}

	private function _getUserMaxBid($item_id, $closing_time, $user_id)
	{
		$db = JFactory::getDBO();
		$query = "SELECT max(price) FROM #__djcf_auctions WHERE item_id=".$item_id." AND closed".($closing_time ? "=".$db->q($closing_time) : " IS NULL")." AND user_id=".$user_id;
		$db->setQuery($query);
		$user_max_bid = $db->loadResult();

		return $user_max_bid;
	}

	private function _getMaxBid($item_id, $closing_time)
	{
		$db = JFactory::getDBO();
		$query = "SELECT max(price) FROM #__djcf_auctions WHERE item_id=".$item_id." AND closed".($closing_time ? "=".$db->q($closing_time) : " IS NULL");
		$db->setQuery($query);
		$max_bid = $db->loadResult();

		$query = "SELECT price FROM #__djcf_orders WHERE item_id=".$item_id.($closing_time ? " AND date<=".$db->q($closing_time) : "")." ORDER BY id DESC LIMIT 1";
		$db->setQuery($query);
		$buynow = $db->loadResult();
		if($buynow){
			$max_bid = $buynow;
		}

		return $max_bid;
	}
}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

Site will be available soon. Thank you for your patience!