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