diff --git a/admin-dev/themes/template/orders/_product_line.tpl b/admin-dev/themes/template/orders/_product_line.tpl
index 589e4ac86..2fe4c0a05 100755
--- a/admin-dev/themes/template/orders/_product_line.tpl
+++ b/admin-dev/themes/template/orders/_product_line.tpl
@@ -59,7 +59,7 @@
{if ($order->hasBeenPaid())}
{$product['product_quantity_refunded']} | {/if}
{if ($order->hasBeenDelivered())}{$product['product_quantity_return']} | {/if}
- {StockManagerFactory::getManager()->getProductRealQuantities($product['product_id'], $product['product_attribute_id'], null, true)} |
+ {$product['current_stock']} |
{displayPrice price=(Tools::ps_round($product_price, 2) * ($product['product_quantity'] - $product['customizationQuantityTotal'])) currency=$currency->id}
|
diff --git a/classes/order/Order.php b/classes/order/Order.php
index df01d2d18..0287b9532 100644
--- a/classes/order/Order.php
+++ b/classes/order/Order.php
@@ -321,11 +321,11 @@ class OrderCore extends ObjectModel
}
return $this->_deleteProduct($orderDetail, (int)($quantity));
}
-
+
/**
* This function return products of the orders
* It's similar to Order::getProducts but witrh similar outputs of Cart::getProducts
- *
+ *
* @return array
*/
public function getCartProducts()
@@ -336,7 +336,7 @@ class OrderCore extends ObjectModel
.$product['product_id'].'_'
.$product['product_attribute_id'].'_'
.(isset($product['id_customization']) ? $product['id_customization'] : '0');
-
+
$product_list = array();
foreach ($cart->getProducts() as $product)
{
@@ -344,13 +344,13 @@ class OrderCore extends ObjectModel
.$product['id_product'].'_'
.$product['id_product_attribute'].'_'
.(isset($product['id_customization']) ? $product['id_customization'] : '0');
-
+
if (in_array($key, $product_id_list))
$product_list[] = $product;
}
return $product_list;
}
-
+
/* DOES delete the product */
protected function _deleteProduct($orderDetail, $quantity)
{
@@ -632,11 +632,18 @@ class OrderCore extends ObjectModel
/**
*
* This method allow to add stock information on a product detail
+ *
+ * If advanced stock management is active, get physical stock of this product in the warehouse associated to the ptoduct for the current order
+ * Else get the available quantity of the product in fucntion of the shop associated to the order
+ *
* @param array &$product
*/
protected function setProductCurrentStock(&$product)
{
- $product['current_stock'] = StockManagerFactory::getManager()->getProductPhysicalQuantities($product['product_id'], $product['product_attribute_id'], null, true);
+ if (Configuration::get('PS_ADVANCED_STOCK_MANAGEMENT') && (int)$product['id_warehouse'] > 0)
+ $product['current_stock'] = StockManagerFactory::getManager()->getProductPhysicalQuantities($product['product_id'], $product['product_attribute_id'], (int)$product['id_warehouse'], true);
+ else
+ $product['current_stock'] = '--';
}
/**
diff --git a/controllers/admin/AdminProductsController.php b/controllers/admin/AdminProductsController.php
index b41a8c754..f76492e66 100644
--- a/controllers/admin/AdminProductsController.php
+++ b/controllers/admin/AdminProductsController.php
@@ -2213,7 +2213,7 @@ class AdminProductsControllerCore extends AdminController
{
foreach ($warehouses as $warehouse)
{
- $key = $warehouse['id_warehouse'].'_'.$attribute['id_product'].'_'.$attribute['id_product_attribute'];
+ $key = $warehouse['id_warehouse'].'_'.$product->id.'_'.$attribute['id_product_attribute'];
// get elements to manage
if (Tools::isSubmit('check_warehouse_'.$key))