THELIA Forum

Welcome to the THELIA support and discusssion forum

Announcement

Rejoignez la communauté sur le Discord Thelia : https://discord.gg/YgwpYEE3y3

Offline


Bonjour,
Je désire récupère le taux de TVA d'un produit dans un module

$product_id = intval($event->getArgument('product', null));
$product = ProductQuery::create()->findOneById($product_id);
$TaxRuleId = $product->getTaxRuleId(); 

J'en suis là.
N'existe-il pas une méthode directe pour récupèrer 20% ou le taux paramètrer dans le backo ?

Last edited by w-prog (19-07-2016 05:38:30)


W-Prog - Développement site internet

Offline


Non, car tu peux appliquer plusieurs règles de taxes à un produit. Gentre TVA + Ecotaxe + Redevance copie privée, ou bien d'autres choses si l'on considère les systèmes de taxes d'autres pays.

C'est pour ça qu'on ne peut pas "récupérer directement 20%"


OpenStudio Toulouse

Offline


D'accord mais ou est stocker le 20% dans ce cas ?
Celui paramètrer dans le champ pourcent de la taxe TVA française à 20 % par exemple.


W-Prog - Développement site internet

Offline


Je viens de trouver un truc qui me convient.
Je connais $product_id, $prix et j'ai forcé $country_id à 64.

        $country_id = "64"; // France par défaut
        $product = ProductQuery::create()->findOneById($product_id);
        $tax_rule_id = $product->getTaxRuleId();
        $taxRule = TaxRuleQuery::create()->findPk($tax_rule_id);
        if (null !== $taxRule) {
            $taxCalculator = new Calculator();
            $country = CountryQuery::create()->findOneById($country_id);
            $taxCalculator->loadTaxRuleWithoutProduct($taxRule, $country);
            $calculer_taxe=true;
            $unit_prix = "TTC";
           $prix_ttc = $taxCalculator->getTaxedPrice($prix);
        }else {
            $unit_prix = "HT";
        }
       // To be continuous...

Qu'en pensez vous ?

Last edited by w-prog (15-07-2016 14:57:25)


W-Prog - Développement site internet

Offline


$country_id = "64"

Ce n'est pas fiable. Le plus simple est de récupérer le pays par defaut (Country::getDefaultCountry()), ou de remonter le pays ayant le code isoalpha2 "FR"


OpenStudio Toulouse

Offline


Oui bien sur, c'est plus propre. J'indique la solution que j'ai en oeuvre :

$fooCountry = CountryQuery::create()->filterByIsoalpha2('FR')->FindOne();
$country_id = $fooCountry->getId();

W-Prog - Développement site internet