Nouveau module d'export avec filtres mémorisables

Bonjour Un petit message pour annoncer que la fonctionnalité des filtres mémorisées a été ajouté à la version 3.3.0 de dolibarr.
La fonctionnalité d’accéder sous forme de liste n’est par contre pas présente dans cette version de dolibarr. je vais très rapidement réaliser un package dédié à spécifiquement à cette fonctionnalité.
Le prix de ce module dédié à la 3.2 est dès à présent baissé, je transmettrai naturellement la mise à jour pour la 3.3 aux personnes ayant acheté la version actuelle dès quelle sera disponible .

1 « J'aime »

Salut Defrance !

Je n’avais pas eu l’occasion de tester le module, mais en allant dans outils>exports, je vois qu’on a quelque chose de fort utile, ci ce n’est indispensable ou qui le deviendra… Bravo !

Question :

Etape 1 je selection à exporte rles commandes clients
Etape 2 je selectionne quelques champs dont :
Raison sociale, refé client, Facturé, ETAT, Réf produit, Libellé produit
Etape 3 : mise en place du filtre… impossible d’éditer un filtre sur le champ ETAT…
Etape 4 : Recherches, pleurs, trépignements, puis résignation à poster le problème ici…

Merci de ta réponse et encore chapeau !

EDIT : pas les droits pour exporter les expeditions alors que je suis connecté en Admin ? bizarre…
RE EDIT : Désolé je n’avais effectivement pas les droits, c’est réglé :wink:

Ce que tu appelles le champ ETAT c’est le STATUT
Ce champs dans dolibarr est batard dans le sens ou il correspond à une liste en dur spécifique à chaque type d’éléments et pas une table propre dans un dictionnaire par exemple
J’avais commencé à réfléchir comment traiter la chose mais j’ai finalement abandonné… il faudrait que je m’y replonge maintenant
L’idée serai d’ajouter un tableau dans le fichier de description du module listant les états possible et le libellé associé)

Si tu as besoin d’utiliser ce filtrage, il faut procéder ainsi :

Ouvrir en modification le fichier de description du module le tableau export_TypeFields_array
Repérer le tuple ‹ c.fk_statut ›=>‹ Status › et remplacer ‹ Status › par ‹ Number ›

De cette manière il te sera présenté un champ numérique saisissable, à toi de trouver la bonne valeur à trier (0=brouillon, les autres valeurs sont variables).

1 « J'aime »

Il y a un soucis de filtrage sur la version 3.3.0 au niveau de l’export bancaire :
Le tri sur la requete par défaut de l’export bancaire désactive les fonctions de filtrage, il faut aller dans le fichier /core/modules/modBanque.class.php
et mettre en commentaire la ligne suivante :
$this->export_sql_end[$r] .=’ ORDER BY b.datev, b.num_releve’;

Un « push » de mise en commentaire de cette ligne pour les prochaines versions a été réalisé

Je suis en train de préparer la version 3.3 de ce module
au programme les listes d’exports au format datatables

J’ai réalisé une chtit démo sur mon site perso, vous pouvez y accéder directement par là : dlbdemo.benke.fr/htdocs/exports/liste.ph...tatoexport=facture_1
login : admindemo / admindemo

cela fonctionne pour le moment en 3.2 et en 3.3, je vais faire 2 version, la version 3.2 sera disponible sur demande

Sinon, il y a un autre bug dans le module d’export 3.3, la valeur des champs filtrés n’est pas enregistré, je ferai le correctif dans la soirée.

oui la valeur >200 ne change pas :wink:

Le tri des listes a l’air OK, faut juste capter que ce sont les flèches à droite du nom de colonne qui trient (un peu cosmétique cette remarque…)

Sinon, on pourra choisir les « tables » à afficher et/ou des champs supplémentaires, etc… ?
ou alors ce sera codé en dur comme dans liste.txt (sur l’autre sujet ?)

Merci et bon café !

Effectivement, tout ne peu pas marcher du premier coup, après une soirée de code…

