#540 Data synchro: the option "write if empty" was not implemented

SVN:trunk[1934]
This commit is contained in:
Romain Quetiez
2012-03-29 13:34:46 +00:00
parent 529b5d53fc
commit a2affcc224

View File

@@ -1739,8 +1739,21 @@ class SynchroReplica extends DBObject implements iDisplay
$value = $this->GetValueFromExtData($sAttCode, $oSyncAtt, $oStatLog);
if (!is_null($value))
{
$oDestObj->Set($sAttCode, $value);
$aValueTrace[] = "$sAttCode: $value";
if ($oSyncAtt->Get('update_policy') == 'write_if_empty')
{
$oAttDef = MetaModel::GetAttributeDef(get_class($oDestObj), $sAttCode);
if ($oAttDef->IsNull($oDestObj->Get($sAttCode)))
{
// The value is still "empty" in the target object, we are allowed to write the new value
$oDestObj->Set($sAttCode, $value);
$aValueTrace[] = "$sAttCode: $value";
}
}
else
{
$oDestObj->Set($sAttCode, $value);
$aValueTrace[] = "$sAttCode: $value";
}
}
}
// Really modified ?