Bonjour à tous,

Je relance ce sujet assez important pour l'assoc dont j'ai la charge en tant que webmaster et dans le cadre du respect du RGPD "Droit à l'oubli". J'ai un champs dynamique concernant la démission de l'assoc, et au bout d'un an je dois détruire les fiches membres concernées. Celui-ci était analysé par une requête de recherche avancée et produisait une liste de membres à détruire.

Cela ne concerne donc que la recherche avancée libre sur un champs de dates (coeur ou dynamique).

Au départ il propose bien :


Il comprends bien que l'on travaille sur des dates, suite à l'entrée d'une date et lancement, le résultat est vierge.

Requête produite au départ : SELECT DISTINCT `a`.*, `status`.`priorite_statut` AS `priorite_statut` FROM `oitar_adherents` AS `a` LEFT JOIN `oitar_socials` AS `so` ON `a`.`id_adh`=`so`.`id_adh` LEFT JOIN `oitar_adherents` AS `parent` ON `a`.`parent_id`=`parent`.`id_adh` INNER JOIN `oitar_statuts` AS `status` ON `a`.`id_statut`=`status`.`id_statut` LEFT JOIN (SELECT `df`.`item_id` AS `item_id`, `df`.`field_val` AS `val` FROM `oitar_dynamic_fields` AS `df` WHERE `df`.`field_form` = 'adh' AND `df`.`field_id` = '36') AS `df36` ON `a`.`id_adh` = `df36`.`item_id` WHERE a.activite_adh=true AND STR_TO_DATE(df36.val, '%d/%m/%Y') < STR_TO_DATE('2023-06-01', '%d/%m/%Y') ORDER BY `nom_adh` ASC, `prenom_adh` ASC LIMIT 100 OFFSET 0

Si on demande la modification des critères alors il présente cela :


Il a perdu la notion de Avant - Après.

Dans les versions antérieures 0.9.x cela marchait très bien, je l'utilisais très très souvent (et j'avais même des requêtes enregistrées).

PRECISIONS : si on fait la même chose avec le champs du coeur Date de naissance, dans cette recherche libre :


Ca marche, il y a un résultat, mais il perd aussi cette notion Avant - Après à la modification des critères, avec une proposition d'analyse comme la copie d'écran N°2.

Requête produite au départ : SELECT DISTINCT `a`.*, `status`.`priorite_statut` AS `priorite_statut` FROM `oitar_adherents` AS `a` LEFT JOIN `oitar_socials` AS `so` ON `a`.`id_adh`=`so`.`id_adh` LEFT JOIN `oitar_adherents` AS `parent` ON `a`.`parent_id`=`parent`.`id_adh` INNER JOIN `oitar_statuts` AS `status` ON `a`.`id_statut`=`status`.`id_statut` WHERE a.activite_adh=true AND a.ddn_adh< '2023-06-01' ORDER BY `nom_adh` ASC, `prenom_adh` ASC LIMIT 100 OFFSET 0

Requête produite si modif : SELECT DISTINCT `a`.*, `status`.`priorite_statut` AS `priorite_statut` FROM `oitar_adherents` AS `a` LEFT JOIN `oitar_socials` AS `so` ON `a`.`id_adh`=`so`.`id_adh` LEFT JOIN `oitar_adherents` AS `parent` ON `a`.`parent_id`=`parent`.`id_adh` INNER JOIN `oitar_statuts` AS `status` ON `a`.`id_statut`=`status`.`id_statut` WHERE a.activite_adh=true AND LOWER(a.ddn_adh) = '2023-06-01' ORDER BY `nom_adh` ASC, `prenom_adh` ASC LIMIT 100 OFFSET 0

Si vous avez des idées, c'est une fonction importante et hyper utile sur des champs de type date.

Cordialement,

GEORGES BEYNA