public function getByItinerary(\Buggl\MainBundle\Entity\Itinerary $itinerary, $period_of_day = 0, $limit = 0, $offset = 0) { $sql = "SELECT itsd.* \n\t\t\t\t\tFROM itinerary_to_spot_detail itsd\n\t\t\t\t\tWHERE 1\n\t\t\t\t\t\tAND itsd.itinerary_id = ?\n\t\t\t\t\t\tAND itsd.period_of_day = ?\n\t\t\t\t\t"; if ($limit > 0) { $sql .= "LIMIT ?, ?"; $params = array($itinerary->getId(), $period_of_day, $offset, $limit); } else { $params = array($itinerary->getId(), $period_of_day); } $em = $this->getEntityManager(); $rsm = new ResultSetMappingBuilder($em); $rsm->addRootEntityFromClassMetadata('BugglMainBundle:ItineraryToSpotDetail', 'itsd'); $query = $this->_em->createNativeQuery($sql, $rsm); $query->setParameters($params); $result = $query->getResult(); return $result; }
private function addToItinerary($eguide, $spotDetail, $egts) { $itinerary = $this->_em->getRepository('BugglMainBundle:Itinerary')->findOneBy(array('e_guide' => $eguide, 'day_num' => $egts->getDayNum())); if (!$itinerary) { $itinerary = new Itinerary(); $itinerary->setEGuide($eguide); $itinerary->setDayNum($egts->getDayNum()); $this->_em->persist($itinerary); $this->_em->flush(); } $obj = $this->_em->getRepository('BugglMainBundle:ItineraryToSpotDetail')->findOneBy(array('itinerary' => $itinerary, 'spotDetail' => $spotDetail)); if (!$obj) { $lastOrder = $this->_em->getRepository('BugglMainBundle:ItineraryToSpotDetail')->getLastOrderByItineraryAndPeriodOfDay($itinerary, $egts->getPeriodOfDay()); $order = $lastOrder ? (int) $lastOrder[0]->getOrder() + 1 : 1; $obj = new ItineraryToSpotDetail(); $obj->setItinerary($itinerary); $obj->setSpotDetail($spotDetail); $obj->setPeriodOfDay($egts->getPeriodOfDay()); $obj->setOrder($order); $obj->setDateAdded($spotDetail->getDateAdded()); $this->_em->persist($obj); $this->_em->flush(); } }
/** * * function that creates itinerary */ public function createItineraryAction(Request $request) { $slug = $request->get('guide_slug'); $eguide = $this->getDoctrine()->getRepository('BugglMainBundle:EGuide')->findOneBySlug($slug); if (!is_null($eguide)) { $itinerary = new Itinerary(); $itinerary->setEGuide($eguide); $itinerary->setDayNum(1); $em = $this->getDoctrine()->getEntityManager(); $em->persist($itinerary); $em->flush(); // set eguide real_duration $eguide->setRealDuration(1); $em->persist($eguide); $em->flush(); $response = array("message" => "Itinerary successfully created!", "status" => TRUE); return new JsonResponse($response, 200); } $response = array("message" => "An error was encountered when trying to initialize your itinerary!", "status" => FALSE); return new JsonResponse($response, 200); }
private function checkItineraryDayCount($eguide, $daynum) { if ($daynum > 0) { $itinerary = $this->getDoctrine()->getRepository('BugglMainBundle:Itinerary')->findOneBy(array('e_guide' => $eguide, 'day_num' => $daynum)); if (!$itinerary) { // echo 'try and save itinerary'; $itinerary = new Itinerary(); $itinerary->setEGuide($eguide); $itinerary->setDayNum($daynum); $em = $this->getDoctrine()->getEntityManager(); $em->persist($itinerary); $em->flush(); } } }
public function getByItinerary(\Buggl\MainBundle\Entity\Itinerary $itinerary = null) { $em = $this->getEntityManager(); $rsm = new ResultSetMappingBuilder($em); $rsm->addRootEntityFromClassMetadata('BugglMainBundle:SpotDetail', 'sd'); $sql = "SELECT sd.* FROM spot_detail AS sd \n\t\t\t\t\tLEFT JOIN itinerary_to_spot_detail AS itsd \n\t\t\t\t\tON itsd.spot_detail_id = sd.id \n\t\t\t\tWHERE 1\n\t\t\t\t\tAND itsd.itinerary_id = ?\n\t\t\t\tORDER BY itsd.period_of_day, itsd.`order` ASC"; $query = $em->createNativeQuery($sql, $rsm); $query->setParameters(array($itinerary->getID())); // $query->setParameter(1, 34); $spotDetails = $query->getResult(); return $spotDetails; }