MyList

De Documentations Patas-monkey
Aller à la navigation Aller à la recherche
Ce Module permet la création de listes personnalisées,

il est aussi possible :

  • de créer des sommes, des cumuls et des moyennes des champs numériques présent dans la liste
  • de créer une éditions au format PDF de la liste
  • de générer des export au format CSV des listes

Présentation

Le Module myList permet de créer vos propres listes personnalisées à partir des informations contenues dans votre base de données et de les rendre accessibles depuis les menus de Dolibarr. La récupération des informations est effectué par requête SQL.

Depuis les listes personnalisées, différentes actions peuvent être effectuées à partir de requêtes complémentaire de traitement (suppression, mise à jour …).

MyList est livré avec trois fichiers d'import de listes desquels vous inspirer pour créer vos propres listes : contacts à rappeler, liste des factures impayées et chiffre d'affaires.

myList inclue aussi :

Les sommes et moyennes des champs calculés des myList à l'écran et sur l'édition

Des éditions PDF

myList inclue aussi deux nouveaux types de champs permettant l'affichage d'un tooltip des valeurs d'un champ supplémentaire issue d'une liste ou de dictionnaires.

Configuration des fonctionnalités du module

Configuration

La configuration du module s'effectue depuis la page d'administration des modules accessible par les menus Accueil > Configuration > Modules en cliquant sur l'icône ou en bout de ligne.

La page de configuration du module myList contient les paramétrage apportés par myListMore. Mylistmore ne nécessite donc pas de paramétrage propre.

L'activation de l'export permettra l'extraction des données présentes dans les listes au format CSV pour un retraitement ultérieur.

Vous pourrez enfin activer les éditions et choisir celle utilisée par défaut dans le tableau de génération des éditions.

https://www.youtube.com/watch?v=1ZKnTFTGxfM

Permissions

es accès aux fonctionnalités du module peuvent être restreints aux utilisateurs et groupes existants ou créés ultérieurement à l'installation du module. Cliquez sur le – pour ajouter un permission. Une permission accordée est symbolisée par un coche verte ( ).

  • Permissions utilisateurs et groupes
Les accès aux fonctionnalités du modules peuvent être restreints aux utilisateurs et groupes, depuis leur fiche puis onglet Permissions, selon les permissions
  • Permissions par défaut
Les permissions par défaut (Accueil > Configuration > Sécurité > Permissions par défaut), accordées à tout utilisateur créé ultérieurement à l'installation du module, si il n'est pas ajouté à un groupe, sont les suivantes

Démarrage

Les fonctionnalités de myList sont accessibles depuis l'onglet de menu principal Outils Patas-M. Les fonctionnalités de MyListMore s'ajoute à celles de MyList lors de la création de nouvelles listes. Votre menu secondaire présente alors les entrées de menu suivantes :

  • myList : l'entrée principale myList permet d’afficher toutes les listes définies dans votre environnement (même si celles-ci ne sont pas actives). En cliquant sur le titre de la liste, on peut visualiser la liste. Cet écran est très utile lors du développement d’une liste qui n’est pas encore active. Il est cependant préférable de tester ces listes sur un environnement de test puis d’utiliser la fonction d’import/export pour la mettre en place en production.
  • Nouvelle liste : cette entrée vous affichera la page de création d'une nouvelle liste.
  • Mes Listes : le lien Mes listes permet d’afficher la liste des listes présentes dans votre environnement. Le lien en début de ligne vous permet d’afficher le résultat de la requête de la liste en plus de ses résultats.
  • Importer une liste : cette entré affichera une page permettant de copier un fichier d'import d'une liste au format XML. (Voir "Import d'une liste" plus bas).

Création d'une liste

Ouvrez la page de création d'une liste depuis le lien de menu Outils Patas-M > Mylist > Nouvelle liste :

Libellé

le libellé sera affiché en tant que titre de la page d'affichage de la liste.
 Description un texte de présentation de la liste
 Titre du menu le titre sera affiché dans les menus de Dolibarr en tant que lien d'accès à la liste
 

Menu principal et Menu secondaire

pour déterminer l'emplacement de la liste dans les menus Dolibarr, Il est nécessaire de les indiquer en remplissant les champs avec leur nom exact.

Les valeurs à renseigner ici sont présentes dans les URL des menus :

Exemple du menu principal tiers :

...htdocs/societe/index.php?mainmenu=companies&leftmenu=

Exemple d'un menu secondaire :

