public function getQuery($forceNew = false)
{
// init
$select = $this->db->select();
// create base
$field = $this->getTableName() . ".o_id";
$select->from([$this->getTableName()], [new \Zend_Db_Expr(sprintf('SQL_CALC_FOUND_ROWS %s as o_id', $this->getSelectPart($field, $field))), 'o_type']);
// add joins
$this->addJoins($select);
// add condition
$this->addConditions($select);
// group by
$this->addGroupBy($select);
// order
$this->addOrder($select);
// limit
$this->addLimit($select);
if ($this->onCreateQueryCallback) {
$closure = $this->onCreateQueryCallback;
$closure($select);
}
return $select;
}