N°2321 - Fix SQL request generation for inherited magic attributes

This commit is contained in:
Eric
2020-02-04 10:25:33 +01:00
parent ac6e60f5a1
commit 008614fde6
2 changed files with 26 additions and 3 deletions

View File

@@ -918,6 +918,20 @@ abstract class MetaModel
return self::$m_aAttribOrigins[$sClass][$sAttCode];
}
/**
* @deprecated
* @param string $sClass
* @param string $sAttCode
*
* @return mixed
* @throws \CoreException
*/
final static public function GetFilterCodeOrigin($sClass, $sAttCode)
{
self::_check_subclass($sClass);
return self::$m_aFilterOrigins[$sClass][$sAttCode];
}
/**
* @param string $sClass
* @param string $sAttCode

View File

@@ -64,11 +64,20 @@ class OQLActualClassTreeResolver
$aTranslateFields = array();
foreach ($aExpectedAttributes as $sAttCode => $oExpression)
{
if (!MetaModel::IsValidAttCode($sClass, $sAttCode))
// Attributes can be stored in attributes list or for magic ones into filter codes list.
$sOriginClass = null;
if (MetaModel::IsValidFilterCode($sClass, $sAttCode))
{
$sOriginClass = MetaModel::GetFilterCodeOrigin($sClass, $sAttCode);
}
else if (MetaModel::IsValidAttCode($sClass, $sAttCode))
{
$sOriginClass = MetaModel::GetAttributeOrigin($sClass, $sAttCode);
}
else
{
continue;
}
$sOriginClass = MetaModel::GetAttributeOrigin($sClass, $sAttCode);
if (is_null($aClassAndAncestorsNodes[$sOriginClass]))
{
if ($sOriginClass == $sClass)
@@ -198,4 +207,4 @@ class OQLActualClassTreeResolver
}
}
}
}
}