Accéder au "code client" depuis le formulaire Tiers/contacts

Bonjour,

Je suis nouvelle sur le forum et je me suis aidée pour le moment des posts afin de régler mon problème . Simplement actuellement je suis un peu perdue et je me permet de poster par ici .

Voici mon problème : je suis actuellement en train de faire un import Excel dans ma base de données . J’ai des Tiers à entrer ( c’est ok ), des adhérents, ( c’est ok ) et des contacts reliés au Tiers . Mon tableau excel ne me permet pas de relier mes tiers et contacts car j’ai des sociétés ayant le même nom . J’ai pensé relié mes contacts avec le code client pour éviter de passer par le NOM pour la liaison . mais je n’arrive pas à le mettre en place dans le formulaire .

sachant que le « code client » appartient au Tiers il devrait être possible d’y accéder …

J’espère avoir été claire .

D’avance merci .

Bonjour :grinning:
Il me semble que dans Dolibarr on ne peut pas avoir des société avec le même nom. Donc préfixe directement dans ton fichier excel du type:
Maboite (paris)
Maboite (marseille)
etc

Merci de la réponse @dolibarr95 . En fait dans mon Excel il y a un Tiers qui aura plusieurs Contacts et plusieurs adhérents .

J’ai testé de créer une colonne avec un code client pour que quand il y a des doublons je peux copier le même code sur les lignes ayant le même Tiers . De ce fait, lorsque que j’importe des contacts le lien se ferait sur le code client et non sur le nom du Tiers .

J’ai déjà testé en amont ta façon de voir en faisant une concaténation du nom de la société et du code client .

Ma question sur ce poste est de savoir si je peux ajouter dans mon formulaire contact une liste de sélection de code client pour l’import qui serait reliée à mon champ « code client » que je retrouve dans mes tiers . et la même chose avec la partie adhérent .

Après c’est peut être complètement impossible mais je tente quand même .

Encore merci de la réponse

Ma question sur ce poste est de savoir si je peux ajouter dans mon formulaire contact une liste de sélection de code client pour l’import qui serait reliée à mon champ « code client » que je retrouve dans mes tiers . et la même chose avec la partie adhérent .

Sans doute ajouter un champ supplémentaire aux contact via :
dolibarr/societe/admin/contact_extrafields.php
et comme type de champ liste issue d’une table

merci @dolibarr95 je vais tester ça . :+1:

Liste issue d’une table

societe:code_client:rowid::fk_soc= ($SEL$ fk_soc from llx_socpeople where rowid=$ID$)

…à bidouiller :grinning:

@dolibarr95

question idiote mais c’est à mettre dans le code dur ? ou bien dans le tableau dolibarr qui me permet d’ajouter des champs ?

directement via l’interface de paramétrage des champs supplémentaires :
dolibarr/societe/admin/contact_extrafields.php
nouvel attribut -> type -> ajouter liste issue d’une table -> Valeur :
societe:code_client:rowid::fk_soc= ($SEL$ fk_soc from llx_socpeople where rowid=$ID$)

Merci beaucoup de vos réponses . je vais continuer avec ces précieux conseils .

@dolibarr95 suite à quelques tests j’ai put constater qu’en effet j’arrive bien à créer un champ qui me permette d’avoir les différents codes clients, lors de l’import il n’y a aucun soucis . par contre la liaison ne se fait pas .

1ere étape : import de mon tableau excel afin de remplir les Tiers . Les codes clients sont dans l’import dans un champ appellé « code client »

2eme etape : import des adhérents tableau csv . Ajout d’un champ « code_client » avec cette formule dans celui ci ( societe:code_client ) . le code client est bien importé au bon endroite . le nom du tiers aussi .

3eme étape : import des contacts avec le même ajout de champ code client .

en ayant ajouté le code client, la liaison ne se fait pas . lorsque je fais la technique du nome de société + code client ( concaténation dans la même cellule excel ) qui permet de faire la différence . cela fonctionne mais je ne trouve pas cela très « propre » .

Ma question : est-il possible de rendre le champ contenant le code client comme le champ société dans contacts . afin que la liaison puisse se faire ?

Merci

Bonjour :grinning:
j’ai pas tout saisi de la question :upside_down_face:
Peux tu donner un exemple?

oui Bonjour @dolibarr95 :blush:
J’avoue que je ne suis pas ultra claire :smile:

J’ai donc ma base de données en excel à laquelle j’ai généré un code client pour chacunes des lignes . Ce code client est conforme au format Dolibarr .

