// stock : update supplier orders interface + change state bug fix
git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@9975 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
@@ -35,12 +35,12 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
$this->context = Context::getContext();
|
||||
$this->table = 'supplier_order_state';
|
||||
$this->className = 'SupplierOrderState';
|
||||
$this->colorOnBackground = true;
|
||||
$this->lang = true;
|
||||
|
||||
$this->fieldsDisplay = array(
|
||||
'name' => array(
|
||||
'title' => $this->l('Name'),
|
||||
'color' => 'color',
|
||||
),
|
||||
'editable' => array(
|
||||
'title' => $this->l('Editable?'),
|
||||
@@ -127,7 +127,7 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
if ($this->tabAccess['edit'] === '1')
|
||||
$this->display = 'edit';
|
||||
else
|
||||
$this->_errors[] = Tools::displayError('You do not have permission to edit here.');
|
||||
$this->_errors[] = Tools::displayError($this->l('You do not have permission to edit here.'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,9 +137,12 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
*/
|
||||
public function initForm()
|
||||
{
|
||||
if (Tools::isSubmit('addsupplier_order_state'))
|
||||
if (Tools::isSubmit('addsupplier_order_state') || Tools::isSubmit('updatesupplier_order_state'))
|
||||
{
|
||||
$this->toolbar_title = $this->l('Stock : Add Supplier order state');
|
||||
if (Tools::isSubmit('updatesupplier_order_state'))
|
||||
$this->toolbar_title = $this->l('Stock : Update Supplier order state');
|
||||
else
|
||||
$this->toolbar_title = $this->l('Stock : Add Supplier order state');
|
||||
|
||||
$this->fields_form = array(
|
||||
'legend' => array(
|
||||
@@ -434,11 +437,11 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
$this->identifier = 'id_supplier_order';
|
||||
$this->lang = false;
|
||||
|
||||
$this->addRowAction('edit');
|
||||
$this->addRowAction('changestate');
|
||||
$this->addRowAction('details');
|
||||
$this->addRowAction('view');
|
||||
$this->addRowAction('updatereceipt');
|
||||
$this->addRowAction('changestate');
|
||||
$this->addRowAction('edit');
|
||||
$this->addRowAction('view');
|
||||
$this->addRowAction('details');
|
||||
|
||||
// test if a filter is applied for this list
|
||||
if (Tools::isSubmit('submitFilter'.$this->table) || $this->context->cookie->{'submitFilter'.$this->table} !== false)
|
||||
@@ -474,7 +477,8 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
'state' => array(
|
||||
'title' => $this->l('State'),
|
||||
'width' => 150,
|
||||
'filter_key' => 'stl!name'
|
||||
'filter_key' => 'stl!name',
|
||||
'color' => 'color',
|
||||
),
|
||||
'date_add' => array(
|
||||
'title' => $this->l('Creation date'),
|
||||
@@ -555,14 +559,14 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
|
||||
if ($id_supplier_order <= 0)
|
||||
{
|
||||
$this->_errors[] = Tools::displayError('The specified supplier order is not valid');
|
||||
$this->_errors[] = Tools::displayError($this->l('The specified supplier order is not valid'));
|
||||
return parent::initContent();
|
||||
}
|
||||
|
||||
$supplier_order = new SupplierOrder($id_supplier_order);
|
||||
if (!Validate::isLoadedObject($supplier_order))
|
||||
{
|
||||
$this->_errors[] = Tools::displayError('The specified supplier order is not valid');
|
||||
$this->_errors[] = Tools::displayError($this->l('The specified supplier order is not valid'));
|
||||
return parent::initContent();
|
||||
}
|
||||
|
||||
@@ -1006,9 +1010,9 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
{
|
||||
// Checks access
|
||||
if (Tools::isSubmit('submitAddsupplier_order') && !($this->tabAccess['add'] === '1'))
|
||||
$this->_errors[] = Tools::displayError('You do not have the required permission to add a supplier order.');
|
||||
$this->_errors[] = Tools::displayError($this->l('You do not have the required permission to add a supplier order.'));
|
||||
if (Tools::isSubmit('submitUpdateReceipt') && !($this->tabAccess['edit'] === '1'))
|
||||
$this->_errors[] = Tools::displayError('You do not have the required permission to edit an order.');
|
||||
$this->_errors[] = Tools::displayError($this->l('You do not have the required permission to edit an order.'));
|
||||
// Global checks when add / update a supplier order
|
||||
if (Tools::isSubmit('submitAddsupplier_order'))
|
||||
{
|
||||
@@ -1017,17 +1021,17 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
// get supplier ID
|
||||
$id_supplier = (int)Tools::getValue('id_supplier', 0);
|
||||
if ($id_supplier <= 0 || !Supplier::supplierExists($id_supplier))
|
||||
$this->_errors[] = Tools::displayError('The selected supplier is not valid.');
|
||||
$this->_errors[] = Tools::displayError($this->l('The selected supplier is not valid.'));
|
||||
|
||||
// get warehouse id
|
||||
$id_warehouse = (int)Tools::getValue('id_warehouse', 0);
|
||||
if ($id_warehouse <= 0 || !Warehouse::exists($id_warehouse))
|
||||
$this->_errors[] = Tools::displayError('The selected warehouse is not valid.');
|
||||
$this->_errors[] = Tools::displayError($this->l('The selected warehouse is not valid.'));
|
||||
|
||||
// get currency id
|
||||
$id_currency = (int)Tools::getValue('id_currency', 0);
|
||||
if ($id_currency <= 0 || ( !($result = Currency::getCurrency($id_currency)) || empty($result) ))
|
||||
$this->_errors[] = Tools::displayError('The selected currency is not valid.');
|
||||
$this->_errors[] = Tools::displayError($this->l('The selected currency is not valid.'));
|
||||
|
||||
// specify employee
|
||||
$_POST['id_employee'] = $this->context->employee->id;
|
||||
@@ -1048,17 +1052,17 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
&& Tools::isSubmit('id_supplier_order_state'))
|
||||
{
|
||||
if ($this->tabAccess['edit'] != '1')
|
||||
$this->_errors[] = Tools::displayError('You do not have permissions to change order state.');
|
||||
$this->_errors[] = Tools::displayError($this->l('You do not have permissions to change order state.'));
|
||||
|
||||
// get state ID
|
||||
$id_state = (int)Tools::getValue('id_supplier_order_state', 0);
|
||||
if ($id_state <= 0)
|
||||
$this->_errors[] = Tools::displayError('The selected supplier order state is not valid.');
|
||||
$this->_errors[] = Tools::displayError($this->l('The selected supplier order state is not valid.'));
|
||||
|
||||
// get supplier order ID
|
||||
$id_supplier_order = (int)Tools::getValue('id_supplier_order', 0);
|
||||
if ($id_supplier_order <= 0)
|
||||
$this->_errors[] = Tools::displayError('The supplier order id is not valid.');
|
||||
$this->_errors[] = Tools::displayError($this->l('The supplier order id is not valid.'));
|
||||
|
||||
if (!count($this->_errors))
|
||||
{
|
||||
@@ -1074,18 +1078,27 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
// if state is valid, change it in the order
|
||||
if ($id_state == $state['id_supplier_order_state'])
|
||||
{
|
||||
$supplier_order->id_supplier_order_state = $state['id_supplier_order_state'];
|
||||
if ($supplier_order->save())
|
||||
// special case of validate state - check if there are products in the order
|
||||
if ($supplier_order->isEditable() && !$supplier_order->hasEntries())
|
||||
$this->_errors[] = Tools::displayError(
|
||||
$this->l('It is not possible to change the state of this order because of no product are present in it')
|
||||
);
|
||||
|
||||
if (!count($this->_errors))
|
||||
{
|
||||
$token = Tools::getValue('token') ? Tools::getValue('token') : $this->token;
|
||||
$redirect = self::$currentIndex.'&token='.$token;
|
||||
Tools::redirectAdmin($redirect.'&conf=5');
|
||||
$supplier_order->id_supplier_order_state = $state['id_supplier_order_state'];
|
||||
if ($supplier_order->save())
|
||||
{
|
||||
$token = Tools::getValue('token') ? Tools::getValue('token') : $this->token;
|
||||
$redirect = self::$currentIndex.'&token='.$token;
|
||||
Tools::redirectAdmin($redirect.'&conf=5');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
$this->_errors[] = Tools::displayError('The selected supplier is not valid.');
|
||||
$this->_errors[] = Tools::displayError($this->l('The selected supplier is not valid.'));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1106,7 +1119,7 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
$rows = Tools::getValue('supplier_order_detailBox');
|
||||
if (!$rows)
|
||||
{
|
||||
$this->_errors[] = Tools::displayError('You did not select any product to update');
|
||||
$this->_errors[] = Tools::displayError($this->l('You did not select any product to update'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1122,7 +1135,7 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
// checks if there is something to update
|
||||
if (!count($to_update))
|
||||
{
|
||||
$this->_errors[] = Tools::displayError('You did not select any product to update');
|
||||
$this->_errors[] = Tools::displayError($this->l('You did not select any product to update'));
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1135,7 +1148,7 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
// checks if quantity is valid
|
||||
// It's possible to receive more quantity than expected in case of a shipping error from the supplier
|
||||
if (!Validate::isInt($quantity) || $quantity <= 0)
|
||||
$this->_errors[] = sprintf(Tools::displayError('Quantity (%d) for product #%d is not valid'), (int)$quantity, (int)$id_supplier_order_detail);
|
||||
$this->_errors[] = sprintf(Tools::displayError($this->l('Quantity (%d) for product #%d is not valid')), (int)$quantity, (int)$id_supplier_order_detail);
|
||||
else // everything is valid : updates
|
||||
{
|
||||
// creates the history
|
||||
@@ -1156,7 +1169,7 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
$warehouse = new Warehouse($supplier_order->id_warehouse);
|
||||
if (!Validate::isLoadedObject($warehouse))
|
||||
{
|
||||
$this->_errors[] = Tools::displayError('Warehouse could not be loaded');
|
||||
$this->_errors[] = Tools::displayError($this->l('Warehouse could not be loaded'));
|
||||
return;
|
||||
}
|
||||
$manager = StockManagerFactory::getManager();
|
||||
@@ -1175,7 +1188,7 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
$supplier_order->save();
|
||||
}
|
||||
else
|
||||
$this->_errors[] = Tools::displayError('Something went wrong when adding products in warehouse');
|
||||
$this->_errors[] = Tools::displayError($this->l('Something went wrong when adding products in warehouse'));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1605,7 +1618,7 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
|
||||
$content = '<span style="width:20px; margin-right:5px;">';
|
||||
if ($supplier_order_state->editable == false) // @TODO Decide what states are allowed
|
||||
$content .= '<a href="#"><img src="../img/admin/tab-invoice.gif" alt="invoice" /></a>';
|
||||
$content .= '<a href="#"><img src="../img/admin/pdf.gif" alt="invoice" /></a>';
|
||||
else
|
||||
$content .= '-';
|
||||
$content .= '</span>';
|
||||
@@ -1627,6 +1640,19 @@ class AdminSupplierOrdersControllerCore extends AdminController
|
||||
'href' => '#',
|
||||
'desc' => $this->l('Save')
|
||||
);
|
||||
|
||||
// Default cancel button - like old back link
|
||||
if (!isset($this->no_back) || $this->no_back == false)
|
||||
{
|
||||
$back = Tools::safeOutput(Tools::getValue('back', ''));
|
||||
if (empty($back))
|
||||
$back = self::$currentIndex.'&token='.$this->token;
|
||||
|
||||
$this->toolbar_btn['cancel'] = array(
|
||||
'href' => $back,
|
||||
'desc' => $this->l('Cancel')
|
||||
);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'add':
|
||||
|
||||
Reference in New Issue
Block a user