En fait tu crées un export comme tu le souhaites avec les champs que tu souhaites (en terme d’affichage et de filtrage), puis tu l’enregistres et ensuite tu peux accéder à la liste soit par l’écran d’export (en cliquant sur l’icone devant le nom de l’export), soir en créant un marque-page…

Bon j’ai mes petits à poser à leur centre aéré et pas mal de taff aujourd’hui, on terminera cela ce soir
Je pense que je vais packager un module datatables qui remplacera les listes natives de dolbarr, je le mettrais au même prix de mon ancien module d’export V2 (15€) qui n’a plus d’utilité avec la 3.3

1 « J'aime »

si tu veux voir du datatables en action :wink:

http://demo.speedealing.com
login: demo
pwd: demo

Un petit UP pour annoncer que je prépare la version 3.3 de ce module.

La Principale nouveauté sera l’utilisation de datatable non seulement sur l’écran d’export mais aussi sur toute les listes de dolibarr (pour info, j’en ai référencé 31).
Là où je coince pour le moment c’est pour définir la liste des colonnes disponoble pour chaque liste et comment mémoriser le choix des colonnes, leur ordre et surtout si elle sont filtrable ou pas.
Idéalement il faudrait que je me base sur les tables (dans le sens base de données) pour lister les champs disponibles
La deuxième nouveauté sera un nouveau format d’export pris en charge : le XML
Enfin il sera possible d’accéder aux exports enregistrées par une requete xml-rpc

Oui, se baser sur les tables de la BDD pour afficher en liste les champs dispos « affichables » serait très pratique et permettrait d’afficher des champs/colonnes non disponibles sur un écran précis sur une même table et aussi, de supprimer des champs/colonnes inutiles sur certains écrans.
Il faudrait récupérer les noms des colonnes comme affichés sur l’onglet « structure » dans phpmyadmin, mais je ne m’y connais pas assez pour savoir où sont stockés les noms des colonnes…
Sur dolibarr le souci, c’est que ces requêtes pour l’affichange sont faites en « dur » pour chaque écran et pas dynamiquement… ça chamboule tout le process ! quel chantier !

A mon avis, il faudrait pour cela créer une sorte de module, permettant d’afficher des tableaux « sur-mesure » comme avec votre extension ;), plutôt que d’aller changer le code d’affichage et le rendre dynamique sur les 31 tableaux que vous avez référencés, non ?
à moins que ce soit très simple…

Et aussi, est-ce qu’il serait possible sur certains écrans, de faire apparaître des champs d’autres tables, comme c’est déjà le cas actuellement grâce au foreign key etc… question bête peut-être ?

Bon courage,

C’est un peu plus simple que cela, enfin simple ne veux pas dire facile :whistle:
Les fonctions de création de la requête SQL à partir de tableaux de champs et de filtres sont existantes dans le nouveau module d’export de dolibarr 3.3.
Il faut donc juste les utiliser dans les listes en conservant les spécificités de celle-ci et la possibilité de rendre paramétrable l’affichage par défaut…
Idéalement, il faudrait aussi pouvoir faire fonctionner ces listes dynamiques sans activer datatables, on garderait une compatibilité avec de vieux navigateurs…
Au final, je vais m’orienter vers une table proche du format utilisée pour mémoriser les exports, il suffira de faire un appel pour récupérer les infos et ‹ construire › le tableau. Dans le cas d’un nouveau module avec une liste, celle-ci pourra être ajouté dans la table ou les tableaux codé en dure dans la page…
Du peu que j’ai déjà analysé, chaque liste sera nécessairement différente, ne serait-ce que par la présence ou non des états différents, ou d’actions en bout de ligne…

Pour ce qui est des liens par les clés vers d’autres tables, c’est déjà possible dans la liste que je construit dynamiquement avec les requetes d’export

Je vais finalement créer un nouveau module qui s’appellera « listtables », le module d’export n’ayant plus raison d’être avec la 3.3

Ce nouveau module permettra d’accéder comme avec l’ancien au liste d’export pré-enregistrés sous la forme d’un tableau mais donnera accès au fonctionnalité datatables sur la majorité des listes de dolibarr
Un écran d’administration permettra d’accéder aux définition des listes et de sélectionner les colonnes que l’on souhaite afficher par défaut, ainsi que celle qui seront filtrable.
Il sera possible d’accéder aux champs supplémentaires directement sur les listes si on en a l’habilitation.

