mutual_credit-5.0.x-dev/src/Plugin/migrate/destination/EntityTransaction.php
src/Plugin/migrate/destination/EntityTransaction.php
<?php namespace Drupal\mcapi\Plugin\migrate\destination; use Drupal\mcapi\Entity\Type as TransactionType; use Drupal\migrate\Plugin\migrate\destination\EntityContentBase; use Drupal\migrate\Row; use Drupal\migrate\Plugin\MigrateIdMapInterface; /** * @MigrateDestination( * id = "entity:mcapi_transaction" * ) */ class EntityTransaction extends EntityContentBase { /** * {@inheritdoc} */ public function import(Row $row, array $old_destination_id_values = []) { $this->rollbackAction = MigrateIdMapInterface::ROLLBACK_DELETE; $entity = $this->getEntity($row, $old_destination_id_values); if (!$entity) { throw new MigrateException('Unable to get entity'); } assert($entity instanceof ContentEntityInterface); if ($entity->description->isEmpty()) { $entity->description->value = t('No description'); } if ($this->isEntityValidationRequired($entity)) { $this->validateEntity($entity); } // This extra line stops it sending a mail if (is_null($entity->type->entity)) { $entity->type->entity = TransactionType::load($entity->type); } $entity->type->entity->setThirdpartySetting('mcapi_signatures', 'mail', []); $ids = $this->save($entity, $old_destination_id_values); if ($this->isTranslationDestination()) { $ids[] = $entity->language()->getId(); } return $ids; } /** * {@inheritdoc} */ public function rollback(array $destination_identifier) { $xid = reset($destination_identifier); $transaction = $this->storage->load($xid); // Shortcuts to save implementing an event listener in other modules. if (\Drupal::moduleHandler()->moduleExists('mcapi_signatures')) { mcapi_signatures_mcapi_transaction_delete($transaction); } if (\Drupal::moduleHandler()->moduleExists('mcapi_cc')) { \Drupal::database()->delete('mcapi_cc')->condition('xid', $transaction->id())->execute(); } parent::rollback($destination_identifier); } }