Ne pas afficher les factures d'avoir comme ligne de facturation sur la facture définitive

Bonjour,

J’aurais besoin de votre aide sur Dolibarr 10.0.2

Nous vendons un services dont le tarif peut légèrement évoluer entre le devis accepté par le client et la facture finale quelques mois après (ex: prestation supplémentaire demandée par le client). La facture n’est donc pas validée dès le début et reste en draft. Afin de pouvoir enregistrer le règlement de l’acompte nous faisons donc une facture d’acompte.

Quelques mois après, lorsque vient la facture définitive, nous ajustons le montant et la facture générée tient bien compte des acomptes précédemment enregistrés. Cependant le document généré ne correspond pas à notre besoin : en effet, les acomptes n’apparaissent pas dans les paiements (en bas dans le modèle « crabe ») mais comme ligne de facturation. Nos clients ont besoin d’une facture unique avec le montant total, hors sur le facture générée, les acomptes apparaissant avec un montant négatif, le total de la facture ne correspond pas au montant total de la prestation…

@cmaconception parlait ici d’une fonction « deposits are just paiements » qui pourrait correspondre à notre besoin, mais je ne l’ai pas trouvée dans l’admin Dolibarr et Google n’a pas été très amicale avec moi sur ce sujet.

Merci d’avance à ceux qui voudrons bien m’aider !

Cordialement,

Slt
Ce n est pas une fonction …mais une variable :wink:
FACTURE_DEPOSITS_ARE_JUST_PAYMENTS
Config>divers
https://wiki.dolibarr.org/index.php/Setup_Other

Bjr,
J’ajouterai que le lien ci dessus est à mettre dans les favoris du navigateur.
Impératif !!

Frédéric

Bonsoir,

Merci beaucoup ! Par contre, lorsque que créé une nouvelle facture à partir d’une proposition commerciale acceptée, j’ai une erreur PHP que je n’avais pas avant d’activer le « FACTURE_DEPOSITS_ARE_JUST_PAYMENTS » (en value, j’ai mis « 1 »), je suis en Dolibarr 10.0.2 et en PHP 7.2.

URL générée par l’appui sur le bouton « Créer une facture ou un avoir » : /compta/facture/card.php?action=create&origin=propal&originid=19&socid=2

Fatal error : Uncaught Error: Call to undefined method Facture::getInvoiceArrayList() in /htdocs/dolibarr-test/core/lib/functions.lib.php(6801) : eval()'d code:1 Stack trace: #0 /htdocs/dolibarr-test/core/lib/functions.lib.php(6801): eval() #1 /htdocs/dolibarr-test/core/class/commonobject.class.php(4920): dol_eval(‹ array_sum( \tarr… ›, 1, 0) #2 /htdocs/dolibarr-test/comm/propal/class/propal.class.php(1491): CommonObject->fetch_optionals() #3 /htdocs/dolibarr-test/compta/facture/card.php(2608): Propal->fetch(‹ 19 ›) #4 {main} thrown in /htdocs/dolibarr-test/core/lib/functions.lib.php(6801) : eval()'d code on line 1

Pour information « /htdocs/dolibarr-test/ » correspond au root de mon Dolibarr de test.

Avant de changer ce paramètre le bouton fonctionnait bien (j’ai fait un restore et je confirme que je ne reproduis pas le problème avant d’introduire le « FACTURE_DEPOSITS_ARE_JUST_PAYMENTS ».

Sauriez-vous ce qu’il se passe ?

Merci d’avance pour votre aide.

PS : J’ai tenté des upgrades, mais ça n’a rien corrigé. Mon système de test est désormais en :

  • Dolibarr 10.0.4
  • PHP 7.3 (.12)

Bonjour
Si vous enlevez la constante, est ce que ça fonctionne à nouveau ?
Et en mettant à zéro ?
@+

Bonjour,
Non, en la mettant à 0 ou en la supprimant, le problème persiste.
Pour faire disparaitre le problème, il m’a fallu faire un restore.
Merci d’avance pour votre aide.

Alors il y a une autre raison car pas logique.
Réessayez peut être y avait il une coquille quelque part ?
@+

Bonsoir @Philazerty,
Je vous remercie mais malheureusement, j’ai toujours le problème. Cela fonctionne pour la première facture, puis Dolibarr est cassé et je ne peux plus en créer une seule.
Merci,

@LesCarnets,
Avez-vous des modules externes ? Si oui, lesquels ?

Frédéric

Bonsoir Frédéric,

Non, je n’utilise que des modules standards de Dolibarr, je n’utilise pas de modules supplémentaires issus du Dolistore.

Merci d’avance pour votre aide,

As-tu modifié le modèle de numérotation ?

Non, j’utilise « Terre » comme « Modèle de numérotation des factures et avoirs ». Pas de modification faite.
(Avant l’ajout du « FACTURE_DEPOSITS_ARE_JUST_PAYMENTS », j’arrivait bien à générer des factures.)

On ne pourra pas jouer à la devinette longtemps.
Il faut activer et inspecter les logs de Dolibarr (module syslog) pour comprendre ce qui peut clocher.

@yves57: voici le log. Merci d’avance pour votre aide

Que se passe-t-il au niveau de l’affichage ?
Au départ, tu mentionnais une erreur, mais maintenant ? Tu nous dis simplement

je ne peux plus en créer une seule.

Bonjour,

Il y a plusieurs petite choses étranges dans votre log :

  1. Le chemin vers le répertoire document est suspect (il y a un // dedans) :

dol_dir_list path=/var/www/htdocs/dolibarr-test//documents/propale/PR1912-001

Vérifier votre conf.php

  1. Vous n’avez pas la librairie php Imagick

WARNING Failed to read image using Imagick (Try to install package ‹ apt-get install php-imagick ghostscript › and check there is no policy to disable pdf convertion in /etc/ImageMagick*/policy.xml): UnableToOpenConfigureFile `delegates.xml’

Mais sinon pas d’erreurs dans le fichier log

@yves57: Au niveau de l’affichage, lorsque je clique sur ‹ Créer une facture ou un avoir › depuis une proposition commerciale, la page de création de facture n’arrive pas à s’afficher, j’ai le message suivant :

@ksar : Concernant le point 1, j’ai la même chose sur ma prod (où je n’ai pas activé le « FACTURE_DEPOSITS_ARE_JUST_PAYMENTS ») : « /var/www/htdocs/dolibarr//documents » et je n’ai pas de soucis lors de la création. (J’ai laissé l’assistant Dolibarr gérer, je n’ai pas touché au config.php)

Et concernant le point 2, j’avais vu le warning, mais comme vous le dites ce n’est qu’un Warning. Je n’utilise pas particulièrement d’image donc je ne pense pas qu’Imagick soit indispensable. (Etant en hébergement mutualisé, je n’ai pas la main pour faire un apt get install sur le serveur).

Utilises-tu des extrafields pour les propales ?
C’est en tentant de les récupérer que l’erreur se produit.
Je soupçonne un bug, car il est fait appel à une fonction de la classe Facture, mais qui n’existe que dans la classe Propal

Call to undefined method Facture::getInvoiceArrayList()

Je dirais que la variable $extrafields utilisée dévrait contenir ceux de la Propal, mais en fait contiennent ceux de la Facture.

En effet, lorsque je supprime l’extrafield des proposal, je n’ai plus de soucis. Merci beaucoup @yves57 !

Vu que d’un point de vue fonctionnel il ne nous sert plus, je vais le retirer. Ce workarround me permettra de contourner le bug.

Merci à tous pour votre aide.