/**
  * Get PaynetEasy address object by Prestashop cart object.
  *
  * @param       Cart        $prestashop_cart        Prestashop cart.
  *
  * @return      BillingAddress      PaynetEasy payment transaction
  */
 protected function getPaynetAddress(Cart $prestashop_cart)
 {
     $paynet_address = new BillingAddress();
     $prestashop_address = new Address(intval($prestashop_cart->id_address_invoice));
     $prestashop_country = new Country(intval($prestashop_address->id_country));
     // In Prestashop to many countries has states.
     // PaynetEasy API requires state code only for some countries.
     if (RegionFinder::hasStates($prestashop_country->iso_code) && Country::containsStates($prestashop_address->id_country)) {
         $prestashop_state = new State($prestashop_address->id_state);
         $paynet_address->setState($prestashop_state->iso_code);
     }
     if (Validate::isPhoneNumber($prestashop_address->phone)) {
         $paynet_address->setPhone($prestashop_address->phone);
     }
     if (Validate::isPhoneNumber($prestashop_address->phone_mobile)) {
         $paynet_address->setCellPhone($prestashop_address->phone_mobile);
     }
     $paynet_address->setCountry($prestashop_country->iso_code)->setCity($prestashop_address->city)->setFirstLine($prestashop_address->address1)->setZipCode($prestashop_address->postcode);
     return $paynet_address;
 }