Пример #1
0
 /**
  * @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)');
     }
 }
Пример #2
0
 /**
  * @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);
 }
Пример #4
0
 /**
  * @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());
 }
Пример #5
0
 /**
  * @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());
 }