Extrafield Champ Calculé: Difference between revisions

m
no edit summary
mNo edit summary
Tag: 2017 source edit
mNo edit summary
Tag: 2017 source edit
Line 1: Line 1:


==<span style="color:red">PAGE EN COURS  D ECRITURE</span>==
==<span style="color:red">PAGE EN COURS  D ECRITURE</span>==
[[File:Warning1.png|left|thumb]] depuis la V17 il ne faut plus utiliser $object/$obj mais $objectoffield


=Principe=
=Principe=


Vous pouvez entrer ici une formule utilisant les propriétés objet ou tout code PHP pour obtenir des valeurs dynamiques. Vous pouvez utiliser toute formule compatible PHP, incluant l'opérateur conditionnel "?", et les objets globaux : $db, $conf, $langs, $mysoc, $user, $object.
Vous pouvez entrer ici une formule utilisant les propriétés objet ou tout code PHP pour obtenir des valeurs dynamiques. Vous pouvez utiliser toute formule compatible PHP, incluant l'opérateur conditionnel "?", et les objets globaux : $db, $conf, $langs, $mysoc, $user, $objectoffield ($object avant la V17).
ATTENTION : Seulement quelques propriétés de l'objet $object pourraient être disponibles. Si vous avez besoin de propriétés non chargées, créez vous même une instance de l'objet dans votre formule, comme dans le deuxième exemple.
ATTENTION : Seulement quelques propriétés de l'objet $objectoffield pourraient être disponibles. Si vous avez besoin de propriétés non chargées, créez vous même une instance de l'objet dans votre formule, comme dans le deuxième exemple.
Utiliser un champs calculé signifie que vous ne pouvez pas entrer vous même toute valeur à partir de l'interface. Aussi, s'il y a une erreur de syntaxe, la formule pourrait ne rien retourner.
Utiliser un champs calculé signifie que vous ne pouvez pas entrer vous même toute valeur à partir de l'interface. Aussi, s'il y a une erreur de syntaxe, la formule pourrait ne rien retourner.


Exemple de formule:
Exemple de formule:
<syntaxHighlight lang="php">
<syntaxHighlight lang="php">
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)
$objectoffield->id < 10 ? round($objectoffield->id / 2, 2) : ($objectoffield->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)
</syntaxHighlight>
</syntaxHighlight>


Exemple pour recharger l'objet:
Exemple pour recharger l'objet:
<syntaxHighlight lang="php">
<syntaxHighlight lang="php">
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($objectoffield->id)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1'
</syntaxHighlight>
</syntaxHighlight>
Un autre exemple de formule pour forcer le rechargement d'un objet et de son objet parent:
Un autre exemple de formule pour forcer le rechargement d'un objet et de son objet parent:
<syntaxHighlight lang="php">
<syntaxHighlight lang="php">
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Objet parent projet non trouvé'
(($reloadedobj = new Task($db)) && ($reloadedobj->fetch($objectoffield->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Objet parent projet non trouvé'
</syntaxHighlight>
</syntaxHighlight>


Line 30: Line 32:
Date
Date
Date/heure  
Date/heure  


Prix
Prix




Line 52: Line 52:


=Mise En Application=
=Mise En Application=
($objectoffield->array_options )+($objectoffield->array_options ) Simple addition


($objectoffield->array_options )*($objectoffield->array_options ) Simple Multiplication


 
($objectoffield->array_options )-($objectoffield->array_options ) Simple subtraction
 
 
 
($object->array_options )+($object->array_options ) Simple addition
 
($object->array_options )*($object->array_options ) Simple Multiplication
 
($object->array_options )-($object->array_options ) Simple subtraction




== Afficher l'adresse d'un tiers ==
== Afficher l'adresse d'un tiers ==
<syntaxHighlight lang="php">
<syntaxHighlight lang="php">
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->socid) > 0)) ? $reloadedobj->address: ' '
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($objectoffield->socid) > 0)) ? $reloadedobj->address: ' '
</syntaxHighlight>
</syntaxHighlight>
== Afficher le champ complémentaire d'un tiers ==
== Afficher le champ complémentaire d'un tiers ==
<syntaxHighlight lang="php">
<syntaxHighlight lang="php">
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->fk_soc ? $obj->fk_soc : $object->socid) > 0)) ? $reloadedobj->array_options['options_soc_xx_conv'] : '-1'
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($objectoffield->fk_soc ? $objectoffield->fk_soc : $objectoffield->socid) > 0)) ? $reloadedobj->array_options['options_soc_xx_conv'] : '-1'
</syntaxHighlight>
</syntaxHighlight>
== Afficher la balance d'un tiers ==
== Afficher la balance d'un tiers ==
<syntaxHighlight lang="php">
<syntaxHighlight lang="php">
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->rowid)) && ( $ret=$reloadedobj->getOutStandingBills())
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($objectoffield->rowid)) && ( $ret=$reloadedobj->getOutStandingBills())
) ? $ret['opened']: 666
) ? $ret['opened']: 666
</syntaxHighlight>
</syntaxHighlight>
== Afficher le nombre de facture ouvertes d'un tiers ==
== Afficher le nombre de facture ouvertes d'un tiers ==
<syntaxHighlight lang="php">
<syntaxHighlight lang="php">
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->rowid)) && ( $ret=$reloadedobj->getOutStandingBills())
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($objectoffield->rowid)) && ( $ret=$reloadedobj->getOutStandingBills())
) ? sizeof($ret['refsopened']): 666
) ? sizeof($ret['refsopened']): 666
</syntaxHighlight>
</syntaxHighlight>
== Afficher le champ personnalisé d'un produit ==
<syntaxHighlight lang="php">
(($reloadedobj = new Product($db)) && ($reloadedobj->fetch($objectoffield->fk_product))) ? $reloadedobj->array_options['options_xxxxxxxxx'] : 'Not found'</syntaxHighlight>
676

edits