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ée 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 JavaScript :
- <script type="text/javascript" language="javascript">
- var Compute=new Array("C","C","C","C","S","C","S","S","S","S","C","S","S");
- var TaxName1=new Array("TPS","TVH","TVH","TVH","TPS","TVH","TPS","TVH","TVH","TPS","TPS","TPS","TVH");
- var TaxRate1=new Array(6.0000,14.0000,14.0000,14.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000);
- var TaxName2=new Array("TVQ","","","","TVP","","TVP","","","TVP","TVP","TVP","");
- var TaxRate2=new Array(7.5000,0.0000,0.0000,0.0000,7.0000,0.0000,7.0000,0.0000,0.0000,8.0000,10.0000,7.0000,0.0000);
- var RegionMID=new Array("QC","NS","NB","NF","BC","AB","MB","NT","NU","ON","PE","SK","YT");
- var RegionName_EN=new Array("Quebec","Nova Scotia","New Brunswick","Newfoundland","British Columbia","Alberta","Manitoba","Northwest Territories","Nunavut","Ontario","Prince Edward Island","Saskatchewan","Yukon Territory");
- var RegionName_FR=new Array("Québec","Nouvelle-Écosse","Nouveau-Brunswick","Terre-Neuve/Labrador","Colombie-Britanique","Alberta","Manitoba","Territoire du Nord Ouest","Nunavut","Ontario","Ile-du-Prince-Édouard","Saskatchewan","Territoire du Yukon");
-
- document.write("<TABLE>");
- document.write("<TR>");
- document.write("<TD><B>Nom de la province/territoire</B></TD>");
- document.write("<TD><B>MID</B></TD>");
- document.write("<TD><B>Taxe 1</B></TD>");
- document.write("<TD><B>Taxe 2</B></TD>");
- document.write("<TD><B>Taux</B></TD>");
- document.write("</TR>");
- for(var I=0;I<Compute.length;I++) {
- document.write("<TR>");
- document.write("<TD>"+RegionName_FR[I]+"</TD>");
- document.write("<TD>"+RegionMID[I]+"</TD>");
- document.write("<TD>"+TaxName1[I] + ":" + TaxRate1[I] + "%" + "</TD>");
- if(TaxName2[I]=="") {
- document.write("<TD> </TD>");
- } else {
- document.write("<TD>"+TaxName2[I] + ":" + TaxRate2[I] + "</TD>");
- }
- document.write("<TD>");
- switch(Compute[I]) {
- case 'S': //Séparé
- document.write((TaxRate1[I]+TaxRate2[I]) + "%");
- break;
- case 'C': //Composé
- document.write((TaxRate1[I]+((TaxRate2[I]*(100+TaxRate1[I]))/100)) + "%");
- break;
- }
- document.write("</TD></TR>");
- }
-
- </script>
on obtiendra le résultat suivant :
Nom de la province/territoire | MID | Taxe 1 | Taxe 2 | Taux |
Québec | QC | TPS:6% | TVQ:7.5% | 13.95% |
Nouvelle-Écosse | NS | TVH:14% | 14% | |
Nouveau-Brunswick | NB | TVH:14% | 14% | |
Terre-Neuve/Labrador | NF | TVH:14% | 14% | |
Colombie-Britanique | BC | TPS:6% | TVP:7% | 13% |
Alberta | AB | TVH:6% | 6% | |
Manitoba | MB | TPS:6% | TVP:7% | 13% |
Territoire du Nord Ouest | NT | TVH:6% | 6% | |
Nunavut | NU | TVH:6% | 6% | |
Ontario | ON | TPS:6% | TVP:8% | 14% |
Ile-du-Prince-Édouard | PE | TPS:6% | TVP:10% | 16.6% |
Saskatchewan | SK | TPS:6% | TVP:7% | 13% |
Territoire du Yukon | YT | TVH: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 JavaScript :
- <script type="text/javascript" language="javascript">
- var Compute=new Array("C","C","C","C","S","C","S","S","S","S","C","S","S");
- var TaxName1=new Array("TPS","TVH","TVH","TVH","TPS","TVH","TPS","TVH","TVH","TPS","TPS","TPS","TVH");
- var TaxRate1=new Array(6.0000,14.0000,14.0000,14.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000,6.0000);
- var TaxName2=new Array("TVQ","","","","TVP","","TVP","","","TVP","TVP","TVP","");
- var TaxRate2=new Array(7.5000,0.0000,0.0000,0.0000,7.0000,0.0000,7.0000,0.0000,0.0000,8.0000,10.0000,7.0000,0.0000);
- var RegionMID=new Array("QC","NS","NB","NF","BC","AB","MB","NT","NU","ON","PE","SK","YT");
- var RegionName_EN=new Array("Quebec","Nova Scotia","New Brunswick","Newfoundland","British Columbia","Alberta","Manitoba","Northwest Territories","Nunavut","Ontario","Prince Edward Island","Saskatchewan","Yukon Territory");
- var RegionName_FR=new Array("Québec","Nouvelle-Écosse","Nouveau-Brunswick","Terre-Neuve/Labrador","Colombie-Britanique","Alberta","Manitoba","Territoire du Nord Ouest","Nunavut","Ontario","Ile-du-Prince-Édouard","Saskatchewan","Territoire du Yukon");
-
- document.write("<TABLE>");
- document.write("<TR>");
- document.write("<TD><B>Nom de la province/territoire</B></TD>");
- document.write("<TD><B>Taxe 1</B></TD>");
- document.write("<TD><B>Taxe 2</B></TD>");
- document.write("<TD><B>Taux</B></TD>");
- document.write("<TD><B>1$</B></TD>");
- document.write("<TD><B>15$</B></TD>");
- document.write("<TD><B>44,95$</B></TD>");
- document.write("<TD><B>100$</B></TD>");
- document.write("</TR>" );
- for(var I=0;I<Compute.length;I++) {
- var Tax = 0;
- document.write("<TR>");
- document.write("<TD>"+RegionName_FR[I]+"</TD>");
- document.write("<TD>"+TaxName1[I] + ":" + TaxRate1[I] + "%" +"</TD>");
- if(TaxName2[I]=="") {
- document.write("<TD> </TD>");
- } else {
- document.write("<TD>"+TaxName2[I] + ":" + TaxRate2[I]+"</TD>");
- }
- switch(Compute[I]) {
- case 'S': //Séparé
- Tax = TaxRate1[I]+TaxRate2[I];
- break;
- case 'C': //Composé
- Tax = TaxRate1[I]+((TaxRate2[I]*(100+TaxRate1[I]))/100);
- break;
- }
- document.write("</TD>");
- document.write("<TD>"+(Tax) + "%" + "</TD>");
- document.write("<TD>"+(1*(1+(Tax/100))) + "$</TD>");
- document.write("<TD>"+(15*(1+(Tax/100))) + "$</TD>");
- document.write("<TD>"+(44.95*(1+(Tax/100))) + "$</TD>");
- document.write("<TD>"+(100*(1+(Tax/100))) + "$</TD>");
- document.write("</TR>");
- }
- </script>
on obtiendra le résultat suivant :
Nom de la province/territoire | Taxe 1 | Taxe 2 | Taux | 1$ | 15$ | 44,95$ | 100$ |
Québec | TPS:6% | TVQ:7.5% | 13.95% | 1.1395$ | 17.0925$ | 51.220525$ | 113.95$ |
Nouvelle-Écosse | TVH:14% | 14% | 1.14$ | 17.1$ | 51.243$ | 114$ | |
Nouveau-Brunswick | TVH:14% | 14% | 1.14$ | 17.1$ | 51.243$ | 114$ | |
Terre-Neuve/Labrador | TVH:14% | 14% | 1.14$ | 17.1$ | 51.243$ | 114$ | |
Colombie-Britanique | TPS:6% | TVP:7% | 13% | 1.13$ | 16.95$ | 50.7935$ | 113$ |
Alberta | TVH:6% | 6% | 1.06$ | 15.9$ | 47.647$ | 106$ | |
Manitoba | TPS:6% | TVP:7% | 13% | 1.13$ | 16.95$ | 50.7935$ | 113$ |
Territoire du Nord Ouest | TVH:6% | 6% | 1.06$ | 15.9$ | 47.647$ | 106$ | |
Nunavut | TVH:6% | 6% | 1.06$ | 15.9$ | 47.647$ | 106$ | |
Ontario | TPS:6% | TVP:8% | 14% | 1.14$ | 17.1$ | 51.243$ | 114$ |
Ile-du-Prince-Édouard | TPS:6% | TVP:10% | 16.6% | 1.166$ | 17.49$ | 52.4117$ | 116.6$ |
Saskatchewan | TPS:6% | TVP:7% | 13% | 1.13$ | 16.95$ | 50.7935$ | 113$ |
Territoire du Yukon | TVH:6% | 6% | 1.06$ | 15.9$ | 47.647$ | 106$ |
Dernière mise à jour : Mercredi, le 5 octobre 2011