Dans le formulaire Tiers, mon code client se range bien dans le champ qui est déjà là à la base . jusque là tout va bien .

Dans la partie Adhérents, j’ai fais une création de champ avec le code client du Tiers . Je pensais que cela pourrait faire le lien vers le Tiers . Mais aucun lien ne se fait et la seule manière de le faire est de le faire depuis la fiche en cliquant « lien tiers dolibarr » ce qui ne peut apparement pas se faire depuis l’import .

Le soucis est surtout dans l’import de contact lié au Tiers . Étant donné que j’avais des doublons sur les noms de Tiers, j’avais dans un premier temps fais un nouveau nom pour chaque Tiers sous excel avec ce format : SOCIETE/CODE_CLIENT . Mais le soucis était que pour le client ça ne parait pas ultra propre . L’idée était donc de lui ajouter une information supplémentaire (le code client) pour qu’il puisse faire la différence entre 2 Tiers . Mais lors de l’import il ne le prend pas en compte et cela bug à cause des doublons voir + des nom de Tiers .

J’espère avoir été plus claire . Merci

Salut @helenetitan,

le « lien » est fait dans la table llx_adherent dans le champs fk_soc.

Ce champs n’est pas accessible via les outils d’import, il faut le mettre à jour via un requêteur si tu en as besoin (phpmyadmin par exemple)

Le contenu de fk_soc, doit être le rowid de llx_societe.

hello @Arre en effet le rowid fonctionne plutôt bien pour les contacts . je suis en train de me pencher sur l’adhérent . merci

ah … oui … c’est aussi valable pour les contacts.
(désolé, je n’ai pas lu toute ta prose ^^)

si tu sais lire le php : regarde l’url qui permet la mise à jour d’une telle info, puis regarde le code du fichier concerné : c’est un bon moyen de « faire connaisance » avec les données de dolibarr.

Si tu veux creuser et « comprendre » un peu plus, sans apprendre tout le code par coeur ^^ (https://github.com/dolibarr/dolibarr)

-> https://doxygen.dolibarr.org/

@Arre
pour la partie adhérents :

il y a en effet la solution avec adminer qui fonctionne bien à la mano . quand je prend dans llx_adherent le champ societe (dans lequel j’ai mis le code client ) et que je le mets dans fk_soc . cela fonctionne bien et ça me fais la liaison . Maintenant je dois trouver la requête qui me permette de le faire d’un coup et d’éviter de le faire ligne par ligne :sweat_smile:

c’est presque impossible avec une requête. (sauf à passer par des tables temporaire… mais c’est un vrai casse tête)

passes plutôt par un outils SUPER PUISSANT : excel lol (ou equivalents)

dans une feuille, tu mets tes adhérents (export de la table)
dans une autre feuilles, tu mets tes sociétés (export de la table)
dans une 3eme tu mets ta correspondance (par nom, par numéro par id, par ce que tu veux …)

et à grand coup de recherches verticales (fonction RECHERCHEV)
tu te construit la table de correspondance entre rowid de la table adhérent et rowid de la table fournisseur.
tu n’as plus qu’alors à créer les requetes SQL à coup de concatener
un truc du genre
=concatener(« UPDATE llxpouettepouette SET fk_soc =’ »;ta celule qui contient l’id société;"’ WHERE rowid=’";ta cellule qui contient le rowid de l’adhérent;"’;")
tu n’auras plus qu’à coller tous les UPDATE dans une fenêtre pour les exécuter (directement dans mysql, dans phpmyadmin, etc… )

nb: j’ai pas vérifié la syntaxe hein …

J’avais déjà fais un champ qui permette de récupérer le code client et je l’avais inséré dans le champ societe de dolibarr . il y a une requête qui fonctionne parfaitement et qui du coup fait le lien vers le Tiers

la requête :

UPDATE llx_adherent SET fk_soc = societe

cela me permet de copier et coller et ainsi afficher la société et lier en même temps . Arrivée au bout !!
J’ai laissé la solution pour ceux qui voudraient pouvoir faire le même genre d’import qui soit opérationnel .

1 J'aime

ah oui effectivement, dans ce cas, c’est possible.
coup de chance que le champs société et fk_soc soient dispo dans la même table ^^
bien vu :slight_smile:

mais conserve mon astuce sous le coude, tu verras, c’est ultra pratique parfois (surtout pour les migrations/reprises de données)