Bonjour Philip,
J'ai essayé de comprendre la logique de l'erreur et je pense l'avoir trouvée.
Dans la liste des rapports sur mon site, seuls les 4 premiers concernent notre problème
J'ai d'abord refait un report avec 10 articles regroupés dans 6 commandes (reports 3 et 4) :
1 commande sans TVA et sans frais de port
2 commandes sans frais de port avec TVA
3 commandes avec TVA et frais de port.
Les résultats sont identiques que le regroupement soit fait par catégorie ou par produits.
Les 10 articles vendus représentent, au réel :
TTC + port = 315,47 => calculé : 957,17 soit une erreur de + 641,70
HT = 272,69 BON
HT + port = 289,99 => calculé 689,22 par catégorie (différence : +399,23) et 876,59 par article (+ 586,60)
TTC sans port = 298,17 => calculé 902,17 soit une différence de +604
Port seul = 17,30
TVA seule = 25,48
J'ai fait ensuite un rapport avec seulement 2 articles identiques (report 2). Mêmes erreurs
TTC + port = 83,30 => calculé 204,30 (+ 121,00)
HT = 68,26 BON
HT + port = 79,56 => calculé 187,37 (+ 107,81)
TTC sans port = 72,00 => calculé 193,00 (+ 121,00)
Port seul = 11,30
TVA seule = 3,74
Toutefois, je pense avoir trouvé l'explication car, si je ne prends que les bons de commande comportant un seul article, tous les résultats sont bons (report 1 1 seul article par bon de commande)
La boucle doit reprendre totalité des articles du bon de commande à chaque itération d'article.
En prenant le cas du report 2 (2 articles identiques, le EX36 - Pistes du Maroc Tome 1 (2016)), qui concerne les bons de commande ES-3231 et ES-3238, la somme de 204,30 représente le total des deux bons de commandes : 204,30 et non le total des deux seules références EX36.
J'AI ESSAYÉ ÉGALEMENT AVEC LES REPORTS 3 ET 4
Ils totalisent 4 commandes à un article (42; 20; 20; 29,17 €), 1 commande à 2 articles (59,50 €) et 1 commande à 5 articles (144,80 €). En additionnant 1x42 + 1x20 + 1x20 + 1x29,17 + 2x59,50 + 5x144,80 j'obtiens bien les 954,17 de mon total TTC + port calculé dans les rapports 3 et 4.
Je n'ai pas continué avec les autres chiffres, mais ça paraît maintenant évident : la boucle s'effectue sur les bons de commande et non sur les articles... S'il y a 4 articles sur le bon de commande, chaque article est ajouté 4 fois. Ce qui est par contre curieux, c'est que le calcul en hors taxes soit bon... Le code doit être différent mais je n'ai pas regardé.
Merci pour votre retour.
Pensez aussi, dans la mesure du possible, à ma requête conternant EnvoiMoinsCher. Merci.