Je cherche à retranscrire une requête sql en un extrafield de case à cocher issue d’une table.
Voici la requête sql :
$sql1 = "SELECT *";
$sql1.= " FROM ".MAIN_DB_PREFIX."commande as co ";
$sql1.= " , ".MAIN_DB_PREFIX."commandedet as cod";
$sql1.= " WHERE co.entity = ".$conf->entity;
$sql1.= " AND cod.fk_commandefourndet = 0";
$sql1.= " AND co.fk_statut > 0";
$sql1.= " AND cod.product_type = 0";
$sql1.= " AND cod.fk_product IS NOT NULL";
$sql1.= " AND cod.fk_commande = ".$objp->rowid;
J’ai modifié le core (commande/list.php) en ajoutant une requête SQL pour vérifier un traitement.
Je me suis dis que peut-être un extrafield serait une meilleure solution (plutôt que de toucher au core de Dolibarr).
L’idée est d’implémenter ce champs supplémentaire sur la fiche commande afin de savoir si cette requête est TRUE ou FALSE.
Si TRUE alors la case à cocher est « checked »
Si FALSE alors la case à cocher est « no checked »
Je continue mon petit module mais je fais face à le même genre de problématique.
Je précise qu’il n’est pas possible de passer par un hook pour ce que je veux faire.
Je souhaite afficher la référence de la commande client dans objectline_view.tpl.php pour chaque ligne de produit dans la commande fournisseur.
Voici la requête qui le permet :
SELECT c.ref_client
FROM llx_commande_fournisseur as cf
,llx_commande_fournisseurdet as cfd
,llx_commande as c
,llx_commandedet as cd
,llx_product as p
WHERE cf.rowid = $ID$
AND cf.rowid = cfd.fk_commande
AND cd.fk_commandefourndet = cfd.rowid
AND c.rowid = cd.fk_commande
AND p.rowid = cd.fk_product
J’ai créer un extrafield line (liste issue d’une table) pour la commande fournisseur.
Mais là où je bloque c’est sur la syntaxe de la commande…Et la doc n’est pas très fournie sur le sujet.
la valeur contenue dans la variable « $ID » concerne le rowid de l’objet commande ou commande fournisseur
de ce fait, je ne pense pas qu’il soit possible de réaliser ce que vous cherchez à faire avec les propriétés des extrafields et leur implémentation classique
pour ce qui concerne votre demande, je ne comprends pas comment vous voulez effectuer ces liaisons entre commande clients et commandes fournisseurs - quid d’un produit présent dans plusieurs commandes clients pour une seule commande fournisseur - ou encore il manque un filtrage selon le statut de vos commandes clients afin de ne pas prendre en compte les commandes soldées…
Merci pour votre retour.
Florian Henry m’a donné la syntaxe : commande:ref:rowid:: pour avoir une liste des commandes clients
Mais sur ma version de doli cela ne fonctionne pas pour le moment…
Mais visiblement c’est possible avec un doli plus récent…
Pour le lien (ligne) entre les commandes clients et les commandes fournisseurs, j’utilise simplement cette ligne AND cd.fk_commandefourndet = cfd.rowid
La requête ci-dessus fonctionne bien mais je suis en train de faire un module qui reprend toutes mes modifications du core.
C’est pour cela que je souhaite passer par un hook/extrafield.
Quand je vérifie dans les logs, j’ai bien chaque ref_client dans la variable $array_options.
Mais dans la base de données/llx_commande_fournisseurdet_extrafields, le fk_objet s’implémente bien mais pas la colonne ref_client (qui correspond à l’attibut de mon extrafield
J’ai finit mon module pour ma version de Dolibarr (3.9.2) qui reprend toutes les modifs du core que j’avais faite et pas d’autres choses.
Ces modifications correspondait à notre mode de fonctionnement, le Dropshipping.
Couplé aux modules restock et customtooltip des patas-monkey, c’est bien pratique.
Le module permet donc une cohérence visuelle et fonctionnelle sur les listes ainsi que sur les fiches de commandes clients et fournisseurs.
En petit bonus, j’ai implémenter le renvoi des liens de commandes vers une boutique Prestashop.