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> ' . number_format($supplier_price, 2, '.', ' ') . '€</td> </tr>'; } echo '</table>'; } else { echo $this->l('No price found for this product!'); } } die; }