Prestashop 税收计算英国以外的具有增值税号的欧盟客户
Prestashop tax calculation EU customers outside of UK with VAT number
你好,我将如何覆盖
public function getTaxCalculator();
它是 prestashop 中 TaxRulesTaxManagerCore class 的一部分?
如果英国以外的欧盟客户有有效的增值税号,我的老板需要我给他们 0% 的增值税,
根据我的阅读,我可以使用 https://github.com/PrestaShop/vatnumber 模块。
问题是我的区域设置为每个国家/地区都是一个区域 - 我不想将它们全部改回欧盟 - 这会影响我们的运营商系统设置方式。
其实我想我需要改变,ProductCore.php大约第 2598 行
if ($usetax != false
&& !empty($address_infos['vat_number'])
&& $address_infos['id_country'] != Configuration::get('VATNUMBER_COUNTRY')
&& Configuration::get('VATNUMBER_MANAGEMENT'))
$usetax = false;
成为这样的东西:
if ( customer has VAT and in EU and not in UK ) $usetax = false;
也许那是更好的方法?
人们怎么看?
感谢您的帮助。
如您所见,增值税号模块不使用区域而是使用国家代码:
public static function getPrefixIntracomVAT()
{
$intracom_array = array(
'AT'=>'AT', //Austria
'BE'=>'BE', //Belgium
'DK'=>'DK', //Denmark
'FI'=>'FI', //Finland
'FR'=>'FR', //France
'FX'=>'FR', //France m�tropolitaine
'DE'=>'DE', //Germany
'GR'=>'EL', //Greece
'IE'=>'IE', //Irland
'IT'=>'IT', //Italy
'LU'=>'LU', //Luxembourg
'NL'=>'NL', //Netherlands
'PT'=>'PT', //Portugal
'ES'=>'ES', //Spain
'SE'=>'SE', //Sweden
'GB'=>'GB', //United Kingdom
'CY'=>'CY', //Cyprus
'EE'=>'EE', //Estonia
'HU'=>'HU', //Hungary
'LV'=>'LV', //Latvia
'LT'=>'LT', //Lithuania
'MT'=>'MT', //Malta
'PL'=>'PL', //Poland
'SK'=>'SK', //Slovakia
'CZ'=>'CZ', //Czech Republic
'SI'=>'SI', //Slovenia
'RO'=>'RO', //Romania
'BG'=>'BG' //Bulgaria
);
return $intracom_array;
}
public static function isApplicable($id_country)
{
return (((int)$id_country AND in_array(Country::getIsoById($id_country), self::getPrefixIntracomVAT())) ? 1 : 0);
}
您可以毫无问题地使用它。
你好,我将如何覆盖
public function getTaxCalculator();
它是 prestashop 中 TaxRulesTaxManagerCore class 的一部分?
如果英国以外的欧盟客户有有效的增值税号,我的老板需要我给他们 0% 的增值税,
根据我的阅读,我可以使用 https://github.com/PrestaShop/vatnumber 模块。
问题是我的区域设置为每个国家/地区都是一个区域 - 我不想将它们全部改回欧盟 - 这会影响我们的运营商系统设置方式。
其实我想我需要改变,ProductCore.php大约第 2598 行
if ($usetax != false
&& !empty($address_infos['vat_number'])
&& $address_infos['id_country'] != Configuration::get('VATNUMBER_COUNTRY')
&& Configuration::get('VATNUMBER_MANAGEMENT'))
$usetax = false;
成为这样的东西:
if ( customer has VAT and in EU and not in UK ) $usetax = false;
也许那是更好的方法?
人们怎么看?
感谢您的帮助。
如您所见,增值税号模块不使用区域而是使用国家代码:
public static function getPrefixIntracomVAT()
{
$intracom_array = array(
'AT'=>'AT', //Austria
'BE'=>'BE', //Belgium
'DK'=>'DK', //Denmark
'FI'=>'FI', //Finland
'FR'=>'FR', //France
'FX'=>'FR', //France m�tropolitaine
'DE'=>'DE', //Germany
'GR'=>'EL', //Greece
'IE'=>'IE', //Irland
'IT'=>'IT', //Italy
'LU'=>'LU', //Luxembourg
'NL'=>'NL', //Netherlands
'PT'=>'PT', //Portugal
'ES'=>'ES', //Spain
'SE'=>'SE', //Sweden
'GB'=>'GB', //United Kingdom
'CY'=>'CY', //Cyprus
'EE'=>'EE', //Estonia
'HU'=>'HU', //Hungary
'LV'=>'LV', //Latvia
'LT'=>'LT', //Lithuania
'MT'=>'MT', //Malta
'PL'=>'PL', //Poland
'SK'=>'SK', //Slovakia
'CZ'=>'CZ', //Czech Republic
'SI'=>'SI', //Slovenia
'RO'=>'RO', //Romania
'BG'=>'BG' //Bulgaria
);
return $intracom_array;
}
public static function isApplicable($id_country)
{
return (((int)$id_country AND in_array(Country::getIsoById($id_country), self::getPrefixIntracomVAT())) ? 1 : 0);
}
您可以毫无问题地使用它。