// BugFix in checkout with multishipping on step address

This commit is contained in:
mDeflotte
2011-12-06 16:03:00 +00:00
parent 022ce1a72c
commit 96e5d1dcb7
2 changed files with 53 additions and 52 deletions
+9 -6
View File
@@ -60,7 +60,7 @@ function updateAddressesDisplay(first_view)
else
{
$('#address_invoice_form:hidden').show('fast');
if ($('select#id_address_invoice').val())
if ($('#id_address_invoice').val())
updateAddressDisplay('invoice');
else
{
@@ -82,20 +82,23 @@ function updateAddressDisplay(addressType)
if (formatedAddressFieldsValuesList.length <= 0)
return false;
var idAddress = $('select#id_address_' + addressType + '').val();
var idAddress = $('#id_address_' + addressType + '').val();
buildAddressBlock(idAddress, addressType, $('#address_'+ addressType));
// change update link
var link = $('ul#address_' + addressType + ' li.address_update a').attr('href');
var expression = /id_address=\d+/;
link = link.replace(expression, 'id_address='+idAddress);
$('ul#address_' + addressType + ' li.address_update a').attr('href', link);
if (link)
{
link = link.replace(expression, 'id_address='+idAddress);
$('ul#address_' + addressType + ' li.address_update a').attr('href', link);
}
}
function updateAddresses()
{
var idAddress_delivery = $('select#id_address_delivery').val();
var idAddress_invoice = $('input[type=checkbox]#addressesAreEquals:checked').length == 1 ? idAddress_delivery : $('select#id_address_invoice').val();
var idAddress_delivery = $('#id_address_delivery').val();
var idAddress_invoice = $('input[type=checkbox]#addressesAreEquals:checked').length == 1 ? idAddress_delivery : $('#id_address_invoice').val();
$.ajax({
type: 'POST',
+44 -46
View File
@@ -23,6 +23,13 @@
* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0)
* International Registered Trademark & Property of PrestaShop SA
*}
{if $opc}
{assign var="back_order_page" value="order-opc.php"}
{else}
{assign var="back_order_page" value="order.php"}
{/if}
{* Will be deleted for 1.5 version and more *}
{if !isset($formatedAddressFieldsValuesList)}
{$ignoreList.0 = "id_address"}
@@ -68,32 +75,32 @@
{foreach from=$formatedAddressFieldsValuesList key=id_address item=type}
formatedAddressFieldsValuesList[{$id_address}] =
{ldelim}
{
'ordered_fields':[
{foreach from=$type.ordered_fields key=num_field item=field_name name=inv_loop}
{if !$smarty.foreach.inv_loop.first},{/if}"{$field_name}"
{/foreach}
],
'formated_fields_values':{ldelim}
{foreach from=$type.formated_fields_values key=pattern_name item=field_name name=inv_loop}
{if !$smarty.foreach.inv_loop.first},{/if}"{$pattern_name}":"{$field_name}"
{/foreach}
{rdelim}
{rdelim}
'formated_fields_values':{
{foreach from=$type.formated_fields_values key=pattern_name item=field_name name=inv_loop}
{if !$smarty.foreach.inv_loop.first},{/if}"{$pattern_name}":"{$field_name}"
{/foreach}
}
}
{/foreach}
function getAddressesTitles()
{ldelim}
return {ldelim}
'invoice': "{l s='Your billing address'}",
'delivery': "{l s='Your delivery address'}"
{rdelim};
{
return {
'invoice': "{l s='Your billing address'}",
'delivery': "{l s='Your delivery address'}"
};
{rdelim}
}
function buildAddressBlock(id_address, address_type, dest_comp)
{ldelim}
{
var adr_titles_vals = getAddressesTitles();
var li_content = formatedAddressFieldsValuesList[id_address]['formated_fields_values'];
var ordered_fields_name = ['title'];
@@ -107,26 +114,26 @@
li_content['update'] = '<a href="{$link->getPageLink('address', true, NULL, "id_address")}'+id_address+'&amp;back=order?step=1{if $back}&mod={$back}{/if}" title="{l s='Update'}">{l s='Update'}</a>';
appendAddressList(dest_comp, li_content, ordered_fields_name);
{rdelim}
}
function appendAddressList(dest_comp, values, fields_name)
{ldelim}
{
for (var item in fields_name)
{ldelim}
{
var name = fields_name[item];
var value = getFieldValue(name, values);
if (value != "")
{ldelim}
var new_li = document.createElement('li');
new_li.className = 'address_'+ name;
new_li.innerHTML = getFieldValue(name, values);
dest_comp.append(new_li);
{rdelim}
{rdelim}
{rdelim}
{
var new_li = document.createElement('li');
new_li.className = 'address_'+ name;
new_li.innerHTML = getFieldValue(name, values);
dest_comp.append(new_li);
}
}
}
function getFieldValue(field_name, values)
{ldelim}
{
var reg=new RegExp("[ ]+", "g");
var items = field_name.split(reg);
@@ -135,7 +142,7 @@
for (var field_item in items)
vals.push(values[items[field_item]]);
return vals.join(" ");
{rdelim}
}
//]]>
</script>
@@ -145,7 +152,7 @@
{include file="$tpl_dir./breadcrumb.tpl"}
{/if}
{if !$opc}<h1>{l s='Addresses'}</h1>{else}<h2>1. {l s='Addresses'}</h2>{/if}
{if !$opc}<h1>{l s='Addresses'}</h1>{else}<h2><span>1</span> {l s='Addresses'}</h2>{/if}
{if !$opc}
{assign var='current_step' value='address'}
@@ -159,40 +166,31 @@
<div id="opc_account" class="opc-main-block">
<div id="opc_account-overlay" class="opc-overlay" style="display: none;"></div>
{/if}
<div class="addresses">
<input type="hidden" name="id_address_delivery" id="id_address_delivery" value="{$cart->id_address_delivery}" />
<input type="hidden" name="id_address_delivery" id="id_address_delivery" value="{$cart->id_address_delivery}" onchange="updateAddressesDisplay();{if $opc}updateAddressSelection();{/if}" />
<p id="address_invoice_form" class="select" {if $cart->id_address_invoice == $cart->id_address_delivery}style="display: none;"{/if}>
{if $addresses|@count > 1}
{if $addresses|@count >= 1}
<label for="id_address_invoice" class="strong">{l s='Choose a billing address:'}</label>
<select name="id_address_invoice" id="id_address_invoice" class="address_select" onchange="updateAddressesDisplay();{if $opc}updateAddressSelection();{/if}">
{section loop=$addresses step=-1 name=address}
<option value="{$addresses[address].id_address|intval}" {if $addresses[address].id_address == $cart->id_address_invoice && $cart->id_address_delivery != $cart->id_address_invoice}selected="selected"{/if}>{$addresses[address].alias|escape:'htmlall':'UTF-8'}</option>
{/section}
</select>
{else}
{if $back}
<a style="margin-left: 221px;" href="{$link->getPageLink('address', true, NULL, "back=order&amp;step=1&amp;select_address=1&mod=$back")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
{else}
<a style="margin-left: 221px;" href="{$link->getPageLink('address', true, NULL, "back=order&amp;step=1&amp;select_address=1")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
{/if}
{/if}
{else}
<a href="{$link->getPageLink('address', true, NULL, "back={$back_order_page}?step=1{if $back}&mod={$back}{/if}")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
{/if}
</p>
<div class="clear"></div>
<ul class="address item {if $cart->isVirtualCart()}full_width{/if}" id="address_invoice">
<ul class="address alternate_item {if $cart->isVirtualCart()}full_width{/if}" id="address_invoice">
</ul>
<br class="clear" />
<p class="address_add submit">
{if $back}
<a href="{$link->getPageLink('address', true, NULL, "back=order%26step=1%26mod={$back}%26multi-shipping=1")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
{else}
<a href="{$link->getPageLink('address', true, NULL, "back=order%26step=1%26multi-shipping=1")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
{/if}
<a href="{$link->getPageLink('address', true, NULL, "back={$back_order_page}?step=1{if $back}&mod={$back|urlencode}{/if}")}" title="{l s='Add'}" class="button_large">{l s='Add a new address'}</a>
</p>
{if !$opc}
<div id="ordermsg">
<p>{l s='If you would like to add a comment about your order, please write it below.'}</p>
<div id="ordermsg" class="clearfix">
<p class="txt">{l s='If you would like to add a comment about your order, please write it below.'}</p>
<p class="textarea"><textarea cols="60" rows="3" name="message">{if isset($oldMessage)}{$oldMessage}{/if}</textarea></p>
</div>
{/if}