/** * Change the shopper * * @author Maik Künnemann */ public function changeShopper() { vRequest::vmCheckToken() or jexit('Invalid Token'); $app = JFactory::getApplication(); $redirect = vRequest::getString('redirect', false); if ($redirect) { $red = $redirect; } else { $red = JRoute::_('index.php?option=com_virtuemart&view=cart'); } $id = vmAccess::getBgManagerId(); $current = JFactory::getUser(); $manager = vmAccess::manager('user'); if (!$manager) { $app->enqueueMessage(vmText::sprintf('COM_VIRTUEMART_CART_CHANGE_SHOPPER_NO_PERMISSIONS', $current->name . ' (' . $current->username . ')'), 'error'); $app->redirect($red); return false; } $userID = vRequest::getCmd('userID'); if ($manager and !empty($userID) and $userID != $current->id) { if ($userID == $id) { } else { if (vmAccess::manager('user', $userID)) { //if($newUser->authorise('core.admin', 'com_virtuemart') or $newUser->authorise('vm.user', 'com_virtuemart')){ $app->enqueueMessage(vmText::sprintf('COM_VIRTUEMART_CART_CHANGE_SHOPPER_NO_PERMISSIONS', $current->name . ' (' . $current->username . ')'), 'error'); $app->redirect($red); } } } $searchShopper = vRequest::getString('searchShopper'); if (!empty($searchShopper)) { $this->display(); return false; } //update session $session = JFactory::getSession(); $adminID = $session->get('vmAdminID'); if (!isset($adminID)) { if (!class_exists('vmCrypt')) { require VMPATH_ADMIN . DS . 'helpers' . DS . 'vmcrypt.php'; } $session->set('vmAdminID', vmCrypt::encrypt($current->id)); } $newUser = JFactory::getUser($userID); $session->set('user', $newUser); //update cart data $cart = VirtueMartCart::getCart(); $usermodel = VmModel::getModel('user'); $data = $usermodel->getUserAddressList(vRequest::getCmd('userID'), 'BT'); if (isset($data[0])) { foreach ($data[0] as $k => $v) { $data[$k] = $v; } } $cart->BT['email'] = $newUser->email; $cart->ST = 0; $cart->STsameAsBT = 1; $cart->selected_shipto = 0; $cart->virtuemart_shipmentmethod_id = 0; $cart->saveAddressInCart($data, 'BT'); $msg = vmText::sprintf('COM_VIRTUEMART_CART_CHANGED_SHOPPER_SUCCESSFULLY', $newUser->name . ' (' . $newUser->username . ')'); if (empty($userID)) { $red = JRoute::_('index.php?option=com_virtuemart&view=user&task=editaddresscart&addrtype=BT'); $msg = vmText::sprintf('COM_VIRTUEMART_CART_CHANGED_SHOPPER_SUCCESSFULLY', ''); } $app->enqueueMessage($msg, 'info'); $app->redirect($red); }
/** * Todo, works only for small stores, we need a new solution there with a bit filtering * For example by time, if already shopper, and a simple search * @return object list of users */ function getUserList() { $result = false; if ($this->allowChangeShopper) { $this->adminID = vmAccess::getBgManagerId(); $superVendor = vmAccess::isSuperVendor($this->adminID); if ($superVendor) { $uModel = VmModel::getModel('user'); $result = $uModel->getSwitchUserList($superVendor, $this->adminID); } } if (!$result) { $this->allowChangeShopper = false; } return $result; }
function check() { if (empty($this->order_number)) { if (!class_exists('tsmartModelOrders')) { tmsModel::getModel('orders'); } $this->order_number = tsmartModelOrders::genStdOrderNumber($this->tsmart_vendor_id); } if (empty($this->order_pass)) { if (!class_exists('tsmartModelOrders')) { tmsModel::getModel('orders'); } $this->order_pass = tsmartModelOrders::genStdOrderPass(); } if ($adminID = vmAccess::getBgManagerId()) { $this->created_by = $adminID; } return parent::check(); }