예제 #1
0
 public function assignKPI()
 {
     $b_showKPI = true;
     if ($b_showKPI) {
         $nb_association = SupplierCore::getAssociationNumber();
         $nb_totalGain = SupplierCore::getTotalGain();
         $nb_monthGain = SupplierCore::getMonthGain();
         $nb_weekGain = SupplierCore::getWeekGain();
     }
     $this->context->smarty->assign(array('showKPI' => $b_showKPI, 'nb_association' => $nb_association, 'nb_totalGain' => $nb_totalGain, 'nb_monthGain' => $nb_monthGain, 'nb_weekGain' => $nb_weekGain));
 }
 public function renderView()
 {
     $supplier = new SupplierCore((int) Tools::getValue('id_supplier'));
     $products = $supplier->getProductsLite($this->context->language->id);
     $total_product = count($products);
     $comb_array = array();
     for ($i = 0; $i < $total_product; $i++) {
         $products[$i] = new Product($products[$i]['id_product'], false, $this->context->language->id);
         $products[$i]->loadStockData();
         // Build attributes combinations
         $combinations = $products[$i]->getAttributeCombinations($this->context->language->id);
         foreach ($combinations as $combination) {
             $comb_infos = Supplier::getProductInformationsBySupplier($this->object->id, $products[$i]->id, $combination['id_product_attribute']);
             $comb_array[$combination['id_product_attribute']]['product_supplier_reference'] = $comb_infos['product_supplier_reference'];
             $comb_array[$combination['id_product_attribute']]['product_supplier_price_te'] = Tools::displayPrice($comb_infos['product_supplier_price_te'], new Currency($comb_infos['id_currency']));
             $comb_array[$combination['id_product_attribute']]['reference'] = $combination['reference'];
             $comb_array[$combination['id_product_attribute']]['ean13'] = $combination['ean13'];
             $comb_array[$combination['id_product_attribute']]['upc'] = $combination['upc'];
             $comb_array[$combination['id_product_attribute']]['quantity'] = $combination['quantity'];
             $comb_array[$combination['id_product_attribute']]['attributes'][] = array($combination['group_name'], $combination['attribute_name'], $combination['id_attribute']);
         }
         if (isset($comb_array)) {
             foreach ($comb_array as $key => $product_attribute) {
                 $list = '';
                 foreach ($product_attribute['attributes'] as $attribute) {
                     $list .= $attribute[0] . ' - ' . $attribute[1] . ', ';
                 }
                 $comb_array[$key]['attributes'] = rtrim($list, ', ');
             }
             isset($comb_array) ? $products[$i]->combination = $comb_array : '';
             unset($comb_array);
         } else {
             $product_infos = Supplier::getProductInformationsBySupplier($this->object->id, $products[$i]->id, 0);
             $products[$i]->product_supplier_reference = $product_infos['product_supplier_reference'];
             $products[$i]->product_supplier_price_te = Tools::displayPrice($product_infos['product_supplier_price_te'], new Currency($product_infos['id_currency']));
         }
     }
     $this->tpl_view_vars = array('supplier' => $this->object, 'products' => $products, 'stock_management' => Configuration::get('PS_STOCK_MANAGEMENT'), 'shopContext' => Shop::getContext());
     return parent::renderView();
 }
예제 #3
0
파일: Supplier.php 프로젝트: evilscripts/gy
    public function getProductsLite($id_lang)
    {
        $context = Context::getContext();
        $front = true;
        if (!in_array($context->controller->controller_type, array('front', 'modulefront'))) {
            $front = false;
        }
        $agile_sql_parts = AgileSellerManager::getAdditionalSqlForProducts("p");
        if (empty($agile_sql_parts['joins']) or empty($agile_sql_parts['wheres'])) {
            parent::getProductsLite($id_lang);
        }
        $sql = '
			SELECT p.`id_product`,
				   pl.`name`
			FROM `' . _DB_PREFIX_ . 'product` p
			' . Shop::addSqlAssociation('product', 'p') . '
			LEFT JOIN `' . _DB_PREFIX_ . 'product_lang` pl ON (
				p.`id_product` = pl.`id_product`
				AND pl.`id_lang` = ' . (int) $id_lang . '
			)
			INNER JOIN `' . _DB_PREFIX_ . 'product_supplier` ps ON (
				ps.`id_product` = p.`id_product`
				AND ps.`id_supplier` = ' . (int) $this->id . '
			)
			' . ($front ? ' WHERE product_shop.`visibility` IN ("both", "catalog")' : '') . '
			GROUP BY p.`id_product`';
        $finalResults = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
        $finalResults = AgileSellerManager::prepareSellerRattingInfo($finalResults);
        return $finalResults;
    }
예제 #4
0
 /**
  * Creates a Supplier in Prestashop if not exists, returns supplier id elsewhere.
  * 
  * @param string $name_supplier
  * @return integer 
  *
  */
 private function setSupplierForProduct($name_supplier)
 {
     $id_supplier = 0;
     $supplier = new SupplierCore();
     $id_supplier = $supplier::getIdByName(trim($name_supplier));
     if (!$id_supplier) {
         $supplier->name = trim($name_supplier);
         $supplier->add();
         $id_supplier = $supplier->id;
     }
     return $id_supplier;
 }
예제 #5
0
파일: Supplier.php 프로젝트: yewed/share
 public function getProductsByCategory($id_category, $id_lang, $p, $n, $order_by = null, $order_way = null, $get_total = false, $active = true, $active_category = true)
 {
     return SupplierCore::getProductsBySupplierAndCategory($this->id, $id_category, $id_lang, $p, $n, $order_by, $order_way, $get_total, $active, $active_category);
 }
예제 #6
0
 /**
  * Get supplier name by id
  *
  * @param int $id_supplier
  *
  * @return string
  */
 public function getNameById($id_supplier)
 {
     return \SupplierCore::getNameById($id_supplier);
 }