function _getArbo(&$PDOdb, &$TAssetOFLine, $fk_product, $fk_nomenclature) { include_once DOL_DOCUMENT_ROOT . '/custom/nomenclature/class/nomenclature.class.php'; $TRes = array(); //$TNomen = TNomenclature::get($PDOdb, $fk_product); $TCompare = array(); foreach ($TAssetOFLine->TAssetOFLine as $line) { // TODO manque encore les sous-sous-enfants $TCompare[$line->fk_product] = $line; // Ceci me permet de récupérer le fk_nomenclature associé à la ligne de l'OF } if ($fk_nomenclature) { $TNomen = new TNomenclature(); $TNomen->load($PDOdb, $fk_nomenclature); } else { $TNomen = TNomenclature::getDefaultNomenclature($PDOdb, $fk_product); } if (!empty($TNomen)) { foreach ($TNomen->TNomenclatureDet as $key => $TNomenclatureDet) { //Vérification que le produit de la nomenclature est bien dans la liste des lignes de l'OF if (isset($TCompare[$TNomenclatureDet->fk_product])) { $TRes[$TNomenclatureDet->fk_product] = array(0 => $TNomenclatureDet->fk_product, 1 => $TNomenclatureDet->qty, 'childs' => _getArbo($PDOdb, $TCompare[$TNomenclatureDet->fk_product], $TNomenclatureDet->fk_product, $TCompare[$TNomenclatureDet->fk_product]->fk_nomenclature)); } } } return $TRes; }