function nbjoursouvres($mois, $annee) { $date_depart = strtotime($annee . "-" . $mois . "-01"); $samedi = 0; $dimanche = 0; $ferie1 = 0; $nbjoursMois = nbjoursMois($mois, $annee); $jour = jour_semaine($mois, 1, $annee); $feries = getFeries($date_depart); for ($i = 1; $i <= $nbjoursMois; $i++) { switch (true) { case in_array(mktime(0, 0, 0, $mois, $i, $annee), $feries): $ferie1++; break; case $jour == 6: $samedi++; break; case $jour == 7: $dimanche++; break; } if ($jour == 7) { $jour = 0; } $jour++; } $jourouvre = $nbjoursMois - $ferie1 - $dimanche - $samedi; return $jourouvre; }
$GLOBALS['retour_page'] = 'chx_date.php?type=visu_prepaie'; $GLOBALS['titre_page'] = '<div class="adm">Pré-Paie de ' . $nomMois . ' ' . $annee . '</div>'; include "menu/menu_global.php"; ?> <!-- Affiche Bonjour Prénom Nom de la personne en loguée + date du jour--> <?php $date_depart = strtotime($annee . "-" . $mois . "-01"); $date_arrive = strtotime($annee . "-" . $mois . "-31"); $samedi = 0; $dimanche = 0; $ferie1 = 0; $tab_we = array(); $nbjoursMois = nbjoursMois($mois, $annee); //connaitre le nb de jours dans le mois $jour = jour_semaine($mois, 1, $annee); $feries = getFeries($date_depart, $date_arrive); for ($i = 1; $i <= $nbjoursMois; $i++) { switch (true) { case in_array(mktime(0, 0, 0, $mois, $i, $annee), $feries): $ferie1++; break; case $jour == 6: $samedi++; array_push($tab_we, $i); break; case $jour == 7: $dimanche++; array_push($tab_we, $i); break; }
/** * Génère le calendrier, le select, la légende et les styles pour les congés * * @param int $id : l'ID du collaborateur dont on désire les congés * @return array : contient chaque morceau généré : style, select, recap et calendrier */ function generer_calendrier($id, $mois, $annee) { $retour = array(); /* * préparation de la liste des types d'absence, des styles et du select et du tableau */ $type_absences = array(); $result_type_absence = $GLOBALS['connexion']->query("SELECT * FROM TYPE_ABSENCE"); $retour['select'] = 'Choix du type de congés<br /><select name="type">'; $retour['style'] = ''; $retour['recap'] = '<table border="1"><thead><tr><th>type</th><th style="width:70px;">Validé</th><th style="width:70px;">Demandé</th></tr></thead><tbody>'; while ($row = $result_type_absence->fetch_assoc()) { $nom = str_replace(' ', '', $row['TYA_LIBELLE']); $type_absences[$row['TYA_NO']] = array('nom' => $nom, 'valide' => $row['TYA_COULEUR'], 'demande' => $row['TYA_COULEUR_DEM']); $retour['style'] .= ecrire_style($nom, $row['TYA_COULEUR_DEM']); $retour['style'] .= ecrire_style($nom . '-valid', $row['TYA_COULEUR']); $retour['select'] .= option($nom, $row['TYA_LIBELLE']); $retour['recap'] .= ajout_row_conge($row['TYA_LIBELLE'], $nom); } $retour['select'] .= '</select>'; $retour['recap'] .= '</tbody></table>'; /* * récupération de la liste des congés validés ou non pour la période donnée */ $conges = array(); $query = "SELECT TYA_NO, ABS_JOUR, ABS_NBH, ABS_VALIDATION FROM ABSENCE WHERE ABS_MOIS = '" . $mois . "' AND ABS_ANNEE = '" . $annee . "' AND COL_NO = '" . $id . "' AND ABS_ETAT != 3"; $result = $GLOBALS['connexion']->query($query); while ($row = $result->fetch_assoc()) { $conges[$row['ABS_JOUR']] = $type_absences[$row['TYA_NO']]['nom']; $conges[$row['ABS_JOUR']] .= $row['ABS_VALIDATION'] ? '-valid' : ''; $conges[$row['ABS_JOUR']] .= $row['ABS_NBH'] == 1 ? '' : '-b'; } /* * préparation du tableau des jours */ $semaine = 1; //nombre de semaine dans un mois $table = array(); //table du mois $nbjoursMois = nbjoursMois($mois, $annee); //connaitre le nb de jours dans le mois $jour = jour_semaine($mois, 1, $annee); //connaitre le jour du premier du mois $feries = getFeriesAnnee($annee); for ($i = 1; $i <= $nbjoursMois; $i++) { switch (true) { case isset($conges[$i]): $table[$semaine][$jour]['classe'] = $conges[$i]; $table[$semaine][$jour]['classe'] .= strpos($conges[$i], 'valid') === false ? ' clickable' : ''; break; case in_array(mktime(0, 0, 0, $mois, $i, $annee), $feries): $table[$semaine][$jour]['classe'] = 'feries'; break; case $jour == 6: $table[$semaine][$jour]['classe'] = 'samedi'; break; case $jour == 7: $table[$semaine][$jour]['classe'] = 'dimanche'; break; default: $table[$semaine][$jour]['classe'] = 'clickable'; break; } $table[$semaine][$jour]['valeur'] = $i; if ($jour == 7) { $jour = 0; $semaine++; } $jour++; } $retour['calendrier'] = generer_tableau($table); return $retour; }
// Première étape if($passage_form != 'manuel') { //horaire dans lequel nous nous trouvons actuellement // en tenant compte du jour différent if (getSettingValue("creneau_different") != 'n') { if (date("w") == getSettingValue("creneau_different")) { $horaire = periode_heure_jourdifferent(periode_actuel_jourdifferent(date('H:i:s'))); } else { $horaire = periode_heure(periode_actuel(date('H:i:s'))); } }else { $horaire = periode_heure(periode_actuel(date('H:i:s'))); } // jour de la semaine au format chiffre $jour_aujourdhui = jour_semaine($datej); // On vérifie si la menuBarre n'a pas renvoyé une classe (nouvelle version) if ((getSettingValue("utiliserMenuBarre") != "no") AND $_SESSION["statut"] == "professeur" AND $menuBar == 'ok') { $d_heure_absence_eleve = $horaire["debut"]; $a_heure_absence_eleve = $horaire["fin"]; $classe = isset($_GET["groupe"]) ? $_GET["groupe"] : NULL; $etape = '2'; $passage_auto = 'oui'; }else{ // on vérifie si un emploi du temps pour ce prof n'est pas disponible (ancienne version) $sql = 'SELECT * FROM edt_classes WHERE prof_edt_classe = "'.$_SESSION["login"].'" AND jour_edt_classe = "'.$jour_aujourdhui['chiffre'].'" AND semaine_edt_classe = "'.$type_de_semaine.'" AND heuredebut_edt_classe <="'.date('H:i:s').'" AND heurefin_edt_classe >="'.date('H:i:s').'"'; $req = mysqli_query($GLOBALS["mysqli"], $sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysqli_error($GLOBALS["mysqli"])); $nbre = mysqli_num_rows($req); if ($nbre >= 1) { // on fait une boucle qui va faire un tour pour chaque enregistrement