本文整理汇总了PHP中PropelCollection::append方法的典型用法代码示例。如果您正苦于以下问题:PHP PropelCollection::append方法的具体用法?PHP PropelCollection::append怎么用?PHP PropelCollection::append使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PropelCollection
的用法示例。
在下文中一共展示了PropelCollection::append方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: setRoles
/**
* @param $oRole
*/
public function setRoles($oRole)
{
$oUserRoles = new UserRole();
$oUserRoles->setRole($oRole);
$oUserRoles->setUser($this);
$aCollection = new \PropelCollection();
$aCollection->append($oUserRoles);
$this->setUserRoles($aCollection);
}
示例2: compte_demi_journee
//.........这里部分代码省略.........
$heure_demi_journee = 11;//11:50 par défaut si rien n'est précisé dans les settings
$minute_demi_journee = 50;
if (getSettingValue("abs2_heure_demi_journee") != null) {
try {
$dt_demi_journee = new DateTime(getSettingValue("abs2_heure_demi_journee"));
$heure_demi_journee = $dt_demi_journee->format('H');
$minute_demi_journee = $dt_demi_journee->format('i');
} catch (Exception $x) {
}
}
//on va regarder la date du début pour notre algorithme
if ($date_debut_iteration == null) {
$date_debut_iteration = $abs_saisie_col->getFirst()->getDebutAbs(null);
}
if ($date_debut_iteration->format('Hi') < $heure_demi_journee.$minute_demi_journee) {
$date_debut_iteration->setTime(0, 0, 0);
} else {
$date_debut_iteration->setTime(12, 0, 0);
}
//on va regarder la date du fin pour notre algorithme
if ($date_fin_iteration == null) {
foreach ($abs_saisie_col as $saisie) {
if ($date_fin_iteration == null || $saisie->getFinAbs('U') > $date_fin_iteration->format('U')) {
$date_fin_iteration = $saisie->getFinAbs(null);
}
}
}
if ($date_fin_iteration->format('Hi') < $heure_demi_journee.$minute_demi_journee) {
$date_fin_iteration->setTime(12, 0, 0);
} else {
$date_fin_iteration->setTime(23, 59, 59);
$date_fin_iteration->modify("+1 second");
}
$date_fin_iteration->modify("+2 hours");//on ajout deux heures pour prendre en compte un décalage dans la date de compteur (+1h35) dans l'algorithme plus bas
$result = new PropelCollection();
$date_compteur = clone $date_debut_iteration;
$horaire_tab = EdtHorairesEtablissementPeer::retrieveAllEdtHorairesEtablissementArrayCopy();
require_once(dirname(__FILE__)."/EdtHelper.php");
foreach($abs_saisie_col as $saisie) {
if ($date_compteur->format('U') < $saisie->getDebutAbs('U')) {
$date_compteur = clone $saisie->getDebutAbs(null);
}
if ($date_compteur >= $date_fin_iteration) {
break;
}
while ($date_compteur <= $saisie->getFinAbs(null) && $date_compteur < $date_fin_iteration) {
//est-ce un jour de la semaine ouvert ?
if (!EdtHelper::isJourneeOuverte($date_compteur)) {
//etab fermé on va passer au lendemain
$date_compteur->setTime(23, 59, 59);
$date_compteur->modify("+2 hours");
continue;
} elseif (!EdtHelper::isHoraireOuvert($date_compteur)) {
$horaire = $horaire_tab[EdtHelper::$semaine_declaration[$date_compteur->format("w")]];
if ($date_compteur->format('Hi') < $horaire->getOuvertureHoraireEtablissement('Hi')) {
//c'est le matin, on règle sur l'heure d'ouverture
$date_compteur->setTime($horaire->getOuvertureHoraireEtablissement('H'), $horaire->getOuvertureHoraireEtablissement('i'));
} else {
//on est apres la fermeture, on va passer au lendemain
$date_compteur->setTime(23, 59, 59);
$date_compteur->modify("+2 hours");
}
continue;
} elseif ($date_compteur < $saisie->getDebutAbs(null) && !EdtHelper::isHoraireOuvert($saisie->getDebutAbs(null))) {
$date_compteur->modify("+19 minutes");
continue;
}
if ($date_compteur->format('Hi') < $heure_demi_journee.$minute_demi_journee) {
$date_compteur->setTime(0, 0, 0);
} else {
$date_compteur->setTime(12, 0, 0);
}
$date_compteur_suivante = clone $date_compteur;
$date_compteur_suivante->modify("+15 hours");//en ajoutant 15 heure on est sur de passer a la demi-journee suivante
if ($date_compteur_suivante->format('H') < 12) {
$date_compteur_suivante->setTime(0, 0, 0);
} else {
$date_compteur_suivante->setTime($heure_demi_journee, $minute_demi_journee, 0);
}
if ($saisie->getDebutAbs(null) < $date_compteur_suivante && $saisie->getFinAbs(null) > $date_compteur) {
$result->append(clone $date_compteur);
//on ajoute 1h35
//pour eviter le cas ou on a une saisie par exemple sur 11h45 -> 13h et de la compter comme deux demi-journees
$date_compteur_suivante->modify("+1 hour");
$date_compteur_suivante->modify("+45 minutes");
}
$date_compteur = $date_compteur_suivante;
$saisie->clearAllReferences();
}
}
return $result;
}
示例3: PropelCollection
}
}
}
if (getSettingValue("abs2_saisie_prof_decale")=='y' || $utilisateur->getStatut() != "professeur") {
$col = EdtSemaineQuery::create()->find();
$semaineAff = new PropelCollection();
//on va commencer la liste à la semaine 31 (milieu des vacances d'ete)
for ($i = 0; $i < $col->count(); $i++) {
$pos = ($i + 30) % $col->count();
$semaine = $col[$pos];
$semaineAff->append($col[$pos]);
}
} else {
$semaineAff = new PropelCollection();
$semaineAff->append($current_semaine);
}
if ($current_cours != null && $current_cours->getTypeSemaine() != '' && $current_cours->getTypeSemaine() != '0' && $current_semaine != null && $current_cours->getTypeSemaine() != $current_semaine->getTypeEdtSemaine()) {
$erreurSemaine=TRUE;
$current_cours = null;
$current_groupe = null;
$current_classe = null;
$current_aid = null;
}
}
}
//**************** CLASSES *****************
if (getSettingValue("GepiAccesAbsTouteClasseCpe")=='yes' && $utilisateur->getStatut() == "cpe") {
$classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->find();
示例4: PropelCollection
}
//afichage des eleves
$eleve_col = new PropelCollection();
if ($type_selection == 'id_eleve') {
$query = EleveQuery::create();
if ($utilisateur->getStatut() != "cpe" || getSettingValue("GepiAccesAbsTouteClasseCpe")!='yes') {
$query->filterByUtilisateurProfessionnel($utilisateur);
}
$eleve = $query->filterById($id_eleve)
->where('Eleve.DateSortie<?','0')
->orWhere('Eleve.DateSortie is NULL')
->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve_debut_saisir_eleve->format('U'))
->findOne();
if ($eleve != null) {
$eleve_col->append($eleve);
}
} else if ($type_selection == 'nom_eleve') {
$query = EleveQuery::create();
if ($utilisateur->getStatut() != "cpe" || getSettingValue("GepiAccesAbsTouteClasseCpe")!='yes') {
$query->filterByUtilisateurProfessionnel($utilisateur);
}
$eleve_col = $query->filterByNomOrPrenomLike($nom_eleve)
->where('Eleve.DateSortie<?','0')
->orWhere('Eleve.DateSortie is NULL')
->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve_debut_saisir_eleve->format('U'))
->limit(20)->find();
} elseif (isset($current_groupe) && $current_groupe != null) {
$query = EleveQuery::create();
$eleve_col = $query->useJEleveGroupeQuery()
->filterByIdGroupe($current_groupe->getId())
示例5: testAddClassmatesWithPropelCollection
public function testAddClassmatesWithPropelCollection()
{
$john = new DBStudent();
$john->setName('john');
$jean = new DBStudent();
$jean->setName('jean');
$phil = new DBStudent();
$phil->setName('phil');
$john->setClassmates(array($jean, $phil));
$john->save();
$this->assertEquals(3, DBStudentQuery::create()->count());
$this->assertTrue($john->hasClassmate($jean));
$this->assertTrue($john->hasClassmate($phil));
$this->assertTrue($phil->hasClassmate($john));
$this->assertTrue($jean->hasClassmate($john));
$this->assertEquals(2, count($john->getClassmates()));
$henri = new DBStudent();
$henri->setName('henri');
$marco = new DBStudent();
$marco->setName('marco');
$coll = new PropelCollection();
$coll->append($henri);
$coll->append($marco);
$john->addClassmates($coll);
$john->save();
$this->assertEquals(5, DBStudentQuery::create()->count());
$this->assertTrue($john->hasClassmate($henri));
$this->assertTrue($john->hasClassmate($marco));
$this->assertTrue($marco->hasClassmate($john));
$this->assertTrue($henri->hasClassmate($john));
$this->assertEquals(4, count($john->getClassmates()));
}
示例6: testPeerUpdateAgregationTable
public function testPeerUpdateAgregationTable()
{
//on va modifier à la main une saisie
AbsenceAgregationDecompteQuery::create()->deleteAll();
foreach (EleveQuery::create()->find() as $eleve) {
$eleve->updateAbsenceAgregationTable(new DateTime(VENDREDI_s40j5.' 00:00:00'),new DateTime(DIMANCHE_s41j7.' 23:59:59'));
}
sleep(1);
$florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu');
$saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(SAMEDI_s40j6)->getFirst();
$saisie_id = $saisie->getId();
mysqli_query($GLOBALS["mysqli"], "update a_saisies set updated_at = now() where id = ".$saisie_id);
$this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0));
$col = new PropelCollection();
$col->append($saisie);
AbsenceAgregationDecomptePeer::updateAgregationTable($col);
$this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime(VENDREDI_s40j5.' 00:00:00'),new DateTime(DIMANCHE_s41j7.' 23:59:59'),0));
$this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0));
AbsenceAgregationDecompteQuery::create()->deleteAll();
foreach (EleveQuery::create()->find() as $eleve) {
$eleve->updateAbsenceAgregationTable(new DateTime(VENDREDI_s40j5.' 00:00:00'),new DateTime(DIMANCHE_s41j7.' 23:59:59'));
}
sleep(1);
$florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu');
$saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(VENDREDI_s40j5)->getFirst();
$saisie_id = $saisie->getId();
mysqli_query($GLOBALS["mysqli"], "update a_saisies set fin_abs = '".VENDREDI_s40j5." 08:10:00' where id = ".$saisie_id);//ça devient un retard
$decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee(VENDREDI_s40j5)->findOne();
$this->assertTrue($decompte->getManquementObligationPresence());
$this->assertEquals(0,$decompte->getRetards());
$saisie->getEleve()->clearAllReferences();
$saisie->clearAllReferences();
$saisie->reload();
$col = new PropelCollection();
$col->append($saisie);
AbsenceAgregationDecomptePeer::updateAgregationTable($col);
$decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee(VENDREDI_s40j5)->findOne();
$this->assertFalse($decompte->getManquementObligationPresence());
$this->assertEquals(1,$decompte->getRetards());
$saisie->setFinAbs(VENDREDI_s40j5.' 09:00:00');
$saisie->save();
AbsenceAgregationDecompteQuery::create()->deleteAll();
AbsenceAgregationDecomptePeer::updateAgregationTable(AbsenceEleveSaisieQuery::create()->filterByPlageTemps(new DateTime(VENDREDI_s40j5), new DateTime(DIMANCHE_s41j7))->find());
$eleve_col = EleveQuery::create()->useAbsenceEleveSaisieQuery()->filterByPlageTemps(new DateTime(VENDREDI_s40j5), new DateTime(DIMANCHE_s41j7))->endUse()->find();
foreach($eleve_col as $eleve) {
$this->assertTrue($eleve->checkSynchroAbsenceAgregationTable(new DateTime(SAMEDI_s40j6.' 00:00:00'),new DateTime(MARDI_s41j2)));
}
}
示例7: elseif
$clone->setDateEnvoi(null);
$clone->setErreurMessageEnvoi(null);
$clone->save();
$_POST["id_notification"] = $clone->getId();
$message_enregistrement .= '<span style="color:green">Nouvelle notification</span>';
include "visu_notification.php";
die;
} elseif ($modif == 'duplication_par_responsable') {
$responsablesToAdd = new PropelCollection();
$responsables_informations = $notification->getAbsenceEleveTraitement()->getResponsablesInformationsSaisies();
foreach ($responsables_informations as $responsable_information) {
$responsable = $responsable_information->getResponsableEleve();
if ($responsable == null || $notification->getResponsableEleves()->contains($responsable) || $responsable_information->getNiveauResponsabilite() == '0') {
continue;
}
$responsablesToAdd->append($responsable);
}
foreach ($responsablesToAdd as $responsableToAdd) {
$clone = $notification->copy();
//no deep copy
$clone->save();
$id = $clone->getId();
//this is done to avoid a bug in deepcopy
$notification->copyInto($clone, true);
// deep copy
$clone->setId($id);
$clone->setNew(false);
$clone->setEmail($responsableToAdd->getMel());
$clone->setTelephone($responsableToAdd->getTelPort());
$clone->setAdresseId($responsableToAdd->getAdresseId());
$clone->save();
示例8:
$recap = $notif->getId().', ';
foreach ($notif->getResponsableEleves() as $responsable) {
$recap .= $responsable->getCivilite().' '.strtoupper($responsable->getNom()).' '.$responsable->getPrenom();
if (!$notif->getResponsableEleves()->isLast()) {
$recap .= ' ';
}
}
$courrier_recap_col->append($recap);
//on met un code d'erreur au cas ou la generation se fait mal
if ($notif->getStatutEnvoi() == AbsenceEleveNotificationPeer::STATUT_ENVOI_ETAT_INITIAL
|| $notif->getStatutEnvoi() == AbsenceEleveNotificationPeer::STATUT_ENVOI_PRET_A_ENVOYER) {
$notif->setStatutEnvoi(AbsenceEleveNotificationPeer::STATUT_ENVOI_ECHEC);
$notif->setErreurMessageEnvoi('Echec de l\'impression par lot');
$notif->save();
$courrier_nouvellement_envoyés_col->append($notif);
} else {
$notif->setUpdatedAt('now');
$notif->save();
}
}
//on imprime le global
$TBS->MergeBlock('notifications',$tableNotifications);
$TBS->MergeField('nb_impressions',count($tableNotifications));
$TBS->MergeBlock('courrier_recap_col',$courrier_recap_col);
// Output as a download file (some automatic fields are merged here)
//on change le statut des notifications
foreach($courrier_nouvellement_envoyés_col as $notif) {
$notif->setDateEnvoi('now');
示例9: MergeNotification
/**
* Merge une notification avec son modele
*
* @param AbsenceEleveNotification $notification
* @param String $modele chemin du modele tbs
* @return clsTinyButStrong $TBS deroulante des types d'absences
*/
public static function MergeNotification($notification, $modele){
//on charge le modele et on merge les données de l'établissement
$TBS=self::MergeInfosEtab($modele);
$TBS->MergeField('notif_id',$notification->getId());
//on récupère la liste des noms d'eleves
$eleve_col = new PropelCollection();
if ($notification->getAbsenceEleveTraitement() != null) {
foreach ($notification->getAbsenceEleveTraitement()->getAbsenceEleveSaisies() as $saisie) {
$eleve_col->add($saisie->getEleve());
}
}
//merge des saisies pour modèles du type 1.5.3
$TBS->MergeBlock('el_col',$eleve_col);
foreach ($eleve_col as $eleve) {
$saisies_string_col = new PropelCollection();
$saisies_col = AbsenceEleveSaisieQuery::create()->filterByEleveId($eleve->getId())
->useJTraitementSaisieEleveQuery()
->filterByATraitementId($notification->getAbsenceEleveTraitement()->getId())->endUse()
->orderBy("DebutAbs", Criteria::ASC)
->find();
foreach ($saisies_col as $saisie) {
$str = $saisie->getDateDescription();
if($saisie->getGroupeNameAvecClasses()!=''){
$str.= ', cours de '.$saisie->getGroupeNameAvecClasses();
}
$saisies_string_col->append($str);
}
$TBS->MergeBlock('saisies_string_eleve_id_'.$eleve->getId(), $saisies_string_col);
}
$heure_demi_journee = 11;
$minute_demi_journee = 50;
if (getSettingValue("abs2_heure_demi_journee") != null) {
try {
$dt_demi_journee = new DateTime(getSettingValue("abs2_heure_demi_journee"));
$heure_demi_journee = $dt_demi_journee->format('H');
$minute_demi_journee = $dt_demi_journee->format('i');
} catch (Exception $x) {
}
}
$temps_demi_journee = $heure_demi_journee.$minute_demi_journee;
foreach($eleve_col as $eleve) {
$demi_journee_string_col = new PropelCollection();array ();
$abs_col = AbsenceEleveSaisieQuery::create()->filterByEleve($eleve)
->useJTraitementSaisieEleveQuery()
->filterByATraitementId($notification->getAbsenceEleveTraitement()->getId())->endUse()
->orderBy("DebutAbs", Criteria::ASC)
->find();
require_once("helpers/AbsencesEleveSaisieHelper.php");
$demi_j = AbsencesEleveSaisieHelper::compte_demi_journee($abs_col);
foreach($demi_j as $date) {
$str = 'Le ';
$str .= (strftime("%a %d/%m/%Y", $date->format('U')));
if ($date->format('H') < 12) {
$next_date = $demi_j->getNext();
if ($next_date != null && $next_date->format('Y-m-d') == $date->format('Y-m-d')) {
$str .= ' la journée';
} else {
$str .= ' le matin';
//on recule le pointeur car on l'a avancé avec $demi_j->getNext()
$demi_j->getPrevious();
}
} else {
$str .= ' l\'après midi';
}
$demi_journee_string_col->append($str);
}
//var_dump($demi_journee_string_col);die;
//if (count($demi_journee_string_col) == 0) die;
$TBS->MergeBlock('demi_j_string_eleve_id_'.$eleve->getId(), $demi_journee_string_col);
}
if ($notification->getTypeNotification() == AbsenceEleveNotificationPeer::TYPE_NOTIFICATION_COURRIER) {
//on va mettre les champs dans des variables simple
//on fait un petit traitement pour bien formatter ça si on a un ou deux responsables, avec le même nom de famille ou pas.
if ($notification->getAdresse() != null && $notification->getResponsableEleves()->count() == 1) {
$responsable = $notification->getResponsableEleves()->getFirst();
$destinataire = $responsable->getCivilite().' '.strtoupper($responsable->getNom()).' '.strtoupper($responsable->getPrenom());
} elseif ($notification->getAdresse() != null&& $notification->getResponsableEleves()->count() == 2) {
$responsable1 = $notification->getResponsableEleves()->getFirst();
$responsable2 = $notification->getResponsableEleves()->getNext();
if (strtoupper($responsable1->getNom()) == strtoupper($responsable2->getNom())) {
$destinataire = $responsable1->getCivilite().' et '.$responsable2->getCivilite().' '.strtoupper($responsable1->getNom());
} else {
$destinataire = $responsable1->getCivilite().' '.strtoupper($responsable1->getNom());
$destinataire .= ' et '.$responsable2->getCivilite().' '.strtoupper($responsable2->getNom());
}
} else {
$destinataire = '';
//.........这里部分代码省略.........
示例10: elseif
$dt_debut->setTime(0, 0, 0);
$dt_fin = clone $dt_date_absence_eleve;
$dt_fin->setTime(23, 59, 59);
//on récupere les saisies car 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);
if (!isFiltreRechercheParam('filter_manqement_obligation') || getFiltreRechercheParam('filter_manqement_obligation') != 'n') {
//par défaut on filtre les manquement à l'obligation de présence
$saisie_query->filterByManquementObligationPresence();
}
$saisie_col = $saisie_query->find();
$query = EleveQuery::create()->orderBy('Nom', Criteria::ASC)->orderBy('Prenom', Criteria::ASC)->useAbsenceEleveSaisieQuery()->filterById($saisie_col->toKeyValue('Id', 'Id'))->endUse();
if ($utilisateur->getStatut() != "cpe" || getSettingValue("GepiAccesAbsTouteClasseCpe") != 'yes') {
$query->filterByUtilisateurProfessionnel($utilisateur);
}
if ($type_selection == 'id_eleve') {
$eleve_col->append($query->findPk($id_eleve));
} else {
if ($type_selection == 'nom_eleve') {
$query->filterByNomOrPrenomLike($nom_eleve);
} elseif ($current_groupe != null) {
$query->useJEleveGroupeQuery()->filterByIdGroupe($current_groupe->getId())->enduse();
} elseif ($current_aid != null) {
$query->useJAidElevesQuery()->filterByIdAid($current_aid->getId())->enduse();
} elseif ($current_classe != null) {
$query->useJEleveClasseQuery()->filterByIdClasse($current_classe->getId())->enduse();
} else {
//rien à faire
}
}
if ($type_selection != 'id_eleve' && $type_selection != 'nom_eleve') {
//on filtre
示例11:
foreach($demi_j as $date) {
$str = 'Le ';
$str .= (strftime("%a %d/%m/%Y", $date->format('U')));
if ($date->format('H') < 12) {
$next_date = $demi_j->getNext();
if ($next_date != null && $next_date->format('Y-m-d') == $date->format('Y-m-d')) {
$str .= ' la journée';
} else {
$str .= ' le matin';
//on recule le pointeur car on l'a avancé avec $demi_j->getNext()
$demi_j->getPrevious();
}
} else {
$str .= ' l\'après midi';
}
$demi_journee_string_col->append($str);
}
$notification['demi_j_string'] = $demi_journee_string_col;
}
//on imprime le global
示例12: testCompte_demi_journee
public function testCompte_demi_journee()
{
$florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu');
$saisie_col = AbsenceEleveSaisieQuery::create()->orderByDebutAbs(Criteria::DESC);
try {
AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col);
$this->fail('Une exception doit être soulevée lors de cette sauvegarde');
} catch (Exception $e) {
$this->assertTrue(true);
}
$this->assertTrue(AbsencesEleveSaisieHelper::compte_demi_journee(new PropelCollection())->isEmpty());
$saisie_col = new PropelCollection();
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-01 08:00:00');
$saisie->setFinAbs('2010-11-01 13:00:00');
$saisie_col->append($saisie);
saveSetting('abs2_heure_demi_journee','11:50');
$this->assertEquals(1,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
saveSetting('abs2_heure_demi_journee','11:10');
$this->assertEquals(2,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
saveSetting('abs2_heure_demi_journee','11:50');
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-01 09:00:00');
$saisie->setFinAbs('2010-11-01 17:00:00');
$saisie_col->append($saisie);
$this->assertEquals(2,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-01 09:00:00');
$saisie->setFinAbs('2010-11-01 17:00:00');
$saisie_col->append($saisie);
$this->assertEquals(2,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-02 10:00:00');
$saisie->setFinAbs('2010-11-02 10:50:00');
$saisie_col->append($saisie);
$this->assertEquals(3,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-02 11:00:00');
$saisie->setFinAbs('2010-11-02 13:30:00');
$saisie_col->append($saisie);
$this->assertEquals(3,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-02 11:00:00');
$saisie->setFinAbs('2010-11-02 17:30:00');
$saisie_col->append($saisie);
$this->assertEquals(4,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-02 11:00:00');
$saisie->setFinAbs('2010-11-03 10:30:00');
$saisie_col->append($saisie);
$this->assertEquals(5,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-02 11:00:00');
$saisie->setFinAbs('2010-11-03 17:30:00');//c'est un mercredi am donc on le compte pas, le total resta à 5
$saisie_col->append($saisie);
$this->assertEquals(5,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-03 16:00:00');
$saisie->setFinAbs('2010-11-03 17:30:00');
$saisie_col->append($saisie);
$this->assertEquals(5,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-03 16:00:00');
$saisie->setFinAbs('2010-11-04 02:00:00');
$saisie_col->append($saisie);
$this->assertEquals(5,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-03 16:00:00');
$saisie->setFinAbs('2010-11-04 09:00:00');
$saisie_col->append($saisie);
$this->assertEquals(6,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-04 15:00:00');
$saisie->setFinAbs('2010-11-04 16:00:00');
$saisie_col->append($saisie);
$this->assertEquals(7,AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->count());
$saisie_col = new PropelCollection();
$saisie = new AbsenceEleveSaisie();
$saisie->setDebutAbs('2010-11-05 14:00:00');
$saisie->setFinAbs('2010-11-05 15:00:00');
$saisie_col->append($saisie);
saveSetting('abs2_heure_demi_journee','12:50');
$this->assertEquals('12:00',AbsencesEleveSaisieHelper::compte_demi_journee($saisie_col)->getFirst()->format('H:i'));
saveSetting('abs2_heure_demi_journee','11:50');
//.........这里部分代码省略.........
示例13: getRetards
/**
*
* Retourne une collection contenant des saisies comptée comme retard pour le décompte officiel
*
* @param mixed $periode numeric or PeriodeNote value.
*
* @return PropelCollection AbsenceEleveSaisie[]
*/
public function getRetards($date_debut=null, $date_fin = null) {
if (($date_fin != null) && ($this->getDateSortie() != null && $this->getDateSortie('U') < $date_fin->format('U'))) {
$date_fin = $this->getDateSortie(null);
}
$abs_saisie_col = $this->getAbsenceEleveSaisiesParDate($date_debut, $date_fin);
if ($abs_saisie_col->isEmpty()) {
return new PropelCollection();
}
$result = new PropelCollection();
$abs_saisie_englobante = clone $abs_saisie_col;
//on va faire le décompte officiel des retard
foreach ($abs_saisie_col as $saisie) {
if ($saisie->getEleveId() != $this->getId()) {
continue;
}
if (!$saisie->getRetard() ||
!$saisie->getRetardEnglobante() ||
!$saisie->getManquementObligationPresence() ||
!$saisie->getManquementObligationPresenceEnglobante())
{
//on retire la saisie contrée de la liste de test des saisise possiblement englobante pour optimiser
$abs_saisie_englobante->remove($abs_saisie_englobante->search($saisie));
continue;
}
//on va regarder si il y a un retard plus global, pour n'en compter qu'un seul en non pas deux
$contra = false;
foreach ($abs_saisie_englobante as $saisie_contra) {
if ($saisie_contra->getEleveId() != $this->getId()) {
continue;
}
if ($saisie_contra->getId() != $saisie->getId()
&& $saisie->getDebutAbs('U') >= $saisie_contra->getDebutAbs('U')
&& $saisie->getFinAbs('U') <= $saisie_contra->getFinAbs('U')
&& !$saisie_contra->getManquementObligationPresenceSpecifie_NON_PRECISE())
{
//on a une saisie plus large
$contra = true;
break;
}
}
if (!$contra) {
$result->append($saisie);
} else {
//on retire la saisie contrée de la liste de test des saisise possiblement englobante pour optimiser
$abs_saisie_englobante->remove($abs_saisie_englobante->search($saisie));
}
}
//on va enlever les retards qui sont sur des périodes non ouvertes de l'établissement
require_once(dirname(__FILE__)."/../../../helpers/EdtHelper.php");
$result_final = new PropelCollection();
foreach ($result as $saisie) {
if (EdtHelper::isJourneeOuverte($saisie->getDebutAbs(null))
&& EdtHelper::isHoraireOuvert($saisie->getDebutAbs(null))) {
$result_final->append($saisie);
}
}
return $result_final;
}
示例14:
foreach ($edt_cours_col as $edt_cours) {
if ($edt_cours->getEdtCreneau() == NULL) {
//on affiche pas le cours si il n'est associé avec aucun creneau
continue;
}
if (getSettingValue("abs2_saisie_prof_decale") != 'y' && $utilisateur->getStatut() == "professeur") {
if ($edt_cours->getJourSemaineNumeric() != date('w')) {
//on affiche pas ce cours car il n'est pas aujourd'hui
continue;
}
if ($edt_cours->getTypeSemaine() != '' && $edt_cours->getTypeSemaine() != '0' && $edt_cours->getTypeSemaine() != $current_semaine->getTypeEdtSemaine()) {
//on affiche pas ce cours car il n'est pas aujourd'hui
continue;
}
}
$edt_cours_aff->append($edt_cours);
}
foreach ($edt_cours_col as $edt_cours) {
if ($edt_cours->getEdtCreneau() == NULL) {
//on affiche pas le cours si il n'est associé avec aucun creneau
continue;
}
if (getSettingValue("abs2_saisie_prof_decale") != 'y' && $utilisateur->getStatut() == "professeur") {
if ($edt_cours->getJourSemaineNumeric() != date('w')) {
//on affiche pas ce cours car il n'est pas aujourd'hui
continue;
}
if ($edt_cours->getTypeSemaine() != '' && $edt_cours->getTypeSemaine() != '0' && $edt_cours->getTypeSemaine() != $current_semaine->getTypeEdtSemaine()) {
//on affiche pas ce cours car il n'est pas aujourd'hui
continue;
}