<?php

class DOA_Donnee
{

    public static function &JavascriptRafraichirArborescence()
    {
        $js = 'CallUrl(\'DOA_Bibliotheque.php?action=AfficherCategoriesImport&ancrage=TreeviewCategories\');';
        return $js;
    }

    /**
     *
     * @param unknown $action
     * @param unknown $TYPE_OBJET
     * @param string $ID_DOA
     * @return string
     */
    public static function &BuildXmlDonnee($action, $TYPE_OBJET, $ID_OBJET)
    {
        $array = null;
        $array['ide']['!action'] = $action;
        
        if ($TYPE_OBJET != 'B' && Param::canCreateDoaModele()) { // 25170
            $isDoaExec = DOA_Referentiel::iSDoaEnExecution($TYPE_OBJET, $ID_OBJET);
            
            if ('ChangeOnglet' === $action && ! $isDoaExec)
                $array['ide']['!onclickAjouter'] = 'window.open(\'DOA_Bibliotheque.php?action=AfficherAjoutCategorie&type=ajout\',\'win_pop\',\'width=500,height=200\');';
            $array['ide']['!tooltipAjouter'] = trad('Ajouter');
        }
        
        $array['ide']['!afficher_donnee'] = 'CallUrl(\'DOA_Bibliotheque.php?action=AfficherCategoriesImport&ancrage=TreeviewCategories&canModify=false\');';
        
        return $array;
    }

