mirror of
https://github.com/Combodo/iTop.git
synced 2026-04-30 22:18:46 +02:00
remove history
This commit is contained in:
@@ -4,7 +4,9 @@ namespace Combodo\iTop\DataFeatureRemoval\Service;
|
|||||||
|
|
||||||
use Combodo\iTop\DataFeatureRemoval\Entity\DeletionPlanSummaryEntity;
|
use Combodo\iTop\DataFeatureRemoval\Entity\DeletionPlanSummaryEntity;
|
||||||
use Combodo\iTop\DataFeatureRemoval\Helper\DataFeatureRemovalException;
|
use Combodo\iTop\DataFeatureRemoval\Helper\DataFeatureRemovalException;
|
||||||
|
use DBObjectSearch;
|
||||||
use DeletionPlan;
|
use DeletionPlan;
|
||||||
|
use MetaModel;
|
||||||
|
|
||||||
class DeletionPlanService
|
class DeletionPlanService
|
||||||
{
|
{
|
||||||
@@ -80,7 +82,7 @@ class DeletionPlanService
|
|||||||
*/
|
*/
|
||||||
private function GetAllObjects(string $sClass): array
|
private function GetAllObjects(string $sClass): array
|
||||||
{
|
{
|
||||||
$oFilter = new \DBObjectSearch($sClass);
|
$oFilter = new DBObjectSearch($sClass);
|
||||||
$oFilter->AllowAllData();
|
$oFilter->AllowAllData();
|
||||||
$oSet = new \DBObjectSet($oFilter);
|
$oSet = new \DBObjectSet($oFilter);
|
||||||
return $oSet->ToArray();
|
return $oSet->ToArray();
|
||||||
@@ -149,11 +151,17 @@ class DeletionPlanService
|
|||||||
$oDeletionPlanSummaryEntity = $aSummary[$sClass] ?? new DeletionPlanSummaryEntity($sClass);
|
$oDeletionPlanSummaryEntity = $aSummary[$sClass] ?? new DeletionPlanSummaryEntity($sClass);
|
||||||
|
|
||||||
foreach ($aDeletes as $sId => $aDelete) {
|
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) {
|
foreach (\MetaModel::EnumParentClasses($sClass, ENUM_PARENT_CLASSES_ALL, false) as $sParentClass) {
|
||||||
$oFilter = \DBObjectSearch::FromOQL_AllData("SELECT $sParentClass WHERE id=:id");
|
$oFilter = \DBObjectSearch::FromOQL_AllData("SELECT $sParentClass WHERE id=:id");
|
||||||
$sQuery = $oFilter->MakeDeleteQuery(['id' => $sId]);
|
$sQuery = $oFilter->MakeDeleteQuery(['id' => $sId]);
|
||||||
\CMDBSource::DeleteFrom($sQuery);
|
\CMDBSource::DeleteFrom($sQuery);
|
||||||
\IssueLog::Info($sQuery);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$oDeletionPlanSummaryEntity->iDeleteCount++;
|
$oDeletionPlanSummaryEntity->iDeleteCount++;
|
||||||
|
|||||||
Reference in New Issue
Block a user