[-] Core: the gift wrapping taxes is now handled by tax rules group
This commit is contained in:
+27
-9
@@ -1454,15 +1454,7 @@ class CartCore extends ObjectModel
|
|||||||
// Wrapping Fees
|
// Wrapping Fees
|
||||||
$wrapping_fees = 0;
|
$wrapping_fees = 0;
|
||||||
if ($this->gift)
|
if ($this->gift)
|
||||||
{
|
$wrapping_fees = Tools::convertPrice(Tools::ps_round($this->getGiftWrappingPrice($with_taxes), 2), Currency::getCurrencyInstance((int)$this->id_currency));
|
||||||
$wrapping_fees = (float)Configuration::get('PS_GIFT_WRAPPING_PRICE');
|
|
||||||
if ($with_taxes)
|
|
||||||
{
|
|
||||||
$wrapping_fees_tax = new Tax(Configuration::get('PS_GIFT_WRAPPING_TAX'));
|
|
||||||
$wrapping_fees *= 1 + ((float)$wrapping_fees_tax->rate / 100);
|
|
||||||
}
|
|
||||||
$wrapping_fees = Tools::convertPrice(Tools::ps_round($wrapping_fees, 2), Currency::getCurrencyInstance((int)$this->id_currency));
|
|
||||||
}
|
|
||||||
|
|
||||||
$order_total_discount = 0;
|
$order_total_discount = 0;
|
||||||
if (!in_array($type, array(Cart::ONLY_SHIPPING, Cart::ONLY_PRODUCTS)) && CartRule::isFeatureActive())
|
if (!in_array($type, array(Cart::ONLY_SHIPPING, Cart::ONLY_PRODUCTS)) && CartRule::isFeatureActive())
|
||||||
@@ -1539,6 +1531,32 @@ class CartCore extends ObjectModel
|
|||||||
|
|
||||||
return Tools::ps_round((float)$order_total, 2);
|
return Tools::ps_round((float)$order_total, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the gift wrapping price
|
||||||
|
* @param boolean $with_taxes With or without taxes
|
||||||
|
* @return gift wrapping price
|
||||||
|
*/
|
||||||
|
public function getGiftWrappingPrice($with_taxes = true, $id_address = null)
|
||||||
|
{
|
||||||
|
static $address = null;
|
||||||
|
|
||||||
|
if ($id_address === null)
|
||||||
|
$id_address = (int)$this->{Configuration::get('PS_TAX_ADDRESS_TYPE')};
|
||||||
|
|
||||||
|
if ($address === null)
|
||||||
|
$address = Address::initialize($id_address);
|
||||||
|
|
||||||
|
$wrapping_fees = (float)Configuration::get('PS_GIFT_WRAPPING_PRICE');
|
||||||
|
if ($with_taxes && $wrapping_fees > 0)
|
||||||
|
{
|
||||||
|
$tax_manager = TaxManagerFactory::getManager($address, (int)Configuration::get('PS_GIFT_WRAPPING_TAX_RULES_GROUP'));
|
||||||
|
$tax_calculator = $tax_manager->getTaxCalculator();
|
||||||
|
$wrapping_fees = $tax_calculator->addTaxes($wrapping_fees);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $wrapping_fees;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the number of packages
|
* Get the number of packages
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class PrestaShopExceptionCore extends Exception
|
|||||||
echo '<h2>['.get_class($this).']</h2>';
|
echo '<h2>['.get_class($this).']</h2>';
|
||||||
printf(
|
printf(
|
||||||
'<p><b>%s</b><br /><i>at line </i><b>%d</b><i> in file </i><b>%s</b></p>',
|
'<p><b>%s</b><br /><i>at line </i><b>%d</b><i> in file </i><b>%s</b></p>',
|
||||||
$this->getMessage(),
|
Tools::safeOutput($this->getMessage()),
|
||||||
$this->getLine(),
|
$this->getLine(),
|
||||||
ltrim(str_replace(array(_PS_ROOT_DIR_, '\\'), array('', '/'), $this->getFile()), '/')
|
ltrim(str_replace(array(_PS_ROOT_DIR_, '\\'), array('', '/'), $this->getFile()), '/')
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -53,11 +53,6 @@ class AdminOrderPreferencesControllerCore extends AdminController
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// Tax list
|
|
||||||
$taxes[] = array('id' => 0, 'name' => $this->l('None'));
|
|
||||||
foreach (Tax::getTaxes($this->context->language->id) as $tax)
|
|
||||||
$taxes[] = array('id' => $tax['id_tax'], 'name' => $tax['name']);
|
|
||||||
|
|
||||||
$this->fields_options = array(
|
$this->fields_options = array(
|
||||||
'general' => array(
|
'general' => array(
|
||||||
'title' => $this->l('General'),
|
'title' => $this->l('General'),
|
||||||
@@ -140,14 +135,14 @@ class AdminOrderPreferencesControllerCore extends AdminController
|
|||||||
'cast' => 'floatval',
|
'cast' => 'floatval',
|
||||||
'type' => 'price'
|
'type' => 'price'
|
||||||
),
|
),
|
||||||
'PS_GIFT_WRAPPING_TAX' => array(
|
'PS_GIFT_WRAPPING_TAX_RULES_GROUP' => array(
|
||||||
'title' => $this->l('Gift-wrapping tax'),
|
'title' => $this->l('Gift-wrapping tax'),
|
||||||
'desc' => $this->l('Set a tax for gift-wrapping'),
|
'desc' => $this->l('Set a tax for gift-wrapping'),
|
||||||
'validation' => 'isInt',
|
'validation' => 'isInt',
|
||||||
'cast' => 'intval',
|
'cast' => 'intval',
|
||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'list' => $taxes,
|
'list' => array_merge(array(array('id_tax_rules_group' => 0, 'name' => $this->l('None'))), TaxRulesGroup::getTaxRulesGroups(true)),
|
||||||
'identifier' => 'id'
|
'identifier' => 'id_tax_rules_group'
|
||||||
),
|
),
|
||||||
'PS_RECYCLABLE_PACK' => array(
|
'PS_RECYCLABLE_PACK' => array(
|
||||||
'title' => $this->l('Offer recycled packaging'),
|
'title' => $this->l('Offer recycled packaging'),
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ class AdminShippingControllerCore extends AdminController
|
|||||||
else
|
else
|
||||||
$array_carrier[] = $carrier['id_carrier'];
|
$array_carrier[] = $carrier['id_carrier'];
|
||||||
|
|
||||||
$id_carrier = Tools::getValue('id_carrier');
|
$id_carrier = (int)Tools::getValue('id_carrier');
|
||||||
|
|
||||||
if (count($carriers) && isset($array_carrier[0]))
|
if (count($carriers) && isset($array_carrier[0]))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -141,9 +141,8 @@ class OrderOpcControllerCore extends ParentOrderController
|
|||||||
$this->_processAddressFormat();
|
$this->_processAddressFormat();
|
||||||
$this->_assignAddress();
|
$this->_assignAddress();
|
||||||
// Wrapping fees
|
// Wrapping fees
|
||||||
$wrapping_fees = (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE'));
|
$wrapping_fees = $this->context->cart->getGiftWrappingPrice(false);
|
||||||
$wrapping_fees_tax = new Tax((int)(Configuration::get('PS_GIFT_WRAPPING_TAX')));
|
$wrapping_fees_tax_inc = $wrapping_fees = $this->context->cart->getGiftWrappingPrice();
|
||||||
$wrapping_fees_tax_inc = $wrapping_fees * (1 + (((float)($wrapping_fees_tax->rate) / 100)));
|
|
||||||
$return = array_merge(array(
|
$return = array_merge(array(
|
||||||
'order_opc_adress' => $this->context->smarty->fetch(_PS_THEME_DIR_.'order-address.tpl'),
|
'order_opc_adress' => $this->context->smarty->fetch(_PS_THEME_DIR_.'order-address.tpl'),
|
||||||
'block_user_info' => (isset($blockUserInfo) ? $blockUserInfo->hookTop(array()) : ''),
|
'block_user_info' => (isset($blockUserInfo) ? $blockUserInfo->hookTop(array()) : ''),
|
||||||
@@ -203,9 +202,8 @@ class OrderOpcControllerCore extends ParentOrderController
|
|||||||
{
|
{
|
||||||
$result = $this->_getCarrierList();
|
$result = $this->_getCarrierList();
|
||||||
// Wrapping fees
|
// Wrapping fees
|
||||||
$wrapping_fees = (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE'));
|
$wrapping_fees = $this->context->cart->getGiftWrappingPrice(false);
|
||||||
$wrapping_fees_tax = new Tax((int)(Configuration::get('PS_GIFT_WRAPPING_TAX')));
|
$wrapping_fees_tax_inc = $wrapping_fees = $this->context->cart->getGiftWrappingPrice();
|
||||||
$wrapping_fees_tax_inc = $wrapping_fees * (1 + (((float)($wrapping_fees_tax->rate) / 100)));
|
|
||||||
$result = array_merge($result, array(
|
$result = array_merge($result, array(
|
||||||
'HOOK_TOP_PAYMENT' => Hook::exec('displayPaymentTop'),
|
'HOOK_TOP_PAYMENT' => Hook::exec('displayPaymentTop'),
|
||||||
'HOOK_PAYMENT' => $this->_getPaymentMethods(),
|
'HOOK_PAYMENT' => $this->_getPaymentMethods(),
|
||||||
@@ -493,9 +491,10 @@ class OrderOpcControllerCore extends ParentOrderController
|
|||||||
|
|
||||||
$carriers = $this->context->cart->simulateCarriersOutput();
|
$carriers = $this->context->cart->simulateCarriersOutput();
|
||||||
$delivery_option = $this->context->cart->getDeliveryOption(null, false, false);
|
$delivery_option = $this->context->cart->getDeliveryOption(null, false, false);
|
||||||
$wrapping_fees = (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE'));
|
|
||||||
$wrapping_fees_tax = new Tax((int)(Configuration::get('PS_GIFT_WRAPPING_TAX')));
|
$wrapping_fees = $this->context->cart->getGiftWrappingPrice(false);
|
||||||
$wrapping_fees_tax_inc = $wrapping_fees * (1 + (((float)($wrapping_fees_tax->rate) / 100)));
|
$wrapping_fees_tax_inc = $wrapping_fees = $this->context->cart->getGiftWrappingPrice();
|
||||||
|
|
||||||
$vars = array(
|
$vars = array(
|
||||||
'free_shipping' => $free_shipping,
|
'free_shipping' => $free_shipping,
|
||||||
'checkedTOS' => (int)($this->context->cookie->checkedTOS),
|
'checkedTOS' => (int)($this->context->cookie->checkedTOS),
|
||||||
@@ -505,7 +504,7 @@ class OrderOpcControllerCore extends ParentOrderController
|
|||||||
'conditions' => (int)(Configuration::get('PS_CONDITIONS')),
|
'conditions' => (int)(Configuration::get('PS_CONDITIONS')),
|
||||||
'link_conditions' => $link_conditions,
|
'link_conditions' => $link_conditions,
|
||||||
'recyclable' => (int)($this->context->cart->recyclable),
|
'recyclable' => (int)($this->context->cart->recyclable),
|
||||||
'gift_wrapping_price' => (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE')),
|
'gift_wrapping_price' => (float)$wrapping_fees,
|
||||||
'total_wrapping_cost' => Tools::convertPrice($wrapping_fees_tax_inc, $this->context->currency),
|
'total_wrapping_cost' => Tools::convertPrice($wrapping_fees_tax_inc, $this->context->currency),
|
||||||
'total_wrapping_tax_exc_cost' => Tools::convertPrice($wrapping_fees, $this->context->currency),
|
'total_wrapping_tax_exc_cost' => Tools::convertPrice($wrapping_fees, $this->context->currency),
|
||||||
'delivery_option_list' => $this->context->cart->getDeliveryOptionList(),
|
'delivery_option_list' => $this->context->cart->getDeliveryOptionList(),
|
||||||
|
|||||||
@@ -470,9 +470,8 @@ class ParentOrderControllerCore extends FrontController
|
|||||||
protected function _assignWrappingAndTOS()
|
protected function _assignWrappingAndTOS()
|
||||||
{
|
{
|
||||||
// Wrapping fees
|
// Wrapping fees
|
||||||
$wrapping_fees = (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE'));
|
$wrapping_fees = $this->context->cart->getGiftWrappingPrice(false);
|
||||||
$wrapping_fees_tax = new Tax(Configuration::get('PS_GIFT_WRAPPING_TAX'));
|
$wrapping_fees_tax_inc = $wrapping_fees = $this->context->cart->getGiftWrappingPrice();
|
||||||
$wrapping_fees_tax_inc = $wrapping_fees * (1 + (((float)($wrapping_fees_tax->rate) / 100)));
|
|
||||||
|
|
||||||
// TOS
|
// TOS
|
||||||
$cms = new CMS(Configuration::get('PS_CONDITIONS_CMS_ID'), $this->context->language->id);
|
$cms = new CMS(Configuration::get('PS_CONDITIONS_CMS_ID'), $this->context->language->id);
|
||||||
@@ -495,7 +494,7 @@ class ParentOrderControllerCore extends FrontController
|
|||||||
'checked' => $this->context->cart->simulateCarrierSelectedOutput(),
|
'checked' => $this->context->cart->simulateCarrierSelectedOutput(),
|
||||||
'address_collection' => $this->context->cart->getAddressCollection(),
|
'address_collection' => $this->context->cart->getAddressCollection(),
|
||||||
'delivery_option' => $this->context->cart->getDeliveryOption(null, false),
|
'delivery_option' => $this->context->cart->getDeliveryOption(null, false),
|
||||||
'gift_wrapping_price' => (float)(Configuration::get('PS_GIFT_WRAPPING_PRICE')),
|
'gift_wrapping_price' => (float)$wrapping_fees,
|
||||||
'total_wrapping_cost' => Tools::convertPrice($wrapping_fees_tax_inc, $this->context->currency),
|
'total_wrapping_cost' => Tools::convertPrice($wrapping_fees_tax_inc, $this->context->currency),
|
||||||
'total_wrapping_tax_exc_cost' => Tools::convertPrice($wrapping_fees, $this->context->currency)));
|
'total_wrapping_tax_exc_cost' => Tools::convertPrice($wrapping_fees, $this->context->currency)));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,3 +26,13 @@ ALTER TABLE `PREFIX_cart` CHANGE `delivery_option` `delivery_option` TEXT CHARAC
|
|||||||
|
|
||||||
ALTER TABLE `PREFIX_currency_shop` ADD `conversion_rate` DECIMAL( 13, 6 ) NOT NULL;
|
ALTER TABLE `PREFIX_currency_shop` ADD `conversion_rate` DECIMAL( 13, 6 ) NOT NULL;
|
||||||
UPDATE `PREFIX_currency_shop` a SET `conversion_rate` = (SELECT `conversion_rate` FROM `PREFIX_currency` b WHERE a.id_currency = b.id_currency);
|
UPDATE `PREFIX_currency_shop` a SET `conversion_rate` = (SELECT `conversion_rate` FROM `PREFIX_currency` b WHERE a.id_currency = b.id_currency);
|
||||||
|
|
||||||
|
INSERT INTO `PREFIX_configuration`(`name`, `value`, `id_shop`, `id_shop_group`, `date_add`, `date_upd`)
|
||||||
|
(SELECT 'PS_GIFT_WRAPPING_TAX_RULES_GROUP', b.`id_tax_rules_group`, a.`id_shop`, a.`id_shop_group`, NOW(), NOW()
|
||||||
|
FROM `PREFIX_configuration` a
|
||||||
|
JOIN `PREFIX_tax_rule` b ON (a.value = b.id_tax)
|
||||||
|
WHERE a.name='PS_GIFT_WRAPPING_TAX'
|
||||||
|
GROUP BY a.`id_shop`, a.`id_shop_group`
|
||||||
|
);
|
||||||
|
|
||||||
|
DELETE FROM `PREFIX_configuration` WHERE name='PS_GIFT_WRAPPING_TAX';
|
||||||
|
|||||||
@@ -217,25 +217,25 @@ class HomeSlider extends Module
|
|||||||
$this->_html .= '
|
$this->_html .= '
|
||||||
<label>'.$this->l('Height:').'</label>
|
<label>'.$this->l('Height:').'</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" name="HOMESLIDER_HEIGHT" id="speed" size="3" value="'.Configuration::get('HOMESLIDER_HEIGHT').'" /> px
|
<input type="text" name="HOMESLIDER_HEIGHT" id="speed" size="3" value="'.Tools::safeOutput(Configuration::get('HOMESLIDER_HEIGHT')).'" /> px
|
||||||
</div>';
|
</div>';
|
||||||
/* Width field */
|
/* Width field */
|
||||||
$this->_html .= '
|
$this->_html .= '
|
||||||
<label>'.$this->l('Width:').'</label>
|
<label>'.$this->l('Width:').'</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" name="HOMESLIDER_WIDTH" id="pause" size="3" value="'.Configuration::get('HOMESLIDER_WIDTH').'" /> px
|
<input type="text" name="HOMESLIDER_WIDTH" id="pause" size="3" value="'.Tools::safeOutput(Configuration::get('HOMESLIDER_WIDTH')).'" /> px
|
||||||
</div>';
|
</div>';
|
||||||
/* Speed field */
|
/* Speed field */
|
||||||
$this->_html .= '
|
$this->_html .= '
|
||||||
<label>'.$this->l('Speed:').'</label>
|
<label>'.$this->l('Speed:').'</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" name="HOMESLIDER_SPEED" id="speed" size="3" value="'.Configuration::get('HOMESLIDER_SPEED').'" /> ms
|
<input type="text" name="HOMESLIDER_SPEED" id="speed" size="3" value="'.Tools::safeOutput(Configuration::get('HOMESLIDER_SPEED')).'" /> ms
|
||||||
</div>';
|
</div>';
|
||||||
/* Pause field */
|
/* Pause field */
|
||||||
$this->_html .= '
|
$this->_html .= '
|
||||||
<label>'.$this->l('Pause:').'</label>
|
<label>'.$this->l('Pause:').'</label>
|
||||||
<div class="margin-form">
|
<div class="margin-form">
|
||||||
<input type="text" name="HOMESLIDER_PAUSE" id="pause" size="3" value="'.Configuration::get('HOMESLIDER_PAUSE').'" /> ms
|
<input type="text" name="HOMESLIDER_PAUSE" id="pause" size="3" value="'.Tools::safeOutput(Configuration::get('HOMESLIDER_PAUSE')).'" /> ms
|
||||||
</div>';
|
</div>';
|
||||||
/* Loop field */
|
/* Loop field */
|
||||||
$this->_html .= '
|
$this->_html .= '
|
||||||
|
|||||||
@@ -44,7 +44,7 @@ var homeslider_pause = {$homeslider.pause};
|
|||||||
<ul id="homeslider">
|
<ul id="homeslider">
|
||||||
{foreach from=$homeslider_slides item=slide}
|
{foreach from=$homeslider_slides item=slide}
|
||||||
{if $slide.active}
|
{if $slide.active}
|
||||||
<li><a href="{$slide.url|escape:'htmlall':'UTF-8'}" title="{$slide.description|escape:'htmlall':'UTF-8'}"><img src="{$smarty.const._MODULE_DIR_}/homeslider/images/{$slide.image|escape:'htmlall':'UTF-8'}" alt="{$slide.legend|escape:'htmlall':'UTF-8'}" legend="{$slide.description}" height="{$homeslider.height|intval}" width="{$homeslider.width|intval}" /></a></li>
|
<li><a href="{$slide.url|escape:'htmlall':'UTF-8'}" title="{$slide.description|escape:'htmlall':'UTF-8'}"><img src="{$smarty.const._MODULE_DIR_}/homeslider/images/{$slide.image|escape:'htmlall':'UTF-8'}" alt="{$slide.legend|escape:'htmlall':'UTF-8'}" legend="{$slide.description|escape:'htmlall':'UTF-8'}" height="{$homeslider.height|intval}" width="{$homeslider.width|intval}" /></a></li>
|
||||||
{/if}
|
{/if}
|
||||||
{/foreach}
|
{/foreach}
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
Reference in New Issue
Block a user