Example #1
0
 /**
  * Get article data for sAddArticle
  *
  * @param int $id Article ordernumber
  * @return array|false Article data, or false if none found
  */
 private function getArticleForAddArticle($id)
 {
     $sql = "\n            SELECT s_articles.id AS articleID, name AS articleName, taxID,\n              additionaltext, s_articles_details.shippingfree, laststock, instock,\n              s_articles_details.id as articledetailsID, ordernumber\n            FROM s_articles, s_articles_details\n            WHERE s_articles_details.ordernumber = ?\n            AND s_articles_details.articleID = s_articles.id\n            AND s_articles.active = 1\n            AND (\n                SELECT articleID\n                FROM s_articles_avoid_customergroups\n                WHERE articleID = s_articles.id AND customergroupID = ?\n            ) IS NULL\n        ";
     $article = $this->db->fetchRow($sql, array($id, $this->sSYSTEM->sUSERGROUPDATA["id"]));
     $article = $this->eventManager->filter('Shopware_Modules_Basket_getArticleForAddArticle_FilterArticle', $article, array("id" => $id, 'subject' => $this, "partner" => $this->sSYSTEM->_SESSION["sPartner"]));
     if (!$article) {
         return false;
     }
     $name = $this->moduleManager->Articles()->sGetArticleNameByOrderNumber($article["ordernumber"], true);
     if (!empty($name)) {
         $article["articleName"] = $name["articleName"];
         $article["additionaltext"] = $name["additionaltext"];
     }
     return $article;
 }
Example #2
0
 /**
  * Get article data for sAddArticle
  *
  * @param int $id Article ordernumber
  * @return array|false Article data, or false if none found
  */
 private function getArticleForAddArticle($id)
 {
     $sql = "\n            SELECT s_articles.id AS articleID, s_articles.main_detail_id, name AS articleName, taxID,\n              additionaltext, s_articles_details.shippingfree, laststock, instock,\n              s_articles_details.id as articledetailsID, ordernumber,\n              s_articles.configurator_set_id\n            FROM s_articles, s_articles_details\n            WHERE s_articles_details.ordernumber = ?\n            AND s_articles_details.articleID = s_articles.id\n            AND s_articles.active = 1\n            AND (\n                SELECT articleID\n                FROM s_articles_avoid_customergroups\n                WHERE articleID = s_articles.id AND customergroupID = ?\n            ) IS NULL\n        ";
     $article = $this->db->fetchRow($sql, array($id, $this->sSYSTEM->sUSERGROUPDATA["id"]));
     $article = $this->eventManager->filter('Shopware_Modules_Basket_getArticleForAddArticle_FilterArticle', $article, array("id" => $id, 'subject' => $this, "partner" => $this->sSYSTEM->_SESSION["sPartner"]));
     if (!$article) {
         return false;
     }
     $article = $this->moduleManager->Articles()->sGetTranslation($article, $article['articleID'], "article");
     $article = $this->moduleManager->Articles()->sGetTranslation($article, $article['articledetailsID'], "variant");
     if ($article['configurator_set_id'] > 0) {
         $context = $this->contextService->getProductContext();
         $product = Shopware()->Container()->get('shopware_storefront.list_product_service')->get($article['ordernumber'], $context);
         $product = $this->additionalTextService->buildAdditionalText($product, $context);
         $article['additionaltext'] = $product->getAdditional();
     }
     return $article;
 }
Example #3
0
 /**
  * Returns the category path to which the
  * article belongs, inside the category subtree.
  * Used internally in sSmartyCategoryPath
  *
  * @param int $articleId Id of the article to look for
  * @param int $parentId Category subtree root id. If null, the shop category is used.
  * @return null|array Category path, or null if no category found
  */
 private function sCategoryPathByArticleId($articleId, $parentId = null)
 {
     $categoryId = $this->moduleManager->Categories()->sGetCategoryIdByArticleId($articleId, $parentId);
     return empty($categoryId) ? null : $this->sCategoryPath($categoryId);
 }
