Gladir.com - PHP5 - Gouvernement - Taxe de vente canadienne


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 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/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 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/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$


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



Dernière mise à jour: Mardi, le 7 février 2006