['onCancelRestoreDocumentToEditable', 0]]; } public function onCancelRestoreDocumentToEditable(TransitionEvent $event): void { $entityWorkflow = $event->getSubject(); if (!$entityWorkflow instanceof EntityWorkflow) { return; } $workflow = $this->registry->get($entityWorkflow, $entityWorkflow->getWorkflowName()); foreach ($event->getTransition()->getTos() as $place) { $metadata = $workflow->getMetadataStore()->getPlaceMetadata($place); if (($metadata['isFinal'] ?? false) && !($metadata['isFinalPositive'] ?? true)) { $this->restoreDocument($entityWorkflow); return; } } } private function restoreDocument(EntityWorkflow $entityWorkflow): void { $storedObject = $this->manager->getAssociatedStoredObject($entityWorkflow); if (null === $storedObject) { return; } $version = $storedObject->getLastKeptBeforeConversionVersion(); if (null === $version) { return; } $this->storedObjectRestore->restore($storedObject->getLastKeptBeforeConversionVersion()); } }