/**
  * @param array $containers
  * @param array $orderData
  * @return array
  */
 public function getPayPalInvoiceContentInfo(array $containers, array $orderData)
 {
     $footer = $containers['Paypal_Content_Info'];
     $translationComp = new Shopware_Components_Translation();
     $translation = $translationComp->read($orderData['_order']['language'], 'documents', 1);
     $query = "SELECT * FROM s_core_documents_box WHERE id = ?";
     $rawFooter = $this->db->fetchAssoc($query, array($footer['id']));
     if (!empty($translation[1]["Paypal_Content_Info_Value"])) {
         $rawFooter["value"] = $translation[1]["Paypal_Content_Info_Value"];
     }
     return $rawFooter[$footer['id']];
 }
Esempio n. 2
0
 public function sBuildTagCloud($categoryId = null)
 {
     $categoryId = (int) $categoryId;
     if (empty($categoryId)) {
         $categoryId = $this->categoryId;
     }
     if (!empty($this->sSYSTEM->sCONFIG['sTAGCLOUDMAX'])) {
         $tagSize = (int) $this->sSYSTEM->sCONFIG['sTAGCLOUDMAX'];
     } else {
         $tagSize = 50;
     }
     if (!empty($this->sSYSTEM->sCONFIG['sTAGTIME'])) {
         $tagTime = (int) $this->sSYSTEM->sCONFIG['sTAGTIME'];
     } else {
         $tagTime = 3;
     }
     $sql = "\n            SELECT\n              a.id as articleID,\n              a.name as articleName,\n              COUNT(r.articleID) as relevance\n\n            FROM s_articles a\n            INNER JOIN s_articles_categories_ro ac\n                ON  ac.articleID = a.id\n                AND ac.categoryID = {$categoryId}\n            INNER JOIN s_categories c\n                ON  c.id = ac.categoryID\n                AND c.active = 1\n\n            LEFT JOIN s_emarketing_lastarticles r\n            ON a.id = r.articleID\n            AND r.time >= DATE_SUB(NOW(),INTERVAL {$tagTime} DAY)\n\n            LEFT JOIN s_articles_avoid_customergroups ag\n            ON ag.articleID=a.id\n            AND ag.customergroupID={$this->customerGroupId}\n\n            WHERE a.active = 1\n            AND ag.articleID IS NULL\n\n            GROUP BY a.id\n            ORDER BY COUNT(r.articleID) DESC\n            LIMIT {$tagSize}\n        ";
     $articles = $this->db->fetchAssoc($sql);
     array_walk($articles, function (&$article) {
         unset($article['articleID']);
     });
     if (empty($articles)) {
         return array();
     }
     $articles = $this->sSYSTEM->sMODULES["sArticles"]->sGetTranslations($articles, "article");
     $pos = 1;
     $anz = count($articles);
     if (!empty($this->sSYSTEM->sCONFIG['sTAGCLOUDSPLIT'])) {
         $steps = (int) $this->sSYSTEM->sCONFIG['sTAGCLOUDSPLIT'];
     } else {
         $steps = 3;
     }
     if (!empty($this->sSYSTEM->sCONFIG['sTAGCLOUDCLASS'])) {
         $class = (string) $this->sSYSTEM->sCONFIG['sTAGCLOUDCLASS'];
     } else {
         $class = "tag";
     }
     $link = $this->sSYSTEM->sCONFIG['sBASEFILE'] . "?sViewport=detail&sArticle=";
     foreach ($articles as $articleId => $article) {
         $name = strip_tags(html_entity_decode($article['articleName'], ENT_QUOTES, 'UTF-8'));
         $name = preg_replace("/[^\\w0-9äöüßÄÖÜ´`.-]/u", " ", $name);
         $name = preg_replace('/\\s\\s+/', ' ', $name);
         $name = preg_replace('/\\(.*\\)/', '', $name);
         $name = trim($name, " -");
         $articles[$articleId]["articleID"] = $articleId;
         $articles[$articleId]["name"] = $name;
         if ($anz != 0) {
             $articles[$articleId]["class"] = $class . round($pos / $anz * $steps);
         } else {
             $articles[$articleId]["class"] = $class . 0;
         }
         $articles[$articleId]["link"] = $link . $articleId;
         $pos++;
     }
     shuffle($articles);
     return $articles;
 }
