コード例 #1
0
 /**
  * {@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));
     }
 }
コード例 #2
0
 /**
  * @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);
     }
 }
コード例 #3
0
ファイル: ConvertModel.php プロジェクト: okite11/frames21
 /**
  * @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));
     }
 }
コード例 #4
0
ファイル: Template.php プロジェクト: okite11/frames21
 /**
  * {@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);
 }
コード例 #5
0
 /**
  * @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);
 }
コード例 #6
0
 /**
  * @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);
 }
コード例 #7
0
ファイル: Version191to2000.php プロジェクト: okite11/frames21
 /**
  * @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;
 }
コード例 #8
0
 public function testSetData()
 {
     $this->assertEquals('item1', $this->record->getValue('name'));
     $this->record->setData(['id' => 11, 'name' => 'item2']);
     $this->assertEquals('item2', $this->record->getValue('name'));
 }
コード例 #9
0
 /**
  * @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));
         }
     }
 }