diff --git a/synchro/synchrodatasource.class.inc.php b/synchro/synchrodatasource.class.inc.php index 0a3a98df0..30ab9f21c 100644 --- a/synchro/synchrodatasource.class.inc.php +++ b/synchro/synchrodatasource.class.inc.php @@ -1761,9 +1761,19 @@ class SynchroReplica extends DBObject implements iDisplay try { $oDestObj = MetaModel::GetObject($this->Get('dest_class'), $this->Get('dest_id')); - $oDestObj->DBDeleteTracked($oChange); - $this->DBDeleteTracked($oChange); - $oStatLog->Inc('stats_nb_obj_deleted'); + $oCheckDeletionPlan = new DeletionPlan(); + if ($oDestObj->CheckToDelete($oCheckDeletionPlan)) + { + $oActualDeletionPlan = new DeletionPlan(); + $oDestObj->DBDeleteTracked($oChange, null, $oActualDeletionPlan); + $this->DBDeleteTracked($oChange); + $oStatLog->Inc('stats_nb_obj_deleted'); + } + else + { + $sIssues = implode("\n", $oCheckDeletionPlan->GetIssues()); + throw(new Exception($sIssues)); + } } catch(Exception $e) {