/**
  * @param Mana_Db_Model_Formula_Context $context
  * @param Mana_Db_Model_Formula_Entity $entity
  */
 public function select($context, $entity)
 {
     switch ($context->getMode()) {
         default:
             if (!$context->hasAlias($entity->getAlias()->asString(0))) {
                 /* @var $resource Mana_Db_Resource_Formula */
                 $resource = Mage::getResourceSingleton('mana_db/formula');
                 /* @var $dbHelper Mana_Db_Helper_Data */
                 $dbHelper = Mage::helper('mana_db');
                 /* @var $joinClosure Mana_Db_Model_Formula_Closure_ForeignJoinEnd */
                 $joinClosure = Mage::getModel('mana_db/formula_closure_foreignJoinEnd', compact('context', 'entity'));
                 $context->getAlias()->each($joinClosure);
             }
             $context->setEntity($entity->getEntity())->setProcessor($entity->getProcessor())->setAlias($entity->getAlias())->setEntityHelper($this);
             break;
     }
 }
 /**
  *
  * @param Mana_Db_Model_Formula_Context $context
  * @param Mana_Db_Model_Formula_Entity $entity
  */
 public function select($context, $entity)
 {
     switch ($context->getMode()) {
         default:
             $context->setMode($this->getName())->setEntityHelper($this);
             /* @var $resource Mana_Db_Resource_Formula */
             $resource = Mage::getResourceSingleton('mana_db/formula');
             /* @var $dbHelper Mana_Db_Helper_Data */
             $dbHelper = Mage::helper('mana_db');
             foreach ($entity->getAggregateFields() as $field) {
                 if (!$context->hasAlias($field['alias'])) {
                     $context->getSelect()->joinLeft(array($context->registerAlias($field['alias']) => $resource->getTable($dbHelper->getScopedName($field['entity']))), $context->resolveAliases($field['join']), null);
                 }
             }
             $context->setEntity($entity->getEntity())->setProcessor($entity->getProcessor())->setAlias($entity->getAlias());
             break;
     }
 }