/** * {@inheritdoc} */ public function handle(Record $recordToHandle, Record $oppositeRecord) { $this->validate($recordToHandle); if ($oppositeRecord->getValue($this->field) !== null || $this->setNullIfEmpty) { $recordToHandle->setValue($this->field, $oppositeRecord->getValue($this->field)); } }
/** * @param Record $recordToHandle * @param Record $oppositeRecord * @return void */ public function handle(Record $recordToHandle, Record $oppositeRecord) { $this->validate($recordToHandle); $sourceModel = $recordToHandle->getValue($this->field); $oppositeRecordValue = $oppositeRecord->getValue($this->field); if (empty($sourceModel) && !empty($oppositeRecordValue)) { $recordToHandle->setValue($this->field, $oppositeRecord->getValue($this->field)); } elseif (empty($sourceModel) || $recordToHandle->getValue('is_configurable')) { $recordToHandle->setValue($this->field, null); } }
/** * @param Record $recordToHandle * @param Record $oppositeRecord * @return mixed */ public function handle(Record $recordToHandle, Record $oppositeRecord) { $this->validate($recordToHandle); $sourceModel = $recordToHandle->getValue($this->field); $oppositeRecordValue = $oppositeRecord->getValue($this->field); if (empty($sourceModel) && !empty($oppositeRecordValue)) { $recordToHandle->setValue($this->field, $oppositeRecord->getValue($this->field)); } elseif (empty($sourceModel)) { $recordToHandle->setValue($this->field, null); } else { $recordToHandle->setValue($this->field, $this->classMap->convertClassName($sourceModel)); } }
/** * {@inheritdoc} */ public function handle(Record $recordToHandle, Record $oppositeRecord) { $this->validate($recordToHandle); $value = $recordToHandle->getValue($this->field); $valueOpposite = $oppositeRecord->getValue($this->field); if (!is_numeric($value) && $valueOpposite) { $value = $valueOpposite; } $recordToHandle->setValue($this->field, $value); }
/** * @param Record $sourceRecord * @param array $keyFields * @return string */ protected function getMappingValue(Record $sourceRecord, $keyFields) { $value = []; foreach ($keyFields as $field) { switch ($field) { case 'attribute_id': $value[] = $this->getDestinationAttributeId($sourceRecord->getValue($field)); break; default: $value[] = $sourceRecord->getValue($field); break; } } return implode('-', $value); }
/** * @param Record $from * @param Record $to * @return void */ protected function copy(Record $from, Record $to) { $sourceDocumentName = $this->sourceDocument->getName(); $data = $from->getData(); $sourceFields = $from->getFields(); $destinationFields = $to->getFields(); $diff = array_diff($sourceFields, $destinationFields); foreach ($diff as $field) { if (!$this->mapReader->isFieldIgnored($sourceDocumentName, $field, MapInterface::TYPE_SOURCE)) { $fieldMap = $this->mapReader->getFieldMap($sourceDocumentName, $field, MapInterface::TYPE_SOURCE); $data[$fieldMap] = $from->getValue($field); } unset($data[$field]); } $to->setData($data); }
/** * @param Record $record * @return mixed */ public function getRecordEntityType(Record $record) { $isCategory = $record->getValue('category_id') ? 'category' : null; $isProduct = $record->getValue('product_id') ? 'product' : null; return $isProduct ?: $isCategory; }
public function testSetData() { $this->assertEquals('item1', $this->record->getValue('name')); $this->record->setData(['id' => 11, 'name' => 'item2']); $this->assertEquals('item2', $this->record->getValue('name')); }
/** * @param Record $from * @param Record $to * @return void */ protected function copy(Record $from, Record $to) { foreach ($from->getFields() as $field) { if (!$this->mapReader->isFieldIgnored($this->sourceDocument->getName(), $field, MapInterface::TYPE_SOURCE)) { $fieldMap = $this->mapReader->getFieldMap($this->sourceDocument->getName(), $field, MapInterface::TYPE_SOURCE); $to->setValue($fieldMap, $from->getValue($field)); } } }