/** * 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'); }
/** * 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; }