Example #1
0
 /**
  * Sample Address data
  *
  * @return array
  */
 private function getSampleAddressEntity()
 {
     $regionBuilder = Bootstrap::getObjectManager()->create('\\Magento\\Customer\\Service\\V1\\Data\\RegionBuilder');
     $this->_customerAddressBuilder->setCountryId('US')->setDefaultBilling(true)->setDefaultShipping(true)->setPostcode('75477')->setRegion($regionBuilder->setRegion('Alabama')->setRegionId(1)->setRegionCode('AL')->create())->setStreet(array('Green str, 67'))->setTelephone('3468676')->setCity('CityM')->setFirstname('John')->setLastname('Smith');
     $address1 = $this->_customerAddressBuilder->create();
     $this->_customerAddressBuilder->setCountryId('US')->setDefaultBilling(false)->setDefaultShipping(false)->setPostcode('47676')->setRegion($regionBuilder->setRegion('Alabama')->setRegionId(1)->setRegionCode('AL')->create())->setStreet(array('Black str, 48'))->setCity('CityX')->setTelephone('3234676')->setFirstname('John')->setLastname('Smith');
     $address2 = $this->_customerAddressBuilder->create();
     return array($address1, $address2);
 }
Example #2
0
 /**
  * Map Address to Address data object
  *
  * @param AddressBuilder $addressBuilder
  * @param Address $address
  * @return \Magento\Customer\Service\V1\Data\Address
  */
 public function mapAddress(AddressBuilder $addressBuilder, Address $address)
 {
     $addressBuilder->setCountryId($address->getCountryId());
     $addressBuilder->setRegion($addressBuilder->getRegionBuilder()->setRegionId($address->getRegionId())->create());
     $addressBuilder->setPostcode($address->getPostcode());
     $addressBuilder->setCity($address->getCity());
     $addressBuilder->setStreet($address->getStreet());
     return $addressBuilder->create();
 }
Example #3
0
 /**
  * Initialize form object
  *
  * @return $this
  *
  * @SuppressWarnings(PHPMD.CyclomaticComplexity)
  * @SuppressWarnings(PHPMD.NPathComplexity)
  * @SuppressWarnings(PHPMD.ExcessiveMethodLength)
  */
 public function initForm()
 {
     $customerData = $this->_backendSession->getCustomerData();
     /** @var \Magento\Framework\Data\Form $form */
     $form = $this->_formFactory->create();
     $fieldset = $form->addFieldset('address_fieldset', array('legend' => __("Edit Customer's Address")));
     $account = $customerData['account'];
     $this->_addressBuilder->populateWithArray(array());
     if (!empty($account) && isset($account['store_id'])) {
         $this->_addressBuilder->setCountryId($this->_coreData->getDefaultCountry($this->_storeManager->getStore($account['store_id'])));
     } else {
         $this->_addressBuilder->setCountryId($this->_coreData->getDefaultCountry());
     }
     $address = $this->_addressBuilder->create();
     $addressForm = $this->_metadataFormFactory->create('customer_address', 'adminhtml_customer_address', AddressConverter::toFlatArray($address));
     $attributes = $addressForm->getAttributes();
     if (isset($attributes['street'])) {
         if ($attributes['street']->getMultilineCount() <= 0) {
             $attributes['street'] = $this->_attributeMetadataBuilder->populate($attributes['street'])->setMultilineCount(self::DEFAULT_STREET_LINES_COUNT)->create();
         }
     }
     foreach ($attributes as $key => $attribute) {
         $attributes[$key] = $this->_attributeMetadataBuilder->populate($attribute)->setFrontendLabel(__($attribute->getFrontendLabel()))->setVisible(false)->create();
     }
     $this->_setFieldset($attributes, $fieldset);
     $regionElement = $form->getElement('region');
     if ($regionElement) {
         $regionElement->setRenderer($this->_regionFactory->create());
     }
     $regionElement = $form->getElement('region_id');
     if ($regionElement) {
         $regionElement->setNoDisplay(true);
     }
     $country = $form->getElement('country_id');
     if ($country) {
         $country->addClass('countries');
     }
     if ($this->isReadonly()) {
         foreach ($this->_metadataService->getAllAddressAttributeMetadata() as $attribute) {
             $element = $form->getElement($attribute->getAttributeCode());
             if ($element) {
                 $element->setReadonly(true, true);
             }
         }
     }
     $customerStoreId = null;
     if (!empty($account) && isset($account['id']) && isset($account['website_id'])) {
         $customerStoreId = $this->_storeManager->getWebsite($account['website_id'])->getDefaultStore()->getId();
     }
     $prefixElement = $form->getElement('prefix');
     if ($prefixElement) {
         $prefixOptions = $this->_customerHelper->getNamePrefixOptions($customerStoreId);
         if (!empty($prefixOptions)) {
             $fieldset->removeField($prefixElement->getId());
             $prefixField = $fieldset->addField($prefixElement->getId(), 'select', $prefixElement->getData(), '^');
             $prefixField->setValues($prefixOptions);
         }
     }
     $suffixElement = $form->getElement('suffix');
     if ($suffixElement) {
         $suffixOptions = $this->_customerHelper->getNameSuffixOptions($customerStoreId);
         if (!empty($suffixOptions)) {
             $fieldset->removeField($suffixElement->getId());
             $suffixField = $fieldset->addField($suffixElement->getId(), 'select', $suffixElement->getData(), $form->getElement('lastname')->getId());
             $suffixField->setValues($suffixOptions);
         }
     }
     $this->assign('customer', $this->_customerBuilder->populateWithArray($account)->create());
     $addressCollection = array();
     foreach ($customerData['address'] as $key => $addressData) {
         $addressCollection[$key] = $this->_addressBuilder->populateWithArray($addressData)->create();
     }
     $this->assign('addressCollection', $addressCollection);
     $form->setValues(AddressConverter::toFlatArray($address));
     $this->setForm($form);
     return $this;
 }
Example #4
0
 /**
  * @param AddressBuilder $addressBuilder
  */
 private function _fillMinimumRequiredFields(AddressBuilder $addressBuilder)
 {
     $addressBuilder->setFirstname($this->_expectedValues['firstname']);
     $addressBuilder->setLastname($this->_expectedValues['lastname']);
     $addressBuilder->setStreet($this->_expectedValues['street']);
     $addressBuilder->setCity($this->_expectedValues['city']);
     $addressBuilder->setCountryId($this->_expectedValues['country_id']);
     $addressBuilder->setRegion($this->objectManagerHelper->getObject('\\Magento\\Customer\\Service\\V1\\Data\\RegionBuilder')->setRegionId($this->_expectedValues['region']['region_id'])->setRegion($this->_expectedValues['region']['region'])->create());
     $addressBuilder->setPostcode($this->_expectedValues['postcode']);
     $addressBuilder->setTelephone($this->_expectedValues['telephone']);
 }