diff --git a/admin-dev/themes/default/css/admin.css b/admin-dev/themes/default/css/admin.css index 3a67906b8..4bd3e5dab 100644 --- a/admin-dev/themes/default/css/admin.css +++ b/admin-dev/themes/default/css/admin.css @@ -19,7 +19,7 @@ fieldset{background-color:#EBEDF4; border:1px solid #CCCED7; color:#585A69; font legend{background:#EBEDF4;border:1px solid #CCCED7;font-weight:700;margin:0;padding:.2em .5em;text-align:left} input[type="text"],input[type="password"],input[type="file"],textarea {border:1px solid #ccc; background-color:#fff;} select { border:1px solid #ccc; font-size: 12px;} -select[disabled="disabled"], input[disabled="disabled"],textarea[disabled="disabled"] {border: 1px solid #CCCCCC;color: #AAAAAA} +select[disabled="disabled"], input[disabled="disabled"],textarea[disabled="disabled"], option[disabled="disabled"] {border: 1px solid #CCCCCC;color: #AAAAAA} .header_module{background:url('../img/header_module.png');padding-left: 0.5em;padding-top: 0.8em;height:20px;color: #812143;border:solid 1px #CCC;} .double_select select{width:300px;height:160px;} .double_select a{text-align:center;display:block;border:1px solid #aaa;text-decoration:none;background-color:#fafafa;color:#123456;margin:2px;padding:2px} diff --git a/admin-dev/themes/default/template/controllers/supply_orders_change_state/form.tpl b/admin-dev/themes/default/template/controllers/supply_orders_change_state/form.tpl index 0136bff87..384ce0c7d 100644 --- a/admin-dev/themes/default/template/controllers/supply_orders_change_state/form.tpl +++ b/admin-dev/themes/default/template/controllers/supply_orders_change_state/form.tpl @@ -25,15 +25,38 @@ *} {extends file="helper/form/form.tpl"} -{block name="other_fieldsets"} +{block name="other_input"} +{if isset($supply_order) && $supply_order->id > 0 && isset($supply_order_states)} + + + +
+ +

+ {l s='Choose the new status of your order'} +

+
+ +
+ +
+{/if} + +{/block} + +{block name="other_fieldset"}
{if isset($supply_order_state) && $supply_order_state->editable == false && isset($supply_order)}
-{l s='Supply Order State'} -{l s='Print the supply order form'} + {l s='Supply Order State'} + {l s='Print the supply order form'} {l s='Click here to download the supply order form'}.
diff --git a/classes/stock/SupplyOrderState.php b/classes/stock/SupplyOrderState.php index 1a6141b1e..f7196d572 100755 --- a/classes/stock/SupplyOrderState.php +++ b/classes/stock/SupplyOrderState.php @@ -142,4 +142,30 @@ class SupplyOrderStateCore extends ObjectModel return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); } -} \ No newline at end of file + + /** + * Gets the list of supply order states + * + * @param array $ids Optional Do not include these ids in the result + * @param int $id_lang Optional + * @return array + */ + public static function getStates($ids = null, $id_lang = null) + { + if ($id_lang == null) + $id_lang = Context::getContext()->language->id; + + if ($ids && !is_array($ids)) + $ids = array(); + + $query = new DbQuery(); + $query->select('sl.name, s.id_supply_order_state'); + $query->from('supply_order_state', 's'); + $query->leftjoin('supply_order_state_lang', 'sl', 's.id_supply_order_state = sl.id_supply_order_state AND sl.id_lang='.(int)$id_lang); + if ($ids) + $query->where('s.id_supply_order_state NOT IN('.implode(',', array_map('intval', $ids)).')'); + + return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query); + } + +} diff --git a/controllers/admin/AdminSupplyOrdersController.php b/controllers/admin/AdminSupplyOrdersController.php index ced847ae5..0ef7a7656 100644 --- a/controllers/admin/AdminSupplyOrdersController.php +++ b/controllers/admin/AdminSupplyOrdersController.php @@ -527,6 +527,25 @@ class AdminSupplyOrdersControllerCore extends AdminController // given the current state, loads available states $states = SupplyOrderState::getSupplyOrderStates($supply_order->id_supply_order_state); + + // gets the state that are not allowed + $allowed_states = array(); + foreach ($states as &$state) + { + $allowed_states[] = $state['id_supply_order_state']; + $state['allowed'] = 1; + } + $not_allowed_states = SupplyOrderState::getStates($allowed_states); + + // generates the final list of states + $index = count($allowed_states); + foreach ($not_allowed_states as &$not_allowed_state) + { + $not_allowed_state['allowed'] = 0; + $states[$index] = $not_allowed_state; + ++$index; + } + // loads languages $this->getlanguages(); @@ -536,28 +555,6 @@ class AdminSupplyOrdersControllerCore extends AdminController 'title' => $this->l('Supply Order Status'), 'image' => '../img/admin/cms.gif' ), - 'input' => array( - array( - 'type' => 'hidden', - 'name' => 'id_supply_order', - ), - array( - 'type' => 'select', - 'label' => $this->l('Status of the order:'), - 'name' => 'id_supply_order_state', - 'required' => false, - 'options' => array( - 'query' => $states, - 'id' => 'id_supply_order_state', - 'name' => 'name' - ), - 'desc' => $this->l('Choose the new status of your order') - ), - ), - 'submit' => array( - 'title' => $this->l(' Save '), - 'class' => 'button' - ) ); $this->displayInformation($this->l('Be careful when changing status. Some of them cannot be changed afterwards. (Canceled, for instance).')); @@ -573,10 +570,6 @@ class AdminSupplyOrdersControllerCore extends AdminController $helper->languages = $this->_languages; $helper->default_form_language = $this->default_form_language; $helper->allow_employee_form_lang = $this->allow_employee_form_lang; - $helper->fields_value = array( - 'id_supply_order_state' => Tools::getValue('id_supplier', ''), - 'id_supply_order' => $id_supply_order, - ); //$this->setHelperDisplay($helper); $helper->override_folder = 'supply_orders_change_state/'; @@ -585,6 +578,7 @@ class AdminSupplyOrdersControllerCore extends AdminController $helper->tpl_vars['show_change_state_form'] = true; $helper->tpl_vars['supply_order_state'] = $supply_order_state; $helper->tpl_vars['supply_order'] = $supply_order; + $helper->tpl_vars['supply_order_states'] = $states; // generates the form to display $content = $helper->generateForm($this->fields_form); diff --git a/install-dev/langs/de/data/supply_order_state.xml b/install-dev/langs/de/data/supply_order_state.xml index cb1ee8eb7..2a4299a17 100644 --- a/install-dev/langs/de/data/supply_order_state.xml +++ b/install-dev/langs/de/data/supply_order_state.xml @@ -1,21 +1,21 @@ - Création in progress + 1 - Creation in progress - Order validated + 2 - Order validated - Pending receipt + 3 - Pending receipt - Order received in part + 4 - Order received in part - Order received completely + 5 - Order received completely - order canceled + 6 - Order canceled diff --git a/install-dev/langs/en/data/supply_order_state.xml b/install-dev/langs/en/data/supply_order_state.xml index fb261942a..2a4299a17 100644 --- a/install-dev/langs/en/data/supply_order_state.xml +++ b/install-dev/langs/en/data/supply_order_state.xml @@ -1,21 +1,21 @@ - creation in progress + 1 - Creation in progress - Order validated + 2 - Order validated - Pending receipt + 3 - Pending receipt - Order received in part + 4 - Order received in part - Order received completely + 5 - Order received completely - order canceled + 6 - Order canceled diff --git a/install-dev/langs/es/data/supply_order_state.xml b/install-dev/langs/es/data/supply_order_state.xml index cb1ee8eb7..2a4299a17 100644 --- a/install-dev/langs/es/data/supply_order_state.xml +++ b/install-dev/langs/es/data/supply_order_state.xml @@ -1,21 +1,21 @@ - Création in progress + 1 - Creation in progress - Order validated + 2 - Order validated - Pending receipt + 3 - Pending receipt - Order received in part + 4 - Order received in part - Order received completely + 5 - Order received completely - order canceled + 6 - Order canceled diff --git a/install-dev/langs/fr/data/supply_order_state.xml b/install-dev/langs/fr/data/supply_order_state.xml index 8ceea5ea0..9448e6dc1 100644 --- a/install-dev/langs/fr/data/supply_order_state.xml +++ b/install-dev/langs/fr/data/supply_order_state.xml @@ -1,21 +1,21 @@ - Création en cours + 1 - Création en cours - Commande validée + 2 - Commande validée - Attente de réception + 3 - En attente de réception - Commande réceptionnée partiellement + 4 - Commande réceptionnée partiellement - Commande réceptionnée totalement + 5 - Commande réceptionnée totalement - Commande annulée + 6 - Commande annulée diff --git a/install-dev/langs/it/data/supply_order_state.xml b/install-dev/langs/it/data/supply_order_state.xml index cb1ee8eb7..1182f8b2d 100644 --- a/install-dev/langs/it/data/supply_order_state.xml +++ b/install-dev/langs/it/data/supply_order_state.xml @@ -1,21 +1,21 @@ - Création in progress + 1 - Cretion in progress - Order validated + 2 - Order validated - Pending receipt + 3 - Pending receipt - Order received in part + 4 - Order received in part - Order received completely + 5 - Order received completely - order canceled + 6 - Order canceled