/** * 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(); } }
/** * This is run before each unit test; it empties the database. */ protected function setUp() { GepiDataPopulator::depopulate($this->con); mysqli_query($GLOBALS["mysqli"], 'delete from setting'); mysqli_query($GLOBALS["mysqli"], 'delete from droits'); mysqli_query($GLOBALS["mysqli"], 'delete from droits_aid'); mysqli_query($GLOBALS["mysqli"], 'delete from aid_productions'); mysqli_query($GLOBALS["mysqli"], 'delete from edt_setting'); mysqli_query($GLOBALS["mysqli"], 'delete from lettres_tcs'); mysqli_query($GLOBALS["mysqli"], 'delete from etiquettes_formats'); mysqli_query($GLOBALS["mysqli"], 'delete from lettres_types'); mysqli_query($GLOBALS["mysqli"], 'delete from lettres_cadres'); mysqli_query($GLOBALS["mysqli"], 'delete from ct_types_documents'); mysqli_query($GLOBALS["mysqli"], 'delete from absences_motifs'); mysqli_query($GLOBALS["mysqli"], 'delete from model_bulletin'); mysqli_query($GLOBALS["mysqli"], 'delete from absences_actions'); $fd = fopen(dirname(__FILE__) ."/../../../../sql/data_gepi.sql", "r"); if (!$fd) { echo "Erreur : fichier sql/data_gepi.sql non trouve\n"; die; } while (!feof($fd)) { $query = fgets($fd, 5000); $query = trim($query); if((substr($query,-1)==";")&&(substr($query,0,3)!="-- ")) { $reg = mysqli_query($GLOBALS["mysqli"], $query); if (!$reg) { echo "ERROR : '$query' \n"; echo "Erreur retournée : ".mysqli_error($GLOBALS["mysqli"])."\n"; $result_ok = 'no'; } } } fclose($fd); loadSettings(); AbsenceEleveSaisiePeer::disableAgregation(); AbsenceEleveTraitementPeer::disableAgregation(); parent::setUp(); }
public function testDelete() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour(VENDREDI_s40j5)->getFirst(); //on va vérifier que le delete change bien le update_ad $old_updated_at = $saisie->getUpdatedAt('U'); sleep(1); $saisie->delete(); $this->assertGreaterThan($old_updated_at, $saisie->getUpdatedAt('U'), 'le delete doit changer le updated_ad'); $saisie = AbsenceEleveSaisieQuery::create()->filterByEleve($florence_eleve)->filterByDebutAbs(VENDREDI_s40j5.' 08:00:00')->findOne(); $this->assertNull($saisie); $saisie = AbsenceEleveSaisieQuery::create()->includeDeleted()->filterByEleve($florence_eleve)->filterByDebutAbs(VENDREDI_s40j5.' 08:00:00')->findOne(); $this->assertNotNull($saisie); AbsenceEleveSaisiePeer::enableAgregation(); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); $lebesgue_prof = UtilisateurProfessionnelQuery::create()->findOneByLogin('Lebesgue'); $saisie = new AbsenceEleveSaisie(); $saisie->setEleve($florence_eleve); $saisie->setUtilisateurProfessionnel($lebesgue_prof); $saisie->setDebutAbs(JEUDI_s38j4.' 08:00:00'); $saisie->setFinAbs(JEUDI_s38j4.' 09:00:00'); $saisie->save(); $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee(JEUDI_s38j4)->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); $saisie->getEleve()->clearAllReferences(); $saisie->delete(); $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee(JEUDI_s38j4)->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); }
include "visu_saisie.php"; die; } if ($saisie->getDeletedAt() != null) { $message_enregistrement .= '<span style="color:red">Cette saisie est supprimée. Vous devez la restaurer pour la modifier.</span>'; $temoin_erreur_saisie = "y"; include "visu_saisie.php"; die; } $saisie->toVersion($_GET["version"]); if ($saisie->isDeleted()) { $saisie->unDelete(); } else { AbsenceEleveSaisiePeer::disableVersioning(); $saisie->save(); AbsenceEleveSaisiePeer::enableVersioning(); } include "visu_saisie.php"; die; } elseif (isset($_POST["action"])) { if ($utilisateur->getStatut() == 'cpe' || $utilisateur->getStatut() == 'scolarite' || $utilisateur->getStatut() == 'professeur' && $saisie->getUtilisateurId() == $utilisateur->getPrimaryKey()) { //ok } else { $message_enregistrement .= '<span style="color:red">Modification non autorisée.</span>'; $temoin_erreur_saisie = "y"; include "visu_saisie.php"; die; } if ($_POST["action"] == 'suppression') { $saisie->delete(); } else {
/** * Method to invalidate the instance pool of all tables related to groupes * by a foreign key with ON DELETE CASCADE */ public static function clearRelatedInstancePool() { // Invalidate objects in JGroupesProfesseursPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JGroupesProfesseursPeer::clearInstancePool(); // Invalidate objects in JGroupesMatieresPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JGroupesMatieresPeer::clearInstancePool(); // Invalidate objects in JGroupesClassesPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JGroupesClassesPeer::clearInstancePool(); // Invalidate objects in CahierTexteCompteRenduPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. CahierTexteCompteRenduPeer::clearInstancePool(); // Invalidate objects in CahierTexteTravailAFairePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. CahierTexteTravailAFairePeer::clearInstancePool(); // Invalidate objects in CahierTexteNoticePriveePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. CahierTexteNoticePriveePeer::clearInstancePool(); // Invalidate objects in JEleveGroupePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JEleveGroupePeer::clearInstancePool(); // Invalidate objects in AbsenceEleveSaisiePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. AbsenceEleveSaisiePeer::clearInstancePool(); // Invalidate objects in CreditEctsPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. CreditEctsPeer::clearInstancePool(); // Invalidate objects in EdtEmplacementCoursPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. EdtEmplacementCoursPeer::clearInstancePool(); }
/** * Delete or soft delete all records, depending on AbsenceEleveSaisiePeer::$softDelete * * @param PropelPDO $con the connection to use * @return int The number of affected rows (if supported by underlying database driver). * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doDeleteAll(PropelPDO $con = null) { if (AbsenceEleveSaisiePeer::isSoftDeleteEnabled()) { return AbsenceEleveSaisiePeer::doSoftDeleteAll($con); } else { return AbsenceEleveSaisiePeer::doForceDeleteAll($con); } }
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(); }
/** * This is a method for emulating ON DELETE CASCADE for DBs that don't support this * feature (like MySQL or SQLite). * * This method is not very speedy because it must perform a query first to get * the implicated records and then perform the deletes by calling those Peer classes. * * This method should be used within a transaction if possible. * * @param Criteria $criteria * @param PropelPDO $con * @return int The number of affected rows (if supported by underlying database driver). */ protected static function doOnDeleteCascade(Criteria $criteria, PropelPDO $con) { // initialize var to track total num of affected rows $affectedRows = 0; // first find the objects that are implicated by the $criteria $objects = ElevePeer::doSelect($criteria, $con); foreach ($objects as $obj) { // delete related JEleveClasse objects $criteria = new Criteria(JEleveClassePeer::DATABASE_NAME); $criteria->add(JEleveClassePeer::LOGIN, $obj->getLogin()); $affectedRows += JEleveClassePeer::doDelete($criteria, $con); // delete related JEleveCpe objects $criteria = new Criteria(JEleveCpePeer::DATABASE_NAME); $criteria->add(JEleveCpePeer::E_LOGIN, $obj->getLogin()); $affectedRows += JEleveCpePeer::doDelete($criteria, $con); // delete related JEleveGroupe objects $criteria = new Criteria(JEleveGroupePeer::DATABASE_NAME); $criteria->add(JEleveGroupePeer::LOGIN, $obj->getLogin()); $affectedRows += JEleveGroupePeer::doDelete($criteria, $con); // delete related JEleveProfesseurPrincipal objects $criteria = new Criteria(JEleveProfesseurPrincipalPeer::DATABASE_NAME); $criteria->add(JEleveProfesseurPrincipalPeer::LOGIN, $obj->getLogin()); $affectedRows += JEleveProfesseurPrincipalPeer::doDelete($criteria, $con); // delete related EleveRegimeDoublant objects $criteria = new Criteria(EleveRegimeDoublantPeer::DATABASE_NAME); $criteria->add(EleveRegimeDoublantPeer::LOGIN, $obj->getLogin()); $affectedRows += EleveRegimeDoublantPeer::doDelete($criteria, $con); // delete related ResponsableInformation objects $criteria = new Criteria(ResponsableInformationPeer::DATABASE_NAME); $criteria->add(ResponsableInformationPeer::ELE_ID, $obj->getEleId()); $affectedRows += ResponsableInformationPeer::doDelete($criteria, $con); // delete related JEleveAncienEtablissement objects $criteria = new Criteria(JEleveAncienEtablissementPeer::DATABASE_NAME); $criteria->add(JEleveAncienEtablissementPeer::ID_ELEVE, $obj->getId()); $affectedRows += JEleveAncienEtablissementPeer::doDelete($criteria, $con); // delete related JAidEleves objects $criteria = new Criteria(JAidElevesPeer::DATABASE_NAME); $criteria->add(JAidElevesPeer::LOGIN, $obj->getLogin()); $affectedRows += JAidElevesPeer::doDelete($criteria, $con); // delete related AbsenceEleveSaisie objects $criteria = new Criteria(AbsenceEleveSaisiePeer::DATABASE_NAME); $criteria->add(AbsenceEleveSaisiePeer::ELEVE_ID, $obj->getId()); $affectedRows += AbsenceEleveSaisiePeer::doDelete($criteria, $con); // delete related AbsenceAgregationDecompte objects $criteria = new Criteria(AbsenceAgregationDecomptePeer::DATABASE_NAME); $criteria->add(AbsenceAgregationDecomptePeer::ELEVE_ID, $obj->getId()); $affectedRows += AbsenceAgregationDecomptePeer::doDelete($criteria, $con); // delete related CreditEcts objects $criteria = new Criteria(CreditEctsPeer::DATABASE_NAME); $criteria->add(CreditEctsPeer::ID_ELEVE, $obj->getId()); $affectedRows += CreditEctsPeer::doDelete($criteria, $con); // delete related CreditEctsGlobal objects $criteria = new Criteria(CreditEctsGlobalPeer::DATABASE_NAME); $criteria->add(CreditEctsGlobalPeer::ID_ELEVE, $obj->getId()); $affectedRows += CreditEctsGlobalPeer::doDelete($criteria, $con); // delete related ArchiveEcts objects $criteria = new Criteria(ArchiveEctsPeer::DATABASE_NAME); $criteria->add(ArchiveEctsPeer::INE, $obj->getNoGep()); $affectedRows += ArchiveEctsPeer::doDelete($criteria, $con); } return $affectedRows; }
/** * Method to invalidate the instance pool of all tables related to a_lieux * by a foreign key with ON DELETE CASCADE */ public static function clearRelatedInstancePool() { // Invalidate objects in AbsenceEleveTypePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. AbsenceEleveTypePeer::clearInstancePool(); // Invalidate objects in AbsenceEleveSaisiePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. AbsenceEleveSaisiePeer::clearInstancePool(); }
/** * Disables versioning */ public static function disableAgregation() { self::$isAgregationEnabled = false; }
/** * Bypass the soft_delete behavior and force a hard delete of all the rows * * @param PropelPDO $con an optional connection object * * @return int Number of deleted rows */ public function forceDeleteAll(PropelPDO $con = null) { return AbsenceEleveSaisiePeer::doForceDeleteAll($con);}
/** * Checks whether the current state must be recorded as a version * * @return boolean */ public function isVersioningNecessary($con = null) { if ($this->alreadyInSave) { return false; } if (AbsenceEleveSaisiePeer::isVersioningEnabled() && ($this->isNew() || $this->isModified())) { return true; } return false; }
/** * Selects a collection of AbsenceEleveSaisieVersion objects pre-filled with all related objects. * * @param Criteria $criteria * @param PropelPDO $con * @param String $join_behavior the type of joins to use, defaults to Criteria::LEFT_JOIN * @return array Array of AbsenceEleveSaisieVersion objects. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doSelectJoinAll(Criteria $criteria, $con = null, $join_behavior = Criteria::LEFT_JOIN) { $criteria = clone $criteria; // Set the correct dbName if it has not been overridden if ($criteria->getDbName() == Propel::getDefaultDB()) { $criteria->setDbName(self::DATABASE_NAME); } AbsenceEleveSaisieVersionPeer::addSelectColumns($criteria); $startcol2 = AbsenceEleveSaisieVersionPeer::NUM_HYDRATE_COLUMNS; AbsenceEleveSaisiePeer::addSelectColumns($criteria); $startcol3 = $startcol2 + AbsenceEleveSaisiePeer::NUM_HYDRATE_COLUMNS; $criteria->addJoin(AbsenceEleveSaisieVersionPeer::ID, AbsenceEleveSaisiePeer::ID, $join_behavior); $stmt = BasePeer::doSelect($criteria, $con); $results = array(); while ($row = $stmt->fetch(PDO::FETCH_NUM)) { $key1 = AbsenceEleveSaisieVersionPeer::getPrimaryKeyHashFromRow($row, 0); if (null !== ($obj1 = AbsenceEleveSaisieVersionPeer::getInstanceFromPool($key1))) { // We no longer rehydrate the object, since this can cause data loss. // See http://www.propelorm.org/ticket/509 // $obj1->hydrate($row, 0, true); // rehydrate } else { $cls = AbsenceEleveSaisieVersionPeer::getOMClass(false); $obj1 = new $cls(); $obj1->hydrate($row); AbsenceEleveSaisieVersionPeer::addInstanceToPool($obj1, $key1); } // if obj1 already loaded // Add objects for joined AbsenceEleveSaisie rows $key2 = AbsenceEleveSaisiePeer::getPrimaryKeyHashFromRow($row, $startcol2); if ($key2 !== null) { $obj2 = AbsenceEleveSaisiePeer::getInstanceFromPool($key2); if (!$obj2) { $cls = AbsenceEleveSaisiePeer::getOMClass(false); $obj2 = new $cls(); $obj2->hydrate($row, $startcol2); AbsenceEleveSaisiePeer::addInstanceToPool($obj2, $key2); } // if obj2 loaded // Add the $obj1 (AbsenceEleveSaisieVersion) to the collection in $obj2 (AbsenceEleveSaisie) $obj2->addAbsenceEleveSaisieVersion($obj1); } // if joined row not null $results[] = $obj1; } $stmt->closeCursor(); return $results; }
/** * Method to invalidate the instance pool of all tables related to classes * by a foreign key with ON DELETE CASCADE */ public static function clearRelatedInstancePool() { // Invalidate objects in PeriodeNotePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. PeriodeNotePeer::clearInstancePool(); // Invalidate objects in JScolClassesPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JScolClassesPeer::clearInstancePool(); // Invalidate objects in JGroupesClassesPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JGroupesClassesPeer::clearInstancePool(); // Invalidate objects in JEleveClassePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JEleveClassePeer::clearInstancePool(); // Invalidate objects in AbsenceEleveSaisiePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. AbsenceEleveSaisiePeer::clearInstancePool(); // Invalidate objects in JCategoriesMatieresClassesPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JCategoriesMatieresClassesPeer::clearInstancePool(); }
/** * Method to invalidate the instance pool of all tables related to aid * by a foreign key with ON DELETE CASCADE */ public static function clearRelatedInstancePool() { // Invalidate objects in JAidUtilisateursProfessionnelsPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JAidUtilisateursProfessionnelsPeer::clearInstancePool(); // Invalidate objects in JAidElevesPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. JAidElevesPeer::clearInstancePool(); // Invalidate objects in AbsenceEleveSaisiePeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. AbsenceEleveSaisiePeer::clearInstancePool(); // Invalidate objects in EdtEmplacementCoursPeer instance pool, // since one or more of them may be deleted by ON DELETE CASCADE/SETNULL rule. EdtEmplacementCoursPeer::clearInstancePool(); }
/** * 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) { AbsenceEleveSaisiePeer::disableVersioning(); $utilisateur = UtilisateurProfessionnelPeer::getUtilisateursSessionEnCours(); if ($utilisateur != null) { $this->setDeletedBy($utilisateur->getLogin()); } $this->setUpdatedAt('now'); parent::delete($con); AbsenceEleveSaisiePeer::enableVersioning(); }