💰 Module Tarification

Tarification 3 méthodes

Paramétrage des prix de vente dans Anim'Gest — COEF FG + MARGE, COEF VTE et PRIX DIRECT. Applicable sur les devis, avec historique des coefficients et verrouillage sur exercice clôturé.

MàJ S67 — 07/04/2026 Implémenté S64 Table : param_tarification ← Retour à l'accueil

💡 Les 3 méthodes de tarification

Anim'Gest propose trois méthodes de calcul du prix de vente HT, sélectionnables globalement dans les paramètres et applicables par devis.

1
Méthode 1

COEF FG + MARGE

PRHT = PAUHT × (1 + CoefFG)
PVHT = PRHT ÷ (1 − PctMarge)
Exemple : PAUHT=100€, CoefFG=15%, Marge=30%
→ PRHT = 115,00 € | PVHT = 164,29 €
→ Marge réelle : 30,00%
2
Méthode 2

COEF VTE

PVHT = PAUHT × (1 + CoefVte)
PRHT non calculé
Exemple : PAUHT=100€, CoefVte=2.5
→ PVHT = 350,00 €
→ Marge implicite : 71,43%
3
Méthode 3

PRIX DIRECT

PVHT = saisie libre
Aucun calcul automatique
Le prix est saisi manuellement ligne par ligne.
Utile pour les prestations à prix fixe ou négociés.
ℹ️
PAUHT = Prix d'Achat Unitaire HT (colonne DCL_PAUHT sur chaque ligne de devis)
PRHT = Prix de Revient HT (coût + frais généraux)
PVHT = Prix de Vente HT (= DCL_PU_HT sur la ligne)

📐 Formules détaillées

Méthode PAUHT CoefFG PctMarge CoefVte PRHT PVHT Marge %
M1 100,00 15% 30% 115,00 164,29 30,00%
M2 100,00 2.50 350,00 71,43%
M3 100,00 saisie libre variable
// Calcul JavaScript — routes API custom-routes.ts function calculerPVHT(methode: string, pauht: number, params: any): number { switch (methode) { case 'COEF_FG_MARGE': const prht = pauht * (1 + params.coef_fg / 100); return prht / (1 - params.pct_marge / 100); // PVHT case 'COEF_VTE': return pauht * (1 + params.coef_vte); // PVHT direct case 'PRIX_DIRECT': default: return pauht; // saisie libre } }

🗄️ Structure BDD

-- Table paramètres tarification globaux CREATE TABLE param_tarification ( PT_ID INT AUTO_INCREMENT PRIMARY KEY, PT_METHODE ENUM('COEF_FG_MARGE','COEF_VTE','PRIX_DIRECT') NOT NULL DEFAULT 'COEF_FG_MARGE', PT_COEF_FG DECIMAL(8,4) DEFAULT 0.15 COMMENT 'Coefficient frais généraux (ex: 0.15 = 15%)', PT_PCT_MARGE DECIMAL(8,4) DEFAULT 0.30 COMMENT 'Taux de marge attendu (ex: 0.30 = 30%)', PT_COEF_VTE DECIMAL(8,4) DEFAULT 2.50 COMMENT 'Coefficient de vente (ex: 2.50 = PVHT = 3.5×PAUHT)', PT_TVA_ID INT NULL COMMENT 'TVA par défaut appliquée sur les lignes', PT_DATE_APPLICATION DATE NOT NULL, PT_EXERCICE VARCHAR(4) NULL, ENT_ID INT NOT NULL DEFAULT 1, PT_CREATED_AT DATETIME NOT NULL DEFAULT NOW() ); -- Colonnes snapshot sur devis_contrat_entete -- DCE_METHODE_TARIF ENUM('COEF_FG_MARGE','COEF_VTE','PRIX_DIRECT') -- DCE_COEF_FG DECIMAL(8,4) — valeur au moment de la création -- DCE_PCT_MARGE DECIMAL(8,4) -- DCE_COEF_VTE DECIMAL(8,4) -- DCE_VERROUILLE TINYINT(1) DEFAULT 0 -- DCE_VERROUILLE_LE DATETIME NULL -- Colonnes sur devis_contrat_ligne -- DCL_PAUHT DECIMAL(10,4) NULL — prix achat unitaire HT -- DCL_PRHT DECIMAL(10,4) NULL — prix de revient HT (M1 seulement)
ColonneTableRôle
PT_METHODEparam_tarificationMéthode globale active
PT_COEF_FGparam_tarificationCoefFG global (ex: 0.15)
PT_PCT_MARGEparam_tarificationMarge attendue globale (ex: 0.30)
PT_COEF_VTEparam_tarificationCoefVte global (ex: 2.50)
DCE_METHODE_TARIFdevis_contrat_enteteSnapshot méthode au moment du devis
DCE_VERROUILLEdevis_contrat_entete1 si devis verrouillé (FAC liée)
DCL_PAUHTdevis_contrat_lignePAUHT de la ligne (base de calcul)
DCL_PRHTdevis_contrat_lignePRHT calculé (M1 uniquement)

