Bonjour,
Nous sommes en train de migrer d’une13.x à la 14.0.3.
Dans le module thirdpart nous avons en prod (13.x) une complementary attribut qui nous permet de récupérer le nombres de factures impayées pour chaque client quand nous affichons /dolibarr/societe/list.php :
($myfunc = function($obj) { try { require_once DOL_DOCUMENT_ROOT.'/api/class/api.class.php'; require_once DOL_DOCUMENT_ROOT.'/api/class/api_access.class.php'; require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/api_invoices.class.php'; $myInvoices = new Invoices(); $ret=$myInvoices->index('t.rowid','ASC',100,0,$obj->rowid,'unpaid',''); return count($ret); } catch (Exception $ex) { return 0; } }) ? $myfunc($obj) : 0
Nous avons découvert en test (14.0.3) que le mot clef php functions n’est plus autorisé. Nous essayons de récrire notre expression comme suit :
((require_once DOL_DOCUMENT_ROOT.'/api/class/api.class.php') &&
(require_once DOL_DOCUMENT_ROOT.'/api/class/api_access.class.php') &&
(require_once DOL_DOCUMENT_ROOT.'/compta/facture/class/api_invoices.class.php') &&
($myInvoices= new Invoices()) &&
($ret=$myInvoices -> index('t.rowid', 'ASC', 100, 0, $obj->rowid, 'unpaid', ''))
) ? count($ret) : 666
Cela ne fonctionne pas : nous affichons les premiers champs du premier (dans l’ordre alphabétique) clients mais arrivé au complementary attribut, nous n’avons plus rien d’affiché et le reste des champs est vide ainsi que le reste de la table.
Il semble que l’appel à $myInvoices->index échoue.
Est-ce que quelqu’un a une solution autre que de modifier le code source afin de ré autoriser le mot clef functions ?
Merci