public function testPreremplirResponsables() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(SAMEDI_s40j6)->getFirst(); $traitement = $saisie->getAbsenceEleveTraitements()->getFirst(); $notification = $traitement->getAbsenceEleveNotifications()->getFirst(); $this->assertEquals($notification->getEmail(), null); $this->assertEquals($notification->getResponsableEleves()->count(), 0); $result = $notification->preremplirResponsables(); $this->assertTrue($result); $this->assertEquals($notification->getEmail(), 'mail@test'); $this->assertEquals($notification->getResponsableEleves()->count(), 2); //on va changer le responsables 2 de florence foreach ($florence_eleve->getResponsableInformations() as $resp_info) { if ($resp_info->getNiveauResponsabilite() == '2') { $resp = $resp_info->getResponsableEleve(); $resp->setAdresseId(null); $resp->save(); } } $empty_col= new PropelObjectCollection(); $notification->setResponsableEleves($empty_col); $this->assertEquals($notification->getResponsableEleves()->count(), 0); $result = $notification->preremplirResponsables(); $this->assertTrue($result); $this->assertEquals($notification->getEmail(), 'mail@test'); $this->assertEquals($notification->getResponsableEleves()->count(), 1); //on va rajouter un responsable 1 $responsable = new ResponsableEleve(); $responsable->setCivilite('M.'); $responsable->setNom('Michu'); $responsable->setMel('mail@test'); $responsable->setPrenom('Mere'); $responsable->setResponsableEleveId('id 5'); $responsable->save(); $responsable_info = new ResponsableInformation(); $responsable_info->setEleve($florence_eleve); $responsable_info->setNiveauResponsabilite(1); $responsable_info->setResponsableEleve($responsable); $responsable_info->save(); $empty_col= new PropelObjectCollection(); $notification->setResponsableEleves($empty_col); $this->assertEquals($notification->getResponsableEleves()->count(), 0); $result = $notification->preremplirResponsables(); $this->assertFalse($result); $this->assertEquals($notification->getEmail(), 'mail@test'); $this->assertEquals($notification->getResponsableEleves()->count(), 0); }
public function testGetDateDebut() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); $periode_col = $florence_eleve->getPeriodeNotes(); $this->assertEquals('3',$periode_col->count()); $this->assertEquals('1',$periode_col->getFirst()->getNumPeriode()); $this->assertEquals('3',$periode_col->getLast()->getNumPeriode()); $periode_1 = $periode_col->getFirst(); $this->assertEquals(SAMEDI_s48j6.' 23:59:59',$periode_1->getDateFin('Y-m-d H:i:s')); $this->assertEquals(VENDREDI_s35j5.' 00:00:00',$periode_1->getDateDebut('Y-m-d H:i:s')); $periode_3 = $periode_col->getLast(); $this->assertEquals(LUNDI_a1_s27j1.' 23:59:59',$periode_3->getDateFin('Y-m-d H:i:s')); $this->assertEquals(SAMEDI_a1_s9j6.' 00:00:00',$periode_3->getDateDebut('Y-m-d H:i:s')); }
/** * Test that PropelCollection->add() prevents duplicates of objects strictly identical * */ public function testAdd() { Propel::disableInstancePooling(); $eleve1 = EleveQuery::create()->findOneByLogin('Florence Michu'); $eleve1->setNom('test_different'); $eleve_col = new PropelCollection(); $eleve_col->add($eleve1); $eleve1idem = EleveQuery::create()->findOneByLogin('Florence Michu'); $this->assertFalse($eleve_col->contains($eleve1idem)); $eleve_col->add($eleve1idem); $this->assertEquals(2, count($eleve_col)); Propel::enableInstancePooling(); $eleve1 = EleveQuery::create()->findOneByLogin('Florence Michu'); $eleve_col = new PropelCollection(); $eleve_col->add($eleve1); $eleve_col->add($eleve1); $this->assertEquals(1, count($eleve_col)); }
public function testDelete() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); $florence_eleve->updateAbsenceAgregationTable(); AbsenceEleveSaisiePeer::enableAgregation(); AbsenceEleveTraitementPeer::enableAgregation(); $traitement = new AbsenceEleveTraitement(); $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne()); $traitement->save(); $traitement->addAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour(VENDREDI_s40j5)->getFirst()); $traitement->save(); $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee(VENDREDI_s40j5)->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); $j_traitement_saisie = $traitement->getJTraitementSaisieEleves()->getFirst(); $j_traitement_saisie->delete(); $decompte->reload(); $this->assertTrue($decompte->getManquementObligationPresence()); AbsenceEleveTraitementPeer::disableAgregation(); AbsenceEleveSaisiePeer::disableAgregation(); }
/** * Get the associated Eleve object * * @param PropelPDO Optional Connection object. * @return Eleve The associated Eleve object. * @throws PropelException */ public function getEleve(PropelPDO $con = null) { if ($this->aEleve === null && ($this->eleve_id !== null)) { $this->aEleve = EleveQuery::create()->findPk($this->eleve_id, $con); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aEleve->addAbsenceEleveSaisies($this); */ } return $this->aEleve; }
public function testRetardEnglobante() { saveSetting('abs2_retard_critere_duree',30); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(VENDREDI_s40j5)->getFirst(); $this->assertFalse($saisie->getRetardEnglobante()); $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(SAMEDI_s40j6)->getFirst(); $this->assertFalse($saisie->getRetardEnglobante()); $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(DIMANCHE_s40j7)->getFirst(); $this->assertFalse($saisie->getRetardEnglobante()); $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(LUNDI_s41j1)->getFirst(); $this->assertTrue($saisie->getRetardEnglobante()); $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(MARDI_s41j2)->getFirst(); saveSetting('abs2_retard_critere_duree',30); $this->assertTrue($saisie->getRetardEnglobante()); $saisie->clearAllReferences(); saveSetting('abs2_retard_critere_duree',20); $this->assertFalse($saisie->getRetardEnglobante()); saveSetting('abs2_retard_critere_duree',30); $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(MERCREDI_s41j3)->getFirst();//sur cette saisie on a plusieurs traitement, on privilégie le retard $this->assertTrue($saisie->getRetardEnglobante()); $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs(VENDREDI_s41j5.' 08:10:00')->findOne(); $this->assertFalse($saisie->getRetardEnglobante()); $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs(DIMANCHE_s41j7.' 08:10:00')->findOne(); $this->assertTrue($saisie->getRetardEnglobante()); $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs(LUNDI_s42j1.' 08:10:00')->findOne(); $this->assertTrue($saisie->getRetardEnglobante()); $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs(VENDREDI_s42j5.' 08:10:00')->findOne(); $this->assertFalse($saisie->getRetardEnglobante()); $saisies = AbsenceEleveSaisieQuery::create()->filterByFinAbs(LUNDI_s43j1.' 09:00:00')->find(); $this->assertTrue($saisies->getFirst()->getRetardEnglobante()); $this->assertTrue($saisies->getNext()->getRetardEnglobante()); $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs(MARDI_a1_s22j2.' 09:10:00')->findOne(); $this->assertFalse($saisie->getRetardEnglobante()); $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs(MERCREDI_a1_s22j3.' 08:10:00')->findOne(); $this->assertTrue($saisie->getRetard()); $this->assertFalse($saisie->getRetardEnglobante()); $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs(JEUDI_a1_s23j4.' 08:10:00')->findOne(); $this->assertTrue($saisie->getRetardEnglobante()); $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs(LUNDIa1_s24j1.' 08:10:00')->findOne(); $this->assertFalse($saisie->getRetardEnglobante()); }
} else { echo ' demander à votre administrateur de remplir la table d\'agrégation.'; } if (ob_get_contents()) { ob_flush(); } flush(); } foreach ($eleve_col as $eleve) { $eleve->checkAndUpdateSynchroAbsenceAgregationTable($dt_date_absence_eleve_debut, $dt_date_absence_eleve_fin); } } //on recommence la requetes, maintenant que la table est synchronisé, avec les données d'absence $eleve_query = EleveQuery::create()->filterById($eleve_col->toKeyValue('Id','Id')); $eleve_query->useAbsenceAgregationDecompteQuery()->distinct()->filterByDateIntervalle($dt_date_absence_eleve_debut, $dt_date_absence_eleve_fin)->endUse(); $eleve_query->withColumn('SUM(AbsenceAgregationDecompte.ManquementObligationPresence)', 'NbAbsences') ->withColumn('SUM(AbsenceAgregationDecompte.NonJustifiee)', 'NbNonJustifiees') ->withColumn('SUM(AbsenceAgregationDecompte.Retards)', 'NbRetards') ->withColumn('SUM(AbsenceAgregationDecompte.ManquementObligationPresence) - SUM(AbsenceAgregationDecompte.NonJustifiee)', 'NbJustifiees') ->groupBy('Eleve.Id'); $eleve_col = $eleve_query->find(); } if ($affichage == 'html') { //debug_var(); if(isset($_POST['generer_csv'])) { $user_temp_dir=get_user_temp_directory();
->distinct(); $eleve_col = $query->find(); } else if (isset($current_aid) && $current_aid != null) { $query = EleveQuery::create(); $eleve_col = $query->useJAidElevesQuery() ->filterByIdAid($current_aid->getId()) ->endUse() ->where('Eleve.DateSortie<?','0') ->orWhere('Eleve.DateSortie is NULL') ->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve->format('U')) ->orderBy('Eleve.Nom','asc') ->orderBy('Eleve.Prenom','asc') ->distinct() ->find(); } else if (isset($current_classe) && $current_classe != null) { $query = EleveQuery::create(); $periode_cur = $current_classe->getPeriodeNote($dt_date_absence_eleve); if ($periode_cur != null) { $query->useJEleveClasseQuery()->filterByClasse($current_classe)->filterByPeriode($periode_cur->getNumPeriode())->endUse(); } else { $query->useJEleveClasseQuery()->filterByClasse($current_classe)->endUse(); } $query->where('Eleve.DateSortie<?','0') ->orWhere('Eleve.DateSortie is NULL') ->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve->format('U')) ->orderBy('Eleve.Nom','asc') ->orderBy('Eleve.Prenom','asc') ->distinct(); $eleve_col = $query->find(); }
La formule utilisée pour le calcul du taux d'absentéisme est le pourcentage du nombre de demi-journées d'absences par rapport au nombre de demi-journées ouvrées.<br /> Pour les élèves ayant quitté l'établissement durant la période choisie, le nombre de demi-journées ouvrées utilisé pour le calcul est indiqué entre parenthèses.<br /><br /> </p> <form dojoType="dijit.form.Form" name="abs_statistiques" id="abs_statistiques" action="statistiques.php" method="post"> <fieldset> <legend>Paramétrage de l'export (dates, classes...) et affichage</legend> <h2>Taux d'absentéisme du <input style="width : 8em;font-size:14px;" type="text" dojoType="dijit.form.DateTextBox" id="date_absence_eleve_debut" name="date_absence_eleve_debut" value="<?php echo $dt_date_absence_eleve_debut->format('Y-m-d') ?>" /> au <input style="width : 8em;font-size:14px;" type="text" dojoType="dijit.form.DateTextBox" id="date_absence_eleve_fin" name="date_absence_eleve_fin" value="<?php echo $dt_date_absence_eleve_fin->format('Y-m-d') ?>" /> soit <?php echo $nbre_demi_journees;?> demi-journées ouvrées. </h2> <?php if ($id_eleve !== null && $id_eleve != '') { $eleve = EleveQuery::create()->filterById($id_eleve)->findOne(); $nom_eleve = $eleve->getNom(); $id_classe = $eleve->getClasse()->getId(); } ?> Nom (facultatif) : <input dojoType="dijit.form.TextBox" type="text" style="width : 10em" name="nom_eleve" size="10" value="<?php echo $nom_eleve ?>" onChange="document.bilan_individuel.id_eleve.value='';"/> <input type="hidden" name="id_eleve" value="<?php echo $id_eleve ?>"/> <input type="hidden" name="affichage" value="<?php echo $affichage ?>"/> <?php //on affiche une boite de selection avec les classe if ((getSettingValue("GepiAccesAbsTouteClasseCpe") == 'yes' && $utilisateur->getStatut() == "cpe") || $utilisateur->getStatut() == "autre") { $classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->find(); } else { $classe_col = $utilisateur->getClasses();
/** * Get the associated Eleve object * * @param PropelPDO Optional Connection object. * @return Eleve The associated Eleve object. * @throws PropelException */ public function getEleve(PropelPDO $con = null) { if ($this->aEleve === null && (($this->login !== "" && $this->login !== null))) { $this->aEleve = EleveQuery::create() ->filterByEleveRegimeDoublant($this) // here ->findOne($con); // Because this foreign key represents a one-to-one relationship, we will create a bi-directional association. $this->aEleve->setEleveRegimeDoublant($this); } return $this->aEleve; }
$tab_score[$num_ligne]["periodes"][$cpt_per]['chaine_title']=$chaine_title; $tab_score[$num_ligne]["periodes"][$cpt_per]['chaine']=$chaine; $cpt_per++; } $num_ligne++; } } else { $sql="SELECT DISTINCT e.nom, e.prenom, e.login FROM eleves e, j_eleves_classes jec WHERE jec.id_classe='$id_classe' AND jec.periode='$num_periode' AND jec.login=e.login ORDER BY e.nom, e.prenom;"; //echo "$sql<br />"; $res_ele=mysqli_query($GLOBALS["mysqli"], $sql); $num_ligne=0; while($lig_ele=mysqli_fetch_object($res_ele)) { $eleve = EleveQuery::create()->findOneByLogin($lig_ele->login); foreach($eleve->getPeriodeNotes() as $periode_note) { if ($periode_note->getDateDebut() == null) { //periode non commencee continue; } /* echo "<pre>"; print_r($periode_note); echo "</pre>"; */ if($periode_note->getNumPeriode()==$num_periode) { $tab_score['eleves'][$num_ligne]["login"]=$lig_ele->login; $tab_score['eleves'][$num_ligne]["prenom_nom"]=$lig_ele->prenom." ".$lig_ele->nom;
} else { $classe_col = $utilisateur->getClasses(); } if ($classe_col->isEmpty()) { echo ' <tr> <td colspan="'.($creneau_col->count() + 2).'">Aucune classe avec élève affecté n\'a été trouvée</td> </tr>'; } foreach($classe_col as $classe) { echo ' <tr> <td>'.$classe->getNom().'</td> <td colspan="'.($creneau_col->count() + 1).'"></td> </tr> '; $eleve_query = EleveQuery::create() ->orderByNom() ->useAbsenceEleveSaisieQuery()->filterByPlageTemps($dt_debut, $dt_fin)->where('AbsenceEleveSaisie.DeletedAt is Null')->endUse() ->filterByClasse($classe,$dt_date_absence_eleve) ->where('Eleve.DateSortie<?','0') ->orWhere('Eleve.DateSortie is NULL') ->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve->format('U')) ->distinct(); if (getSettingValue("GepiAccesAbsTouteClasseCpe")=='yes' && $utilisateur->getStatut() == "cpe") { //on ne filtre pas } else { $eleve_query->filterByUtilisateurProfessionnel($utilisateur); } $eleve_col = $eleve_query->find(); $cpt_eleve=0;
/** * * Renvoi sous forme d'un tableau la liste des eles d'une classe. * Manually added for N:M relationship * * @periode integer numero de la periode * @return PropelObjectCollection Eleves[] * */ public function getEleves($periode = null) { if ($periode === null) { if ($this->getPeriodeNoteOuverte() != null) { $periode = $this->getPeriodeNoteOuverte()->getNumPeriode(); } } $query = EleveQuery::create(); if ($periode !== null) { $query->useJEleveGroupeQuery()->filterByGroupe($this)->filterByPeriode($periode)->endUse(); } else { $query->useJEleveGroupeQuery()->filterByGroupe($this)->endUse(); } $query->orderByNom()->orderByPrenom()->distinct(); return $query->find(); }
/* $mef = MefQuery::create()->findPk($id_mef); if ($mef == null) { $message_enregistrement .= "Probleme avec l'id du mef : ".$_POST['id_mef']."<br/>"; } */ if (!array_key_exists($id_mef, $tab_mef)) { $message_enregistrement .= "Probleme avec l'id du mef : " . $_POST['id_mef'] . "<br/>"; } } for ($i = 0; $i < $total_eleves; $i++) { //$id_eleve = $_POST['id_eleve_absent'][$i]; //on test si l'eleve est enregistré absent if (!isset($_POST['active_mef_eleve'][$i])) { continue; } $eleve = EleveQuery::create()->findPk($_POST['active_mef_eleve'][$i]); if ($eleve == null) { $message_enregistrement .= "Probleme avec l'id eleve : " . $_POST['id_eleve_mef'][$i] . "<br/>"; continue; } /* $eleve->setMef($mef); $eleve->save(); */ $sql = "UPDATE eleves SET mef_code='" . $id_mef . "' WHERE id_eleve='" . $_POST['active_mef_eleve'][$i] . "';"; //echo "$sql<br />"; $update = mysqli_query($GLOBALS["mysqli"], $sql); $message_enregistrement .= "Mef enregistré pour l'eleve : " . $eleve->getNom() . "<br/>"; } include "associer_eleve_mef.php";
/** * * Vérifie que l'ensemble de la table d'agrégation est à jours, pour tous les élèves. * Corrige automatiquement la table pour un certain nombres d'élèves (précisé par $reparation_nbr), * si plus d'élève que ce nombre sont en échec on renvoie faux * * @param DateTime $dateDebut date de début pour la prise en compte du test * @param DateTime $dateFin date de fin pour la prise en compte du test * @param int $reparation_nbr nomble d'elve qu'on va mettre à jour avant de renvoyer faux * @return Boolean * */ public static function checkSynchroAbsenceAgregationTable(DateTime $dateDebut = null, DateTime $dateFin = null, $reparation_nbr = 50) { global $mysqli; $debug = false; if ($debug) { print_r('AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable() called<br/>'); } //on initialise les date clone qui seront manipulés dans l'algoritme, c'est nécessaire pour ne pas modifier les dates passées en paramêtre. $dateDebutClone = null; $dateFinClone = null; if ($dateDebut != null) { if ($debug) { print_r('Date début '.$dateDebut->format('Y-m-d').'<br/>'); } $dateDebutClone = clone $dateDebut; $dateDebutClone->setTime(0,0); } if ($dateFin != null) { if ($debug) { print_r('Date fin '.$dateFin->format('Y-m-d').'<br/>'); } $dateFinClone = clone $dateFin; $dateFinClone->setTime(23,59); } //on va vérifier que tout les marqueurs de fin des calculs de mise à jour sont bien présents pour tout les élèves $query = ' SELECT distinct eleves.ID_ELEVE FROM `eleves` LEFT JOIN ( SELECT distinct ELEVE_ID FROM `a_agregation_decompte` WHERE date_demi_jounee = \'0001-01-01 00:00:00\') as a_agregation_decompte_selection ON (eleves.ID_ELEVE=a_agregation_decompte_selection.ELEVE_ID) WHERE a_agregation_decompte_selection.ELEVE_ID IS NULL'; $result = mysqli_query($mysqli, $query); $num_rows = mysqli_num_rows($result); if ($num_rows>0 && $num_rows < $reparation_nbr) { if ($debug) { print_r('Il manque des marqueurs de fin de calcul<br/>'); } //on va corriger la table pour ces élèves là while ($row = mysqli_fetch_array($result, MYSQL_NUM)) { $eleve = EleveQuery::create()->findOneById($row[0]); if ($debug) { print_r('recalcul pour l eleve '.$eleve->getId().'<br/>'); } $eleve->checkAndUpdateSynchroAbsenceAgregationTable($dateDebutClone,$dateFinClone); } //après avoir corrigé on relance le test return(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable($dateDebutClone, $dateFinClone)); } elseif ($num_rows>0) { if ($debug) { print_r('retourne faux : Il manque trop de marqueurs de fin de calcul<br/>'); } return false; } //conditions sql sur les dates $date_saisies_selection = ' 1=1 '; $date_saisies_version_selection = ' 1=1 '; $date_agregation_selection = ' 1=1 '; if ($dateDebutClone != null) { $date_saisies_selection .= ' and a_saisies.fin_abs >= "'.$dateDebutClone->format('Y-m-d H:i:s').'" '; $date_saisies_version_selection .= ' and a_saisies_version.fin_abs >= "'.$dateDebutClone->format('Y-m-d H:i:s').'" '; $date_agregation_selection .= ' and a_agregation_decompte.DATE_DEMI_JOUNEE >= "'.$dateDebutClone->format('Y-m-d H:i:s').'" '; } if ($dateFinClone != null) { $date_saisies_selection .= ' and a_saisies.debut_abs <= "'.$dateFinClone->format('Y-m-d H:i:s').'" '; $date_saisies_version_selection .= ' and a_saisies_version.debut_abs <= "'.$dateFinClone->format('Y-m-d H:i:s').'" '; $date_agregation_selection .= ' and a_agregation_decompte.DATE_DEMI_JOUNEE <= "'.$dateFinClone->format('Y-m-d H:i:s').'" '; } //on va vérifier que tout les élèves ont bien le bon nombres entrées dans la table d'agrégation pour cette période if ($dateFinClone != null && $dateDebutClone != null) { $query = ' SELECT eleves.ID_ELEVE, count(eleves.ID_ELEVE) as count_entrees FROM `eleves` LEFT JOIN ( SELECT ELEVE_ID FROM `a_agregation_decompte` WHERE '.$date_agregation_selection.') as a_agregation_decompte_selection ON (eleves.ID_ELEVE=a_agregation_decompte_selection.ELEVE_ID) group by eleves.ID_ELEVE'; $result = mysqli_query($mysqli, $query); $wrong_eleve = array(); $nbre_demi_journees=(int)(($dateFinClone->format('U')+3700-$dateDebutClone->format('U'))/(3600*12)); while($row = mysqli_fetch_array($result)){ if ($row[1]!=$nbre_demi_journees) { if ($debug) { print_r('Il manque des entrees pour l eleve '.$row[0].'<br/>'); } $wrong_eleve[]=$row[0]; } } if (count($wrong_eleve) > 0 && count($wrong_eleve) < $reparation_nbr) { //on va corriger la table pour ces élèves là foreach($wrong_eleve as $idEleve) { $eleve = EleveQuery::create()->findOneById($idEleve); if ($debug) { print_r('recalcul pour l eleve '.$eleve->getId().'<br/>'); } $eleve->checkAndUpdateSynchroAbsenceAgregationTable($dateDebutClone,$dateFinClone); } //après avoir corrigé on relance le test return(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable($dateDebutClone, $dateFinClone)); } elseif (!empty($wrong_eleve) > 0) { if ($debug) { print_r('retourne faux : Il manque des saisies sur '.count($wrong_eleve).' eleves<br/>'); } return false; } } // est-ce que la date updated_at de mise à jour de la table est bien postérieure aux date de modification des saisies et autres entrées $query = 'select union_date, updated_at, now() as now FROM (SELECT max(updated_at) as updated_at FROM a_agregation_decompte WHERE '.$date_agregation_selection.' ) as updated_at_select LEFT JOIN ( (SELECT union_date from ( SELECT GREATEST(IFNULL(max(updated_at),CAST(0 as DATETIME)),IFNULL(max(deleted_at),CAST(0 as DATETIME))) as union_date FROM a_saisies WHERE eleve_id is not null and '.$date_saisies_selection.' UNION ALL SELECT GREATEST(IFNULL(max(a_saisies_version.updated_at),CAST(0 as DATETIME)),IFNULL(max(a_saisies_version.deleted_at),CAST(0 as DATETIME))) as union_date FROM a_saisies_version WHERE a_saisies_version.eleve_id is not null and '.$date_saisies_version_selection.' UNION ALL SELECT GREATEST(IFNULL(max(a_traitements.updated_at),CAST(0 as DATETIME)),IFNULL(max(a_traitements.deleted_at),CAST(0 as DATETIME))) as union_date FROM a_traitements join j_traitements_saisies on a_traitements.id = j_traitements_saisies.a_traitement_id join a_saisies on a_saisies.id = j_traitements_saisies.a_saisie_id WHERE a_saisies.eleve_id is not null and '.$date_saisies_selection.' ORDER BY union_date DESC LIMIT 1 ) AS union_date_union_all_select ) AS union_date_select ) ON 1=1;'; $result_query = mysqli_query($mysqli, $query); if ($result_query === false) { if ($debug) { echo $query; } echo 'Erreur sur la requete : '.mysqli_error($mysqli).'<br/>'; return false; } $row = mysqli_fetch_array($result_query); mysqli_free_result($result_query); if ($debug) { print_r($row); } if ($row['updated_at'] && $row['updated_at'] > $row['now']) { if ($debug) { print_r('faux : Date de mise a jour des agregation ne peut pas etre dans le futur<br/>'); } return false; } else if ($row['union_date'] && $row['union_date'] > $row['now']) { if ($debug) { print_r('faux : Date de mise a jour des saisie ou traitements ne peut pas etre dans le futur<br/>'); } return false; } else if ($row['union_date'] && (!$row['updated_at'] || $row['union_date'] > $row['updated_at'])){//si on a pas de updated_at dans la table d'agrégation, ou si la date de mise à jour des saisies est postérieure à updated_at ou if ($debug) { print_r('retourne faux : Les date de mise a jour de la table sont trop anciennes<br/>'); } return false; } else { if ($debug) { print_r('retourne vrai<br/>'); } return true;//on ne vérifie pas le nombre d'entrée car les dates ne sont pas précisée } }
/** * Get the associated Eleve object * * @param PropelPDO Optional Connection object. * @return Eleve The associated Eleve object. * @throws PropelException */ public function getEleve(PropelPDO $con = null) { if ($this->aEleve === null && (($this->e_login !== "" && $this->e_login !== null))) { $this->aEleve = EleveQuery::create() ->filterByJEleveCpe($this) // here ->findOne($con); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aEleve->addJEleveCpes($this); */ } return $this->aEleve; }
public function testEquals() { Propel::disableInstancePooling(); $eleve1 = EleveQuery::create()->findOneByLogin('Florence Michu'); usleep(1); $eleve1idem = EleveQuery::create()->findOneByLogin('Florence Michu'); $this->assertEquals($eleve1, $eleve1idem); Propel::enableInstancePooling(); }
if ((.5 == $tab_enseignement_final['heuredeb_dec'][$indiceSemaine]) && ($decalage == 0)) { // On est en première heure, il faut décaler le compteur $eleveCourant['sequence'][$cptSeq]['duree'] = 'Etude'; $cptSeq++; } $eleveCourant['sequence'][$cptSeq]['duree'] = $duree; $eleveCourant['sequence'][$cptSeq]['heureDebut'] = $tableCreneau[intval ($cptSeq / 2)]['heureDebut']; $eleveCourant['sequence'][$cptSeq]['heureFin'] = $tableCreneau[intval ($cptSeq / 2)]['heureFin']; $eleveCourant['sequence'][$cptSeq]['id_creneau'] = intval ($cptSeq / 2); $eleveCourant['sequence'][$cptSeq]['id_cours'] = $tab_enseignement_final['id_cours'][$indiceSemaine]; $eleveCourant['sequence'][$cptSeq]['id_groupe'] = $tab_enseignement_final['id_groupe'][$indiceSemaine]; // on vérifie si une absence n'est pas déjà saisie $eleveCourant['sequence'][$cptSeq]['style'] = ''; //on cherche l'élève $eleve = EleveQuery::create()->findPk($eleveCourant['id']); if ($eleve == null) { $message_enregistrement = "Probleme avec l'id élève : ".$eleveCourant['id']; die($message_enregistrement); } $edt_creneau = $col_creneaux[intval ($cptSeq / 2)]; $absences_du_creneau = $eleve->getAbsenceEleveSaisiesDuCreneau($edt_creneau, $dt_date_absence_eleve); if (!$absences_du_creneau->isEmpty()) { foreach ($absences_du_creneau as $abs_saisie) { if ($abs_saisie->getManquementObligationPresence()) { $eleveCourant['sequence'][$cptSeq]['style'] = 'fondRouge'; break; } }
/** * Removes this object from datastore and sets delete attribute. * * @param PropelPDO $con * @return void * @throws PropelException * @see BaseObject::setDeleted() * @see BaseObject::isDeleted() */ public function delete(PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(ElevePeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { $deleteQuery = EleveQuery::create() ->filterByPrimaryKey($this->getPrimaryKey()); $ret = $this->preDelete($con); if ($ret) { $deleteQuery->delete($con); $this->postDelete($con); $con->commit(); $this->setDeleted(true); } else { $con->commit(); } } catch (Exception $e) { $con->rollBack(); throw $e; } }
?> " /> <script type="text/javascript"> Calendar.setup({ inputField : "date_fin_toute_absence", // id of the input field ifFormat : "%d/%m/%Y", // format of the input field button : "date_fin_toute_absence", // trigger for the calendar (button ID) align : "Bl", // alignment (defaults to "Bl") singleClick : true }); </script> <button type="submit">Changer</button> </h2> </form> <?php $eleve_col = EleveQuery::create()->orderByNom()->filterByUtilisateurProfessionnel($utilisateur)->useAbsenceEleveSaisieQuery()->filterByPlageTemps($dt_debut_toutes, $dt_fin_toutes)->endUse()->distinct()->find(); foreach ($eleve_col as $eleve) { $eleve_a_afficher = is_responsable($eleve->getLogin(), $utilisateur->getLogin(), "", "yy"); if ($eleve_a_afficher) { ?> <br /> <table style="border: 1px solid black;" cellpadding="5" cellspacing="5" title="Toutes les absences de <?php echo $eleve->getNom() . ' ' . $eleve->getPrenom(); ?> "> <?php $creneau_col = EdtCreneauPeer::retrieveAllEdtCreneauxOrderByTime(); ?> <tr> <th style="border: 1px solid black; background-color: gray; min-width: 300px; max-width: 500px;"><?php
function releve_html($tab_rel, $i, $num_releve_specifie) { global $RneEtablissement, $gepiSchoolName, $gepiSchoolAdress1, $gepiSchoolAdress2, $gepiSchoolZipCode, $gepiSchoolCity, $gepiSchoolPays, $gepiSchoolTel, $gepiSchoolFax, $gepiSchoolMail, $gepiYear, $logo_etab, $choix_periode, $chaine_coef, $releve_body_marginleft, $releve_largeurtableau, $releve_col_matiere_largeur, $releve_col_moyenne_largeur, $releve_cellpadding, $releve_cellspacing, $releve_ecart_entete, $releve_class_bordure, $releve_categ_font_size, $releve_categ_bgcolor, $genre_periode, $releve_affich_nom_etab, $releve_affich_adr_etab, $releve_mention_nom_court, $releve_mention_doublant, $releve_affiche_eleve_une_ligne, $releve_affiche_numero, $releve_affiche_etab, $activer_photo_releve, $releve_affiche_tel, $releve_affiche_fax, $releve_affiche_mail, $releve_intitule_app, $releve_affiche_INE_eleve, $releve_affiche_formule, $releve_formule_bas, $fichier_bulletin, $min_max_moyclas, $releve_addressblock_padding_right, $releve_addressblock_padding_top, $releve_addressblock_padding_text, $releve_addressblock_length, $releve_addressblock_font_size, $releve_addressblock_logo_etab_prop, $releve_addressblock_autre_prop, $releve_addressblock_classe_annee2, $releve_ecart_bloc_nom, $releve_addressblock_debug, $un_seul_bull_par_famille, $nb_releves, $type_etablissement, $type_etablissement2, $active_module_trombinoscopes; global $tab_devoirs_affiches_en_sous_conteneur; // Pour être pris en compte dans les boites/conteneurs: global $retour_a_la_ligne; global $rn_couleurs_alternees; $debug_releve = "n"; $debug_ele_login = "******"; $debug_id_groupe = 237; // Récupérer avant le nombre de bulletins à imprimer // - que le premier resp // - tous les resp si adr différentes // et le passer via global //================================ // Pour retourner à la ligne entre les devoirs dans le cas où le nom ou l'appréciation du devoir est demandée: $retour_a_la_ligne = "y"; // Passer à "n" pour désactiver le retour à la ligne. if (isset($tab_rel['rn_retour_ligne']) && ($tab_rel['rn_retour_ligne'] == 'y' || $tab_rel['rn_retour_ligne'] == 'n')) { $retour_a_la_ligne = $tab_rel['rn_retour_ligne']; } $gepi_denom_boite = getSettingValue('gepi_denom_boite'); $gepi_denom_boite_genre = getSettingValue('gepi_denom_boite_genre'); //echo "\$releve_largeurtableau=$releve_largeurtableau<br />"; //if(!isset($releve_largeurtableau)) { // $releve_largeurtableau="100%"; //} /* $affiche_categories $avec_appreciation_devoir $avec_nom_devoir $avec_tous_coef_devoir $avec_coef_devoir $tab_releve[$id_classe]['rn_coefdev_si_diff'] $tab_ele['groupe'][$j]['differents_coef'] $affiche_coef $avec_date_devoir */ $id_classe = $tab_rel['id_classe']; // Pour n'imprimer qu'un relevé dans le cas où on n'imprime pas les adresses des responsables $nb_releves = 1; unset($tab_adr_ligne1); unset($tab_adr_ligne2); unset($tab_adr_ligne3); //if ($tab_rel['affiche_adresse'] == 'y') { // On fait le travail sur $tab_adr_ligne1 même si on ne souhaite pas afficher l'adresse des responsables parce que c'est aussi cette démarche qui permet de déterminer $nb_releves // Préparation des lignes adresse responsable if (!isset($tab_rel['eleve'][$i]['resp'][0])) { $tab_adr_ligne1[0] = "<font color='red'><b>ADRESSE MANQUANTE</b></font>"; $tab_adr_ligne2[0] = ""; $tab_adr_ligne3[0] = ""; } else { if (isset($tab_rel['eleve'][$i]['resp'][1])) { if (isset($tab_rel['eleve'][$i]['resp'][1]['adr1']) && isset($tab_rel['eleve'][$i]['resp'][1]['adr2']) && isset($tab_rel['eleve'][$i]['resp'][1]['adr3']) && isset($tab_rel['eleve'][$i]['resp'][1]['adr4']) && isset($tab_rel['eleve'][$i]['resp'][1]['cp']) && isset($tab_rel['eleve'][$i]['resp'][1]['commune'])) { // Le deuxième responsable existe et est renseigné if ($tab_rel['eleve'][$i]['resp'][0]['adr_id'] == $tab_rel['eleve'][$i]['resp'][1]['adr_id'] or my_strtolower($tab_rel['eleve'][$i]['resp'][0]['adr1']) == my_strtolower($tab_rel['eleve'][$i]['resp'][1]['adr1']) && my_strtolower($tab_rel['eleve'][$i]['resp'][0]['adr2']) == my_strtolower($tab_rel['eleve'][$i]['resp'][1]['adr2']) && my_strtolower($tab_rel['eleve'][$i]['resp'][0]['adr3']) == my_strtolower($tab_rel['eleve'][$i]['resp'][1]['adr3']) && my_strtolower($tab_rel['eleve'][$i]['resp'][0]['adr4']) == my_strtolower($tab_rel['eleve'][$i]['resp'][1]['adr4']) && $tab_rel['eleve'][$i]['resp'][0]['cp'] == $tab_rel['eleve'][$i]['resp'][1]['cp'] && my_strtolower($tab_rel['eleve'][$i]['resp'][0]['commune']) == my_strtolower($tab_rel['eleve'][$i]['resp'][1]['commune'])) { // Les adresses sont identiques $nb_releves = 1; if ($tab_rel['eleve'][$i]['resp'][0]['nom'] != $tab_rel['eleve'][$i]['resp'][1]['nom'] && $tab_rel['eleve'][$i]['resp'][1]['nom'] != "") { // Les noms des responsables sont différents $tab_adr_ligne1[0] = $tab_rel['eleve'][$i]['resp'][0]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom'] . " et " . $tab_rel['eleve'][$i]['resp'][1]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][1]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][1]['prenom']; } else { if ($tab_rel['eleve'][$i]['resp'][0]['civilite'] != "" && $tab_rel['eleve'][$i]['resp'][1]['civilite'] != "") { $tab_adr_ligne1[0] = $tab_rel['eleve'][$i]['resp'][0]['civilite'] . " et " . $tab_rel['eleve'][$i]['resp'][1]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom']; } else { $tab_adr_ligne1[0] = "M. et Mme " . $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom']; } } $tab_adr_ligne2[0] = $tab_rel['eleve'][$i]['resp'][0]['adr1']; if ($tab_rel['eleve'][$i]['resp'][0]['adr2'] != "") { $tab_adr_ligne2[0] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][0]['adr2']; } if ($tab_rel['eleve'][$i]['resp'][0]['adr3'] != "") { $tab_adr_ligne2[0] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][0]['adr3']; } if ($tab_rel['eleve'][$i]['resp'][0]['adr4'] != "") { $tab_adr_ligne2[0] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][0]['adr4']; } $tab_adr_ligne3[0] = $tab_rel['eleve'][$i]['resp'][0]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][0]['commune']; if ($tab_rel['eleve'][$i]['resp'][0]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][0]['pays']) != my_strtolower($gepiSchoolPays)) { if ($tab_adr_ligne3[0] != " ") { $tab_adr_ligne3[0] .= "<br />"; } $tab_adr_ligne3[0] .= $tab_rel['eleve'][$i]['resp'][0]['pays']; } } else { // Les adresses sont différentes //if ($un_seul_bull_par_famille!="oui") { // On teste en plus si la deuxième adresse est valide if ($un_seul_bull_par_famille != "oui" && $tab_rel['eleve'][$i]['resp'][1]['adr1'] != "" && $tab_rel['eleve'][$i]['resp'][1]['commune'] != "") { $nb_releves = 2; } else { $nb_releves = 1; } for ($cpt = 0; $cpt < $nb_releves; $cpt++) { if ($tab_rel['eleve'][$i]['resp'][$cpt]['civilite'] != "") { $tab_adr_ligne1[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['prenom']; } else { $tab_adr_ligne1[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['prenom']; } $tab_adr_ligne2[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['adr1']; if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr2'] != "") { $tab_adr_ligne2[$cpt] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$cpt]['adr2']; } if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr3'] != "") { $tab_adr_ligne2[$cpt] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$cpt]['adr3']; } if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr4'] != "") { $tab_adr_ligne2[$cpt] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$cpt]['adr4']; } $tab_adr_ligne3[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['commune']; if ($tab_rel['eleve'][$i]['resp'][$cpt]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][$cpt]['pays']) != my_strtolower($gepiSchoolPays)) { if ($tab_adr_ligne3[$cpt] != " ") { $tab_adr_ligne3[$cpt] .= "<br />"; } $tab_adr_ligne3[$cpt] .= $tab_rel['eleve'][$i]['resp'][$cpt]['pays']; } } } } else { // Il n'y a pas de deuxième adresse, mais il y aurait un deuxième responsable??? // CA NE DEVRAIT PAS ARRIVER ETANT DONNé LA REQUETE EFFECTUEE QUI JOINT resp_pers ET resp_adr... if ($un_seul_bull_par_famille != "oui") { $nb_releves = 2; } else { $nb_releves = 1; } for ($cpt = 0; $cpt < $nb_releves; $cpt++) { if ($tab_rel['eleve'][$i]['resp'][$cpt]['civilite'] != "") { $tab_adr_ligne1[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['prenom']; } else { $tab_adr_ligne1[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['prenom']; } $tab_adr_ligne2[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['adr1']; if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr2'] != "") { $tab_adr_ligne2[$cpt] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$cpt]['adr2']; } if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr3'] != "") { $tab_adr_ligne2[$cpt] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$cpt]['adr3']; } if ($tab_rel['eleve'][$i]['resp'][$cpt]['adr4'] != "") { $tab_adr_ligne2[$cpt] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$cpt]['adr4']; } $tab_adr_ligne3[$cpt] = $tab_rel['eleve'][$i]['resp'][$cpt]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][$cpt]['commune']; if ($tab_rel['eleve'][$i]['resp'][$cpt]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][$cpt]['pays']) != my_strtolower($gepiSchoolPays)) { if ($tab_adr_ligne3[$cpt] != " ") { $tab_adr_ligne3[$cpt] .= "<br />"; } $tab_adr_ligne3[$cpt] .= $tab_rel['eleve'][$i]['resp'][$cpt]['pays']; } } } } else { // Il n'y a pas de deuxième responsable $nb_releves = 1; if ($tab_rel['eleve'][$i]['resp'][0]['civilite'] != "") { $tab_adr_ligne1[0] = $tab_rel['eleve'][$i]['resp'][0]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom']; } else { $tab_adr_ligne1[0] = $tab_rel['eleve'][$i]['resp'][0]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][0]['prenom']; } $tab_adr_ligne2[0] = $tab_rel['eleve'][$i]['resp'][0]['adr1']; if ($tab_rel['eleve'][$i]['resp'][0]['adr2'] != "") { $tab_adr_ligne2[0] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][0]['adr2']; } if ($tab_rel['eleve'][$i]['resp'][0]['adr3'] != "") { $tab_adr_ligne2[0] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][0]['adr3']; } if ($tab_rel['eleve'][$i]['resp'][0]['adr4'] != "") { $tab_adr_ligne2[0] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][0]['adr4']; } $tab_adr_ligne3[0] = $tab_rel['eleve'][$i]['resp'][0]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][0]['commune']; if ($tab_rel['eleve'][$i]['resp'][0]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][0]['pays']) != my_strtolower($gepiSchoolPays)) { if ($tab_adr_ligne3[0] != " ") { $tab_adr_ligne3[0] .= "<br />"; } $tab_adr_ligne3[0] .= $tab_rel['eleve'][$i]['resp'][0]['pays']; } } } // Envoi du bulletin à des resp_legal=0 if (isset($tab_rel['eleve'][$i]['resp'][2])) { //$indice_tab_adr=count($tab_adr_ligne1); foreach ($tab_rel['eleve'][$i]['resp'] as $key => $value) { if ($key >= 2) { //echo "DEBUG: \$key=$key<br />"; if ($tab_rel['eleve'][$i]['resp'][$key]['civilite'] != "") { $tab_adr_ligne1[$nb_releves] = $tab_rel['eleve'][$i]['resp'][$key]['civilite'] . " " . $tab_rel['eleve'][$i]['resp'][$key]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$key]['prenom']; } else { $tab_adr_ligne1[$nb_releves] = $tab_rel['eleve'][$i]['resp'][$key]['nom'] . " " . $tab_rel['eleve'][$i]['resp'][$key]['prenom']; } $tab_adr_ligne2[$nb_releves] = $tab_rel['eleve'][$i]['resp'][$key]['adr1']; if ($tab_rel['eleve'][$i]['resp'][$key]['adr2'] != "") { $tab_adr_ligne2[$nb_releves] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$key]['adr2']; } if ($tab_rel['eleve'][$i]['resp'][$key]['adr3'] != "") { $tab_adr_ligne2[$nb_releves] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$key]['adr3']; } if ($tab_rel['eleve'][$i]['resp'][$key]['adr4'] != "") { $tab_adr_ligne2[$nb_releves] .= "<br />\n" . $tab_rel['eleve'][$i]['resp'][$key]['adr4']; } $tab_adr_ligne3[$nb_releves] = $tab_rel['eleve'][$i]['resp'][$key]['cp'] . " " . $tab_rel['eleve'][$i]['resp'][$key]['commune']; if ($tab_rel['eleve'][$i]['resp'][$key]['pays'] != "" && my_strtolower($tab_rel['eleve'][$i]['resp'][$key]['pays']) != my_strtolower($gepiSchoolPays)) { if ($tab_adr_ligne3[$nb_releves] != " ") { $tab_adr_ligne3[$nb_releves] .= "<br />"; } $tab_adr_ligne3[$nb_releves] .= $tab_rel['eleve'][$i]['resp'][$key]['pays']; } $nb_releves++; } } } //} // Fin de la préparation des lignes adresse responsable //echo "\$nb_releves=$nb_releves<br />"; //echo "\$num_releve_specifie=$num_releve_specifie<br />"; $num_premier_releve = 0; if ($num_releve_specifie != -1) { $num_premier_releve = $num_releve_specifie; $nb_releves = $num_releve_specifie + 1; } //echo "\$num_premier_releve=$num_premier_releve<br />"; //echo "\$nb_releves=$nb_releves<br />"; // Début des bulletins for ($num_releve = $num_premier_releve; $num_releve < $nb_releves; $num_releve++) { //echo "\$num_releve=$num_releve<br />"; //echo "\$i=$i<br />"; //echo "\$tab_rel['eleve'][$i]['nom']=".$tab_rel['eleve'][$i]['nom']."<br />"; // Page de garde //if ( $affiche_page_garde == 'yes' OR $tab_rel['affiche_adresse'] == 'y') { if ($tab_rel['affiche_adresse'] == 'y') { // Affectation des lignes adresse responsable avec les lignes correspondant au bulletin en cours $ligne1 = $tab_adr_ligne1[$num_releve]; $ligne2 = $tab_adr_ligne2[$num_releve]; $ligne3 = $tab_adr_ligne3[$num_releve]; // Info affichée en haut de la page de garde $info_eleve_page_garde = "Elève: " . $tab_rel['eleve'][$i]['nom'] . " " . $tab_rel['eleve'][$i]['prenom'] . ", " . $tab_rel['eleve'][$i]['classe']; //if ($affiche_page_garde == "yes") { // include "./page_garde.php"; // // Saut de page // echo "<p class='saut'> </p>\n"; //} } if ($tab_rel['affiche_adresse'] == 'y') { //------------------------------- // Maintenant, on affiche l'en-tête : Les données de l'élève, le bloc adresse responsable et l'adresse du lycée. //------------------------------- echo "\n<!-- Début du cadre entête -->\n"; echo "<div"; if ($releve_addressblock_debug == "y") { echo " style='border:1px solid red;'"; } echo ">\n"; // Pour éviter que le bloc-adresse ne remonte au-delà du saut de page: echo "<div style='clear: both; font-size: xx-small;'> </div>\n"; // Cadre adresse du responsable: echo "<div style='float:right;\nwidth:" . $releve_addressblock_length . "mm;\npadding-top:" . $releve_addressblock_padding_top . "mm;\npadding-bottom:" . $releve_addressblock_padding_text . "mm;\npadding-right:" . $releve_addressblock_padding_right . "mm;\n"; if ($releve_addressblock_debug == "y") { echo "border: 1px solid blue;\n"; } echo "font-size: " . $releve_addressblock_font_size . "pt;\n'>\n<div style='text-align:left;'>\n{$ligne1}<br />\n{$ligne2}<br />\n{$ligne3}\n</div>\n</div>\n"; // Cadre contenant le tableau Logo+Ad_etab et le nom, prénom,... de l'élève: echo "<div style='float:left;\nleft:0px;\ntop:0px;\nwidth:" . $releve_addressblock_logo_etab_prop . "%;\n"; if ($releve_addressblock_debug == "y") { echo "border: 1px solid green;\n"; } echo "'>\n"; echo "<table"; if ($releve_addressblock_debug == "y") { echo " border='1'"; } echo " summary='Tableau des informations établissement'"; echo ">\n"; echo "<tr>\n"; $nom_fic_logo = $logo_etab; $nom_fic_logo_c = "../images/" . $nom_fic_logo; if ($nom_fic_logo != '' and file_exists($nom_fic_logo_c)) { echo "<td style=\"text-align: left;\"><img src=\"" . $nom_fic_logo_c . "\" border=\"0\" alt=\"Logo\" /></td>\n"; } echo "<td style='text-align: center;'>"; echo "<p class='bulletin'>"; if ($releve_affich_nom_etab == "y") { echo "<span class=\"releve_grand\">" . $gepiSchoolName . "</span>"; } if ($releve_affich_adr_etab == "y") { echo "<br />\n" . $gepiSchoolAdress1 . "<br />\n" . $gepiSchoolAdress2 . "<br />\n" . $gepiSchoolZipCode . " " . $gepiSchoolCity; if ($releve_affiche_tel == "y") { echo "<br />\nTel: " . $gepiSchoolTel; } if ($releve_affiche_fax == "y") { echo "<br />\nFax: " . $gepiSchoolFax; } if ($releve_affiche_mail == "y") { echo "<br />\nEmail: " . $gepiSchoolMail; } } echo "</p>\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<br />"; // On rajoute des lignes vides $n = 0; while ($n < $releve_ecart_bloc_nom) { echo "<br />"; $n++; } if ($activer_photo_releve == 'y' and $active_module_trombinoscopes == 'y') { $photo = nom_photo($tab_rel['eleve'][$i]['elenoet']); if ($photo) { if (file_exists($photo)) { $dimphoto = redimensionne_image_releve($photo); echo '<img src="' . $photo . '" style="width: ' . $dimphoto[0] . 'px; height: ' . $dimphoto[1] . 'px; border: 0px; border-right: 3px solid #FFFFFF; float: left;" alt="" />' . "\n"; } } } //affichage des données sur une seule ligne ou plusieurs if ($releve_affiche_eleve_une_ligne == 'no') { // sur plusieurs lignes echo "<p class='bulletin'>\n"; echo "<b><span class=\"releve_grand\">" . $tab_rel['eleve'][$i]['nom'] . " " . $tab_rel['eleve'][$i]['prenom'] . "</span></b><br />"; echo "Né"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } echo " le " . $tab_rel['eleve'][$i]['naissance']; //Eric Ajout echo "<br />"; if ($tab_rel['eleve'][$i]['regime'] == "d/p") { echo "Demi-pensionnaire"; } if ($tab_rel['eleve'][$i]['regime'] == "ext.") { echo "Externe"; } if ($tab_rel['eleve'][$i]['regime'] == "int.") { echo "Interne"; } if ($tab_rel['eleve'][$i]['regime'] == "i-e") { echo "Interne externé"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } } //Eric Ajout if ($releve_mention_doublant == 'yes') { if ($tab_rel['eleve'][$i]['doublant'] == 'R') { echo "<br />"; echo "Redoublant"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } } } if ($releve_mention_nom_court == 'no') { //Eric Ajout et supp //echo "<BR />"; //echo ", $current_classe"; } else { echo "<br />"; echo $tab_rel['eleve'][$i]['classe']; } } else { //sur une ligne echo "<p class='bulletin'>\n"; echo "<b><span class=\"releve_grand\">" . $tab_rel['eleve'][$i]['nom'] . " " . $tab_rel['eleve'][$i]['prenom'] . "</span></b><br />"; echo "Né"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } echo " le " . $tab_rel['eleve'][$i]['naissance']; if ($tab_rel['eleve'][$i]['regime'] == "d/p") { echo ", Demi-pensionnaire"; } if ($tab_rel['eleve'][$i]['regime'] == "ext.") { echo ", Externe"; } if ($tab_rel['eleve'][$i]['regime'] == "int.") { echo ", Interne"; } if ($tab_rel['eleve'][$i]['regime'] == "i-e") { echo ", Interne externé"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } } if ($releve_mention_doublant == 'yes') { if ($tab_rel['eleve'][$i]['doublant'] == 'R') { echo ", Redoublant"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } } } if ($releve_mention_nom_court == 'yes') { echo ", " . $tab_rel['eleve'][$i]['classe']; } } if ($releve_affiche_INE_eleve == "y") { echo "<br />\n"; echo "Numéro INE: " . $tab_rel['eleve'][$i]['no_gep']; } if ($releve_affiche_etab == "y") { if (isset($tab_rel['eleve'][$i]['etab_nom']) && $tab_rel['eleve'][$i]['etab_nom'] != '') { echo "<br />\n"; if ($tab_rel['eleve'][$i]['etab_id'] != '990') { if ($RneEtablissement != $tab_rel['eleve'][$i]['etab_id']) { echo "Etablissement d'origine : "; echo $tab_rel['eleve'][$i]['etab_niveau_nom'] . " " . $tab_rel['eleve'][$i]['etab_type'] . " " . $tab_rel['eleve'][$i]['etab_nom'] . " (" . $tab_rel['eleve'][$i]['etab_cp'] . " " . $tab_rel['eleve'][$i]['etab_ville'] . ")\n"; } } else { echo "Etablissement d'origine : "; echo "hors de France\n"; } } } echo "</p>\n"; echo "</div>\n"; //echo "<spacer type='vertical' size='10'>"; // Tableau contenant le nom de la classe, l'année et la période. echo "<table width='" . $releve_addressblock_autre_prop . "%' "; if ($releve_addressblock_debug == "y") { echo "border='1' "; } echo "summary=\"Tableau de l'entête\" "; echo "cellspacing='" . $releve_cellspacing . "' cellpadding='" . $releve_cellpadding . "'>\n"; echo "<tr>\n"; echo "<td class='releve_empty'>\n"; echo " \n"; echo "</td>\n"; echo "<td style='width:" . $releve_addressblock_classe_annee2 . "%;'>\n"; echo "<p class='bulletin' align='center'><span class=\"releve_grand\">Classe de " . $tab_rel['eleve'][$i]['classe_nom_complet'] . "<br />Année scolaire " . $gepiYear . "</span><br />\n"; if ($choix_periode == 'intervalle') { echo "Relevé de notes du <b>" . $tab_rel['intervalle']['debut'] . "</b> au <b>" . $tab_rel['intervalle']['fin'] . "</b></span>"; } else { echo "<b>" . $tab_rel['nom_periode'] . "</b> : Relevé de notes"; } echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; // Pour que le tableau des appréciations ne vienne pas s'encastrer dans les DIV float: echo "<div style='clear: both; font-size: xx-small;'> </div>\n"; // Fin du cadre entête: echo "</div>\n"; echo "<!-- Fin du cadre entête -->\n\n"; } else { //------------------------------- // Maintenant, on affiche l'en-tête : Les données de l'élève, et l'adresse du lycée. // sans bloc adresse responsable //------------------------------- echo "<div class='center'>\n"; echo "<table width='{$releve_largeurtableau}' border='0' cellspacing='" . $releve_cellspacing . "' cellpadding='" . $releve_cellpadding . "'"; echo " summary=\"Tableau de l'entête\""; echo ">\n"; echo "<tr>\n"; echo "<td style=\"width: 30%;\">\n"; if ($activer_photo_releve == 'y' and $active_module_trombinoscopes == 'y') { $photo = nom_photo($tab_rel['eleve'][$i]['elenoet']); if ($photo) { if (file_exists($photo)) { $dimphoto = redimensionne_image_releve($photo); echo '<img src="' . $photo . '" style="width: ' . $dimphoto[0] . 'px; height: ' . $dimphoto[1] . 'px; border: 0px; border-right: 3px solid #FFFFFF; float: left;" alt="" />' . "\n"; } } } //affichage des données sur une seule ligne ou plusieurs if ($releve_affiche_eleve_une_ligne == 'no') { // sur plusieurs lignes echo "<p class='bulletin'>\n"; echo "<b><span class=\"releve_grand\">" . $tab_rel['eleve'][$i]['nom'] . " " . $tab_rel['eleve'][$i]['prenom'] . "</span></b><br />"; echo "Né"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } echo " le " . $tab_rel['eleve'][$i]['naissance']; //Eric Ajout echo "<br />"; if ($tab_rel['eleve'][$i]['regime'] == "d/p") { echo "Demi-pensionnaire"; } if ($tab_rel['eleve'][$i]['regime'] == "ext.") { echo "Externe"; } if ($tab_rel['eleve'][$i]['regime'] == "int.") { echo "Interne"; } if ($tab_rel['eleve'][$i]['regime'] == "i-e") { echo "Interne externé"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } } //Eric Ajout if ($releve_mention_doublant == 'yes') { if ($tab_rel['eleve'][$i]['doublant'] == 'R') { echo "<br />"; echo "Redoublant"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } } } if ($releve_mention_nom_court == 'no') { //Eric Ajout et supp //echo "<BR />"; //echo ", $current_classe"; } else { echo "<br />"; echo $tab_rel['eleve'][$i]['classe']; } } else { //sur une ligne echo "<p class='bulletin'>\n"; echo "<b><span class=\"releve_grand\">" . $tab_rel['eleve'][$i]['nom'] . " " . $tab_rel['eleve'][$i]['prenom'] . "</span></b><br />"; echo "Né"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } echo " le " . $tab_rel['eleve'][$i]['naissance']; if ($tab_rel['eleve'][$i]['regime'] == "d/p") { echo ", Demi-pensionnaire"; } if ($tab_rel['eleve'][$i]['regime'] == "ext.") { echo ", Externe"; } if ($tab_rel['eleve'][$i]['regime'] == "int.") { echo ", Interne"; } if ($tab_rel['eleve'][$i]['regime'] == "i-e") { echo ", Interne externé"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } } //Eric Ajout if ($releve_mention_doublant == 'yes') { if ($tab_rel['eleve'][$i]['doublant'] == 'R') { echo ", Redoublant"; if (mb_strtoupper($tab_rel['eleve'][$i]['sexe']) == "F") { echo "e"; } } } if ($releve_mention_nom_court == 'yes') { echo ", " . $tab_rel['eleve'][$i]['classe']; } } if ($releve_affiche_INE_eleve == "y") { echo "<br />\n"; echo "Numéro INE: " . $tab_rel['eleve'][$i]['no_gep']; } if ($releve_affiche_etab == "y") { if (isset($tab_rel['eleve'][$i]['etab_nom']) && $tab_rel['eleve'][$i]['etab_nom'] != '') { echo "<br />\n"; if ($tab_rel['eleve'][$i]['etab_id'] != '990') { if ($RneEtablissement != $tab_rel['eleve'][$i]['etab_id']) { echo "Etablissement d'origine : "; echo $tab_rel['eleve'][$i]['etab_niveau_nom'] . " " . $tab_rel['eleve'][$i]['etab_type'] . " " . $tab_rel['eleve'][$i]['etab_nom'] . " (" . $tab_rel['eleve'][$i]['etab_cp'] . " " . $tab_rel['eleve'][$i]['etab_ville'] . ")\n"; } } else { echo "Etablissement d'origine : "; echo "hors de France\n"; } } } echo "</p></td>\n<td style=\"width: 40%;text-align: center;\">\n"; if ($tab_rel['affiche_adresse'] != "y") { echo "<p class='bulletin'><span class=\"releve_grand\">Classe de " . $tab_rel['eleve'][$i]['classe_nom_complet'] . "<br />Année scolaire " . $gepiYear . "</span><br />\n"; if ($choix_periode == 'intervalle') { echo "Relevé de notes du <b>" . $tab_rel['intervalle']['debut'] . "</b> au <b>" . $tab_rel['intervalle']['fin'] . "</b>"; } else { echo "<b>" . $tab_rel['nom_periode'] . "</b> : Relevé de notes"; } echo "</p>\n"; } else { echo " "; } $nom_fic_logo = $logo_etab; $nom_fic_logo_c = "../images/" . $nom_fic_logo; if ($nom_fic_logo != '' and file_exists($nom_fic_logo_c)) { echo "</td>\n<td style=\"text-align: right;\"><img src=\"" . $nom_fic_logo_c . "\" border=\"0\" alt=\"Logo\" />"; } else { echo "</td>\n<td> "; } echo "</td>\n"; echo "<td style=\"width: 20%;text-align: center;\">"; echo "<p class='bulletin'>"; if ($releve_affich_nom_etab == "y") { echo "<span class=\"releve_grand\">" . $gepiSchoolName . "</span>"; } if ($releve_affich_adr_etab == "y") { //echo "<span class=\"releve_grand\">".$gepiSchoolName."</span>"; if ($releve_affich_nom_etab == "y") { echo "<br />\n"; } echo $gepiSchoolAdress1 . "<br />\n"; echo $gepiSchoolAdress2 . "<br />\n"; echo $gepiSchoolZipCode . " " . $gepiSchoolCity; if ($releve_affiche_tel == "y") { echo "<br />\nTel: " . $gepiSchoolTel; } if ($releve_affiche_fax == "y") { echo "<br />\nFax: " . $gepiSchoolFax; } if ($releve_affiche_mail == "y") { echo "<br />\nEmail: " . $gepiSchoolMail; } } echo "</p>\n"; echo "</td>\n</tr>\n</table>\n"; echo "</div>\n"; //------------------------------- // Fin de l'en-tête } // On rajoute des lignes vides $n = 0; while ($n < $releve_ecart_entete) { echo "<br />"; $n++; } //============================================= // Tableau des matieres/devoirs/notes/appréciations //include ($fichier_bulletin); if (!isset($tab_rel['eleve'][$i]['groupe']) || count($tab_rel['eleve'][$i]['groupe']) == 0) { echo "<div class='noprint' style='background-color: white; color: red; border: 1px solid black;padding: 1em;'>Aucun enseignement n'est associé à l'élève"; if ($choix_periode == 'intervalle') { echo ",<br />ou l'élève n'a aucune note sur l'intervalle de dates choisi (<i>en demandant l'affichage des relevés pour la période entière, les matières sont affichées, même si aucune note n'a été saisie</i>).</p>"; } echo ".<br />\n"; if ($tab_rel['affiche_categories']) { echo "<br />Si vous pensez que c'est anormal, c'est peut-être dû à un mauvais paramétrage des catégories de matières.<br />"; //echo "Il est possible de contrôler les catégories de matières en administrateur dans Gestion générale/Nettoyage des tables pour corriger ce problème.\n"; echo "Il est possible de corriger le problème en administrateur en refaisant le paramétrage des catégories de matières dans 'Gestion des bases/Gestion des classes/<Une_classe> Paramètres' ou dans 'Gestion des bases/Gestion des classes/Paramétrage par lots'.\n"; } echo "</div>\n"; } // On initialise le tableau : $larg_tab = $releve_largeurtableau; $larg_col1 = $releve_col_matiere_largeur; if ($tab_rel['rn_col_moy'] != "y") { $larg_col2 = $larg_tab - $larg_col1; } else { $larg_col1b = $releve_col_moyenne_largeur; $larg_col2 = $larg_tab - $larg_col1b - $larg_col1; } //echo "<table width=\"$larg_tab\" class='boireaus' border=1 cellspacing=3 cellpadding=3>\n"; echo "<div class='center'>\n"; echo "<table width=\"{$larg_tab}\"{$releve_class_bordure} border='1' cellspacing='3' cellpadding='3' "; echo "summary=\"Tableau des notes\""; if (isset($rn_couleurs_alternees) && $rn_couleurs_alternees == "y") { echo " style='background-color:white;'"; } echo ">\n"; echo "<tr>\n"; echo "<th style=\"width: " . $larg_col1 . "px\" class='releve'><b>Matière</b><br /><i>Professeur</i></th>\n"; if ($tab_rel['rn_col_moy'] == "y") { echo "<th style=\"width: " . $larg_col1b . "px\" class='releve'>Moy.</th>\n"; } echo "<th style=\"width: " . $larg_col2 . "px\" class='releve'>Notes sur 20</th>\n"; echo "</tr>\n"; // Boucle groupes $j = 0; $prev_cat_id = null; $alt = 1; if (isset($tab_rel['eleve'][$i]['groupe']) && count($tab_rel['eleve'][$i]['groupe']) > 0) { while ($j < count($tab_rel['eleve'][$i]['groupe'])) { if ($choix_periode != 'intervalle' || $choix_periode == 'intervalle' && isset($tab_rel['eleve'][$i]['groupe'][$j]['devoir'])) { //count($tab_rel['eleve'][$i]['groupe'][$j]['devoir']>0)))) { if ($tab_rel['affiche_categories']) { // On regarde si on change de catégorie de matière if ($tab_rel['eleve'][$i]['groupe'][$j]['id_cat'] != $prev_cat_id) { $prev_cat_id = $tab_rel['eleve'][$i]['groupe'][$j]['id_cat']; echo "<tr>\n"; if ($tab_rel['rn_col_moy'] == "y") { $colspan = 3; } else { $colspan = 2; } echo "<td colspan='{$colspan}'>\n\n"; //echo "<p style='padding: 0; margin:0; font-size: 10px;'>".$tab_rel['categorie'][$prev_cat_id]."</p>\n"; echo "<p style='padding: 0; margin:0; font-size: " . $releve_categ_font_size . "px;"; if ($releve_categ_bgcolor != "") { echo "background-color:{$releve_categ_bgcolor};"; } echo "'>" . $tab_rel['categorie'][$prev_cat_id] . "</p>\n"; echo "</td>\n"; echo "</tr>\n"; } } $alt = $alt * -1; if (isset($rn_couleurs_alternees) && $rn_couleurs_alternees == "y") { echo "<tr class='lig{$alt}'>\n"; } else { echo "<tr>\n"; } echo "<td class='releve'>\n"; echo "<b>" . $tab_rel['eleve'][$i]['groupe'][$j]['matiere_nom_complet'] . "</b>"; //echo $tab_rel['eleve'][$i]['groupe'][$j]['id_groupe']; $k = 0; // Il peut y avoir une matière sans prof, avec une note saisie en compte secours if (isset($tab_rel['eleve'][$i]['groupe'][$j]['prof_login'])) { while ($k < count($tab_rel['eleve'][$i]['groupe'][$j]['prof_login'])) { echo "<br /><i>" . affiche_utilisateur(htmlspecialchars($tab_rel['eleve'][$i]['groupe'][$j]['prof_login'][$k]), $id_classe) . "</i>"; $k++; } } //echo "<br />\$tab_rel['rn_col_moy']=".$tab_rel['rn_col_moy']; echo "</td>\n"; if ($tab_rel['rn_col_moy'] == "y") { echo "<td class='releve'>\n"; if (!isset($tab_rel['eleve'][$i]['groupe'][$j]['moyenne'][$tab_rel['num_periode']])) { echo " "; } else { if ($tab_rel['verouiller'] == 'N') { echo "<span title=\"ATTENTION : La période n'est pas close.\n La moyenne affichée est susceptible de\n changer d'ici à la fin de la période.\n Des notes peuvent encore être ajoutées,\n des coefficients de devoirs peuvent être\n modifiés,...\">"; echo $tab_rel['eleve'][$i]['groupe'][$j]['moyenne'][$tab_rel['num_periode']]; echo "</span>"; } else { echo $tab_rel['eleve'][$i]['groupe'][$j]['moyenne'][$tab_rel['num_periode']]; } } echo "</td>\n"; } echo "<td class='releve'>\n"; // Boucle sur la liste des devoirs if (!isset($tab_rel['eleve'][$i]['groupe'][$j]['devoir'])) { echo " "; //echo "\$tab_rel['eleve'][$i]['groupe'][$j]['devoir'] n'est pas affecté.<br />"; } else { if ($debug_releve == "y" && $tab_rel['eleve'][$i]['login'] == $debug_ele_login && $tab_rel['eleve'][$i]['groupe'][$j]['id_groupe'] == $debug_id_groupe) { if (isset($tab_rel['eleve'][$i]['groupe'][$j]['existence_sous_conteneurs'])) { echo "<span style='color:red'>\$tab_rel['eleve'][{$i}]['groupe'][{$j}]['existence_sous_conteneurs']=" . $tab_rel['eleve'][$i]['groupe'][$j]['existence_sous_conteneurs'] . "</span><br />"; } else { echo "<span style='color:red'>Pas de sous-conteneur</span><br />"; } } $tab_devoirs_affiches_en_sous_conteneur = array(); //if((isset($tab_rel['eleve'][$i]['groupe'][$j]['affiche_boites']))&&($tab_rel['eleve'][$i]['groupe'][$j]['affiche_boites']=='y')) { //if((isset($tab_rel['eleve'][$i]['groupe'][$j]['id_cn']['existence_sous_conteneurs']))&&($tab_rel['eleve'][$i]['groupe'][$j]['id_cn']['existence_sous_conteneurs']=='y')) { if (isset($tab_rel['eleve'][$i]['groupe'][$j]['existence_sous_conteneurs']) && $tab_rel['eleve'][$i]['groupe'][$j]['existence_sous_conteneurs'] == 'y') { //echo "Il y a des sous-conteneurs<br />"; $premier_cn = "y"; $temoin_affichage_de_conteneur = "n"; $temoin_conteneur = 0; // Parcours des carnets de notes (un seule si une période est choisie, mais peut-être plusieurs si on a un intervalle de dates) foreach ($tab_rel['eleve'][$i]['groupe'][$j]['id_cn'] as $tmp_id_cn => $tab_id_cn) { // On ne récupère que les conteneurs de niveau 1, pas la racine... et si on a plusieurs périodes, on peut récupérer les boites d'une autre période... d'où des tests par la suite sur ce qu'il convient d'afficher. unset($tmp_tab); $tmp_tab[] = $tmp_id_cn; //if($temoin_conteneur>0) {echo "<br />\n";} if ($premier_cn != "y") { echo "<br />\n"; } $premier_cn = "n"; if ($debug_releve == "y" && $tab_rel['eleve'][$i]['login'] == $debug_ele_login && $tab_rel['eleve'][$i]['groupe'][$j]['id_groupe'] == $debug_id_groupe) { echo "<b style='color:red'>cn {$tmp_id_cn}</b> "; } //echo "<br /><u><b>Racine ($tmp_id_cn) :</b></u> \n"; $retour_liste_notes_html = liste_notes_html($tab_rel, $i, $j, $tmp_tab); if ($retour_liste_notes_html != '') { //echo "|A1:$tmp_id_cn|"; //echo "<u><b>Racine ($tmp_id_cn) :</b></u> \n"; echo $retour_liste_notes_html; //echo "|A2:$tmp_id_cn|"; $temoin_affichage_de_conteneur = "y"; $temoin_conteneur++; } else { $temoin_conteneur = 0; } // Faire la boucle while($m<count($tab_rel['eleve'][$i]['groupe'][$j]['devoir'])) {} // avec un test sur $tab_ele['groupe'][$j]['devoir'][$m]['id_conteneur']==$tmp_id_cn (soit la racine du cn à ce niveau) for ($k = 0; $k < count($tab_id_cn['conteneurs']); $k++) { unset($tmp_tab); //if(isset($tab_id_cn['conteneurs'][$k]['id_racine'])) { //echo "\$tab_id_cn['conteneurs'][$k]['id_racine']=".$tab_id_cn['conteneurs'][$k]['id_racine']."<br />"; $tmp_tab[] = $tab_id_cn['conteneurs'][$k]['id_racine']; if (isset($tab_id_cn['conteneurs'][$k]['conteneurs_enfants'])) { for ($kk = 0; $kk < count($tab_id_cn['conteneurs'][$k]['conteneurs_enfants']); $kk++) { $tmp_tab[] = $tab_id_cn['conteneurs'][$k]['conteneurs_enfants'][$kk]; //echo "\$tab_id_cn['conteneurs'][$k]['conteneurs_enfants'][$kk]=".$tab_id_cn['conteneurs'][$k]['conteneurs_enfants'][$kk]."<br />"; } } //echo "<br />\n"; //echo "<u><b>".$tab_id_cn['conteneurs'][$k]['nom_complet']." :</b></u> \n"; $retour_liste_notes_html = liste_notes_html($tab_rel, $i, $j, $tmp_tab); if ($retour_liste_notes_html != '') { // On n'affiche le conteneur que s'il y a des notes //echo "<br />\n"; //echo "<u><b>".$tab_id_cn['conteneurs'][$k]['nom_complet']." :</b></u> \n"; if ($temoin_conteneur > 0) { echo "<br />\n"; } echo "<u><b>" . casse_mot($tab_id_cn['conteneurs'][$k]['nom_complet'], 'maj'); if ($tab_rel['rn_toutcoefdev'] == "y" || $tab_id_cn['temoin_coef_differents_conteneurs'] == "y") { echo " <span style='font-weight:normal' title=\"Coefficient " . ($gepi_denom_boite_genre == "f" ? "de la" : "du") . " {$gepi_denom_boite}\">(coef.:" . $tab_id_cn['conteneurs'][$k]['coef'] . ")</span>"; } if ($tab_id_cn['conteneurs'][$k]['display_parents'] == '1') { echo " (<em title=\"Moyenne sur " . ($gepi_denom_boite_genre == "f" ? "cette" : "ce") . " {$gepi_denom_boite}\">" . $tab_id_cn['conteneurs'][$k]['moy'] . "</em>)"; } echo " :</b></u> \n"; echo $retour_liste_notes_html; $temoin_affichage_de_conteneur = "y"; $temoin_conteneur++; } else { $temoin_conteneur = 0; } // Faire la boucle while($m<count($tab_rel['eleve'][$i]['groupe'][$j]['devoir'])) {} // avec un test sur $tab_ele['groupe'][$j]['devoir'][$m]['id_conteneur'] égal à $tab_id_cn['conteneurs'][$k]['id_racine'] ou dans $tab_id_cn['conteneurs'][$k]['conteneurs_enfants'][] //} } } if ($debug_releve == "y" && $tab_rel['eleve'][$i]['login'] == $debug_ele_login && $tab_rel['eleve'][$i]['groupe'][$j]['id_groupe'] == $debug_id_groupe) { foreach ($tab_devoirs_affiches_en_sous_conteneur as $key => $value) { echo "<span style='color:lime'>\$tab_devoirs_affiches_en_sous_conteneur[{$key}]={$value}</span><br />"; } } //DEBUG //echo "<br />\$temoin_affichage_de_conteneur=$temoin_affichage_de_conteneur<br />"; //if($temoin_affichage_de_conteneur!='y') { //echo "|B:$tmp_id_cn|"; // On va tester s'il y a des devoirs hors des boites (qui se sont révélées vides?) $m = 0; $tiret = "no"; while ($m < count($tab_rel['eleve'][$i]['groupe'][$j]['devoir'])) { if (!in_array($tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['id_devoir'], $tab_devoirs_affiches_en_sous_conteneur)) { /* $temoin_devoir_a_la_racine="y"; for($k=0;$k<count($tab_id_cn['conteneurs']);$k++) { if($tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['id_conteneur']==$tab_id_cn['conteneurs'][$k]['id_racine']) { $temoin_devoir_a_la_racine="n"; break; } //$k++; } if($temoin_devoir_a_la_racine=="y") { */ if ($debug_releve == "y" && $tab_rel['eleve'][$i]['login'] == $debug_ele_login && $tab_rel['eleve'][$i]['groupe'][$j]['id_groupe'] == $debug_id_groupe) { echo "<span style='color:green'>" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['id_devoir'] . " </span><br />"; echo "<span style='color:plum'>id_cahier_notes=" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['id_cahier_notes'] . " </span> <span style='color:plum'>id_conteneur=" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['id_conteneur'] . " </span> "; } if ($tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['id_cahier_notes'] == $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['id_conteneur']) { //if(($m==0)&&($temoin_conteneur>0)) { //if($m==0) { if ($m == 0 && $temoin_affichage_de_conteneur == "y") { echo "<br />\n"; } // Note de l'élève sur le devoir: $eleve_note = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['note']; // Statut de l'élève sur le devoir: $eleve_statut = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['statut']; // Appréciation de l'élève sur le devoir: $eleve_app = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['app']; // Le professeur a-t-il autorisé l'accès à l'appréciation lors de la saisie du devoir $eleve_display_app = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['display_app']; // Nom court du devoir: $eleve_nom_court = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['nom_court']; // Date du devoir: $eleve_date = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['date']; // Coef du devoir: $eleve_coef = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['coef']; //========================================== // On teste s'il y aura une "Note" à afficher if ($eleve_statut != '' and $eleve_statut != 'v') { $affiche_note = $eleve_statut; } elseif ($eleve_statut == 'v') { $affiche_note = ""; } elseif ($eleve_note != '') { $affiche_note = $eleve_note; } else { $affiche_note = ""; } //========================================== // Nom du devoir ou pas if ($tab_rel['rn_app'] == "y" and $eleve_display_app == "1") { if ($affiche_note == "") { if ($tab_rel['rn_nomdev'] != "y") { $affiche_note = $eleve_nom_court; } else { $affiche_note = " "; } } } // Si une "Note" doit être affichée if ($affiche_note != '') { if ($tiret == "yes") { if (($tab_rel['rn_app'] == "y" or $tab_rel['rn_nomdev'] == "y") && $retour_a_la_ligne == 'y') { echo "<br />"; } else { echo " - "; } } if ($tab_rel['rn_nomdev'] == "y") { echo "{$eleve_nom_court}: <b>" . $affiche_note . "</b>"; } else { echo "<b>" . $affiche_note . "</b>"; } // Coefficient (si on affiche tous les coef... // ou si on ne les affiche que s'il y a plusieurs coef différents) if ($tab_rel['rn_toutcoefdev'] == "y" || $tab_rel['rn_coefdev_si_diff'] == "y" && $tab_rel['eleve'][$i]['groupe'][$j]['differents_coef'] == "y") { echo " (<i><small>" . $chaine_coef . $eleve_coef . "</small></i>)"; } // Si on a demandé à afficher les appréciations // et si le prof a coché l'autorisation d'accès à l'appréciations if ($tab_rel['rn_app'] == "y" and $eleve_display_app == "1") { echo " - Appréciation : "; if ($eleve_app != "") { echo $eleve_app; } else { echo "-"; } } if ($tab_rel['rn_datedev'] == "y") { // Format: 2006-09-28 00:00:00 $tmpdate = explode(" ", $eleve_date); $tmpdate = explode("-", $tmpdate[0]); echo " (<i><small>{$tmpdate['2']}/{$tmpdate['1']}/{$tmpdate['0']}</small></i>)"; } // 20100626 if ($tab_rel['rn_moy_min_max_classe'] == 'y') { echo " (<em title=\"" . $eleve_nom_court . " (" . formate_date($eleve_date) . ")\nNote minimale : " . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min'] . "\nMoyenne classe : " . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'] . "\nNote maximale : " . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'] . "\"><small>"; //echo $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max']; echo "<span class='cn_moymin'>" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min'] . "</span>|<span class='cn_moyclasse'>" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'] . "</span>|<span class='cn_moymax'>" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'] . "</span>"; echo "</small></em>)"; } elseif ($tab_rel['rn_moy_classe'] == 'y') { echo " (<em class='cn_moyclasse'>classe:" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'] . "</em>)"; } //==================================================================== // Après un tour avec affichage dans la boucle: $tiret = "yes"; } } } $m++; } //} } else { $m = 0; $tiret = "no"; while ($m < count($tab_rel['eleve'][$i]['groupe'][$j]['devoir'])) { // Note de l'élève sur le devoir: $eleve_note = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['note']; // Statut de l'élève sur le devoir: $eleve_statut = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['statut']; // Appréciation de l'élève sur le devoir: $eleve_app = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['app']; // Le professeur a-t-il autorisé l'accès à l'appréciation lors de la saisie du devoir $eleve_display_app = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['display_app']; // Nom court du devoir: $eleve_nom_court = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['nom_court']; // Date du devoir: $eleve_date = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['date']; // Coef du devoir: $eleve_coef = $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['coef']; //========================================== // On teste s'il y aura une "Note" à afficher if ($eleve_statut != '' and $eleve_statut != 'v') { $affiche_note = $eleve_statut; } elseif ($eleve_statut == 'v') { $affiche_note = ""; } elseif ($eleve_note != '') { $affiche_note = $eleve_note; } else { $affiche_note = ""; } //========================================== // Nom du devoir ou pas if ($tab_rel['rn_app'] == "y" and $eleve_display_app == "1") { if ($affiche_note == "") { if ($tab_rel['rn_nomdev'] != "y") { $affiche_note = $eleve_nom_court; } else { $affiche_note = " "; } } } // Si une "Note" doit être affichée if ($affiche_note != '') { if ($tiret == "yes") { if (($tab_rel['rn_app'] == "y" or $tab_rel['rn_nomdev'] == "y") && $retour_a_la_ligne == 'y') { echo "<br />"; } else { echo " - "; } } if ($tab_rel['rn_nomdev'] == "y") { echo "{$eleve_nom_court}: <b>" . $affiche_note . "</b>"; } else { echo "<b>" . $affiche_note . "</b>"; } // Coefficient (si on affiche tous les coef... // ou si on ne les affiche que s'il y a plusieurs coef différents) if ($tab_rel['rn_toutcoefdev'] == "y" || $tab_rel['rn_coefdev_si_diff'] == "y" && $tab_rel['eleve'][$i]['groupe'][$j]['differents_coef'] == "y") { echo " (<i><small>" . $chaine_coef . $eleve_coef . "</small></i>)"; } // Si on a demandé à afficher les appréciations // et si le prof a coché l'autorisation d'accès à l'appréciations if ($tab_rel['rn_app'] == "y" and $eleve_display_app == "1") { echo " - Appréciation : "; if ($eleve_app != "") { echo $eleve_app; } else { echo "-"; } } if ($tab_rel['rn_datedev'] == "y") { // Format: 2006-09-28 00:00:00 $tmpdate = explode(" ", $eleve_date); $tmpdate = explode("-", $tmpdate[0]); echo " (<i><small>{$tmpdate['2']}/{$tmpdate['1']}/{$tmpdate['0']}</small></i>)"; } // 20100626 if ($tab_rel['rn_moy_min_max_classe'] == 'y') { echo " (<em title=\"" . $eleve_nom_court . " (" . formate_date($eleve_date) . ")\nNote minimale : " . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min'] . "\nMoyenne classe : " . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'] . "\nNote maximale : " . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'] . "\"><small>"; //echo $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max']; echo "<span class='cn_moymin'>" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min'] . "</span>|<span class='cn_moyclasse'>" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'] . "</span>|<span class='cn_moymax'>" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'] . "</span>"; echo "</small></em>)"; //echo " (<i><small>".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max']."</small></i>)"; } elseif ($tab_rel['rn_moy_classe'] == 'y') { echo " (<em>classe:" . $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'] . "</em>)"; } //==================================================================== // Après un tour avec affichage dans la boucle: $tiret = "yes"; } $m++; } } } echo "</td>\n"; echo "</tr>\n"; } $j++; } } echo "</table>\n"; //============================================= /* // Avis du conseil de classe à ramener par là if (($releve_affiche_avis == 'y')||($releve_affiche_signature == 'y')) { // Tableau de l'avis des conseil de classe echo "<table $class_bordure width='$largeurtableau' border='1' cellspacing='".$releve_cellspacing."' cellpadding='".$releve_cellpadding."'>\n"; echo "<tr>\n"; } if ($releve_affiche_avis == 'y') { // // Case de gauche : avis des conseils de classe // echo "<td style='vertical-align: top; text-align: left;'>\n"; // 1) l'avis echo "<span class='bulletin'><i>Avis du conseil de classe:</i></span><br />\n"; if($tab_rel['avis'][$i]!="") { echo "<span class='avis_bulletin'>"; echo texte_html_ou_pas($tab_rel['avis'][$i]); echo "</span>"; if($releve_affiche_signature == 'y'){ echo "<br />\n"; } } else { echo " "; // Si il n'y a pas d'avis, on rajoute des lignes vides selon les paramètres d'impression $n = 0; if ($releve_espace_avis >0){ while ($n < $releve_espace_avis) { echo "<br />\n"; $n++; } } } } elseif ($releve_affiche_signature == 'y') { echo "<td style=\"vertical-align: top;\">"; } if ($releve_affiche_signature == 'y') { // 2) Le nom du professeur principal if(isset($tab_rel['eleve'][$i]['pp']['login'])) { echo "<b>".ucfirst($gepi_prof_suivi)."</b> "; echo "<i>".affiche_utilisateur($tab_rel['eleve'][$i]['pp']['login'],$tab_rel['eleve'][$i]['id_classe'])."</i>"; } echo "</td>\n"; // // Case de droite : paraphe du proviseur // echo "<td style='vertical-align: top; text-align: left;' width='30%'>\n"; echo "<span class='bulletin'><b>".$tab_rel['formule']."</b>:</span><br />"; echo "<span class='bulletin'><i>".$tab_rel['suivi_par']."</i></span>"; } // Si une des deux variables 'releve_affiche_avis' ou 'releve_affiche_signature' est à 'y', il faut fermer le tableau if (($releve_affiche_avis == 'y')||($releve_affiche_signature == 'y')) { echo "</td>\n"; // Fin du tableau echo "</tr>\n"; echo "</table>\n"; } */ //================================ //============================================= // BLOC Absence // TODO : ajouter un test sur le choix if ($tab_rel['rn_abs_2'] == 'y') { $eleve_query = EleveQuery::create()->orderByNom()->orderByPrenom()->distinct(); $eleve_query->filterByLogin($tab_rel['eleve'][$i]['login']); $eleve = $eleve_query->findOne(); $nbAbsencesRetard = decompteAbsences($tab_rel['eleve'][$i]['login'], $choix_periode, $tab_rel); ?> <div style="width: <?php echo $releve_largeurtableau - 20; ?> px; margin: .5em 0; padding: .2em .5em; border: 5px double black; "> <?php echo $nbAbsencesRetard['nbAbsences']; ?> absence(s) dont <?php echo $nbAbsencesRetard['nbAbsencesNonJustifiees']; ?> non justifiée(s) <?php echo $nbAbsencesRetard['nbRetards']; ?> retard(s) </div> <?php } //================================ //================================ if ($tab_rel['rn_sign_chefetab'] == 'y' || $tab_rel['rn_sign_pp'] == 'y' || $tab_rel['rn_sign_resp'] == 'y') { $nb_cases = 0; if ($tab_rel['rn_sign_chefetab'] == 'y') { $nb_cases++; } if ($tab_rel['rn_sign_pp'] == 'y') { $nb_cases++; } if ($tab_rel['rn_sign_resp'] == 'y') { $nb_cases++; } $largeur_case = round($releve_largeurtableau / $nb_cases); echo "<table{$releve_class_bordure} border='1' width='{$releve_largeurtableau}'"; echo " summary=\"Tableau des signatures\""; if (isset($rn_couleurs_alternees) && $rn_couleurs_alternees == "y") { echo " style='background-color:white;'"; } echo ">\n"; echo "<tr>\n"; if ($tab_rel['rn_sign_chefetab'] == 'y') { echo "<td style='width: {$largeur_case}'>\n"; echo "<b>Signature du chef d'établissement:</b>"; for ($m = 0; $m < $tab_rel['rn_sign_nblig']; $m++) { echo "<br />\n"; } echo "</td>\n"; } if ($tab_rel['rn_sign_pp'] == 'y') { echo "<td style='width: {$largeur_case}'>\n"; echo "<b>Signature du " . $tab_rel['gepi_prof_suivi'] . ":</b>"; for ($m = 0; $m < $tab_rel['rn_sign_nblig']; $m++) { echo "<br />\n"; } echo "</td>\n"; } if ($tab_rel['rn_sign_resp'] == 'y') { echo "<td style='width: {$largeur_case}'>\n"; echo "<b>Signature des responsables:</b>"; for ($m = 0; $m < $tab_rel['rn_sign_nblig']; $m++) { echo "<br />\n"; } echo "</td>\n"; } echo "</tr>\n"; echo "</table>\n"; } if ($tab_rel['rn_formule'] != "") { //echo "<p>".htmlspecialchars($tab_rel['rn_formule'])."</p>\n"; //echo "<p>".$tab_rel['rn_formule']."</p>\n"; echo "<table width='{$releve_largeurtableau}' style='margin-left:5px; margin-right:5px;' border='0' cellspacing='" . $releve_cellspacing . "' cellpadding='" . $releve_cellpadding . "' summary='Formule du bas de relevé de notes'>\n"; echo "<tr>"; echo "<td><p align='center' class='bulletin'>" . $tab_rel['rn_formule'] . "</p></td>\n"; echo "</tr></table>"; } //================================ //echo "</div>\n"; //================================ // Affichage de la formule de bas de page //echo "\$releve_formule_bas=$releve_formule_bas<br />"; //echo "\$releve_affiche_formule=$releve_affiche_formule<br />"; if ($releve_formule_bas != '' and $releve_affiche_formule == 'y') { // Pas d'affichage dans le cas d'un bulletin d'une période "examen blanc" echo "<table width='{$releve_largeurtableau}' style='margin-left:5px; margin-right:5px;' border='0' cellspacing='" . $releve_cellspacing . "' cellpadding='" . $releve_cellpadding . "'>\n"; echo "<tr>"; echo "<td><p align='center' class='bulletin'>" . $releve_formule_bas . "</p></td>\n"; echo "</tr></table>"; } echo "</div>\n"; //================================ if ($num_releve == 0 && $nb_releves == 2) { echo "<p class='saut'> </p>\n"; } } }
<?php if ($action == "vidage" || $action=="regeneration") : ?> <h2>Vidage et regénération de la table d'agrégation</h2> <?php if ($action == "vidage") { $del = AbsenceAgregationDecompteQuery::create()->deleteAll(); $nb = AbsenceAgregationDecompteQuery::create()->count(); if ($nb === 0) { echo"<p>La Table est maintenant vide.</p>"; echo "<p>Revenir à l'<a href='".$_SERVER['PHP_SELF']."'>Agrégation des absences</a></p>"; die(); } else { echo"<p>Un problème est survenu.</p>"; die(); } } elseif ($action == "regeneration") { $eleve_col = EleveQuery::create()->paginate($page, $maxPerPage); if (1 == $page) { $del = AbsenceAgregationDecompteQuery::create()->deleteAll(); $nb = AbsenceAgregationDecompteQuery::create()->count(); if ($nb === 0) { echo"<p>La Table est vide.</p>"; } else { echo"<p>Un problème est survenu.</p>"; die(); } } echo'<div id="contain_div" class="css-panes"> <p> Traitement de la tranche d\'élève ' . $page . '/' . $eleve_col->getLastPage() . ' en cours... <br /> Attention cette opération peut être longue.</p> </div>'; if(ob_get_contents()){
public function testDelete() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); $traitement = AbsenceEleveTraitementQuery::create()->useJTraitementSaisieEleveQuery() ->useAbsenceEleveSaisieQuery()->filterByDebutAbs(JEUDI_s42j4.' 08:00:00') ->endUse()->endUse()->findOne(); //on va vérifier que le delete change bien le update_ad $old_updated_at = $traitement->getUpdatedAt('U'); $traitement->delete(); $traitement = AbsenceEleveTraitementQuery::create()->useJTraitementSaisieEleveQuery() ->useAbsenceEleveSaisieQuery()->filterByDebutAbs(JEUDI_s42j4.' 08:00:00') ->endUse()->endUse()->findOne(); $this->assertNull($traitement); $traitement = AbsenceEleveTraitementQuery::create()->includeDeleted()->useJTraitementSaisieEleveQuery() ->useAbsenceEleveSaisieQuery()->filterByDebutAbs(JEUDI_s42j4.' 08:00:00') ->endUse()->endUse()->findOne(); $this->assertNotNull($traitement); $traitement->unDelete(); AbsenceEleveTraitementPeer::enableAgregation(); $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne()); $traitement->save(); $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee(JEUDI_s42j4)->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); $traitement->delete(); $decompte->reload(); $this->assertTrue($decompte->getManquementObligationPresence()); AbsenceEleveTraitementPeer::disableAgregation(); }
else { echo "-"; } echo "</td>\n"; echo "</tr>\n"; } echo "</table>\n"; echo "</div>\n"; } } } elseif (getSettingValue("active_module_absence")=='2') { // Initialisations files echo "<div id='div_aff_abs' style='display:none'>\n"; require_once("../lib/initialisationsPropel.inc.php"); $eleve = EleveQuery::create()->findOneByLogin($eleve1); echo "<table class='boireaus' summary='Bilan des absences'>\n"; echo "<tr>\n"; echo "<th>Absences sur la période</th>\n"; echo "<th>Nombre de 1/2 journées</th>\n"; echo "<th>dont non justifiées</th>\n"; echo "<th>Nombre de retards</th>\n"; echo "</tr>\n"; $alt=1; // Il ne faudrait afficher que le T1, T2 ou T3 en se basant sur la variable $num_periode_choisie foreach($eleve->getPeriodeNotes() as $periode_note) { //$periode_note = new PeriodeNote(); if ($periode_note->getDateDebut() == null) {
// Colonne absence if ($aff_abs) { if (getSettingValue("active_module_absence") != '2' || getSettingValue("abs2_import_manuel_bulletin") == 'y') { $abs_eleve = "NR"; if ($referent == "une_periode") { $abs_eleve = sql_query1("SELECT nb_absences FROM absences WHERE\n\t\t\tlogin = '******' and\n\t\t\tperiode = '" . $num_periode . "'\n\t\t\t"); } else { $abs_eleve = sql_query1("SELECT sum(nb_absences) FROM absences WHERE\n\t\t\tlogin = '******'"); } if ($abs_eleve == '-1') { $abs_eleve = "NR"; } $col[$ind][$j + $ligne_supl] = $abs_eleve; $ind++; } else { $eleve = EleveQuery::create()->findOneByLogin($current_eleve_login[$j]); if ($eleve != null) { if ($referent == "une_periode") { $abs_eleve = strval($eleve->getDemiJourneesAbsenceParPeriode($num_periode)->count()); } else { $date_jour = new DateTime('now'); $month = $date_jour->format('m'); if ($month > 7) { $date_debut = new DateTime($date_jour->format('y') . '-09-01'); $date_fin = new DateTime($date_jour->format('y') + 1 . '-08-31'); } else { $date_debut = new DateTime($date_jour->format('y') - 1 . '-09-01'); $date_fin = new DateTime($date_jour->format('y') . '-08-31'); } $abs_eleve = strval($eleve->getDemiJourneesAbsence($date_debut, $date_fin)->count()); }
$eleve_col = new PropelCollection(); //on fait une requete pour recuperer les eleves qui sont absents aujourd'hui $dt_debut = clone $dt_date_absence_eleve; $dt_debut->setTime(0,0,0); $dt_fin = clone $dt_date_absence_eleve; $dt_fin->setTime(23,59,59); //on récupere les saisies avant puis on va filtrer avec les ids car filterManquementObligationPresence bug un peu avec les requetes imbriquées $saisie_query = AbsenceEleveSaisieQuery::create()->filterByPlageTemps($dt_debut, $dt_fin)->setFormatter(ModelCriteria::FORMAT_ARRAY); //On filtre les manquement à l'obligation de présence if ($filtre_actif == "manquement") { $saisie_query->filterByManquementObligationPresence(); } else { $saisie_query->filterByIdLieu($id_lieu); } $saisie_col = $saisie_query->find(); $query = EleveQuery::create()->orderBy('Nom', Criteria::ASC)->orderBy('Prenom', Criteria::ASC) ->leftJoinWith('Eleve.EleveRegimeDoublant') ->useAbsenceEleveSaisieQuery() ->filterById($saisie_col->toKeyValue('Id', 'Id')) ->endUse(); $eleve_col = $query ->where('Eleve.DateSortie<?','0') ->orWhere('Eleve.DateSortie is NULL') ->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve->format('U')) ->distinct()->find(); ?> <div class='css-panes' id='containDiv'> <p> Cette page affiche par créneau le nombre d'élèves ayant une saisie correspondant au filtre défini.<br /> Les saisies renseignées en retard ne sont pas comptabilisées.<br /><br /> </p>
if(($mode=="suppr_report")&&(isset($id_report))) { check_token(); $sql="DELETE FROM s_reports WHERE id_report='$id_report';"; $res=mysqli_query($GLOBALS["mysqli"], $sql); } if(isset($odt)&& (($odt=="exclusion")|| ($odt=="travail")|| ($odt=="autre"))) { //impression de l'exclusion en Ooo //recup des informations à exporter dans l'ODT //Nom et prenom eleve; if ($ele_login != null && $ele_login != '') { $eleve_current= EleveQuery::create()->filterByLogin($ele_login)->findOne(); $nom_ele = $eleve_current->getNom(); $prenom_ele= $eleve_current->getPrenom(); $id_classe_ele= $eleve_current->getClasse()->getId(); } //classe de l'élève if ($id_classe_ele != null && $id_classe_ele != '') { $classe = ClasseQuery::create()->findOneById($id_classe_ele); if ($classe != null) { $classe_ele = $classe->getNom(); } } require_once("./lib_tbs_courrier.php"); //fonction pour le traitement de l'adresse $tab_adresse=adresse_responsables($ele_login);
/** * Récupère les données d'un élève à afficher * @param objet $eleve Un élève issu de getEleves() * @param date $date_debut * @param date $date_fin * @param objet $justifie_col Collection Propel avec les justifications * @param bool $donneeBrut * @return array Une ligne du tableau à afficher * @see getEleves() */ function traiteEleve($eleve,$date_debut, $date_fin, $justifie_col, $donneeBrut, $erreur=FALSE) { $eleve_id = $eleve->getId(); $donnees= array(); $donnees[$eleve_id] = array(); $propel_eleve = EleveQuery::create()->filterById($eleve_id)->findOne(); $eleveNbAbs['demi_journees'] = $propel_eleve->getDemiJourneesAbsence($date_debut, $date_fin)->count(); $eleveNbAbs['retards'] = $propel_eleve->getRetards($date_debut, $date_fin)->count(); if ($eleveNbAbs['demi_journees'] > 0 || $eleveNbAbs['retards'] > 0 ) { $eleveNbAbs['non_justifiees'] = $propel_eleve->getDemiJourneesNonJustifieesAbsence($date_debut, $date_fin)->count(); $eleveNbAbs['justifiees'] = $eleveNbAbs['demi_journees'] - $eleveNbAbs['non_justifiees']; $donnees[$eleve_id]['nom'] = $eleve->getNom(); $donnees[$eleve_id]['prenom'] = $eleve->getPrenom(); $donnees[$eleve_id]['classe'] = $eleve->getClasse(); $donnees[$eleve_id]['classe'] = $eleve->getClasseNom(); $donnees[$eleve_id]['nbre_lignes_total'] = 0; $donnees[$eleve_id]['demi_journees'] = $eleveNbAbs['demi_journees']; $donnees[$eleve_id]['justifiees'] = $eleveNbAbs['justifiees']; $donnees[$eleve_id]['non_justifiees'] = $eleveNbAbs['non_justifiees']; $donnees[$eleve_id]['retards'] = $eleveNbAbs['retards']; //Récupérer le décompte des traitements pour chaque élève $totalDemi=0; foreach ($justifie_col as $justifie) { // Décompte en données brutes if ($donneeBrut == TRUE) { $propel_traitEleve = AbsenceEleveTraitementQuery::create()->filterByAJustificationId($justifie->getid()) ->useJTraitementSaisieEleveQuery() ->useAbsenceEleveSaisieQuery() ->filterByEleveId($eleve_id) ->filterByPlageTemps($date_debut,$date_fin ) ->endUse() ->endUse() ; $traiteEleve_col = $propel_traitEleve; $donnees[$eleve_id]['traitement'][] = $traiteEleve_col->distinct()->count(); } else { // Décompte en 1/2 journées $abs_saisie_col_filtrees = $eleve->getAbsenceEleveSaisiesDecompteDemiJournees($date_debut, $date_fin); $justif_collection = new PropelCollection(); foreach ($abs_saisie_col_filtrees as $saisie) { foreach ($saisie->getAbsenceEleveTraitements() as $traitement) { if ($traitement->getAJustificationId() == $justifie->getid()) { $justif_collection->add($saisie); } } } require_once(dirname(__FILE__)."/../orm//helpers/AbsencesEleveSaisieHelper.php"); $dm = AbsencesEleveSaisieHelper::compte_demi_journee($justif_collection, $date_debut, $date_fin); $donnees[$eleve_id]['traitement'][] = $dm->count(); $totalDemi += $dm->count(); } } $donnees[$eleve_id]['totalDemi']=$totalDemi; } unset ($eleveNbAbs, $traiteEleve_col, $propel_eleve, $propel_traitEleveDemi, $traiteEleveDemi, $traiteEleveDemi_col, $propel_traitEleve); if ($erreur && isset ($donnees[$eleve_id]['justifiees']) && ($donnees[$eleve_id]['justifiees']==$donnees[$eleve_id]['totalDemi'])) { $donnees[$eleve_id] = array(); } return $donnees; }
/** * Gets the number of Eleve objects related by a many-to-many relationship * to the current object by way of the j_aid_eleves cross-reference table. * * @param Criteria $criteria Optional query object to filter the query * @param boolean $distinct Set to true to force count distinct * @param PropelPDO $con Optional connection object * * @return int the number of related Eleve objects */ public function countEleves($criteria = null, $distinct = false, PropelPDO $con = null) { if(null === $this->collEleves || null !== $criteria) { if ($this->isNew() && null === $this->collEleves) { return 0; } else { $query = EleveQuery::create(null, $criteria); if($distinct) { $query->distinct(); } return $query ->filterByAidDetails($this) ->count($con); } } else { return count($this->collEleves); } }
/** * Retourne true ou false selon que l'utilisateur a acces a la fiche de cette eleve * * @param Eleve $eleve * * @return Boolean */ public function getAccesFicheEleve(Eleve $eleve) { global $mysqli; if ($eleve === null) return false; if ($this->getStatut() == "admin") { return true; } else if ($this->getStatut() == "secours") { return true; } else if ($this->getStatut() == "scolarite") { if (getSettingValue("GepiAccesTouteFicheEleveScolarite")=='yes') { return true; } else { if (!isset($this->collAccesFicheEleves[$eleve->getPrimaryKey()])) { $this->collAccesFicheEleves[$eleve->getPrimaryKey()] = $this->getEleves()->contains($eleve); } return $this->collAccesFicheEleves[$eleve->getPrimaryKey()]; } } else if ($this->getStatut() == "cpe") { if (getSettingValue("GepiAccesTouteFicheEleveCpe")=='yes') { return true; } else { if (!isset($this->collAccesFicheEleves[$eleve->getPrimaryKey()])) { $this->collAccesFicheEleves[$eleve->getPrimaryKey()] = $this->getEleves()->contains($eleve); } return $this->collAccesFicheEleves[$eleve->getPrimaryKey()]; } } else if ($this->getStatut() == "professeur") { if (isset($this->collAccesFicheEleves[$eleve->getPrimaryKey()])) { return $this->collAccesFicheEleves[$eleve->getPrimaryKey()]; } if (getSettingValue("GepiAccesGestElevesProfP")=='yes') { if ($this->getEleves()->contains($eleve)) { $this->collAccesFicheEleves[$eleve->getPrimaryKey()] = true; return true; } } if (getSettingValue("GepiAccesGestElevesProf")=='yes') { //on cherche dans les groupes du professeur $query = EleveQuery::create()->filterById($eleve->getId()) ->useJEleveGroupeQuery()->useGroupeQuery()->useJGroupesProfesseursQuery() ->filterByUtilisateurProfessionnel($this) ->endUse()->endUse()->endUse(); if ($query->findOne() != null) { $this->collAccesFicheEleves[$eleve->getPrimaryKey()] = true; return true; } //on cherche dans les aid du professeur $query = EleveQuery::create()->filterById($eleve->getId()) ->useJAidElevesQuery()->useAidDetailsQuery()->useJAidUtilisateursProfessionnelsQuery() ->filterByUtilisateurProfessionnel($this) ->endUse()->endUse()->endUse(); if ($query->findOne() != null) { $this->collAccesFicheEleves[$eleve->getPrimaryKey()] = true; return true; } } $this->collAccesFicheEleves[$eleve->getPrimaryKey()] = false; return false; } else if ($this->getStatut() == "autre") { if (isset($this->collAccesFicheEleves['statut_autre'])) { return $this->collAccesFicheEleves['statut_autre']; } // On récupère les droits de ce statuts pour savoir ce qu'on peut afficher $sql_d = "SELECT * FROM droits_speciaux WHERE id_statut = '" . $_SESSION['statut_special_id'] . "'"; $query_d = mysqli_query($mysqli, $sql_d); while($rep_d = mysqli_fetch_array($query_d)){ //print_r($rep_d); if (($rep_d['nom_fichier'] == '/voir_resp' AND $rep_d['autorisation'] == 'V') || ($rep_d['nom_fichier'] == '/voir_ens' AND $rep_d['autorisation'] == 'V') || ($rep_d['nom_fichier'] == '/voir_notes' AND $rep_d['autorisation'] == 'V') || ($rep_d['nom_fichier'] == '/voir_bulle' AND $rep_d['autorisation'] == 'V') || ($rep_d['nom_fichier'] == '/voir_abs' AND $rep_d['autorisation'] == 'V') || ($rep_d['nom_fichier'] == '/voir_anna' AND $rep_d['autorisation'] == 'V') || ($rep_d['nom_fichier'] == '/mod_discipline/saisie_incident.php' AND $rep_d['autorisation'] == 'V') ) { $this->collAccesFicheEleves['statut_autre'] = true; return true; } } $this->collAccesFicheEleves['statut_autre'] = false; return false; } return false; }