/** * @inheritdoc */ public function run(ImportRow $row) { $eventDispatcher = $row->getBatch()->getContainer()->get('event_dispatcher'); $eventDispatcher->dispatch('fizz_import.before_entity_persist', new GenericEvent(array('row' => $row, 'entityAlias' => $this->entity, 'uniqueColumns' => $this->uniqueColumns))); /** @var \Doctrine\ORM\EntityManager $em */ $em = $row->getBatch()->getContainer()->get('doctrine')->getManager(); $md = $em->getClassMetadata($this->entity); $entity = null; $dataColumns = $row->getDataColumns(); if (count($this->uniqueColumns)) { $uniqueColumns = array(); foreach ($this->uniqueColumns as $column) { $uniqueColumns[$column] = $dataColumns[$column]->getValue(); } $entity = $em->getRepository($this->entity)->findOneBy($uniqueColumns); $eventDispatcher->dispatch('fizz_import.entity_persist_after_find', new GenericEvent(array('row' => $row, 'entityAlias' => $this->entity, 'entity' => $entity, 'uniqueColumns' => $this->uniqueColumns))); } if (null === $entity) { $class = $md->getName(); $entity = new $class(); $em->persist($entity); $eventDispatcher->dispatch('fizz_import.entity_persist', new GenericEvent(array('row' => $row, 'entityAlias' => $this->entity, 'entity' => $entity, 'uniqueColumns' => $this->uniqueColumns))); } foreach ($row->getDataColumns() as $dataColumn) { $md->setFieldValue($entity, $dataColumn->getColumn(), $dataColumn->getValue()); } $em->flush(); $eventDispatcher->dispatch('fizz_import.after_entity_persist', new GenericEvent(array('row' => $row, 'entityAlias' => $this->entity, 'entity' => $entity, 'uniqueColumns' => $this->uniqueColumns))); }
/** * @inheritdoc */ public function run(ImportRow $row) { $eventDispatcher = $row->getBatch()->getContainer()->get('event_dispatcher'); $eventDispatcher->dispatch('fizz_import.before_not_empty', new GenericEvent(array('row' => $row, 'column' => $this->column))); if (!array_key_exists($this->column, $dataColumns = $row->getDataColumns()) || !is_object($dataColumns[$this->column]->getValue()) && !is_array($dataColumns[$this->column]->getValue()) && !strlen($dataColumns[$this->column]->getValue())) { $row->getCommitBehaviors()->clear(); } $eventDispatcher->dispatch('fizz_import.after_not_empty', new GenericEvent(array('row' => $row, 'column' => $this->column))); }
/** * @inheritdoc */ public function run(ImportRow $row) { $eventDispatcher = $row->getBatch()->getContainer()->get('event_dispatcher'); $eventDispatcher->dispatch('fizz_import.before_datetime', new GenericEvent(array('row' => $row, 'column' => $this->column))); if (array_key_exists($this->column, $dataColumns = $row->getDataColumns())) { $dataColumns[$this->column]->setValue(new \DateTime($dataColumns[$this->column]->getValue())); } $eventDispatcher->dispatch('fizz_import.after_datetime', new GenericEvent(array('row' => $row, 'column' => $this->column))); }
/** * @inheritdoc */ public function run(ImportRow $row) { $eventDispatcher = $row->getBatch()->getContainer()->get('event_dispatcher'); $eventDispatcher->dispatch('fizz_import.before_value_to_entity', new GenericEvent(array('row' => $row, 'column' => $this->column, 'entity' => $this->entity, 'field' => $this->field))); if (array_key_exists($this->column, $dataColumns = $row->getDataColumns())) { /** @var \Doctrine\ORM\EntityManager $em */ $em = $row->getBatch()->getContainer()->get('doctrine')->getManager(); $dataColumns[$this->column]->setValue($em->getRepository($this->entity)->findOneBy(array($this->field => $dataColumns[$this->column]->getValue()))); } $eventDispatcher->dispatch('fizz_import.after_value_to_entity', new GenericEvent(array('row' => $row, 'column' => $this->column, 'entity' => $this->entity, 'field' => $this->field))); }
/** * @inheritdoc */ public function run(ImportRow $row) { if (array_key_exists($this->column, $dataColumns = $row->getDataColumns())) { $dataColumns[$this->column]->setValue(call_user_func($this->closure, $dataColumns[$this->column])); } }