Ejemplo n.º 1
0
 /**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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;
 }
Ejemplo n.º 3
0
 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();
 }