    public static function BuilXmlTableauDonnees(& $array, $reqSqlDonnee, $ID_TACHE = null, $ID_ACTION = null, $action = null)
    {
        if (is_array($reqSqlDonnee)) {
            $param = '?uniq=' . uniqid();
            //$param .= '&' . session_name() . '=' . session_id();
            
            $infoImport = null;
            
            foreach ($reqSqlDonnee as & $valueDonnees)
                if ($valueDonnees['ID_OBJET'] != '') { // Mis en place car il semble qu'un element a la capacité d'etre envoyé avec tout à null
                    $TYPE_OBJET = $valueDonnees['TYPE_OBJET'];
                    $ID_OBJET = $valueDonnees['ID_OBJET'];
                    
                    $reqDoa = SqlDoa::rqGetInfoSuiviDoa($ID_OBJET)->Trouve1();
                    $DONNEE_ID_STRUCT = & $valueDonnees['ID_STRUCT'];
                    $DONNEE_ID_DONNEES = & $valueDonnees['ID_DONNEE'];
                    $DONNEE_NOM = & $valueDonnees['NOM_DONNEE'];
                    $DONNEE_DESCR = & $valueDonnees['DESCR'];
                    $DONNEE_MULTIPLE = BoolSql($valueDonnees['MULTIPLE']);
                    $DONNEE_LIE_A_OBJET = & $valueDonnees['LIE_A_OBJET'];
                    $DONNEE_OBJET = & $valueDonnees['OBJET'];
                    
                    // Dossier 25707
                    $req_info_import = SqlDoa::rqGetDoaInfoImportStruct($DONNEE_ID_STRUCT)->Trouve1();
                    $STATUT = $reqDoa['STATUT'];
                    if (BoolSql($valueDonnees['LIE_A_OBJET']) && $valueDonnees['ID_STRUCT'] != 0 && is_array($req_info_import) && DOA_Referentiel::STATUT_ENCOURS == $STATUT) {
                        $infoImport = $valueDonnees;
                    } else {
                        $infoImport = NULL;
                    }
                    
                    $arrayData = null;
                    $arrayRECORD = null;
                    
                    $data = null;
                    if ($reqSqlDATA = SqlDoaActions::rqDOA_GetActionDATA($TYPE_OBJET, $ID_OBJET, $DONNEE_ID_DONNEES, $ID_TACHE, $ID_ACTION)->TrouveTous()) {
                        $modifAutorise = false;
                        foreach ($reqSqlDATA as & $valueDATA) {
                            $data[$valueDATA['ID_DATA']] = $valueDATA;
                            
                            $DATA_ID_DATA = & $valueDATA['ID_DATA'];
                            $DATA_NOM_DATA = & $valueDATA['NOM_DATA'];
                            $DATA_LIE_A_OBJET = BoolSql($valueDATA['LIE_A_OBJET']);
                            $DATA_OBJET = & $valueDATA['OBJET'];
                            
                            $DATA_LIE_A_OBJ = BoolSql($valueDATA['DATA_LIE_A_OBJ']);
                            
                            $DATA_FLAG_ID_OBJET = BoolSql($valueDATA['FLAG_ID_OBJET']);
                            $DATA_OBJET_DATA = & $valueDATA['OBJET_DATA'];
                            $DATA_ID_OBJET_DATA = BoolSql($valueDATA['ID_OBJET_DATA']);
                            $DATA_ID_DATA_LIEE = & $valueDATA['ID_DATA_LIEE'];
                            $DATA_CHAMP_OBJET_DATA = & $valueDATA['CHAMP_OBJET_DATA'];
                            $DATA_CLE_UNIQUE = BoolSql($valueDATA['CLE_UNIQUE']);
                            $DATA_TYPE_DATA = & $valueDATA['TYPE_DATA'];
                            $DATA_MNT_DEVISE = & $valueDATA['MNT_DEVISE'];
                            $DATA_FIC_GENERE = BoolSql($valueDATA['FIC_GENERE']);
                            $DATA_ID_FORMAT = & $valueDATA['ID_FORMAT'];
                            $DATA_AFFICHEE = BoolSql($valueDATA['AFFICHEE']);
                            $DATA_MODIFIABLE = BoolSql($valueDATA['MODIFIABLE']);
                            
                            $onclickModifier = '';
                            
                            // Dans le cas d'un DOA statut fermé, plus aucune modification possible
                            if ($action == 'AfficherAction') {
                                $DATA_MODIFIABLE = false;
                            } else if ($STATUT == DOA_Referentiel::STATUT_TERMINE) {
                                $DATA_MODIFIABLE = false;
                            } else {
                                // si la data est lié a une donnée
                                if (BoolSql($valueDATA['LIE_A_OBJET'])) {
                                    if (BoolSql($valueDATA['CLE_UNIQUE'])) {
                                        // ON CHANGE RIEN CAR c'est la donnée unique pouvant etre saisie par l'utilisateur
                                    } else {
                                        $DATA_MODIFIABLE = false;
                                    }
                                } else if (BoolSql($valueDATA['DATA_LIE_A_OBJ'])) {
                                    if (BoolSql($valueDATA['ID_OBJET_DATA'])) {
                                        // ON CHANGE RIEN CAR c'est la donnée unique pouvant etre saisie par l'utilisateur
                                    } else {
                                        $DATA_MODIFIABLE = false;
                                    }
                                }
                            }
                            
                            $element = null;
                            if (! $DONNEE_MULTIPLE) {
                                if ($DATA_MODIFIABLE && ! $modifAutorise)
                                    $modifAutorise = true;
                                
                                // Si la data n'est pas multiple, on recherche la valeur correspondante
                                $ID_RECORD = 0;
                                $VALEUR = '';
                                if ($reqSqlValeurs = SqlDoaActions::rqGetInfoDoaRecordVal($ID_OBJET, $DONNEE_ID_DONNEES, $DATA_ID_DATA, $ID_RECORD)->Trouve1()) {
                                    if (BoolSql($valueDATA['DATA_LIE_A_OBJ']) && BoolSql($valueDATA['ID_OBJET_DATA'])) {
                                        $CS = new CS();
                                        $CS->setContexte('DOA');
                                        $CS->setUniqueInfo($ID_OBJET);
                                        
                                        if ($result_ctrl = $CS->gereDataDonnee($valueDATA['OBJET_DATA'], $reqSqlValeurs['VALEUR'])) {
                                            if (1 == $result_ctrl[0])
                                                $VALEUR = $result_ctrl[1]['Libelle'];
                                            else
                                                $VALEUR = $reqSqlValeurs['VALEUR'];
                                        } else
                                            $VALEUR = $reqSqlValeurs['VALEUR'];
                                    } else {
                                        switch ($DATA_TYPE_DATA) {
                                            case 'F':
                                                $numOrdre = $reqSqlValeurs['VALEUR'];
                                                if ($numOrdre != '' && is_numeric($numOrdre)) {
                                                    $element = array(
                                                        '!VALEUR' => $reqSqlValeurs['VALEUR']
                                                    );
                                                    if ($reqDocument = SqlDocRattaches::rqGetDocRattcheDoa($ID_OBJET, $numOrdre)->Trouve1()) {
                                                        // lien_action
                                                        
                                                        $param .= '&token=' . password_hash($_SESSION['Session_Login']. session_id(), PASSWORD_DEFAULT);
                                                        $url = "charge_document.php" . $param . '&EmplacementFichier=pj&UrlFichier=' . urlencode($reqDocument['NOM_FIC']);
                                                        
                                                        $url = "window.open('" . ReplaceSqlPointeur($url) . "','win_pop_lad');";
                                                        $element['!URL_LINK'] = & $url;
                                                        $element['!NOM_ORI'] = & $reqDocument['NOM_ORI'];
                                                    }
                                                } else {
                                                    $VALEUR = trad("Anomalie fichier(1)");
                                                }
                                                break;
                                            case 'T':
                                                $element = array(
                                                    '!VALEUR' => $reqSqlValeurs['VALEUR'] . ' ' . $valueData['MNT_DEVISE']
                                                );
                                                break;
                                            case 'L':
                                                if (BoolSql($reqSqlValeurs['VALEUR']))
                                                    $VALEUR = trad('Oui');
                                                else
                                                    $VALEUR = trad('Non');
                                                break;
                                            default:
                                                $VALEUR = $reqSqlValeurs['VALEUR'];
                                                break;
                                        }
                                    }
                                } else {
                                    switch ($DATA_TYPE_DATA) {
                                        case 'L':
                                            $VALEUR = trad('Non');
                                            break;
                                        default:
                                            $VALEUR = '';
                                            break;
                                    }
                                }
                            }
                            
                            $DATA_AFFICHEE = ('L' == (isset($mode)? $mode:'')) ? true : $DATA_AFFICHEE;
                            
                            if ($DATA_AFFICHEE) {
                                $base = array(
                                    '!LIBELLE' => $DATA_NOM_DATA,
                                    '!AFFICHEE' => $DATA_AFFICHEE,
                                    '!VALEUR' => isset($VALEUR)? $VALEUR:'',
                                    '!NOM_DATA' => $DATA_NOM_DATA,
                                    '!LIE_A_OBJET' => $DATA_LIE_A_OBJET,
                                    '!LIE_A_OBJ' => $DATA_LIE_A_OBJ,
                                    '!OBJET' => $DATA_OBJET,
                                    '!FLAG_ID_OBJET' => $DATA_FLAG_ID_OBJET,
                                    '!OBJET_DATA' => $DATA_OBJET_DATA,
                                    '!ID_OBJET_DATA' => $DATA_ID_OBJET_DATA,
                                    '!ID_DATA_LIEE' => $DATA_ID_DATA_LIEE,
                                    '!CHAMP_OBJET_DATA' => $DATA_CHAMP_OBJET_DATA,
                                    '!CLE_UNIQUE' => $DATA_CLE_UNIQUE,
                                    '!TYPE_DATA' => $DATA_TYPE_DATA,
                                    '!MNT_DEVISE' => $DATA_MNT_DEVISE,
                                    '!FIC_GENERE' => $DATA_FIC_GENERE,
                                    '!ID_FORMAT' => $DATA_ID_FORMAT,
                                    'ID_DATA' => $DATA_ID_DATA,
                                    'RECORD_VAL' => $arrayRECORD
                                );
                                if (! is_null($element))
                                    foreach ($element as $index => $value)
                                        $base[$index] = $value;
                                
                                $arrayData[] = $base;
                            }
                        }
                    }
                    
                    if ($DONNEE_MULTIPLE) {
                        // La date est multiple, on va chercher toutes les données existantes
                        if ($reqSql_DOA_RECORD = SqlDoaActions::rqDOA_GetInfoDoaRecord($ID_OBJET, $DONNEE_ID_DONNEES)->TrouveTous()) {
                            foreach ($reqSql_DOA_RECORD as & $valueRECORD) {
                                $ID_RECORD = $valueRECORD['ID_RECORD'];
                                $arrayRECORDVAL = array();
                                
                                // On parcoure le tableau des DATA précédemment construit pour avoir l'ordre correct des DATA
                                // On parcoure le tableau des DATA précédemment construit pour avoir l'ordre correct des DATA
                                if (is_array($arrayData))
                                    foreach ($arrayData as $valueData) {
                                        
                                        if ($reqSqlValeurs = SqlDoaActions::rqGetInfoDoaRecordVal($ID_OBJET, $DONNEE_ID_DONNEES, $valueData['ID_DATA'], $ID_RECORD)->Trouve1()) {
                                            
                                            if (BoolSql($valueData['!LIE_A_OBJ']) && BoolSql($valueData['!ID_OBJET_DATA'])) {
                                                
                                                $CS = new CS();
                                                $CS->setContexte('DOA');
                                                $CS->setUniqueInfo($ID_OBJET);
                                                
                                                if (isset ($valueDATA['!OBJET_DATA']) && $result_ctrl = $CS->gereDataDonnee($valueDATA['!OBJET_DATA'], $reqSqlValeurs['VALEUR'])) {
                                                    if (1 == $result_ctrl[0])
                                                        $element = array(
                                                            '!VALEUR' => $result_ctrl[1]['Libelle']
                                                        );
                                                    else
                                                        $element = array(
                                                            '!VALEUR' => $reqSqlValeurs['VALEUR']
                                                        );
                                                } else
                                                    $element = array(
                                                        '!VALEUR' => $reqSqlValeurs['VALEUR']
                                                    );
                                            } else {
                                                switch ($valueData['!TYPE_DATA']) {
                                                    case 'F':
                                                        $numOrdre = $reqSqlValeurs['VALEUR'];
                                                        if ($numOrdre != '' && is_numeric($numOrdre)) {
                                                            $element = array(
                                                                '!VALEUR' => $reqSqlValeurs['VALEUR']
                                                            );
                                                            if ($reqDocument = SqlDocRattaches::rqGetDocRattcheDoa($ID_OBJET, $numOrdre)->Trouve1()) {
                                                                // lien_action
                                                                
                                                                $param .= '&token=' . password_hash($_SESSION['Session_Login']. session_id(), PASSWORD_DEFAULT);
                                                                $url = "charge_document.php" . $param . '&EmplacementFichier=pj&UrlFichier=' . urlencode($reqDocument['NOM_FIC']);
                                                                
                                                                $url = "window.open('" . ReplaceSqlPointeur($url) . "','win_pop_lad');";
                                                                $element['!URL_LINK'] = & $url;
                                                                $element['!NOM_ORI'] = & $reqDocument['NOM_ORI'];
                                                            }
                                                        } else {
                                                            $element = array(
                                                                '!VALEUR' => trad("Anomalie fichier(2 " . $elementData['TYPE_DATA'] . ' ' . $numOrdre . ")")
                                                            );
                                                        }
                                                        break;
                                                    case 'T':
                                                        $element = array(
                                                            '!VALEUR' => $reqSqlValeurs['VALEUR'] . ' ' . $valueData['!MNT_DEVISE']
                                                        );
                                                        
                                                        break;
                                                    case 'L':
                                                        if (BoolSql($reqSqlValeurs['VALEUR']))
                                                            $element = array(
                                                                '!VALEUR' => trad('Oui')
                                                            );
                                                        else
                                                            $element = array(
                                                                '!VALEUR' => trad('Non')
                                                            );
                                                        break;
                                                    default:
                                                        $element = array(
                                                            '!VALEUR' => $reqSqlValeurs['VALEUR']
                                                        );
                                                        break;
                                                }
                                            }
                                        } else {
                                            switch ($valueData['!TYPE_DATA']) {
                                                case 'L':
                                                    $default = trad('Non');
                                                    break;
                                                default:
                                                    $default = '';
                                                    break;
                                            }
                                            $element = array(
                                                '!VALEUR' => $default
                                            );
                                        }
                                        
                                        $arrayRECORDVAL[] = $element;
                                    }
                                
                                $elementRecord = array(
                                    '!ID_RECORD' => $ID_RECORD,
                                    'valeurs' => $arrayRECORDVAL
                                );
                                
                                if ($action == 'AfficherAction') {
                                    // RIEN
                                } else if ($STATUT == DOA_Referentiel::STATUT_ENCOURS) {
                                    $elementRecord['!onclickModifier'] = 'OpenPopup(\'DOA_Action.php?action=ModifierDataMultiple' . '&idDonnee=' . $DONNEE_ID_DONNEES . '&idRecord=' . $ID_RECORD . (is_null($ID_TACHE) ? '' : '&idTache=' . $ID_TACHE) . '&idObjet=' . $ID_OBJET . (is_null($ID_ACTION) ? '' : '&idAction=' . $ID_ACTION) . '\',\'win_pop_modif\', 500, 500);';
                                    $elementRecord['!onclickSupprimer'] = 'if(window.confirm("' . cnv_to_javascript(trad("Confirmez vous la suppression de cette valeur ?")) . '"))' . '{CallUrlAsync("DOA_Action.php","action=SupprimerDonneeAction' . '&idRecord=' . $ID_RECORD . '&idDonnee=' . $DONNEE_ID_DONNEES . '&idDoa=' . $ID_OBJET . (is_null($ID_TACHE) ? '' : '&idTache=' . $ID_TACHE) . (is_null($ID_ACTION) ? '' : '&idAction=' . $ID_ACTION) . '&flagIdObjet=false");};';
                                    $elementRecord['!tooltipModifier'] = trad('Modifier');
                                    $elementRecord['!tooltipSupprimer'] = trad('Supprimer');
                                }
                                
                                $arrayRECORD[] = $elementRecord; // ne surtout pas mettre de reference ici, car php ne gere pas correctement la portée d'une variable
                            }
                        }
                        
                        // Action d'ajouter un record à un tableau multiple
                        if ($action == 'AfficherAction') {
                            $onclickAjouter = '';
                            $onclickImport = '';
                        } else if ($STATUT == DOA_Referentiel::STATUT_ENCOURS) {
                            $onclickAjouter = 'OpenPopup(\'DOA_Action.php?action=AjouterDataMultiple' . '&idDonnee=' . $DONNEE_ID_DONNEES . '&idAction=' . $ID_ACTION . '&idObjet=' . $ID_OBJET . (is_null($ID_TACHE) ? '' : '&idTache=' . $ID_TACHE) . '\',\'win_pop_modif\', 500, 300);';
                            
                            if (! is_null($infoImport)) {
                                $clSessionAction = DoaDocAction::getSession();
                                $clSessionAction->setProperties('infoImport', serializeSecure($infoImport));
                                $clSessionAction->saveSession();
                                
                                $onclickImport = 'OpenPopup(\'DOA_Action.php?action=AjouterDataImport' . '&idDonnee=' . $DONNEE_ID_DONNEES . '&idAction=' . $ID_ACTION . '&idObjet=' . $ID_OBJET . (is_null($ID_TACHE) ? '' : '&idTache=' . $ID_TACHE) . '\',\'win_pop_modif\', 500, 300);';
                            } else
                                $onclickImport = '';
                        } else {
                            $onclickAjouter = '';
                            $onclickImport = '';
                        }
                    } else {
                        $onclickAjouter = '';
                        $onclickImport = '';
                    }
                    
                    $elementData = array(
                        '!NOM' => $DONNEE_NOM,
                        '!DESCR' => $DONNEE_DESCR,
                        '!MULTIPLE' => $DONNEE_MULTIPLE,
                        '!onclickAjouter' => $onclickAjouter,
                        '!tooltipAjouter' => trad('Ajouter'),
                        'TableauData' => $arrayData
                    );
                    
                    // Dans le cas de donnée alors on le met dans le tableau ce qui evite d'avoir une ligne vide au niveau du rendu html
                    if (! is_null($arrayRECORD))
                        $elementData['TableauValeurs'] = $arrayRECORD;
                    
                    if ($modifAutorise) {
                        $onclickModifier = 'OpenPopup(\'DOA_Action.php?action=ModifierDataMultiple' . '&idDonnee=' . $DONNEE_ID_DONNEES . '&idRecord=0' . '&idObjet=' . $ID_OBJET . (is_null($ID_TACHE) ? '' : '&idTache=' . $ID_TACHE) . (is_null($ID_ACTION) ? '' : '&idAction=' . $ID_ACTION) . '\',\'win_pop_modif\', 500, 500);';
                        
                        $elementData['!onclickModifier'] = $onclickModifier;
                        $elementData['!tooltipModifier'] = trad('Modifer');
                    }
                    
                    if ($onclickAjouter != '') {
                        $elementData['!onclickAjouter'] = $onclickAjouter;
                        $elementData['!tooltipAjouter'] = trad('Ajouter');
                    }
                    
                    if ($onclickImport != '') {
                        $elementData['!onclickImport'] = $onclickImport;
                        $elementData['!tooltipImport'] = trad('Import');
                    }
                    
                    if (is_array($array))
                        if (! array_key_exists('DONNEES', $array))
                            $array['DONNEES'] = array();
                    
                    $array['DONNEES'][] = $elementData;
                }
        }
    }

