Utiliser des prix indexés sur devis/factures

[Dolibarr 8.0 sur Linux Debian 8]

Bonjour,

Pour des contrats de maintenance souscrits pour des modules différents sur plusieurs années, j’ai un prix initial indexé sur la variation de l’indice Syntec (ou autre) qui est donc mis à jour chaque année selon la formule:
P=Po (S/So)

P: prix actuel
P0: prix initial (cf. contrat)
S: indice SYNTEC actuel: 267.2 (avr 18)
S0: indice SYNTEC initial: 244.7 (avr 14)
Une Trésorerie m’impose le présentation suivante :
faire figurer le prix unitaire de départ et dans une autre colonne le prix unitaire révisé en ayant soin de préciser quelque part la formule et les indices de révision, soit :
description | prix initial P0 | indice S0 | indice S | prix actuel P
Je pourrais saisir le prix initial dans le champ 3Prix Unitaire H.T", calculer le coefficient S/S0 et le saisir dans le champ quantité en saisissant les deux indices dans la description.
Mais j’aimerais quelque chose de plus « propre » en utilisant les « extrafields » de lignes. L’actualisation ne peut se faire au niveau du total car il y a eu des avenants et l’indice initial n’est pas toujours le même.
D’où mes questions :

  1. existe-t-il déjà une solution de ce type
  2. est-il possible de régler la question avec extrafields + modèle de devis/facture personnalisé + triggers sans modifier le code (afin de simplifier les mises à jour)
  3. est-ce la bonne méthode ?

Merci d’avance de vos réponses.

BOnjour,

  1. oui ça existe j’ai fait un module qui facture le volume en fonction des extrafields longeurlargeurhauteur, vous trouverez le code ici : https://github.com/ksar-ksar/Dolibarr_Volume Si mettre les mains dans le code ne vous fait pas peur c’est facile.
  2. Oui tout à fait
  3. Je pense oui j’ai fait la même chose. Aprés pour éviter un module supplémentaire, vous pouvez utiliser la fonction calcul des extrafields mais je suis pas sur d’arriver à la même chose (à tester).

Bonjour ksar,
Merci bien. Je vais creuser…
Concernant le #2 j’entendais triggers du SGBD
Concernant #3, la fonction calcul des extrafields éviterait-elle tout ajout/modification de code PHP ?
L’idée n’est pas de ne pas coder mais de centraliser toute la personnalisation dans la BD afin de simplifier les mises à jour. C’était l’objet de la question #2 et je ne suis pas sûr que votre oui soit aussi large.

Bonjour,

  1. SGBD ? Dolibarr fournit des triggers et cela que j’utilise dans mon module
  2. en utilisant la fonction calcul des extra-fields vous pourriez peut-être vous passer de module supplémentaire mais pas de modèle de devis/facture personnalisé

Système de Gestion de Base de Données (PostgreSQL, mariaDb, SqlServer, Oracle, SQLite

Oui, c’est l’idée de ne pas avoir de code PHP spécifique; seulement une personnalisation de la BD et des modèles de documents.
A moins qu’un modèle de document personnalisé nécessite forcément un bout de code PHP ?

Pour les triggers il vaut mieux utiliser ceux de DOli pas ceux de MYSQL

Un modèle de document c’est du php !
A moins que vous utilizier les modéles ODT.

J’utilise PostgreSQL, mais quel intérêt voyez-vous à utiliser les triggers de Dolibarr plutôt que ceux du moteur de BD ?

Ok, cela n’était pas clair pour moi. Merci.

A moins que vous utilizier les modéles ODT.
[/quote]

Je pensais effectivement utiliser les modèles ODT; dans ce cas, pas de code PHP supplémentaire ?

J’utilise PostgreSQL, mais quel intérêt voyez-vous à utiliser les triggers de Dolibarr plutôt que ceux du moteur de BD ?

Ok, cela n’était pas clair pour moi. Merci.

Je pensais effectivement utiliser les modèles ODT; dans ce cas, pas de code PHP supplémentaire ?

L’avantage de travailler avec les trigger de Dolibarr c’est une fois que vous aurez calculé et injecté la nouvelle quantité pour une ligne avec les données des extrafields vous pourrerz faire à appel aux fonction de mise à jour de la facture qui vont recaculer la ligne (HT,TVA,TTC,REMISE) etc et le total de la facture.
Si vous attaquez directement la base de donnée vous aurez 100% de chance de casser quelque chose en mettant pas toutes les tables à jour (personnellement je ne connais pas tout ce que met à jour la fonction DOlibarr de calcul de prix d’une linge de facture/devis/commande).

Généralement les modelés ODT sont peu utilisés car plus difficile d’obtenir exactement ce que l’on veut. Ils sont utilisés pour des choses « simples »

1 « J'aime »

Merci pour toutes ces explications.
Cordialement