Manipulation prix ttc,ht, float, decimal etc...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Manipulation prix ttc,ht, float, decimal etc...

Re: Manipulation prix ttc,ht, float, decimal etc...

par jojolapine » 11 oct. 2010, 14:53

Yé soui plou là... :-*

Re: Manipulation prix ttc,ht, float, decimal etc...

par stealth35 » 11 oct. 2010, 14:51

bah voilà ce que c'est que de courir après les version de dev! :) :p
c'est pas une version de dev la 5.3.3 :wink:

Re: Manipulation prix ttc,ht, float, decimal etc...

par jojolapine » 11 oct. 2010, 14:32

bah voilà ce que c'est que de courir après les version de dev! :) :p

Re: Manipulation prix ttc,ht, float, decimal etc...

par stealth35 » 11 oct. 2010, 14:30

presque HS mais j'ai pas le fonction money_format sur php 5.3.3 vc6 :shock:

Re: Manipulation prix ttc,ht, float, decimal etc...

par jojolapine » 11 oct. 2010, 14:21

Yes!

Merci je n'avais pas pensé à utiliser les exposants pour décaler la virgule! ça sera beaucoup plus rapide avec ta méthode!
Par contre je m'étonne qu'il n'y est pas de fonction spécifique ou d'option supplémentaire pour round(), afin d'effectuer ce type de traitement... :/

Merci encore ;)

Re: Manipulation prix ttc,ht, float, decimal etc...

par zeus » 11 oct. 2010, 14:14

Tiens, voilà ce que je m'étais fait comme méthode :
	static public function truncate($amount, $digit = 2)
	{
		// Construction du multiplicateur permettant de déplacer la virgule au niveau de précision que 
		//		l'on attend
		$multiplier = pow(10, $digit);
		
		// On retourne le montant tronqué à la précision demandée
		// Exemple : montant d'origine = 15.5698, $digit = 2
		// 15.5698 * (10^2) = 1556.98
		// floor(1556.98) = 1556
		// 1556 / (10^2) = 15.56
		// donc truncate(15.5698) = 15.56
		return floor($amount * $multiplier) / $multiplier;
	}

Re: Manipulation prix ttc,ht, float, decimal etc...

par jojolapine » 11 oct. 2010, 13:07

Salut à tous,

Je poursuis les changements en fonctions des précieux conseils de zeus (merci), petit à petit, je vous tiendrais au courant lorsque ça sera finit!

En attendant j'ai un petit soucis par rapport au "tronquage" des flottants...
Soit j'ai la berlu, soit il n'existe pas de fonction native à php permettant de tronquer un nombre à virgule en précisant la précision (... hum hum...)

Il n'y a que floor mais qui ne retourne que des entiers...
donc j'ai fait la fonction suivante:
function truncate_float($f_number,$i_precision=2){

  $s_multi = '1';
  for($i=0;$i<$i_precision;$i++){
    $s_multi.='0';
  }

  $i_tmp = floor($f_number*$s_multi);

  return $i_tmp / $s_multi;
}
Donc si vous avez mieux codé au encore mieux la fonction native, je suis preneur ;)

Merci d'avance!

Re: Manipulation prix ttc,ht, float, decimal etc...

par zeus » 07 oct. 2010, 18:12

La valeur en monnaie correspondante.

Si jamais tu dois pouvoir sortir des chiffres de ton application, il ne faut pas recalculer ce que tu as fait payer, mais sortir exactement ce que tu as mis sur sa facture.
La solution de stocker le montant HT et le montant de la TVA est donc plus que conseillé.

Re: Manipulation prix ttc,ht, float, decimal etc...

par jojolapine » 07 oct. 2010, 16:48

Merci pour toutes ces précisions!

Juste pour demander un peu plus, quand tu dis
Dans tout les cas, il faut stocker le montant HT, le montant de TVA appliquée pour pouvoir justifier de ce que l'on a vendu
Tu parles Du taux de TVA (ex: 19.6%) ou de la valeur en monnaie correspondante?

Re: Manipulation prix ttc,ht, float, decimal etc...

par zeus » 07 oct. 2010, 16:40

Je pense que, tout le monde ici, doit prendre conscience que les règles comptable sont transposables aux SI (systèmes informatiques) et que ce n'est pas au développeur de faire ce qu'il veut avec.

