From 9fb06bc00a4e58a2d809d8d8382ae216a5a2b439 Mon Sep 17 00:00:00 2001 From: Eric Espie Date: Mon, 9 Mar 2026 17:03:01 +0100 Subject: [PATCH] remove history --- .../src/Service/DeletionPlanService.php | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/datamodels/2.x/combodo-data-feature-removal/src/Service/DeletionPlanService.php b/datamodels/2.x/combodo-data-feature-removal/src/Service/DeletionPlanService.php index 40a8e0f1c..4e123f812 100644 --- a/datamodels/2.x/combodo-data-feature-removal/src/Service/DeletionPlanService.php +++ b/datamodels/2.x/combodo-data-feature-removal/src/Service/DeletionPlanService.php @@ -4,7 +4,9 @@ namespace Combodo\iTop\DataFeatureRemoval\Service; use Combodo\iTop\DataFeatureRemoval\Entity\DeletionPlanSummaryEntity; use Combodo\iTop\DataFeatureRemoval\Helper\DataFeatureRemovalException; +use DBObjectSearch; use DeletionPlan; +use MetaModel; class DeletionPlanService { @@ -80,7 +82,7 @@ class DeletionPlanService */ private function GetAllObjects(string $sClass): array { - $oFilter = new \DBObjectSearch($sClass); + $oFilter = new DBObjectSearch($sClass); $oFilter->AllowAllData(); $oSet = new \DBObjectSet($oFilter); return $oSet->ToArray(); @@ -149,11 +151,17 @@ class DeletionPlanService $oDeletionPlanSummaryEntity = $aSummary[$sClass] ?? new DeletionPlanSummaryEntity($sClass); foreach ($aDeletes as $sId => $aDelete) { + // Delete any existing change tracking about the current object + $oFilter = new DBObjectSearch('CMDBChangeOp'); + $oFilter->AddCondition('objclass', $sClass, '='); + $oFilter->AddCondition('objkey', $sId, '='); + MetaModel::PurgeData($oFilter); + + // Delete the entry foreach (\MetaModel::EnumParentClasses($sClass, ENUM_PARENT_CLASSES_ALL, false) as $sParentClass) { $oFilter = \DBObjectSearch::FromOQL_AllData("SELECT $sParentClass WHERE id=:id"); $sQuery = $oFilter->MakeDeleteQuery(['id' => $sId]); \CMDBSource::DeleteFrom($sQuery); - \IssueLog::Info($sQuery); } $oDeletionPlanSummaryEntity->iDeleteCount++;