/** * 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; }
/** * 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); }
/** * @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); } }