function verif_date($date_fr)
{
    $jour = '';
    $mois = '';
    $annee = '';
    if ($date_fr != '') {
        list($jour, $mois, $annee) = explode('/', $date_fr);
        if (verif_num($jour) and verif_num($mois) and verif_num($annee)) {
            if (checkdate($mois, $jour, $annee)) {
                $verif = TRUE;
            } else {
                $verif = FALSE;
            }
        } else {
            $verif = FALSE;
        }
    } else {
        $verif = FALSE;
    }
    return $verif;
}
Exemple #2
0
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);

		}

	}

}