TVA : erreur d'arrondi

  • Posts: 11
  • Thank you received: 0
12 years 11 months ago #16308

Bonjour,

Je rencontre un problème d'arrondi au calcul de la TVA.
J'étais en version 1.4.8 et je viens de passer en 1.5.0, et j'ai le problème dans les deux cas.

J'ai un article à 0.64€ l'unité TTC. Quand j'en vend 100, mon total ttc est de 64€. Normal.
par contre le montant de ma Tva à 5.5% est de 3€ et mon H.T de 61€, ce qui est faux.

Le H.t devrait être de 60.66€ et la Tva de 3.34€. Ce qui représente 34 cents d'Euro d'erreur...

Avez-vous une solution ?

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 11 months ago #16344

Bonsoir,

C'est le même problème que celui ci: www.hikashop.com/en/support/forum/4-how-...culation-solved.html
Il est possible de corriger cela de votre coté donc mais nous n'avons pas encore corrigé le problème de fond de notre coté.

Please Log in or Create an account to join the conversation.

  • Posts: 11
  • Thank you received: 0
12 years 11 months ago #16374

Bonjour,

J'ai essayé de comprendre, mais j'ai du mal avec l'anglais...
Et il semble que ce cas concerne un paiement Paypal.
Pourriez-vous me dire en résumé, quelles modifs réaliser pour ne plus avoir ce problème. Merci d'avance.

Cordialement.

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 11 months ago #16395

