/**
  * Set correct values on subscription address based on given subscription and order address
  *
  * @param Adyen_Subscription_Model_Subscription $subscription
  * @param Mage_Sales_Model_Order_Address|Mage_Sales_Model_Quote_Address $address
  * @return $this
  */
 public function initAddress(Adyen_Subscription_Model_Subscription $subscription, $address)
 {
     $this->setSubscriptionId($subscription->getId());
     // Reset (possible) original values
     $this->setOrderAddressId(null)->setCustomerAddressId(null)->setQuoteAddressId(null);
     if ($address->getAddressType() == Mage_Sales_Model_Order_Address::TYPE_BILLING) {
         $this->setType(self::ADDRESS_TYPE_BILLING);
     } else {
         $this->setType(self::ADDRESS_TYPE_SHIPPING);
     }
     // Note: Only use customer address if 'save_in_address_book' or 'same_as_billing'
     // is also checked at the address, because it's not enough to rely solely on the
     // customer address ID, because an address can be changed when creating an order
     // in the backend, but this ID still remains when a quote is converted to an order
     if ($address->getCustomerAddressId() && $address->getData('save_in_address_book')) {
         // Create customer address
         $this->setSource(self::ADDRESS_SOURCE_CUSTOMER)->setCustomerAddressId($address->getCustomerAddressId());
     } elseif ($address instanceof Mage_Sales_Model_Quote_Address) {
         // Create quote address
         $this->setSource(self::ADDRESS_SOURCE_QUOTE)->setQuoteAddressId($address->getId());
     } else {
         // Create order address
         $this->setSource(self::ADDRESS_SOURCE_ORDER)->setOrderAddressId($address->getId());
     }
     return $this;
 }
示例#2
0
 /**
  * Create address request data
  *
  * @param Mage_Sales_Model_Order_Address $address
  * @return array
  */
 protected function _getAddressInfo($address)
 {
     $result = array();
     foreach ($this->_addressFileds as $addressField) {
         if ($address->hasData($addressField)) {
             $result[$addressField] = $address->getData($addressField);
         }
     }
     //Streets must be transfered separately
     $streets = $address->getStreet();
     $result['street'] = array_shift($streets);
     if ($street2 = array_shift($streets)) {
         $result['street2'] = $street2;
     }
     //Region code lookup
     $region = Mage::getModel('directory/region')->load($address->getData('region_id'));
     if ($region && $region->getId()) {
         $result['region'] = $region->getCode();
     } else {
         $result['region'] = $address->getRegion();
     }
     return $result;
 }
 /**
  * Gets the shipping attribute based on one of the id's from
  * RicardoMartins_PagSeguro_Model_Source_Customer_Address_*
  *
  * @param Mage_Sales_Model_Order_Address $address
  * @param string $attributeId
  *
  * @return string
  */
 private function _getAddressAttributeValue($address, $attributeId)
 {
     $isStreetline = preg_match('/^street_(\\d{1})$/', $attributeId, $matches);
     if ($isStreetline !== false && isset($matches[1])) {
         //uses streetlines
         return $address->getStreet(intval($matches[1]));
     } else {
         if ($attributeId == '') {
             //do not tell pagseguro
             return '';
         }
     }
     return (string) $address->getData($attributeId);
 }
 /**
  * Pega um atributo de endereço baseado em um dos Id's vindos de RicardoMartins_PagSeguro_Model_Source_Customer_Address_*
  * @param Mage_Sales_Model_Order_Address $address
  * @param string $attribute_id
  */
 private function _getAddressAttributeValue($address, $attribute_id)
 {
     $is_streetline = preg_match('/^street_(\\d{1})$/', $attribute_id, $matches);
     if ($is_streetline !== false && isset($matches[1])) {
         return $address->getStreet(intval($matches[1]));
     } else {
         if ($attribute_id == '') {
             return '';
         }
     }
     return (string) $address->getData($attribute_id);
 }
示例#5
0
 /**
  * @param Mage_Sales_Model_Order_Address $orderAddress
  * @param array $randomData
  */
 protected function _anonymizeOrderAddress($orderAddress, $randomData)
 {
     foreach ($this->_getAddressMapping() as $addressKey => $randomDataKey) {
         if (!$orderAddress->getData($addressKey)) {
             continue;
         }
         if (strlen($randomDataKey)) {
             $orderAddress->setData($addressKey, $randomData[$randomDataKey]);
         } else {
             $orderAddress->setData($addressKey, '');
         }
     }
     $orderAddress->getResource()->save($orderAddress);
     $this->_anonymizedOrderAddressIds[] = $orderAddress->getId();
     /* @var $quoteAddress Mage_Sales_Model_Quote_Address */
     $quoteAddress = Mage::getModel('sales/quote_address')->load($orderAddress->getQuoteAddressId());
     if ($quoteAddress->getId()) {
         $this->_anonymizeQuoteAddress($quoteAddress, $randomData);
     }
 }