/**
  * Build a KlarnaAddr from an osCommerce order address array, and takes
  * missing information from $_POST (collected from our checkout).
  *
  * @param array $xtcAddress xtcommerce order address array
  *
  * @return KlarnaAddr klarnaAddr object
  */
 public function xtcAddressToKlarnaAddr($xtcAddress)
 {
     $country = strtolower($xtcAddress['country']['iso_code_2']);
     $splitAddr = KiTT_Addresses::splitStreet($xtcAddress["street_address"], $country);
     $street = '';
     $houseno = '';
     $housext = '';
     if (array_key_exists('street', $splitAddr)) {
         $street = $splitAddr['street'];
     }
     if (array_key_exists('house_number', $splitAddr)) {
         $houseno = $splitAddr['house_number'];
     }
     if (array_key_exists('house_extension', $splitAddr)) {
         $housext = $splitAddr['house_extension'];
     }
     $address = new KlarnaAddr(KiTT_String::encode($_POST["klarna_email"]), KiTT_String::encode($_POST["klarna_phone"]), KiTT_String::encode($_POST["klarna_phone"]), KiTT_String::encode($xtcAddress["firstname"]), KiTT_String::encode($xtcAddress["lastname"]), "", KiTT_String::encode($street), KiTT_String::encode($xtcAddress["postcode"]), KiTT_String::encode($xtcAddress["city"]), KiTT_String::encode($country), KiTT_String::encode($houseno), KiTT_String::encode($housext));
     return $address;
 }
 /**
  * Populate an array with customer information
  *
  * @param object $order osCommerce order object
  *
  * @return array
  */
 public function collectKlarnaData($order)
 {
     $klarna_data = array();
     $klarna_data['phone_number'] = $order->customer['telephone'];
     $klarna_data['email_address'] = $order->customer['email_address'];
     $klarna_data['reference'] = $order->delivery['firstname'] . " " . $order->delivery['lastname'];
     $address = KiTT_Addresses::splitStreet($order->delivery['street_address'], $this->_country);
     $klarna_data = array_merge($klarna_data, $address);
     if (KiTT_CountryLogic::needDateOfBirth($this->_country)) {
         // Get date of birth
         $customer_query = $this->_klarnaDB->query("SELECT DATE_FORMAT(customers_dob, " . "'%d%m%Y') AS customers_dob from " . TABLE_CUSTOMERS . " where customers_id = '" . (int) $_SESSION['customer_id'] . "'");
         $customer = $customer_query->getArray();
         $dob = $customer['customers_dob'];
         $klarna_data['birth_year'] = substr($dob, 4, 4);
         $klarna_data['birth_month'] = substr($dob, 2, 2);
         $klarna_data['birth_day'] = substr($dob, 0, 2);
     }
     $klarna_data['first_name'] = $order->delivery['firstname'];
     $klarna_data['last_name'] = $order->delivery['lastname'];
     $klarna_data['city'] = $order->delivery['city'];
     $klarna_data['zipcode'] = $order->delivery['postcode'];
     $klarna_data['company_name'] = $order->delivery['company'];
     $klarna_data['gender'] = $order->customer['gender'] == 'm' ? 1 : 0;
     foreach ($klarna_data as $key => $value) {
         $klarna_data[$key] = KiTT_String::encode($value, null, 'UTF-8');
     }
     return $klarna_data;
 }