// #PSTEST-289 : Added a SaveAndStay button when adding stock

This commit is contained in:
bMancone
2012-01-02 10:47:00 +00:00
parent 36b50fac4e
commit a698bd6a3a
@@ -125,6 +125,10 @@ class AdminStockManagementControllerCore extends AdminController
$warehouses_add = Warehouse::getWarehouses(true); $warehouses_add = Warehouse::getWarehouses(true);
$warehouses_remove = Warehouse::getWarehousesByProductId($id_product, $id_product_attribute); $warehouses_remove = Warehouse::getWarehousesByProductId($id_product, $id_product_attribute);
// displays warning if no warehouses
if (!$warehouses_add)
$this->displayWarning($this->l('You have to have Warehouses before adding stock. See Stock/Warehouses'));
// gets the currencies // gets the currencies
$currencies = Currency::getCurrencies(); $currencies = Currency::getCurrencies();
@@ -134,9 +138,10 @@ class AdminStockManagementControllerCore extends AdminController
case 'addstock' : case 'addstock' :
// gets the last stock mvt for this product, so we can display the last unit price te and the last quantity added // gets the last stock mvt for this product, so we can display the last unit price te and the last quantity added
$last_sm_unit_price_te = $this->l('N/A'); $last_sm_unit_price_te = $this->l('N/A');
$last_sm_quantity = $this->l('N/A'); $last_sm_quantity = 0;
$last_sm_quantity_is_usable = -1;
$last_sm = StockMvt::getLastPositiveStockMvt($id_product, $id_product_attribute); $last_sm = StockMvt::getLastPositiveStockMvt($id_product, $id_product_attribute);
if ($last_sm !== false) if ($last_sm != false)
{ {
$last_sm_currency = new Currency((int)$last_sm['id_currency']); $last_sm_currency = new Currency((int)$last_sm['id_currency']);
$last_sm_quantity = (int)$last_sm['physical_quantity']; $last_sm_quantity = (int)$last_sm['physical_quantity'];
@@ -213,8 +218,8 @@ class AdminStockManagementControllerCore extends AdminController
'desc' => $this->l('Physical quantity to add'), 'desc' => $this->l('Physical quantity to add'),
'hint' => sprintf( 'hint' => sprintf(
$this->l('Last physical quantity added : %s (%s)'), $this->l('Last physical quantity added : %s (%s)'),
$last_sm_quantity, ($last_sm_quantity > 0 ? $last_sm_quantity : $this->l('N/A')),
($last_sm_quantity_is_usable === 1 ? $this->l('usable') : $this->l('not usable'))), ($last_sm_quantity > 0 ? ($last_sm_quantity_is_usable >= 0 ? $this->l('usable') : $this->l('not usable')) : $this->l('N/A'))),
), ),
array( array(
'type' => 'radio', 'type' => 'radio',
@@ -648,6 +653,13 @@ class AdminStockManagementControllerCore extends AdminController
if ($stock_manager->addProduct($id_product, $id_product_attribute, $warehouse, $quantity, $id_stock_mvt_reason, $price, $usable)) if ($stock_manager->addProduct($id_product, $id_product_attribute, $warehouse, $quantity, $id_stock_mvt_reason, $price, $usable))
{ {
StockAvailable::synchronize($id_product); StockAvailable::synchronize($id_product);
if (Tools::isSubmit('addstockAndStay'))
{
$redirect = self::$currentIndex.'&id_product='.(int)$id_product;
if ($id_product_attribute)
$redirect .= '&id_product_attribute='.(int)$id_product_attribute;
$redirect .= '&addstock&token='.$token;
}
Tools::redirectAdmin($redirect.'&conf=1'); Tools::redirectAdmin($redirect.'&conf=1');
} }
else else
@@ -734,6 +746,11 @@ class AdminStockManagementControllerCore extends AdminController
switch ($this->display) switch ($this->display)
{ {
case 'addstock': case 'addstock':
$this->toolbar_btn['save-and-stay'] = array(
'short' => 'SaveAndStay',
'href' => '#',
'desc' => $this->l('Save and stay'),
);
case 'removestock': case 'removestock':
case 'transferstock': case 'transferstock':
$this->toolbar_btn['save'] = array( $this->toolbar_btn['save'] = array(