Trier les Tiers par Pays....bug ❓

Bonjour :grinning_face:
En V18.0.5, lorsque je souhaite trier les Tiers par Pays, tout est mélangé :

/societe/list.php?sortfield=country.code_iso&sortorder=desc&begin=&contextpage=thirdpartylist&limit=1000&search_status=1

Il y a quelque France avec au milieu Allemagne, puis France puis Pays-Bas, puis France, puis…
ASC ou DESC, rien n’y fait, c’est mélangé.
Savez-vous pourquoi ?
Je ne comprends pas :thinking:.
Je n’affiche que les champs « Nom du Tiers », « Nom alternatif », « Ville » et « Pays ».
Merci la communauté :folded_hands:t3:.

Bonjour,
En triant sur le nom du pays au lieu du code pays ça donne quoi?

Bonjour @manunord
Je n’ai pas le code pays comme choix.
Je n’affiche que les champs suivants, le code pays n’étant pas disponible dans la liste des champs à afficher.
Il semblerait que la requête soit faite sur contry.code_iso.
/societe/list.php?sortfield=country.code_iso&sortorder=asc&begin=&contextpage=thirdpartylist&search_status=1

C’est assez étrange. Que l’on retrouve, par exemple, Suisse, Allemagne, Espagne, ça pourrait s’expliquer puisque l’ordre se fait sur les codes pays. Mais avoir Allemagne en plein milieu de France…

Bon, il est vrai que l’Allemagne a été indexée par la France, depuis longtemps…
On me dit das l’oreillette que ce n’est pas vrai..

Bon, bref, sur la V18.0.7 LTS, je n’ai pas réussi à reproduire le problème. La requête est juste et fonctionne correctement.

Dans le log de dolibarr (documents\dolibarr.log), si activé, on retrouve la requête exécutée

Bonjour @emheyarssi
Merci de la réponse.
Dans le log j’ai ceci… et je pense que c’est extrafield qui pose le problème ?
2025-07-03 14:46:53 DEBUG 192.168.0.131 sql=SELECT rowid, code as code_iso, code_iso as code_iso3, label, favorite, eec FROM llx_c_country WHERE active > 0
2025-07-03 14:46:53 DEBUG 192.168.0.131 sql=SELECT eld.rowid, eld.tablename, eld.elementype, eldf.name FROM llx_extralist as el
INNER JOIN llx_extralistdet as eld ON el.rowid = eld.fk_extralist
INNER JOIN llx_extralistdetfields as eldf ON eld.rowid = eldf.fk_extralistdet WHERE el.listname= ‹ societe ›

La requête ressemble plus à ça: SELECT s.rowid, s.nom as name, s.name_alias, s.ref_ext, s.barcode, s.address, s.town, s.zip, s.datec, s.code_client, s.code_fournisseur, s.logo, s.entity, st.libelle as stcomm, st.picto as stcomm_picto, s.fk_stcomm as stcomm_id, s.fk_prospectlevel, s.prefix_comm, s.client, s.fournisseur, s.canvas, s.status as status, s.note_private, s.note_public, s.email, s.phone, s.phone_mobile, s.fax, s.url, s.siren as idprof1, s.siret as idprof2, s.ape as idprof3, s.idprof4 as idprof4, s.idprof5 as idprof5, s.idprof6 as idprof6, s.tva_intra, s.fk_pays, s.ip, s.tms as date_modification, s.datec as date_creation, s.import_key, s.code_compta, s.code_compta_fournisseur, s.parent as fk_parent,s.price_level, s2.nom as name2, typent.code as typent_code, staff.code as staff_code, s.fk_forme_juridique as legalform_code, country.code as country_code, country.label as country_label, state.code_departement as state_code, state.nom as state_name, region.code_region as region_code, region.nom as region_name, ef.height as options_height, ef.weight as options_weight, ef.prof as options_prof, ef.birthdate as options_birthdate, ef.stripeaccount as options_stripeaccount, ef.checkboxnonprofitorga as options_checkboxnonprofitorga FROM llx_societe as s LEFT JOIN llx_societe as s2 ON s.parent = s2.rowid LEFT JOIN llx_societe_extrafields as ef on (s.rowid = ef.fk_object) LEFT JOIN llx_c_country as country on (country.rowid = s.fk_pays) LEFT JOIN llx_c_typent as typent on (typent.id = s.fk_typent) LEFT JOIN llx_c_effectif as staff on (staff.id = s.fk_effectif) LEFT JOIN llx_c_departements as state on (state.rowid = s.fk_departement) LEFT JOIN llx_c_regions as region on (region.code_region = state.fk_region) LEFT JOIN llx_c_stcomm as st ON s.fk_stcomm = st.id WHERE s.entity IN (1) AND (s.status IN (1)) ORDER BY country.code_iso ASC LIMIT 26

On y voit bien le ORDER BY country.code_iso à la fin