Merge pull request #2258 from gproly/BUG-13748

BUG-13748 SOLVED En la sección: ADMIN / PM Tables / {seleccionar algún R...
This commit is contained in:
julceslauhub
2014-01-29 08:59:41 -08:00

View File

@@ -371,9 +371,21 @@ class AdditionalTables extends BaseAdditionalTables
$oCriteria = new Criteria($aData['DBS_UID']);
//eval('$oCriteria->addSelectColumn("\'1\' AS DUMMY");');
/*
* data type:
* 'INTEGER' 'BIGINT' 'SMALLINT' 'TINYINT' 'DECIMAL' 'DOUBLE' 'FLOAT' 'REAL'
* 'CHAR' 'VARCHAR' 'LONGVARCHAR' 'BOOLEAN' 'DATE' 'DATETIME' 'TIME'
*/
$types = array('DECIMAL', 'DOUBLE', 'FLOAT', 'REAL');
if ($keyOrderUppercase == true) {
foreach ($aData['FIELDS'] as $aField) {
eval('$oCriteria->addSelectColumn(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ');');
$field = '$oCriteria->addSelectColumn(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ');';
if (in_array($aField['FLD_TYPE'], $types)) {
$field = '$oCriteria->addAsColumn("' . $aField['FLD_NAME'] . '", "round(" . ' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ' . ", 2)" );';
}
eval($field);
/*if ($aField['FLD_KEY'] == '1') {
eval('$oCriteria->addAscendingOrderByColumn('. $sClassPeerName . '::' . $aField['FLD_NAME'] . ');');
}*/
@@ -384,37 +396,27 @@ class AdditionalTables extends BaseAdditionalTables
eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);');
if ($filter != '' && is_string($filter)) {
eval('$fieldsTable = ' . $sClassPeerName . '::getFieldNames(BasePeer::TYPE_FIELDNAME);');
$countField = count($fieldsTable);
$stringOr = '$oCriteria->add(';
$cont = 0;
$fieldAppUid = '';
foreach ($fieldsTable as $value) {
if ($value != 'APP_UID') {
if (($cont+1) == $countField) {
if ($aData['FIELDS'][$cont]['FLD_TYPE'] == 'VARCHAR') {
$stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "%' . $filter . '%", Criteria::LIKE)';
} else {
$stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "' . $filter . '", Criteria::LIKE)';
}
} else {
if ($aData['FIELDS'][$cont]['FLD_TYPE'] == 'VARCHAR') {
$stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "%' . $filter . '%", Criteria::LIKE)->addOr(';
} else {
$stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "' . $filter . '", Criteria::LIKE)->addOr(';
}
}
} else {
$fieldAppUid = $cont;
}
$cont++;
}
for ($c = 0; $c < $countField-1; $c++) {
if ($fieldAppUid !== $c) {
$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 . '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ', ' . $compare . ')->addOr(';
$closure = $closure . ")";
}
}
$stringOr .= ');';
$stringOr = rtrim($stringOr, '->addOr(') . $closure . ';';
eval($stringOr);
$oCriteriaCount = clone $oCriteria;