Example #1
0
 /**
  * Add svea data to additional_information
  *
  * @param Varien_Event_Observer $observer
  */
 public function addSveaData(Varien_Event_Observer $observer)
 {
     $payment = $observer->getEvent()->getPayment();
     $data = $observer->getEvent()->getInput();
     $payment = $this->_addAdditionalInfoToPayment($data, $payment);
     if ($data['method'] == 'svea_invoice') {
         // Get fee and tax class
         $paymentFee = Mage::getStoreConfig('payment/svea_invoice/handling_fee');
         $paymentFeeTaxId = Mage::getStoreConfig('payment/svea_invoice/handling_fee_tax_class');
         if ($paymentFee > 0) {
             $quote = Mage::getSingleton('checkout/session')->getQuote();
             // Get tax rate for select tax
             $taxRequest = new Varien_Object();
             $taxRequest->setProductClassId($paymentFeeTaxId);
             $taxRequest->setCustomerClassId($quote->getCustomerTaxClassId());
             $taxRequest->setCountryId($quote->getShippingAddress()->getCountry());
             $taxHelper = Mage::getSingleton('tax/calculation');
             $percent = (100 + $taxHelper->getRate($taxRequest)) / 100;
             $paymentFeeTaxAmount = $paymentFee - $paymentFee / $percent;
             $payment->setAdditionalInformation('svea_payment_fee', $paymentFee);
             $payment->setAdditionalInformation('svea_payment_fee_tax_amount', $paymentFeeTaxAmount);
             $payment->setAdditionalInformation('svea_payment_fee_refunded', 0);
             $payment->setAdditionalInformation('svea_payment_fee_invoiced', 0);
         }
     }
 }