Пример #1
0
	/**
	 * Code to be run after deleting the object in database
	 * @param PropelPDO $con
	 */
	public function postDelete(PropelPDO $con = null) {
		$traitement = $this->getAbsenceEleveTraitement();
		if ($traitement != null && !$traitement->getAlreadyInSave()) {
			$traitement->setUpdatedAt('now'); //au lieu d'utiliser un champ supplémentaire pour la date de mise à jours des jointures entre saisies et traitement, on précise la date de mise à jour des jointure dans le traitement directement
			$traitement->save();
		}
		$saisie = $this->getAbsenceEleveSaisie();
		if ($saisie != null && $saisie->getEleve() != null && !$saisie->getAlreadyInSave() && AbsenceEleveSaisiePeer::isAgregationEnabled()) {
			$saisie->getEleve()->clearAbsenceEleveSaisiesParJour();
			$saisie->updateSynchroAbsenceAgregationTable();
			$saisie->checkAndUpdateSynchroAbsenceAgregationTable();
		}
	}
Пример #2
0
	/**
	 * Disables versioning
	 */
	public static function disableAgregation()
	{
		self::$isAgregationEnabled = false;
	}
Пример #3
0
	/**
	 * Code to be run after persisting the object
	 * @param PropelPDO $con
	 */
	public function postSave(PropelPDO $con = null) { 
		if (AbsenceEleveSaisiePeer::isAgregationEnabled() && $this->getEleve() != null) {
			//on va mettre à jour la table d'agrégation pour cet élève. Il faut mettre à jour cette table
			//sur les date de l'ancienne version et de la nouvelle version
			$oldDebutAbs = null;
			$oldFinAbs = null;
			//si $oldVersionNumber = 0 c'est qu'il n'y avait pas d'ancienne version
			if ($this->oldVersion != 0 && $this->oldVersion != $this->version) {
				$oldVersionObject = $this->getOneVersion($this->oldVersion);
				if ($oldVersionObject != null) {
					$oldDebutAbs = $oldVersionObject->getDebutAbs(null);
					$oldFinAbs = $oldVersionObject->getFinAbs(null);
				}
			}
			
			if ($oldDebutAbs != null && $oldDebutAbs->format('U') < $this->getDebutAbs('U')) {
				$debut = $oldDebutAbs;
			} else {
				$debut = $this->getDebutAbs(null);
			}
			
			if ($oldFinAbs != null && $oldFinAbs->format('U') > $this->getFinAbs('U')) {
				$fin = $oldFinAbs;
			} else {
				$fin = $this->getFinAbs(null);
			}
			$this->getEleve()->clearAbsenceEleveSaisiesParJour();
			$this->getEleve()->updateAbsenceAgregationTable($debut,$fin);
			$this->getEleve()->checkAndUpdateSynchroAbsenceAgregationTable($debut,$fin);
		}
	}