Example #4
0
 /**
  * Helper method for sAdmin::sGetOpenOrderData()
  *
  * @param $orderValue
  * @param $getOrders
  * @param $orderKey
  * @return mixed
  */
 private function processOpenOrderDetails($orderValue, $getOrders, $orderKey)
 {
     $getOrderDetails = $this->db->fetchAll('SELECT * FROM s_order_details WHERE orderID = ? ORDER BY id ASC', array($orderValue["id"]));
     if (!count($getOrderDetails)) {
         unset($getOrders[$orderKey]);
         return $getOrders;
     }
     $active = 1;
     foreach ($getOrderDetails as $orderDetailsKey => $orderDetailsValue) {
         $getOrderDetails[$orderDetailsKey]["amount"] = $this->moduleManager->Articles()->sFormatPrice(round($orderDetailsValue["price"] * $orderDetailsValue["quantity"], 2));
         $getOrderDetails[$orderDetailsKey]["price"] = $this->moduleManager->Articles()->sFormatPrice($orderDetailsValue["price"]);
         $tmpArticle = $this->moduleManager->Articles()->sGetProductByOrdernumber($getOrderDetails[$orderDetailsKey]['articleordernumber']);
         if (!empty($tmpArticle) && is_array($tmpArticle)) {
             // Set article in activate state
             $getOrderDetails[$orderDetailsKey]['active'] = 1;
             if (!empty($tmpArticle['purchaseunit'])) {
                 $getOrderDetails[$orderDetailsKey]['purchaseunit'] = $tmpArticle['purchaseunit'];
             }
             if (!empty($tmpArticle['referenceunit'])) {
                 $getOrderDetails[$orderDetailsKey]['referenceunit'] = $tmpArticle['referenceunit'];
             }
             if (!empty($tmpArticle['referenceprice'])) {
                 $getOrderDetails[$orderDetailsKey]['referenceprice'] = $tmpArticle['referenceprice'];
             }
             if (!empty($tmpArticle['sUnit']) && is_array($tmpArticle['sUnit'])) {
                 $getOrderDetails[$orderDetailsKey]['sUnit'] = $tmpArticle['sUnit'];
             }
             if (!empty($tmpArticle['price'])) {
                 $getOrderDetails[$orderDetailsKey]['currentPrice'] = $tmpArticle['price'];
             }
             if (!empty($tmpArticle['pseudoprice'])) {
                 $getOrderDetails[$orderDetailsKey]['currentPseudoprice'] = $tmpArticle['pseudoprice'];
             }
             $getOrderDetails[$orderDetailsKey]['currentHas_pseudoprice'] = $tmpArticle['has_pseudoprice'];
             // Set article in deactivate state if it's an variant or configurator article
             if ($tmpArticle['sVariantArticle'] === true || $tmpArticle['sConfigurator'] === true) {
                 $getOrderDetails[$orderDetailsKey]['active'] = 0;
                 $active = 0;
             }
         } else {
             $getOrderDetails[$orderDetailsKey]['active'] = 0;
             $active = 0;
         }
         // Check for serial
         if ($getOrderDetails[$orderDetailsKey]["esdarticle"]) {
             $numbers = array();
             $getSerial = $this->db->fetchAll('SELECT serialnumber
                 FROM s_articles_esd_serials, s_order_esd
                 WHERE userID = ?
                 AND orderID = ?
                 AND orderdetailsID = ?
                 AND s_order_esd.serialID = s_articles_esd_serials.id', array($this->session->offsetGet('sUserId'), $orderValue["id"], $orderDetailsValue["id"]));
             foreach ($getSerial as $serial) {
                 $numbers[] = $serial["serialnumber"];
             }
             $getOrderDetails[$orderDetailsKey]["serial"] = implode(",", $numbers);
             $getOrderDetails[$orderDetailsKey]["esdLink"] = $this->config->get('sBASEFILE') . '?sViewport=account&sAction=download&esdID=' . $orderDetailsValue['id'];
         }
     }
     $getOrders[$orderKey]['activeBuyButton'] = $active;
     $getOrders[$orderKey]["details"] = $getOrderDetails;
     return $getOrders;
 }