public function buildOffice(AddressInfo $address_info)
 {
     $office = new Office();
     list($address1, $address2) = $address_info->getAddress();
     $office->setAddress($address1);
     $office->setAddress1($address2);
     $office->setZipCode($address_info->getZipCode());
     $office->setCity($address_info->getCity());
     $office->setState($address_info->getState());
     $office->setCountry($address_info->getCountry());
     return $office;
 }
 /**
  * given an address info
  * return GPS coordinates array($lat,$lng)
  * @param AddressInfo $address_info
  * @throws EntityValidationException
  * @return array
  */
 public function getAddressCoordinates(AddressInfo $address_info)
 {
     list($address1, $address2) = $address_info->getAddress();
     $address = $address1 . ' ' . $address2;
     $city = $address_info->getCity();
     $state = $address_info->getState();
     if (!empty($city)) {
         $address .= ", {$city}";
     }
     if (!empty($state)) {
         $address .= ", {$state}";
     }
     $zip_code = $address_info->getZipCode();
     $country = $address_info->getCountry();
     return $this->doGeoQuery($city, $country, $state, $address, $zip_code);
 }
 /**
  * Get model data as array
  * 
  * @return array
  */
 public function getData()
 {
     $data = array('firstName' => $this->_firstName, 'lastName' => $this->_lastName, 'gender' => $this->_gender, 'dob' => $this->_dateOfBirth, 'ip' => $this->_ip, 'company' => isset($this->_company) ? $this->_company : null, 'vatId' => isset($this->_vatId) ? $this->_vatId : null, 'email' => $this->_email, 'fax' => isset($this->_fax) ? $this->_fax : null, 'phone' => $this->_phone, 'billing' => $this->_billingAddressInfo->getData(), 'shipping' => $this->_shippingAddressInfo->getData(), 'nationality' => $this->_nationality, 'creditInquiry' => $this->_creditInquiry, 'bankAccount' => isset($this->_bankAccount) ? $this->_bankAccount->getData() : null);
     return $data;
 }
 /**
  * Retrieve a shippingAddressInfo model
  * 
  * @param order $order
  * @param int $orderId
  * @return AddressInfo
  */
 private static function getShippingAdressInfo(order $order, $orderId)
 {
     $countryId = is_array($order->delivery['country']) ? $order->delivery['country']['iso_code_2'] : Db::getRatepayOrderDataEntry($orderId, 'shipping_country_code');
     $addressInfo = new AddressInfo();
     $addressInfo->setCity($order->delivery['city'])->setCountryId($countryId)->setStreet($order->delivery['street_address'])->setZip($order->delivery['postcode']);
     $addressInfo->setType('DELIVERY');
     return $addressInfo;
 }