Prepare parameters. $selection = array( 'adherence', 'stock' ); $join = array(); $leftJion = array(); $where = array('stock.id is null'); $params = array(); $query = 'SELECT [SELECTION] ' . 'FROM \Adherence\Entity\Adherence adherence ' . 'LEFT JOIN adherence.stock stock ' . '[WHERE] '; //. 'ORDER BY adherence.id ASC, auction.id ASC'; #-> Construct details. $authData = \Utility\Registry::getAuthData(); if (isset($this->_input['dateFrom']) && !empty($this->_input['dateFrom'])) { $this->_queries['Date Range From'] = $this->_input['dateFrom']; $where[] = 'adherence.dateSold >= :dateFrom'; $params['dateFrom'] = new \DateTime($this->_input['dateFrom']); } if (isset($this->_input['dateTo']) && !empty($this->_input['dateTo'])) { $this->_queries['Date Range Until'] = $this->_input['dateTo']; $where[] = 'adherence.dateSold <= :dateTo'; $params['dateTo'] = new \DateTime($this->_input['dateTo'] . ' 23:59:59'); } #-> Finalize query. $query = str_replace(array( '[SELECTION]', '[WHERE]' ), array( implode(', ', $selection) . ' ', !empty($where) ? 'WHERE ' . implode(' AND ', $where) . ' ' : ' ' ), $query); #-> Collect data. $query = $this->em->createQuery($query); !empty($params) && $query->setParameters($params); $data = $query->getScalarResult(); $this->em->clear(); //\Utility\Debug::errorLog('data', $data); //var_dump($data); //exit(); foreach ($data as $id => $row) { $this->_data[] = array( 'invoicenumber' => '', 'stocknumber' => $row['adherence_stockNumber'], 'make' => $row['adherence_make'], 'vin' => $row['adherence_vinNumber'], 'registration' => $row['adherence_registrationNumber'], 'engine' => $row['adherence_engineNumber'], 'saledate' => $row['adherence_dateSold'], 'standingvalue' => $row['adherence_amount'], 'invoiced' => '', 'soldto' => $row['adherence_soldTo'] ); } } }