iem-quoteplayer-js
v8.5.0
Published
Une librairie TypeScript pour la gestion des tarifs
Maintainers
Readme
iem-quoteplayer-js
iem-quoteplayer-js est une librairie TypeScript permettant de gérer des grilles tarifaires complexes, de calculer des devis précis à partir de segments tarifaires, d'appliquer la TVA, des frais, et de générer des devis selon une durée ou un montant.
Sommaire
Installation
npm install iem-quoteplayer-jsFonctionnalités
- Définition de tables de segments tarifaires (linéaires ou forfaitaires)
- Application de paramètres de calcul : TVA, frais fixes ou en pourcentage, arrondis, etc.
- Génération dynamique de devis à partir d'une durée ou d'un montant
- Détail des calculs (montants, TVA, frais, etc.)
- Métadonnées personnalisables pour chaque devis
Exemples d'utilisation
Initialisation à partir d'une durée
import { initFromDuration } from "iem-quoteplayer-js";
const quote = initFromDuration({
startDate: "2024-06-01T12:00:00Z",
table: [
{ a: 100, d: 3600, l: true, dt: "np" }, // 1h linéaire non-proratisé
{ a: 50, d: 1800, l: false, dt: "p" }, // 30min forfaitaire proratisé
],
parameters: {
durationStep: 60, // pas de 1 minute
vat: 20, // TVA 20%
fees: {
minimumFee: 1, // frais minimum
percentageFee: 2, // 2% de frais
vatFee: 20, // TVA sur les frais
},
},
metadata: {
some: "informations",
},
});Calcul d'un devis
const result = quote(5400); // 1h30 (5400 secondes)
console.log(result);Exemple de résultat :
{
"StartDate": "2024-06-01T12:00:00Z",
"EndDate": "2024-06-01T13:30:00Z",
"Amount": 153,
"Duration": 5400,
"DurationDetails": { "np": 3600, "p": 1800, "f": 0 },
"AmountDetails": [
{ "type": "COST", "amount": 127.5 },
{ "type": "COST_VAT", "amount": 25.5, "rate": 20 },
{ "type": "FEES", "amount": 2.55 },
{ "type": "FEES_VAT", "amount": 0.51, "rate": 20 }
],
"IsValid": true,
"IsLinear": true,
"IsFree": false,
"IsForfait": false,
"Metadata": {
"some": "informations",
"color": "#008800"
}
}Développement
# Installer les dépendances
npm install
# Lancer les tests unitaires
npm test
# Vérifier le lint
npm run lint
# Générer le build
npm run buildLicence
MIT
N'hésitez pas à enrichir ce README avec d'autres exemples ou à consulter les tests unitaires pour des scénarios avancés.
