92 lines
3.3 KiB
PHP
92 lines
3.3 KiB
PHP
<?php
|
|
|
|
namespace Drupal\farm_migrate\Plugin\migrate\source\d7;
|
|
|
|
use Drupal\migrate_drupal\Plugin\migrate\source\d7\FieldableEntity;
|
|
|
|
/**
|
|
* Log quantity source from database.
|
|
*
|
|
* @MigrateSource(
|
|
* id = "d7_farm_quantity",
|
|
* source_module = "farm_quantity"
|
|
* )
|
|
*
|
|
* @deprecated in farm:2.2.0 and is removed from farm:3.0.0. Migrate from farmOS
|
|
* v1 to v2 before upgrading to farmOS v3.
|
|
* @see https://www.drupal.org/node/3382609
|
|
*/
|
|
class Quantity extends FieldableEntity {
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function query() {
|
|
$query = $this->select('field_collection_item', 'fci');
|
|
$query->addField('fci', 'item_id', 'id');
|
|
|
|
// Join in the measure value.
|
|
$query->leftJoin('field_data_field_farm_quantity_measure', 'fdffqm',
|
|
"fci.item_id = fdffqm.entity_id AND fdffqm.entity_type = 'field_collection_item' AND fdffqm.bundle = 'field_farm_quantity' AND fdffqm.deleted = '0'");
|
|
$query->addField('fdffqm', 'field_farm_quantity_measure_value', 'measure');
|
|
|
|
// Join in the numerator and denominator values.
|
|
$query->leftJoin('field_data_field_farm_quantity_value', 'fdffqv',
|
|
"fci.item_id = fdffqv.entity_id AND fdffqv.entity_type = 'field_collection_item' AND fdffqv.bundle = 'field_farm_quantity' AND fdffqv.deleted = '0'");
|
|
$query->addField('fdffqv', 'field_farm_quantity_value_numerator', 'value_numerator');
|
|
$query->addField('fdffqv', 'field_farm_quantity_value_denominator', 'value_denominator');
|
|
|
|
// Join in the units value.
|
|
$query->leftJoin('field_data_field_farm_quantity_units', 'fdffqu',
|
|
"fci.item_id = fdffqu.entity_id AND fdffqu.entity_type = 'field_collection_item' AND fdffqu.bundle = 'field_farm_quantity' AND fdffqu.deleted = '0'");
|
|
$query->addField('fdffqu', 'field_farm_quantity_units_tid', 'units');
|
|
|
|
// Join in the label value.
|
|
$query->leftJoin('field_data_field_farm_quantity_label', 'fdffql',
|
|
"fci.item_id = fdffql.entity_id AND fdffql.entity_type = 'field_collection_item' AND fdffql.bundle = 'field_farm_quantity' AND fdffql.deleted = '0'");
|
|
$query->addField('fdffql', 'field_farm_quantity_label_value', 'label');
|
|
|
|
// Join in the log table to get the uid.
|
|
$query->leftJoin('field_data_field_farm_quantity', 'fdffq', 'fci.item_id = fdffq.field_farm_quantity_value');
|
|
$query->leftJoin('log', 'l', "fdffq.entity_type = 'log' AND fdffq.entity_id = l.id");
|
|
$query->addField('l', 'uid');
|
|
|
|
// Ensure we don't include archived/deleted fields.
|
|
$query->condition('fci.archived', '0');
|
|
$query->condition('fdffq.deleted', '0');
|
|
|
|
// Distinct items only.
|
|
$query->distinct();
|
|
|
|
// Order by item_id.
|
|
$query->orderBy('fci.item_id');
|
|
|
|
return $query;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function fields() {
|
|
$fields = [
|
|
'id' => $this->t('The quantity item ID.'),
|
|
'measure' => $this->t('The quantity measure.'),
|
|
'value_numerator' => $this->t('The quantity value numerator.'),
|
|
'value_denominator' => $this->t('The quantity value denominator.'),
|
|
'units' => $this->t('The quantity units.'),
|
|
'label' => $this->t('The quantity label.'),
|
|
'uid' => $this->t('The user ID that created the quantity.'),
|
|
];
|
|
return $fields;
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function getIds() {
|
|
$ids['id']['type'] = 'integer';
|
|
return $ids;
|
|
}
|
|
|
|
}
|