You are here

protected function Order::getAdjustmentData in Commerce Migrate 8.2

Same name and namespace in other branches
  1. 3.1.x modules/ubercart/src/Plugin/migrate/source/Order.php \Drupal\commerce_migrate_ubercart\Plugin\migrate\source\Order::getAdjustmentData()
  2. 3.0.x modules/ubercart/src/Plugin/migrate/source/Order.php \Drupal\commerce_migrate_ubercart\Plugin\migrate\source\Order::getAdjustmentData()

Retrieves adjustment data for an order.

Parameters

\Drupal\migrate\Row $row: The row.

Return value

array The field values, keyed by delta.

1 call to Order::getAdjustmentData()
Order::prepareRow in modules/ubercart/src/Plugin/migrate/source/Order.php
Adds additional data to the row.

File

modules/ubercart/src/Plugin/migrate/source/Order.php, line 102

Class

Order
Provides migration source for orders.

Namespace

Drupal\commerce_migrate_ubercart\Plugin\migrate\source

Code

protected function getAdjustmentData(Row $row) {
  $order_id = $row
    ->getSourceProperty('order_id');
  $query = $this
    ->select('uc_order_line_items', 'uol')
    ->fields('uol')
    ->fields('uo', [
    'order_id',
  ])
    ->orderBy('weight', 'ASC')
    ->condition('uol.type', 'shipping')
    ->condition('uo.order_id', $order_id);
  $query
    ->innerJoin('uc_orders', 'uo', 'uol.order_id = uo.order_id');
  $adjustments = $query
    ->execute()
    ->fetchAll();

  // Ensure the adjustment has a currency.
  $currency_code = $row
    ->getSourceProperty('currency');
  if (empty($currency_code)) {
    $currency_code = $this
      ->variableGet('uc_currency_code', 'USD');
  }
  foreach ($adjustments as &$adjustment) {
    $adjustment['currency_code'] = $currency_code;
    $adjustment['type'] = 'custom';
  }
  return $adjustments;
}