diff --git a/workflow/engine/classes/model/AdditionalTables.php b/workflow/engine/classes/model/AdditionalTables.php index a3e79598d..b63df3dbf 100755 --- a/workflow/engine/classes/model/AdditionalTables.php +++ b/workflow/engine/classes/model/AdditionalTables.php @@ -108,12 +108,12 @@ class AdditionalTables extends BaseAdditionalTables $oDataset = FieldsPeer::doSelectRS($oCriteria); $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); - while ($oDataset->next()) { - $auxField = $oDataset->getRow(); - if ($auxField['FLD_TYPE'] == 'TIMESTAMP') { - $auxField['FLD_TYPE'] = 'DATETIME'; - } - $this->fields[] = $auxField; + while ($oDataset->next()) { + $auxField = $oDataset->getRow(); + if ($auxField['FLD_TYPE'] == 'TIMESTAMP') { + $auxField['FLD_TYPE'] = 'DATETIME'; + } + $this->fields[] = $auxField; } return $this->fields; @@ -396,30 +396,26 @@ class AdditionalTables extends BaseAdditionalTables eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);'); if ($filter != '' && is_string($filter)) { - $stringOr = '$oCriteria->add('; + $stringOr = ''; $closure = ''; - $compare = ''; $types = array('INTEGER', 'BIGINT', 'SMALLINT', 'TINYINT', 'DECIMAL', 'DOUBLE', 'FLOAT', 'REAL'); foreach ($aData['FIELDS'] as $aField) { if ($aField['FLD_NAME'] != 'APP_UID') { - $compare = '"%' . $filter . '%", Criteria::LIKE'; - if (in_array($aField['FLD_TYPE'], $types)) { if (is_numeric($filter)) { - $compare = '"' . $filter . '", Criteria::EQUAL'; - } else { - $compare = 'null, Criteria::ISNULL'; + $stringOr = $stringOr . '$a = $oCriteria->getNewCriterion(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ', "' . $filter . '", Criteria::EQUAL)' . $closure . ';'; + $closure = '->addOr($a)'; } + } else { + $stringOr = $stringOr . '$a = $oCriteria->getNewCriterion(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ', "%' . $filter . '%", Criteria::LIKE)' . $closure . ';'; + $closure = '->addOr($a)'; } - - $stringOr = $stringOr . '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ', ' . $compare . ')->addOr('; - $closure = $closure . ")"; } } - $stringOr = rtrim($stringOr, '->addOr(') . $closure . ';'; + $stringOr = $stringOr . '$oCriteria->add($a);'; eval($stringOr); - $oCriteriaCount = clone $oCriteria; + $oCriteriaCount = clone $oCriteria; eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);'); }