Prestashop税收计算英国以外的欧盟客户,增值税号

时间:2016-02-01 17:34:51

标签: prestashop-1.6

您好我将如何重写

public function getTaxCalculator();

它是prestashop中TaxRulesTaxManagerCore类的一部分吗?

我的老板要求我向英国境外的欧盟客户提供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;

也许那是更好的方式?

人们的想法是什么?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

如您所见,vatnumber模块不使用区域,而是使用国家/地区代码:

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);
}

您可以毫无问题地使用它。