A vue de nez j’en ai pour une bonne semaine de codage. Le module sera mis en vente au même prix que l’ancien module d’export soit 15€

voici à quoi cela va ressembler

Listcommande.png

magnifique ! Rien d’autre à dire que bravo :happy:

Je viens de terminer la première liste paramétrable fonctionnelle pour les commandes.
Quelques remarques sur les grandes lignes d’orientation de mon développement.
Une table en base de données contiendra la définition des listes en terme de présentation, mise en forme et filtrage
le paramétrage sera stocké en base en json dont voici le modèle pour un champ:

"s.ville": { //-\> nom de la colonne dans la base de données "name": "Town", //-\> traduction de l'entête de colonne "align": "left", //-\> alignement du champs dans le tableau "type": "Text", //-\> format du champs (utilisé pour le filtrage et la mise en forme) "enabled" : "true", //-\> autorise ou non l'accès au champs (dans la liste) "visible" : "false", //-\> affichage ou non du champs par défaut "filter" : "false"}, //-\> possibilité de filtrer ou non le champs par défaut

Ce paramétrage sera accessible à partir d’un écran d’administration accessible à l’administrateur, chaque champs correspondra à une lignes avec les données paramétrables.

Comme je suis un inquiet de nature, je pense conserver dans un champ la définition par défaut, pour permettre de revenir en arrière si on le souhaite…

Je vais finaliser les écrans d’administrations et puis je m’attaquerais à chacune des 31 listes, a vu de nez et de part mes developpements en cours, rien ne sera prêts avant fin avril…

Je n’ai pas encore regardé l’aspect des extrafields, ce sera pour plus tard…

Je viens de réaliser ma seconde liste, il m’a fallut une heure environ pour la convertir
je vais voir maintenant ce qui est refactorable pour optimiser la conversion

J’ai profité de ce long week-end pour basculer mon site de démonstration en 3.3.1 et pour avancer sur la mise en forme des listes en datatables.
Les premières listes mises à jour sont en ligne(proposition commerciales, commande, facturation et liste d’export enregistré).
je vais attaquer l’écran d’administration la semaine prochaine, j’espère avoir quelquechose de stable pour la fin de la semaine prochaine.

Les fonction avancé de mise en page du forum étant HS, voici un lien qui présente l’avancement et les fonctionnalités du prochain module.
et en particulier l’écran d’administration qui permettra d’organiser les tableaux comme on le souhaite :
définir le nom des champs, ordre des champs, ajoutable ou non dans la liste de choix, filtrable ou pas…
cerise sur le gateau la possibilité de rajouter des nouveaux champs sur le tableaux (soit existant dans la table, soit calculé…)
http://www.benke.fr/index.php?option=com_content&view=article&id=46:gestion-des-lignes-dynamiques&catid=18:dolibarr&Itemid=25

Je ferai en sorte que le module soit terminé pour le devcamp de fin avril, j’expliquerai aux développeurs comment utiliser cette fonctionnalité dans leur code.

Un petit UP pour annoncer que le module d’administration des listes est terminé.
Il me reste à finaliser les dix listes que j’ai prévue de rendre dynamique pour la première version et dont voici la liste :
Liste des clients
Liste des prospects
Liste des fournisseurs
Liste des contacts
Liste des propositions commerciales
Liste des commandes clients
Liste des commandes fournisseurs
Liste des factures clients
Liste des produits
Liste des contrats

Ainsi que la liste des exports préenregistrées

Si tous se passe normalement, ce nouveau module sera disponible ce vendredi (pour fêter dignement le devcamp)

Bonjour,
Est-ce que le module est déjà en vente ? Je ne le trouve pas sur le store ?
Merci d’avance

Bonjour la réponse est non, je ne touche plus terre depuis quelques mois
C’est dans ma liste de chose à terminer durant les vacances.
J’ai un peu changé mon fusil d’épaule au sujet de ce développement; le module permettra de créer ses propres listes sans écraser celle natives de dolibarr