// 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:
dSevere
2011-12-06 18:07:06 +00:00
parent 112540fa9f
commit 4b4d43d69f
8 changed files with 136 additions and 73 deletions
+40 -10
View File
@@ -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();
}
}
}