Merge branch 'development' of https://github.com/PrestaShop/PrestaShop into development
This commit is contained in:
@@ -27,7 +27,7 @@
|
|||||||
|
|
||||||
{block name="label"}
|
{block name="label"}
|
||||||
{if $input.type == 'color'}
|
{if $input.type == 'color'}
|
||||||
<div id="colorAttributeProperties" style="display:{if $colorAttributeProperties}block{else}none{/if}";>
|
<div id="colorAttributeProperties" style="display:{if $colorAttributeProperties}block{else}none{/if};">
|
||||||
{/if}
|
{/if}
|
||||||
{$smarty.block.parent}
|
{$smarty.block.parent}
|
||||||
{/block}
|
{/block}
|
||||||
|
|||||||
+7
-2
@@ -953,6 +953,7 @@ class CartCore extends ObjectModel
|
|||||||
$this->update(true);
|
$this->update(true);
|
||||||
$context = Context::getContext()->cloneContext();
|
$context = Context::getContext()->cloneContext();
|
||||||
$context->cart = $this;
|
$context->cart = $this;
|
||||||
|
Cache::clean('getContextualValue_*');
|
||||||
if ($auto_add_cart_rule)
|
if ($auto_add_cart_rule)
|
||||||
CartRule::autoAddToCart($context);
|
CartRule::autoAddToCart($context);
|
||||||
|
|
||||||
@@ -2869,8 +2870,12 @@ class CartCore extends ObjectModel
|
|||||||
{
|
{
|
||||||
$cart_rule['value_real'] -= $total_shipping;
|
$cart_rule['value_real'] -= $total_shipping;
|
||||||
$cart_rule['value_tax_exc'] -= $total_shipping_tax_exc;
|
$cart_rule['value_tax_exc'] -= $total_shipping_tax_exc;
|
||||||
$total_discounts -= $total_shipping;
|
$cart_rule['value_real'] = Tools::ps_round($cart_rule['value_real'], (int)$context->currency->decimals * _PS_PRICE_DISPLAY_PRECISION_);
|
||||||
$total_discounts_tax_exc -= $total_shipping_tax_exc;
|
$cart_rule['value_tax_exc'] = Tools::ps_round($cart_rule['value_tax_exc'], (int)$context->currency->decimals * _PS_PRICE_DISPLAY_PRECISION_);
|
||||||
|
if ($total_discounts > $cart_rule['value_real'])
|
||||||
|
$total_discounts -= $total_shipping;
|
||||||
|
if ($total_discounts_tax_exc > $cart_rule['value_tax_exc'])
|
||||||
|
$total_discounts_tax_exc -= $total_shipping_tax_exc;
|
||||||
|
|
||||||
// Update total shipping
|
// Update total shipping
|
||||||
$total_shipping = 0;
|
$total_shipping = 0;
|
||||||
|
|||||||
@@ -912,7 +912,7 @@ class CartRuleCore extends ObjectModel
|
|||||||
if ($cart_vat_amount == 0 || $cart_amount_te == 0)
|
if ($cart_vat_amount == 0 || $cart_amount_te == 0)
|
||||||
$cart_average_vat_rate = 0;
|
$cart_average_vat_rate = 0;
|
||||||
else
|
else
|
||||||
$cart_average_vat_rate = $cart_vat_amount / $cart_amount_te;
|
$cart_average_vat_rate = Tools::ps_round($cart_vat_amount / $cart_amount_te, 3);
|
||||||
|
|
||||||
if ($this->reduction_tax && !$use_tax)
|
if ($this->reduction_tax && !$use_tax)
|
||||||
$reduction_value += $prorata * $reduction_amount / (1 + $cart_average_vat_rate);
|
$reduction_value += $prorata * $reduction_amount / (1 + $cart_average_vat_rate);
|
||||||
|
|||||||
@@ -429,13 +429,14 @@ abstract class PaymentModuleCore extends Module
|
|||||||
|
|
||||||
// Set the new voucher value
|
// Set the new voucher value
|
||||||
if ($voucher->reduction_tax)
|
if ($voucher->reduction_tax)
|
||||||
$voucher->reduction_amount = $values['tax_incl'] - $order->total_products_wt;
|
$voucher->reduction_amount = $values['tax_incl'] - $order->total_products_wt - $order->total_shipping_tax_incl;
|
||||||
else
|
else
|
||||||
$voucher->reduction_amount = $values['tax_excl'] - $order->total_products;
|
$voucher->reduction_amount = $values['tax_excl'] - $order->total_products - $order->total_shipping_tax_excl;
|
||||||
|
|
||||||
$voucher->id_customer = $order->id_customer;
|
$voucher->id_customer = $order->id_customer;
|
||||||
$voucher->quantity = 1;
|
$voucher->quantity = 1;
|
||||||
$voucher->quantity_per_user = 1;
|
$voucher->quantity_per_user = 1;
|
||||||
|
$voucher->free_shipping = 0;
|
||||||
if ($voucher->add())
|
if ($voucher->add())
|
||||||
{
|
{
|
||||||
// If the voucher has conditions, they are now copied to the new voucher
|
// If the voucher has conditions, they are now copied to the new voucher
|
||||||
|
|||||||
+5
-5
@@ -2347,11 +2347,11 @@ exit;
|
|||||||
$addons_url = 'api.addons.prestashop.com';
|
$addons_url = 'api.addons.prestashop.com';
|
||||||
$postData = '';
|
$postData = '';
|
||||||
$postDataArray = array(
|
$postDataArray = array(
|
||||||
'version' => _PS_VERSION_,
|
'version' => isset($params['version']) ? $params['version'] : _PS_VERSION_,
|
||||||
'iso_lang' => strtolower(Context::getContext()->language->iso_code),
|
'iso_lang' => Tools::strtolower(isset($params['iso_lang']) ? $params['iso_lang'] : Context::getContext()->language->iso_code),
|
||||||
'iso_code' => strtolower(Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))),
|
'iso_code' => Tools::strtolower(isset($params['iso_country']) ? $params['iso_country'] : Country::getIsoById(Configuration::get('PS_COUNTRY_DEFAULT'))),
|
||||||
'shop_url' => urlencode(Tools::getShopDomain()),
|
'shop_url' => urlencode(isset($params['shop_url']) ? $params['shop_url'] : Tools::getShopDomain()),
|
||||||
'mail' => urlencode(Configuration::get('PS_SHOP_EMAIL'))
|
'mail' => urlencode(isset($params['email']) ? $params['email'] : Configuration::get('email'))
|
||||||
);
|
);
|
||||||
foreach ($postDataArray as $postDataKey => $postDataValue)
|
foreach ($postDataArray as $postDataKey => $postDataValue)
|
||||||
$postData .= '&'.$postDataKey.'='.$postDataValue;
|
$postData .= '&'.$postDataKey.'='.$postDataValue;
|
||||||
|
|||||||
@@ -175,8 +175,8 @@ abstract class ControllerCore
|
|||||||
// then using displayAjax[action]
|
// then using displayAjax[action]
|
||||||
if ($this->ajax)
|
if ($this->ajax)
|
||||||
{
|
{
|
||||||
$action = Tools::getValue('action');
|
$action = Tools::toCamelCase(Tools::getValue('action', true));
|
||||||
if (!empty($action) && method_exists($this, 'displayAjax'.Tools::toCamelCase($action, true)))
|
if (!empty($action) && method_exists($this, $action))
|
||||||
$this->{'displayAjax'.$action}();
|
$this->{'displayAjax'.$action}();
|
||||||
elseif (method_exists($this, 'displayAjax'))
|
elseif (method_exists($this, 'displayAjax'))
|
||||||
$this->displayAjax();
|
$this->displayAjax();
|
||||||
|
|||||||
@@ -101,15 +101,15 @@ class AdminCartsControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
if (!($cart = $this->loadObject(true)))
|
if (!($cart = $this->loadObject(true)))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
$customer = new Customer($cart->id_customer);
|
$customer = new Customer($cart->id_customer);
|
||||||
|
$currency = new Currency($cart->id_currency);
|
||||||
$this->context->cart = $cart;
|
$this->context->cart = $cart;
|
||||||
|
$this->context->currency = $currency;
|
||||||
$this->context->customer = $customer;
|
$this->context->customer = $customer;
|
||||||
$products = $cart->getProducts();
|
$products = $cart->getProducts();
|
||||||
$customized_datas = Product::getAllCustomizedDatas((int)$cart->id);
|
$customized_datas = Product::getAllCustomizedDatas((int)$cart->id);
|
||||||
Product::addCustomizationPrice($products, $customized_datas);
|
Product::addCustomizationPrice($products, $customized_datas);
|
||||||
$summary = $cart->getSummaryDetails();
|
$summary = $cart->getSummaryDetails();
|
||||||
$currency = new Currency($cart->id_currency);
|
|
||||||
|
|
||||||
/* Display order information */
|
/* Display order information */
|
||||||
$id_order = (int)Order::getOrderByCartId($cart->id);
|
$id_order = (int)Order::getOrderByCartId($cart->id);
|
||||||
@@ -739,6 +739,7 @@ class AdminCartsControllerCore extends AdminController
|
|||||||
{
|
{
|
||||||
$context = Context::getContext();
|
$context = Context::getContext();
|
||||||
$context->cart = new Cart($id_cart);
|
$context->cart = new Cart($id_cart);
|
||||||
|
$context->currency = new Currency((int)$context->cart->id_currency);
|
||||||
$context->customer = new Customer((int)$context->cart->id_customer);
|
$context->customer = new Customer((int)$context->cart->id_customer);
|
||||||
return Cart::getTotalCart($id_cart, true, Cart::BOTH_WITHOUT_SHIPPING);
|
return Cart::getTotalCart($id_cart, true, Cart::BOTH_WITHOUT_SHIPPING);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -442,7 +442,7 @@ class AdminCountriesControllerCore extends AdminController
|
|||||||
$html .= '<li>
|
$html .= '<li>
|
||||||
<a href="javascript:void(0);" onClick="displayAvailableFields(\''.$class_name.'\')">'.$class_name.'</a>';
|
<a href="javascript:void(0);" onClick="displayAvailableFields(\''.$class_name.'\')">'.$class_name.'</a>';
|
||||||
foreach (AddressFormat::getValidateFields($class_name) as $name)
|
foreach (AddressFormat::getValidateFields($class_name) as $name)
|
||||||
$fields[] = '<a style="color:#4B8;" href="javascript:void(0);" class="addPattern" '.$name.' id="'.($class_name == 'Address' ? $name : $class_name.':'.$name).'">
|
$fields[] = '<a style="color:#4B8;" href="javascript:void(0);" class="addPattern" id="'.($class_name == 'Address' ? $name : $class_name.':'.$name).'">
|
||||||
'.$name.'</a>';
|
'.$name.'</a>';
|
||||||
$html .= '
|
$html .= '
|
||||||
<div class="availableFieldsList" id="availableListFieldsFor_'.$class_name.'" style="width:300px;">
|
<div class="availableFieldsList" id="availableListFieldsFor_'.$class_name.'" style="width:300px;">
|
||||||
|
|||||||
@@ -331,8 +331,6 @@ class InstallControllerHttpProcess extends InstallControllerHttp
|
|||||||
*/
|
*/
|
||||||
public function display()
|
public function display()
|
||||||
{
|
{
|
||||||
$this->initializeContext();
|
|
||||||
|
|
||||||
// The installer SHOULD take less than 32M, but may take up to 35/36M sometimes. So 42M is a good value :)
|
// The installer SHOULD take less than 32M, but may take up to 35/36M sometimes. So 42M is a good value :)
|
||||||
$low_memory = Tools::getMemoryLimit() < Tools::getOctets('42M');
|
$low_memory = Tools::getMemoryLimit() < Tools::getOctets('42M');
|
||||||
|
|
||||||
@@ -361,8 +359,15 @@ class InstallControllerHttpProcess extends InstallControllerHttp
|
|||||||
$this->process_steps[] = $install_modules;
|
$this->process_steps[] = $install_modules;
|
||||||
|
|
||||||
$install_modules = array('key' => 'installModulesAddons', 'lang' => $this->l('Install modules Addons'));
|
$install_modules = array('key' => 'installModulesAddons', 'lang' => $this->l('Install modules Addons'));
|
||||||
|
|
||||||
|
$params = array('iso_lang' => $this->language->getLanguageIso(),
|
||||||
|
'iso_country' => $this->session->shop_country,
|
||||||
|
'email' => $this->session->admin_email,
|
||||||
|
'shop_url' => Tools::getHttpHost(),
|
||||||
|
'version' => _PS_INSTALL_VERSION_);
|
||||||
|
|
||||||
if ($low_memory)
|
if ($low_memory)
|
||||||
foreach ($this->model_install->getAddonsModulesList() as $module)
|
foreach ($this->model_install->getAddonsModulesList($params) as $module)
|
||||||
$install_modules['subtasks'][] = array('module' => (string)$module['name'], 'id_module' => (string)$module['id_module']);
|
$install_modules['subtasks'][] = array('module' => (string)$module['name'], 'id_module' => (string)$module['id_module']);
|
||||||
$this->process_steps[] = $install_modules;
|
$this->process_steps[] = $install_modules;
|
||||||
|
|
||||||
|
|||||||
@@ -587,10 +587,10 @@ class InstallModelInstall extends InstallAbstractModel
|
|||||||
return $modules;
|
return $modules;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getAddonsModulesList()
|
public function getAddonsModulesList($params = array())
|
||||||
{
|
{
|
||||||
$addons_modules = array();
|
$addons_modules = array();
|
||||||
$content = Tools::addonsRequest('install-modules');
|
$content = Tools::addonsRequest('install-modules', $params);
|
||||||
$xml = @simplexml_load_string($content, null, LIBXML_NOCDATA);
|
$xml = @simplexml_load_string($content, null, LIBXML_NOCDATA);
|
||||||
|
|
||||||
if ($xml !== false and isset($xml->module))
|
if ($xml !== false and isset($xml->module))
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ $(function(){ldelim}
|
|||||||
</p>
|
</p>
|
||||||
<p class="required text" id="adress_alias">
|
<p class="required text" id="adress_alias">
|
||||||
<label for="alias">{l s='Please assign an address title for future reference.'} <sup>*</sup></label>
|
<label for="alias">{l s='Please assign an address title for future reference.'} <sup>*</sup></label>
|
||||||
<input type="text" id="alias" name="alias" value="{if isset($smarty.post.alias)}{$smarty.post.alias}{else if isset($address->alias)}{$address->alias}{else if !isset($select_address)}{l s='My address'}{/if}" />
|
<input type="text" id="alias" name="alias" value="{if isset($smarty.post.alias)}{$smarty.post.alias}{else if isset($address->alias)}{$address->alias}{elseif !$select_address}{l s='My address'}{/if}" />
|
||||||
</p>
|
</p>
|
||||||
</fieldset>
|
</fieldset>
|
||||||
<p class="submit2">
|
<p class="submit2">
|
||||||
|
|||||||
@@ -655,9 +655,9 @@ function updateCartSummary(json)
|
|||||||
location.reload();
|
location.reload();
|
||||||
|
|
||||||
if (priceDisplayMethod !== 0)
|
if (priceDisplayMethod !== 0)
|
||||||
$('#total_discount').html(formatCurrency(json.total_discounts_tax_exc, currencyFormat, currencySign, currencyBlank));
|
$('#total_discount').html('-' + formatCurrency(json.total_discounts_tax_exc, currencyFormat, currencySign, currencyBlank));
|
||||||
else
|
else
|
||||||
$('#total_discount').html(formatCurrency(json.total_discounts, currencyFormat, currencySign, currencyBlank));
|
$('#total_discount').html('-' + formatCurrency(json.total_discounts, currencyFormat, currencySign, currencyBlank));
|
||||||
|
|
||||||
$('.cart_discount').each(function(){
|
$('.cart_discount').each(function(){
|
||||||
var idElmt = $(this).attr('id').replace('cart_discount_','');
|
var idElmt = $(this).attr('id').replace('cart_discount_','');
|
||||||
@@ -667,10 +667,12 @@ function updateCartSummary(json)
|
|||||||
if (json.discounts[i].id_discount == idElmt)
|
if (json.discounts[i].id_discount == idElmt)
|
||||||
{
|
{
|
||||||
if (json.discounts[i].value_real !== '!')
|
if (json.discounts[i].value_real !== '!')
|
||||||
|
{
|
||||||
if (priceDisplayMethod !== 0)
|
if (priceDisplayMethod !== 0)
|
||||||
$('#cart_discount_' + idElmt + ' td.cart_discount_price span.price-discount').html(formatCurrency(json.discounts[i].value_tax_exc * -1, currencyFormat, currencySign, currencyBlank));
|
$('#cart_discount_' + idElmt + ' td.cart_discount_price span.price-discount').html(formatCurrency(json.discounts[i].value_tax_exc * -1, currencyFormat, currencySign, currencyBlank));
|
||||||
else
|
else
|
||||||
$('#cart_discount_' + idElmt + ' td.cart_discount_price span.price-discount').html(formatCurrency(json.discounts[i].value_real * -1, currencyFormat, currencySign, currencyBlank));
|
$('#cart_discount_' + idElmt + ' td.cart_discount_price span.price-discount').html(formatCurrency(json.discounts[i].value_real * -1, currencyFormat, currencySign, currencyBlank));
|
||||||
|
}
|
||||||
toDelete = false;
|
toDelete = false;
|
||||||
}
|
}
|
||||||
if (toDelete)
|
if (toDelete)
|
||||||
|
|||||||
@@ -265,6 +265,7 @@ function confirmFreeOrder()
|
|||||||
else
|
else
|
||||||
$('#opc_account-overlay').fadeIn('slow');
|
$('#opc_account-overlay').fadeIn('slow');
|
||||||
$('#opc_delivery_methods-overlay, #opc_payment_methods-overlay').fadeOut('slow');
|
$('#opc_delivery_methods-overlay, #opc_payment_methods-overlay').fadeOut('slow');
|
||||||
|
$('#confirmOrder').attr('disabled', 'disabled');
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
headers: { "cache-control": "no-cache" },
|
headers: { "cache-control": "no-cache" },
|
||||||
@@ -275,6 +276,7 @@ function confirmFreeOrder()
|
|||||||
data: 'ajax=true&method=makeFreeOrder&token=' + static_token ,
|
data: 'ajax=true&method=makeFreeOrder&token=' + static_token ,
|
||||||
success: function(html)
|
success: function(html)
|
||||||
{
|
{
|
||||||
|
$('#confirmOrder').attr('disabled', '');
|
||||||
var array_split = html.split(':');
|
var array_split = html.split(':');
|
||||||
if (array_split[0] == 'freeorder')
|
if (array_split[0] == 'freeorder')
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -227,8 +227,8 @@ abstract class Controller extends ControllerCore
|
|||||||
// then using displayAjax[action]
|
// then using displayAjax[action]
|
||||||
if ($this->ajax)
|
if ($this->ajax)
|
||||||
{
|
{
|
||||||
$action = Tools::getValue('action');
|
$action = 'displayAjax'.Tools::toCamelCase(Tools::getValue('action', true));
|
||||||
if (!empty($action) && method_exists($this, 'displayAjax'.Tools::toCamelCase($action)))
|
if (!empty($action) && method_exists($this, $action))
|
||||||
$this->{'displayAjax'.$action}();
|
$this->{'displayAjax'.$action}();
|
||||||
elseif (method_exists($this, 'displayAjax'))
|
elseif (method_exists($this, 'displayAjax'))
|
||||||
$this->displayAjax();
|
$this->displayAjax();
|
||||||
|
|||||||
Reference in New Issue
Block a user