Advanced Search: External keys to hierarchical class selects sub-classes as in previous version

SVN:trunk[5675]
This commit is contained in:
Eric Espié
2018-04-16 16:35:20 +00:00
parent bd8e44f835
commit c485286114
15 changed files with 232 additions and 86 deletions

View File

@@ -47,22 +47,22 @@ class CriterionParser
*/
public static function Parse($sBaseOql, $aCriterion, $sHiddenCriteria = null)
{
$aExpression = array();
$aOr = $aCriterion['or'];
foreach($aOr as $aAndList)
{
$sExpression = self::ParseAndList($aAndList['and']);
if (!empty($sExpression))
{
$aExpression[] = $sExpression;
}
}
try
{
$oSearch = DBObjectSearch::FromOQL($sBaseOql);
$aExpression = array();
$aOr = $aCriterion['or'];
foreach($aOr as $aAndList)
{
$sExpression = self::ParseAndList($oSearch, $aAndList['and']);
if (!empty($sExpression))
{
$aExpression[] = $sExpression;
}
}
if (!empty($sHiddenCriteria))
{
$oHiddenCriteriaExpression = Expression::FromOQL($sHiddenCriteria);
@@ -85,13 +85,13 @@ class CriterionParser
return null;
}
private static function ParseAndList($aAnd)
private static function ParseAndList($oSearch, $aAnd)
{
$aExpression = array();
foreach($aAnd as $aCriteria)
{
$sExpression = CriterionToOQL::Convert($aCriteria);
$sExpression = CriterionToOQL::Convert($oSearch, $aCriteria);
if ($sExpression !== '1')
{
$aExpression[] = $sExpression;