/** * Assign calculated field * * @param \XLite\Model\QueryBuilder\AQueryBuilder $queryBuilder Query builder * @param string $name Field name * * @return \XLite\Model\QueryBuilder\AQueryBuilder */ protected function assignCalculatedField(\XLite\Model\QueryBuilder\AQueryBuilder $queryBuilder, $name) { $uname = ucfirst($name); $method = 'defineCalculated' . $uname . 'DQL'; if (method_exists($this, $method) && !$queryBuilder->getFlag('calculated.' . $name)) { $alias = $alias ?: $queryBuilder->getRootAlias(); $queryBuilder->addSelect($this->{$method}($queryBuilder, $alias) . ' calculated' . $uname); $queryBuilder->setFlag('calculated.' . $name, true); } return $queryBuilder; }