Product ExtraFields avec dictionnaires imbriqués

Bonjour,
C’est mon premier projet de module custom avec Dolibarr et j’aurais besoin de petits conseils pour être sûr de procéder de la bonne manière.

Je souhaiterai que mon plugin ajoute des champs supplémentaires basés sur des dictionnaires (en liste déroulante) lors de la création/modification d’une fiche produit.
Ces champs supplémentaires sont des découpages géographiques personnalisés imbriqués et je souhaitais les faire apparaitre dans l’ordre suivant :

  • RegionCustom : une fois que le champs natif Pays de Dolibarr est sélectionné
  • SousRegionCustom : une fois que le champs RegionCustom est sélectionné
  • ZoneLocaleCustom : une fois que le champs SousRegionCustom est sélectionné

J’ai commencé à créer le module via le ModuleBuilder et j’ai 3 petites interrogations :

  • La création de dictionnaires ne fonctionne pas encore sur la v18, dois-je pour l’instant me contenter de créer mes 3 objets (1 par champs) et les alimenter plus-tard par importation ?
  • Dans les tables SQL générées dois-je remplacer « llx_ » par mon préfixe de base ou par le préfisxe ##PREFIX## ?
  • Pour la table du découpage géographique parent (llx_monmodulecustom_regionscustom) j’ai besoin de faire appel a une clé étrangère sur la table ##PREFIX##c_country native et j’ai lu dans la doc que ce n’était pas faisable. Avez-vous des conseils pour me permettre de lier les valeurs RegionCustom aux Pays de Dolibarr afin de pouvoir afficher les valeurs dans la liste déroulante du selon le pays natif sélectionné ?

Voici le code généré par le ModuleBuilder pour « llx_monmodulecustom_regioncustom.sql » :

CREATE TABLE llx_monmodulecustom_regioncustom(
	-- BEGIN MODULEBUILDER FIELDS
	rowid integer AUTO_INCREMENT PRIMARY KEY NOT NULL, 
	ref varchar(128) NOT NULL, 
	label varchar(255), 
	description text, 
	fk_pays integer(11) NOT NULL
	-- END MODULEBUILDER FIELDS

Voici le code généré par le ModuleBuilder pour « llx_monmodulecustom_regioncustom.key.sql » :

ALTER TABLE llx_monmodulecustom_regioncustom ADD INDEX idx_monmodulecustom_regioncustom_rowid (rowid);
ALTER TABLE llx_monmodulecustom_regioncustom ADD INDEX idx_monmodulecustom_regioncustom_ref (ref);
ALTER TABLE llx_monmodulecustom_regioncustom ADD INDEX idx_monmodulecustom_regioncustom_fk_pays (fk_pays);
ALTER TABLE llx_monmodulecustom_regioncustom ADD CONSTRAINT llx_monmodulecustom_regioncustom_fk_pays FOREIGN KEY (fk_pays) REFERENCES llx_c_country(rowid);

Voici le code généré par le ModuleBuilder pour « llx_monmodulecustom_regioncustom_extrafields.key.sql » :

ALTER TABLE llx_monmodulecustom_regioncustom_extrafields ADD INDEX idx_regioncustom_fk_object(fk_object);

Voici le code généré par le ModuleBuilder pour « llx_monmodulecustom_regioncustom_extrafields.sql » :

create table llx_monmodulecustom_regioncustom_extrafields
(
  rowid                     integer AUTO_INCREMENT PRIMARY KEY,
  tms                       timestamp,
  fk_object                 integer NOT NULL,
  import_key                varchar(14)                          		-- import key
) ENGINE=innodb;```

Pour l’instant, impossible pour moi d’afficher les champs supplémentaires dans la création de mes fiches produits.

Salut,

Est-ce que tu as regardé ce post ? Il y a pas mal d’infos sur le sujet :

1 « J'aime »

et sinon il y a aussi customTabs dans le dolistore