Esempio n. 3
0
 private function getNoteProducts()
 {
     $responseCookies = $this->front->Response()->getCookies();
     if (isset($responseCookies['sUniqueID']['value']) && $responseCookies['sUniqueID']['value']) {
         $uniqueId = $responseCookies['sUniqueID']['value'];
     } else {
         $uniqueId = $this->front->Request()->getCookie('sUniqueID');
     }
     $notes = $this->db->fetchAssoc('
         SELECT n.ordernumber as arrayKey, n.*
         FROM s_order_notes n, s_articles a
         WHERE (sUniqueID = ? OR (userID != 0 AND userID = ?))
         AND a.id = n.articleID AND a.active = 1
         ORDER BY n.datum DESC', array(empty($uniqueId) ? $this->session->get('sessionId') : $uniqueId, $this->session->get('sUserId', 0)));
     return $notes;
 }
Esempio n. 4
0
 /**
  * Get dispatch methods
  *
  * @param int $countryID Country id
  * @param int $paymentID Payment mean id
  * @param int $stateId Country state id
  * @return array Shipping methods data
  */
 public function sGetPremiumDispatches($countryID = null, $paymentID = null, $stateId = null)
 {
     $this->sCreateHolidaysTable();
     $basket = $this->sGetDispatchBasket($countryID, $paymentID, $stateId);
     $statements = $this->db->fetchPairs("\n            SELECT id, bind_sql\n            FROM s_premium_dispatch\n            WHERE active = 1 AND type IN (0)\n            AND bind_sql IS NOT NULL AND bind_sql != ''\n        ");
     if (empty($basket)) {
         return array();
     }
     $sql_where = "";
     foreach ($statements as $dispatchID => $statement) {
         $sql_where .= " AND ( d.id != {$dispatchID} OR ({$statement})) ";
     }
     $sql_basket = array();
     foreach ($basket as $key => $value) {
         $sql_basket[] = $this->db->quote($value) . " as `{$key}`";
     }
     $sql_basket = implode(', ', $sql_basket);
     $sql = "\n            SELECT\n                d.id as `key`,\n                d.id, d.name,\n                d.description,\n                d.calculation,\n                d.status_link,\n                b.*\n            FROM s_premium_dispatch d\n\n            JOIN ( SELECT {$sql_basket} ) b\n            JOIN s_premium_dispatch_countries dc\n            ON d.id = dc.dispatchID\n            AND dc.countryID=b.countryID\n            JOIN s_premium_dispatch_paymentmeans dp\n            ON d.id = dp.dispatchID\n            AND dp.paymentID=b.paymentID\n            LEFT JOIN s_premium_holidays h\n            ON h.date = CURDATE()\n            LEFT JOIN s_premium_dispatch_holidays dh\n            ON d.id=dh.dispatchID\n            AND h.id=dh.holidayID\n\n            LEFT JOIN (\n                SELECT dc.dispatchID\n                FROM s_order_basket b\n                JOIN s_articles_categories_ro ac\n                ON ac.articleID=b.articleID\n                JOIN s_premium_dispatch_categories dc\n                ON dc.categoryID=ac.categoryID\n                WHERE b.modus=0\n                AND b.sessionID='{$this->session->offsetGet('sessionId')}'\n                GROUP BY dc.dispatchID\n            ) as dk\n            ON dk.dispatchID=d.id\n\n            LEFT JOIN s_user u\n            ON u.id=b.userID\n            AND u.active=1\n\n            LEFT JOIN s_user_billingaddress ub\n            ON ub.userID=u.id\n\n            LEFT JOIN s_user_shippingaddress us\n            ON us.userID=u.id\n\n            WHERE d.active=1\n            AND (\n                (bind_time_from IS NULL AND bind_time_to IS NULL)\n            OR\n                (IFNULL(bind_time_from,0) <= IFNULL(bind_time_to,86400) AND TIME_TO_SEC(DATE_FORMAT(NOW(),'%H:%i:00')) BETWEEN IFNULL(bind_time_from,0) AND IFNULL(bind_time_to,86400))\n            OR\n                (bind_time_from > bind_time_to AND TIME_TO_SEC(DATE_FORMAT(NOW(),'%H:%i:00')) NOT BETWEEN bind_time_to AND bind_time_from)\n            )\n            AND (\n                (bind_weekday_from IS NULL AND bind_weekday_to IS NULL)\n            OR\n                (IFNULL(bind_weekday_from,1) <= IFNULL(bind_weekday_to,7) AND WEEKDAY(NOW())+1 BETWEEN IFNULL(bind_weekday_from,1) AND IFNULL(bind_weekday_to,7))\n            OR\n                (bind_weekday_from > bind_weekday_to AND WEEKDAY(NOW())+1 NOT BETWEEN bind_weekday_to AND bind_weekday_from)\n            )\n            AND (bind_weight_from IS NULL OR bind_weight_from <= b.weight)\n            AND (bind_weight_to IS NULL OR bind_weight_to >= b.weight)\n            AND (bind_price_from IS NULL OR bind_price_from <= b.amount)\n            AND (bind_price_to IS NULL OR bind_price_to >= b.amount)\n            AND (bind_instock=0 OR bind_instock IS NULL OR (bind_instock=1 AND b.instock) OR (bind_instock=2 AND b.stockmin))\n            AND (bind_laststock=0 OR (bind_laststock=1 AND b.laststock))\n            AND (bind_shippingfree!=1 OR NOT b.shippingfree)\n            AND dh.holidayID IS NULL\n            AND (d.multishopID IS NULL OR d.multishopID=b.multishopID)\n            AND (d.customergroupID IS NULL OR d.customergroupID=b.customergroupID)\n            AND dk.dispatchID IS NULL\n            AND d.type IN (0)\n            {$sql_where}\n            GROUP BY d.id\n            ORDER BY d.position, d.name\n        ";
     $dispatches = $this->db->fetchAssoc($sql);
     if (empty($dispatches)) {
         $sql = "\n                SELECT\n                    d.id as `key`,\n                    d.id, d.name,\n                    d.description,\n                    d.calculation,\n                    d.status_link\n                FROM s_premium_dispatch d\n\n                WHERE d.active=1\n                AND d.type=1\n                GROUP BY d.id\n\n                ORDER BY d.position, d.name\n                LIMIT 1\n            ";
         $dispatches = $this->db->fetchAssoc($sql);
     }
     $names = array();
     foreach ($dispatches as $dispatchID => $dispatch) {
         if (in_array($dispatch['name'], $names)) {
             unset($dispatches[$dispatchID]);
         } else {
             $names[] = $dispatch['name'];
         }
     }
     unset($names);
     $object = $this->sGetDispatchTranslation();
     foreach ($dispatches as &$dispatch) {
         if (!empty($object[$dispatch['id']]['dispatch_name'])) {
             $dispatch['name'] = $object[$dispatch['id']]['dispatch_name'];
         }
         if (!empty($object[$dispatch['id']]['dispatch_description'])) {
             $dispatch['description'] = $object[$dispatch['id']]['dispatch_description'];
         }
     }
     return $dispatches;
 }