// Improved Supply Order States

git-svn-id: http://dev.prestashop.com/svn/v1/branches/1.5.x@13027 b9a71923-0436-4b27-9f14-aed3839534dd
This commit is contained in:
bMancone
2012-02-06 14:11:29 +00:00
parent f3b1c0a36b
commit d51002f6fe
9 changed files with 104 additions and 61 deletions
+1 -1
View File
@@ -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}
@@ -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)}
<input type="hidden" name="id_supply_order" id="id_supply_order" value="{$supply_order->id}">
<label>{l s='Status of the order:'}</label>
<div class="margin-form">
<select name="id_supply_order_state" id="id_supply_order_state">
{foreach $supply_order_states as $state}
<option value="{$state['id_supply_order_state']}" {if $state['allowed'] == 0} disabled="disabled" {/if}>{$state['name']}</option>
{/foreach}
</select>
<p class="preference_description">
{l s='Choose the new status of your order'}
</p>
</div>
<div class="margin-form">
<input type="submit" id="_form_submit_btn" value=" Save " name="submitChangestate" class="button" style="display: none; ">
</div>
{/if}
{/block}
{block name="other_fieldset"}
<br />
{if isset($supply_order_state) && $supply_order_state->editable == false && isset($supply_order)}
<fieldset>
<legend>
<img src="../img/admin/pdf.gif" alt="{l s='Supply Order State'}">
{l s='Print the supply order form'}
<img src="../img/admin/pdf.gif" alt="{l s='Supply Order State'}">
{l s='Print the supply order form'}
</legend>
<a href="pdf.php?id_supply_order={$supply_order->id}" target="_blank" title="Export as PDF">{l s='Click here to download the supply order form'}.</a>
</fieldset>
+27 -1
View File
@@ -142,4 +142,30 @@ class SupplyOrderStateCore extends ObjectModel
return Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($query);
}
}
/**
* 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);
}
}
@@ -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);
@@ -1,21 +1,21 @@
<?xml version="1.0"?>
<entity_supply_order_state>
<supply_order_state id="supply_order_state_1">
<name>Cr&#xE9;ation in progress</name>
<name>1 &#x2d; Creation in progress</name>
</supply_order_state>
<supply_order_state id="supply_order_state_2">
<name>Order validated</name>
<name>2 &#x2d; Order validated</name>
</supply_order_state>
<supply_order_state id="supply_order_state_3">
<name>Pending receipt</name>
<name>3 &#x2d; Pending receipt</name>
</supply_order_state>
<supply_order_state id="supply_order_state_4">
<name>Order received in part</name>
<name>4 &#x2d; Order received in part</name>
</supply_order_state>
<supply_order_state id="supply_order_state_5">
<name>Order received completely</name>
<name>5 &#x2d; Order received completely</name>
</supply_order_state>
<supply_order_state id="supply_order_state_6">
<name>order canceled</name>
<name>6 &#x2d; Order canceled</name>
</supply_order_state>
</entity_supply_order_state>
@@ -1,21 +1,21 @@
<?xml version="1.0"?>
<entity_supply_order_state>
<supply_order_state id="supply_order_state_1">
<name>creation in progress</name>
<name>1 &#x2d; Creation in progress</name>
</supply_order_state>
<supply_order_state id="supply_order_state_2">
<name>Order validated</name>
<name>2 &#x2d; Order validated</name>
</supply_order_state>
<supply_order_state id="supply_order_state_3">
<name>Pending receipt</name>
<name>3 &#x2d; Pending receipt</name>
</supply_order_state>
<supply_order_state id="supply_order_state_4">
<name>Order received in part</name>
<name>4 &#x2d; Order received in part</name>
</supply_order_state>
<supply_order_state id="supply_order_state_5">
<name>Order received completely</name>
<name>5 &#x2d; Order received completely</name>
</supply_order_state>
<supply_order_state id="supply_order_state_6">
<name>order canceled</name>
<name>6 &#x2d; Order canceled</name>
</supply_order_state>
</entity_supply_order_state>
@@ -1,21 +1,21 @@
<?xml version="1.0"?>
<entity_supply_order_state>
<supply_order_state id="supply_order_state_1">
<name>Cr&#xE9;ation in progress</name>
<name>1 &#x2d; Creation in progress</name>
</supply_order_state>
<supply_order_state id="supply_order_state_2">
<name>Order validated</name>
<name>2 &#x2d; Order validated</name>
</supply_order_state>
<supply_order_state id="supply_order_state_3">
<name>Pending receipt</name>
<name>3 &#x2d; Pending receipt</name>
</supply_order_state>
<supply_order_state id="supply_order_state_4">
<name>Order received in part</name>
<name>4 &#x2d; Order received in part</name>
</supply_order_state>
<supply_order_state id="supply_order_state_5">
<name>Order received completely</name>
<name>5 &#x2d; Order received completely</name>
</supply_order_state>
<supply_order_state id="supply_order_state_6">
<name>order canceled</name>
<name>6 &#x2d; Order canceled</name>
</supply_order_state>
</entity_supply_order_state>
@@ -1,21 +1,21 @@
<?xml version="1.0"?>
<entity_supply_order_state>
<supply_order_state id="supply_order_state_1">
<name>Cr&#xE9;ation en cours</name>
<name>1 &#x2d; Cr&#xE9;ation en cours</name>
</supply_order_state>
<supply_order_state id="supply_order_state_2">
<name>Commande valid&#xE9;e</name>
<name>2 &#x2d; Commande valid&#xE9;e</name>
</supply_order_state>
<supply_order_state id="supply_order_state_3">
<name>Attente de r&#xE9;ception</name>
<name>3 &#x2d; En attente de r&#xE9;ception</name>
</supply_order_state>
<supply_order_state id="supply_order_state_4">
<name>Commande r&#xE9;ceptionn&#xE9;e partiellement</name>
<name>4 &#x2d; Commande r&#xE9;ceptionn&#xE9;e partiellement</name>
</supply_order_state>
<supply_order_state id="supply_order_state_5">
<name>Commande r&#xE9;ceptionn&#xE9;e totalement</name>
<name>5 &#x2d; Commande r&#xE9;ceptionn&#xE9;e totalement</name>
</supply_order_state>
<supply_order_state id="supply_order_state_6">
<name>Commande annul&#xE9;e</name>
<name>6 &#x2d; Commande annul&#xE9;e</name>
</supply_order_state>
</entity_supply_order_state>
@@ -1,21 +1,21 @@
<?xml version="1.0"?>
<entity_supply_order_state>
<supply_order_state id="supply_order_state_1">
<name>Cr&#xE9;ation in progress</name>
<name>1 &#x2d; Cretion in progress</name>
</supply_order_state>
<supply_order_state id="supply_order_state_2">
<name>Order validated</name>
<name>2 &#x2d; Order validated</name>
</supply_order_state>
<supply_order_state id="supply_order_state_3">
<name>Pending receipt</name>
<name>3 &#x2d; Pending receipt</name>
</supply_order_state>
<supply_order_state id="supply_order_state_4">
<name>Order received in part</name>
<name>4 &#x2d; Order received in part</name>
</supply_order_state>
<supply_order_state id="supply_order_state_5">
<name>Order received completely</name>
<name>5 &#x2d; Order received completely</name>
</supply_order_state>
<supply_order_state id="supply_order_state_6">
<name>order canceled</name>
<name>6 &#x2d; Order canceled</name>
</supply_order_state>
</entity_supply_order_state>