Jump to content

integration de la TVA intra communautaire


matt

Recommended Posts

Bonjour

Quand nous avons ouvert le site dont je vais vous parler il ne vendait qu'en France. Aujourd'hui je dois intègrer la TVA intra communautaire.

je me suis appuyé sur le très bon tuto que j'ai trouvé sur le forum:

tuto

C'est super j'ai mon champs tva intra qui n'est pas obligatoire. Donc maintenant ma problématique est "simple" ;)
Je veux appliquer la taxe si ce champs est à NULL et ne pas l'appliquer si anglais, par exemple rentre sa TVA intra (ou appliquer une TVA à 0% en fonction de ce qui sera le plus adapté).

Je pense que le moment ou l'on applique la taxe se situe dans la classe Order mais j'avoue que si on pouvait m'aider en m'indiquant le fichier et le fin du fin la partie du code ou j'aurai certainement à mettre ma condition ça m'aiderait vraiment.

Je suis en version Version 1.1.0.5 (pas pu le mettre à jour trop de modification faites, donc j'ai un peur de les casser en migrant :/)


Merci d'avance.

Link to comment
Share on other sites

  • 2 weeks later...
  • 6 months later...

Bonjour
Il y a un an , il était prévu que la TVA Intracommunautaire viendrait avec une version future , sans donné de date.

Je ne sais pas si c'est toujours prévu comme ca , c'est toute les infos que j'ai à ce sujet qui m'intéresse aussi ;-P

Link to comment
Share on other sites

C'est vraiment lourd ce genre de module qui devrait être la première préoccupation des prestashoppeurs ètant donné le fait que vendre sur le net c'est surtout vendre à l'étranger et que je ne peux, comme la plupart des cybercommerçants, me permettre de vendre uniquement à des pro ou l'inverse...
BAT, Marc.
PS: je suis prêt à payer un developpement digne de ce nom au prix fort...A bon entendeur, salut ;)
Alex...

Link to comment
Share on other sites

bon je me répond. J'ai codé ça rapidos avec les pieds...
mes premiers tests sont concluants, mais très superficiels.
J'ai modifié mon code comme indiqué dans le tuto indiqué dans la question.
Ensuite j'ai modifié le fichiers classes/Tax.php

méthode : getApplicableTax (vers la ligne 169)

static public function getApplicableTax($id_tax, $productTax, $id_address_delivery = NULL)
{
....
   if ($id_address_delivery AND $address_ids = Address::getCountryAndState($id_address_delivery))
   {
       $id_zone_country = Country::getIdZone(intval($address_ids['id_country']));
       Tools::logLine('[getApplicableTax] $id_zone_country : '.$id_zone_country);
       /* If customer's invoice address is inside a state */
       if ($address_ids['id_state'])
       {
       ...
       }
       /* Else getting country zone tax */
       if (!$id_zone = Address::getZoneById($id_address_delivery))
           die(Tools::displayError());
       // DEBUT MODIF
       // Tools::logLine('[getApplicableTax] $id_zone : '.$id_zone);
       /* */
       $delivery_address = new Address(intval($id_address_delivery));
       $tax = 1.0;
       if (Validate::isLoadedObject($delivery_address)){
           // Tools::logLine('[getApplicableTax] Address charge : '.$delivery_address->id);
           if (!empty($delivery_address->vatnumber) AND !empty($delivery_address->company)){
               // Tools::logLine('[getApplicableTax] Compte PRO');
               // on code en dure pour le moment
               // zone 1 == europe
               if ($id_zone == 1){
                   // Tools::logLine('[getApplicableTax] Compte PRO EU');
                   $tax = 0.0;
               }
           }
       }
       if (1.0 == $tax)
           $tax = Tax::zoneHasTax(intval($id_tax), intval($id_zone));
       // Tools::logLine('[getApplicableTax] Taxe :'.$tax);

       return $productTax * $tax;
       // FIN MODIF
   }
   /* Default tax application */
   if (!Validate::isLoadedObject($defaultCountry))
       die(Tools::displayError());
   return $productTax * Tax::zoneHasTax(intval($id_tax), intval($defaultCountry->id_zone));
}




voili voila, j'espère qu'il n'y aura pas trop d'effets de bord.
Julien.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...