/** * {@inheritdoc} */ public function load(ObjectManager $manager) { parent::load($manager); $locator = $this->container->get('file_locator'); $filePath = $locator->locate('@OroB2BAccountBundle/Migrations/Data/Demo/ORM/data/account-users.csv'); if (is_array($filePath)) { $filePath = current($filePath); } $handler = fopen($filePath, 'r'); $headers = fgetcsv($handler, 1000, ','); /** @var AccountUser[] $accountUsers */ $accountUsers = $manager->getRepository('OroB2BAccountBundle:AccountUser')->findAll(); /** @var AccountUser[] $accountUserByEmail */ $accountUserByEmail = []; foreach ($accountUsers as $accountUser) { $accountUserByEmail[$accountUser->getEmail()] = $accountUser; } $accountHasAddress = []; while (($data = fgetcsv($handler, 1000, ',')) !== false) { $row = array_combine($headers, array_values($data)); $accountUser = $accountUserByEmail[$row['email']]; if (isset($accountHasAddress[$accountUser->getAccount()->getId()])) { continue; } $accountUser->getAccount()->addAddress($this->createAddress($row)); $accountHasAddress[$accountUser->getAccount()->getId()] = true; } fclose($handler); $manager->flush(); }
/** * {@inheritdoc} */ public function load(ObjectManager $manager) { parent::load($manager); $userManager = $this->container->get('orob2b_account_user.manager'); $locator = $this->container->get('file_locator'); $filePath = $locator->locate('@OroB2BAccountBundle/Migrations/Data/Demo/ORM/data/account-users.csv'); if (is_array($filePath)) { $filePath = current($filePath); } $handler = fopen($filePath, 'r'); $headers = fgetcsv($handler, 1000, ','); while (($data = fgetcsv($handler, 1000, ',')) !== false) { $row = array_combine($headers, array_values($data)); $referenceName = LoadAccountUserDemoData::ACCOUNT_USERS_REFERENCE_PREFIX . $row['email']; if (!$this->hasReference($referenceName)) { continue; } /** @var AccountUser $accountUser */ $accountUser = $this->getReference($referenceName); $accountUser->addAddress($this->createAddress($row)); $userManager->updateUser($accountUser, false); } $userManager->getStorageManager()->flush(); fclose($handler); }