Esempio n. 1
0
 public static function getTaxRate($tax_rate_id, $user_id = null)
 {
     $user = Djcatalog2Helper::getUserProfile($user_id);
     $tax_rate = 0;
     if (isset($user->tax_rules)) {
         if (isset($user->tax_rules[$tax_rate_id])) {
             $tax_rate = $user->tax_rules[$tax_rate_id];
         }
     }
     return $tax_rate;
 }
Esempio n. 2
0
 public function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $this->params = Djcatalog2Helper::getParams();
     $this->model = $this->getModel();
     if ($this->params->get('cart_query_enabled', '1') != '1') {
         throw new Exception(403, JText::_('JERROR_ALERTNOAUTHOR'));
     }
     $auth = $this->params->get('cart_query_registered', '1') == '1' && $user->guest ? false : true;
     if (!$auth) {
         $return_url = base64_encode(DJCatalogHelperRoute::getQueryRoute());
         $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN'));
         return true;
     }
     $cart_items = $app->getUserState('com_djcatalog2.cart.items', array());
     $this->basket = Djcatalog2HelperCart::getInstance();
     $this->items = $this->basket->getItems();
     if (empty($this->items)) {
         $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY'));
         return true;
     }
     $user_profile = Djcatalog2Helper::getUserProfile();
     $user = Djcatalog2Helper::getUser();
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode("\n", $errors));
         return false;
     }
     $this->form = $this->get('Form');
     $data = JArrayHelper::fromObject($user_profile, false);
     $post_data = (array) $app->getUserState('com_djcatalog2.query.data', array());
     if (!empty($post_data)) {
         foreach ($post_data as $k => $v) {
             $data[$k] = $v;
         }
     }
     $this->user_valid = $this->model->validate($this->form, array('djcatalog2profile' => $data));
     $this->user_profile = $user_profile;
     $this->user = $user;
     $this->total = $this->basket->getTotal();
     $this->_prepareDocument();
     parent::display($tpl);
 }
Esempio n. 3
0
 public function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $this->params = Djcatalog2Helper::getParams();
     $price_auth = $this->params->get('price_restrict', '0') == '1' && $user->guest ? false : true;
     if (!$price_auth) {
         $return_url = base64_encode(DJCatalogHelperRoute::getCartRoute());
         $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN'));
         return true;
     }
     $cart_items = $app->getUserState('com_djcatalog2.cart.items', array());
     $this->basket = Djcatalog2HelperCart::getInstance();
     $this->items = $this->basket->getItems();
     if (empty($this->items)) {
         $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY'));
         return true;
     }
     $user_profile = Djcatalog2Helper::getUserProfile();
     $user = Djcatalog2Helper::getUser();
     if (empty($user_profile) || empty($user_profile->id)) {
         $return_url = base64_encode(DJCatalogHelperRoute::getCheckoutRoute());
         $app->setUserState('com_users.edit.profile.redirect', DJCatalogHelperRoute::getCheckoutRoute());
         $app->redirect(JRoute::_('index.php?option=com_users&view=profile&layout=edit&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_FILLIN_BILLING_DETAILS'));
         return true;
     }
     $this->user_profile = $user_profile;
     $this->user = $user;
     $this->total = $this->basket->getTotal();
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode("\n", $errors));
         return false;
     }
     $this->_prepareDocument();
     parent::display($tpl);
 }
Esempio n. 4
0
 protected function allowQuery()
 {
     $app = JFactory::getApplication();
     $user_profile = Djcatalog2Helper::getUserProfile();
     $user = Djcatalog2Helper::getUser();
     $params = JComponentHelper::getParams('com_djcatalog2');
     if ($params->get('cart_query_enabled', '1') != '1') {
         throw new Exception(403, JText::_('JERROR_ALERTNOAUTHOR'));
     }
     $auth = $params->get('cart_query_registered', '1') == '1' && $user->guest ? false : true;
     if (!$auth) {
         $return_url = base64_encode(DJCatalogHelperRoute::getQueryRoute());
         $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN'));
         return false;
     }
     $basket = Djcatalog2HelperCart::getInstance(true);
     $basket->recalculate();
     if (empty($basket) || !$basket->getItems()) {
         $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY'));
         return false;
     }
     return true;
 }