    /**
     * DOA_Donnee
     * 0 Sur les dossiers en préparation et les modèles ?
     * 1 Uniquement sur les modèles
     * 2 Nulle part
     */
    public static function getModeConservationHeritage()
    {
        $clSession = DoaBibSession::getSession();
        return $clSession->getProperties(DOA::MODE_CONSER_HERITAGE);
    }

    public static function questionHeritage()
    {
        $questionParametrage = false;
        $clSession = DoaBibSession::getSession();
        
        if ($clSession->getIdObject() == 'B') {
            $ID_DONNEE = trim(GetValue(DOA_Bibliotheque_Popup_AjoutModif::$id_ID_DONNEE));
            if (is_null($ID_DONNEE) || $ID_DONNEE == '' || ($req = SqlDoaBibliotheque::rqDOA_TrouverDonneeWithDoaHerite($ID_DONNEE)->Trouve1()))
                if (is_null(DOA_Donnee::getModeConservationHeritage()))
                    $questionParametrage = true;
        }
        /**
         * Ouverture d'une popup permettant de questionner l'utilisateu avec 3 choix
         * Souhaitez-vous que les modifications de la bibliothèque soient répercutées
         * - Sur les dossiers en préparation et les modèles ?
         * - Uniquement sur les modèles
         * - Nulle partget
         */
        if ($questionParametrage) {
            OxalysBib::saveContexteWeb(DOA::WIN_POP_MODIF_STRUCT);
            
            $array['question']['!title'] = trad('Souhaitez-vous que les modifications de la bibliothèque soient répercutées');
            $array['question']['!actionValide'] = 'Traite("DOA_Bibliotheque.php?action=ContexteMiseAjour",this);';
            
            $array['question']['liste'][] = DOA_Referentiel::getModeHeritage();
            
            OxalysBib::PopupQuestionSave($array);
        }
        return $questionParametrage;
    }

