Beispiel #1
0
                    if (Tools::isSubmit('id_product') && Tools::isSubmit('id_product_attribute') && Tools::isSubmit('wholesale_price') && Tools::isSubmit('id_supplier')) {
                        require_once _PS_MODULE_DIR_ . 'erpillicopresta/classes/ErpProductSupplier.php';
                        $id_product = Tools::getValue('id_product');
                        $id_product_attribute = Tools::getValue('id_product_attribute');
                        $wholesale_price = Tools::getValue('wholesale_price');
                        $id_supplier = Tools::getValue('id_supplier');
                        /* If we have a price for this supplier update for the supplier
                         * At any case we update principal price for product or attribute
                         */
                        $query = 'SELECT COUNT(id_product_supplier) as nb_products, id_product_supplier
		                                            FROM ' . _DB_PREFIX_ . 'product_supplier
		                                            WHERE id_product = ' . (int) $id_product . ' AND id_product_attribute = ' . (int) $id_product_attribute . ' ' . 'AND id_supplier = ' . (int) $id_supplier . ' AND product_supplier_price_te >0.000000';
                        $nbProducts = DB::getInstance(_PS_USE_SQL_SLAVE_)->getRow($query);
                        /* If price for this supplier, update */
                        if ((int) $nbProducts['nb_products'] > 0) {
                            $product_supplier = new ErpProductSupplier($nbProducts['id_product_supplier']);
                            $product_supplier->product_supplier_price_te = $wholesale_price;
                            $product_supplier->save();
                        }
                        /* If not global update of the product in any case */
                        /*  Product */
                        if ($id_product_attribute == '0') {
                            $product = new Product($id_product);
                            $product->wholesale_price = $wholesale_price;
                            $product->save();
                        } else {
                            $combination = new Combination($id_product_attribute);
                            $combination->id_product = $id_product;
                            $combination->wholesale_price = $wholesale_price;
                            $combination->save();
                        }
 public static function getWholesalePrice($id_product, $id_product_attribute = 0, $id_supplier = 0)
 {
     // If there is a supplier
     if (!empty($id_supplier)) {
         //On récupère tout d'abord le prix du fournisseur
         $prices = ErpProductSupplier::getProductSupplierPrice($id_product, $id_product_attribute, $id_supplier, true);
         if (isset($prices['product_supplier_price_te'])) {
             $price = $prices['product_supplier_price_te'];
         }
     }
     // If no price for this supplier, or supplier price null,
     // get the price of the product or variation
     if (empty($price) || $price == '0.000000') {
         // pas de décliaison, on cherche le prix du produit
         if ($id_product_attribute == 0) {
             $query = new DbQuery();
             $query->select('wholesale_price');
             $query->from('product');
             $query->where('id_product = ' . (int) $id_product);
             $price = Db::getInstance()->getValue($query);
         } else {
             $query = new DbQuery();
             $query->select('p.wholesale_price as wholesale_price_product, pa.wholesale_price as wholesale_price_product_attribute');
             $query->from('product_attribute', 'pa');
             $query->where('pa.id_product = ' . (int) $id_product);
             $query->where('pa.id_product_attribute = ' . (int) $id_product_attribute);
             $query->innerJoin('product', 'p', ' p.id_product = pa.id_product');
             $prices = Db::getInstance()->getRow($query);
             //If variation has a price
             if ($prices['wholesale_price_product_attribute'] == '0.000000') {
                 $price = $prices['wholesale_price_product'];
             } elseif ($prices['wholesale_price_product_attribute'] != '0.000000') {
                 $price = $prices['wholesale_price_product_attribute'];
             } else {
                 $price = '0.00000';
             }
         }
     }
     return $price;
 }
 public static function getWholesalePrice($id_product, $id_product_attribute = 0, $id_supplier = 0)
 {
     // If there's a supplier
     if (!empty($id_supplier)) {
         // Getting supplier's price first
         $prices = ErpProductSupplier::getProductSupplierPrice($id_product, $id_product_attribute, $id_supplier, true);
         $price = $prices['product_supplier_price_te'];
     }
     // If no supplier's price, or supplier's price null, we look for the price of the product or variation
     if (empty($price) || $price == '0.000000') {
         // No variation, looking for product's price
         if ($id_product_attribute == 0) {
             $query = new DbQuery();
             $query->select('wholesale_price');
             $query->from('product');
             $query->where('id_product = ' . (int) $id_product);
             $price = Db::getInstance()->getValue($query);
         } else {
             $query = new DbQuery();
             $query->select('p.wholesale_price as wholesale_price_product, pa.wholesale_price as wholesale_price_product_attribute');
             $query->from('product_attribute', 'pa');
             $query->where('pa.id_product = ' . (int) $id_product);
             $query->where('pa.id_product_attribute = ' . (int) $id_product_attribute);
             $query->innerJoin('product', 'p', ' p.id_product = pa.id_product');
             $prices = Db::getInstance()->getRow($query);
             // if variation's price
             if (!empty($prices['wholesale_price_product_attribute']) && $prices['wholesale_price_product_attribute'] != '0.000000') {
                 $price = $prices['wholesale_price_product_attribute'];
             } elseif (!empty($prices['wholesale_price_product']) && $prices['wholesale_price_product'] != '0.000000') {
                 $price = $prices['wholesale_price_product'];
             } else {
                 $price = '0.00000';
             }
         }
     }
     return $price;
 }
 public function ajaxGetProductSupplierPrice()
 {
     //  If we have called the script with a term to search
     if (Tools::isSubmit('id_product') && Tools::isSubmit('id_product_attribute')) {
         require_once _PS_MODULE_DIR_ . 'erpillicopresta/classes/ErpProductSupplier.php';
         $id_product = Tools::getValue('id_product');
         $id_product_attribute = Tools::getValue('id_product_attribute');
         //$id_currency = Tools::getValue('id_currency', false) ? Tools::getValue('id_currency') : 1;
         /*  Price for all suppliers for the product */
         $supplier_prices = ErpProductSupplier::getAllProductSupplierPrice($id_product, $id_product_attribute, true);
         if (!empty($supplier_prices)) {
             echo '<table class="table">';
             foreach ($supplier_prices as $price) {
                 /*  If supplier price  = 0 we take the basic one */
                 if ($price['product_supplier_price_te'] == '0.000000') {
                     $supplier_price = ErpStock::getWholesalePrice($id_product, $id_product_attribute);
                 } else {
                     $supplier_price = $price['product_supplier_price_te'];
                 }
                 /*  writing of the HTML table */
                 echo '<tr>
                                                 <td>' . $price['supplier_name'] . ' : </td>
                                                 <td> &nbsp; ' . number_format($supplier_price, 2, '.', ' ') . '€</td>
                                             </tr>';
             }
             echo '</table>';
         } else {
             echo $this->l('No price found for this product!');
         }
     }
     die;
 }