Merge branch 'master' into develop

# Conflicts:
#	datamodels/2.x/itop-attachments/nl.dict.itop-attachments.php
This commit is contained in:
Pierre Goiffon
2019-03-15 17:23:04 +01:00
53 changed files with 457 additions and 303 deletions

View File

@@ -1583,12 +1583,13 @@ abstract class DBObject implements iDisplay
*/
protected function GetSearchForUniquenessRule($sUniquenessRuleId, $aUniquenessRuleProperties)
{
$sCurrentClass = get_class($this);
$sOqlUniquenessQuery = "SELECT $sCurrentClass";
$sRuleRootClass = $aUniquenessRuleProperties['root_class'];
$sOqlUniquenessQuery = "SELECT $sRuleRootClass";
if (!(empty($sUniquenessFilter = $aUniquenessRuleProperties['filter'])))
{
$sOqlUniquenessQuery .= ' WHERE '.$sUniquenessFilter;
}
/** @var \DBObjectSearch $oUniquenessQuery */
$oUniquenessQuery = DBObjectSearch::FromOQL($sOqlUniquenessQuery);
if (!$this->IsNew())
@@ -1602,6 +1603,12 @@ abstract class DBObject implements iDisplay
$oUniquenessQuery->AddCondition($sAttributeCode, $attributeValue, '=');
}
$aChildClassesWithRuleDisabled = MetaModel::GetChildClassesWithDisabledUniquenessRule($sRuleRootClass, $sUniquenessRuleId);
if (!empty($aChildClassesWithRuleDisabled))
{
$oUniquenessQuery->AddConditionForInOperatorUsingParam('finalclass', $aChildClassesWithRuleDisabled, false);
}
return $oUniquenessQuery;
}