...htdocs/societe/index.php?leftmenu=thirdparties

 Onglet dans l'élément les résultats de la liste peuvent être affichés dans un onglet ajouté sur les fiches de l'élément sélectionné dans cette liste (tiers, produits, projets, catégories de tiers et de produits) et filtrés pour n'afficher que les résultats en lien avec lui-même.

Pour faire le lien entre le myList et l'element sélectionné, il faut utiliser la constante #ID# qui transmettra la valeur à la requete pour filter la donnée.

 Habilitations Dolibarr possède nativement des fonctionnalités avancées pour gérer les droits d'accès à ses menus. Il est possible d'utiliser ce champ pour saisir une condition d'habilitation afin d'accéder au contenu de la page si la condition n'est pas respectée, le menu sera grisé.

Généralement les habilitations sont définies de la manière suivante : $user->rights->élément->droit où élément correspond à un module de Dolibarr (devis, commande, projet, …) et droit à l’habilitation sur le module (lire, écrire, paramétrer...).

Par exemple pour autoriser l’accès uniquement aux utilisateurs ayant accès en lecture aux propositions commerciales il faut saisir $user->rights->propale->lire.

Pour repérer l’habilitation que l’on souhaite utiliser, une astuce consiste à aller dans le fichier de configuration du module gérant cette habilitation.

 Fichier de langue afin de rendre plus explicite les noms de variable lors de leur saisie et les entêtes de colonnes sur les tableaux, il est possible d’utiliser les fichiers de traductions.

Il suffit d’ajouter un ou plusieurs noms de fichiers de langues séparé par un #

Si le fichier de langue n’est pas déposé dans le dossier du noyau de Dolibarr, il faut ajouter @nomdumodule à celui-ci.

 Auteur
 Export CSV conditionne l'affichage d'un bouton d'export CSV du résultat de la liste
 Document imprimable sélectionnez ici l'orientation du PDF qui vous sera proposé par défaut pour générer les résultats de vos listes.
Note : Pour pouvoir sélectionnez les documents, ils doivent avoir été activés dans la configuration du module
 Requête du tableau requête SQL qui va définir l'affichage des données
 Requête de traitement permettra de paramétrer un traitement sur les résultats de la liste comme DELETE, UPDATE
 Champs personnalisés par défaut les champs personnalisés saisis ici permettent de définir un ensemble de variables utilisées par la requête pour pré-filtrer des champs qui ne sont pas forcément affichés.

Exemple de création d'une liste simple

Page de création

Pour l'exemple, créons une liste des produits et services affichant leur prix de vente, de revient et PMP, accessible depuis le menu principal Produits/Services :

Ouvrez la page de création d'une nouvelle liste et saisissez les données ci-contre puis terminez la première étape de création de la liste en cliquant sur le bouton Créer
Une fois la liste créée, trois nouveaux champs sont affichés et peuvent être modifié en édition de la fiche :
  • Export CSV autorisé : cette fonctionnalité permettra l'export CSV des résultats de la liste pour un retraitement ultérieur.
  • Forcer l'affichage de tous les résultats : cette fonctionnalité forcera l'affichage de tous les résultat de la liste sans filtrage.
Selon la complexité de votre requête et la quantité d'information à traiter, activer cette fonctionnalité peut ralentir le système
  • Liste active : suite à sa création, une liste est par défaut, Inactive. Modifiez son état pour permettre son affichage depuis les liens de menus déclarés sur sa fiche.

Trois boutons sont présent en bas de l'écran :

  • Modifier vous permettra d'entrer en édition de la liste pour en modifier la requête ou tout autre élément (menus d'accès, onglets d'affichage …
  • Importation / Exportation de la page générera le fichier XML que vous pourrez modifier avant de le copier pour l'exporter
  • Supprimer effacera la liste de votre base de données. Désactivez toujours une liste avant de la supprimer. Si vous effectuez une suppression sans avoir désactivé la liste auparavant, elle restera présente dans votre base de donnée et sur votre interface, mais vidée de son contenu|warn

Champs de la liste

