/**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
 public function executeIndex(sfWebRequest $requets)
 {
     $this->corroborarReservas();
     $consulta = PeliculaQuery::create();
     $consulta->filterByEstreno(true);
     if (!$this->getUser()->isAuthenticated()) {
         //si no esta autenticado, no puede ver ls XXX
         $consulta->filterByCategoriaId(8, Criteria::ALT_NOT_EQUAL);
     } else {
         //si esta autenticado pero es menor de 18 no ve las XXX
         if ($this->getUser()->getAttribute('edad') < 18) {
             $consulta->filterByCategoriaId(8, Criteria::ALT_NOT_EQUAL);
         }
     }
     $this->peliculas_estrenos = $consulta->find();
 }
 /**
  * Get the associated Pelicula object
  *
  * @param      PropelPDO Optional Connection object.
  * @return     Pelicula The associated Pelicula object.
  * @throws     PropelException
  */
 public function getPelicula(PropelPDO $con = null)
 {
     if ($this->aPelicula === null && $this->pelicula_id !== null) {
         $this->aPelicula = PeliculaQuery::create()->findPk($this->pelicula_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->aPelicula->addSocioAlquilers($this);
         		 */
     }
     return $this->aPelicula;
 }
 public function executeDelete(sfWebRequest $request)
 {
     $request->checkCSRFProtection();
     $Pelicula = PeliculaQuery::create()->findPk($request->getParameter('id'));
     $this->forward404Unless($Pelicula, sprintf('Object Pelicula does not exist (%s).', $request->getParameter('id')));
     $Pelicula->delete();
     $this->redirect('pelicula/index');
 }
Exemple #4
0
 /**
  * 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(PeliculaPeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
     }
     $con->beginTransaction();
     try {
         $deleteQuery = PeliculaQuery::create()->filterByPrimaryKey($this->getPrimaryKey());
         $ret = $this->preDelete($con);
         // symfony_behaviors behavior
         foreach (sfMixer::getCallables('BasePelicula:delete:pre') as $callable) {
             if (call_user_func($callable, $this, $con)) {
                 $con->commit();
                 return;
             }
         }
         if ($ret) {
             $deleteQuery->delete($con);
             $this->postDelete($con);
             // symfony_behaviors behavior
             foreach (sfMixer::getCallables('BasePelicula:delete:post') as $callable) {
                 call_user_func($callable, $this, $con);
             }
             $con->commit();
             $this->setDeleted(true);
         } else {
             $con->commit();
         }
     } catch (Exception $e) {
         $con->rollBack();
         throw $e;
     }
 }
 /**
  * If this collection has already been initialized with
  * an identical criteria, it returns the collection.
  * Otherwise if this EstadoPelicula is new, it will return
  * an empty collection; or if this EstadoPelicula has previously
  * been saved, it will retrieve related Peliculas from storage.
  *
  * This method is protected by default in order to keep the public
  * api reasonable.  You can provide public methods for those you
  * actually need in EstadoPelicula.
  *
  * @param      Criteria $criteria optional Criteria object to narrow the query
  * @param      PropelPDO $con optional connection object
  * @param      string $join_behavior optional join type to use (defaults to Criteria::LEFT_JOIN)
  * @return     PropelCollection|array Pelicula[] List of Pelicula objects
  */
 public function getPeliculasJoinCategoria($criteria = null, $con = null, $join_behavior = Criteria::LEFT_JOIN)
 {
     $query = PeliculaQuery::create(null, $criteria);
     $query->joinWith('Categoria', $join_behavior);
     return $this->getPeliculas($query, $con);
 }
 public function executeAlquilarPeliculas(sfWebRequest $request)
 {
     //obtengo socio y todas las peliculas que alquila
     $peliculasId = array();
     $peliculasId = $request->getParameter("id_pelis");
     $socio = $request->getParameter("id_socio");
     //calculo precio total
     $total_a_cobrar = sizeof($peliculasId) * 8;
     //corroboro que las peliculas esten todas libres
     $todo_bien = true;
     foreach ($peliculasId as $peli_id) {
         if ($this->peliculaAlquilada($peli_id)) {
             $todo_bien = false;
         }
     }
     if ($todo_bien) {
         //cargo el alquiler en la base
         $alquiler = new Alquiler();
         $alquiler->setFechaAlquiler(date("d-m-Y"));
         $alquiler->setTotalACobrar($total_a_cobrar);
         $alquiler->setSocioId($socio);
         $alquiler->save();
         //capturo el id de la reserva
         $id_alquiler = $alquiler->getId();
         foreach ($peliculasId as $peli_id) {
             //cargo el alquiler en socio_alquiler
             $socio_alquiler = new SocioAlquiler();
             $socio_alquiler->setAlquilerId($id_alquiler);
             $socio_alquiler->setPeliculaId($peli_id);
             $socio_alquiler->save();
             //marco las peliculas como alquiladas
             $pelicula_alquilada = PeliculaQuery::create()->filterById($peli_id)->update(array('Estado' => 3));
             //marco la reserva como alquilada
             $reserva = ReservasQuery::create()->filterByPeliculaId($peli_id)->filterBySocioId($socio)->filterByAlquilada(false)->filterByExpiroReserva(false)->update(array('Alquilada' => true));
             $this->mje = "Las peliculas: se alquilaron correctamente!!";
         }
     } else {
         $this->mje = "Las peliculas NO se alquilaron!!";
         return sfView::ERROR;
     }
 }
 /**
  * Returns a new PeliculaQuery object.
  *
  * @param     string $modelAlias The alias of a model in the query
  * @param     Criteria $criteria Optional Criteria to build the query from
  *
  * @return    PeliculaQuery
  */
 public static function create($modelAlias = null, $criteria = null)
 {
     if ($criteria instanceof PeliculaQuery) {
         return $criteria;
     }
     $query = new PeliculaQuery();
     if (null !== $modelAlias) {
         $query->setModelAlias($modelAlias);
     }
     if ($criteria instanceof Criteria) {
         $query->mergeWith($criteria);
     }
     return $query;
 }