diff --git a/admin-dev/tabs/AdminStockManagement.php b/admin-dev/tabs/AdminStockManagement.php
new file mode 100644
index 000000000..023479d21
--- /dev/null
+++ b/admin-dev/tabs/AdminStockManagement.php
@@ -0,0 +1,212 @@
+
+* @copyright 2007-2011 PrestaShop SA
+* @version Release: $Revision: 7307 $
+* @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0)
+* International Registered Trademark & Property of PrestaShop SA
+*/
+
+class AdminStockManagement extends AdminTab
+{
+ public function __construct()
+ {
+ $this->context = Context::getContext();
+ $this->table = 'stock_mvt';
+ $this->className = 'StockMvt';
+ $this->edit = false;
+ $this->delete = false;
+ $this->view = false;
+
+ $this->fieldsDisplay = array(
+ 'id_stock_mvt' => array('title' => $this->l('ID'), 'width' => 40),
+ 'product_name' => array('title' => $this->l('Product Name'), 'width' => 200, 'havingFilter' => true),
+ 'physical_quantity' => array('title' => $this->l('Quantity'), 'width' => 40),
+ 'reason' => array('title' => $this->l('Reason'), 'width' => 200),
+ 'id_order' => array('title' => $this->l('ID Order'), 'width' => 40),
+ 'employee' => array('title' => $this->l('Employee'), 'width' => 100, 'havingFilter' => true),
+ 'warehouse' => array('title' => $this->l('Warehouse'), 'width' => 100, 'havingFilter' => true),
+ );
+
+ $this->_select = 'CONCAT(pl.name, \' \', GROUP_CONCAT(IFNULL(al.name, \'\'), \'\')) product_name, CONCAT(e.lastname, \' \', e.firstname) AS employee, mrl.name AS reason, CONCAT(w.reference, " - ", w.name) AS warehouse';
+ $this->_join = 'INNER JOIN '._DB_PREFIX_.'stock stock ON a.id_stock = stock.id_stock
+ LEFT JOIN `'._DB_PREFIX_.'product_lang` pl ON (stock.id_product = pl.id_product AND pl.id_lang = '.(int)$this->context->language->id.$this->context->shop->sqlLang('pl').')
+ LEFT JOIN `'._DB_PREFIX_.'stock_mvt_reason_lang` mrl ON (a.id_stock_mvt_reason = mrl.id_stock_mvt_reason AND mrl.id_lang = '.(int)$this->context->language->id.')
+ LEFT JOIN `'._DB_PREFIX_.'employee` e ON (e.id_employee = a.id_employee)
+ LEFT JOIN `'._DB_PREFIX_.'warehouse` w ON (w.id_warehouse = stock.id_warehouse)
+ LEFT JOIN `'._DB_PREFIX_.'product_attribute_combination` pac ON (pac.id_product_attribute = stock.id_product_attribute)
+ LEFT JOIN `'._DB_PREFIX_.'attribute_lang` al ON (al.id_attribute = pac.id_attribute AND al.id_lang = '.(int)$this->context->language->id.')';
+ $this->_group = 'GROUP BY a.id_stock_mvt';
+ parent::__construct();
+ }
+
+ public function postProcess()
+ {
+ /*if (Tools::isSubmit('rebuildStock'))
+ StockMvt::addMissingMvt($this->context->employee->id, false);*/
+ return parent::postProcess();
+ }
+
+ public function displayForm($isMainTab = true)
+ {
+ parent::displayForm();
+
+ if (!($obj = $this->loadObject(true)))
+ return;
+ $dl = 'name';
+ echo '
';
+ }
+/*
+ public function viewstock_mvt()
+ {
+ $stockMvt = new StockMvt((int)Tools::getValue('id_stock_mvt'));
+ $product = new Product((int)$stockMvt->id_product, true, $this->context->language->id);
+ $movements = $product->getStockMvts($this->context->language->id);
+
+ echo ''.$this->l('Stock Movements for').' '.$product->name.'
+
+
+ '.$this->l('ID').'
+ '.$this->l('Product Name').'
+ '.$this->l('Quantity').'
+ '.$this->l('Reason').'
+ '.$this->l('Employee').'
+ '.$this->l('Order').'
+ '.$this->l('Date').'
+ ';
+ $irow = 0;
+ foreach ($movements AS $k => $mvt)
+ {
+ echo '
+
+ '.$mvt['id_stock_mvt'].'
+ '.$mvt['product_name'].'
+ '.$mvt['quantity'].'
+ '.$mvt['reason'].'
+ '.$mvt['employee'].'
+ #'.$mvt['id_order'].'
+ '.Tools::displayDate($mvt['date_add'], $this->context->language->id).'
+ ';
+ }
+ echo '
';
+ }
+*/
+ public function display()
+ {
+ $old_post = false;
+
+ if (!isset($_GET['addstock_mvt_reason']) OR (Tools::isSubmit('submitAddstock_mvt_reason') AND Tools::getValue('id_stock_mvt_reason')))
+ {
+ if (isset($_POST))
+ {
+ $old_post = $_POST;
+ }
+ echo ''.$this->l('Stock movement history').' ';
+ parent::display();
+ /*if (!isset($_GET['view'.$this->table]))
+ echo '
+
+
+ ';*/
+ }
+ if (isset($_GET['view'.$this->table]))
+ return;
+ if ($old_post)
+ $_POST = $old_post;
+
+ $this->table = 'stock_mvt_reason';
+ $this->className = 'StockMvtReason';
+ $this->identifier = 'id_stock_mvt_reason';
+ $this->edit = true;
+ $this->delete = true;
+ $this->lang = true;
+ $this->add = true;
+ $this->view = false;
+ $this->_listSkipDelete = array(1,2,3,4);
+
+
+ $this->_defaultOrderBy = $this->identifier;
+ $this->fieldsDisplay = array('id_stock_mvt_reason' => array('title' => $this->l('ID'), 'width' => 40),
+ 'sign' => array('title' => $this->l('Sign'), 'width' => 15, 'align' => 'center', 'type' => 'select', 'icon' => array(-1 => 'arrow_down.png', 1 => 'arrow_up.png'), 'orderby' => false),
+ 'name' => array('title' => $this->l('Name'), 'width' => 500));
+
+ $reasons_inc = StockMvtReason::getStockMvtReasons($this->context->language->id, 1);
+ $reasons_dec = StockMvtReason::getStockMvtReasons($this->context->language->id, -1);
+
+ $this->optionsList = array(
+ 'general' => array(
+ 'title' => $this->l('Options'),
+ 'fields' => array(
+ 'PS_STOCK_MVT_INC_REASON_DEFAULT' => array(
+ 'title' => $this->l('Default Stock Movement reason for increment stock:'),
+ 'cast' => 'intval',
+ 'type' => 'select',
+ 'list' => $reasons_inc,
+ 'identifier' => 'id_stock_mvt_reason'
+ ),
+ 'PS_STOCK_MVT_DEC_REASON_DEFAULT' => array(
+ 'title' => $this->l('Default Stock Movement reason for decrement stock:'),
+ 'cast' => 'intval',
+ 'type' => 'select',
+ 'list' => $reasons_dec,
+ 'identifier' => 'id_stock_mvt_reason'
+ ),
+ ),
+ ),
+ );
+ unset($this->_select, $this->_join, $this->_group, $this->_filterHaving, $this->_filter);
+
+ echo ''.$this->l('Stock movement reason').' ';
+ $this->postProcess();
+ return parent::display();
+ }
+}
+
+
diff --git a/admin-dev/themes/template/adminStock.tpl b/admin-dev/themes/template/adminStock.tpl
new file mode 100644
index 000000000..4634a7489
--- /dev/null
+++ b/admin-dev/themes/template/adminStock.tpl
@@ -0,0 +1,32 @@
+{*
+* 2007-2011 PrestaShop
+*
+* NOTICE OF LICENSE
+*
+* This source file is subject to the Academic Free License (AFL 3.0)
+* that is bundled with this package in the file LICENSE.txt.
+* It is also available through the world-wide-web at this URL:
+* http://opensource.org/licenses/afl-3.0.php
+* If you did not receive a copy of the license and are unable to
+* obtain it through the world-wide-web, please send an email
+* to license@prestashop.com so we can send you a copy immediately.
+*
+* DISCLAIMER
+*
+* Do not edit or add to this file if you wish to upgrade PrestaShop to newer
+* versions in the future. If you wish to customize PrestaShop for your
+* needs please refer to http://www.prestashop.com for more information.
+*
+* @author PrestaShop SA
+* @copyright 2007-2011 PrestaShop SA
+* @version Release: $Revision: 8697 $
+* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
+* International Registered Trademark & Property of PrestaShop SA
+*}
+
+
+ {l s='Stock Management'}
+ {l s='Several tools are available to manage your stock.'}
+
+ {l s='Please choose a tool by selecting a Tools sub-tab above.'}
+