Exemple #1
0
 /**
  * @param \Magento\Sales\Model\Quote\Address $address
  * @return \Magento\Checkout\Service\V1\Data\Cart\Address
  */
 public function convertModelToDataObject(\Magento\Sales\Model\Quote\Address $address)
 {
     $data = [Address::KEY_COUNTRY_ID => $address->getCountryId(), Address::KEY_ID => $address->getId(), Address::KEY_CUSTOMER_ID => $address->getCustomerId(), Address::KEY_REGION => array(Region::KEY_REGION => $address->getRegion(), Region::KEY_REGION_ID => $address->getRegionId(), Region::KEY_REGION_CODE => $address->getRegionCode()), Address::KEY_STREET => $address->getStreet(), Address::KEY_COMPANY => $address->getCompany(), Address::KEY_TELEPHONE => $address->getTelephone(), Address::KEY_FAX => $address->getFax(), Address::KEY_POSTCODE => $address->getPostcode(), Address::KEY_CITY => $address->getCity(), Address::KEY_FIRSTNAME => $address->getFirstname(), Address::KEY_LASTNAME => $address->getLastname(), Address::KEY_MIDDLENAME => $address->getMiddlename(), Address::KEY_PREFIX => $address->getPrefix(), Address::KEY_SUFFIX => $address->getSuffix(), Address::KEY_EMAIL => $address->getEmail(), Address::KEY_VAT_ID => $address->getVatId()];
     foreach ($this->metadataService->getCustomAttributesMetadata() as $attributeMetadata) {
         $attributeCode = $attributeMetadata->getAttributeCode();
         $method = 'get' . SimpleDataObjectConverter::snakeCaseToCamelCase($attributeCode);
         $data[Address::CUSTOM_ATTRIBUTES_KEY][] = [AttributeValue::ATTRIBUTE_CODE => $attributeCode, AttributeValue::VALUE => $address->{$method}()];
     }
     return $this->addressBuilder->populateWithArray($data)->create();
 }
Exemple #2
0
 /**
  * Returns true if and only if $value meets the validation requirements
  *
  * If $value fails validation, then this method returns false, and
  * getMessages() will return an array of messages that explain why the
  * validation failed.
  *
  * @param  \Magento\Sales\Model\Quote\Address $value
  * @return boolean
  * @throws Zend_Validate_Exception If validation of $value is impossible
  */
 public function isValid($value)
 {
     $messages = array();
     $email = $value->getEmail();
     if (!empty($email) && !\Zend_Validate::is($email, 'EmailAddress')) {
         $messages['invalid_email_format'] = 'Invalid email format';
     }
     $countryId = $value->getCountryId();
     if (!empty($countryId)) {
         $country = $this->countryFactory->create();
         $country->load($countryId);
         if (!$country->getId()) {
             $messages['invalid_country_code'] = 'Invalid country code';
         }
     }
     $this->_addMessages($messages);
     return empty($messages);
 }
Exemple #3
0
 /**
  * Validate VAT number
  *
  * @param \Magento\Sales\Model\Quote\Address $quoteAddress
  * @param \Magento\Store\Model\Store|int $store
  * @return \Magento\Framework\Object
  */
 public function validate(\Magento\Sales\Model\Quote\Address $quoteAddress, $store)
 {
     $customerCountryCode = $quoteAddress->getCountryId();
     $customerVatNumber = $quoteAddress->getVatId();
     $merchantCountryCode = $this->customerData->getMerchantCountryCode();
     $merchantVatNumber = $this->customerData->getMerchantVatNumber();
     $validationResult = null;
     if ($this->customerAddress->hasValidateOnEachTransaction($store) || $customerCountryCode != $quoteAddress->getValidatedCountryCode() || $customerVatNumber != $quoteAddress->getValidatedVatNumber()) {
         // Send request to gateway
         $validationResult = $this->customerData->checkVatNumber($customerCountryCode, $customerVatNumber, $merchantVatNumber !== '' ? $merchantCountryCode : '', $merchantVatNumber);
         // Store validation results in corresponding quote address
         $quoteAddress->setVatIsValid((int) $validationResult->getIsValid());
         $quoteAddress->setVatRequestId($validationResult->getRequestIdentifier());
         $quoteAddress->setVatRequestDate($validationResult->getRequestDate());
         $quoteAddress->setVatRequestSuccess($validationResult->getRequestSuccess());
         $quoteAddress->setValidatedVatNumber($customerVatNumber);
         $quoteAddress->setValidatedCountryCode($customerCountryCode);
         $quoteAddress->save();
     } else {
         // Restore validation results from corresponding quote address
         $validationResult = new \Magento\Framework\Object(array('is_valid' => (int) $quoteAddress->getVatIsValid(), 'request_identifier' => (string) $quoteAddress->getVatRequestId(), 'request_date' => (string) $quoteAddress->getVatRequestDate(), 'request_success' => (bool) $quoteAddress->getVatRequestSuccess()));
     }
     return $validationResult;
 }
 /**
  * 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();
 }