Example #1
0
 /**
  * Set region to the attribute
  *
  * @param \Magento\Framework\DataObject $object
  * @return $this
  */
 public function beforeSave($object)
 {
     if (is_numeric($object->getRegion())) {
         $region = $this->_regionFactory->create()->load((int) $object->getRegion());
         if ($region) {
             $object->setRegionId($region->getId());
             $object->setRegion($region->getCode());
         }
     }
     return $this;
 }
Example #2
0
 /**
  * Get billing address request data
  *
  * @param \Magento\Framework\DataObject $address
  * @return array
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 protected function _getBillingAddress(\Magento\Framework\DataObject $address)
 {
     $region = $address->getRegionCode() ? $address->getRegionCode() : $address->getRegion();
     $request = ['billing_first_name' => $address->getFirstname(), 'billing_last_name' => $address->getLastname(), 'billing_city' => $address->getCity(), 'billing_state' => $region ? $region : $address->getCity(), 'billing_zip' => $address->getPostcode(), 'billing_country' => $address->getCountryId()];
     // convert streets to tow lines format
     $street = $this->_customerAddress->convertStreetLines($address->getStreet(), 2);
     $request['billing_address1'] = isset($street[0]) ? $street[0] : '';
     $request['billing_address2'] = isset($street[1]) ? $street[1] : '';
     return $request;
 }
Example #3
0
 /**
  * @param \Magento\Framework\DataObject $address
  * @param bool $html
  * @return string
  */
 public function formatAddress(\Magento\Framework\DataObject $address, $html = false)
 {
     //TODO: is it still used?
     $address->getRegion();
     $address->getCountry();
     $template = $this->getData('address_template_' . ($html ? 'html' : 'plain'));
     if (empty($template)) {
         if (!$this->getId()) {
             $template = '{{firstname}} {{lastname}}';
         } elseif (!$html) {
             $template = "{{firstname}} {{lastname}}\n{{company}}\n{{street1}}\n{{street2}}\n{{city}}, {{region}} {{postcode}}";
         } else {
             $template = "{{firstname}} {{lastname}}<br/>\n{{street}}<br/>\n{{city}}, {{region}} {{postcode}}<br/>\nT: {{telephone}}";
         }
     }
     $filter = new \Magento\Framework\Filter\Template\Simple();
     $addressText = $filter->setData($address->getData())->filter($template);
     if ($html) {
         $addressText = preg_replace('#(<br\\s*/?>\\s*){2,}#im', '<br/>', $addressText);
     } else {
         $addressText = preg_replace('#(\\n\\s*){2,}#m', "\n", $addressText);
     }
     return $addressText;
 }
Example #4
0
 /**
  * Export region code from address data
  *
  * @param DataObject $address
  * @return string
  */
 protected function getRegion(DataObject $address)
 {
     // get region code, otherwise - region, otherwise - city
     return $address->getRegionCode() ?: ($address->getRegion() ?: $address->getCity());
 }
Example #5
0
 /**
  * Adopt specified address object to be compatible with Magento
  *
  * @param \Magento\Framework\DataObject $address
  * @return void
  */
 protected function _applyStreetAndRegionWorkarounds(\Magento\Framework\DataObject $address)
 {
     // merge street addresses into 1
     if ($address->hasStreet2()) {
         $address->setStreet(implode("\n", [$address->getStreet(), $address->getStreetLine(2)]));
         $address->unsStreet2();
     }
     // attempt to fetch region_id from directory
     if ($address->getCountryId() && $address->getRegion()) {
         $regions = $this->_countryFactory->create()->loadByCode($address->getCountryId())->getRegionCollection()->addRegionCodeOrNameFilter($address->getRegion())->setPageSize(1);
         foreach ($regions as $region) {
             $address->setRegionId($region->getId());
             $address->setExportedKeys(array_merge($address->getExportedKeys(), ['region_id']));
             break;
         }
     }
 }