function gerer_absence($id='',$eleve_id,$retard_absence,$groupe_id='',$edt_id='',$jour_semaine='',$creneau_id='',$debut_ts,$fin_ts,$date_saisie,$login_saisie='',$action) { global $prefix_base; /* $eleve_id -> login de l'élève $retard_absence -> R ou A $groupe_id -> vide $edt_id -> vide $jour_semaine -> vide $creneau_id -> vide $debut_ts -> debut en timestamp / mktime(heure, minute, 0, mois, jour, annee); $fin_ts -> fin en timestamp / mktime(heure, minute, 0, mois, jour, annee); $date_saisie -> date de saisi en timestamp / mktime(heure, minute, 0, mois, jour, annee); $login_saisie -> login de la personne pour la saisi $action -> ajouter */ if ( $action === 'ajouter' ) { // on vérifie qu'une absence ne se trouve pas entre le début et la fin de celle saisie $cpt_ligne = old_mysql_result(mysqli_query($GLOBALS["mysqli"], "SELECT count(*) FROM " . $prefix_base . "absences_rb WHERE eleve_id = '" . $eleve_id . "' AND retard_absence = '" . $retard_absence . "' AND debut_ts >= '" . $debut_ts . "' AND fin_ts <= '" . $fin_ts . "'" ),0); // s'il n'y aucun enregistrement qui correspond alors on l'ajoute if ( $cpt_ligne == 0 ) { $saisie_sql = "INSERT INTO absences_rb (eleve_id, retard_absence, groupe_id, edt_id, jour_semaine, creneau_id, debut_ts, fin_ts, date_saisie, login_saisie) VALUES ('" . $eleve_id . "', '" . $retard_absence . "', '" . $groupe_id . "', '0', '" . $jour_semaine . "', '" . $creneau_id . "', '" . $debut_ts . "', '" . $fin_ts . "', '" . $date_saisie . "', '" . $_SESSION["login"] . "')"; $insere_abs = mysqli_query($GLOBALS["mysqli"], $saisie_sql) OR DIE ('Erreur SQL !'.$saisie_sql.'<br />'.mysqli_error($GLOBALS["mysqli"]));//('Impossible d\'enregistrer l\'absence de '.$eleve_absent[$a]); } else { // nous allons lister toutes les enregistrement $requete = ("SELECT * FROM " . $prefix_base . "absences_rb WHERE eleve_id = '" . $eleve_id . "' AND retard_absence = '" . $retard_absence . "' AND debut_ts >= '" . $debut_ts . "' AND fin_ts <= '" . $fin_ts . "'" ); $execution = mysqli_query($GLOBALS["mysqli"], $requete) or die('Erreur SQL !'.$requete.'<br />'.mysqli_error($GLOBALS["mysqli"])); while ($donnee = mysqli_fetch_array($execution)) { // si le debut est la fin sont compris entre les deux valeur mais égale à aucun début // on les supprimes if ( $debut_ts > $donnee['debut_ts'] and $fin_ts < $donnee['fin_ts'] ) { gerer_absence($donnee['id'],$eleve_id,$retard_absence,'','','','',$donnee['debut_ts'],$donnee['fin_ts'],$donnee['date_saisie'],'','supprimer'); } // si le debut est égale à la valeur de début et que la fin est inférieur à la fin // ??????????????????????? // en attente de plus d'information } } } if ( $action === 'supprimer' ) { if ( !verif_num($id) ) { $req_delete = "DELETE FROM " . $prefix_base . "absences_rb WHERE id = '" . $id . "' AND retard_absence = '" . $retard_absence . "' AND debut_ts >= '" . $debut_ts . "' AND fin_ts <= '" . $fin_ts . "' "; $req_sql = mysqli_query($GLOBALS["mysqli"], $req_delete); } } }
/* gerer_absence($id,$eleve_id,$retard_absence,$groupe_id='',$edt_id='',$jour_semaine='',$creneau_id='',$debut_ts,$fin_ts,$date_saisie,$login_saisie) */ $explode_heuredeb = explode(":", $d_heure_absence_eleve_ins); $explode_heurefin = explode(":", $a_heure_absence_eleve_ins); $explode_date_debut = explode("/", date_fr($d_date_absence_eleve_ins)); $explode_date_fin = explode("/", date_fr($a_date_absence_eleve_ins)); $debut_ts = mktime($explode_heuredeb[0], $explode_heuredeb[1], 0, $explode_date_debut[1], $explode_date_debut[0], $explode_date_debut[2]); $fin_ts = mktime($explode_heurefin[0], $explode_heurefin[1], 0, $explode_date_fin[1], $explode_date_fin[0], $explode_date_fin[2]); $date_saisie = mktime(date("H"), date("i"), 0, date("m"), date("d"), date("Y")); $login_saisie = $_SESSION['login']; $action = 'ajouter'; if ( $action_sql === "ajouter" ) { gerer_absence('',$eleve_absence_eleve,'A','','','','',$debut_ts,$fin_ts,$date_saisie,$login_saisie,$action); } elseif ( $action_sql === "modifier" ) { modifier_absences_rb($id,$debut_ts,$fin_ts); } /* */ /* ******************************************** */ // on vérifie si une absences est déja définie
/* gerer_absence($id,$eleve_id,$retard_absence,$groupe_id='',$edt_id='',$jour_semaine='',$creneau_id='',$debut_ts,$fin_ts,$date_saisie,$login_saisie) */ $explode_heuredeb = explode(":", $d_heure_absence_eleve_form); $explode_heurefin = explode(":", $d_heure_absence_eleve_form); $explode_date_debut = explode("/", date_fr($d_date_absence_eleve_form)); $explode_date_fin = explode("/", date_fr($d_date_absence_eleve_form)); $debut_ts = mktime($explode_heuredeb[0], $explode_heuredeb[1], 0, $explode_date_debut[1], $explode_date_debut[0], $explode_date_debut[2]); $fin_ts = mktime($explode_heurefin[0], $explode_heurefin[1], 0, $explode_date_fin[1], $explode_date_fin[0], $explode_date_fin[2]); $date_saisie = mktime(date("H"), date("i"), 0, date("m"), date("d"), date("Y")); $login_saisie = $_SESSION['login']; $action = 'ajouter'; if ( $action_sql === "ajouter" ) { gerer_absence('',$id_absence_eleve_form,'R','','','','',$debut_ts,$fin_ts,$date_saisie,$login_saisie,$action); } if ( $action_sql === "modifier" ) { modifier_absences_rb($id,$debut_ts,$fin_ts); } /* */ /* ******************************************** */ if ( $action_sql === "ajouter" ) { $requete="INSERT INTO absences_eleves (type_absence_eleve,eleve_absence_eleve,justify_absence_eleve,info_justify_absence_eleve,motif_absence_eleve,d_date_absence_eleve,a_date_absence_eleve,d_heure_absence_eleve,saisie_absence_eleve) values ('R','$id_absence_eleve_form','$justify_absence_eleve_form','$info_justify_absence_eleve_form','$motif_absence_eleve_form','$d_date_absence_eleve_form','$a_date_absence_eleve_form','$d_heure_absence_eleve_form','".$_SESSION['login']."')"; } if ( $action_sql === "modifier" ) { $requete="UPDATE absences_eleves SET justify_absence_eleve = '$justify_absence_eleve_form', info_justify_absence_eleve = '$info_justify_absence_eleve_form', motif_absence_eleve = '$motif_absence_eleve_form', d_date_absence_eleve = '$d_date_absence_eleve_form', a_date_absence_eleve = '$a_date_absence_eleve_form', d_heure_absence_eleve = '$d_heure_absence_eleve_form', saisie_absence_eleve = '".$_SESSION['login']."' WHERE eleve_absence_eleve = '".$id_absence_eleve_form."' and id_absence_eleve = '".$id."'"; }