A partir de l'écran de la liste, il est possible de créer des champs, cliquez sur le bouton Nouveau champ ou le l'icone (+) en bout de titre:

  • Nom du champ : nom du champ tel qu'il est présent dans les tables de Dolibarr
  • Alias : il s’agit de l’alias du champ dans le sens base de données. Cet alias n’est pas obligatoire
  • Nom : titre de colonne affiché dans la liste
  • Largeur : la largeur saisie ici s'appliquera au champ à l'écran
  • Largeur sur l'édition : la largeur saisie ici s'appliquera à l'édition PDF
  • Alignement
  • Actif : le champ sera présent et affiché par défaut. Son affichage pourra être modifié depuis le bouton autres colonnes.
  • Visible : le champ sera affiché dans la liste
  • Filtre par défaut : ajouter un filtre par défaut permet l'enregistrement d'une valeur de filtrage active dès l'affichage de la liste.
Type : ce paramètre suit le fonctionnement des champs supplémentaires natifs de Dolibarr. Cependant, 4 champs ont une mise en forme spécifique :
  • Prix : affiche un nombre en utilisant le format de précision défini dans Dolibarr
  • Pourcent : affiche un nombre en pourcentage
  • Date : affiche une date au format « jour »
  • Boolean : affiche un oui ou un non dans la cellule de la ligne
  • Tooltip : DescTooltip
  • Extrafield de type liste : pour faire ressortir sur une myList la valeur d'un champ supplémentaire sur les fiches, sélectionnez ce type de champ. Son paramètre sera alors NomDeLElement:NomDuCHamp. Par exemple, pour affiche le contenu de l'extrafield extrafield enregistré sur la fiche d'un produit, saisissez product:extrafield.

selon le type de champs crée il d'autres champs peuvent apparaitre en modification

la fonctionnalité aura été activée.


Les champs ci-dessous ne s'appliquent qu'aux champs de type prix ou nombre.
  • Totalisation du champ : affichera un tableau avec les totaux des champs pour lesquels la fonctionnalité aura été activée.
  • Moyenne du champ :affichera un tableau avec les moyennes des champs pour lesquels

Paramètre du champ

Cette fonctionnalité est liée au paramétrage des champs de type clé (rowid et fk_xxx) pour les champs de liste de type texte, liste et statut.

Elle permet de rendre cliquable et/ou filtrable par liste déroulante.

L'alimentation de ce champ nécessite une connaissance des tables et de l'organisation des classes des différents éléments de Dolibarr. Quelques exemples de formation du paramètre

  • 1er cas : liste issue d'une table

Table : c_typent (sans le préfixe) Clé : id Libellé : libelle Paramètre à indiquer dans le paramétrage du champ de myList : c_typent:id:libelle

  • 2ème cas : rendre cliquables les résultats de liste

Exemple de saisie d'un champ cliquable pour les contacts

Nom de la classe de l'élément à rendre cliquable : Facture:
Chemin du fichier définissant la classe : /compta/facture/class/facture.class.php
Nom de la table : :facture
Champ à afficher : nom_du_champ
Paramètre à indiquer dans le paramétrage du champ de myList : Facture:/compta/facture/class/facture.class.php:facture:nom_du_champ
 

Résultat affiché pour l'exemple ci-contre pour les contacts

  • Paramètres les plus fréquemment utilisés :
Tiers : Societe:/societe/class/societe.class.php
Contact : Contact:/contact/class/contact.class.php
Utilisateurs : User:/user/class/user.class.php:user:lastname
Produit : Product:/product/class/product.class.php
proposition commerciale : Propal:/comm/propal/class/propal.class.php
Commande client :Commande:/commande/class/commande.class.php:commande:ref
Facture client : Facture:/compta/facture/class/facture.class.php
Projet : Project:/projet/class/project.class.php
Taches : Task:/projet/class/task.class.php
Contrat : Contrat:/contrat/class/contrat.class.php
Intervention : Fichinter:/fichinter/class/fichinter.class.php
Expédition : Expedition:/expedition/class/expedition.class.php
Commande fournisseur : CommandeFournisseur:/fourn/class/fournisseur.commande.class.php
Facture fournisseur : FactureFournisseur:/fourn/class/fournisseur.facture.class.php
Entrepôt : Entrepot:/product/stock/class/entrepot.class.php
Événement : ActionComm:/comm/action/class/actioncomm.class.php
Banque : Account:/compta/bank/class/account.class.php
Catégorie : Categorie:/categories/class/categorie.class.php

Champ de type catégorie