🔌 Routes API

GET /api/tarification Paramètres de tarification actuels
PUT /api/tarification Mettre à jour méthode + coefficients (avec historisation)
GET /api/tarification/historique Historique des modifications de coefficients
POST /api/devis/:id/appliquer-tarif Recalculer toutes les lignes d'un devis BROUILLON selon la méthode
// PUT /api/tarification — body attendu { "methode": "COEF_FG_MARGE", // | "COEF_VTE" | "PRIX_DIRECT" "coef_fg": 0.15, "pct_marge": 0.30, "coef_vte": 2.50, "tva_id": 1, "date_application": "2026-04-07" } // POST /api/devis/:id/appliquer-tarif — body attendu { "methode": "COEF_FG_MARGE", "coef_fg": 0.15, "pct_marge": 0.30 }

📄 Intégration dans les Devis

Les trois méthodes sont applicables directement depuis la page devis, via des boutons d'action affichés uniquement sur les devis en statut BROUILLON.

1

Saisie du PAUHT sur chaque ligne

Le prix d'achat HT (DCL_PAUHT) est renseigné lors de la création des lignes de devis.

2

Sélection de la méthode + clic "Appliquer"

Trois boutons sur la page devis : 📊 COEF FG + MARGE · ✖️ COEF VTE · ✏️ PRIX DIRECT. Chaque bouton affiche la formule en tooltip.

3

Recalcul automatique de toutes les lignes

La route POST /api/devis/:id/appliquer-tarif recalcule DCL_PU_HT sur toutes les lignes et met à jour les totaux HT/TVA/TTC du devis.

4

Snapshot des coefficients sur l'entête

Les valeurs DCE_METHODE_TARIF, DCE_COEF_FG, DCE_PCT_MARGE, DCE_COEF_VTE sont sauvegardées sur le devis comme référence.

🔒

Verrouillage automatique dès qu'une facture est liée

Trigger AFTER INSERT sur devis_facture_lienDCE_VERROUILLE = 1. Aucune modification ni recalcul possible.

🔒 Verrouillage des Devis

✅ Devis BROUILLON

Recalcul libre par les 3 méthodes. Modification des lignes autorisée. Boutons de tarification visibles.

⚠️ Devis ACCEPTÉ sans FAC

Modification possible en théorie. Recalcul déconseillé — statut à confirmer selon règle métier.

🔒 Devis VERROUILLÉ (FAC liée)

Ni modification ni recalcul possible. DCE_VERROUILLE = 1. Pour corriger : FAC "pour solde" + AVR si trop-perçu.

🚫 Exercice clôturé

Aucune modification de coefficient possible dans param_tarification. La date d'application doit être dans un exercice ouvert.

🚨
Le trigger de verrouillage est automatique — dès l'insertion d'un lien dans devis_facture_lien, le devis est verrouillé. Il n'est pas possible de contourner ce mécanisme sans intervention BDD directe.

📋 Historique des coefficients

Chaque modification des paramètres de tarification est historisée automatiquement dans tarif_historique_coef.

ColonneTypeDescription
THC_IDINTIdentifiant unique
THC_DATEDATETIMEDate de modification
THC_METHODEENUMMéthode appliquée
THC_COEF_FGDECIMALCoefFG après modification
THC_PCT_MARGEDECIMALPctMarge après modification
THC_COEF_VTEDECIMALCoefVte après modification
THC_EXERCICEVARCHAR(4)Exercice de la date d'application
UTI_IDINTUtilisateur auteur de la modification
La route PUT /api/tarification insère automatiquement une ligne dans tarif_historique_coef avant d'appliquer les nouveaux coefficients.

📅 Contrôle sur exercice comptable

⚠️
La date d'application des nouveaux coefficients ne peut pas tomber dans un exercice clôturé. La route PUT /api/tarification vérifie ce contrôle avant toute modification.
Statut exerciceModification coefficientsRecalcul devis
EN_COURS ✅ Autorisé ✅ Autorisé
CLOTURE 🚫 Bloqué 🚫 Bloqué
Aucun exercice défini ⚠️ Autorisé sans restriction ⚠️ Autorisé sans restriction

🖥️ Page paramètres tarification

Accessible via /app/parametres/tarification — cette page permet de configurer la méthode globale, les coefficients et de consulter l'historique.

Section "Méthode de calcul"

Sélecteur radio : ○ COEF FG + MARGE ○ COEF VTE ○ PRIX DIRECT. Formule affichée dynamiquement selon la sélection.

Section "Coefficients globaux"

Champs : CoefFG [%], PctMarge [%], CoefVte [coeff], TVA par défaut, Date d'application. Validation contre exercice clôturé.

Section "Formules affichées"

Zone non modifiable montrant les 3 formules avec exemple chiffré. Mise à jour en temps réel quand les coefficients changent.

Section "Historique"

Tableau : Date | Méthode | CoefFG | PctMarge | CoefVte | Modifié par | Exercice. Lecture seule.