Extrafield Champ Calculé: Difference between revisions
mNo edit summary Tag: 2017 source edit |
mNo edit summary Tag: 2017 source edit |
||
| Line 9: | Line 9: | ||
Exemple de formule: | Exemple de formule: | ||
<syntaxHighlight lang="php"> | |||
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2) | $object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2) | ||
</syntaxHighlight> | |||
Exemple pour recharger l'objet: | Exemple pour recharger l'objet: | ||
<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($obj->id ? $obj->id : ($obj->rowid ? $obj->rowid : $object->id)) > 0)) ? $reloadedobj->array_options['options_extrafieldkey'] * $reloadedobj->capital / 5 : '-1' | ||
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"> | |||
(($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($object->id) > 0) && ($secondloadedobj = new Project($db)) && ($secondloadedobj->fetch($reloadedobj->fk_project) > 0)) ? $secondloadedobj->ref : 'Objet parent projet non trouvé' | ||
| Line 62: | Line 66: | ||
== Afficher l'adresse d'un tiers == | == Afficher l'adresse d'un tiers == | ||
<syntaxHighlight lang="php"> | |||
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->socid) > 0)) ? $reloadedobj->address: ' ' | (($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->socid) > 0)) ? $reloadedobj->address: ' ' | ||
</syntaxHighlight> | |||
== Afficher le champ complémentaire d'un tiers == | == Afficher le champ complémentaire d'un tiers == | ||
<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($obj->fk_soc ? $obj->fk_soc : $object->socid) > 0)) ? $reloadedobj->array_options['options_soc_xx_conv'] : '-1' | ||
</syntaxHighlight> | |||
Revision as of 20:50, 18 February 2023
PAGE EN COURS D ECRITURE
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. 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. 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:
$object->id < 10 ? round($object->id / 2, 2) : ($object->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)
Exemple pour recharger l'objet:
(($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'
Un autre exemple de formule pour forcer le rechargement d'un objet et de son objet parent:
<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é'
=Type de champ extrafield utilisable=
Numerique Entier
Decimale
Date
Date/heure
Prix
=propriétés d objet utilisable=
{| class="wikitable"
|+ style="width:800px;" | MODULE PRODUIT OBJECT PRODUIT/SERVICE
|-
!style="width:200px;" | NOM DE LA PROPRIETE
!style="width:200px;" | TYPE DE LA PROPRIETE
!style="width:400px;" | CALCULABLE ?
|-
|PRIX
|Decimale
|OUI
|}
=Mise En Application=
($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 ==
<syntaxHighlight lang="php">
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->socid) > 0)) ? $reloadedobj->address: ' '
Afficher le champ complémentaire d'un tiers
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($obj->fk_soc ? $obj->fk_soc : $object->socid) > 0)) ? $reloadedobj->array_options['options_soc_xx_conv'] : '-1'