Section courante

A propos

Section administrative du site

Le Canada est sans doute l'un des pays ou les taxes de vente sur les produits et services sont les plus compliqués à appliquer. Et pour cause : Elle varie d'une province ou territoire à l'autre, elle est parfois composé ou séparé. Voici leur représentation en date du mois septembre de l'années 2006 :

Province/Territoire Taxe 1 Taxe 2 Taux
Alberta TVH: 6% Aucune 6%
Colombie-Britanique TVH: 6% TVP: 7% 13%
Ile-du-Prince-Édouard TPS: 6% TVP: 10% 16.6%
Manitoba TPS: 6% TVP: 7% 13%
Nouveau-Brunswick TVH: 14% Aucune 14%
Nouvelle-Écosse TVH: 14% Aucune 14%
Nunavut TVH: 6% Aucune 6%
Ontario TPS: 6% TVP: 8% 14%
Québec TPS: 6% TVQ: 7.5% 13.95%
Saskatchewan TPS: 6% TVP: 7% 13%
Terre-Neuve/Labrador TVH: 14% Aucune 14%
Territoire du Nord Ouest TVH: 6% Aucune 6%
Territoire du Yukon TVH: 6% Aucune 6%

Tout d'abord, voici un premier exemple permet d'afficher des données complètes sur les taxes en LotusScript :

  1. Function Empattement(Byval Chaine As String, Byval Espace As Integer) As String
  2.      Empattement = Chaine & Space$(Espace - Len(Chaine))
  3. End Function 
  4.  
  5. Sub Main()
  6.      Dim Compute(0 To 12)  As String
  7.      Dim TaxName1(0 To 12) As String
  8.      Dim TaxRate1(0 To 12) As Double
  9.      Dim TaxName2(0 To 12) As String
  10.      Dim TaxRate2(0 To 12) As Double
  11.      Dim RegionMID(0 To 12) As String
  12.      Dim RegionName_EN(0 To 12) As String
  13.      Dim RegionName_FR(0 To 12) As String
  14.      Compute(0) = "C"
  15.      Compute(1) = "C"
  16.      Compute(2) = "C"
  17.      Compute(3) = "C"
  18.      Compute(4) = "S"
  19.      Compute(5) = "C"
  20.      Compute(6) = "S"
  21.      Compute(7) = "S"
  22.      Compute(8) ="S"
  23.      Compute(9) = "S"
  24.      Compute(10) = "C"
  25.      Compute(11) = "S"
  26.      Compute(12) = "S"
  27.      TaxName1(0) = "TPS"
  28.      TaxName1(1) ="TVH"
  29.      TaxName1(2) = "TVH"
  30.      TaxName1(3) ="TVH"
  31.      TaxName1(4) ="TPS"
  32.      TaxName1(5) ="TVH"
  33.      TaxName1(6) ="TPS"
  34.      TaxName1(7) ="TVH"
  35.      TaxName1(8) ="TVH"
  36.      TaxName1(9) ="TPS"
  37.      TaxName1(10) ="TPS"
  38.      TaxName1(11) ="TPS"
  39.      TaxName1(12) ="TVH"
  40.      TaxRate1(0)=6.0000
  41.      TaxRate1(1)=14.0000
  42.      TaxRate1(2)=14.0000
  43.      TaxRate1(3)=14.0000
  44.      TaxRate1(4)=6.0000
  45.      TaxRate1(5)=6.0000
  46.      TaxRate1(6)=6.0000
  47.      TaxRate1(7)=6.0000
  48.      TaxRate1(8)=6.0000
  49.      TaxRate1(9)=6.0000
  50.      TaxRate1(10)=6.0000
  51.      TaxRate1(11)=6.0000
  52.      TaxRate1(12)=6.0000
  53.      TaxName2(0)="TVQ"
  54.      TaxName2(1)=""
  55.      TaxName2(2)=""
  56.      TaxName2(3)=""
  57.      TaxName2(4)="TVP"
  58.      TaxName2(5)=""
  59.      TaxName2(6)="TVP"
  60.      TaxName2(7)=""
  61.      TaxName2(8)=""
  62.      TaxName2(9)="TVP"
  63.      TaxName2(10)="TVP"
  64.      TaxName2(11)="TVP"
  65.      TaxName2(12)=""
  66.      TaxRate2(0)=7.5000
  67.      TaxRate2(1)=0.0000
  68.      TaxRate2(2)=0.0000
  69.      TaxRate2(3)=0.0000
  70.      TaxRate2(4)=7.0000
  71.      TaxRate2(5)=0.0000
  72.      TaxRate2(6)=7.0000
  73.      TaxRate2(7)=0.0000
  74.      TaxRate2(8)=0.0000
  75.      TaxRate2(9)=8.0000
  76.      TaxRate2(10)=10.0000
  77.      TaxRate2(11)=7.0000
  78.      TaxRate2(12)=0.0000
  79.      RegionMID(0)="QC"
  80.      RegionMID(1)="NS"
  81.      RegionMID(2)="NB"
  82.      RegionMID(3)="NF"
  83.      RegionMID(4)="BC"
  84.      RegionMID(5)="AB"
  85.      RegionMID(6)="MB"
  86.      RegionMID(7)="NT"
  87.      RegionMID(8)="NU"
  88.      RegionMID(9)="ON"
  89.      RegionMID(10)="PE"
  90.      RegionMID(11)="SK"
  91.      RegionMID(12)="YT"
  92.      RegionName_EN(0)="Quebec"
  93.      RegionName_EN(1)="Nova Scotia"
  94.      RegionName_EN(2)="New Brunswick"
  95.      RegionName_EN(3)="Newfoundland"
  96.      RegionName_EN(4)="British Columbia"
  97.      RegionName_EN(5)="Alberta"
  98.      RegionName_EN(6)="Manitoba"
  99.      RegionName_EN(7)="Northwest Territories"
  100.      RegionName_EN(8)="Nunavut"
  101.      RegionName_EN(9)="Ontario"
  102.      RegionName_EN(10)="Prince Edward Island"
  103.      RegionName_EN(11)="Saskatchewan"
  104.      RegionName_EN(12)="Yukon Territory"
  105.      RegionName_FR(0)="Québec"
  106.      RegionName_FR(1)="Nouvelle-Écosse"
  107.      RegionName_FR(2)="Nouveau-Brunswick"
  108.      RegionName_FR(3)="Terre-Neuve/Labrador"
  109.      RegionName_FR(4)="Colombie-Britanique"
  110.      RegionName_FR(5)="Alberta"
  111.      RegionName_FR(6)="Manitoba"
  112.      RegionName_FR(7)="Territoire du Nord Ouest"
  113.      RegionName_FR(8)="Nunavut"
  114.      RegionName_FR(9)="Ontario"
  115.      RegionName_FR(10)="Ile-du-Prince-Édouard"
  116.      RegionName_FR(11)="Saskatchewan"
  117.      RegionName_FR(12)="Territoire du Yukon"
  118.      Print "Nom de la province/territoire MID Taxe 1 Taxe 2 Taux"
  119.      For I = Lbound(Compute) To Ubound(Compute)
  120.           Print Empattement(RegionName_FR(I), 31);
  121.           Print Empattement(RegionMID(I), 5);
  122.           Print TaxName1(I) & ":" & TaxRate1(I) & "%" & " ";
  123.           If TaxName2(I) = "" Then
  124.                Print Spc( 10);
  125.           Else
  126.                Print Empattement(TaxName2(I) & ":" & TaxRate2(I) & "%", 10);
  127.           End If
  128.           Select Case Compute(I)
  129.           Case "S" 'Séparé
  130.                Print TaxRate1(I) + TaxRate2(I) & "%" & " "
  131.           Case "C" 'Composé
  132.                Print TaxRate1(I) + ((TaxRate2(I) * (100 + TaxRate1(I))) / 100) & "%" & " "
  133.           End Select
  134.      Next 
  135. End Sub

