La TVA d'un prix par client n'est pas reprise
Vous avez saisi un prix client avec une TVA à 10 %, et la ligne du devis sort à 20 %. D'où vient le taux de TVA proposé sur une ligne, et comment obtenir le bon.
Vous utilisez les prix par client. Sur un produit à 20 %, vous avez créé un prix à 10 € pour un client, avec une TVA à 10 %. Vous ajoutez ce produit à un devis pour ce client : le prix est bien 10 €, mais la TVA de la ligne est à 20 %.
Ce n’est pas un réglage oublié. Dolibarr applique le montant du prix client, mais pas sa TVA.
Ce qui se passe
Quand vous choisissez un produit dans une ligne, le formulaire demande au serveur le prix et le taux de TVA à proposer. Le serveur trouve bien le prix client, avec sa TVA. Mais juste après, il recalcule le taux selon les règles fiscales générales, et ce calcul ne connaît pas le prix client. C’est ce taux recalculé qui est proposé dans la ligne.
Pour un vendeur et un client du même pays, ce taux est celui de la fiche produit. Deux conséquences pratiques :
- Un produit à 0 % fait proposer 0 %. Si des lignes sortent à 0 % sans raison apparente, regardez d’abord les fiches produits.
- Le taux est enregistré sur la ligne au moment où elle est ajoutée. Corriger la fiche produit ensuite ne corrige pas les lignes déjà saisies.
Pour repérer les produits en vente à 0 % ou sans taux (adaptez le préfixe llx_ si besoin) :
SELECT rowid, ref, label, tva_tx FROM llx_product
WHERE tosell = 1 AND (tva_tx IS NULL OR tva_tx = 0);
Les solutions
- Mettre le bon taux sur la fiche produit. Si ce produit doit toujours être à 10 %, c’est sa TVA par défaut qu’il faut changer. Les nouvelles lignes le reprennent alors.
- Corriger le taux sur la ligne. Le taux proposé n’est qu’une proposition : vous pouvez le changer dans la liste avant d’ajouter la ligne, ou modifier la ligne ensuite. C’est la seule solution si le même produit doit vraiment avoir des taux différents selon le client.
Comment cela a été vérifié
- Sur des instances 20.0.4 et 24.0.1 de test, vendeur et client en France : produit à 20 %, prix client à 10 € et 10 %. Le formulaire propose 10 € et 20 %, la ligne est enregistrée ainsi. La réponse du serveur contient bien la TVA du prix client (10), puis le taux proposé (20).
- En 24.0.1 : un produit à 0 % fait proposer 0 %. Avec la TVA du produit passée à 10 %, la nouvelle ligne sort à 10 % et les lignes existantes restent à 20 %. Une ligne corrigée à la main passe à 10 %.
- Dans le code, de la 20.0.4 à la 24.0.2 et dans la branche de développement, le formulaire de ligne demande toujours ce recalcul.
Si les taux restent incompréhensibles
Si vos lignes sortent avec des taux que vous n’arrivez pas à expliquer, le diagnostic à 90 € consiste à regarder votre paramétrage avec vous pendant une heure, puis à vous remettre par écrit la cause et ce que coûterait la correction.