. */ namespace ext\thirdPartyArchiving\bundle\medona\Controller; /** * Archive destruction notification * * @author Prosper DE LAURE */ class ArchiveDestructionNotification extends ArchiveNotification { /** * Send a new transfer reply * @param medona/message $destructionRequest The destruction request message * @param array $archives The destroyed archives * * @return The message generated */ public function send($destructionRequest, $archives) { $message = \laabs::newInstance('medona/message'); $message->messageId = \laabs::newId(); $message->type = "ArchiveDestructionNotification"; $schema = "medona"; if (\laabs::hasBundle('seda')) { $schema = "seda"; } $message->schema = $schema; $message->status = "sent"; $message->date = \laabs::newDatetime(null, "UTC"); $message->receptionDate = $message->date; $message->reference = $destructionRequest->reference."_DestructionNotification"; $message->senderOrgRegNumber = $archives[0]->archiverOrgRegNumber; $message->recipientOrgRegNumber = $archives[0]->originatorOrgRegNumber; $this->readOrgs($message); // read org names, addresses, communications, contacts $message->archive = $archives; $message->dataObjectCount = count($message->archive); try { if ($message->schema != 'medona') { $archiveModificationNotificationController = \laabs::newController($message->schema.'/ArchiveModificationNotification'); $archiveModificationNotificationController->send($message); } else { $this->generate($message); $this->save($message); } $operationResult = true; } catch (\Exception $e) { $message->status = "error"; $operationResult = false; throw $e; } $event = $this->lifeCycleJournalController->logEvent( 'medona/sending', 'medona/message', $message->messageId, $message, $operationResult ); $this->create($message); return $message; } }