on obtiendra le résultat suivant :

Nom de la province/territoireMIDTaxe 1Taxe 2Taux
QuébecQCTPS:6%TVQ:7.5%13.95%
Nouvelle-ÉcosseNSTVH:14% 14%
Nouveau-BrunswickNBTVH:14% 14%
Terre-Neuve/LabradorNFTVH:14% 14%
Colombie-BritaniqueBCTPS:6%TVP:7%13%
AlbertaABTVH:6% 6%
ManitobaMBTPS:6%TVP:7%13%
Territoire du Nord OuestNTTVH:6% 6%
NunavutNUTVH:6% 6%
OntarioONTPS:6%TVP:8%14%
Ile-du-Prince-ÉdouardPETPS:6%TVP:10%16.6%
SaskatchewanSKTPS:6%TVP:7%13%
Territoire du YukonYTTVH:6% 6%

Ensuite, voici un deuxième exemple permet de calculer la taxe de vente d'un produit ou service en fonction des provinces ou territoires en LotusScript:

  1. Function Empattement(Byval Chaine As String, Byval Espace As Integer) As String
  2.      Empattement = Chaine &Space$(Espace - Len(Chaine))
  3. End Function 
  4.  
  5. Sub Main()
  6.      Dim Compute(0 To 12)  As String
  7.      Dim TaxName1(0 To 12) As String
  8.      Dim TaxRate1(0 To 12) As Double
  9.      Dim TaxName2(0 To 12) As String
  10.      Dim TaxRate2(0 To 12) As Double
  11.      Dim RegionMID(0 To 12) As String
  12.      Dim RegionName_EN(0 To 12) As String
  13.      Dim RegionName_FR(0 To 12) As String
  14.      Dim I As Integer
  15.      Compute(0) = "C"
  16.      Compute(1) = "C"
  17.      Compute(2) = "C"
  18.      Compute(3) = "C"
  19.      Compute(4) = "S"
  20.      Compute(5) = "C"
  21.      Compute(6) = "S"
  22.      Compute(7) = "S"
  23.      Compute(8) ="S"
  24.      Compute(9) = "S"
  25.      Compute(10) = "C"
  26.      Compute(11) = "S"
  27.      Compute(12) = "S"
  28.      TaxName1(0) = "TPS"
  29.      TaxName1(1) ="TVH"
  30.      TaxName1(2) = "TVH"
  31.      TaxName1(3) ="TVH"
  32.      TaxName1(4) ="TPS"
  33.      TaxName1(5) ="TVH"
  34.      TaxName1(6) ="TPS"
  35.      TaxName1(7) ="TVH"
  36.      TaxName1(8) ="TVH"
  37.      TaxName1(9) ="TPS"
  38.      TaxName1(10) ="TPS"
  39.      TaxName1(11) ="TPS"
  40.      TaxName1(12) ="TVH"
  41.      TaxRate1(0)=6.0000
  42.      TaxRate1(1)=14.0000
  43.      TaxRate1(2)=14.0000
  44.      TaxRate1(3)=14.0000
  45.      TaxRate1(4)=6.0000
  46.      TaxRate1(5)=6.0000
  47.      TaxRate1(6)=6.0000
  48.      TaxRate1(7)=6.0000
  49.      TaxRate1(8)=6.0000
  50.      TaxRate1(9)=6.0000
  51.      TaxRate1(10)=6.0000
  52.      TaxRate1(11)=6.0000
  53.      TaxRate1(12)=6.0000
  54.      TaxName2(0)="TVQ"
  55.      TaxName2(1)=""
  56.      TaxName2(2)=""
  57.      TaxName2(3)=""
  58.      TaxName2(4)="TVP"
  59.      TaxName2(5)=""
  60.      TaxName2(6)="TVP"
  61.      TaxName2(7)=""
  62.      TaxName2(8)=""
  63.      TaxName2(9)="TVP"
  64.      TaxName2(10)="TVP"
  65.      TaxName2(11)="TVP"
  66.      TaxName2(12)=""
  67.      TaxRate2(0)=7.5000
  68.      TaxRate2(1)=0.0000
  69.      TaxRate2(2)=0.0000
  70.      TaxRate2(3)=0.0000
  71.      TaxRate2(4)=7.0000
  72.      TaxRate2(5)=0.0000
  73.      TaxRate2(6)=7.0000
  74.      TaxRate2(7)=0.0000
  75.      TaxRate2(8)=0.0000
  76.      TaxRate2(9)=8.0000
  77.      TaxRate2(10)=10.0000
  78.      TaxRate2(11)=7.0000
  79.      TaxRate2(12)=0.0000
  80.      RegionMID(0)="QC"
  81.      RegionMID(1)="NS"
  82.      RegionMID(2)="NB"
  83.      RegionMID(3)="NF"
  84.      RegionMID(4)="BC"
  85.      RegionMID(5)="AB"
  86.      RegionMID(6)="MB"
  87.      RegionMID(7)="NT"
  88.      RegionMID(8)="NU"
  89.      RegionMID(9)="ON"
  90.      RegionMID(10)="PE"
  91.      RegionMID(11)="SK"
  92.      RegionMID(12)="YT"
  93.      RegionName_EN(0)="Quebec"
  94.      RegionName_EN(1)="Nova Scotia"
  95.      RegionName_EN(2)="New Brunswick"
  96.      RegionName_EN(3)="Newfoundland"
  97.      RegionName_EN(4)="British Columbia"
  98.      RegionName_EN(5)="Alberta"
  99.      RegionName_EN(6)="Manitoba"
  100.      RegionName_EN(7)="Northwest Territories"
  101.      RegionName_EN(8)="Nunavut"
  102.      RegionName_EN(9)="Ontario"
  103.      RegionName_EN(10)="Prince Edward Island"
  104.      RegionName_EN(11)="Saskatchewan"
  105.      RegionName_EN(12)="Yukon Territory"
  106.      RegionName_FR(0)="Québec"
  107.      RegionName_FR(1)="Nouvelle-Écosse"
  108.      RegionName_FR(2)="Nouveau-Brunswick"
  109.      RegionName_FR(3)="Terre-Neuve/Labrador"
  110.      RegionName_FR(4)="Colombie-Britanique"
  111.      RegionName_FR(5)="Alberta"
  112.      RegionName_FR(6)="Manitoba"
  113.      RegionName_FR(7)="Territoire du Nord Ouest"
  114.      RegionName_FR(8)="Nunavut"
  115.      RegionName_FR(9)="Ontario"
  116.      RegionName_FR(10)="Ile-du-Prince-Édouard"
  117.      RegionName_FR(11)="Saskatchewan"
  118.      RegionName_FR(12)="Territoire du Yukon" 
  119.      
  120.      Print "Nom de la province/territoire Taxe 1 Taxe 2 Taux 1$ 15$ 44,95$ 100$"
  121.      For I = Lbound(Compute) To Ubound(Compute) 
  122.           Dim Tax As Double
  123.           Tax = 0
  124.           Print Empattement(RegionName_FR(I), 31);
  125.           Print TaxName1(I)  & ":" & TaxRate1(I) & "%" & " ";
  126.           If TaxName2(I) = "" Then
  127.                Print Spc(10);
  128.           Else
  129.                Print Empattement(TaxName2(I) & ":" & TaxRate2(I), 10);
  130.           End If
  131.           Select Case Compute(I)
  132.           Case "S" 'Séparé
  133.                Tax = TaxRate1(I) + TaxRate2(I)
  134.           Case "C" 'Composé
  135.                Tax = TaxRate1(I) + ((TaxRate2(I) * (100 + TaxRate1(I))) / 100)
  136.           End Select
  137.           Print (Tax) & "%" & " ";
  138.           Print (1 * (1 + (Tax / 100))) & "$ ";
  139.           Print (15 * (1 + (Tax / 100))) & "$ ";
  140.           Print (44.95 * (1 + (Tax / 100))) & "$ ";
  141.           Print (100 * (1 + (Tax / 100))) & "$ "
  142.      Next
  143. End Sub

