Merge pull request #2084 from Jennydmz/BUG-12254a

BUG-12254 Funcionalidad Search en las grillas DATA de los PMTables y Report Tables.
This commit is contained in:
julceslauhub
2013-10-20 19:37:10 -07:00
3 changed files with 91 additions and 6 deletions

View File

@@ -343,7 +343,7 @@ class AdditionalTables extends BaseAdditionalTables
}
}
public function getAllData($sUID, $start = null, $limit = null, $keyOrderUppercase = true)
public function getAllData($sUID, $start = null, $limit = null, $keyOrderUppercase = true, $filter = '')
{
$addTab = new AdditionalTables();
$aData = $addTab->load($sUID, true);
@@ -370,15 +370,43 @@ class AdditionalTables extends BaseAdditionalTables
if ($keyOrderUppercase == true) {
foreach ($aData['FIELDS'] as $aField) {
eval('$oCriteria->addSelectColumn(' . $sClassPeerName . '::' . $aField['FLD_NAME'] . ');');
if ($aField['FLD_KEY'] == '1') {
/*if ($aField['FLD_KEY'] == '1') {
eval('$oCriteria->addAscendingOrderByColumn('. $sClassPeerName . '::' . $aField['FLD_NAME'] . ');');
}
}*/
}
}
$oCriteriaCount = clone $oCriteria;
//$count = $sClassPeerName::doCount($oCriteria);
eval('$count = ' . $sClassPeerName . '::doCount($oCriteria);');
if ($filter != '' && is_string($filter)) {
eval('$fieldsTable = ' . $sClassPeerName . '::getFieldNames(BasePeer::TYPE_FIELDNAME);');
$countField = count($fieldsTable);
$stringOr = '$oCriteria->add(';
$cont = 1;
foreach ($fieldsTable as $value) {
if ($cont == $countField) {
$stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "%' . $filter . '%", Criteria::LIKE)';
} else {
$stringOr .= '$oCriteria->getNewCriterion(' . $sClassPeerName . '::' . strtoupper($value) . ', "%' . $filter . '%", Criteria::LIKE)->addOr(';
}
$cont++;
}
for ($c = 1; $c < $countField; $c ++) {
$stringOr .= ')';
}
$stringOr .= ');';
eval($stringOr);
}
if (isset($_POST['sort'])) {
if ($_POST['dir'] == 'ASC') {
eval('$oCriteria->addAscendingOrderByColumn(' . $sClassPeerName . '::' . $_POST['sort'] . ');');
} else {
eval('$oCriteria->addDescendingOrderByColumn(' . $sClassPeerName . '::' . $_POST['sort'] . ');');
}
}
if (isset($limit)) {
$oCriteria->setLimit($limit);
}