/** * Compares an order-address response with its origin entities. * * @param OrderAddressInterface $orderAddress * @param Address $address * @param ContactInterface $contact * @param AccountInterface $account */ protected function checkOrderAddress($orderAddress, Address $address, ContactInterface $contact, AccountInterface $account = null) { // Contact $this->assertEquals($contact->getFirstName(), $orderAddress->firstName); $this->assertEquals($contact->getLastName(), $orderAddress->lastName); if ($contact->getTitle() !== null) { $this->assertEquals($contact->getTitle()->getTitle(), $orderAddress->title); } // Address $this->assertEqualsIfExists($address->getStreet(), $orderAddress, 'street'); $this->assertEqualsIfExists($address->getAddition(), $orderAddress, 'addition'); $this->assertEqualsIfExists($address->getNumber(), $orderAddress, 'number'); $this->assertEqualsIfExists($address->getCity(), $orderAddress, 'city'); $this->assertEqualsIfExists($address->getZip(), $orderAddress, 'zip'); $this->assertEqualsIfExists($address->getCountry()->getName(), $orderAddress, 'country'); $this->assertEqualsIfExists($address->getPostboxNumber(), $orderAddress, 'postboxNumber'); $this->assertEqualsIfExists($address->getPostboxCity(), $orderAddress, 'postboxCity'); $this->assertEqualsIfExists($address->getPostboxPostcode(), $orderAddress, 'postboxPostcode'); // Account if ($account) { $this->assertEqualsIfExists($account->getName(), $orderAddress, 'accountName'); $this->assertEqualsIfExists($account->getUid(), $orderAddress, 'uid'); } }
/** * returns addresses from account or contact. * * @param AccountInterface|Contact $entity * * @return \Doctrine\Common\Collections\Collection|null */ private function getAddresses($entity) { if ($entity instanceof AccountInterface) { return $entity->getAccountAddresses(); } elseif ($entity instanceof Contact) { return $entity->getContactAddresses(); } return; }
/** * removes the address relation from a contact and also deletes the address if it has no more relations. * * @param AccountInterface $account * @param AccountAddressEntity $accountAddress * * @return mixed|void * * @throws \Exception */ public function removeAddressRelation($account, $accountAddress) { if (!$account || !$accountAddress) { throw new \Exception('Account and AccountAddress cannot be null'); } // reload address to get all data (including relational data) /** @var AddressEntity $address */ $address = $accountAddress->getAddress(); $address = $this->em->getRepository('SuluContactBundle:Address')->findById($address->getId()); $isMain = $accountAddress->getMain(); // remove relation $address->removeAccountAddress($accountAddress); $account->removeAccountAddress($accountAddress); // if was main, set a new one if ($isMain) { $this->setMainForCollection($account->getAccountContacts()); } // delete address if it has no more relations if (!$address->hasRelations()) { $this->em->remove($address); } $this->em->remove($accountAddress); }
/** * Parses the account data. * * @param AccountInterface $account * * @return array */ protected function parseAccount(AccountInterface $account) { if ($account) { $data = []; $data['id'] = $account->getId(); $data['name'] = $account->getName(); $data['phone'] = $account->getMainPhone(); $data['email'] = $account->getMainEmail(); $data['url'] = $account->getMainUrl(); // get main contact if ($account->getMainContact()) { $data['contact'] = $account->getMainContact()->getFullName(); } /* @var Address $accountAddress */ $accountAddress = $account->getMainAddress(); if ($accountAddress) { $data['address']['street'] = $accountAddress->getStreet(); $data['address']['number'] = $accountAddress->getNumber(); $data['address']['zip'] = $accountAddress->getZip(); $data['address']['city'] = $accountAddress->getCity(); $data['address']['country'] = $accountAddress->getCountry()->getName(); } return $data; } else { return null; } }
/** * Process geiven entity for patch. * * @param AccountInterface $account * @param Request $request * @param ObjectManager $entityManager */ protected function doPatch(AccountInterface $account, Request $request, ObjectManager $entityManager) { $accountManager = $this->getAccountManager(); if ($request->get('uid') !== null) { $account->setUid($request->get('uid')); } if ($request->get('registerNumber') !== null) { $account->setRegisterNumber($request->get('registerNumber')); } if ($request->get('number') !== null) { $account->setNumber($request->get('number')); } if ($request->get('placeOfJurisdiction') !== null) { $account->setPlaceOfJurisdiction($request->get('placeOfJurisdiction')); } if (array_key_exists('id', $request->get('logo', []))) { $accountManager->setLogo($account, $request->get('logo')['id']); } if ($request->get('medias') !== null) { $accountManager->setMedias($account, $request->get('medias')); } // Check if mainContact is set if (($mainContactRequest = $request->get('mainContact')) !== null) { $mainContact = $entityManager->getRepository($this->container->getParameter('sulu.model.contact.class'))->find($mainContactRequest['id']); if ($mainContact) { $account->setMainContact($mainContact); } } // Process details if ($request->get('bankAccounts') !== null) { $accountManager->processBankAccounts($account, $request->get('bankAccounts', [])); } }
/** * Get Email-Address of account * * @param AccountInterface $account * * @return string|null */ public function getEmailAddressOfAccount(AccountInterface $account) { $accountMainEmail = $account->getMainEmail(); if ($accountMainEmail) { return $accountMainEmail; } return null; }