en | fr  | Contact  | Print  | Share

FrameBeurk File

Fmbk/Module/Beurk/fonctionsBeurkMaj.php

<?php //FrameBeurk V0.65 Copyright ToolOscope 2016. Licence CeCILL-C.
// Fonctions de mise à jour du noyau pour les actions de Maj

function Beurk_nouvelleRelation($IdNoeud$IdRelation$IdLie) {    
    
db_QUERY("INSERT IGNORE INTO Beurk_Lien (IdNoeud, IdRelation, IdLie) VALUES ('" $IdNoeud "', '" $IdRelation "', '" $IdLie "')");
}    

function 
Beurk_modifieRelation($IdNoeud$IdRelation$ancienIdLie$nouveauIdLie) {    
    
db_QUERY("UPDATE Beurk_Lien SET IdLie = '" $nouveauIdLie "' WHERE  IdNoeud = '" $IdNoeud "' AND IdRelation = '" $IdRelation "' AND IdLie = '" $ancienIdLie "'");
}    

function 
Beurk_nouvelleVersionNoeud($IdNoeud$NoVersion$IdEtat) {
    global 
$CONFIG$DIALOG$TRANSAC;
    
    
db_QUERY("INSERT INTO Beurk_Historique
 (IdNoeud, NoVersion, IdEtat, IdUser, AdresseIp, IdActMaj, IdMaj, TsAction)
 VALUES ('" 
$IdNoeud "', '" $NoVersion "', '" $IdEtat "', '" $DIALOG['IdUser'] . "', '" $_SERVER['REMOTE_ADDR']
    . 
"', '" $CONFIG['Action'][$GLOBALS['ActMaj']]['Id'] . "', '" $GLOBALS['IdMaj'] . "', '" $TRANSAC['Stat']['TsBeurkIni'] . "')");
}    

function 
Beurk_nouveauNoeud($IdNoeud$IdEntite$IdCreateur$IdRef) {
    global 
$CONFIG;
    
    
Beurk_nouvelleRelation($IdNoeud$CONFIG['Relation']['estDeType']['Id'], $IdEntite);
    
Beurk_nouvelleRelation($IdNoeud$CONFIG['Relation']['aPourCreateur']['Id'], $IdCreateur);
    
Beurk_nouvelleRelation($IdNoeud$CONFIG['Relation']['estElementDe']['Id'], $IdRef);
}    

function 
Beurk_supprimeNoeud($IdNoeud) {
    
db_QUERY("DELETE FROM Beurk_Lien WHERE IdNoeud = '" $IdNoeud "'");
    
db_QUERY("DELETE FROM Beurk_Lien WHERE IdLie = '" $IdNoeud "'");
}

// exécute la requete (obligatoirement INSERT en format tableau d'UN SEUL noeud), alimente les tables du noyau et positionne le message Maj.
// renvoie l'Id si OK
function Beurk_creeEntite($requete$messageOK$Etat$IdRef$EntMaj '') {
    global 
$DIALOG$CONFIG;
    
    if (
$IdEtat Beurk_id($Etat)) {                                            // accepte un IdEtat ou un terminal
    
        
if ($EntMaj == '')
            
$EntMaj $GLOBALS['EntAct'];                    // par défaut, l'entité est celle de l'action
            
        
$IdNoeud db_NEW_ID(1);                            // obtention de l'Id
        
$requete['VALUES']['Id' $EntMaj] = $IdNoeud;        // complétion de la requête
        
$requete['VALUES']['IdEtat'] = $IdEtat;
        
$requete['VALUES']['NoVersion'] = 1;
        
        if (
db_QUERY($requete)) {                                                                            // éxécution de la requête
            
Beurk_nouveauNoeud($IdNoeud$CONFIG['Entite'][$EntMaj]['Id'], $DIALOG['IdUser'], $IdRef);        // création du noeud et des 3 1ères relations 
            
Beurk_nouvelleVersionNoeud($IdNoeud1$IdEtat);                                                    // création de la 1ere version de l'historique
            
if ($messageOK != '')
                
Beurk_messageEtape($messageOKfalse);                                                        // affichage du message de bonne fin
            
return $IdNoeud;
        } else {
            
Beurk_messageEtape('Création en erreur'true);
            return 
false;
        }
    } else {
        
Beurk_messageEtape('Code Etat inconnu'true);
        return 
false;
    }
}

// exécute la requete (obligatoirement UPDATE en format tableau d'UN SEUL noeud), met à jour les tables du noyau et positionne le message Maj.
// renvoie true si OK
function Beurk_modifieEntite($requete$messageOK$Etat$NoVersionCourant$IdNoeud) {
    global 
$DIALOG$CONFIG;

    if (
$IdEtat Beurk_id($Etat)) {                                            // accepte un IdEtat ou un terminal

        
$requete['SET']['IdEtat'] = $IdEtat;                                        // complétion de la requête
        
$requete['SET']['NoVersion'] = ($NoVersion $NoVersionCourant 1);
        if (
db_QUERY($requete)) {
            
Beurk_nouvelleVersionNoeud($IdNoeud$NoVersion$IdEtat);            // création de la nouvelle version de l'historique
            
if ($messageOK != '')
                
Beurk_messageEtape($messageOKfalse);                            // affichage du message de bonne fin
            
return true;
        } else {
            
Beurk_messageEtape('Modification en erreur'true);
            return 
false;
        }
    } else {
        
Beurk_messageEtape('Code Etat inconnu'true);
        return 
false;
    }
}

// exécute la requete (obligatoirement DELETE d'UN SEUL noeud), met à jour les tables du noyau et positionne le message Maj.
// renvoie true si OK
function Beurk_supprimeEntite($requete$messageOK$NoVersionCourant$IdNoeud) {
    global 
$DIALOG$CONFIG;

    if (
db_QUERY($requete)) {
        
Beurk_supprimeNoeud($IdNoeud);                                            // delete des relations avec le noeud
        
Beurk_nouvelleVersionNoeud($IdNoeud$NoVersionCourant 1Beurk_id($CONFIG['Param']['EtatSupprime']));        // selon la config, état 'Z' = noeud supprimé
        
if ($messageOK != '')
            
Beurk_messageEtape($messageOKfalse);                                // affichage du message de bonne fin
        
return true;
    } else {
        
Beurk_messageEtape('Suppression en erreur'true);
        return 
false;
    }
}


© 2010-2015 by ToolOscope SASU. © 2016-2018 by Arnaud De Rette. All rights reserved