pour les champs de type catégorie il convient de réaliser le paramétrage suivant :

  • nom de champ : le champs qui fait le lien entre la liste et la catégorie
  • Paramètre de champ : la valeur avant la séparation correspond au nom de la table catégorie (dans l'exemple llx_categorie_member) la seconde valeur correspond au lien vers le champs saisie dans le nom du champ (ici fk_element)

Voici d'autres exemples de paramètre de catégorie :

  • fournisseur:fk_soc
  • societe:fk_soc
  • contact:fk_socpeople
Il est alors possible de sélectionner plusieurs catégories pour le filtrage.

Si l'on utilise la coche, le filtrage de plusieurs catégories se fera par OU au lieur de ET


Filtrage sur les champs

Options de filtrage sur les valeurs du champ.
Durée, Nombre, Somme, Prix Résultat
< 20000 nombres < et = à 200000
200000-300000 nombres de 200000 à 300000 inclus
Date
2008 toutes les dates de 2008 du 01/01 au 31/12 inclus
2006-2009 toutes les dates du 01/01/2006 au 31/12/2009 inclus
>2004 toutes les dates supérieures (ou =) au 01/01/2004
20060401 Tous les éléments correspondant au jour saisi au format AAAMMJJ
Boolean, Liste, Statut : dans le cas d’un filtre booléen, trois valeurs sont sélectionnables dans la liste :
vide : le champ n’est pas filtré
vrai : sélectionne les valeurs saisies à « vrai »
faux : sélection des valeurs saisies à « faux »
Dans les autres cas, cela dépend du paramétrage additionnel du champ.
Une zone au format Check n’est pas filtrable
Dans le cas d'un filtrage par la société d'un utilisateur (par exemple pour filtrer une liste sur les facture) il faut utiliser la valeur #SOCID# comme valeur par défaut sur un champ contenant la clé de la société

Gestion des clés spécifiques (rowid, fk_statut)

  • Champs rowid : les champs rowid ont un fonctionnement particulier dans myList, associés à des paramètres, ils permettent de créer un lien vers l’élément dont ils sont la clé.
Rendre un champ cliquable est sans doute la problématique la plus complexe de myList car elle implique de comprendre un peu l’architecture de Dolibarr.
Tout d’abord il est nécessaire de repérer dans les répertoires de Dolibarr où se trouve la classe de l’élément que l’on souhaite appeler et comment celle-ci se nomme dans le fichier
Si l’on souhaite par exemple rendre cliquable une commande fournisseur, il faut trouver le fichier de la classe associée à cet élément (/fourn/class/fournisseur.commande.class.php) puis regarder le nom de la classe objet (CommandeFournisseur).
  • Champs fk_statut : les champs fk_statut servent à connaître l'état d'un élément. Cependant, le nombre et le type d'état est propre à chaque élément. Les choix sélectionnables sont donc à ajouter aux paramètres supplémentaires des champs. Comme pour le rowid, il convient donc de repérer la classe utilisée pour définir l'élément mis ajouter les états que l'on souhaite utiliser en les séparant par des #.
    • exemple pour les tickets : Ticket:/ticket/class/ticket.class.php:0#1#2#3#5#7#8#9 )
    • pour les factures, il y a une valeur spécifique "P" pour le statut "payé" de la facture ( Facture:/compta/facture/class/facture.class.php:0#1#2#P )
Terminez la création des champs sur le modèle ci-contre

Pour que la liste soit accessible depuis les menus de Dolibarr, il vous suffit de modifier la liste pour la rendre active.

Avant de rendre la liste active, vous pouvez l'afficher avec sa requête en utilisant le lien de menu Outils Patas-M > MyList.

Cette astuce ne fonctionne que sur les liste non encore activées.

Une fois la liste activée, elle apparaîtra depuis les liens définis sur sa page de création.

Le bouton Export en CSV permet d'effectuer un export des résultats de la liste au format CSV pour un traitement externe. Il est nécessaire d'avoir activé la fonctionnalité d'export dans la "Configuration" et dans le paramétrage enregistré lors de la "Champs de la page de création d'une liste".

Si vous avez paramétré la liste pour l'afficher dans l'onglet d'une fiche, les résultats seront filtrés selon l'élément.
Le filtrage de l'affichage des résultats de la liste nécessite la présence d'une condition dans sa requête SQL. Si aucune n'est présente, ajoutez par exemple WHERE 1 = 1

Autres fonctionnalités

Onglet dans l'élément

Il est possible d'afficher un myList comme un onglet d'un élément pour cela il faut utiliser dans la requete SQL un alias particulier pour la table associé à l'élément

prefix Element
s Tiers (société)
p Produit
e Stock (entrepot)
p Projet
p Propal
c commande
f Facture
pf Demande de prix
cf commande fournisseur
ff Facture Fournisseur

Import d'une liste

Il est possible d'enregistrer une liste et le paramétrage de ses champs en important un fichier XML.

Des exemples de liste sont livrés avec le module MyList dans le dossier XMLsample
Depuis la page Outils Patas-M > MyList > Importer une liste, collez le fichier XML dans la zone de saisie et cliquez sur le bouton Lancer l'importation.

Activez la liste depuis sa fiche et elle sera accessible depuis vos menus de Dolibarr

Activez la liste depuis sa fiche et elle sera accessible depuis vos menus de Dolibarr.

Requêtes de traitement

En complément de la requête d'affichage de la liste, une requête de traitement peut donner la possibilité d'effectuer de nouvelles actions, toujours à partir de requêtes SQL.

Partons d'une liste de contacts et ajoutons dans le champ 'Requête de traitement la ligne DELETE FROM 'llx_socpeople' WHERE rowid=#ROWID# permettant leur suppression.
Modifiez l'un des champs pour l'enregistrer au type checkable. La liste devient alors tel que ci-contre.

Les cases à cocher serviront à sélectionner les résultats de la liste auxquels appliquer le traitement indiqué dans la requête. Dans notre exemple, les contacts sélectionnés seront supprimés de la base de données.

Sélection des champs à l'affichage des listes

En activant DataTables dans la "Configuration", vous pouvez choisir les colonnes de la liste à afficher ou non par cases à cocher depuis le bouton Autres colonnes

Questions fréquentes

soucis généraux

Ce chapitre répertorie les difficultés rencontrées avec le module. Vous y trouverez donc des éléments de réponse quant à son utilisation. Si vous rencontrez une autre erreur que celles décrites ci-dessous lors de l'utilisation de ce module :

  1. Désactivez et réactivez le module,
  2. Vérifier sur le ChangeLog si une nouvelle version a été publiée,
  3. Ré-installez/mettez à jour le module,
  4. Vérifiez que le remplacement de fichiers natifs de Dolibarr ne soit pas nécessaire au bon fonctionnement du module.
  5. Vérifiez qu'aucune incompatibilité avec un autre module ne soit indiquée. Le cas échéant, suivez nos préconisations.

Si, malgré ces manipulations, l'erreur persiste, contactez-nous en utilisant le formulaire dédié (http://docs.patas-monkey.com/support/).

Les résultats de la liste ne sont pas ceux attendus

Le meilleur moyen de s'assurer de la qualité de votre requête SQL est d'interroger directement votre base de données via phpmyadmin ou logiciel équivalent. Adapter la requête de la liste pour la coller dans la zone SQL de phpmyadmin. Si les résultats sont les mêmes que la liste, revoyez votre requête.

Dans le cas contraire, myList peut présenter un bug. Contactez-nous ! (docs.patas-monkey.com/support).

Vos listes n'apparaissent pas/plus dans vos menus

Suite à une mise à jour du module ou des listes elles-mêmes, même si vos listes indiquent qu'elles sont activées, vous devrez les réactivez en entrant en édition du champ Active et en enregistrant à nouveau.


Message d'erreur au lancement du myList

Message d'erreur DB_ERROR_NOSUCHFIELD ou DB_ERROR_NOSUCHTABLE

Vous avez indiqué dans votre requête un champ ou une table qui n'existent pas dans votre base de donnée ou qui n'est pas identifiable.

Revoyez votre requête SQL. Il s'agit souvent d'une faute de frappe ou d'une mauvaise liaison dans votre requête.

Le contenu du message vous aidera à identifier l'erreur avec les lignes Code retour dernier accès en base en erreur et Information sur le dernier accès en base en erreur.

Liste supprimée toujours présente

Vous avez supprimé la liste sans la désactiver d'abord. Mylist ne peut plus supprimer la liste : vous devrez nettoyer votre base de données en supprimant la liste de la table llx_mylist depuis phpmyadmin.

Message d'erreur à la création de la liste

Si vous avez effectué une mise à jour de MyList depuis une ancienne version, il est possible que vous rencontriez un message d'erreur à la création d'une liste. Pour le corriger, vous devrez effectuer la requête suivante sur votre base de données : ALTER TABLE `llx_mylist` CHANGE `model_pdf` `model_pdf` VARCHAR(255) NULL DEFAULT NULL;