/**
  * @param Mage_Customer_Model_Address_Abstract $address
  *
  * @return Payone_Api_Request_AddressCheck
  */
 public function mapFromAddress(Mage_Customer_Model_Address_Abstract $address)
 {
     $request = $this->getFactory()->getRequestVerificationAddressCheck();
     $helper = $this->helper();
     $configGlobal = $this->getConfigGlobal();
     $config = $this->getConfig();
     // @todo move addressCheckType detection to method
     // @todo add option to configure used Adresschecktype externaly
     if ($address->getAddressType() === 'billing') {
         $request->setAddresschecktype($config->getCheckBilling());
         // check if billing is used for shipping and shipping-address has to be checked
         if ($address->getUseForShipping() === true and $config->mustCheckShipping()) {
             $request->setAddresschecktype($config->getCheckShipping());
         }
     } elseif ($address->getAddressType() === 'shipping') {
         $request->setAddresschecktype($config->getCheckShipping());
     } else {
         throw new Exception('Invalid Address Check Type');
     }
     $request->setAid($configGlobal->getAid());
     $request->setMid($configGlobal->getMid());
     $request->setMode($config->getMode());
     $request->setPortalid($configGlobal->getPortalid());
     $request->setKey($configGlobal->getKey());
     $request->setCity($address->getCity());
     $request->setCompany($address->getCompany());
     $request->setCountry($address->getCountry());
     $request->setFirstname($address->getFirstname());
     $request->setLastname($address->getLastname());
     $request->setIntegratorName('Magento');
     $request->setIntegratorVersion($helper->getMagentoVersion());
     $request->setSolutionName('votum');
     $request->setSolutionVersion($helper->getPayoneVersion());
     $request->setEncoding('UTF-8');
     $request->setLanguage($helper->getDefaultLanguage());
     $request->setStreet($address->getStreetFull());
     $request->setTelephonenumber($address->getTelephone());
     $countryId = $address->getCountryId();
     if ($countryId == "US" || $countryId == "CA") {
         $request->setState($address->getRegionCode());
     }
     $request->setZip($address->getPostcode());
     return $request;
 }
 /**
  * Check for an order address to be a billing address.
  *
  * @param Mage_Customer_Model_Address_Abstract
  * @return bool
  */
 protected function _isAddressBilling(Mage_Customer_Model_Address_Abstract $address)
 {
     return $address->getAddressType() === Mage_Customer_Model_Address_Abstract::TYPE_BILLING;
 }
 /**
  * Extract only the data from the addres that gets validated.
  * The extracted data can be compared to the data in an existing
  * @param Mage_Customer_Model_Address_Abstract $address
  * @return Mage_Customer_Model_Address_Abstract - an address object containing only the data that gets validated
  */
 protected function _extractValidatedAddressData(Mage_Customer_Model_Address_Abstract $address)
 {
     $validatedAddress = Mage::getModel('customer/address')->setData(['street' => $address->getData('street'), 'city' => $address->getCity(), 'region_id' => $address->getRegionId(), 'country_id' => $address->getCountryId(), 'postcode' => $address->getPostcode(), 'address_type' => $address->getAddressType()]);
     return $validatedAddress;
 }
 /**
  * Add a newly validated address. Validated addresses are stored by
  * type to prevent collisions.
  *
  * @param Mage_Customer_Model_Address_Abstract $address The address to add to the validated address container
  * @return EbayEnterprise_Address_Model_Suggestion_Group
  */
 public function addValidatedAddress(Mage_Customer_Model_Address_Abstract $address)
 {
     $type = $address->getAddressType() ?: 'customer';
     $this->_getValidatedAddresses()->setData($type, $address);
     return $this;
 }