[-] : Fix bug #PSCFV-4859, could not register invoice address or invoice country in OPC as guest, and phone not required in standard registration
This commit is contained in:
@@ -225,19 +225,19 @@ class AddressControllerCore extends FrontController
|
||||
else // Update cart address
|
||||
$this->context->cart->autosetProductAddress();
|
||||
|
||||
if ((bool)(Tools::getValue('select_address', false)) == true OR Tools::getValue('type') == 'invoice' && Configuration::get('PS_ORDER_PROCESS_TYPE'))
|
||||
{
|
||||
if ((bool)(Tools::getValue('select_address', false)) == true OR (Tools::getValue('type') == 'invoice' && Configuration::get('PS_ORDER_PROCESS_TYPE')))
|
||||
$this->context->cart->id_address_invoice = (int)$address->id;
|
||||
$this->context->cart->update();
|
||||
}
|
||||
|
||||
elseif (Configuration::get('PS_ORDER_PROCESS_TYPE'))
|
||||
$this->context->cart->id_address_invoice = (int)$this->context->cart->id_address_delivery;
|
||||
$this->context->cart->update();
|
||||
|
||||
if ($this->ajax)
|
||||
{
|
||||
$return = array(
|
||||
'hasError' => (bool)$this->errors,
|
||||
'errors' => $this->errors,
|
||||
'id_address_delivery' => $this->context->cart->id_address_delivery,
|
||||
'id_address_invoice' => $this->context->cart->id_address_invoice
|
||||
'id_address_delivery' => (int)$this->context->cart->id_address_delivery,
|
||||
'id_address_invoice' => (int)$this->context->cart->id_address_invoice
|
||||
);
|
||||
die(Tools::jsonEncode($return));
|
||||
}
|
||||
|
||||
@@ -392,7 +392,10 @@ class AuthControllerCore extends FrontController
|
||||
$firstnameAddress = Tools::getValue('firstname');
|
||||
$_POST['lastname'] = Tools::getValue('customer_lastname');
|
||||
$_POST['firstname'] = Tools::getValue('customer_firstname');
|
||||
|
||||
$addresses_types = array('address');
|
||||
if (!Configuration::get('PS_ORDER_PROCESS_TYPE') && Configuration::get('PS_GUEST_CHECKOUT_ENABLED') && Tools::getValue('invoice_address'))
|
||||
$addresses_types[] = 'address_invoice';
|
||||
|
||||
$error_phone = false;
|
||||
if (Configuration::get('PS_ONE_PHONE_AT_LEAST'))
|
||||
{
|
||||
@@ -402,10 +405,8 @@ class AuthControllerCore extends FrontController
|
||||
$error_phone = true;
|
||||
}
|
||||
elseif (((Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && Configuration::get('PS_ORDER_PROCESS_TYPE'))
|
||||
|| (Configuration::get('PS_ORDER_PROCESS_TYPE') && !Tools::getValue('email_create')))
|
||||
&& (!Tools::getValue('phone') && !Tools::getValue('phone_mobile')))
|
||||
$error_phone = true;
|
||||
elseif (((Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && Configuration::get('PS_ORDER_PROCESS_TYPE') && Tools::getValue('email_create')))
|
||||
|| (Configuration::get('PS_ORDER_PROCESS_TYPE') && !Tools::getValue('email_create'))
|
||||
|| (Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && Tools::getValue('email_create')))
|
||||
&& (!Tools::getValue('phone') && !Tools::getValue('phone_mobile')))
|
||||
$error_phone = true;
|
||||
}
|
||||
@@ -480,37 +481,57 @@ class AuthControllerCore extends FrontController
|
||||
}
|
||||
else // if registration type is in one step, we save the address
|
||||
{
|
||||
// Preparing address
|
||||
$address = new Address();
|
||||
$_POST['lastname'] = $lastnameAddress;
|
||||
$_POST['firstname'] = $firstnameAddress;
|
||||
$address->id_customer = 1;
|
||||
$this->errors = array_unique(array_merge($this->errors, $address->validateController()));
|
||||
|
||||
// US customer: normalize the address
|
||||
if ($address->id_country == Country::getByIso('US') && Configuration::get('PS_TAASC'))
|
||||
$post_back = $_POST;
|
||||
// Preparing addresses
|
||||
foreach($addresses_types as $addresses_type)
|
||||
{
|
||||
include_once(_PS_TAASC_PATH_.'AddressStandardizationSolution.php');
|
||||
$normalize = new AddressStandardizationSolution;
|
||||
$address->address1 = $normalize->AddressLineStandardization($address->address1);
|
||||
$address->address2 = $normalize->AddressLineStandardization($address->address2);
|
||||
$$addresses_type = new Address();
|
||||
$$addresses_type->id_customer = 1;
|
||||
|
||||
if ($addresses_type == 'address_invoice')
|
||||
foreach($_POST as $key => &$post)
|
||||
if (isset($_POST[$key.'_invoice']))
|
||||
$post = $_POST[$key.'_invoice'];
|
||||
|
||||
$this->errors = array_unique(array_merge($this->errors, $$addresses_type->validateController()));
|
||||
if ($addresses_type == 'address_invoice')
|
||||
$_POST = $post_back;
|
||||
|
||||
// US customer: normalize the address
|
||||
if ($$addresses_type->id_country == Country::getByIso('US') && Configuration::get('PS_TAASC'))
|
||||
{
|
||||
include_once(_PS_TAASC_PATH_.'AddressStandardizationSolution.php');
|
||||
$normalize = new AddressStandardizationSolution;
|
||||
$$addresses_type->address1 = $normalize->AddressLineStandardization($$addresses_type->address1);
|
||||
$$addresses_type->address2 = $normalize->AddressLineStandardization($$addresses_type->address2);
|
||||
}
|
||||
|
||||
if (!($country = new Country($$addresses_type->id_country)) || !Validate::isLoadedObject($country))
|
||||
$this->errors[] = Tools::displayError('Country cannot be loaded with address->id_country');
|
||||
$postcode = Tools::getValue('postcode');
|
||||
/* Check zip code format */
|
||||
if ($country->zip_code_format && !$country->checkZipCode($postcode))
|
||||
$this->errors[] = sprintf(Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
|
||||
elseif(empty($postcode) && $country->need_zip_code)
|
||||
$this->errors[] = Tools::displayError('A Zip / Postal code is required.');
|
||||
elseif ($postcode && !Validate::isPostCode($postcode))
|
||||
$this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
|
||||
|
||||
if ($country->need_identification_number && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni'))))
|
||||
$this->errors[] = Tools::displayError('The identification number is incorrect or has already been used.');
|
||||
elseif (!$country->need_identification_number)
|
||||
$$addresses_type->dni = null;
|
||||
|
||||
if (Tools::isSubmit('submitAccount') || Tools::isSubmit('submitGuestAccount'))
|
||||
if (!($country = new Country($$addresses_type->id_country, Configuration::get('PS_LANG_DEFAULT'))) || !Validate::isLoadedObject($country))
|
||||
$this->errors[] = Tools::displayError('The Country is invalid');
|
||||
$contains_state = isset($country) && is_object($country) ? (int)$country->contains_states: 0;
|
||||
$id_state = isset($$addresses_type) && is_object($$addresses_type) ? (int)$$addresses_type->id_state: 0;
|
||||
if ((Tools::isSubmit('submitAccount')|| Tools::isSubmit('submitGuestAccount')) && $contains_state && !$id_state)
|
||||
$this->errors[] = Tools::displayError('This country requires you to choose a State.');
|
||||
}
|
||||
|
||||
if (!($country = new Country($address->id_country)) || !Validate::isLoadedObject($country))
|
||||
$this->errors[] = Tools::displayError('Country cannot be loaded with address->id_country');
|
||||
$postcode = Tools::getValue('postcode');
|
||||
/* Check zip code format */
|
||||
if ($country->zip_code_format && !$country->checkZipCode($postcode))
|
||||
$this->errors[] = sprintf(Tools::displayError('The Zip/Postal code you\'ve entered is invalid. It must follow this format: %s'), str_replace('C', $country->iso_code, str_replace('N', '0', str_replace('L', 'A', $country->zip_code_format))));
|
||||
elseif(empty($postcode) && $country->need_zip_code)
|
||||
$this->errors[] = Tools::displayError('A Zip / Postal code is required.');
|
||||
elseif ($postcode && !Validate::isPostCode($postcode))
|
||||
$this->errors[] = Tools::displayError('The Zip / Postal code is invalid.');
|
||||
|
||||
if ($country->need_identification_number && (!Tools::getValue('dni') || !Validate::isDniLite(Tools::getValue('dni'))))
|
||||
$this->errors[] = Tools::displayError('The identification number is incorrect or has already been used.');
|
||||
elseif (!$country->need_identification_number)
|
||||
$address->dni = null;
|
||||
}
|
||||
|
||||
if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) && !(Tools::getValue('months') == '' && Tools::getValue('days') == '' && Tools::getValue('years') == ''))
|
||||
@@ -529,88 +550,89 @@ class AuthControllerCore extends FrontController
|
||||
|
||||
if (!count($this->errors))
|
||||
{
|
||||
// if registration type is in one step, we save the address
|
||||
if (Tools::isSubmit('submitAccount') || Tools::isSubmit('submitGuestAccount'))
|
||||
if (!($country = new Country($address->id_country, Configuration::get('PS_LANG_DEFAULT'))) || !Validate::isLoadedObject($country))
|
||||
die(Tools::displayError());
|
||||
$contains_state = isset($country) && is_object($country) ? (int)$country->contains_states: 0;
|
||||
$id_state = isset($address) && is_object($address) ? (int)$address->id_state: 0;
|
||||
if ((Tools::isSubmit('submitAccount')|| Tools::isSubmit('submitGuestAccount')) && $contains_state && !$id_state)
|
||||
$this->errors[] = Tools::displayError('This country requires you to choose a State.');
|
||||
$customer->active = 1;
|
||||
// New Guest customer
|
||||
if (Tools::isSubmit('is_new_customer'))
|
||||
$customer->is_guest = !Tools::getValue('is_new_customer', 1);
|
||||
else
|
||||
$customer->is_guest = 0;
|
||||
if (!$customer->add())
|
||||
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
|
||||
else
|
||||
{
|
||||
$customer->active = 1;
|
||||
// New Guest customer
|
||||
if (Tools::isSubmit('is_new_customer'))
|
||||
$customer->is_guest = !Tools::getValue('is_new_customer', 1);
|
||||
else
|
||||
$customer->is_guest = 0;
|
||||
if (!$customer->add())
|
||||
$this->errors[] = Tools::displayError('An error occurred while creating your account.');
|
||||
else
|
||||
foreach($addresses_types as $addresses_type)
|
||||
{
|
||||
$address->id_customer = (int)$customer->id;
|
||||
$this->errors = array_unique(array_merge($this->errors, $address->validateController()));
|
||||
if (!count($this->errors) && (Configuration::get('PS_REGISTRATION_PROCESS_TYPE') || $this->ajax || Tools::isSubmit('submitGuestAccount')) && !$address->add())
|
||||
$$addresses_type->id_customer = (int)$customer->id;
|
||||
if ($addresses_type == 'address_invoice')
|
||||
foreach($_POST as $key => &$post)
|
||||
if (isset($_POST[$key.'_invoice']))
|
||||
$post = $_POST[$key.'_invoice'];
|
||||
|
||||
$this->errors = array_unique(array_merge($this->errors, $$addresses_type->validateController()));
|
||||
if ($addresses_type == 'address_invoice')
|
||||
$_POST = $post_back;
|
||||
if (!count($this->errors) && (Configuration::get('PS_REGISTRATION_PROCESS_TYPE') || $this->ajax || Tools::isSubmit('submitGuestAccount')) && !$$addresses_type->add())
|
||||
$this->errors[] = Tools::displayError('An error occurred while creating your address.');
|
||||
}
|
||||
if (!count($this->errors))
|
||||
{
|
||||
if (!$customer->is_guest)
|
||||
{
|
||||
$this->context->customer = $customer;
|
||||
$customer->cleanGroups();
|
||||
// we add the guest customer in the default customer group
|
||||
$customer->addGroups(array((int)Configuration::get('PS_CUSTOMER_GROUP')));
|
||||
if (!$this->sendConfirmationMail($customer))
|
||||
$this->errors[] = Tools::displayError('The email cannot be sent.');
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$customer->is_guest)
|
||||
{
|
||||
$this->context->customer = $customer;
|
||||
$customer->cleanGroups();
|
||||
// we add the guest customer in the default customer group
|
||||
$customer->addGroups(array((int)Configuration::get('PS_CUSTOMER_GROUP')));
|
||||
if (!$this->sendConfirmationMail($customer))
|
||||
$this->errors[] = Tools::displayError('The email cannot be sent.');
|
||||
}
|
||||
else
|
||||
{
|
||||
$customer->cleanGroups();
|
||||
// we add the guest customer in the guest customer group
|
||||
$customer->addGroups(array((int)Configuration::get('PS_GUEST_GROUP')));
|
||||
}
|
||||
$this->updateContext($customer);
|
||||
$this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int)$customer->id);
|
||||
$this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int)$customer->id);
|
||||
|
||||
// If a logged guest logs in as a customer, the cart secure key was already set and needs to be updated
|
||||
$this->context->cart->update();
|
||||
|
||||
// Avoid articles without delivery address on the cart
|
||||
$this->context->cart->autosetProductAddress();
|
||||
|
||||
Hook::exec('actionCustomerAccountAdd', array(
|
||||
'_POST' => $_POST,
|
||||
'newCustomer' => $customer
|
||||
));
|
||||
if ($this->ajax)
|
||||
{
|
||||
$return = array(
|
||||
'hasError' => !empty($this->errors),
|
||||
'errors' => $this->errors,
|
||||
'isSaved' => true,
|
||||
'id_customer' => (int)$this->context->cookie->id_customer,
|
||||
'id_address_delivery' => $this->context->cart->id_address_delivery,
|
||||
'id_address_invoice' => $this->context->cart->id_address_invoice,
|
||||
'token' => Tools::getToken(false)
|
||||
);
|
||||
die(Tools::jsonEncode($return));
|
||||
}
|
||||
// if registration type is in two steps, we redirect to register address
|
||||
if (!Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && !$this->ajax && !Tools::isSubmit('submitGuestAccount'))
|
||||
Tools::redirect('index.php?controller=address');
|
||||
|
||||
if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer(Tools::getValue('back')))
|
||||
Tools::redirect(html_entity_decode($back));
|
||||
|
||||
// redirection: if cart is not empty : redirection to the cart
|
||||
if (count($this->context->cart->getProducts(true)) > 0)
|
||||
Tools::redirect('index.php?controller=order&multi-shipping='.(int)Tools::getValue('multi-shipping'));
|
||||
// else : redirection to the account
|
||||
else
|
||||
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account'));
|
||||
$customer->cleanGroups();
|
||||
// we add the guest customer in the guest customer group
|
||||
$customer->addGroups(array((int)Configuration::get('PS_GUEST_GROUP')));
|
||||
}
|
||||
$this->updateContext($customer);
|
||||
$this->context->cart->id_address_delivery = (int)Address::getFirstCustomerAddressId((int)$customer->id);
|
||||
$this->context->cart->id_address_invoice = (int)Address::getFirstCustomerAddressId((int)$customer->id);
|
||||
if (isset($address_invoice) && Validate::isLoadedObject($address_invoice))
|
||||
$this->context->cart->id_address_invoice = (int)$address_invoice->id;
|
||||
|
||||
// If a logged guest logs in as a customer, the cart secure key was already set and needs to be updated
|
||||
$this->context->cart->update();
|
||||
|
||||
// Avoid articles without delivery address on the cart
|
||||
$this->context->cart->autosetProductAddress();
|
||||
|
||||
Hook::exec('actionCustomerAccountAdd', array(
|
||||
'_POST' => $_POST,
|
||||
'newCustomer' => $customer
|
||||
));
|
||||
if ($this->ajax)
|
||||
{
|
||||
$return = array(
|
||||
'hasError' => !empty($this->errors),
|
||||
'errors' => $this->errors,
|
||||
'isSaved' => true,
|
||||
'id_customer' => (int)$this->context->cookie->id_customer,
|
||||
'id_address_delivery' => $this->context->cart->id_address_delivery,
|
||||
'id_address_invoice' => $this->context->cart->id_address_invoice,
|
||||
'token' => Tools::getToken(false)
|
||||
);
|
||||
die(Tools::jsonEncode($return));
|
||||
}
|
||||
// if registration type is in two steps, we redirect to register address
|
||||
if (!Configuration::get('PS_REGISTRATION_PROCESS_TYPE') && !$this->ajax && !Tools::isSubmit('submitGuestAccount'))
|
||||
Tools::redirect('index.php?controller=address');
|
||||
|
||||
if (($back = Tools::getValue('back')) && $back == Tools::secureReferrer(Tools::getValue('back')))
|
||||
Tools::redirect(html_entity_decode($back));
|
||||
|
||||
// redirection: if cart is not empty : redirection to the cart
|
||||
if (count($this->context->cart->getProducts(true)) > 0)
|
||||
Tools::redirect('index.php?controller=order&multi-shipping='.(int)Tools::getValue('multi-shipping'));
|
||||
// else : redirection to the account
|
||||
else
|
||||
Tools::redirect('index.php?controller='.(($this->authRedirection !== false) ? urlencode($this->authRedirection) : 'my-account'));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -445,6 +445,21 @@ class OrderOpcControllerCore extends ParentOrderController
|
||||
'phone_mobile_invoice' => Tools::htmlentitiesUTF8($address_invoice->phone_mobile),
|
||||
'id_country_invoice' => (int)($address_invoice->id_country),
|
||||
'id_state_invoice' => (int)($address_invoice->id_state),
|
||||
'id_address_invoice' => $id_address_invoice,
|
||||
'invoice_company' => Tools::htmlentitiesUTF8($address_invoice->company),
|
||||
'invoice_lastname' => Tools::htmlentitiesUTF8($address_invoice->lastname),
|
||||
'invoice_firstname' => Tools::htmlentitiesUTF8($address_invoice->firstname),
|
||||
'invoice_vat_number' => Tools::htmlentitiesUTF8($address_invoice->vat_number),
|
||||
'invoice_dni' => Tools::htmlentitiesUTF8($address_invoice->dni),
|
||||
'invoice_address' => $this->context->cart->id_address_invoice !== $this->context->cart->id_address_delivery,
|
||||
'invoice_address1' => Tools::htmlentitiesUTF8($address_invoice->address1),
|
||||
'invoice_address2' => Tools::htmlentitiesUTF8($address_invoice->address2),
|
||||
'invoice_postcode' => Tools::htmlentitiesUTF8($address_invoice->postcode),
|
||||
'invoice_city' => Tools::htmlentitiesUTF8($address_invoice->city),
|
||||
'invoice_phone' => Tools::htmlentitiesUTF8($address_invoice->phone),
|
||||
'invoice_phone_mobile' => Tools::htmlentitiesUTF8($address_invoice->phone_mobile),
|
||||
'invoice_id_country' => (int)($address_invoice->id_country),
|
||||
'invoice_id_state' => (int)($address_invoice->id_state),
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -53,16 +53,15 @@ var countriesNeedZipCode = new Array();
|
||||
{/if}
|
||||
{/foreach}
|
||||
{/if}
|
||||
$(function(){ldelim}
|
||||
$('.id_state option[value={if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{else}{if isset($address)}{$address->id_state|intval}{/if}{/if}]').attr('selected', true);
|
||||
{rdelim});
|
||||
//]]>
|
||||
{literal}
|
||||
$(document).ready(function() {
|
||||
$('#company').on('input',function(){
|
||||
vat_number();
|
||||
});
|
||||
vat_number();
|
||||
$('#company_invoice').on('input',function(){
|
||||
vat_number_invoice();
|
||||
});
|
||||
function vat_number()
|
||||
{
|
||||
if ($('#company').val() != '')
|
||||
@@ -70,6 +69,18 @@ $(document).ready(function() {
|
||||
else
|
||||
$('#vat_number').hide();
|
||||
}
|
||||
function vat_number_invoice()
|
||||
{
|
||||
if ($('#company_invoice').val() != '')
|
||||
$('#vat_number_block_invoice').show();
|
||||
else
|
||||
$('#vat_number_block_invoice').hide();
|
||||
}
|
||||
vat_number();
|
||||
vat_number_invoice();
|
||||
{/literal}
|
||||
$('.id_state option[value={if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{/if}]').prop('selected', true);
|
||||
{literal}
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
@@ -90,6 +101,10 @@ $(document).ready(function() {
|
||||
submitFunction();
|
||||
return false;
|
||||
});
|
||||
$('#invoice_address').click(function() {
|
||||
bindCheckbox();
|
||||
});
|
||||
bindCheckbox();
|
||||
});
|
||||
function submitFunction()
|
||||
{
|
||||
@@ -140,6 +155,24 @@ $(document).ready(function() {
|
||||
}
|
||||
});
|
||||
}
|
||||
function bindCheckbox()
|
||||
{
|
||||
if ($('#invoice_address:checked').length > 0)
|
||||
{
|
||||
$('#opc_invoice_address').slideDown('slow');
|
||||
if ($('#company_invoice').val() == '')
|
||||
$('#vat_number_block_invoice').hide();
|
||||
updateState('invoice');
|
||||
updateNeedIDNumber('invoice');
|
||||
updateZipCode('invoice');
|
||||
{/literal}
|
||||
$('.id_state option[value={if isset($smarty.post.id_state)}{$smarty.post.id_state|intval}{/if}]').prop('selected', true);
|
||||
$('.id_state_invoice option[value={if isset($smarty.post.id_state_invoice)}{$smarty.post.id_state_invoice|intval}{/if}]').prop('selected', true);
|
||||
{literal}
|
||||
}
|
||||
else
|
||||
$('#opc_invoice_address').slideUp('slow');
|
||||
}
|
||||
{/literal}
|
||||
</script>
|
||||
<!--{if isset($authentification_error)}
|
||||
@@ -270,30 +303,35 @@ $(document).ready(function() {
|
||||
{/if}
|
||||
<h3>{l s='Delivery address'}</h3>
|
||||
{foreach from=$dlv_all_fields item=field_name}
|
||||
{if $field_name eq "company"}
|
||||
{if $field_name eq "company" && $b2b_enable}
|
||||
<p class="text">
|
||||
<label for="company">{l s='Company'}</label>
|
||||
<input type="text" class="text" id="company" name="company" value="{if isset($smarty.post.company)}{$smarty.post.company}{/if}" />
|
||||
</p>
|
||||
{elseif $field_name eq "vat_number"}
|
||||
{elseif $field_name eq "vat_number"}
|
||||
<div id="vat_number" style="display:none;">
|
||||
<p class="text">
|
||||
<label for="vat_number">{l s='VAT number'}</label>
|
||||
<input type="text" class="text" name="vat_number" value="{if isset($smarty.post.vat_number)}{$smarty.post.vat_number}{/if}" />
|
||||
</p>
|
||||
</div>
|
||||
{elseif $field_name eq "address1"}
|
||||
<p class="required text dni">
|
||||
<label for="dni">{l s='Identification number'}</label>
|
||||
<input type="text" class="text" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}" />
|
||||
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
|
||||
</p>
|
||||
{elseif $field_name eq "address1"}
|
||||
<p class="required text">
|
||||
<label for="address1">{l s='Address'} <sup>*</sup></label>
|
||||
<input type="text" class="text" name="address1" id="address1" value="{if isset($smarty.post.address1)}{$smarty.post.address1}{/if}" />
|
||||
</p>
|
||||
{elseif $field_name eq "postcode"}
|
||||
{assign var='postCodeExist' value=true}
|
||||
{elseif $field_name eq "postcode"}
|
||||
{assign var='postCodeExist' value=true}
|
||||
<p class="required postcode text">
|
||||
<label for="postcode">{l s='Zip / Postal Code'} <sup>*</sup></label>
|
||||
<input type="text" class="text" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onblur="$('#postcode').val($('#postcode').val().toUpperCase());" />
|
||||
</p>
|
||||
{elseif $field_name eq "city"}
|
||||
{elseif $field_name eq "city"}
|
||||
<p class="required text">
|
||||
<label for="city">{l s='City'} <sup>*</sup></label>
|
||||
<input type="text" class="text" name="city" id="city" value="{if isset($smarty.post.city)}{$smarty.post.city}{/if}" />
|
||||
@@ -302,16 +340,16 @@ $(document).ready(function() {
|
||||
if customer hasn't update his layout address, country has to be verified
|
||||
but it's deprecated
|
||||
-->
|
||||
{elseif $field_name eq "Country:name" || $field_name eq "country"}
|
||||
{elseif $field_name eq "Country:name" || $field_name eq "country"}
|
||||
<p class="required select">
|
||||
<label for="id_country">{l s='Country'} <sup>*</sup></label>
|
||||
<select name="id_country" id="id_country">
|
||||
{foreach from=$countries item=v}
|
||||
<option value="{$v.id_country}" {if ($sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
|
||||
<option value="{$v.id_country}"{if (isset($smarty.post.id_country) AND $smarty.post.id_country == $v.id_country) OR (!isset($smarty.post.id_country) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</p>
|
||||
{elseif $field_name eq "State:name"}
|
||||
{elseif $field_name eq "State:name"}
|
||||
{assign var='stateExist' value=true}
|
||||
<p class="required id_state select">
|
||||
<label for="id_state">{l s='State'} <sup>*</sup></label>
|
||||
@@ -319,11 +357,6 @@ $(document).ready(function() {
|
||||
<option value="">-</option>
|
||||
</select>
|
||||
</p>
|
||||
{elseif $field_name eq "phone"}
|
||||
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
|
||||
<label for="phone">{l s='Phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
|
||||
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}"/>
|
||||
</p>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if $stateExist eq false}
|
||||
@@ -340,19 +373,106 @@ $(document).ready(function() {
|
||||
<input type="text" class="text" name="postcode" id="postcode" value="{if isset($smarty.post.postcode)}{$smarty.post.postcode}{/if}" onblur="$('#postcode').val($('#postcode').val().toUpperCase());" />
|
||||
</p>
|
||||
{/if}
|
||||
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
|
||||
<label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
|
||||
<input type="text" class="text" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}" />
|
||||
</p>
|
||||
<input type="hidden" name="alias" id="alias" value="{l s='My address'}" />
|
||||
<input type="hidden" name="is_new_customer" id="is_new_customer" value="0" />
|
||||
<!-- END Account -->
|
||||
<p class="checkbox">
|
||||
<input type="checkbox" name="invoice_address" id="invoice_address"{if isset($smarty.post.invoice_address) && $smarty.post.invoice_address} checked="checked"{/if} autocomplete="off"/>
|
||||
<label for="invoice_address"><b>{l s='Please use another address for invoice'}</b></label>
|
||||
</p>
|
||||
<div id="opc_invoice_address" class="hidden">
|
||||
{assign var=stateExist value=false}
|
||||
{assign var=postCodeExist value=false}
|
||||
<h3>{l s='Invoice address'}</h3>
|
||||
{foreach from=$inv_all_fields item=field_name}
|
||||
{if $field_name eq "company" && $b2b_enable}
|
||||
<p class="text">
|
||||
<label for="company_invoice">{l s='Company'}</label>
|
||||
<input type="text" class="text" id="company_invoice" name="company_invoice" value="{if isset($smarty.post.company_invoice)}{$smarty.post.company_invoice}{/if}" />
|
||||
</p>
|
||||
{elseif $field_name eq "vat_number"}
|
||||
<div id="vat_number_block_invoice" class="hidden">
|
||||
<p class="text">
|
||||
<label for="vat_number_invoice">{l s='VAT number'}</label>
|
||||
<input type="text" class="text" id="vat_number_invoice" name="vat_number_invoice" value="{if isset($smarty.post.vat_number_invoice)}{$smarty.post.vat_number_invoice}{/if}" />
|
||||
</p>
|
||||
</div>
|
||||
<p class="required text dni_invoice">
|
||||
<label for="dni">{l s='Identification number'}</label>
|
||||
<input type="text" class="text" name="dni_invoice" id="dni_invoice" value="{if isset($smarty.post.dni_invoice)}{$smarty.post.dni_invoice}{/if}" />
|
||||
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
|
||||
</p>
|
||||
{elseif $field_name eq "firstname"}
|
||||
<p class="required text">
|
||||
<label for="firstname_invoice">{l s='First name'} <sup>*</sup></label>
|
||||
<input type="text" class="text" id="firstname_invoice" name="firstname_invoice" value="{if isset($smarty.post.firstname_invoice)}{$smarty.post.firstname_invoice}{/if}" />
|
||||
</p>
|
||||
{elseif $field_name eq "lastname"}
|
||||
<p class="required text">
|
||||
<label for="lastname_invoice">{l s='Last name'} <sup>*</sup></label>
|
||||
<input type="text" class="text" id="lastname_invoice" name="lastname_invoice" value="{if isset($smarty.post.firstname_invoice)}{$smarty.post.firstname_invoice}{/if}" />
|
||||
</p>
|
||||
{elseif $field_name eq "address1"}
|
||||
<p class="required text">
|
||||
<label for="address1_invoice">{l s='Address'} <sup>*</sup></label>
|
||||
<input type="text" class="text" name="address1_invoice" id="address1_invoice" value="{if isset($smarty.post.address1_invoice)}{$smarty.post.address1_invoice}{/if}" />
|
||||
</p>
|
||||
{elseif $field_name eq "postcode"}
|
||||
{$postCodeExist = true}
|
||||
<p class="required postcode_invoice text">
|
||||
<label for="postcode_invoice">{l s='Zip / Postal Code'} <sup>*</sup></label>
|
||||
<input type="text" class="text" name="postcode_invoice" id="postcode_invoice" value="{if isset($smarty.post.postcode_invoice)}{$smarty.post.postcode_invoice}{/if}" onkeyup="$('#postcode').val($('#postcode').val().toUpperCase());" />
|
||||
</p>
|
||||
{elseif $field_name eq "city"}
|
||||
<p class="required text">
|
||||
<label for="city_invoice">{l s='City'} <sup>*</sup></label>
|
||||
<input type="text" class="text" name="city_invoice" id="city_invoice" value="{if isset($smarty.post.city_invoice)}{$smarty.post.city_invoice}{/if}" />
|
||||
</p>
|
||||
{elseif $field_name eq "country" || $field_name eq "Country:name"}
|
||||
<p class="required select">
|
||||
<label for="id_country_invoice">{l s='Country'} <sup>*</sup></label>
|
||||
<select name="id_country_invoice" id="id_country_invoice">
|
||||
<option value="">-</option>
|
||||
{foreach from=$countries item=v}
|
||||
<option value="{$v.id_country}"{if (isset($smarty.post.id_country_invoice) && $smarty.post.id_country_invoice == $v.id_country) OR (!isset($smarty.post.id_country_invoice) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name|escape:'htmlall':'UTF-8'}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</p>
|
||||
{elseif $field_name eq "state" || $field_name eq 'State:name'}
|
||||
{$stateExist = true}
|
||||
<p class="required id_state_invoice select" style="display:none;">
|
||||
<label for="id_state_invoice">{l s='State'} <sup>*</sup></label>
|
||||
<select name="id_state_invoice" id="id_state_invoice">
|
||||
<option value="">-</option>
|
||||
</select>
|
||||
</p>
|
||||
{/if}
|
||||
{/foreach}
|
||||
{if !$postCodeExist}
|
||||
<p class="required postcode_invoice text hidden">
|
||||
<label for="postcode_invoice">{l s='Zip / Postal Code'} <sup>*</sup></label>
|
||||
<input type="text" class="text" name="postcode_invoice" id="postcode_invoice" value="{if isset($smarty.post.postcode_invoice)}{$smarty.post.postcode_invoice}{/if}" onkeyup="$('#postcode').val($('#postcode').val().toUpperCase());" />
|
||||
</p>
|
||||
{/if}
|
||||
{if !$stateExist}
|
||||
<p class="required id_state_invoice select hidden">
|
||||
<label for="id_state_invoice">{l s='State'} <sup>*</sup></label>
|
||||
<select name="id_state_invoice" id="id_state_invoice">
|
||||
<option value="">-</option>
|
||||
</select>
|
||||
</p>
|
||||
{/if}
|
||||
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
|
||||
<label for="phone_mobile_invoice">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
|
||||
<input type="text" class="text" name="phone_mobile_invoice" id="phone_mobile_invoice" value="{if isset($smarty.post.phone_mobile_invoice)}{$smarty.post.phone_mobile_invoice}{/if}" />
|
||||
</p>
|
||||
<input type="hidden" name="alias_invoice" id="alias_invoice" value="{l s='My Invoice address'}" />
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
<fieldset class="account_creation dni">
|
||||
<h3>{l s='Tax identification'}</h3>
|
||||
<p class="required text">
|
||||
<label for="dni">{l s='Identification number'}</label>
|
||||
<input type="text" class="text" name="dni" id="dni" value="{if isset($smarty.post.dni)}{$smarty.post.dni}{/if}" />
|
||||
<span class="form_info">{l s='DNI / NIF / NIE'}</span>
|
||||
</p>
|
||||
</fieldset>
|
||||
{$HOOK_CREATE_ACCOUNT_FORM}
|
||||
<p class="cart_navigation required submit">
|
||||
<span><sup>*</sup>{l s='Required field'}</span>
|
||||
@@ -532,7 +652,7 @@ $(document).ready(function() {
|
||||
<select name="id_country" id="id_country">
|
||||
<option value="">-</option>
|
||||
{foreach from=$countries item=v}
|
||||
<option value="{$v.id_country}" {if ($sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
|
||||
<option value="{$v.id_country}"{if (isset($smarty.post.id_country) AND $smarty.post.id_country == $v.id_country) OR (!isset($smarty.post.id_country) && $sl_country == $v.id_country)} selected="selected"{/if}>{$v.name}</option>
|
||||
{/foreach}
|
||||
</select>
|
||||
</p>
|
||||
@@ -565,13 +685,13 @@ $(document).ready(function() {
|
||||
<textarea name="other" id="other" cols="26" rows="3">{if isset($smarty.post.other)}{$smarty.post.other}{/if}</textarea>
|
||||
</p>
|
||||
{if isset($one_phone_at_least) && $one_phone_at_least}
|
||||
<p class="inline-infos">{l s='You must register at least one phone number.'}</p>
|
||||
{/if}
|
||||
<p class="inline-infos required">{l s='You must register at least one phone number.'}</p>
|
||||
{/if}
|
||||
<p class="text">
|
||||
<label for="phone">{l s='Home phone'}</label>
|
||||
<input type="text" class="text" name="phone" id="phone" value="{if isset($smarty.post.phone)}{$smarty.post.phone}{/if}" />
|
||||
</p>
|
||||
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if} text">
|
||||
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
|
||||
<label for="phone_mobile">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
|
||||
<input type="text" class="text" name="phone_mobile" id="phone_mobile" value="{if isset($smarty.post.phone_mobile)}{$smarty.post.phone_mobile}{/if}" />
|
||||
</p>
|
||||
|
||||
@@ -308,7 +308,7 @@ function saveAddress(type)
|
||||
params += 'address2='+encodeURIComponent($('#address2'+(type == 'invoice' ? '_invoice' : '')).val())+'&';
|
||||
params += 'postcode='+encodeURIComponent($('#postcode'+(type == 'invoice' ? '_invoice' : '')).val())+'&';
|
||||
params += 'city='+encodeURIComponent($('#city'+(type == 'invoice' ? '_invoice' : '')).val())+'&';
|
||||
params += 'id_country='+encodeURIComponent($('#id_country').val())+'&';
|
||||
params += 'id_country='+encodeURIComponent($('#id_country'+(type == 'invoice' ? '_invoice' : '')).val())+'&';
|
||||
if ($('#id_state'+(type == 'invoice' ? '_invoice' : '')).val())
|
||||
params += 'id_state='+encodeURIComponent($('#id_state'+(type == 'invoice' ? '_invoice' : '')).val())+'&';
|
||||
params += 'other='+encodeURIComponent($('#other'+(type == 'invoice' ? '_invoice' : '')).val())+'&';
|
||||
|
||||
@@ -86,7 +86,6 @@
|
||||
else
|
||||
$('#vat_number_block_invoice').hide();
|
||||
}
|
||||
|
||||
$(document).ready(function() {
|
||||
$('#company').on('input',function(){
|
||||
vat_number();
|
||||
@@ -96,6 +95,10 @@
|
||||
});
|
||||
vat_number();
|
||||
vat_number_invoice();
|
||||
{/literal}
|
||||
$('.id_state option[value={if isset($guestInformations.id_state)}{$guestInformations.id_state|intval}{/if}]').prop('selected', true);
|
||||
$('.id_state_invoice option[value={if isset($guestInformations.id_state_invoice)}{$guestInformations.id_state_invoice|intval}{/if}]').prop('selected', true);
|
||||
{literal}
|
||||
});
|
||||
{/literal}
|
||||
</script>
|
||||
@@ -279,7 +282,7 @@
|
||||
<input type="hidden" name="alias" id="alias" value="{l s='My address'}"/>
|
||||
|
||||
<p class="checkbox">
|
||||
<input type="checkbox" name="invoice_address" id="invoice_address" autocomplete="off"/>
|
||||
<input type="checkbox" name="invoice_address" id="invoice_address"{if (isset($smarty.post.invoice_address) && $smarty.post.invoice_address) || (isset($guestInformations) && $guestInformations.invoice_address)} checked="checked"{/if} autocomplete="off"/>
|
||||
<label for="invoice_address"><b>{l s='Please use another address for invoice'}</b></label>
|
||||
</p>
|
||||
|
||||
@@ -289,7 +292,7 @@
|
||||
<h3>{l s='Invoice address'}</h3>
|
||||
{foreach from=$inv_all_fields item=field_name}
|
||||
{if $field_name eq "company" && $b2b_enable}
|
||||
<p class="text is_customer_param">
|
||||
<p class="text">
|
||||
<label for="company_invoice">{l s='Company'}</label>
|
||||
<input type="text" class="text" id="company_invoice" name="company_invoice" value="" />
|
||||
</p>
|
||||
@@ -375,13 +378,13 @@
|
||||
<textarea name="other_invoice" id="other_invoice" cols="26" rows="3"></textarea>
|
||||
</p>
|
||||
{if isset($one_phone_at_least) && $one_phone_at_least}
|
||||
<p class="inline-infos required">{l s='You must register at least one phone number.'}</p>
|
||||
<p class="inline-infos required is_customer_param">{l s='You must register at least one phone number.'}</p>
|
||||
{/if}
|
||||
<p class="text">
|
||||
<p class="text is_customer_param">
|
||||
<label for="phone_invoice">{l s='Home phone'}</label>
|
||||
<input type="text" class="text" name="phone_invoice" id="phone_invoice" value="{if isset($guestInformations) && $guestInformations.phone_invoice}{$guestInformations.phone_invoice}{/if}" />
|
||||
</p>
|
||||
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text is_customer_param">
|
||||
<p class="{if isset($one_phone_at_least) && $one_phone_at_least}required {/if}text">
|
||||
<label for="phone_mobile_invoice">{l s='Mobile phone'}{if isset($one_phone_at_least) && $one_phone_at_least} <sup>*</sup>{/if}</label>
|
||||
<input type="text" class="text" name="phone_mobile_invoice" id="phone_mobile_invoice" value="{if isset($guestInformations) && $guestInformations.phone_mobile_invoice}{$guestInformations.phone_mobile_invoice}{/if}" />
|
||||
</p>
|
||||
|
||||
Reference in New Issue
Block a user