Commande fournisseur : réduction %%

Bonjour,

J’utilise Dolibarr depuis quelques mois, avec satisfaction, actuellement en version 7.0.2. (ai commencé avec 6.XX)

Une erreur semble être apparue depuis peu (quelques jours/semaine) : le signe " % " apparaît deux fois dans la colonne réduction (cf. annexe).
Les commandes fournisseurs précédentes ne présentaient pas cette erreur. Cette erreur est maintenant présente quelque soit l’article, même ceux qui s’affichaient correctement dans les commandes précédentes (rien n’a été changé entre temps dans les descriptions d’article ni les réductions).

Est-ce que d’autres personnes ont la même erreur ?
Comment la corriger ?

Merci d’avance.

Pièces jointes :

Je n’ai toujours pas trouvé la solution, malheureusement. Ce double signe (%%) ne fait vraiment pas bonne impression.
Je serais ravi si quelqu’un pouvait me guider sur le bon chemin.

Merci d’avance.

Bonjour,

Mes modules d’impression ne rencontre pas ce problème :

La documentation est téléchargeable ici.

Pour vous en convaincre voyez le site de démonstration.

Si vous avez des besoins plus spécifiques n’hésitez pas à me contacter par mail.

Cordialement,
Sylvain Legrand.

Bonjour Sylvain,
Je ne connais pas la qualité de vos produits, je suis certain qu’ils fonctionnent bien.
Toutefois, lorsque les utilisateurs viennent poser une question sur le forum, je suis certain également qu’ils attendent comme réponse autre chose que de passer par un module additionnel, en tout cas pour ce qui apparaît à premier abord comme un bogue.
On a vu passer récemment des messages critiquant Dolibarr indiquant que la base était volontairement laissée avec des défauts pour mieux placer des produits payants qui les corrigent. Le genre de messages tel que celui qui précède donne de l’eau à leur moulin.
Fondamentalement, les utilisateurs adopteront d’autant mieux Dolibarr, et les modules complémentaires payants, que la base sera sérieuse et solide.

yves57, merci pour votre message. Je ne sais pas si je peux qualifier cela de bug, mais chez moi, le problème n’existait pas dans les versions précédentes.

En réalité, j’ignorais qu’il y avait de telles critiques. Je suis probablement pas dans cet état d’esprit lorsque j’utilise Dolibarr. Merci d’avoir soulevé la question. Et, en effet, vous avez raison, je suis tenté par un certain nombre de modules payants, mais pas pour corriger des problèmes, mais pour obtenir des fonctionnalités supplémentaires.

J’en profite pour m’enquérir à nouveau du sujet de ce fil. Est-ce que d’autres personnes ont la même erreur ?
Comment la corriger ?

Merci d’avance.

Bonjour,
Ce problème n’est pas générique. Je viens de tester sur ma base de test, ça fonctionne bien, je n’ai pas ce deuxième %.
As-tu un module activé qui pourrait induire ce comportement ?

Si je ne me trompe pas, cette case est générée dans le fichier :
core/modules/supplier_order/pdf/pdf_muscadet.modules.php
à la ligne :

					// Discount on line
					$pdf-\>SetXY($this-\>posxdiscount, $curY);
					if ($object-\>lines[$i]-\>remise_percent)
					{
						$pdf-\>MultiCell($this-\>postotalht-$this-\>posxdiscount-1, 3, $object-\>lines[$i]-\>remise_percent."%", 0, 'R');
					}

Une explication du double % pourrait être que la valeur inscrite contient déjà un %.
Comment est-elle saisie ? Normalement, elle doit être un nombre.

Merci de me guider.
Chez moi, j’ai ceci :

					// Discount on line
					$pdf->SetXY($this->posxdiscount, $curY);
					if ($object->lines[$i]->remise_percent)
					{
					    $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails);
						$pdf->MultiCell($this->postotalht-$this->posxdiscount-1, 3, $remise_percent."%", 0, 'R');
					}

Les remises sont uniquement saisies avec des nombres (j’ai re-vérifié).

Étrange…

Quelle est la version ?
J’ai une 7.0.2. Il semble que je n’aie pas cette modification qui est récente.
https://github.com/Dolibarr/dolibarr/commit/013f95f54b21c02507cf4c2ea22563a59a69e103#diff-1fdbc70fa01f57eda7a541ffb42a3254
J’ai l’impression que c’est effectivement un bogue. Il faudrait essayer en supprimant le ."%" dans $remise_percent."%"

[Edit] Modification source : https://github.com/Dolibarr/dolibarr/commit/90f1ab8af4233773a113a61e5160dbbc3762d4a6#diff-1fdbc70fa01f57eda7a541ffb42a3254

Bonjour,
J’ai proposé le correctif ici : https://github.com/Dolibarr/dolibarr/issues/8969
@+

Super.
Ce n’est pas sous la forme d’une « pull request » ?

Bonjour à tous,

@Yves57 :

Je reconnais que vous avez raison sur le principe, un module complémentaire ne devrait pas exister simplement pour corriger un problème logiciel.
Cependant

  1. Le bug que vous remontez viens probablement de la configuration que vous avez (mauvaise mis à jour par exemple) car malgrès des essais multiples je n’arrive pas à la reproduire et d’autre post font état du même constat.
  2. Mes modules ne servent surement pas à corriger des soucis logiciel mais apportent des fonctionnalités qui n’existent pas nativelment Avez-vous regardé le site de démonstration ?

Pour obtenir une aide plus précise, pourriez-vous nous faire part des changements intervenus juste avant la modification du comportement de votre instance de Dolibarr ?
Ce peut être une mise à jour, une nouvelle fonctionnalité activée, une migration (hard ou soft), etc…

Cordialement,
Sylvain Legrand.

Bonsoir Sylvain,
Moi je pense que c’est bien un bug ! C’est encore là sur la 7.0.3
:wink:

Merci tout le monde pour vos commentaires.
Je suis en version 7.0.2. Si ce problème persiste en 7.0.3, alors je me rallie à vos avis : c’est un bug.

Si je comprends bien le correctif sur github.com/Dolibarr/dolibarr/issues/8969,
il faut enlever le" % " dans core/modules/supplier_order/pdf ?

J’espère qu’ils ne vont corriger le bug entre temps pour se retrouver à corriger le correctif !

my patch of core/modules/supplier_order/pdf on 7.0.3 (near line 500)
// Discount on line $pdf->SetXY($this->posxdiscount, $curY); if ($object->lines[$i]->remise_percent) { $remise_percent = pdf_getlineremisepercent($object, $i, $outputlangs, $hidedetails); // Update by Philazerty //$pdf->MultiCell($this->postotalht-$this->posxdiscount-1, 3, $remise_percent."%", 0, 'R'); $pdf->MultiCell($this->postotalht-$this->posxdiscount-1, 3, $remise_percent, 0, 'R'); }

Je m’y attelle dès demain matin.
Merci.

Le correctif fonctionne bien pour l’instant !