Peupler une liste créé avec un Attribut Supplémentaire

Bonjour,

Si ceci aide quelqu’un tant mieux.

Je voulais d’un coté repérer des Tiers à l’aide d’une case à cocher.
De l’autre coté retrouver dans les Projets une liste des Tiers avec la case coché.

Première étape: Création de la case à cocher Attributs Supplémentaires dans Tiers
Configuration>Modules/Applications/Configuration de module Tiers>Tab Attributs Supplémentaires (Tiers)>Bouton Nouvel Attribut

Libellé ou clé de traduction : <texte qui va apparaitre à coté de ma case à cocher>
Code de l'attribue : <le nom de la colonne qui sera créé dans la base de donnée tiers_extrafields>
Type : Boolean (case à cocher unique)
Texte d'aide à afficher dans l'info-bulle : <L'aide à l'opérateur si il clic sur le 'i'>
Il y à d'autres champs, ils s'expliquent d'eux même.
Bouton <Enregistrer>

Deuxième étape: Création de la liste de sélection Attributs Supplémentaires dans Projets
Configuration>Modules/Applications/Configuration de module Projets>Tab Attributs Supplémentaires (Projet)>Bouton Nouvel Attribut

Libellé ou clé de traduction : <texte qui va apparaitre à coté de ma case à cocher>
Code de l'attribue : <le nom de la colonne qui sera créé dans la base de donnée projet_extrafields>
Type : Liste issue d'une table
NB: lorsque l'on choisi cette option (Liste issue d'une table) une fenêtre input intitulé valeur apparait. 
C'est ici que nous allons ajouter du code pour lier cette liste aux cases à cocher - voir Troisième Etape.
Texte d'aide à afficher dans l'info-bulle : <L'aide à l'opérateur si il clic sur le 'i'>
Il y à d'autres champs, ils s'expliquent d'eux même.
Bouton <Enregistrer>

Troisième étape : lier les Tiers avec les cases cochés à la liste déroulante dans les projets
(nous aurions pu faire ceci à la deuxième étape mais je voulais passer un peu plus de temps dessus.
Dans l’info bulle nous avons cette aide qui apparait.

Citation
Les paramètres de la liste viennent d’une table
Syntax : table_name:label_field:id_field::filter
Exemple : c_typent:libelle:id::filter
-idfilter est nécessairement une clé primaire int
-filter peut être un simple test (e.g. active=1) pour seulement montrer les valeurs actives
Vous pouvez aussi utiliser $ID$ dans le filtre qui est le ID actuel de l’objet
Pour faire un SELECT dans le filtre, utilisez $SEL$
Si vous voulez filtrer sur un extrafield, utilisez la syntaxe extra.fieldcode=… (ou fieldcode est le code de l’extrafield)
Pour avoir une liste qui dépend d’un autre attribut complémentaire:
c_typent:libelle:id:options_parent_list_code|parent_column:filter
Pour avoir une liste qui dépend d’une autre liste:
c_typent:libelle:id:parent_list_code|parent_column:filter

Dans mon exemple en toute simplicité je rentre le code suivant:

societe:nom:rowid::extra.appaff=1&status=1&fournisseur=0&entity=1

A quoi cela correspond t-il?
societe - c’est le nom de la base de donnée où je vais aller chercher les data de ma liste
nom - c’est le nom de la colonne qui va retourner la valeur affichée
rowid - c’est l’id qui sera lié au nom affiché
extra.appaff - c’est le nom de la colonne dans la table société_extrafields sur laquelle je vais filtré ma liste. Lorsque un Tiers (société) à sa case coché cette valeur est à 1 à la place de NULL
status - c’est le nom de la colonne dans la table société sur laquelle je vais filtré ma liste. Elle correspond à l’Etat [Ouvet/Fermé] de mon Tiers
fournisseur - c’est le nom de la colonne dans la table société sur laquelle je vais filtré ma liste. Elle correspond à l’attribue Fournisseur de mes Tiers. Je vais aller chercher uniquement les Tiers qui ne sont pas fournisseurs.
entity - c’est le nom de la colonne dans la table société sur laquelle je vais filtré ma liste. Elle correspond à l’entité de mon entreprise dans Dolibarr. Je vais aller chercher uniquement les Tiers de l’entité 1.

Conclusion:
Je me retrouve avec une liste des Tiers coché dans mes projets. Nous nous en servons pour repérer nos Apporteurs d’Affaires.

J’espères que cela aide quelqu’un.
Si vous voyez une erreur ou une amélioration n’hésitez pas à répondre ou commenter.

4 « J'aime »

Bel exemple d’utilisation des attributs supplémentaires :slight_smile:
Le plus part des utilisateurs (et parfois des développeurs) oublient souvent tout ce qu’on peut faire avec !

Merci beaucoup @Markingston

1 « J'aime »

Je rejoins @Arre super truc et très bien expliqué !!

N’hésitez pas à partager d’autres trucs si vous en avez :slight_smile:

@+

Je joins ce petit erratum. Il faut une double esperluette &&

Erratum
societe:nom:rowid::extra.appaff=1&&status=1&&fournisseur=0&&entity=1

1 « J'aime »

Bonjour,

merci pour ces explications qui ont l’air de correspondre à ce que je cherche à faire. Mais je n’ai pas réussi, j’ai peut-être besoin d’un peu plus d’explications…

Sur ma fiche client, je note à travers un attribut supplémentaire de type « liste de sélection » le canal par lequel j’ai touché la première fois ce client que j’ai appelé « Canal 1er contact » et qui se traduit par les options suivantes : « Terrain », « Salon », « Entrant », etc.

J’ai besoin que ce même paramètre se retrouve sur chaque fiche projet que je crée pour ce tiers.

J’ai donc créée un attribut supplémentaire sur ma fiche projet de type « Liste issue d’une table », que j’ai aussi intitulé « Canal 1er contact » et dans « valeur » j’ai tapé le code suivant :
societe:Canal 1er contact:canal1ercontact::Canal 1er contact=1,

Ça ne marche pas…
Et je pige pas tout.

Quelqu’un a-t-il une piste pour moi ?

D’avance merci.
Barthélémy