Je pourrais passer des heures à lister des règles, mais voici celles qui me semblent importantes :
  • Toujours stocker les montant facturés. Un montant facturé est le résultat d'un calcul. Ce calcul peut évoluer à travers le temps, il est donc important de stocker le montant exact facturé pour que tout réédition soit toujours exacte.
  • la règle comptable est de tronquer à 2 décimales, comme dans mon exemple (12.349999999€ => 13,34€)
  • Dans tout les cas, il faut stocker le montant HT, le montant de TVA appliquée pour pouvoir justifier de ce que l'on a vendu
Ensuite, à toi de faire avec ces règles, pour voir si elles te permettent de structurer ton application ou non (si tu dois pouvoir sortir des chiffres pour la déclaration de TVA ou pas, par exemple)

Re: Manipulation prix ttc,ht, float, decimal etc...

par Nours312 » 07 oct. 2010, 16:05

dans l'absolue, je dirais que tu devrais te concentrer sur ce que tu peux maitriser : le HT et la TVA à l'instant T !..

1. tu stockes tes produits HT
2. tu les joins à un taux de TVA lors de la vente (ou de toutes présentation)
3. lors d'une vente tu enregistre le montant HT de la vente et le montant de la TVA (ce sera plus pratique pour vérifier ta compta ensuite)

le TTC, tu t'en fou !... c'est commercial, mais ça n'a aucun intérêt pour toi, vu que le TVA c'est pas pour toi !

Ensuite, tu fais tes prix à 2 ou 3 chiffres après la virgule (comme le carburant ^^)
lorsque tu le présente tu réduit à deux chiffres (avec ou sans TVA) et si ses 2 chiffres sont 00, tu les vires ^^

Ainsi dans ton exemple, 29,0001 ... ben c'est 29€ ^^
comme ça si un jour tu veux faire une offre TVA Offerte, tu auras juste à creer une TVA à 0% et l'associer au produit
Heu .... ça c'est un argument commercial, en réalité il y a ne réduction de 19.6% ... par ce que je ne suis pas certain que les impots accepte que tu ne les payent pas même si tu ne revend pas leurs taxe, ils se foutent de ce que tu fait, ils veulent leur pognon ;)

Re: Manipulation prix ttc,ht, float, decimal etc...

par AoSiX » 07 oct. 2010, 15:53

- Quand on s'adresse à Mr Tout le monde, c'est TTC, donc on adapte le HT pour qu'il soit beau à voir une fois en TTC.
- Quand on s'adresse à des pros, c'est HT, donc le TTC importe peu.

Re: Manipulation prix ttc,ht, float, decimal etc...

par jojolapine » 07 oct. 2010, 15:36

Aie aie aie...
Je ne sais pas trop comment faire, en fait je stocke pour l'instant tout les prix en HT avec pleins de virgule dans la base, mais pour tout les affichages, j'arrondis au centième (que ce soit pour les utilisateurs, pour les documents comptables, les factures etc...)
J'ai pris le partit de stocker suffisamment de précision pour ne pas avoir à leur faire une facture avec un TTC de 289,99€.
En sachant que la majorité des clients payent le TTC et que seul un minorité paye le HT...

J'avoue que je suis un peu perdu... je regarde un peu partout et je vois que chez certains, c'est le HT qui est "rond" par exemple chez gandi:
Nom de domaine
testeuh.at (1 an)
18,00 €
Total HT 18,00 €
Total TTC 21,53 €
Donc ben la question reste entière :/

Merci encore!

Re: Manipulation prix ttc,ht, float, decimal etc...

par zeus » 07 oct. 2010, 15:21

D'un point de vue comptable, la norme est de ne stocker que des prix tronqués à 2 chiffres après la virgule.
Exemples :

Code : Tout sélectionner

12,3€ => 12.34€ 12,34€ => 12,34€ 12,341€ => 12,34€ 12,345€ => 12,34€ 12,349€ => 12,34€

Re: Manipulation prix ttc,ht, float, decimal etc...

par jojolapine » 07 oct. 2010, 14:53

Vu que je stocke finalement seulement les prix HT...
Mais qu'a l'affichage (sauf cas de personnes européennes, etc...) j'affiche un total TTC et que la grille des prix a été faite sur du TTC, ce sont ces derniers qui sont "rond".

Du coup pour mon produit à 29€ TTC (parce que la pub est comme ça, que les prix sont comme ça pour l'instant, etc...), le prix que vais stocker dans ma bdd et 29/1.196...
Voilà pourquoi je cherche un peu de précision ;)