Aller au contenu

Points d'extension

phil/tax

La bibliothèque est du PHP simple : elle ne déclare aucun service ni aucun port, et ses classes sont finales. Elle calcule et détaille ; le choix des taux qui s'appliquent revient à l'application, et parvient à la bibliothèque sous forme d'arguments.

PointComment
Quels taux s'appliquentLa liste donnée à MultiRateTaxCalculator::calculate() ou extract() : un résolveur propre à l'application, tiré de la configuration ou d'un moteur de taxation externe, la construit avec TaxRate::of() ou TaxRate::ofPercent() — voir Choisir les taux
Des taxes déjà calculées par un moteurTaxLine::reported() conserve un montant tel qu'il a été donné ; les lignes sont rassemblées par TaxBreakdown::of() : la ventilation vérifie qu'elles partagent une même base et les conserve sans les recalculer
Notes de créditTaxBreakdown::reversed() inverse exactement le signe de chaque ligne, quelle que soit leur provenance
Intercepter les erreurs de la bibliothèqueChaque exception implémente Phil\Tax\Exception\TaxException : un seul catch couvre InvalidTaxRate, InvalidBreakdown et UntaxableBase

L'arrondi — à la moitié en s'éloignant de zéro, par ligne — fait partie du contrat de la bibliothèque et ne se remplace pas : un territoire qui arrondit autrement fournit ses lignes calculées ailleurs.