/** * @param Mana_Db_Model_Formula_Expr $expr1 * @param Mana_Db_Model_Formula_Expr $expr2 */ public function binaryCast(&$expr1, &$expr2) { /* @var $formulaHelper Mana_Db_Helper_Formula */ $formulaHelper = Mage::helper('mana_db/formula'); if ($formulaHelper->getType($expr1->getType()) == 'string' || $formulaHelper->getType($expr2->getType()) == 'string') { $expr1 = $this->cast($expr1, 'varchar(255)'); $expr2 = $this->cast($expr2, 'varchar(255)'); } }
/** * @param Mana_Db_Model_Formula_Context $context * @param Mana_Db_Model_Formula_Node_Field $formula * @param Mana_Db_Model_Formula_Expr $expr */ public function selectField($context, $formula, $expr) { foreach ($context->getSelect()->getPart(Varien_Db_Select::COLUMNS) as $column) { if ($column[2] == $expr->getFieldName()) { $expr->setExpr($column[1]); return; } } throw new Mana_Db_Exception_Formula($this->__("Field '%s' referenced in field '%s' is not defined.", $expr->getFieldName(), $context->getField()->getName())); }
/** * @param Mana_Db_Model_Formula_Context $context * @param Mana_Db_Model_Formula_Node_Field $formula * @param Mana_Db_Model_Formula_Expr $expr */ public function selectField($context, $formula, $expr) { $expr->setIsAggregate(true); }
/** * @param Mana_Db_Model_Formula_Context $context * @param Mana_Db_Model_Formula_Node_Field $formula * @param Mana_Db_Model_Formula_Expr $expr */ public function selectField($context, $formula, $expr) { $expr->setIsAggregate(true)->setSubSelect($context->getAggregateContext()->getSelect()); }
/** * @param Mana_Db_Model_Formula_Context $context * @param Mana_Db_Model_Formula_Node_Field $formula * @param Mana_Db_Model_Formula_Expr $expr */ public function selectField($context, $formula, $expr) { $expr->setIsFrontend(true)->setExpr("'{{= {$formula->__toString()} }}'")->setType('varchar(255'); }
/** * @param Mana_Db_Model_Formula_Context $context * @param Mana_Db_Model_Formula_Node_Field $formula * @param Mana_Db_Model_Formula_Expr $expr */ public function selectField($context, $formula, $expr) { $expr->setExpr($expr->getFieldExpr()); }