Tri par réf dans liste adhérent V15

Bonjour,
Suite passage de la version 12 à la version 15.02, je remarque que le tri par ref dans la liste des adhérents ne se comporte plus comme avant au lieu de trier par ordre croissant 1,2,3…9,10,11…20,21…etc
Maintenant i; tri de cette façon 1,10,100,101,102,103,104,105,106,107,108,109,11,110 etc.
Je suis tombé sur la conversation Tri par réf dans liste adhérent
Mais cela ne fonctionne toujours pas.
J’ai remplacé :
//if ($search_ref) {
// $sql .= natural_search(« d.ref », $search_ref);
//}
// Sylvain
if ($search_ref)
{
if (is_numeric($search_ref)) $sql .= " AND (d.rowid = « .$db->escape($search_ref). »)";
else $sql .= " AND 1 = 2"; // Always wrong
}
//Fin sylvain

Je suis pour l’instant sur une base de test.
http://dolibarr/adherents/list.php?sortfield=d.ref&sortorder=desc&begin=&contextpage=memberslist&search_filter=uptodate&search_status=1

Je voudrais corriger ce fonctionnement avant de passer la mise à jour en prod.

Une idée ?

Merci d’avance.

Hello,

J’ai le même problème dans la version 14.0.5 pour les cotisations. Je pense qu’il faut ouvrir un ticket sur github. A mon avis, il ne faut pas utiliser natural_search, mais je ne suis pas certains.

Coedialement

Hello,

Après quelques tests, je n’expérimente plus ce souci ni en v14 ni v16. Est-ce que tu as pensé à configurer un ordre de tri par défaut ?
Utilise la page suivante pour ce faire : /admin/defaultvalues.php?mode=sortorder

A plus

Bonjour, j’ai configuré un ordre de tri par défaut : /adherents/list.php d.ref DESC

Mais le problème persiste. Cela fonctionne si je mets le champ rowid mais dès que je clique sur l’onglet Réf, je me retrouve avec le même problème.

cette url fonctionne /adherents/list.php?sortfield=rowid&sortorder=asc&begin=&contextpage=memberslist

mais pas celle-ci qui est provient des lien dolibarr /adherents/list.php?sortfield=d.ref&sortorder=asc&begin=&contextpage=memberslist

A+

En fait tu souhaiterais pouvoir trier par rowid ?

Si jamais, le code que tu as modifié ne concerne que les recherches à l’intérieur des champs, pas le tri des champs

A priori, la gestion du tri se fait grâce à la fonction

$db->order($sortfield, $sortorder);

Donc si y a un souci, faudrait le corriger ici :

Mais franchement, ça m’a l’air de jouer.

En fait, cela dépasse mes compétences. Ce que je souhaites, c’est que lorsque je tri la liste des adhérents par référence dans l’entête de la liste (et non rowid même si les valeurs sont identiques) cela affiche les adhérents par ordre numérique 1,2,3…9,10,11…20,21…etc et non 1,10,100,101,102,103,104,105,106,107,108,109,11,110 etc.

Hello,

Jai bien compris ton souci, mais je n’arrive pas à le reproduire. Du coup…

Est ce que tu as un module externe qui pourrait retrier la liste parce qu’à priori, elle est dans le bon ordre lorsqu’elle sort de la base de donnée ?

A plus

Toujours le même soucis même en version 16.01. La liste des adhésions se classe par réf. dans l’ordre croissant ou décroissant sans aucun souci par contre la liste des adhérent impossible de classer par réf sans avoir le bug de N° 1-10…
Par contre grâce à ton lien qui lui classe bien j’ai ajouté une entrée dans le menu du haut. Pas très classe mais c’est la seule solution que j’ai trouvé à ce jour pour avoir rapidement les derniers adhérents sans ajouter la date dans les colonnes.