Current File : /home/pacjaorg/public_html/kmm/components/com_djclassifieds/controllers/checkout.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;

class DJClassifiedsControllerCheckout extends JControllerLegacy
{
	public function display($cachable = false, $urlparams = Array())
	{
		$app = JFactory::getApplication();
		$user = JFactory::getUser();
		$id	= $app->input->getInt('item_id', 0);
		$quantity = $app->input->getInt('quantity', 0);

		if(!$user->id){
			DJClassifiedsSEO::redirectLogIn(DJClassifiedsSEO::getViewUri('checkout').'&item_id='.$id.'&quantity='.$quantity);
		}
		
		parent::display();		
	}	
	
	function saveCheckout()
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$user = JFactory::getUser();
		$par = $app->getParams('com_djclassifieds');
		$model = $this->getModel('checkout');
		
		$id = $app->input->getInt('item_id', 0);		
		$quantity = $app->input->getInt('quantity', 0);
	
		$item = $model->getItemById($id);
		if(!$item){
			DJClassifiedsSEO::redirectWrongItem();
		}elseif($item->quantity < $quantity){
			DJClassifiedsSEO::redirectWrongItem($item->item_uri, 'COM_DJCLASSIFIEDS_NUMBER_OF_PRODUCTS_IS_LESS_THEN_SELECTED', 'warning');
		}elseif(!$user->id){
			DJClassifiedsSEO::redirectLogIn($item->item_uri);
		}

		$user_ip = $_SERVER['REMOTE_ADDR'];
	
		$query = "INSERT INTO #__djcf_orders(`item_id`, `user_id`, `ip_address`, `date`, `price`, `currency`, `quantity`, `status`,`item_name`) "
				."VALUES(".$item->id.", ".$user->id.", '".$user_ip."', '".JFactory::getDate()->toSQL()."', '".$item->price."', '".$item->currency."', ".$quantity.", 0, '".addslashes($item->name)."')";
		$db->setQuery($query);
		$db->execute();	
		
		$query = "SELECT * FROM #__djcf_orders WHERE item_id=".$item->id." AND user_id=".$user->id." ORDER BY id DESC LIMIT 1";
		$db->setQuery($query);
		$order = $db->loadObject();
			
		$app->triggerEvent('onAfterCheckoutSave', array(&$item, &$user, $order));
		
		if($par->get('buynow_direct_payment',0)==1 && DJClassifiedsPayment::getDirectPaymentAddress($item->user_id)){
			$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ORDER_PLACED_SUCCESSFULLY_CHOOSE_PAYMENT'), 'success');
			$app->redirect(JRoute::_(DJClassifiedsSEO::getViewUri('payment').'&type=order&id='.$order->id, false));
		}else{
			$query = "UPDATE #__djcf_orders SET status=1 WHERE id=".$order->id;
			$db->setQuery($query);
			$db->execute();

			DJClassifiedsPayment::reduceItemQuantity($item, $quantity);
			
			JTable::addIncludePath(JPATH_ROOT.'/administrator/components/com_djclassifieds/tables');
			$row = JTable::getInstance('Payments', 'DJClassifiedsTable');
			$row->item_id = $order->id;
			$row->user_id = $user->id;
			$row->method = 'djcfbanktransfer';
			$row->status = 'Completed';
			$row->ip_address = $_SERVER['REMOTE_ADDR'];
			$row->price = $item->price * $quantity;
			$row->type = 4;
			if(!$row->store()){
				throw new Exception($row->getError());
			}
			
			DJClassifiedsNotify::notifyBuynowBuyer($id,$user,$quantity);
			DJClassifiedsNotify::notifyBuynowAuthor($id,$user,$quantity);

			$app->triggerEvent('onAfterDJClassifiedsBuyNowAdvert', array($item, $order));

			$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_ORDER_PLACED_SUCCESSFULLY'), 'success');
			$app->redirect(JRoute::_($item->item_uri, false));
		}
	}

	function saveOffer()
	{
		$app = JFactory::getApplication();
		$db = JFactory::getDBO();
		$user = JFactory::getUser();
		$par = $app->getParams('com_djclassifieds');
		$model = $this->getModel('checkout');
		
		$id = $app->input->getInt('item_id', 0);
		$quantity = $app->input->getInt('offer_quantity', 1);
		$price = $app->input->getFloat('offer_price', 0);
		$offer_msg = $app->input->getVar('offer_msg');

		$item = $model->getItemById($id);
		if(!$item){
			DJClassifiedsSEO::redirectWrongItem();
		}elseif($item->quantity > 1 && $item->quantity < $quantity){
			DJClassifiedsSEO::redirectWrongItem($item->item_uri, 'COM_DJCLASSIFIEDS_NUMBER_OF_PRODUCTS_IS_LESS_THEN_SELECTED', 'warning');
		}elseif(!$user->id){
			DJClassifiedsSEO::redirectLogIn($item->item_uri);
		}

		$user_ip = $_SERVER['REMOTE_ADDR'];
		$currency = $item->currency ? $item->currency : $par->get('unit_price','EUR');
			
		$query = "INSERT INTO #__djcf_offers(`item_id`, `user_id`, `quantity`, `price`,  `currency`, `ip_address`, `message`) "
				."VALUES(".$item->id.", ".$user->id.", ".$quantity.", '".$price."', '".addslashes($currency)."', '".$user_ip."', '".addslashes($offer_msg)."')";
		$db->setQuery($query);
		$db->execute();
			
		DJClassifiedsNotify::notifyOfferBuyer($item->id,$user,$price,$quantity,$offer_msg);
		DJClassifiedsNotify::notifyOfferAuthor($item->id,$user,$price,$quantity,$offer_msg);

		$app->enqueueMessage(JText::_('COM_DJCLASSIFIEDS_OFFER_PLACED_SUCCESSFULLY'), 'success');
		$app->redirect(JRoute::_($item->item_uri, false));
	}
}
Site is undergoing maintenance

PACJA Events

Maintenance mode is on

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