{$from_id} "; } if(!is_null($from_date)) { $str_date = $from_date->format("Y-m-d H:i:s"); // CDT TO UTC $filters .= " AND CONVERT_TZ(SummitEntityEvent.Created,'America/Chicago', 'GMT') >= '{$str_date}' "; } $query = << 'MySchedule' AND EntityClassName <> 'SummitAttendee' AND EntityClassName <> 'MyFavorite') -- GLOBAL TRUNCATE OR (EntityClassName = 'WipeData' AND EntityID = 0) ) AND SummitID = {$summit->getId()} {$filters} LIMIT {$limit} ) AS GLOBAL_EVENTS SQL; if(!is_null($member_id)){ $query .= <<getId()} {$filters} LIMIT {$limit} ) AS MY_SCHEDULE UNION SELECT * FROM ( SELECT * FROM SummitEntityEvent WHERE ( EntityClassName = 'WipeData' AND EntityID = {$member_id} ) AND SummitID = {$summit->getId()} {$filters} LIMIT {$limit} ) AS USER_WIPE_DATA SQL; } $query .= <<getEntityManager()); $rsm->addRootEntityFromClassMetadata(\models\summit\SummitEntityEvent::class, 'e'); // build rsm here $native_query = $this->getEntityManager()->createNativeQuery($query, $rsm); $entity_events = $native_query->getResult(); if($detach) $this->getEntityManager() ->clear(\models\summit\SummitEntityEvent::class); return $entity_events; } /** * @param Summit $summit * @return int */ public function getLastEntityEventId(Summit $summit) { $query = <<getId()} ORDER BY ID DESC LIMIT 1; SQL; return intval($this->getEntityManager()->getConnection()->executeQuery($query)->fetchColumn(0)); } /** * @return string */ protected function getBaseEntity() { return SummitEntityEvent::class; } }