Example #1
0
function ConstruireColonne($elapse_time, $req_creneau, $duree_max, $jour_sem, $jour, $tab_id_creneaux, $j, $type_edt, $login_edt, $id_semaine_previous, &$tab_data, &$index_box, $period)
{
    global $debug_edt;
    global $current_edt_id_cours;
    // id_cours utilisé pour les semaines A/B dans GetColor()
    global $week_selected;
    if ($debug_edt == "y") {
        echo "<p><b>ConstruireColonne</b><br />";
    }
    $current_edt_id_cours = "";
    $elapse_time1 = $elapse_time;
    // =============== 1 enregistrement existe : initialisation
    if ($rep_creneau = mysqli_fetch_array($req_creneau)) {
        $current_edt_id_cours = $rep_creneau['id_cours'];
        if ($debug_edt == "y") {
            echo "\$current_edt_id_cours={$current_edt_id_cours}<br />";
            echo "<strong>" . get_info_id_cours($current_edt_id_cours) . "</strong><br />";
            $current_edt_id_groupe = $rep_creneau['id_groupe'];
            echo "\$current_edt_id_groupe={$current_edt_id_groupe}<br />";
            echo get_info_grp($current_edt_id_groupe) . "<br />";
        }
        RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "conteneur", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], "", "demicellule" . $duree_max, "", "");
        $id_semaine = $rep_creneau['id_semaine'];
        $duree1 = (int) $rep_creneau['duree'];
        if ($rep_creneau['heuredeb_dec'] != 0 and $elapse_time1 % 2 == 0) {
            RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], "", "cellule1", "cadre", "");
            $duree1++;
            //$elapse_time1++;
            $k = (int) ($elapse_time1 / 2);
        }
        $contenu = ContenuCreneau($tab_id_creneaux[$j], $jour_sem, $type_edt, $rep_creneau['id_groupe'], $rep_creneau['id_aid'], $id_semaine, $period);
        RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], $rep_creneau['id_cours'], "cellule" . $rep_creneau['duree'], GetColor($rep_creneau['id_groupe']), $contenu);
        $elapse_time1 += $duree1;
        $k = (int) ($elapse_time1 / 2);
    } else {
        /*
        echo "DEBUG: plop<br />";
        echo "\$tab_data[$jour]=<pre>";
        print_r($tab_data[$jour]);
        echo "</pre>";
        */
        RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "conteneur", $tab_id_creneaux[$j], "", "", "demicellule" . $duree_max, "", "");
        if ($elapse_time1 % 2 == 0) {
            $duree1 = 2;
        } else {
            $duree1 = 1;
        }
        RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$j], "", "", "cellule" . $duree1, "cadre", "");
        $elapse_time1 += $duree1;
        $k = (int) ($elapse_time1 / 2);
        $rep_creneau['heuredeb_dec'] = 0;
        $rep_creneau['duree'] = 0;
    }
    // ================= procédure de remplissage
    $end_process = false;
    if ($rep_creneau['heuredeb_dec'] == 0 and $rep_creneau['duree'] == 1) {
        if (mysqli_num_rows($req_creneau) == 1 or mysqli_num_rows($req_creneau) == 2) {
            // ========== étude des cas n°14,15
            RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$j], "", "", "cellule1", "cadre", "");
            $duree1++;
            $elapse_time1++;
            $k = (int) ($elapse_time1 / 2);
        } else {
            if (mysqli_num_rows($req_creneau) == 3) {
                //echo "DEBUG: plip<br />";
                // ========== étude des cas n°19, 20
                $req_creneau_aux = $req_creneau;
                // à voir : utiliser une requête auxiliaire ne permet pas apparemment de conserver la requête d'origine dans son état initial
                // c'est embêtant mais j'en ai tenu compte
                mysqli_data_seek($req_creneau_aux, 0);
                $rep_creneau_aux = mysqli_fetch_array($req_creneau_aux);
                $heuredeb_dec_1 = $rep_creneau_aux['heuredeb_dec'];
                $id_semaine_1 = $rep_creneau_aux['id_semaine'];
                $duree1_aux = $rep_creneau_aux['duree'];
                $id_groupe1_aux = $rep_creneau_aux['id_groupe'];
                $id_cours1_aux = $rep_creneau_aux['id_cours'];
                $rep_creneau_aux = mysqli_fetch_array($req_creneau_aux);
                $heuredeb_dec_2 = $rep_creneau_aux['heuredeb_dec'];
                $id_semaine_2 = $rep_creneau_aux['id_semaine'];
                $duree2_aux = $rep_creneau_aux['duree'];
                $id_groupe2_aux = $rep_creneau_aux['id_groupe'];
                $id_cours2_aux = $rep_creneau_aux['id_cours'];
                $rep_creneau_aux = mysqli_fetch_array($req_creneau_aux);
                $heuredeb_dec_3 = $rep_creneau_aux['heuredeb_dec'];
                $id_semaine_3 = $rep_creneau_aux['id_semaine'];
                $duree3_aux = $rep_creneau_aux['duree'];
                $id_groupe3_aux = $rep_creneau_aux['id_groupe'];
                $id_cours3_aux = $rep_creneau_aux['id_cours'];
                $current_edt_id_cours = $rep_creneau['id_cours'];
                if ($heuredeb_dec_1 != 0 and $id_semaine_1 == $rep_creneau['id_semaine']) {
                    $contenu = ContenuCreneau($tab_id_creneaux[$j], $jour_sem, $type_edt, $rep_creneau['id_groupe'], $rep_creneau['id_aid'], $id_semaine_1, $period);
                    RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], $rep_creneau['id_cours'], "cellule" . $duree1_aux, GetColor($rep_creneau['id_groupe']), $contenu);
                    $duree1 += (int) $duree1_aux;
                    $elapse_time1 += (int) $duree1_aux;
                    $k = (int) ($elapse_time1 / 2);
                } else {
                    if ($heuredeb_dec_2 != 0 and $id_semaine_2 == $rep_creneau['id_semaine']) {
                        $contenu = ContenuCreneau($tab_id_creneaux[$j], $jour_sem, $type_edt, $rep_creneau['id_groupe'], $rep_creneau['id_aid'], $id_semaine_2, $period);
                        RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], $rep_creneau['id_cours'], "cellule" . $duree2_aux, GetColor($rep_creneau['id_groupe']), $contenu);
                        $duree1 += (int) $duree2_aux;
                        $elapse_time1 += (int) $duree2_aux;
                        $k = (int) ($elapse_time1 / 2);
                    }
                }
                if ($heuredeb_dec_3 != 0 and $id_semaine_3 == $rep_creneau['id_semaine']) {
                    $contenu = ContenuCreneau($tab_id_creneaux[$j], $jour_sem, $type_edt, $rep_creneau['id_groupe'], $rep_creneau['id_aid'], $id_semaine_3, $period);
                    RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$j], $rep_creneau['id_groupe'], $rep_creneau['id_cours'], "cellule" . $duree3_aux, GetColor($rep_creneau['id_groupe']), $contenu);
                    $duree1 += (int) $duree3_aux;
                    $elapse_time1 += (int) $duree3_aux;
                    $k = (int) ($elapse_time1 / 2);
                } else {
                    RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$j], "", "", "cellule1", "cadre", "");
                    $duree1++;
                    $elapse_time1++;
                    $k = (int) ($elapse_time1 / 2);
                }
            } else {
                RemplirBox($elapse_time, $tab_data[$jour], $index_box, "erreur", $tab_id_creneaux[$j], "none", "none", "cellule2", "cadreRouge", "C01");
                $elapse_time1 += 2;
            }
        }
    }
    while (isset($tab_id_creneaux[$k]) and !$end_process and $duree1 < $duree_max) {
        //if ($id_semaine_previous == '0') {
        if (isset($id_semaine)) {
            $req_demicreneau = LessonsFromDayTeacherSlotWeekPeriod($jour_sem, $login_edt, $tab_id_creneaux[$k], $id_semaine, $period);
        } else {
            $sql = "SELECT id_cours, duree, id_groupe, id_aid, heuredeb_dec, id_semaine FROM edt_cours WHERE \r\n\t\t\tjour_semaine = '" . $jour_sem . "' AND\r\n\t\t\tlogin_prof = '" . $login_edt . "' AND\r\n\t\t\tid_definie_periode = '" . $tab_id_creneaux[$k] . "' AND\r\n\t\t\tid_semaine <> '" . $id_semaine_previous . "' AND\r\n\t\t\tid_semaine <> '0' AND\r\n\t\t\t(id_calendrier = '" . $period . "' OR id_calendrier = '0')\r\n\t\t\t";
            if ($debug_edt == "y") {
                echo "{$sql}<br />";
            }
            $req_demicreneau = mysqli_query($GLOBALS["mysqli"], $sql) or die(mysqli_error($GLOBALS["mysqli"]));
        }
        $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
        if (mysqli_num_rows($req_demicreneau) == 2) {
            // =========== récupérer les deux cours
            mysqli_data_seek($req_demicreneau, 0);
            $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
            $heuredeb_dec_demi1 = $rep_demicreneau['heuredeb_dec'];
            $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
            $heuredeb_dec_demi2 = $rep_demicreneau['heuredeb_dec'];
            // =========== afficher le bon cours
            if ($elapse_time1 % 2 == 0) {
                if ($heuredeb_dec_demi1 == 0) {
                    mysqli_data_seek($req_demicreneau, 0);
                    $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
                } else {
                    mysqli_data_seek($req_demicreneau, 0);
                    $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
                    $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
                }
            } else {
                if ($heuredeb_dec_demi1 != 0) {
                    mysqli_data_seek($req_demicreneau, 0);
                    $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
                } else {
                    mysqli_data_seek($req_demicreneau, 0);
                    $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
                    $rep_demicreneau = mysqli_fetch_array($req_demicreneau);
                }
            }
            $contenu = ContenuCreneau($tab_id_creneaux[$k], $jour_sem, $type_edt, $rep_demicreneau['id_groupe'], $rep_demicreneau['id_aid'], "", $period);
            $current_edt_id_cours = $rep_demicreneau['id_cours'];
            //echo "demicreneau \$current_edt_id_cours=$current_edt_id_cours<br />";
            RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$k], $rep_demicreneau['id_groupe'], $rep_demicreneau['id_cours'], "cellule" . $rep_demicreneau['duree'], GetColor($rep_demicreneau['id_groupe']), $contenu);
            $duree1 += (int) $rep_demicreneau['duree'];
            $elapse_time1 += (int) $rep_demicreneau['duree'];
            $k = (int) ($elapse_time1 / 2);
        } else {
            if (mysqli_num_rows($req_demicreneau) == 1) {
                //$rep_demicreneau = mysql_fetch_array($req_demicreneau);
                //echo "DEBUG: plup<br />";
                if ($rep_demicreneau['heuredeb_dec'] != 0 and $elapse_time1 % 2 == 0) {
                    RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$k], "", "", "cellule1", "cadre", "");
                    $duree1++;
                    $elapse_time1++;
                }
                $current_edt_id_cours = $rep_demicreneau['id_cours'];
                //echo "demicreneau \$current_edt_id_cours=$current_edt_id_cours<br />";
                $contenu = ContenuCreneau($tab_id_creneaux[$k], $jour_sem, $type_edt, $rep_demicreneau['id_groupe'], $rep_demicreneau['id_aid'], "", $period);
                RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "cours", $tab_id_creneaux[$k], $rep_demicreneau['id_groupe'], $rep_demicreneau['id_cours'], "cellule" . $rep_demicreneau['duree'], GetColor($rep_demicreneau['id_groupe']), $contenu);
                $duree1 += (int) $rep_demicreneau['duree'];
                $elapse_time1 += (int) $rep_demicreneau['duree'];
                if ($rep_demicreneau['heuredeb_dec'] == 0 and $rep_demicreneau['duree'] == 1) {
                    RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$k], "", "", "cellule1", "cadre", "");
                    $duree1++;
                    $elapse_time1++;
                }
                $k = (int) ($elapse_time1 / 2);
            } else {
                if ($duree1 < $duree_max) {
                    //echo "DEBUG: plyp<br />";
                    if ($elapse_time1 % 2 == 0) {
                        RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$k], "", "", "cellule1", "cadre", "");
                        $duree1++;
                        $elapse_time1++;
                        $k = (int) ($elapse_time1 / 2);
                    } else {
                        RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "vide", $tab_id_creneaux[$k], "", "", "cellule1", "cadre", "");
                        $duree1++;
                        $elapse_time1++;
                        $k = (int) ($elapse_time1 / 2);
                    }
                } else {
                    $end_process = true;
                }
            }
        }
    }
    RemplirBox($elapse_time1, $tab_data[$jour], $index_box, "fin_conteneur", "", "", "", "", "", "");
}
     echo "\n\t\t</tr>\n\t\t<tr>";
 }
 echo "\n\t\t\t<td>";
 $cpt_ligne++;
 $temoin_cours = "y";
 //$tab_id_cours=get_tab_id_cours($tab_cours_prof_absent[$tab_creneau[$loop]['id_definie_periode']]);
 $tab_id_cours = get_tab_id_cours($value['id_cours']);
 if (isset($tab_id_cours['id_groupe'])) {
     $id_groupe_courant = $tab_id_cours['id_groupe'];
     if (!isset($groups[$id_groupe_courant])) {
         $groups[$id_groupe_courant] = get_group($id_groupe_courant, array('matieres', 'classes', 'profs'));
     }
     echo "<span title=\"" . $groups[$id_groupe_courant]['description'] . "\nMatière :          " . $groups[$id_groupe_courant]["matiere"]["matiere"] . " (" . $groups[$id_groupe_courant]["matiere"]["nom_complet"] . ")\nClasse(s) :       " . $groups[$id_groupe_courant]["classlist_string"] . "\nProfesseur(s) : " . $groups[$id_groupe_courant]['profs']['proflist_string'] . "\">" . $groups[$id_groupe_courant]['name'] . "</span>";
 } else {
     //echo get_info_id_cours($tab_cours_prof_absent[$tab_creneau[$loop]['id_definie_periode']]);
     echo get_info_id_cours($value['id_cours']);
 }
 echo "</td>\n\t\t\t<td>";
 if (isset($groups[$id_groupe_courant])) {
     foreach ($groups[$id_groupe_courant]['classes']['classes'] as $current_id_classe => $current_tab_classe) {
         echo $current_tab_classe['classe'] . "<br />";
     }
 }
 /*
 echo "
 <a href='#' onclick=\"cocher_sans_cours(".$date_aaaammjj.",".$tab_creneau[$loop]['id_definie_periode'].");return false;\" title=\"Cocher tous les professeurs proposés pour le créneau courant.\"><img src='../images/enabled.png' class='icone16' alt='Cocher' /></a>/<a href='#' onclick=\"decocher_sans_cours(".$date_aaaammjj.",".$tab_creneau[$loop]['id_definie_periode'].");return false;\" title=\"Décocher tous les professeurs proposés pour le créneau courant.\"><img src='../images/disabled.png' class='icone16' alt='Décocher' /></a>";
 */
 echo "\n\t\t\t</td>\n\t\t\t<td style='text-align:left;'>\n\n\t\t\t\t<a name='jour_" . $date_aaaammjj . "_creneau_" . $id_creneau_courant . "'></a>";
 // 20150420 : Tester si on ne veut pas remplacer les cours qui ne correspondent pas à des groupes classe.
 if (isset($groups[$id_groupe_courant])) {
     if ($AbsProfGroupesClasseSeulement != "yes" || count($groups[$id_groupe_courant]['classes']['list']) == 1) {