if ( $onprend === 'oui' ) { // on explose la date en jour, mois, annee $tab_date = explode('-', $tab[$i]['date']); $jour = $tab_date[2]; $mois = $tab_date[1]; $annee = $tab_date[0]; $classe_eleve = $tab[$i]['classe']; $eleve_eleve = qui_eleve($tab[$i]['login']); // total en minute de l'heure du début $total_minute_de = convert_heures_minutes($tab[$i]['heure_debut']); // total en minute de l'heure de fin $total_minute_a = convert_heures_minutes($tab[$i]['heure_fin']); // total en minute de l'absence $total_minute = $total_minute_a - $total_minute_de; // si suppérieur à 8h00 alors on prend 480 minutes au lieu de ce que l'on trouve if ( $total_minute > '480' ) { $total_minute = '480'; } // le jour tombe un dimanche donc = 0 on remet le compteur à 0 if ( $tab[$i]['jour'] === '0' ) { $total_minute = '0'; } // les données // par mois if($echelle_x === 'M') { if(empty($donnee_select[$annee.'-'.$mois])) { $donnee_select[$annee.'-'.$mois] = '0'; } $donnee_select[$annee.'-'.$mois] = $donnee_select[$annee.'-'.$mois] + $total_minute; } // par jour
if ($donnee['fermeture_horaire_etablissement'] != '00:00:00') { $fermeture[$i] = $donnee['fermeture_horaire_etablissement']; } else { $fermeture[$i] = ''; } if ($donnee['pause_horaire_etablissement'] != '00:00:00') { $pause[$i] = $donnee['pause_horaire_etablissement']; } else { $pause[$i] = ''; } $ouvert[$i] = $donnee['ouvert_horaire_etablissement']; if ($fermeture[$i] != '00:00:00' and $ouverture[$i] != '00:00:00' and $pause[$i] != '00:00:00' and $fermeture[$i] != '' and $ouverture[$i] != '' and $pause[$i] != '') { $calcul = convert_heures_minutes($fermeture[$i]) - convert_heures_minutes($ouverture[$i]) - convert_heures_minutes($pause[$i]); $temps_total_ouverture[$i] = convert_minutes_heures($calcul); } elseif ($fermeture[$i] != '00:00:00' and $ouverture[$i] != '00:00:00' and $fermeture[$i] != '' and $ouverture[$i] != '') { $calcul = convert_heures_minutes($fermeture[$i]) - convert_heures_minutes($ouverture[$i]); $temps_total_ouverture[$i] = convert_minutes_heures($calcul); } $i = ''; } } // =================================================================== // // Affichage de la page // // =================================================================== // header $titre_page = "Horaires d'ouverture de l'établissement"; $style_specifique[] = "templates/" . NameTemplateEdt() . "/css/style_edt"; $ua = getenv("HTTP_USER_AGENT"); if (strstr($ua, "MSIE 6.0")) {
function repartire_jour($login, $type, $du, $au) { global $prefix_base; //date_default_timezone_set ('Europe/Paris') ; $i = '0'; // date_default_timezone_get(); // n'est compatible que PHP 5.0.1 if ( function_exists('date_default_timezone_get') ) { date_default_timezone_set('UTC'); date_default_timezone_get(); } else { localtime(); } $tableau_de_donnees = ''; $requete = "SELECT * FROM ".$prefix_base."absences_eleves WHERE eleve_absence_eleve = '".$login."' AND type_absence_eleve = '".$type."' ORDER BY d_date_absence_eleve ASC, d_heure_absence_eleve ASC"; $execution = mysqli_query($GLOBALS["mysqli"], $requete) or die('Erreur SQL !'.$requete.'<br />'.mysqli_error($GLOBALS["mysqli"])); while ( $donnee = mysqli_fetch_array($execution)) { $i = '0'; $i2 = '0'; $horraire = ouverture(); // si la date de debut et de fin son identique on peut saisir les donnes tout de suite if($donnee['d_date_absence_eleve'] === $donnee['a_date_absence_eleve']) { $date_select = $donnee['d_date_absence_eleve']; // incrémente en fonction du nombre de fois ou on trouve une heure de début pour un même jour if ( !isset($nb_horraire_date[$date_select]) ) { $nb_horraire_date[$date_select] = 0; } else { $nb_horraire_date[$date_select] = $nb_horraire_date[$date_select] + 1; } $nb_passage_horraire = $nb_horraire_date[$date_select]; $date_tt = $date_select.'-'.$nb_passage_horraire; $pause = ''; $tableau_de_donnees[$date_tt]['login'] = $donnee['eleve_absence_eleve']; $tableau_de_donnees[$date_tt]['jour'] = jour_sem_sql($donnee['d_date_absence_eleve']); $tab_jour = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"); $jour_num = $tableau_de_donnees[$date_tt]['jour']; $jour = $tab_jour[$jour_num]; if ( isset($horraire[$jour]) ) { $heure_de_debut = $horraire[$jour]['ouverture']; $heure_de_debut_min = convert_heures_minutes($horraire[$jour]['ouverture']); $heure_de_fin = $horraire[$jour]['fermeture']; $heure_de_fin_min = convert_heures_minutes($horraire[$jour]['fermeture']); $pause = $horraire[$jour]['pause']; $pause_min = convert_heures_minutes($horraire[$jour]['pause']); } else { $heure_de_debut = '00:00:00'; $heure_de_debut_min = convert_heures_minutes($pause); $heure_de_fin = '00:00:00'; $heure_de_fin_min = convert_heures_minutes($pause); $pause = '00:00:00'; $pause_min = convert_heures_minutes($pause); } $tableau_de_donnees[$date_tt]['date'] = $donnee['d_date_absence_eleve']; //$tableau_de_donnees[$date]['heure_debut'.$nb_passage_horraire] = $donnee['d_heure_absence_eleve']; //$tableau_de_donnees[$date]['heure_fin'.$nb_passage_horraire] = $donnee['a_heure_absence_eleve']; $tableau_de_donnees[$date_tt]['heure_debut'] = $donnee['d_heure_absence_eleve']; $tableau_de_donnees[$date_tt]['heure_fin'] = $donnee['a_heure_absence_eleve']; if ( $donnee['justify_absence_eleve'] === 'N' ) { $tableau_de_donnees[$date_tt]['justifie'] = 'non'; } else { $tableau_de_donnees[$date_tt]['justifie'] = 'oui'; } // statistique par mois $tab_date = explode('-',$date_select); $mois = $tab_date[1]; $annee = $tab_date[0]; if ( !isset($tableau_de_donnees[$annee.'-'.$mois]) ) { $tableau_de_donnees[$annee.'-'.$mois]['nb'] = 1; if ( $donnee['justify_absence_eleve'] === 'N' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_nj'] = 1; } else { $tableau_de_donnees[$annee.'-'.$mois]['nb_nj'] = 0; } if ( $donnee['justify_absence_eleve'] != 'N' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_j'] = 1; } else { $tableau_de_donnees[$annee.'-'.$mois]['nb_j'] = 0; } if ( $donnee['type_absence_eleve'] === 'A' ) { // en heure $minute_debut = convert_heures_minutes($tableau_de_donnees[$date_tt]['heure_debut']); $minute_fin = convert_heures_minutes($tableau_de_donnees[$date_tt]['heure_fin']); if ( $minute_debut <= $heure_de_debut_min and $minute_fin >= $heure_de_fin_min ) { $temp_total_min = ($minute_fin - $minute_debut ) - $pause_min; } else { $temp_total_min = ($minute_fin - $minute_debut ); } if ( $tableau_de_donnees[$date_tt]['justifie'] != 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_j'] = $temp_total_min; } else { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_j'] = '0'; } if ( $tableau_de_donnees[$date_tt]['justifie'] === 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_nj'] = $temp_total_min; } else { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_nj'] = '0'; } } } else { $tableau_de_donnees[$annee.'-'.$mois]['nb'] = $tableau_de_donnees[$annee.'-'.$mois]['nb'] + 1; if ( $tableau_de_donnees[$date_tt]['justifie'] === 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_nj'] = $tableau_de_donnees[$annee.'-'.$mois]['nb_nj'] + 1; } if ( $tableau_de_donnees[$date_tt]['justifie'] != 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_j'] = $tableau_de_donnees[$annee.'-'.$mois]['nb_j'] + 1; } if ( $donnee['type_absence_eleve'] === 'A' ) { // en heure $minute_debut = convert_heures_minutes($tableau_de_donnees[$date_tt]['heure_debut']); $minute_fin = convert_heures_minutes($tableau_de_donnees[$date_tt]['heure_fin']); if ( $minute_debut <= $heure_de_debut_min and $minute_fin >= $heure_de_fin_min ) { $temp_total_min = ( $minute_fin - $minute_debut ) - $pause_min; } else { $temp_total_min = ( $minute_fin - $minute_debut ); } if ( $tableau_de_donnees[$date_tt]['justifie'] != 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_j'] = $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_j'] + $temp_total_min; } if ( $tableau_de_donnees[$date_tt]['justifie'] === 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_nj'] = $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_nj'] + $temp_total_min; } } } // statistique global if ( !isset($tableau_de_donnees['global']) ) { $tableau_de_donnees['global']['nb'] = 1; if ( $donnee['type_absence_eleve'] === 'A' ) { // en heure $tableau_de_donnees['global']['nb_min'] = $temp_total_min; } } else { $tableau_de_donnees['global']['nb'] = $tableau_de_donnees['global']['nb'] + 1; if ( $donnee['type_absence_eleve'] === 'A' ) { // en heure $tableau_de_donnees['global']['nb_min'] = $tableau_de_donnees['global']['nb_min'] + $temp_total_min; } } $i2 = $i2 + 1; } // si la date de debut et de fin ne son pas identique alors on doit faire jour par jour pour la saisi des données if($donnee['d_date_absence_eleve'] != $donnee['a_date_absence_eleve']) { $jour_select = $donnee['d_date_absence_eleve']; // calcule le nombre de jour entre deux date $date1 = str_replace("-", "", $donnee['d_date_absence_eleve']); $date2 = str_replace("-", "", $donnee['a_date_absence_eleve']); $nbjours = floor((strtotime($date2) - strtotime($date1))/(60*60*24)); $nb_jour_passe = '0'; $jour_passe = $donnee['d_date_absence_eleve']; while($nb_jour_passe<=$nbjours) { // incrémente en fonction du nombre de fois ou on trouve une heure de début pour un même jour if ( !isset($nb_horraire_date[$jour_passe]) ) { $nb_horraire_date[$jour_passe] = 0; } else { $nb_horraire_date[$jour_passe] = $nb_horraire_date[$jour_passe] + 1; } $nb_passage_horraire = $nb_horraire_date[$jour_passe]; $jour_passe_tt = $jour_passe.'-'.$nb_passage_horraire; $tableau_de_donnees[$jour_passe_tt]['login'] = $donnee['eleve_absence_eleve']; $tableau_de_donnees[$jour_passe_tt]['jour'] = jour_sem_sql($jour_passe); $tab_jour = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"); $jour_num = $tableau_de_donnees[$jour_passe_tt]['jour']; $jour = $tab_jour[$jour_num]; if ( isset($horraire[$jour]) ) { $heure_de_debut = $horraire[$jour]['ouverture']; $heure_de_fin = $horraire[$jour]['fermeture']; $pause = $horraire[$jour]['pause']; } else { $heure_de_debut = '00:00:00'; $heure_de_fin = '00:00:00'; $pause = '00:00:00'; } $tableau_de_donnees[$jour_passe_tt]['date'] = $jour_passe; if($jour_passe != $donnee['d_date_absence_eleve'] and $jour_passe != $donnee['a_date_absence_eleve']) { $tableau_de_donnees[$jour_passe_tt]['heure_debut'] = $heure_de_debut; $tableau_de_donnees[$jour_passe_tt]['heure_fin'] = $heure_de_fin; } else { if($jour_passe === $donnee['d_date_absence_eleve']) { $tableau_de_donnees[$jour_passe_tt]['heure_debut'] = $donnee['d_heure_absence_eleve']; } else { $tableau_de_donnees[$jour_passe_tt]['heure_debut'] = $heure_de_debut; } if($jour_passe === $donnee['a_date_absence_eleve']) { $tableau_de_donnees[$jour_passe_tt]['heure_fin'] = $donnee['a_heure_absence_eleve']; } else { $tableau_de_donnees[$jour_passe_tt]['heure_fin'] = $heure_de_fin; } } if ( $donnee['justify_absence_eleve'] === 'N' ) { $tableau_de_donnees[$jour_passe_tt]['justifie'] = 'non'; } else { $tableau_de_donnees[$jour_passe_tt]['justifie'] = 'oui'; } // statistique par mois $tab_date = explode('-',$jour_passe); $mois = $tab_date[1]; $annee = $tab_date[0]; if ( !isset($tableau_de_donnees[$annee.'-'.$mois]) and isset($tableau_de_donnees[$jour_passe_tt]) ) { $tableau_de_donnees[$annee.'-'.$mois]['nb'] = 1; if ( $tableau_de_donnees[$jour_passe_tt]['justifie'] === 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_nj'] = 1; } else { $tableau_de_donnees[$annee.'-'.$mois]['nb_nj'] = 0; } if ( $tableau_de_donnees[$jour_passe_tt]['justifie'] != 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_j'] = 1; } else { $tableau_de_donnees[$annee.'-'.$mois]['nb_j'] = 0; } if ( $donnee['type_absence_eleve'] === 'A' ) { // en heure $minute_debut = convert_heures_minutes($tableau_de_donnees[$jour_passe_tt]['heure_debut']); $minute_fin = convert_heures_minutes($tableau_de_donnees[$jour_passe_tt]['heure_fin']); $temp_total_min = ( $minute_fin - $minute_debut ) - convert_heures_minutes($pause); if ( $tableau_de_donnees[$jour_passe_tt]['justifie'] != 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_j'] = $temp_total_min; } else { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_j'] = '0'; } if ( $tableau_de_donnees[$jour_passe_tt]['justifie'] === 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_nj'] = $temp_total_min; } else { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_nj'] = '0'; } } } else { $tableau_de_donnees[$annee.'-'.$mois]['nb'] = $tableau_de_donnees[$annee.'-'.$mois]['nb'] + 1; if ( $tableau_de_donnees[$jour_passe_tt]['justifie'] === 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_nj'] = $tableau_de_donnees[$annee.'-'.$mois]['nb_nj'] + 1; } if ( $tableau_de_donnees[$jour_passe_tt]['justifie'] != 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_j'] = $tableau_de_donnees[$annee.'-'.$mois]['nb_j'] + 1; } if ( $donnee['type_absence_eleve'] === 'A' ) { // en heure $minute_debut = convert_heures_minutes($tableau_de_donnees[$jour_passe_tt]['heure_debut']); $minute_fin = convert_heures_minutes($tableau_de_donnees[$jour_passe_tt]['heure_fin']); $temp_total_min = ( $minute_fin - $minute_debut ) - convert_heures_minutes($pause); if ( $tableau_de_donnees[$jour_passe_tt]['justifie'] != 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_j'] = $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_j'] + $temp_total_min; } if ( $tableau_de_donnees[$jour_passe_tt]['justifie'] === 'non' ) { $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_nj'] = $tableau_de_donnees[$annee.'-'.$mois]['nb_heure_nj'] + $temp_total_min; } } } // statistique global if ( !isset($tableau_de_donnees['global']) ) { $tableau_de_donnees['global']['nb'] = 1; if ( $donnee['type_absence_eleve'] === 'A' ) { // en heure $tableau_de_donnees['global']['nb_min'] = $temp_total_min; } } else { $tableau_de_donnees['global']['nb'] = $tableau_de_donnees['global']['nb'] + 1; if ( $donnee['type_absence_eleve'] === 'A' ) { // en heure $tableau_de_donnees['global']['nb_min'] = $tableau_de_donnees['global']['nb_min'] + $temp_total_min; } } $jour_passe = date("Y-m-d", mktime(0, 0, 0, $tab_date[1], $tab_date[2]+1, $tab_date[0])); $nb_jour_passe = $nb_jour_passe + 1; $i2 = $i2 + 1; } } $i = $i + 1; } return $tableau_de_donnees; }