Logiciel Pastèque/Misc/Calcul TVA
Mode de calcul de la TVA et des arrondis Résumé du problème
Le calcul des tarifs HT + TVA = TTC pose des problèmes d'arrondis dès lors qu'ils sont sommés.
Voici un cas pour lequel le prix HT plus la TVA n'est pas égal au prix TTC sur le ticket.
Un produit à 7,12€TTC le kilo, soit 6.748815165876778€ HT le kilo(en base, v7). Vente de 1,200Kg à une TVA de 5,5%. TTC = 8,54€ (affiché sur le ticket. 7,12 x 1,2 = 8,544) HT = 8,10€ TVA = 0.45€ HT + TVA = 8,54
Quel que soit l'arrondi lorsque l'on utilise des calculs intermédiaires, il y aura tôt ou tard une erreur d'arrondi qui se propagera.
Par exemple si on se débrouille pour que pour chaque ligne de ticket HT + TVA = TTC, on pourra retrouver sur la somme des bases de TVA une erreur d'arrondi. Idem avec l'application de réductions. Solution utilisée
Étant donné qu'il est impossible d'avoir l'intégralité des calculs justes, on se contentera uniquement des valeurs affichées sur le ticket pour chaque ligne et on fera les calculs de TVA uniquement sur les totaux.
Le calcul HT + TVA = TTC n'est effectué qu'une seule fois sur les totaux. Toutes les sommes sont arrondies à 2 décimale. De cette manière il est impossible d'obtenir une erreur d'arrondi sur une seule ligne.
Dans tous les cas, les valeurs finales HT + TVA = TTC par taux et le grand TTC sont tous arrondis à 2 décimales. Mode B2C
Pour le commerce avec des particuliers, c'est la valeur TTC qui est importante, puisque c'est celle qui est affichée sur le ticket et payée. On ne calculera donc pas le HT et la TVA ligne par ligne, mais uniquement sur les totaux.
Pour chaque ligne de ticket, on ne calcule que la valeur TTC. Elle vaut (PU TTC x quantité) x (1 - taux de remise). TTC x quantité est arrondi à 2 décimales, tout comme le résultat final. Le prix unitaire au poids peut être sur 5 décimales, mais on arrondit toujours à 2 décimales pour le prix en quantité. Pour le ticket, on fait la somme des TTC de chaque ligne. Comme toutes les lignes sont arrondies à 2 décimales, le total du ticket est également sur 2 décimales. Ce total avant remise est affiché. On fait la même somme par taux de TVA, ceux-ci ne sont pas affichés car non significatifs (on attend la remise). On applique ensuite le taux de remise du ticket au total pour obtenir le tarif TTC à payer. On applique le taux de remise sur chaque total par TVA, puis on calcule le montant HT et de TVA associés.
On peut obtenir une erreur d'arrondi au pire de (nombre de taxes - 1) centimes, uniquement lorsqu'une remise est appliquée. Deal with it.
En effet, hors remise sur le ticket il n'y a pas de calcul intermédiaire effectué sur les sommes TTC. Comme la remise est affectée au total TTC, il n'est pas possible de répercuter cette remise sur les totaux par taux de TVA sans faire de calcul intermédiaire, sauf à ne pas les arrondir ce qui n'a pas de sens (la compta est sur 2 décimales).
On pourrait trouver des incohérences si on essaie de recalculer le détail HT ligne à ligne, mais on s'en fout en vrai puisque ces valeurs ne sont ni affichées, ni utilisées en compta. Mode B2B
Pour le commerce entre professionnels, c'est la valeur HT qui est affichée. On se contentera donc de ne pas calculer le tarif TTC pour chaque ligne (puisqu'il n'a pas de sens) et on ne fera le calcul que sur le total pour obtenir le montant à payer.
Cette section présente encore quelques zones floues, parce que cette méthode n'est de toute façon pas encore implémentée.
Pour chaque ligne de ticket, on ne calcule que la valeur HT. Elle vaut (PU HT x quantité) x (1 - taux de remise). HT x quantité est arrondi à 2 décimales, tout comme le résultat final (ou pas). Le prix unitaire au poids peut être sur 5 décimales. Pour le ticket, on fait la somme des HT de chaque ligne. Ce total avant remise est affiché. On fait la même somme par taux de TVA, ceux-ci ne sont pas affichés car non significatifs (on attend la remise). On applique ensuite le taux de remise du ticket aux totaux par TVA pour obtenir le tarif HT de chaque taux. On calcule la TVA associée à chaque taux, pour obtenir un TTC à 2 décimales. On fait la somme des TTC pour obtenir le prix TTC final à payer.
On pourra retrouver une incohérence de (nombre de taxes - 1) centimes avec une remise entre la somme des HT par TVA et le HT total. Deal with it aussi.