Esempio n. 1
0
 /**
  * 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) && null === $queryBuilder->getDataCell(static::CALCULATED_FIELD_FLAG . $name)) {
         $value = $this->{$method}($queryBuilder, $queryBuilder->getRootAlias());
         $queryBuilder->addSelect($value . ' calculated' . $uname);
         $queryBuilder->setDataStorage(static::CALCULATED_FIELD_FLAG . $name, $value);
     }
     return $queryBuilder;
 }