Bonjour,
J’ai ajouté un extrafield dans les commandes pour calculer le jour de la semaine à partir d’une date (elle même stockée dans un extrafield). Voici le code :
($jours=['Dim', 'Lun', 'Mar', 'Mer', 'Jeu', 'Ven', 'Sam']) ? $jours[(date('w', $object->array_options['options_cde_datearr']))] : '...'
Quand c’est la commande qui est affichée, tout se passe bien. Par contre le champs reste vide quand on affiche la liste des commandes.
J’ai essayé de recharger l’objet avec le code proposé par l’info bulle : tout se bloque, je pense que ça créé un appel récursif infini…
Merci d’avance pour votre aide
ksar
Mai 29, 2020, 8:15
2
Bonjour,
Oui c’est la limite des champs calculés, dans les listes l’objet $object n’est plus le même que dans les card…
Je comprends. Dans ce cas, comment peut-on faire pour recharger le même « object » sans causer une récursivité infinie ?
Je me réponds tout seul : la solution la plus simple (mais pas très élégante) est de modifier le fichier list.php dans commande comme décrit ici :
En effet, après avoir testé, cela ne fonctionne pas sur les listes mais uniquement en mode fiche.
Après une petite recherche sur le forum, j’ai trouvé ça : www.dolibarr.fr/forum/t/champ-calcule-ds-extrafields/27994/2
En testant, si tu ajoutes ce code après la ligne 477 du fichier htdocs/fichinter/list.php, cela devrait fonctionner
$object = new Fichinter($db);
$object->fetch($obj->rowid);
$object->array_options = array();
$object->fetch_optionals($obj->rowid);
Je te met le lien vers l…
ksar
Mai 29, 2020, 9:01
5
Oui c’est ça, ou alors tenter de faire une equation si l’extrafield n’existe pas, il faut le charger.