Version de Dolibarr : 16.01
Hébergement : dédier
Base de donnée : MySQL or MariaDB 5.5.5-10.4.21-MariaDB-1:10.4.21+maria~focal
Type d’installation : Package .zip
Module complémentaire (provenant de Dolistore ou autre installé) : Aucun
J’ai reproduit cette anomalie dans le Dolibarr de demo (Login @ 16.0.0) : Oui
Dans Adhérents, Liste si on clic sur Réf les numéros ne sont pas classé par ordre croissant:
Ce bug se produit depuis la version 14 (15 et 16 comprise) en version 13 je n’avais pas ce soucis.
Savez vous comment signaler ce bug afin de le faire corriger.
Impossible d’afficher les dernier adhérent par ordre décroissant depuis, à moins d’ajouter un colonne date de création.
Le problème, c’est que la liste est triée selon un critère de texte sur le no de référence puisqu’il est de type varchar, alors qu’avant elle était triée numériquement sur le rowid.
Ce que je ne comprends pas c’est le pourquoi de cette modification de la gestion des adherents, surtout qu’il me semble qu’en l’état les deux champs sont identiques et enregistre exactement la même valeur, une fois sous format numeric (integer) et une fois sous format texte (varchar).
Avant de soumettre une modification de code, j’aimerais savoir dans quel but @eldy a approuvé la modification originale du traitement des adhérents.
Le but était de préparer le terrain afin d’introduire une notion de « ref » qui soit un texte auto-généré comme pour les autres notions. Pour la transition on y met le rowid mait à terme ce sera un code, par exemple
MEM2201-12345
Est-ce qu’on pourrait ajouter des zéros devant le rowid lors de l’enregistrement en bd de la ref ?
Il s’agirait de compléter les espaces manquants pour que la chaîne textuelle soit tjs de 30 caractères. Ça permettrait de trier de manière « naturelle » les chiffres enregistrés comme du textes.
On pourrait « convertir » la chaine lors de l’affichage pour que les zéro n’apparaissent pas.
j’ai essayé une stratégie ici: WIP - List sorted by ref in adherents module by daraelmin · Pull Request #22847 · Dolibarr/dolibarr · GitHub
Est-ce que tu pourrais la tester (pas en prod) pour que je sache si on est sur la bonne voie ?
Il faudrait vérifier si ça joue avec de nouveaux adhérents, pour les anciens, j’ai pas encore trouvé de moyen d’intervenir sur la base sans relancer une migration SQL, donc j’aimerai savoir si ça fonctionne comme ça avant d’aller plus loin.
Je dois encore un peu travailler sur la question d’enlever les zéros à l’affichage, mais…
Comment convertir les bases anciennes à cette numérotation avancée ?
Ne serait-il pas judicieux de prévoir que lorsque la gestion des ref est simple, le tri par ref se fait sur rowid ? Ça va plus vite et ça évite les problèmes avec les anciens dolibarr à migrer.
La modif permet de conserver l’ancien système, on peut utiliser la nouvelle numérotation 1,2,3,4,5,6 etc ou définir une constante MEMBER_MOD_SIMPLE_LPAD pour définir la taille de la ref pour le module « Simple » soit si on met 4: 0000,0001,0002,0003 etc
Avec le module Advanced on aura MEM2212-0001 etc