//carrier wizard free shipping fix & added currency sign on new range
This commit is contained in:
1 parent
fc63b8ad7f
commit
9e720da3d6
4 files changed
+48
-47
No files matched your search
+3
-2
@@ -38,11 +38,12 @@
|
|||||||
<tr class="fees {if $i is odd}alt_row{/if}" data-zoneid="{$zone.id_zone}">
|
<tr class="fees {if $i is odd}alt_row{/if}" data-zoneid="{$zone.id_zone}">
|
||||||
<td>{$zone.name}</td>
|
<td>{$zone.name}</td>
|
||||||
<td class="zone">
|
<td class="zone">
|
||||||
<input class="input_zone" name="zone_{$zone.id_zone}" value="1" type="checkbox" {if isset($fields_value[$input.name][$zone.id_zone]) && $fields_value[$input.name][$zone.id_zone]} checked="checked"{/if}/>
|
<input class="input_zone" name="zone_{$zone.id_zone}" value="1" type="checkbox" {if isset($fields_value['zones'][$zone.id_zone]) && $fields_value['zones'][$zone.id_zone]} checked="checked"{/if}/>
|
||||||
</td>
|
</td>
|
||||||
{foreach from=$ranges key=r item=range}
|
{foreach from=$ranges key=r item=range}
|
||||||
<td class="center">
|
<td class="center">
|
||||||
<input name="fees[{$zone.id_zone|intval}][{$range.id_range|intval}]" {if ((isset($form_id) && !$form_id) || isset($change_ranges) || (isset($fields_value[$input.name][$zone.id_zone]) && !$fields_value[$input.name][$zone.id_zone]))} disabled="disabled"{/if} type="text" value="{if isset($price_by_range[$range.id_range][$zone.id_zone]) && $fields_value[$input.name][$zone.id_zone]} {$price_by_range[$range.id_range][$zone.id_zone]|string_format:'%.6f'} {/if}" /> {$currency_sign}
|
<input name="fees[{$zone.id_zone|intval}][{$range.id_range|intval}]" type="text"
|
||||||
|
{if !isset($fields_value['zones'][$zone.id_zone]) || (isset($fields_value['zones'][$zone.id_zone]) && !$fields_value['zones'][$zone.id_zone])} disabled="disabled"{/if} {if isset($price_by_range[$range.id_range][$zone.id_zone]) && $price_by_range[$range.id_range][$zone.id_zone] && isset($fields_value['zones'][$zone.id_zone]) && $fields_value['zones'][$zone.id_zone]} value="{$price_by_range[$range.id_range][$zone.id_zone]|string_format:'%.6f'}" {else} value="" {/if} /> {$currency_sign}
|
||||||
</td>
|
</td>
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -37,6 +37,7 @@
|
|||||||
var enableAllSteps = {if $enableAllSteps|intval == 1}true{else}false{/if};
|
var enableAllSteps = {if $enableAllSteps|intval == 1}true{else}false{/if};
|
||||||
var need_to_validate = '{l s='Please validate the last range before create a new one.' js=1}';
|
var need_to_validate = '{l s='Please validate the last range before create a new one.' js=1}';
|
||||||
var delete_range_confirm = '{l s='Are you sure to delete this range ?' js=1}';
|
var delete_range_confirm = '{l s='Are you sure to delete this range ?' js=1}';
|
||||||
|
var currency_sign = '{$currency_sign}';
|
||||||
</script>
|
</script>
|
||||||
<div id="carrier_wizard" class="swMain">
|
<div id="carrier_wizard" class="swMain">
|
||||||
<ul class="nbr_steps_{$wizard_steps.steps|count}">
|
<ul class="nbr_steps_{$wizard_steps.steps|count}">
|
||||||
|
|||||||
@@ -101,8 +101,9 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
$this->errors[] = Tools::displayError('You do not have permission to use this wizard.');
|
$this->errors[] = Tools::displayError('You do not have permission to use this wizard.');
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
|
$currency = new Currency(Configuration::get('PS_CURRENCY_DEFAULT'));
|
||||||
$this->tpl_view_vars = array(
|
$this->tpl_view_vars = array(
|
||||||
|
'currency_sign' => $currency->sign,
|
||||||
'enableAllSteps' => Validate::isLoadedObject($carrier),
|
'enableAllSteps' => Validate::isLoadedObject($carrier),
|
||||||
'wizard_steps' => $this->wizard_steps,
|
'wizard_steps' => $this->wizard_steps,
|
||||||
'validate_url' => $this->context->link->getAdminLink('AdminCarrierWizard'),
|
'validate_url' => $this->context->link->getAdminLink('AdminCarrierWizard'),
|
||||||
@@ -117,6 +118,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
'labels' => array('next' => $this->l('Next'), 'previous' => $this->l('Previous'), 'finish' => $this->l('Finish'))
|
'labels' => array('next' => $this->l('Next'), 'previous' => $this->l('Previous'), 'finish' => $this->l('Finish'))
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
if (Shop::isFeatureActive())
|
if (Shop::isFeatureActive())
|
||||||
array_splice($this->tpl_view_vars['wizard_contents']['contents'], 1, 0, array(0 => $this->renderStepTwo($carrier)));
|
array_splice($this->tpl_view_vars['wizard_contents']['contents'], 1, 0, array(0 => $this->renderStepTwo($carrier)));
|
||||||
|
|
||||||
@@ -417,35 +419,35 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
foreach ($carrier_zones as $carrier_zone)
|
foreach ($carrier_zones as $carrier_zone)
|
||||||
$carrier_zones_ids[] = $carrier_zone['id_zone'];
|
$carrier_zones_ids[] = $carrier_zone['id_zone'];
|
||||||
|
|
||||||
|
$range_table = $carrier->getRangeTable();
|
||||||
$shipping_method = $carrier->getShippingMethod();
|
$shipping_method = $carrier->getShippingMethod();
|
||||||
|
|
||||||
|
$zones = Zone::getZones(false);
|
||||||
|
foreach ($zones as $zone)
|
||||||
|
$fields_value['zones'][$zone['id_zone']] = Tools::getValue('zone_'.$zone['id_zone'], (in_array($zone['id_zone'], $carrier_zones_ids)));
|
||||||
|
|
||||||
if ($shipping_method == Carrier::SHIPPING_METHOD_FREE)
|
if ($shipping_method == Carrier::SHIPPING_METHOD_FREE)
|
||||||
{
|
{
|
||||||
$range_table = array();
|
|
||||||
$range_obj = $carrier->getRangeObject($carrier->shipping_method);
|
$range_obj = $carrier->getRangeObject($carrier->shipping_method);
|
||||||
$price_by_range = array();
|
$price_by_range = array();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$range_table = $carrier->getRangeTable();
|
|
||||||
$range_obj = $carrier->getRangeObject();
|
$range_obj = $carrier->getRangeObject();
|
||||||
$price_by_range = Carrier::getDeliveryPriceByRanges($range_table, (int)$carrier->id);
|
$price_by_range = Carrier::getDeliveryPriceByRanges($range_table, (int)$carrier->id);
|
||||||
}
|
}
|
||||||
|
|
||||||
$zones = Zone::getZones(false);
|
|
||||||
foreach ($zones as $zone)
|
|
||||||
$fields_value['zones'][$zone['id_zone']] = Tools::getValue('zone_'.$zone['id_zone'], (in_array($zone['id_zone'], $carrier_zones_ids)));
|
|
||||||
|
|
||||||
foreach ($price_by_range as $price)
|
foreach ($price_by_range as $price)
|
||||||
$tpl_vars['price_by_range'][$price['id_'.$range_table]][$price['id_zone']] = $price['price'];
|
$tpl_vars['price_by_range'][$price['id_'.$range_table]][$price['id_zone']] = $price['price'];
|
||||||
|
|
||||||
$tmp_range = $range_obj->getRanges((int)$carrier->id);
|
$tmp_range = $range_obj->getRanges((int)$carrier->id);
|
||||||
$tpl_vars['ranges'] = array();
|
$tpl_vars['ranges'] = array();
|
||||||
foreach ($tmp_range as $id => $range)
|
if ($shipping_method != Carrier::SHIPPING_METHOD_FREE)
|
||||||
{
|
foreach ($tmp_range as $id => $range)
|
||||||
$tpl_vars['ranges'][$range['id_'.$range_table]] = $range;
|
{
|
||||||
$tpl_vars['ranges'][$range['id_'.$range_table]]['id_range'] = $range['id_'.$range_table];
|
$tpl_vars['ranges'][$range['id_'.$range_table]] = $range;
|
||||||
}
|
$tpl_vars['ranges'][$range['id_'.$range_table]]['id_range'] = $range['id_'.$range_table];
|
||||||
|
}
|
||||||
|
|
||||||
// init blank range
|
// init blank range
|
||||||
if (!count($tpl_vars['ranges']))
|
if (!count($tpl_vars['ranges']))
|
||||||
@@ -534,7 +536,6 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
$tpl_vars = array();
|
$tpl_vars = array();
|
||||||
$fields_value = $this->getStepThreeFieldsValues($carrier);
|
$fields_value = $this->getStepThreeFieldsValues($carrier);
|
||||||
$this->getTplRangesVarsAndValues($carrier, $tpl_vars, $fields_value);
|
$this->getTplRangesVarsAndValues($carrier, $tpl_vars, $fields_value);
|
||||||
|
|
||||||
$template = $this->createTemplate('controllers/carrier_wizard/helpers/form/form_ranges.tpl');
|
$template = $this->createTemplate('controllers/carrier_wizard/helpers/form/form_ranges.tpl');
|
||||||
$template->assign($tpl_vars);
|
$template->assign($tpl_vars);
|
||||||
$template->assign('change_ranges', 1);
|
$template->assign('change_ranges', 1);
|
||||||
@@ -676,19 +677,30 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
$current_carrier = new Carrier((int)$id_carrier);
|
$current_carrier = new Carrier((int)$id_carrier);
|
||||||
// if update we duplicate current Carrier
|
// if update we duplicate current Carrier
|
||||||
$carrier = $current_carrier->duplicateObject();
|
$new_carrier = $current_carrier->duplicateObject();
|
||||||
if (Validate::isLoadedObject($carrier))
|
if (Validate::isLoadedObject($new_carrier))
|
||||||
{
|
{
|
||||||
// Set flag deteled to true for historization
|
// Set flag deteled to true for historization
|
||||||
$current_carrier->deleted = true;
|
$current_carrier->deleted = true;
|
||||||
$current_carrier->update();
|
$current_carrier->update();
|
||||||
|
|
||||||
// Fill the new carrier object
|
// Fill the new carrier object
|
||||||
$this->copyFromPost($carrier, $this->table);
|
$this->copyFromPost($new_carrier, $this->table);
|
||||||
$carrier->position = $current_carrier->position;
|
$new_carrier->position = $current_carrier->position;
|
||||||
$carrier->update();
|
$new_carrier->update();
|
||||||
|
|
||||||
$this->copyLogo($current_carrier->id, $carrier->id);
|
$this->updateAssoShop($new_carrier->id);
|
||||||
|
$new_carrier->copyCarrierData((int)$current_carrier->id);
|
||||||
|
$this->changeGroups($new_carrier->id);
|
||||||
|
// Call of hooks
|
||||||
|
Hook::exec('actionCarrierUpdate', array(
|
||||||
|
'id_carrier' => (int)$current_carrier->id,
|
||||||
|
'carrier' => $new_carrier
|
||||||
|
));
|
||||||
|
$this->postImage($new_carrier->id);
|
||||||
|
$this->changeZones($new_carrier->id);
|
||||||
|
$new_carrier->setTaxRulesGroup((int)Tools::getValue('id_tax_rules_group'));
|
||||||
|
$carrier = $new_carrier;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -724,7 +736,7 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!$carrier->is_free)
|
if (!$carrier->is_free)
|
||||||
if (!$this->processRanges((int)$carrier->id))
|
if (!Tools::getValue('id_carrier') && !$this->processRanges((int)$carrier->id))
|
||||||
{
|
{
|
||||||
$return['has_error'] = true;
|
$return['has_error'] = true;
|
||||||
$return['errors'][] = $this->l('An error occurred while saving carrier ranges.');
|
$return['errors'][] = $this->l('An error occurred while saving carrier ranges.');
|
||||||
@@ -762,21 +774,6 @@ class AdminCarrierWizardControllerCore extends AdminController
|
|||||||
die(Tools::jsonEncode($return));
|
die(Tools::jsonEncode($return));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function copyLogo($old_id, $new_id)
|
|
||||||
{
|
|
||||||
$old_logo = _PS_SHIP_IMG_DIR_.'/'.(int)$old_id.'.jpg';
|
|
||||||
if (file_exists($old_logo))
|
|
||||||
copy($old_logo, _PS_SHIP_IMG_DIR_.'/'.(int)$new_id.'.jpg');
|
|
||||||
|
|
||||||
$old_tmp_logo = _PS_TMP_IMG_DIR_.'/carrier_mini_'.(int)$old_id.'.jpg';
|
|
||||||
if (file_exists($old_tmp_logo))
|
|
||||||
{
|
|
||||||
if (!isset($_FILES['logo']))
|
|
||||||
copy($old_tmp_logo, _PS_TMP_IMG_DIR_.'/carrier_mini_'.$new_id.'.jpg');
|
|
||||||
unlink($old_tmp_logo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected function changeGroups($id_carrier, $delete = true)
|
protected function changeGroups($id_carrier, $delete = true)
|
||||||
{
|
{
|
||||||
$carrier = new Carrier((int)$id_carrier);
|
$carrier = new Carrier((int)$id_carrier);
|
||||||
|
|||||||
@@ -27,7 +27,8 @@
|
|||||||
$(document).ready(function() {
|
$(document).ready(function() {
|
||||||
bind_inputs();
|
bind_inputs();
|
||||||
initCarrierWizard();
|
initCarrierWizard();
|
||||||
is_freeClick($('input[name="is_free"]:checked'));
|
if (parseInt($('input[name="is_free"]:checked').val()))
|
||||||
|
is_freeClick($('input[name="is_free"]:checked'));
|
||||||
displayRangeType();
|
displayRangeType();
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -262,6 +263,7 @@ function bind_inputs()
|
|||||||
if ($('tr.fees_all td:eq('+index+')').hasClass('validated'))
|
if ($('tr.fees_all td:eq('+index+')').hasClass('validated'))
|
||||||
$(this).children('input:text').removeAttr('disabled');
|
$(this).children('input:text').removeAttr('disabled');
|
||||||
});
|
});
|
||||||
|
console.log($(this).next());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
$(this).closest('tr').children('td').children('input:text').attr('disabled', 'disabled');
|
$(this).closest('tr').children('td').children('input:text').attr('disabled', 'disabled');
|
||||||
@@ -285,7 +287,7 @@ function bind_inputs()
|
|||||||
|
|
||||||
$(document.body).off('change', 'tr.fees_all td input').on('change', 'tr.fees_all td input', function() {
|
$(document.body).off('change', 'tr.fees_all td input').on('change', 'tr.fees_all td input', function() {
|
||||||
index = $(this).parent('td').index();
|
index = $(this).parent('td').index();
|
||||||
val = $(this).val();
|
val = 'tototo';$(this).val();
|
||||||
$(this).val('');
|
$(this).val('');
|
||||||
$('tr.fees').each( function () {
|
$('tr.fees').each( function () {
|
||||||
$(this).find('td:eq('+index+') input:text:enabled').val(val);
|
$(this).find('td:eq('+index+') input:text:enabled').val(val);
|
||||||
@@ -330,7 +332,7 @@ function is_freeClick(elt)
|
|||||||
|
|
||||||
function hideFees()
|
function hideFees()
|
||||||
{
|
{
|
||||||
$('tr.fees td').each( function () {
|
$('tr.range_inf td, tr.range_sup td, tr.fees_all td, tr.fees td').each( function () {
|
||||||
if ($(this).index() >= 2)
|
if ($(this).index() >= 2)
|
||||||
{
|
{
|
||||||
$(this).find('input:text, button').val('').attr('disabled', 'disabled').css('background-color', '#999999').css('border-color', '#999999');
|
$(this).find('input:text, button').val('').attr('disabled', 'disabled').css('background-color', '#999999').css('border-color', '#999999');
|
||||||
@@ -341,12 +343,12 @@ function hideFees()
|
|||||||
|
|
||||||
function showFees()
|
function showFees()
|
||||||
{
|
{
|
||||||
$('tr.fees td').each( function () {
|
$('tr.range_inf td, tr.range_sup td, tr.fees_all td, tr.fees td').each( function () {
|
||||||
if ($(this).index() >= 2)
|
if ($(this).index() >= 2)
|
||||||
{
|
{
|
||||||
//enable only if zone is active
|
//enable only if zone is active
|
||||||
tr = $(this).parent('tr');
|
tr = $(this).parent('tr');
|
||||||
if ($(tr).index() > 2 && $(tr).find('td:eq(1) input').attr('checked') && $('tr.fees_all td:eq('+$(this).index()+')').hasClass('validated'))
|
if ($(tr).index() > 2 && $(tr).find('td:eq(1) input').attr('checked') && $('tr.fees_all td:eq('+$(this).index()+')').hasClass('validated') || $(tr).hasClass('range_sup') || $(tr).hasClass('range_inf'))
|
||||||
$(this).find('input:text').val('').removeAttr('disabled');
|
$(this).find('input:text').val('').removeAttr('disabled');
|
||||||
|
|
||||||
$(this).find('input:text, button').css('background-color', '').css('border-color', '');
|
$(this).find('input:text, button').css('background-color', '').css('border-color', '');
|
||||||
@@ -455,7 +457,7 @@ function add_new_range()
|
|||||||
$('tr.fees_all td:last').after('<td class="center border_top border_bottom"><input style="display:none" type="text" /> <button class="button">'+labelValidate+'</button</td>');
|
$('tr.fees_all td:last').after('<td class="center border_top border_bottom"><input style="display:none" type="text" /> <button class="button">'+labelValidate+'</button</td>');
|
||||||
|
|
||||||
$('tr.fees').each( function () {
|
$('tr.fees').each( function () {
|
||||||
$(this).children('td:last').after('<td class="center"><input disabled="disabled" name="fees['+$(this).data('zoneid')+'][]" type="text" /></td>');
|
$(this).children('td:last').after('<td class="center"><input disabled="disabled" name="fees['+$(this).data('zoneid')+'][]" type="text" /> '+currency_sign+'</td>');
|
||||||
});
|
});
|
||||||
$('tr.delete_range td:last').after('<td class="center"><button class="button">'+labelDelete+'</button</td>');
|
$('tr.delete_range td:last').after('<td class="center"><button class="button">'+labelDelete+'</button</td>');
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user