Exemple #1
0
	   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")) {
Exemple #3
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;
}