Esempio n. 5
0
 public function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $this->params = Djcatalog2Helper::getParams();
     $model = JModelLegacy::getInstance('Order', 'Djcatalog2Model', array());
     $this->setModel($model, true);
     $this->model = $this->getModel();
     if ($this->params->get('cart_enabled', '1') != '1') {
         throw new Exception(JText::_('JERROR_ALERTNOAUTHOR'), 403);
     }
     $auth = $this->params->get('cart_registered', '1') == '1' && $user->guest ? false : true;
     if (!$auth) {
         $return_url = base64_encode(DJCatalogHelperRoute::getCheckoutRoute());
         $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN'));
         return true;
     }
     $cart_items = $app->getUserState('com_djcatalog2.cart.items', array());
     $this->basket = Djcatalog2HelperCart::getInstance();
     foreach ($this->basket->items as $item) {
         if ($item->_prices['base']['display'] == 0.0 || !$item->onstock || floatval($item->stock) == 0.0) {
             $app->redirect(JRoute::_(DJCatalogHelperRoute::getCartRoute(), false), JText::sprintf('COM_DJCATALOG2_CHECKOUT_EMPTY_PRICES', JRoute::_('index.php?option=com_djcatalog2&task=cart.clearfree')));
             return true;
         }
     }
     $this->items = $this->basket->getItems();
     if (empty($this->items)) {
         $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY'));
         return true;
     }
     if (count($this->items)) {
         JModelLegacy::addIncludePath(JPATH_BASE . DS . 'components' . DS . 'com_djcatalog2' . DS . 'models', 'DJCatalog2Model');
         $itemsModel = JModelLegacy::getInstance('Items', 'Djcatalog2Model', array('ignore_request' => true));
         $parents = array();
         foreach ($this->items as $item) {
             if ($item->parent_id > 0) {
                 $parents[] = $item->parent_id;
             }
         }
         if (count($parents) > 0) {
             $state = $itemsModel->getState();
             $itemsModel->setState('list.start', 0);
             $itemsModel->setState('list.limit', 0);
             $itemsModel->setState('filter.catalogue', false);
             $itemsModel->setState('list.ordering', 'i.name');
             $itemsModel->setState('list.direction', 'asc');
             $itemsModel->setState('filter.parent', '*');
             $itemsModel->setState('filter.state', '3');
             $itemsModel->setState('filter.item_ids', $parents);
             $parentItems = $itemsModel->getItems();
             foreach ($this->items as $id => $item) {
                 if ($item->parent_id > 0 && isset($parentItems[$item->parent_id])) {
                     $this->items[$id]->parent = $parentItems[$item->parent_id];
                 } else {
                     $this->items[$id]->parent = false;
                 }
             }
         }
     }
     $user_profile = Djcatalog2Helper::getUserProfile();
     $user = Djcatalog2Helper::getUser();
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode("\n", $errors));
         return false;
     }
     $this->form = $this->get('Form');
     $data = JArrayHelper::fromObject($user_profile, false);
     $postOrder = (array) $app->getUserState('com_djcatalog2.order.data', array());
     if (!empty($postOrder)) {
         foreach ($postOrder as $k => $v) {
             $data[$k] = $v;
         }
     }
     $this->user_valid = $this->model->validate($this->form, array('djcatalog2profile' => $data), 'djcatalog2profile');
     $this->billing_valid = $this->model->validate($this->form, array('djcatalog2billing' => $data), 'djcatalog2billing');
     $dispatcher = JEventDispatcher::getInstance();
     JPluginHelper::importPlugin('djcatalog2payment');
     JPluginHelper::importPlugin('djcatalog2delivery');
     $deliveryMethods = $model->getDeliveryMethods();
     $paymentMethods = $model->getPaymentMethods('*');
     $deliveryRes = array();
     $paymentRes = array();
     foreach ($deliveryMethods as &$deliveryObject) {
         $params = new JRegistry();
         $params->loadString($deliveryObject->params, 'JSON');
         $deliveryObject->params = $params;
         $deliveryRes[$deliveryObject->id] = $dispatcher->trigger('onDJC2CheckoutDetailsDisplay', array('com_djcatalog2.checkout.delivery', $deliveryObject));
     }
     unset($deliveryObject);
     foreach ($paymentMethods as &$paymentObject) {
         $params = new JRegistry();
         $params->loadString($paymentObject->params, 'JSON');
         $paymentObject->params = $params;
         $paymentRes[$paymentObject->id] = $dispatcher->trigger('onDJC2CheckoutDetailsDisplay', array('com_djcatalog2.checkout.payment', $paymentObject));
     }
     unset($paymentObject);
     $this->delivery_info = $deliveryRes;
     $this->payment_info = $paymentRes;
     $this->user_profile = $user_profile;
     $this->user = $user;
     $this->total = $this->basket->getTotal();
     $this->product_total = $this->basket->getProductTotal();
     $this->_prepareDocument();
     parent::display($tpl);
 }
Esempio n. 6
0
 protected function loadFormData()
 {
     $data = Djcatalog2Helper::getUserProfile(JFactory::getUser()->id);
     $data = JArrayHelper::fromObject($data, false);
     $data = array('djcatalog2profile' => $data);
     $post_data = (array) JFactory::getApplication()->getUserState('com_djcatalog2.order.data', array());
     if (!empty($post_data)) {
         foreach ($post_data as $k => $v) {
             $data[$k] = $v;
         }
     }
     $this->preprocessData('com_djcatalog2.order', $data);
     return $data;
 }
