// Bugs fix (Collection, SQL optimizations, Backoffice interfaces improvement, ...) + update db_settings_extends.sql for base datas relative to available quantities and suppliers
This commit is contained in:
@@ -2022,6 +2022,14 @@ class AdminProductsControllerCore extends AdminController
|
||||
{
|
||||
if (Validate::isLoadedObject($product = new Product((int)Tools::getValue('id_product'))))
|
||||
{
|
||||
// Get all id_product_attribute
|
||||
$attributes = $product->getAttributesResume($this->context->language->id);
|
||||
if (empty($attributes))
|
||||
$attributes[] = array(
|
||||
'id_product_attribute' => 0,
|
||||
'attribute_designation' => ''
|
||||
);
|
||||
|
||||
// Get all available suppliers
|
||||
$suppliers = Supplier::getSuppliers();
|
||||
|
||||
@@ -2044,7 +2052,7 @@ class AdminProductsControllerCore extends AdminController
|
||||
if (!in_array($associated_supplier->id_supplier, $suppliers_to_associate))
|
||||
{
|
||||
$associated_supplier->delete();
|
||||
unset($associated_suppliers[$key]);
|
||||
unset($associated_supplier);
|
||||
}
|
||||
|
||||
// Associate suppliers
|
||||
@@ -2069,14 +2077,6 @@ class AdminProductsControllerCore extends AdminController
|
||||
|
||||
$this->confirmations[] = $this->l('Suppliers of the product have been updated');
|
||||
|
||||
// Get all id_product_attribute
|
||||
$attributes = $product->getAttributesResume($this->context->language->id);
|
||||
if (empty($attributes))
|
||||
$attributes[] = array(
|
||||
'id_product_attribute' => 0,
|
||||
'attribute_designation' => ''
|
||||
);
|
||||
|
||||
// Manage references and prices
|
||||
foreach ($attributes as $attribute)
|
||||
foreach ($associated_suppliers as $supplier)
|
||||
@@ -2148,7 +2148,37 @@ class AdminProductsControllerCore extends AdminController
|
||||
}
|
||||
|
||||
if ($product->id_supplier == $supplier->id_supplier)
|
||||
$product->wholesale_price = Tools::convertPrice($price, $id_currency);
|
||||
{
|
||||
if ((int)$attribute['id_product_attribute'] > 0)
|
||||
{
|
||||
Db::getInstance()->execute('
|
||||
UPDATE '._DB_PREFIX_.'product_attribute
|
||||
SET supplier_reference = "'.$reference.'",
|
||||
wholesale_price = '.(float)Tools::convertPrice($price, $id_currency).'
|
||||
WHERE id_product = '.(int)$product->id.'
|
||||
AND id_product_attribute = '.(int)$attribute['id_product_attribute'].'
|
||||
LIMIT 1
|
||||
');
|
||||
}
|
||||
else
|
||||
{
|
||||
$product->wholesale_price = Tools::convertPrice($price, $id_currency); //converted in the default currency
|
||||
$product->supplier_reference = $reference;
|
||||
$update_product = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//int attribute with default values if possible
|
||||
if ((int)$attribute['id_product_attribute'] > 0)
|
||||
{
|
||||
$product_supplier = new ProductSupplier();
|
||||
$product_supplier->id_product = $product->id;
|
||||
$product_supplier->id_product_attribute = (int)$attribute['id_product_attribute'];
|
||||
$product_supplier->id_supplier = $supplier->id_supplier;
|
||||
$product_supplier->save();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1865,25 +1865,27 @@ class AdminSupplyOrdersControllerCore extends AdminController
|
||||
{
|
||||
if ($manager->getProductRealQuantities($item['id_product'], $item['id_product_attribute'], $supply_order->id_warehouse, true) <= $threshold)
|
||||
{
|
||||
// sets supply_order_detail
|
||||
$supply_order_detail = new SupplyOrderDetail();
|
||||
$supply_order_detail->id_supply_order = $supply_order->id;
|
||||
$supply_order_detail->id_currency = $order_currency->id;
|
||||
$supply_order_detail->id_product = $item['id_product'];
|
||||
$supply_order_detail->id_product_attribute = $item['id_product_attribute'];
|
||||
$supply_order_detail->reference = $item['reference'];
|
||||
$supply_order_detail->supplier_reference = $item['supplier_reference'];
|
||||
$supply_order_detail->name = Product::getProductName($item['id_product'], $item['id_product_attribute'], $supply_order->id_lang);
|
||||
$supply_order_detail->ean13 = $item['ean13'];
|
||||
$supply_order_detail->upc = $item['upc'];
|
||||
$supply_order_detail->quantity_expected = (int)$threshold;
|
||||
$supply_order_detail->exchange_rate = $order_currency->conversion_rate;
|
||||
|
||||
$product_currency = new Currency($item['id_currency']);
|
||||
if (Validate::isLoadedObject($product_currency))
|
||||
{
|
||||
// sets supply_order_detail
|
||||
$supply_order_detail = new SupplyOrderDetail();
|
||||
$supply_order_detail->id_supply_order = $supply_order->id;
|
||||
$supply_order_detail->id_currency = $order_currency->id;
|
||||
$supply_order_detail->id_product = $item['id_product'];
|
||||
$supply_order_detail->id_product_attribute = $item['id_product_attribute'];
|
||||
$supply_order_detail->reference = $item['reference'];
|
||||
$supply_order_detail->supplier_reference = $item['supplier_reference'];
|
||||
$supply_order_detail->name = Product::getProductName($item['id_product'], $item['id_product_attribute'], $supply_order->id_lang);
|
||||
$supply_order_detail->ean13 = $item['ean13'];
|
||||
$supply_order_detail->upc = $item['upc'];
|
||||
$supply_order_detail->exchange_rate = $order_currency->conversion_rate;
|
||||
$supply_order_detail->unit_price_te = Tools::convertPriceFull($item['unit_price_te'], $order_currency, $product_currency);
|
||||
$supply_order_detail->quantity_expected = (int)$threshold;
|
||||
$supply_order_detail->save();
|
||||
}
|
||||
else
|
||||
$supply_order_detail->unit_price_te = 0;
|
||||
|
||||
$supply_order_detail->save();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user