Current File : /home/pacjaorg/public_html/km/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));
}
}