function closeOF(&$PDOdb)
 {
     global $langs, $conf, $db, $user;
     dol_include_once('/projet/class/task.class.php');
     $TIDOFToValidate = array($this->rowid);
     if ($conf->global->ASSET_CHILD_OF_STATUS_FOLLOW_PARENT_STATUS) {
         $this->getListeOFEnfants($PDOdb, $TIDOFToValidate, $this->rowid);
     }
     foreach ($TIDOFToValidate as $id_of) {
         $of = new TAssetOF();
         $of->load($PDOdb, $id_of);
         // On passe pas un of en prod s'il l'est déjà ou s'il n'est pas au statut validé
         if ($of->rowid <= 0 || $of->status != 'OPEN') {
             continue;
         }
         $of->status = "CLOSE";
         include_once DOL_DOCUMENT_ROOT . '/product/class/product.class.php';
         if (empty($conf->global->OF_ALLOW_FINISH_OF_WITH_UNRECEIVE_ORDER) && !$of->checkCommandeFournisseur($PDOdb)) {
             setEventMessage($langs->trans('OFAssetCmdFournNotFinish'), 'errors');
             return false;
         }
         foreach ($of->TAssetOFLine as &$AssetOFLine) {
             if ($AssetOFLine->type == "TO_MAKE") {
                 if ($AssetOFLine->qty_used == 0) {
                     $AssetOFLine->qty_used = $AssetOFLine->qty;
                 }
                 $AssetOFLine->stockQtyToMakeAsset($PDOdb, $of);
             } else {
                 $qty_needed = !empty($AssetOFLine->qty_needed) ? $AssetOFLine->qty_needed : $AssetOFLine->qty;
                 if ($AssetOFLine->qty_used == 0) {
                     $AssetOFLine->qty_used = $qty_needed;
                 }
                 $AssetOFLine->destockQtyUsedAsset($PDOdb);
             }
         }
         foreach ($of->TAssetWorkstationOF as &$wsof) {
             if ($wsof->fk_project_task > 0) {
                 $t = new Task($db);
                 $t->fetch($wsof->fk_project_task);
                 if ($t->progress < 100) {
                     $t->progress = 100;
                     $t->update($user);
                 }
             }
             if ($wsof->nb_hour_real == 0) {
                 $wsof->nb_hour_real = $wsof->nb_hour;
             }
         }
         $of->save($PDOdb);
     }
     return true;
 }