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))