Application des taxes

Pour l’application des taxes, elle se fait en 2 sous étapes :

  1. Calcul des taxes par ligne de vente,
  2. Calcul total des taxes,

Pour ensuite calculer le montant à payer TTC.

Dans le panier, il faut distinguer les taxes sur les lignes de panier et les taxes sur le panier.

  • Une taxe sur une ligne de panier est une taxe calculée en fonction du montant HT de la ligne
  • Une taxe sur le panier est une taxe calculée en fonction du montant HT du panier regrouper par taxe.

Calcule des taxes par ligne de panier

Pour chaque ligne de vente, nous allons déterminer le montant de la taxe en fonction du montant HT après la réduction.

ATTENTION : Affecter le bon prix HT à la ligne de taxe

line.lineTaxe.amountHT = line.amountRealHT

Application des taxes
1 Calcul de la taxe en fonction du prix HT de ligne de taxe

line.lineTaxe.taxAmountExact = line.lineTaxe.amountHT * (lineTax.tax.amount / 100)

2 Arrondie de la taxe
lineTaxe.taxAmountReal = round(lineTaxe.taxAmountExact)

L’arrondie de la taxe n’est qu’à titre indicatif, la taxe pris en compte pour le montant à payer est le cumul des taxes exactes.

En parallèle, on alimente le montant HT sans réduction du panier.

basket.payment.totalHT = basket.payment.totalHT + line.amountHT

Pareil pour montant à payer HT avec réduction du panier.

basket.payment.totalHTDiscounted = basket.payment.totalHTDiscounted + line.amountRealHT

On alimente également le prix hors taxes des taxes du panier basket.taxesDetails.lineTaxe.amountHT.

TGC 11% TGC 3% TGC 22% Taxe ligne
Produit 1 HT 1000 1000 110
Produit 2 HT 1000 1000 220
Produit 3 HT 2000 2000 220
Montant HT pour les taxes paniers 3000 1000

Calcul total des taxes

Application des taxes
1 Calcul de des taxes du panier en fonction du cumul des prix HT

taxAmountExact = lineTaxe.amountHT * (lineTax.tax.amount / 100)

2 Arrondie de la taxe

taxAmountReal = round(lineTaxe.taxAmountExact)

L’arrondie de la taxe n’est qu’à titre indicatif, la taxe pris en compte pour le montant à payer est le cumul des taxes exactes.

TGC 11% TGC 3% TGC 22% Taxe ligne
Produit 1 HT 1000 1000 110
Produit 2 HT 1000 1000 220
Produit 3 HT 2000 2000 220
Montant HT pour les taxes paniers 3000 1000
Taxe panier 330 220 540

Après tous ces calculs, on affecte la listes de ces taxes globales au panier basket.payment.taxesDetails.

Calcul du montant à payer

Addition du prix HT à payer plus le montant des taxes totales exactes. Ce qui donne la montant à payer exact du TTC.

1 Calcul du montant à payer exact

basket.payment.totalExact = basket.payment.totalHTDiscount + total taxes

2 Arrondie le montant à payer.

basket.payment.totalWithTaxReal = round(basket.payment.totalExact)

Le montant à payer par l’utilisation sera le montant arrondie à payer.

Total
Montant HT 4000
Montant taxe 540
Montant à payer TTC 4540