Jump to content

Calcul TVA (avec ristourne) - Erroné !


pchan

Recommended Posts

Bonjour,

Est-ce que quelqu'un aurait la moindre idée de ce qu'il peut bien se passer dans les entrailles de Prestashop pour me générer une facture avec des montants TVA qui ne correspondent à rien du tout.

J'ai un total produit (HT) : 162.5€
Reductions de 25% : -40.63€ 
Total (HT) : 121.87€

Jusque là, tout est bon, le taux TVA à appliquer est de 20%.

Maintenant sur la facture dans la colonne des montants, je me retrouve avec un montant TVA de 23.99€ et dans la partie "détail des taxes" le montant TVA est de 32.52€. Or aucun des deux n'est correct ! A moins que je ne sois fou, 20% de 121.87 = 24.374 (donc ni 23.99, ni 32.52)
Résultat, toutes les commandes sont en erreur au retour du paiement puisque les montants ne correspondent pas.

Prestashop 1.6.1.15

EDIT : J'ai peut-etre trouvé une piste, mais je suis perdu dans le code. L'erreur semble provenir du fait qu'il y ait une reduction (ici 40.63€), et c'est un mauvais taux TVA qui est appliqué sur cette réduction. Le site affiche les prix avec 21% (TVA belge) et si le client est francais, le site recalcule avec 20%.
Dans la table ps_order_cart_rule, il indique bien 40.63 (tax_excl) mais 49.16 (value, cad 40.63 * 1.21) or cela devrait etre 40.63 * 1.20 = 48.756. Mais je ne sais pas ou cela est calculé. 
Si quelqu'un peut m'aiguiller dans la bonne direction...
Meme soucis dans la table ps_orders :
total_discounts_tax_excl = 40.63 (OK)
total_discounts et total_discounts_tax_incl = 49.16 (devrait etre 48.76 -> PAS OK) 
 

 

Screenshot_1.jpg

Edited by pchan (see edit history)
Link to comment
Share on other sites

  • 2 months later...

Bonjour,

pour ceux qui rencontrent le problème de calcul de TVA sur une remise le problème vient de la méthode de calcul dans les règles paniers. Le calcul ne tient pas compte de la TVA ou pas de TVA de l'adresse de facturation. Exemple si vous avez un client hors UE qui ne paye pas de TVA ou un client avec un n° de TVA INTRACOMMUNAUTAIRE le calcul de la remise va se faire avec de la TVA. Le bug apparait uniquement en backoffice dans le panier ou dans la commande et dans la facture du client. Donc le client ne voit rien dans le tunnel de commande.

Exemple produit à 100 € HT avec TVA à 20% et une remise de 5% dans la règle panier. En France tout est ok, mais pour une commande en DOM/TOM ou UE avec un N° TVA INTRA les 5% de remise sont calculés avec le TVA !

Prix HT 100 €
Remise 5% = 6 € ( 5 € + 20% TVA = 6 €) au lieu de 5 €

Pour corriger le problème il faut modifier un fichier du cœur de Prestashop classes/CartRules.php à la ligne 990 changer

                            $price = $product['price'];
                            if ($use_tax) {
                                $price *= (1 + $context->cart->getAverageProductsTaxRate());
                            }

par

                            $price = Product::getPriceStatic($product['id_product'], 
                                $use_tax, 
                                isset($product['id_product_attribute']) ? (int)$product['id_product_attribute'] : null,
                                6,
                                null,
                                false,
                                false,
                                $product['cart_quantity']);

Et voilà.

NB: comme vous êtes sur une 1.6 ce correctif ne sera malheureusement pas reporté dans les prochaines MAJ, uniquement les bugs de sécurités et sévères sont maintenus. Mais le bug est toujours présent dans la 1.7 🙂 On va proposer le correctif.

 

 

  • Like 1
Link to comment
Share on other sites

  • 2 months later...
  • 3 months later...
