linkedObjectsIds ne fonctionne plus sur dol 9

Bonjour à tous !

Je rencontre des erreurs lorsque je fais un "$xxxx->linkedObjectsIds[$yyyy>element] dans le script d’un module utilisé dans un dol 9 alors que ça marchait dans dol 8.

Est ce que quelqu’un sait pourquoi ?

Une solution ?

Merci d’avance de votre aide.

Si ma question n’est pas claire, n’hésitez pas à me demander des éclaircissements.

Bonjour,

Je ne connais pas cette fonction et les objects xxxx et yyyyy se sont quoi?

Le plus simple serrait de nous dire ce que vous cherchez à faire comme traitement !

Merci de votre réponse.

Voici l’extrait de code concerné :

        $line->fetchObjectLinked('', '', $line->id, $line->element);
        if ($abonnesupportparution->isSubscribed() > 0 && count($line->linkedObjectsIds['abonnesupportparution']) > 0) {
            $statusAbo = '';
            foreach ($line->linkedObjectsIds['abonnesupportparution'] as $rowid => $idAbo) {

                $aboStatic = new Abonnesupportparution($this->db);
                $aboStatic->fetch($idAbo);
                $statusAbo = $aboStatic->abonnement_etat_code;
                break;
            }

            $abonnesupportparution->abonnement_etat_code = (!empty($statusAbo) ? $statusAbo : "ACTIF");
            $result = $abonnesupportparution->update($this->user);
        } else {
            $abonnesupportparution->datec = dol_now();
            $result = $abonnesupportparution->create($this->user);
        }

Le but est de savoir si il y a des abonnements existant et de soit les mettre à jour, soit les créer…

Est ce plus parlant ?

Bonjour,

Non toujours pas, comment voulez vous que l’on vous aide si l’on ne sait pas ce que sont les objets $line et ou est stocké le abonnesupportparution

Merci de votre patience.

$line est la ligne d’un contrat et $line->linkedObjectsIds[‹ abonnesupportparution ›] est sensé être rempli par cette méthode : fetchObjectLinked de la classe htdocs\core\class\commonobject.class.php ligne 2981 dans dolibarr 9.0.1. Apparemment cette fonction a changé entre Dol 8 et Dol 9. J’aimerais bien comprendre la ou les différences… Ca à l’air de ce passer vers les lignes 3047 à 3071 ou vers les lignes 3075 à 3164. Je penche pour la deuxième impression ( ligne 3075 à 3164 ).

Encore merci d’essayer de m’aider.

Bonjour,

Comme expliqué ici : www.dolibarr.fr/forum/t/empecher-contract-validate-apres-linecontract-acti/29523/4
Je n’irais pas plus loin.