You are here

protected function OrderProduct::getAdjustmentData in Commerce Migrate 3.1.x

Same name and namespace in other branches
  1. 8.2 modules/ubercart/src/Plugin/migrate/source/OrderProduct.php \Drupal\commerce_migrate_ubercart\Plugin\migrate\source\OrderProduct::getAdjustmentData()
  2. 3.0.x modules/ubercart/src/Plugin/migrate/source/OrderProduct.php \Drupal\commerce_migrate_ubercart\Plugin\migrate\source\OrderProduct::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 OrderProduct::getAdjustmentData()
OrderProduct::prepareRow in modules/ubercart/src/Plugin/migrate/source/OrderProduct.php
Adds additional data to the row.

File

modules/ubercart/src/Plugin/migrate/source/OrderProduct.php, line 107

Class

OrderProduct
Ubercart order product source.

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.order_id', $order_id)
    ->condition('type', 'shipping', '!=');
  $query
    ->innerJoin('uc_orders', 'uo', 'uol.order_id = uo.order_id');
  $adjustments = $query
    ->execute()
    ->fetchAll();
  $currency_code = $row
    ->getSourceProperty('currency');
  foreach ($adjustments as &$adjustment) {
    $adjustment['currency_code'] = $currency_code;
    $adjustment['data'] = unserialize($adjustment['data']);
  }

  // Number of product line items.
  $query = $this
    ->select('uc_order_products', 'uop')
    ->condition('uop.order_id', $order_id);
  $query
    ->addExpression('COUNT(order_id)', 'num_product_line');
  $query
    ->addExpression('MAX(order_product_id)', 'max_order_product_id');
  $results = $query
    ->execute()
    ->fetchAll();
  $row
    ->setSourceProperty('num_product_line', $results[0]['num_product_line']);
  $row
    ->setSourceProperty('max_order_product_id', $results[0]['max_order_product_id']);
  return $adjustments;
}