Extrafield Champ Calculé: Difference between revisions
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>== | ||
=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, $objectoffield ($object avant la V17). | 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). | ||
[[File:Warning1.png|left|thumb]] depuis la V17 il ne faut plus utiliser $object/$obj mais $objectoffield | |||
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. | 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. | ||
Revision as of 13:36, 9 November 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, $objectoffield ($object avant la V17).
depuis la V17 il ne faut plus utiliser $object/$obj mais $objectoffield
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.
Exemple de formule:
$objectoffield->id < 10 ? round($objectoffield->id / 2, 2) : ($objectoffield->id + 2 * $user->id) * (int) substr($mysoc->zip, 1, 2)
Exemple pour recharger l'objet:
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetch($objectoffield->id)) ? $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:
(($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é'
Type de champ extrafield utilisable
Numerique Entier Decimale
Date Date/heure
Prix
propriétés d objet utilisable
| NOM DE LA PROPRIETE | TYPE DE LA PROPRIETE | CALCULABLE ? |
|---|---|---|
| PRIX | Decimale | OUI |
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
Afficher l'adresse d'un tiers
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($objectoffield->socid) > 0)) ? $reloadedobj->address: ' '
Afficher le champ complémentaire d'un tiers
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($objectoffield->fk_soc ? $objectoffield->fk_soc : $objectoffield->socid) > 0)) ? $reloadedobj->array_options['options_soc_xx_conv'] : '-1'
Afficher la balance d'un tiers
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($objectoffield->rowid)) && ( $ret=$reloadedobj->getOutStandingBills())
) ? $ret['opened']: 666
Afficher le nombre de facture ouvertes d'un tiers
(($reloadedobj = new Societe($db)) && ($reloadedobj->fetchNoCompute($objectoffield->rowid)) && ( $ret=$reloadedobj->getOutStandingBills())
) ? sizeof($ret['refsopened']): 666
Afficher le champ personnalisé d'un produit
(($reloadedobj = new Product($db)) && ($reloadedobj->fetch($objectoffield->fk_product))) ? $reloadedobj->array_options['options_xxxxxxxxx'] : 'Not found'