Example #1
-1
 /**
  * Change quantity of a certain product
  * @param sArticle = The article to update
  * @param sQuantity = new quantity
  * Forward to cart / confirm view after success
  */
 public function changeQuantityAction()
 {
     if ($this->Request()->getParam('sArticle') && $this->Request()->getParam('sQuantity')) {
         $this->View()->sBasketInfo = $this->basket->sUpdateArticle($this->Request()->getParam('sArticle'), $this->Request()->getParam('sQuantity'));
     }
     $this->forward($this->Request()->getParam('sTargetAction', 'index'));
 }
Example #2
-1
 /**
  * @covers sBasket::sUpdateArticle
  */
 public function testsUpdateArticle()
 {
     // Null args, false result
     $this->assertFalse($this->module->sUpdateArticle(null, null));
     $this->module->sSYSTEM->sSESSION_ID = uniqid();
     $this->session->offsetSet('sessionId', $this->module->sSYSTEM->sSESSION_ID);
     // Get random article
     $randomArticle = $this->db->fetchRow('SELECT detail.articleID, detail.ordernumber
         FROM s_articles_details detail
         INNER JOIN s_articles article
           ON article.id = detail.articleID
         WHERE detail.active = 1
         ORDER BY RAND() LIMIT 1');
     $this->db->insert('s_order_basket', array('price' => 0.01, 'quantity' => 1, 'sessionID' => $this->session->get('sessionId'), 'ordernumber' => $randomArticle['ordernumber'], 'articleID' => $randomArticle['articleID']));
     $basketId = $this->db->lastInsertId();
     // Store previous amount
     $previousAmount = $this->module->sGetAmount();
     $this->assertEquals(array('totalAmount' => 0.01), $previousAmount);
     // Update the article, prices are recalculated
     $this->assertNull($this->module->sUpdateArticle($basketId, 1));
     $oneAmount = $this->module->sGetAmount();
     $this->assertGreaterThan($previousAmount['totalAmount'], $oneAmount['totalAmount']);
     // Update from 1 to 2, we should get a more expensive cart
     $this->assertNull($this->module->sUpdateArticle($basketId, 2));
     $twoAmount = $this->module->sGetAmount();
     $this->assertGreaterThanOrEqual($oneAmount['totalAmount'], $twoAmount['totalAmount']);
     $this->assertLessThanOrEqual(2 * $oneAmount['totalAmount'], $twoAmount['totalAmount']);
     // Housekeeping
     $this->db->delete('s_order_basket', array('sessionID = ?' => $this->session->get('sessionId')));
 }