Vous pouvez éditer le fichier adminsitrator / components / com_hikashop / classes / currency.php et ajouter juste après la ligne:
function format($number,$currency_id=0,$format_override='') {

le code:
$number = round($number,2);

et aussi ajouter le code:
$locale=2;
$locale=2;

juste après:
$locale = $data->currency_locale;

Ensuite, dans le menu Système->Monnaies vous devait augmenter le nombre de décimales de votre monnaie.

Enfin, si vous utilisez des méthodes de paiement en ligne, il va falloir éditer le fichier du plugin de paiement dans plugins/hikashoppayment pour force le nombre de décimales à 2 après le chargement de la monnaie: $currency->currency_locale = 2;

Please Log in or Create an account to join the conversation.

  • Posts: 11
  • Thank you received: 0
12 years 11 months ago #16579

Bonjour,

Les modifs concernant le calcul de la TVA fonctionne bien dans Hikashop, et je vous en remercie.

Par contre comme j'utiliserai Paypal, j'ai fais les modifs dans :

plugins/hikashoppayment/paypal.php et ajouté la ligne : $currency->currency_locale = 2;

Après : $currency=$currencies[$order->order_currency_id];
et après : $currency=$currencies[$dbOrder->order_currency_id];

mais ca ne marche pas. Dans Paypal on part d'un prix unitaire H.T à 0.61€ alors qu'il devrait être à 0.6066€...
Regardez les fichiers en pièces jointes...

Cordialement.

Please Log in or Create an account to join the conversation.

  • Posts: 11
  • Thank you received: 0
12 years 11 months ago #16581

je vous renvois le fichier, il n'etait pas passé...

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 11 months ago #16583

Il n'est pas possible de donner un prix unitaire à plus de deux décimales à paypal.
La seule solution est de ne pas donner le détail de la commande mais le prix total.

Il faut que vous enleviez toute la partie d'envoi du détail:

$i = 1;
		$tax = 0;
		foreach($order->cart->products as $product){
			$vars["item_name_".$i]=substr($product->order_product_name,0,127);
			$vars["item_number_".$i]=$product->order_product_code;
			$vars["amount_".$i]=round($product->order_product_price,(int)$currency->currency_locale['int_frac_digits']);
			$vars["quantity_".$i]=$product->order_product_quantity;
			$tax+=round($product->order_product_tax,(int)$currency->currency_locale['int_frac_digits'])*$product->order_product_quantity;
			$i++;
		}
		if(bccomp($tax,0,5)){
			$vars['tax_cart']=$tax;
		}
		if(!empty($order->order_shipping_price) && bccomp($order->order_shipping_price,0,5)){
			$vars["item_name_".$i]=JText::_('HIKASHOP_SHIPPING');
			$vars["amount_".$i]=round($order->order_shipping_price,(int)$currency->currency_locale['int_frac_digits']);
			$vars["quantity_".$i]=1;
			$i++;
		}

		if(!empty($order->cart->coupon)){
			$vars["discount_amount_cart"]=round($order->cart->coupon->discount_value,(int)$currency->currency_locale['int_frac_digits']);
		}

et que vous rajoutiez une ligne pour l'envoi du prix total:
$vars["x_amount"]=round($order->cart->full_total->prices[0]->price_value_with_tax,(int)$currency->currency_locale);

Please Log in or Create an account to join the conversation.

  • Posts: 11
  • Thank you received: 0
12 years 11 months ago #16616

Bonjour,

Dans l'idée, ne pas envoyer le détail à Paypal me convient.
Mais après avoir fais les modifs, Paypal m'envois un message d'erreur :

Détection d'erreur
Votre panier est vide.

[Accédez à votre compte Paypal]

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 11 months ago #16640

I checked the documentation and it should be:
$vars["amount_1"]=round($order->cart->full_total->prices[0]->price_value_with_tax,(int)$currency->currency_locale);
$vars["item_name_1"]='Full order price';

Please Log in or Create an account to join the conversation.

  • Posts: 11
  • Thank you received: 0
12 years 11 months ago #16678

Bonjour,

Cette fois ci, ca fonctionne ! Merci beaucoup !

Dernière question, il y a t-il possibilité de ne pas faire apparaitre les liens en bas de page : "HikaShop , Joomla!™ E-Commerce Extension" et "Animé par Joomla!®" ?

Merci d'avance ! :)

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 11 months ago #16682

Pour HikaShop, oui, c'est facile, il y a une option "afficher le pied de page" dans l'onglet "Affichage" de la config.
Pour Joomla, il faudra éditer votre template si votre template ne fournit pas d'option. Il faudra donc vous renseigner auprès du fournisseur de votre template.

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
12 years 10 months ago #18039

Bonjour,
J'ai un peu le même problème, mais pas exactement, et il n'est réglé ni par les manips proposées plus haut, ni par la dernière MAJ de hikashop.

Un exemple avec un produit à 6.00€HT, qui passe à 7.18€TTC. Tout va bien.
Mais pour 10 unités, on devrait avoir 60.00€HT soit 71.76€TTC, et on obtient bien 60.00€HT mais avec 71.80€TTC. Le total avec TVA est calculé comme la somme des prix TTC, sauf que ce prix est arrondi. Le total sera donc faux de quelques centimes à chaque fois si les commandes sont importantes.

Ne peut-on pas calculer la TVA à partir du total HT?

Autre solution, peut-on prendre en compte un tarif unitaire TTC avec plus de décimales, mais que ça ne s'affiche pas dans la boutique avec plus de 2 décimales?

Merci d'avance pour votre aide, j'ai bien cherché mais suis bloqué!

Bien cordialement,

Antoine.

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 10 months ago #18054

Le problème est que d'autres utilisateurs ne souhaitaient pas cela et donc nous avions modifié cela dans HikaShop.
En effet, ils avaient des problèmes avec leur clients se demandant pourquoi il y avait une différence de prix entre le prix unitaire fois la quantité et le total, surtout quand l'arrondi était dans l'autre sens...
Imaginez avec une prix TTC à €7.174 affiché à €7.17... Pour 10 produits achetés, le TTC devrait être de €71.74 mais le client, en multipliant lui même s'attend à payer €71.70 et donc il pense que le site web ne fonctionne pas et il n'achète pas.

Pour les solutions d'ecommerce il est plutot d'usage d'arrondir avant les calculs de quantité, comme HikaShop fait.
Quelques liens sur ces question d'arrondis avant ou après calcul de la quantité:
www.openerp.com/forum/post57694.html?sid...2b50249a6f9142bb0a04
www.prestashop.com/forums/viewthread/1302/

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
12 years 10 months ago #18077

Bonjour,

Merci beaucoup de votre réponse, et je comprend bien qu'il puisse y avoir deux "écoles" pour le calcul de la TVA. Une image en pièce jointe pour illustrer mon problème :

Sous total HT : 87.00 €
TVA : 17.10 €

Or 87.00 * 19.6% = 17.052, qui a été arrondi à 17.10.

Notre activité avec Hikashop arrive en complément d'une activité traditionnelle de vente, et on ne peut pas changer notre système de facturation.

Si je comprends bien, il est impossible de trouver ce compte en passant par Hikashop aujourd'hui, et nous allons devoir nous passer de ce merveilleux outil...?

J'en suis désolé, car le travail que vous avez effectué est formidable!

Bien cordialement,

Antoine.

Attachments:

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 10 months ago #18087

Il est toujours possible de changer cela... Si vous éditez les différentes vues d'hikashop qui affichent la TVA, il est possible de recalculer manuallement la TVA sur le sous total plutot que d'utiliser la version précalculée.

Par exemple, dans le fichier cart de la vue checkout que vous pouvez éditer via le menu Affichage->Vues, vous pouvez changer la ligne:
echo $this->currencyHelper->format($taxes,$this->full_total->prices[0]->price_currency_id);
en:
echo $this->currencyHelper->format($this->total->prices[0]->price_value*0.196,$this->full_total->prices[0]->price_currency_id);
pour afficher la ligne de TVA avec la façon de faire de votre système de facturation.
Le problème, c'est qu'il y a beaucoup d'endroits à changer, donc pas si simple...

Notez que vous pourrez avoir le même problème avec d'autres systèmes d'ecommerce. Notre façon de faire est plutôt la règle que l'exception dans les systèmes d'ecommerce alors que les systèmes de facturation utilisent plutôt l'autre méthode de calcul...

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
12 years 10 months ago #19116

Bonjour Nicolas,

Après de nombreux échanges avec notre comptable, il apparait impératif de tomber sur le bon total lors des commandes passant par hikashop.

Le nombre d'endroit à modifier est-il si important que ça pour calculer la TVA sur le total HT plutôt que sur chaque produit? Pensez-vous pouvoir en faire une liste?

Si c'est le cas, c'est formidable. Mais une question se pose : faudra-t-il refaire la manip après chaque mise à jour du composant?

Merci d'avance, bien cordialement,

Antoine.

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 10 months ago #19118

Il y a le fichier cart de la vue product pour le module de panier, le fichier cart de la vue checkout pour le passage en caisse. Les emails de notification qui sont à éditer via le menu Système->Emails (3 emails) dans la version Business.
Et ensuite le fichier show de la vue order du front end pour le détail de la commande et les fichiers show et invoice de la vue order pour les commandes et les factures dans le back end.
En gros une dizaines de modifications.
Les modifications sont gardées durant les mises à jour donc pas de soucis la dessus.

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
12 years 10 months ago #19128

Nicolas,

Merci de votre réponse. J'ai bien trouvé dans le fichier cart de la vue checkout :
echo $this->currencyHelper->format($taxes,$this->full_total->prices[0]->price_currency_id);

et la ligne est remplacée par :
echo $this->currencyHelper->format($this->total->prices[0]->price_value*0.196,$this->full_total->prices[0]->price_currency_id);

Parfait, lors du passage en caisse, les taxes sont "correctes". Mais bien entendu pas les totaux ni la facture... et je ne trouve pas la ligne:
echo $this->currencyHelper->format($taxes,$this->full_total->prices[0]->price_currency_id);

dans les autres fichiers indiqués. J'imagine qu'elle doit être légèrement différente.

Serait-il possible de m'indiquer la manip en détail, avec quelle ligne précisément à remplacer par quoi exactement, dans chacun des fichiers?

Merci de votre aide précieuse et de votre réactivité, cordialement,

Antoine.

Please Log in or Create an account to join the conversation.

  • Posts: 81564
  • Thank you received: 13071
  • MODERATOR
12 years 10 months ago #19136

Nous ne pouvons faire cela. Si le total n'est pas correct, c'est qu'il faut tout recalculé dans les fichiers core d'hikashop et pas seulement dans les vues.

Please Log in or Create an account to join the conversation.

  • Posts: 7
  • Thank you received: 0
12 years 10 months ago #19141

Mais la vue que j'ai réussi à changer dans le fichier cart/checkout a bien été modifiée, c'est juste que je ne trouve pas la ligne à remplacer dans les autres fichiers, non?

Le problème, c'est que dans les autres fichiers, je ne trouve pas la ligne que vous m'indiquez.

Ne suffit-il pas de changer la dizaine de vues que vous avez citées?

Please Log in or Create an account to join the conversation.

Time to create page: 0.109 seconds
Powered by Kunena Forum