/** * @param VirtueMartCart $cart * @param $method * @return null|string */ protected function getListFEPayment (VirtueMartCart $cart, $method) { $cart_currency_code = ShopFunctions::getCurrencyByID ($cart->pricesCurrency, 'currency_code_3'); $country_code = NULL; $countryId = 0; $this->_getCountryCode ($cart, $country_code, $countryId); if (!($cData = $this->checkCountryCondition ($method, $country_code, $cart))) { return NULL; } try { $pclasses = KlarnaHandler::getPClasses (NULL, KlarnaHandler::getKlarnaMode ($method, $cData['country_code_3']), $cData); } catch (Exception $e) { vmError ($e->getMessage (), $e->getMessage ()); return NULL; } $specCamp = 0; $partPay = 0; $this->getNbPClasses ($pclasses, $specCamp, $partPay); $sessionKlarnaData = $this->getKlarnaSessionData (); $klarna_paymentmethod = ""; if (isset($sessionKlarnaData->klarna_paymentmethod)) { $klarna_paymentmethod = $sessionKlarnaData->klarna_paymentmethod; } $html = ''; $checked = 'checked="checked"'; $payments = new klarna_payments($cData, KlarnaHandler::getShipToAddress ($cart)); if (in_array ('invoice', $cData['payments_activated'])) { $payment_params = $payments->get_payment_params ($method, 'invoice', $cart); $payment_form = $this->renderByLayout ('payment_form', array('payment_params' => $payment_params, 'payment_currency_info' => $payment_params['payment_currency_info'],), 'klarna', 'payment'); $selected = ($klarna_paymentmethod == 'klarna_invoice' AND $method->virtuemart_paymentmethod_id == $cart->virtuemart_paymentmethod_id) ? $checked : ""; $html .= $this->renderByLayout ('displaypayment', array( 'stype' => 'invoice', 'id' => $payment_params['id'], 'module' => $payment_params['module'], 'klarna_form' => $payment_form, 'virtuemart_paymentmethod_id' => $method->virtuemart_paymentmethod_id, 'klarna_paymentmethod' => $klarna_paymentmethod, 'selected' => $selected )); } if (in_array ('part', $cData['payments_activated'])) { if (strtolower ($country_code) == 'nld') { // Since 12/09/12: merchants can sell goods with Klarna Invoice up to thousands of euros. So the price check has been moved here if (!KlarnaHandler::checkPartNLpriceCondition ($cart)) { // We can't show our payment options for Dutch customers // if price exceeds 250 euro. Will be replaced with ILT in // the future. $partPay = 0; } } if (!KlarnaHandler::checkPartpriceCondition ($cData, $cart)) { $partPay = 0; } if ($partPay > 0) { if ($payment_params = $payments->get_payment_params ($method, 'part', $cart, $cData['virtuemart_currency_id'], $cData['vendor_currency'])) { $payment_form = $this->renderByLayout ('payment_form', array('payment_params' => $payment_params, 'payment_currency_info' => $payment_params['payment_currency_info'],), 'klarna', 'payment'); $selected = ($klarna_paymentmethod == 'klarna_part' AND $method->virtuemart_paymentmethod_id == $cart->virtuemart_paymentmethod_id) ? $checked : ""; $html .= $this->renderByLayout ('displaypayment', array( 'stype' => 'part', 'id' => $payment_params['id'], 'module' => $payment_params['module'], 'klarna_form' => $payment_form, 'virtuemart_paymentmethod_id' => $method->virtuemart_paymentmethod_id, 'klarna_paymentmethod' => $klarna_paymentmethod, 'selected' => $selected )); } } } // not tested yet /* if ( $specCamp > 0) { if ($payment_params = $payments->get_payment_params ($method, 'spec', $cart, $cData['virtuemart_currency_id'])) { $payment_form = $this->renderByLayout ('payment_form', array('payment_params' => $payment_params, 'payment_currency_info' => $payment_params['payment_currency_info'],), 'klarna', 'payment'); $selected = ($klarna_paymentmethod == 'klarna_spec' AND $method->virtuemart_paymentmethod_id == $cart->virtuemart_paymentmethod_id) ? $checked : ""; $html .= $this->renderByLayout ('displaypayment', array( 'stype' => 'spec', 'id' => $payment_params['id'], 'module' => $payment_params['module'], 'klarna_form' => $payment_form, 'virtuemart_paymentmethod_id' => $method->virtuemart_paymentmethod_id, 'klarna_paymentmethod' => $klarna_paymentmethod, 'selected' => $selected )); } } */ return $html; }
function displayKlarnaLogos($method, $virtuemart_country_id, $shipTo, $total) { $session = JFactory::getSession(); $sessionKlarna = $session->get('Klarna', 0, 'vm'); if (empty($sessionKlarna)) { return ''; } $sessionKlarnaData = unserialize($sessionKlarna); $address['virtuemart_country_id'] = $virtuemart_country_id; $cData = KlarnaHandler::getcData($method, $address); $country2 = strtolower(shopFunctions::getCountryByID($virtuemart_country_id, 'country_2_code')); switch ($sessionKlarnaData->klarna_option) { case 'invoice': $image = '/klarna_invoice_' . $country2 . '.png'; $klarna_invoice_fee = KlarnaHandler::getInvoiceFeeInclTax($method, $cData['country_code_3']); $currency = CurrencyDisplay::getInstance(); $display_fee = $currency->priceDisplay($klarna_invoice_fee); $text = JText::sprintf('VMPAYMENT_KLARNA_INVOICE_TITLE_NO_PRICE', $display_fee); break; case 'partpayment': case 'part': $image = '/klarna_part_' . $country2 . '.png'; $address['virtuemart_country_id'] = $virtuemart_country_id; $pclasses = KlarnaHandler::getPClasses(NULL, $country2, KlarnaHandler::getKlarnaMode($method), $cData); if (!class_exists('Klarna_payments')) { require JPATH_VMKLARNAPLUGIN . DS . 'klarna' . DS . 'helpers' . DS . 'klarna_payments.php'; } if (!class_exists('KlarnaVm2API')) { require JPATH_VMKLARNAPLUGIN . DS . 'klarna' . DS . 'helpers' . DS . 'klarna_vm2api.php'; } $payments = new klarna_payments($cData, $shipTo); //vmdebug('displaylogos',$cart_prices); $totalInPaymentCurrency = KlarnaHandler::convertPrice($total, $cData['currency_code']); $text = $payments->displayPclass($sessionKlarnaData->KLARNA_DATA['pclass'], $totalInPaymentCurrency); // .' '.$total; break; case 'speccamp': $image = 'klarna_logo.png'; $text = JText::_('VMPAYMENT_KLARNA_SPEC_TITLE'); break; default: $image = ''; $text = ''; break; } $html = $this->renderByLayout('payment_cart', array('logo' => $image, 'description' => $text)); return $html; }
/** * @param VirtueMartCart $cart * @param $method * @return null|string */ protected function getListFEPayment(VirtueMartCart $cart, $method) { $cart_currency_code = ShopFunctions::getCurrencyByID($cart->pricesCurrency, 'currency_code_3'); $this->_getCartAddressCountryCode($cart, $country_code, $countryId); if (!($cData = $this->checkCountryCondition($method, $country_code, $cart))) { return NULL; } $pclasses = KlarnaHandler::getPClasses(NULL, KlarnaHandler::getKlarnaMode($method, $cData['country_code_3']), $cData); $this->getNbPClasses($pclasses, $specCamp, $partPay); $sessionKlarnaData = $this->getKlarnaSessionData(); $klarna_paymentmethod = ""; if (isset($sessionKlarnaData->klarna_paymentmethod)) { $klarna_paymentmethod = $sessionKlarnaData->klarna_paymentmethod; } $html = ''; $checked = 'checked="checked"'; $payments = new klarna_payments($cData, KlarnaHandler::getShipToAddress($cart)); $payment_params = $payments->get_payment_params($method, 'invoice', $cart); $payment_form = $this->renderByLayout('payment_form', array('payment_params' => $payment_params, 'payment_currency_info' => $payment_params['payment_currency_info']), 'klarna', 'payment'); $selected = ($klarna_paymentmethod == 'klarna_invoice' and $method->virtuemart_paymentmethod_id == $cart->virtuemart_paymentmethod_id) ? $checked : ""; $html .= $this->renderByLayout('displaypayment', array('stype' => 'invoice', 'id' => $payment_params['id'], 'module' => $payment_params['module'], 'klarna_form' => $payment_form, 'virtuemart_paymentmethod_id' => $method->virtuemart_paymentmethod_id, 'klarna_paymentmethod' => $klarna_paymentmethod, 'selected' => $selected)); if ($partPay > 0) { if ($payment_params = $payments->get_payment_params($method, 'part', $cart, $cData['virtuemart_currency_id'])) { $payment_form = $this->renderByLayout('payment_form', array('payment_params' => $payment_params, 'payment_currency_info' => $payment_params['payment_currency_info']), 'klarna', 'payment'); $selected = ($klarna_paymentmethod == 'klarna_part' and $method->virtuemart_paymentmethod_id == $cart->v) ? $checked : ""; $html .= $this->renderByLayout('displaypayment', array('stype' => 'part', 'id' => $payment_params['id'], 'module' => $payment_params['module'], 'klarna_form' => $payment_form, 'virtuemart_paymentmethod_id' => $method->virtuemart_paymentmethod_id, 'klarna_paymentmethod' => $klarna_paymentmethod, 'selected' => $selected)); } } if ($specCamp > 0) { if ($payment_params = $payments->get_payment_params($method, 'spec', $cart, $cData['virtuemart_currency_id'])) { $payment_form = $this->renderByLayout('payment_form', array('payment_params' => $payment_params, 'payment_currency_info' => $payment_params['payment_currency_info']), 'klarna', 'payment'); $selected = ($klarna_paymentmethod == 'klarna_spec' and $method->virtuemart_paymentmethod_id == $cart->virtuemart_paymentmethod_id) ? $checked : ""; $html .= $this->renderByLayout('displaypayment', array('stype' => 'spec', 'id' => $payment_params['id'], 'module' => $payment_params['module'], 'klarna_form' => $payment_form, 'virtuemart_paymentmethod_id' => $method->virtuemart_paymentmethod_id, 'klarna_paymentmethod' => $klarna_paymentmethod, 'selected' => $selected)); } } return $html; }