2010-11-30 23 views
1

Avec le taux de TVA au Royaume-Uni en raison du changement dans la nouvelle année, plusieurs clients devront mettre à jour leurs sites au nouveau taux de TVA. Comme les prix sont tous stockés dans une table MySQL (hors TVA), la modification du taux de TVA réelle est un simple indicateur dans le back-end de la plupart des sites, mais cela laisse des prix « laid » £ 10,87, plutôt que 10,99 £.TVA changements - comment changer la TVA et prix Rafle

Je voudrais lancer une requête sur les prix pour modifier les prix de sorte que tous les nouveaux prix (lorsque le nouveau taux de TVA est ajouté) sont des prix «gentils» plutôt que des prix moches.

Par exemple:

Prix actuel (hors TVA): £ 8.50

Prix actuel (TVA @ 17,5%): 9,99 £

Nouveau Prix (TVA à 20%): £ 10.20

Prix souhaité (TVA @ 20%): 10,99 £

+0

Aïe pour le consommateur - non seulement une taxe supplémentaire de 2,5%, mais aussi une augmentation de 7% juste pour le nombre air agréable;) – StuartLC

+4

Sûrement le prix « nice » à 20% de TVA serait encore « £ 9.99 ". L'utilisation de l'augmentation de la TVA pour réaliser un bénéfice additionnel de 79p (une hausse de 7,75%) n'est ni agréable ni susceptible de passer inaperçue parmi les clients existants. Pas une réponse de développeur mais nous sommes aussi des consommateurs :) – Lazarus

Répondre

1

si vous souhaitez toujours comme les prix avec .99, il devrait être assez facile à faire:

update articles set price = round((ceil(8.50 * 1.2) - 0.01)/1.2, 2); 

preuve:

mysql> select round((ceil(8.50 * 1.2) - 0.01)/1.2, 2) as price; 
+-------+ 
| price | 
+-------+ 
| 9.16 | 
+-------+ 
1 row in set (0.00 sec) 

en faveur des prix compétitifs vous pourriez aussi envisager floor(x) au lieu de ceil(x) bien;)

+1

Vous devez de nouveau diviser par 1.2 parce que dans la base de données les prix sont stockés hors taxes. – AndreKR

+0

@andre vous avez raison bien sûr. Je le fixais déjà pendant que vous commentiez. – sfussenegger

+0

Spot sur. Merci beaucoup. Je vais donner un coup (jeudi) et confirmer résolu alors. – Jeepstone

1

Bien qu'il soit malhonnête de vos clients pour essayer de déguiser une hausse des prix en tant que Augmentation de la TVA, vous pouvez utiliser quelque chose comme CEIL (qui arrondit une décimale jusqu'à l'entier le plus proche), puis - 0.01.

+0

Oui, j'apprécie que c'est la façon dont il semble, mais vous trouverez que la plupart des détaillants gardera leurs prix à £ 0,99 après le changement. Je suppose qu'ils choisissent d'absorber le coût ou de le répercuter. – Jeepstone

+0

Je comprends le raisonnement, mais je le sentais toujours malhonnête. J'ai donné une réponse, cependant, ce que vous faites avec votre entreprise dépend de vous. Je m'attends à ce que la plupart des petits détaillants absorbent ce changement, tout comme ils n'ont pas baissé les prix lorsque la TVA était de 15% l'année dernière. Pour les articles de 10 £, une diminution de 0,20 £ de la marge bénéficiaire semblerait probablement favorable (avec l'avantage marketing de dire «nous gèlons la cuve») par rapport à des clients réguliers dérangeants. – TZHX

+0

Je travaille pour le compte de notre client, c'est donc leur décision finale. Je suis d'accord avec votre argument. – Jeepstone

3
UPDATE products SET price = (CEIL(price*1.20)-0.01)/1.20 WHERE product_id = 123