Esempio n. 7
0
 public function display($tpl = null)
 {
     $app = JFactory::getApplication();
     $user = JFactory::getUser();
     $this->params = Djcatalog2Helper::getParams();
     $this->model = $this->getModel();
     if ($this->params->get('cart_query_enabled', '1') != '1') {
         throw new Exception(403, JText::_('JERROR_ALERTNOAUTHOR'));
     }
     $auth = $this->params->get('cart_query_registered', '1') == '1' && $user->guest ? false : true;
     if (!$auth) {
         $return_url = base64_encode(DJCatalogHelperRoute::getQueryRoute());
         $app->redirect(JRoute::_('index.php?option=com_users&view=login&return=' . $return_url, false), JText::_('COM_DJCATALOG2_PLEASE_LOGIN'));
         return true;
     }
     $cart_items = $app->getUserState('com_djcatalog2.cart.items', array());
     $this->basket = Djcatalog2HelperCart::getInstance();
     $this->items = $this->basket->getItems();
     if (empty($this->items)) {
         $app->redirect(JUri::base(), JText::_('COM_DJCATALOG2_CART_IS_EMPTY'));
         return true;
     }
     if (count($this->items)) {
         JModelLegacy::addIncludePath(JPATH_BASE . DS . 'components' . DS . 'com_djcatalog2' . DS . 'models', 'DJCatalog2Model');
         $itemsModel = JModelLegacy::getInstance('Items', 'Djcatalog2Model', array('ignore_request' => true));
         $parents = array();
         foreach ($this->items as $item) {
             if ($item->parent_id > 0) {
                 $parents[] = $item->parent_id;
             }
         }
         if (count($parents) > 0) {
             $state = $itemsModel->getState();
             $itemsModel->setState('list.start', 0);
             $itemsModel->setState('list.limit', 0);
             $itemsModel->setState('filter.catalogue', false);
             $itemsModel->setState('list.ordering', 'i.name');
             $itemsModel->setState('list.direction', 'asc');
             $itemsModel->setState('filter.parent', '*');
             $itemsModel->setState('filter.state', '3');
             $itemsModel->setState('filter.item_ids', $parents);
             $parentItems = $itemsModel->getItems();
             foreach ($this->items as $id => $item) {
                 if ($item->parent_id > 0 && isset($parentItems[$item->parent_id])) {
                     $this->items[$id]->parent = $parentItems[$item->parent_id];
                 } else {
                     $this->items[$id]->parent = false;
                 }
             }
         }
     }
     $user_profile = Djcatalog2Helper::getUserProfile();
     $user = Djcatalog2Helper::getUser();
     // Check for errors.
     if (count($errors = $this->get('Errors'))) {
         JError::raiseError(500, implode("\n", $errors));
         return false;
     }
     $this->form = $this->get('Form');
     $data = JArrayHelper::fromObject($user_profile, false);
     $post_data = (array) $app->getUserState('com_djcatalog2.query.data', array());
     if (!empty($post_data)) {
         foreach ($post_data as $k => $v) {
             $data[$k] = $v;
         }
     }
     $this->user_valid = $this->model->validate($this->form, array('djcatalog2profile' => $data), 'djcatalog2profile');
     $this->user_profile = $user_profile;
     $this->user = $user;
     $this->total = $this->basket->getTotal();
     $this->_prepareDocument();
     parent::display($tpl);
 }
Esempio n. 8
0
 public function addItem($item, $quantity = 1, $lazy = false)
 {
     if (is_scalar($item) && (int) $item > 0) {
         JModelLegacy::addIncludePath(JPATH_BASE . DS . 'components' . DS . 'com_djcatalog2' . DS . 'models', 'DJCatalog2Model');
         $model = JModelLegacy::getInstance('Items', 'Djcatalog2Model', array('ignore_request' => true));
         $state = $model->getState();
         $model->setState('list.start', 0);
         $model->setState('list.limit', 0);
         $user = Djcatalog2Helper::getUserProfile();
         if (isset($user->user_group_id)) {
             $model->setState('filter.customergroup', $user->user_group_id);
         }
         $model->setState('filter.catalogue', false);
         $model->setState('list.ordering', 'i.name');
         $model->setState('list.direction', 'asc');
         $item_ids = array($item);
         $model->setState('filter.item_ids', $item_ids);
         $items = $model->getItems($item);
         if (count($items) > 0) {
             $item = current($items);
         }
     }
     if (!is_object($item) || $item->available != 1) {
         $this->recalculate();
         return false;
     }
     $item_id = $item->id;
     foreach ($this->items as $k => $v) {
         if ($v->id == $item->id) {
             unset($this->items[$k]);
         }
     }
     $this->items[$item_id] = $item;
     if (isset($this->quantities[$item_id])) {
         $quantity += $this->quantities[$item_id];
     }
     $this->quantities[$item->id] = $quantity;
     if (!$lazy) {
         $this->recalculate();
     }
     return true;
 }