trait ProductVariationTypeTrait in Commerce Migrate 8.2
Same name and namespace in other branches
- 3.1.x modules/ubercart/src/Plugin/migrate/source/ProductVariationTypeTrait.php \Drupal\commerce_migrate_ubercart\Plugin\migrate\source\ProductVariationTypeTrait
- 3.0.x modules/ubercart/src/Plugin/migrate/source/ProductVariationTypeTrait.php \Drupal\commerce_migrate_ubercart\Plugin\migrate\source\ProductVariationTypeTrait
Sets traits property for dimensions and weight.
Hierarchy
- trait \Drupal\commerce_migrate_ubercart\Plugin\migrate\source\ProductVariationTypeTrait
2 files declare their use of ProductVariationTypeTrait
- ProductVariationType.php in modules/
ubercart/ src/ Plugin/ migrate/ source/ uc7/ ProductVariationType.php - ProductVariationType.php in modules/
ubercart/ src/ Plugin/ migrate/ source/ uc6/ ProductVariationType.php
File
- modules/
ubercart/ src/ Plugin/ migrate/ source/ ProductVariationTypeTrait.php, line 10
Namespace
Drupal\commerce_migrate_ubercart\Plugin\migrate\sourceView source
trait ProductVariationTypeTrait {
/**
* {@inheritdoc}
*/
public function prepareRow(Row $row) {
// The dimensions and weights are relevant if commerce_shipping is enabled
// on the destination.
if ($this
->getModuleHandler()
->moduleExists('commerce_shipping')) {
$row
->setSourceProperty('has_dimensions', FALSE);
$row
->setSourceProperty('shippable', FALSE);
// If any dimension column has non zero data then set has_dimensions true.
$current_type = $row
->getSourceProperty('type');
$query = $this
->select('node', 'n')
->fields('n')
->condition('type', $current_type);
$query
->leftJoin('uc_products', 'uc', 'n.nid = uc.nid AND n.vid=uc.vid');
$or = $query
->orConditionGroup()
->condition('length', 0, '!=')
->condition('width', 0, '!=')
->condition('height', 0, '!=');
$query
->condition($or);
$num_rows = $query
->countQuery()
->execute()
->fetchField();
if ($num_rows) {
$row
->setSourceProperty('has_dimensions', TRUE);
}
// If the weight column has non zero data then set shippable true.
$query = $this
->select('node', 'n')
->fields('n')
->condition('type', $current_type);
$query
->leftJoin('uc_products', 'uc', 'n.nid = uc.nid AND n.vid=uc.vid');
$query
->condition('weight', 0, '!=');
$num_rows = $query
->countQuery()
->execute()
->fetchField();
if ($num_rows) {
$row
->setSourceProperty('shippable', TRUE);
}
}
parent::prepareRow($row);
}
/**
* {@inheritdoc}
*/
public function fields() {
$fields = [];
if ($this
->getModuleHandler()
->moduleExists('commerce_shipping')) {
$fields = [
'has_dimensions' => $this
->t('Set if this type has dimensions'),
'shippable' => $this
->t('Set if this type is shippable'),
];
}
return parent::fields() + $fields;
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
ProductVariationTypeTrait:: |
public | function | ||
ProductVariationTypeTrait:: |
public | function |