Line 1:
Line 1:
+
<!-- BEGIN interlang links -->
+
<!-- Do NOT edit this section
+
Links below are automatically managed by PolyglotBot
+
You can edit links on the English source page : Business_Objects -->
+
[[en:Business_Objects]]
+
[[es:Objetos_de_negociado]]
+
[[zh:业务对象]]
+
<!-- END interlang links -->
+
{{TemplateDocDev}}
{{TemplateDocDev}}
Line 20:
Line 29:
= Lien entre Objets métiers =
= Lien entre Objets métiers =
−
Certains objets métiers sont liés les uns aux autres. Ceci est fait dans Dolibarr via la [[Table llx_element_element]]. Mais vousn'avez pas à lire cette table pour récupérer les objets liés à un autre.
+
Certains objets métiers sont liés les uns aux autres. Ceci est fait dans Dolibarr via la [[Table llx_element_element]]. Mais vous n'avez pas à lire cette table pour récupérer les objets liés à un autre.
−
voici la portion de code qui montre comment faire cela:
+
Voici la portion de code qui montre comment faire cela:
+
+
Dolibarr 3.1 et versions ultérieures :
+
<source lang="php">
+
$commande = new Commande($db);
+
$commande->fetch($commande_id);
+
+
+
// on veut récupérer des factures à partir d’une commande dont on connaît l’ID
+
$result = $commande->fetchObjectLinked($commande->id, 'commande', null, 'facture');
+
if ($result <= 0) {
+
// erreur
+
}
+
+
// important : les tableaux créés sont associatifs : leurs clés sont des rowid de llx_element_element.
+
+
+
// FAUX (renverra NULL):
+
$facture_id = $commande->linkedObjectsIds['facture'][0]
+
+
// CORRECT:
+
$facture_id = array_values($commande->linkedObjectsIds['facture'])[0]
+
+
// MIEUX (permet de gérer le cas où il y aurait plus d’une facture) :
+
foreach ($commande->linkedObjectsIds['facture'] as $element_element_id => $facture_id) {
+
// ...
+
}
+
</source>
+
+
Avant Dolibarr 3.1 :
<source lang="php">
<source lang="php">
// This load the array linked_object with objects that link to this one
// This load the array linked_object with objects that link to this one
Line 56:
Line 94:
</source>
</source>
−
Ensuite, on peut manipuler réaliser nos actions métiers.
+
Ensuite, on peut manipuler nos actions métiers.
<source lang="php">
<source lang="php">
Line 71:
Line 109:
// Si on veut que l'action de création soit associé a un utilisateur 'loginuser' particulier,
// Si on veut que l'action de création soit associé a un utilisateur 'loginuser' particulier,
// il faut decommenter cette ligne pour charger les caractéristiques de cet utilisateur.
// il faut decommenter cette ligne pour charger les caractéristiques de cet utilisateur.
−
// Si on laisse commenter, Dolibarr mettra null dans les champs du user de création ou mise a jour.
+
// Si on laisse commenté, Dolibarr mettra null dans les champs du user de création ou mise à jour.
// $user->fetch('loginuser');
// $user->fetch('loginuser');
Line 77:
Line 115:
$id=$mycompany->create($user);
$id=$mycompany->create($user);
−
// Pour charger l'objet
+
// Pour relire l'objet
$mycompany->fetch($id);
$mycompany->fetch($id);
−
// Pour mettre a jour
+
// Pour le mettre à jour
+
$mycompany->nom='Big Brother 2'
$mycompany->update($user);
$mycompany->update($user);
</source>
</source>
== Autres exemples ==
== Autres exemples ==
−
Vous trouverez d'autres exemples de manipulation d'objet Dolibarr (Création, Lecture, Modification, Suppression) dans le répertoire dev/samples du snapshot CVS de Dolibarr.
+
Vous trouverez d'autres exemples de manipulation d'objet Dolibarr (Création, Lecture, Modification, Suppression) dans le répertoire dev/samples du snapshot de Dolibarr.