On 11/16/2018 at 8:03 PM, Prestashop Addict said:

Bonjour,

pour ceux qui rencontrent le problème de calcul de TVA sur une remise le problème vient de la méthode de calcul dans les règles paniers. Le calcul ne tient pas compte de la TVA ou pas de TVA de l'adresse de facturation. Exemple si vous avez un client hors UE qui ne paye pas de TVA ou un client avec un n° de TVA INTRACOMMUNAUTAIRE le calcul de la remise va se faire avec de la TVA. Le bug apparait uniquement en backoffice dans le panier ou dans la commande et dans la facture du client. Donc le client ne voit rien dans le tunnel de commande.

Exemple produit à 100 € HT avec TVA à 20% et une remise de 5% dans la règle panier. En France tout est ok, mais pour une commande en DOM/TOM ou UE avec un N° TVA INTRA les 5% de remise sont calculés avec le TVA !

Prix HT 100 €
Remise 5% = 6 € ( 5 € + 20% TVA = 6 €) au lieu de 5 €

Pour corriger le problème il faut modifier un fichier du cœur de Prestashop classes/CartRules.php à la ligne 990 changer


                            $price = $product['price'];
                            if ($use_tax) {
                                $price *= (1 + $context->cart->getAverageProductsTaxRate());
                            }

par


                            $price = Product::getPriceStatic($product['id_product'], 
                                $use_tax, 
                                isset($product['id_product_attribute']) ? (int)$product['id_product_attribute'] : null,
                                6,
                                null,
                                false,
                                false,
                                $product['cart_quantity']);

Et voilà.

NB: comme vous êtes sur une 1.6 ce correctif ne sera malheureusement pas reporté dans les prochaines MAJ, uniquement les bugs de sécurités et sévères sont maintenus. Mais le bug est toujours présent dans la 1.7 🙂 On va proposer le correctif.

 

 

Désolé de déterrer ce topic, mais visiblement je tombe en plein dans ce soucis.
Par contre la ligne 990, n'est plus la même dans la version actuel de la 1.6.1.24, je retrouve le même code a la ligne 957.

J'ai donc essayéde remplacer a ce niveaux par les lignes fournie, mallheureusement sans succès (je n'arrive plus a visualiser les paniers par exemple). Est ce que cette solution est toujours fonctionnel en 1.6.1.24 ?

Merci pour votre retour :)

Link to comment
Share on other sites

  • 2 months later...
  • 4 months later...
On 1/24/2019 at 6:03 PM, LE PANIER GAILLARD said:

Je suis confronté à un problème d'affichage de tva, je suis sur 2 TVA : 5.5% et 20% et lorsuqe j'applique un code promo, les informations reportées sont fausses.

Je me retrouve soit avec une base fausse, soit un montant total différent du montant détaillé des 2 taxes.

 

Bonjour,

je rencontre le même problème sur mon prestashop 1.73.2 avez vous pu résoudre e problème ?

Merci par avance 

Link to comment
Share on other sites

  • 1 month later...

Bonjour,

Je rencontre une erreur de 1 centimes au niveau du calcul de TVA d'un prix spécifique ajouté sur un produit.  Quelqu'un aurait il une solution svp ?

Ma version est 1.7.3.1.

Réduc de 70 € TTC  appliquée dans : Catalogue → Produit →  Prix → Ajout de prix spécifique :

image.thumb.png.fc4492f6d2be5c116f5df0948d78b067.png

Produit TTC = 349,90 € (Calcul OK) /1,2 = 291,58 € HT

Livraison TTC = 19,90 € (Calcul OK) /1,2 = 16,58 € HT

Offre Liquidation TTC = 70 €/1,2 = 58,33 € HT et non 58,32 € HT comme indiqué sur la facture 

image.png.f7e46ab13afbbf743bef6c296f8991a6.png

 

Des idées svp ?? 😵


 

 

 

 

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...