[9.0.3] Saisir des reglement fournisseurs

Bonjour,

  • J’ai saisie en facture fournisseurs des frais et commission Paypal (piouuuu, pas donnés o_O)
  • Une fois fait, je suis passé en règlement (facture fournisseurs impayés)
  • J’ai sélectionné une facture en cliquant dessus
  • J’ai cliqué ensuite sur saisie du règlement
  • J’ai eu alors la liste des facture du fournisseur (normal) avec la zone du montant réglé à saisir vide (normal aussi)
  • J’ai cliqué sur la petite flèche pour la saisie automatique deu montant de ma facture
  • Je n’ai rien fait pour les autres factures (champs de saisie toujours vide, donc)
  • je valide mon règlement

Et là, autant de ligne d’erreur que de facture dont le champs de saisie est vide

L’analyse et la proposition de correction

Lorsque la zone de saisie est vide, en validant, on met un « vide dans la variable »
Autant en PHP, on peut additionner des variables de type différent, autant on ne peut additionner des variables vides.

La solution que j’ai utilisée :

Lors de la conception, qui ne se fait qu’une fois, puisque la saie du montant se fait avec l’aide de javascript, iol convient de vérifier cetta variable si elle est égale à «  » (rien) ou non et de mettre la valeur 0 si c’est égal à rien

Le fichier concerné :
/répertoire_Dolibarr/htdocs/fourn/facture/paiement.php

Lignes concernées (à partir de la la ligne 652) :

[MODERATION : suppression du code]

Bien cordialement
Sylvain

[MODERATION : suppression du fichier]

Salut Pouik,

jamais été confronté à ce problème.

Je te conseille vivement de remonter cela sur github, avec tes propositions de modification : l’équipe de développement pourra valider (ou pas) et intégrer ta modif dans les futures versions.

il est dangereux de touche au core : une petite modif à un endroit qui solutionne quelque chose de très localisé, peut avoir un effet boule de neige ailleurs. (y compris dans des modules que tu n’as toi, peut être pas activé)

Je supprime ton code et le fichier joint : beaucoup trop dangereux à ceux qui s’y essaierai sans savoir… (je le laisse dans un post masqué, accessible seulement aux modérateurs et admins)
N’y vois pas un reproche, mais pas envie d’avoir des cas de « ouin ouin » sur le forum qui ont tout planté à cause de ça :wink:

-> go https://github.com/Dolibarr/dolibarr/issues

message d’origine de pouik :

// ajout SLB $slb_value_default = (dol_escape_htmltag(GETPOST($namef)) =="") ? 0 : dol_escape_htmltag(GETPOST($namef)); if ($action != 'add_paiement') { if (!empty($conf->use_javascript_ajax)) print img_picto("Auto fill",'rightarrow', "class='AutoFillAmout' data-rowname='".$namef."' data-value='".($sign * $remaintopay)."'"); print '<input type="hidden" class="remain" name="'.$nameRemain.'" value="'.$remaintopay.'">'; //ancienne ligne : // print '<input type="text" size="8" class="amount" name="'.$namef.'" value="'.dol_escape_htmltag(GETPOST($namef)).'">'.$slb_value_default; //Nouvelle ligne : print '<input type="text" size="8" class="amount" name="'.$namef.'" value="'.$slb_value_default.'">'; } else { // Ancienne ligne // print '<input type="text" size="8" name="'.$namef.'_disabled" value="'.dol_escape_htmltag(GETPOST($namef)).'" disabled>'; // print '<input type="hidden" name="'.$namef.'" value="'.dol_escape_htmltag(GETPOST($namef)).'">'; // Nouvelle ligne print '<input type="text" size="8" name="'.$namef.'_disabled" value="'.$slb_value_default.'" disabled>'; print '<input type="hidden" name="'.$namef.'" value="'.$slb_value_default.'">'; } print "</td>";

Voilou

Ci joint le fichier (pour information, chacun prenant ses responsabilités quant à son utilisation)

paiement.php.zip (9.83 KB)

Bonjour,

Oki, je vais le signalé sur github.

Oui tu as raison, j’ai bien indiqué que chacun prend ses responsabilité, mais bon, il est vrai que dans le feu de l’action chacun peut faire et ne pas être conscient de ce qu’il fait.

Donc non, je ne le prends pas mal du tout, au contraire, Cela m’invite à mieux préparer mes post dans l’intérêt de tous :happy:

La situation où cela arrive (pour information) :
j’ai saisie pas mal de factures d’un fournisseur. Donc pal mal de paiement à saisir (compta en retard, puisque repris de zéro suite à l’installation de Dolibarr)
J’ai donc était ensuite dans le paiement des factures
Cliqué sur la facture à régler
puis sur saisie du paiement
et la, la liste de toutes les facture à régler du fournisseur apparait (puisque que l’on peut très bien avec un paiement payer plusieurs factures)
j’indique juste dans la facture concerné le montant payé et je valide en bas.
Bien sûr, les case du montant payé des autres factures est vide…
Et là hop plein de message, puisque le « value » de cette zone est null et non égale à 0

Voilou

Merci encore

Cordialement
Sylvain

Je suis un peu surpris, mais en réfléchissant bien, je n’ai pas dû avoir ce cas. Je règle tout ce qui est dû en même temps.
Par contre, sur les factures clients, je suis sûr d’avoir à saisir un règlement en laissant des lignes vides. Ce serait bien de regarde le code de ce côté, pour comparer pourquoi ça marche d’un côté et pas de l’autre.