on obtiendra le résultat suivant :

Nom de la province/territoireTaxe 1Taxe 2Taux1$15$44,95$100$
QuébecTPS:6%TVQ:7.5%13.95%1.1395$17.0925$51.220525$113.95$
Nouvelle-ÉcosseTVH:14% 14%1.14$17.1$51.243$114$
Nouveau-BrunswickTVH:14% 14%1.14$17.1$51.243$114$
Terre-Neuve/LabradorTVH:14% 14%1.14$17.1$51.243$114$
Colombie-BritaniqueTPS:6%TVP:7%13%1.13$16.95$50.7935$113$
AlbertaTVH:6% 6%1.06$15.9$47.647$106$
ManitobaTPS:6%TVP:7%13%1.13$16.95$50.7935$113$
Territoire du Nord OuestTVH:6% 6%1.06$15.9$47.647$106$
NunavutTVH:6% 6%1.06$15.9$47.647$106$
OntarioTPS:6%TVP:8%14%1.14$17.1$51.243$114$
Ile-du-Prince-ÉdouardTPS:6%TVP:10%16.6%1.166$17.49$52.4117$116.6$
SaskatchewanTPS:6%TVP:7%13%1.13$16.95$50.7935$113$
Territoire du YukonTVH:6% 6%1.06$15.9$47.647$106$


Dernière mise à jour : Dimanche, le 18 janvier 2015