/** * @param Mage_Sales_Model_Quote_Payment $payment * @return void */ public function executeByPayment(Mage_Sales_Model_Quote_Payment $payment) { $bankaccount = $payment->getPayoneAccountNumber(); $bankcode = $payment->getPayoneBankCode(); $bankcountry = $payment->getPayoneBankCountry(); $iban = $payment->getPayoneSepaIban(); $bic = $payment->getPayoneSepaBic(); if (empty($bankcountry)) { $bankcountry = $payment->getQuote()->getBillingAddress()->getCountry(); } $this->execute($bankaccount, $bankcode, $bankcountry, $iban, $bic); }
public function exportPaymentTo(Mage_Sales_Model_Quote_Payment $payment) { $resource = $this->getPayment(); if (!$resource->getMethod()) { return $this; } $countryId = $this->getAddress()->getCountryId(); $payment->setMethod($resource->getMethod()); $method = $payment->getMethodInstance(); if (!$method->isAvailable($payment->getQuote()) || !$method->canUseForCountry($countryId)) { $payment->unsMethod(); } return $this; }
/** * Update the resource model * * @param Mage_Sales_Model_Quote_Payment $resource * @param array $data * * @return Mage_Sales_Model_Quote_Item */ public function updateResource(Mage_Sales_Model_Quote_Payment $resource, array $data) { // Store current state $actionType = $this->getActionType(); $operation = $this->getOperation(); // Change state $this->setActionType(self::ACTION_TYPE_ENTITY); $this->setOperation(self::OPERATION_UPDATE); // Get a filter instance $filter = $this->getFilter(); // Fire event - before filter $data = new Varien_Object($data); Mage::dispatchEvent('aoe_cartapi_payment_update_before', ['data' => $data, 'filter' => $filter, 'resource' => $resource]); $data = $data->getData(); // Filter raw incoming data $data = $filter->in($data); // Clean up input format to what Magento expects if (isset($data['data']) && is_array($data['data'])) { $base = $data; unset($base['data']); $data = array_merge($data['data'], $base); } else { unset($data['data']); } // Map data keys $data = $this->mapAttributes($data); // Manual data setting $quote = $resource->getQuote(); if ($quote->isVirtual()) { $quote->getBillingAddress()->setPaymentMethod(isset($data['method']) ? $data['method'] : null); } else { $quote->getShippingAddress()->setPaymentMethod(isset($data['method']) ? $data['method'] : null); // Shipping totals may be affected by payment method $quote->getShippingAddress()->setCollectShippingRates(true); } // Define validation checks $data['checks'] = Mage_Payment_Model_Method_Abstract::CHECK_USE_CHECKOUT | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_COUNTRY | Mage_Payment_Model_Method_Abstract::CHECK_USE_FOR_CURRENCY | Mage_Payment_Model_Method_Abstract::CHECK_ORDER_TOTAL_MIN_MAX; // Update model $resource->importData($data); // Fire event - after $data = new Varien_Object($data); Mage::dispatchEvent('aoe_cartapi_payment_update_after', ['data' => $data, 'filter' => $filter, 'resource' => $resource]); // Restore old state $this->setActionType($actionType); $this->setOperation($operation); // Return updated resource return $resource; }