    public static function majDonneeHeritage($pileSql, $TYPE_OBJET, $ID_OBJET, $ID_DONNEE)
    {
        if ($TYPE_OBJET == 'B') {
            if ($req = SqlDoaBibliotheque::rqDOA_TrouverDonneeWithDoaHerite($ID_DONNEE)->TrouveTous()) {
                
                $dataDonnee = SqlDoaBibliotheque::rqDOA_getDonneeObjet($TYPE_OBJET, $ID_OBJET, $ID_DONNEE)->Trouve1();
                
                $mode = DOA_Donnee::getModeConservationHeritage();
                foreach ($req as & $donneHerite) {
                    if ($mode == '2' || // Null part donc on brise les liens partout
($mode == '1' && ! ($donneHerite['TYPE_OBJET'] == 'M')) || // Uniquement sur les modeles donc brise les liens sur tous ce qui est different du modele
($mode == '0' && ! ($donneHerite['TYPE_OBJET'] == 'M' || ($donneHerite['TYPE_OBJET'] == 'D' && $donneHerite['STATUT'] == DOA_Referentiel::STATUT_INITIAL)))) {
                        $sql = 'update DOA_STRUCT ' . 'set   ID_STRUCT = 0 ' . 'where TYPE_OBJET = \'' . ReplaceSqlPointeur($donneHerite['TYPE_OBJET']) . '\' ' . 'and   ID_OBJET   =   ' . ReplaceSqlPointeur($donneHerite['ID_OBJET']) . ' ' . 'and   ID_DONNEE  =   ' . ReplaceSqlPointeur($donneHerite['ID_DONNEE']) . ' ';
                        $pileSql->AddSql($sql);
                        
                        $sql = 'update DOA_DATA ' . 'set   ID_STRUCT = 0 ' . 'where TYPE_OBJET = \'' . ReplaceSqlPointeur($donneHerite['TYPE_OBJET']) . '\' ' . 'and   ID_OBJET   =   ' . ReplaceSqlPointeur($donneHerite['ID_OBJET']) . ' ' . 'and   ID_DONNEE  =   ' . ReplaceSqlPointeur($donneHerite['ID_DONNEE']) . ' ';
                        $pileSql->AddSql($sql);
                    } else {
                        $sql = 'update DOA_STRUCT ' . 'set DESCR = \'' . ReplaceSqlPointeur($dataDonnee['DESCR']) . '\', ' . 'NOM_DONNEE = \'' . ReplaceSqlPointeur($dataDonnee['NOM_DONNEE']) . '\' ' . 'where TYPE_OBJET  = \'' . ReplaceSqlPointeur($donneHerite['TYPE_OBJET']) . '\' ' . 'and   ID_OBJET    =   ' . ReplaceSqlPointeur($donneHerite['ID_OBJET']) . '\' ' . 'and   ID_DONNEE   =   ' . ReplaceSqlPointeur($donneHerite['ID_DONNEE']) . ' ';
                        $pileSql->AddSql($sql);
                    }
                }
            }
        }
    }
}
