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);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc