|
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:
| 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 PHP5:
<?
$Compute=array("C","C","C","C","S","C","S","S","S","S","C","S","S");
$TaxName1=array("TPS","TVH","TVH","TVH","TPS","TVH","TPS","TVH","TVH","TPS","TPS","TPS","TVH");
$TaxRate1=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);
$TaxName2=array("TVQ","","","","TVP","","TVP","","","TVP","TVP","TVP","");
$TaxRate2=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);
$RegionMID=array("QC","NS","NB","NF","BC","AB","MB","NT","NU","ON","PE","SK","YT");
$RegionName_EN=array("Quebec","Nova Scotia","New Brunswick","Newfoundland","British Columbia","Alberta","Manitoba","Northwest Territories","Nunavut","Ontario","Prince Edward Island","Saskatchewan","Yukon Territory");
$RegionName_FR=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");
echo "<TABLE>";
echo "<TR>";
echo "<TD><B>Nom de la province/territoire</B></TD>";
echo "<TD><B>MID</B></TD>";
echo "<TD><B>Taxe 1</B></TD>";
echo "<TD><B>Taxe 2</B></TD>";
echo "<TD><B>Taux</B></TD>";
echo "</TR>";
for($I=0;$I<count($RegionName_FR);$I++) {
echo "<TR>";
echo "<TD>" . $RegionName_FR[$I] . "</TD>";
echo "<TD>" . $RegionMID[$I] . "</TD>";
echo "<TD>" . $TaxName1[$I] . ":" . $TaxRate1[$I] . "%</TD>";
if($TaxName2[$I]=="") {
echo "<TD> </TD>";
} else {
echo "<TD>" . $TaxName2[$I] . ":" . $TaxRate2[$I] . "%</TD>";
}
echo "<TD>";
switch($Compute[$I]) {
case "S": //Séparé
echo strval($TaxRate1[$I]+$TaxRate2[$I]) . "%";
break;
case "C": //Composé
echo strval($TaxRate1[$I]+(($TaxRate2[$I]*(100+$TaxRate1[$I]))/100)) . "%";
break;
}
echo "</TD></TR>";
}
echo "</TABLE>"
?>
|
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 PHP:
<?
$Compute=array("C","C","C","C","S","C","S","S","S","S","C","S","S");
$TaxName1=array("TPS","TVH","TVH","TVH","TPS","TVH","TPS","TVH","TVH","TPS","TPS","TPS","TVH");
$TaxRate1=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);
$TaxName2=array("TVQ","","","","TVP","","TVP","","","TVP","TVP","TVP","");
$TaxRate2=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);
$RegionMID=array("QC","NS","NB","NF","BC","AB","MB","NT","NU","ON","PE","SK","YT");
$RegionName_EN=array("Quebec","Nova Scotia","New Brunswick","Newfoundland","British Columbia","Alberta","Manitoba","Northwest Territories","Nunavut","Ontario","Prince Edward Island","Saskatchewan","Yukon Territory");
$RegionName_FR=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");
echo "<TABLE>";
echo "<TR>";
echo "<TD><B>Nom de la province/territoire</B></TD>";
echo "<TD><B>Taxe 1</B></TD>";
echo "<TD><B>Taxe 2</B></TD>";
echo "<TD><B>Taux</B></TD>";
echo "<TD><B>1$</B></TD>";
echo "<TD><B>15$</B></TD>";
echo "<TD><B>44,95$</B></TD>";
echo "<TD><B>100$</B></TD>";
echo "</TR>";
for($I=0;$I<count($RegionName_FR);$I++) {
echo "<TR>";
echo "<TD>" . $RegionName_FR[$I] . "</TD>";
echo "<TD>" . $TaxName1[$I] . ":" . $TaxRate1[$I] . "%</TD>";
if($TaxName2[$I]=="") {
echo "<TD> </TD>";
} else {
echo "<TD>" . $TaxName2[$I] . ":" . $TaxRate2[$I] . "%</TD>";
}
echo "<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;
}
echo strval($Tax) . "%";
echo "</TD>";
echo "<TD>" . strval(1*(1+($Tax/100))) . "$</TD>";
echo "<TD>" . strval(15*(1+($Tax/100))) . "$</TD>";
echo "<TD>" . strval(44.95*(1+($Tax/100))) . "$</TD>";
echo "<TD>" . strval(100*(1+($Tax/100))) . "$</TD>";
echo "</TR>";
}
echo "</TABLE>";
?>
|
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$ |
|
Voir également
ASP 3.0 - Gouvernement - Taxe de vente canadienne,
DB2 - Gouvernement - Taxe de vente canadienne,
Java - Gouvernement - Taxe de vente canadienne,
Oracle - Gouvernement - Taxe de vente canadienne,
Ruby - Gouvernement - Taxe de vente canadienne,
Sybase - Gouvernement - Taxe de vente canadienne
|