Example #1
0
 /**
  * Overrides the delete method to delete the associated tasks and the sharings
  * 
  * @see        parent::delete()
  * @param      PropelPDO Optional Connection object.
  * @return     PcList
  */
 public function delete(PropelPDO $con = null)
 {
     // deleting all the tasks related to the list
     $tasksCriteria = new Criteria();
     $tasksCriteria->add(PcTaskPeer::LIST_ID, $this->getId(), Criteria::EQUAL);
     $tasks = PcTaskPeer::doSelect($tasksCriteria);
     foreach ($tasks as $task) {
         $task->delete();
     }
     // deleting all the sharing related to the list
     $sharingsCriteria = new Criteria();
     $sharingsCriteria->add(PcTaskPeer::LIST_ID, $this->getId(), Criteria::EQUAL);
     $sharings = PcTaskPeer::doSelect($sharingsCriteria);
     foreach ($sharings as $sharing) {
         $sharing->delete();
     }
     $this->clearRelevantCache();
     $con = Propel::getConnection();
     $ret = null;
     try {
         $con->beginTransaction();
         $this->copyObjectToTrashBin();
         $ret = parent::delete($con);
         $con->commit();
     } catch (Exception $e) {
         $con->rollback();
         throw $e;
     }
     return $ret;
 }