LockAcces::bloquer_application('automate',$_SESSION['BASE'],'Purge annuelle de la base en cours.'); // Supprimer tous les devoirs associés aux classes, mais pas les saisies associées DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_devoirs_sans_saisies(); SACocheLog::ajouter('Suppression de tous les devoirs sans les saisies associées.'); // Supprimer tous les types de groupes, sauf les classes (donc 'groupe' ; 'besoin' ; 'eval'), ainsi que les jointures avec les périodes. $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_groupes_sauf_classes(); if(!empty($DB_TAB)) { foreach($DB_TAB as $DB_ROW) { DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_groupe_par_admin( $DB_ROW['groupe_id'] , $DB_ROW['groupe_type'] , FALSE /*with_devoir*/ ); } } SACocheLog::ajouter('Suppression de tous les groupes, hors classes, sans les devoirs associés.'); // Supprimer les jointures classes/périodes, et donc les états des bilans officiels DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_groupe_periode( TRUE /*groupe_id*/ , TRUE /*periode_id*/ , FALSE /*etat*/ , '' /*date_debut_mysql*/ ,'' /*date_fin_mysql*/ ); // Supprimer les saisies & les archives des bilans officiels DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_bilans_officiels(); // Supprimer les saisies brevet & les archives (Notanet & fiches brevet) DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_bilans_brevet(); // Supprimer les comptes utilisateurs désactivés depuis plus de 3 ans $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_users_desactives_obsoletes(); if(!empty($DB_TAB)) { foreach($DB_TAB as $DB_ROW) { DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_utilisateur($DB_ROW['user_id'],$DB_ROW['user_profil_sigle']); // Log de l'action SACocheLog::ajouter('Suppression d\'un utilisateur au compte désactivé depuis plus de 3 ans ('.$DB_ROW['user_profil_sigle'].' '.$DB_ROW['user_id'].').'); } }
$date_fin_mysql = convert_date_french_to_mysql($date_fin); // Vérifier que le date de début est antérieure à la date de fin if ($date_debut_mysql > $date_fin_mysql) { exit('Erreur : la date de début est postérieure à la date de fin !'); } foreach ($tab_select_periodes as $periode_id) { foreach ($tab_select_classes_groupes as $groupe_id) { DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_groupe_periode($groupe_id, $periode_id, TRUE, $date_debut_mysql, $date_fin_mysql); } } } elseif ($action == 'retirer') { $notification_contenu = ''; $notification_intro = date('d-m-Y H:i:s') . ' ' . $_SESSION['USER_PRENOM'] . ' ' . $_SESSION['USER_NOM']; foreach ($tab_select_periodes as $periode_id) { foreach ($tab_select_classes_groupes as $groupe_id) { DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_groupe_periode($groupe_id, $periode_id, FALSE); // Log de l'action SACocheLog::ajouter('Suppression de l\'association période "' . $tab_periode[$periode_id] . '" (n°' . $periode_id . ') / regroupement "' . $tab_groupe[$groupe_id] . '" (n°' . $groupe_id . '), et donc des bilans officiels associés.'); $notification_contenu .= $notification_intro . ' a supprimé l\'association période "' . $tab_periode[$periode_id] . '" (n°' . $periode_id . ') / regroupement "' . $tab_groupe[$groupe_id] . '" (n°' . $groupe_id . '), et donc les bilans officiels associés.' . "\r\n"; } } // Notifications (rendues visibles ultérieurement) if ($notification_contenu) { DB_STRUCTURE_NOTIFICATION::enregistrer_action_admin($notification_contenu, $_SESSION['USER_ID']); } } // //////////////////////////////////////////////////////////////////////////////////////////////////// // Bilan des affectations des périodes aux classes & groupes ; en plusieurs requêtes pour récupérer les périodes sans classes-groupes et les classes-groupes sans périodes. // 2/2 - On poursuit avec les requêtes suivantes (associations) et l'affichage. // //////////////////////////////////////////////////////////////////////////////////////////////////// echo '<hr />' . NL;
if ($action == 'purger') { // Bloquer l'application LockAcces::bloquer_application('automate', $_SESSION['BASE'], 'Purge annuelle de la base en cours.'); // Supprimer tous les devoirs associés aux classes, mais pas les saisies associées DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_devoirs_sans_saisies(); SACocheLog::ajouter('Suppression de tous les devoirs sans les saisies associées.'); // Supprimer tous les types de groupes, sauf les classes (donc 'groupe' ; 'besoin' ; 'eval'), ainsi que les jointures avec les périodes. $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_groupes_sauf_classes(); if (!empty($DB_TAB)) { foreach ($DB_TAB as $DB_ROW) { DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_groupe_par_admin($DB_ROW['groupe_id'], $DB_ROW['groupe_type'], FALSE); } } SACocheLog::ajouter('Suppression de tous les groupes, hors classes, sans les devoirs associés.'); // Supprimer les jointures classes/périodes, et donc les états des bilans officiels DB_STRUCTURE_ADMINISTRATEUR::DB_modifier_liaison_groupe_periode(TRUE, TRUE, FALSE, '', ''); // Supprimer les saisies & les archives des bilans officiels DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_bilans_officiels(); // Supprimer les saisies brevet & les archives (Notanet & fiches brevet) DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_bilans_brevet(); // Supprimer les comptes utilisateurs désactivés depuis plus de 3 ans $DB_TAB = DB_STRUCTURE_ADMINISTRATEUR::DB_lister_users_desactives_obsoletes(); if (!empty($DB_TAB)) { foreach ($DB_TAB as $DB_ROW) { DB_STRUCTURE_ADMINISTRATEUR::DB_supprimer_utilisateur($DB_ROW['user_id'], $DB_ROW['user_profil_sigle']); // Log de l'action SACocheLog::ajouter('Suppression d\'un utilisateur au compte désactivé depuis plus de 3 ans (' . $DB_ROW['user_profil_sigle'] . ' ' . $DB_ROW['user_id'] . ').'); } } // Retirer, dans les liaisons entre comptes, ceux qui sont désactivés ou supprimés DB_STRUCTURE_SWITCH::DB_supprimer_liaisons_obsoletes();