shop.balmet.com

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

klarna_fee.php (1863B)


      1 <?php
      2 class ModelExtensionTotalKlarnaFee extends Model {
      3 	public function getTotal($totals) {
      4 		extract($totals);
      5 		
      6 		$this->load->language('extension/total/klarna_fee');
      7 
      8 		$status = true;
      9 
     10 		$klarna_fee = $this->config->get('klarna_fee');
     11 
     12 		if (isset($this->session->data['payment_address_id'])) {
     13 			$this->load->model('account/address');
     14 
     15 			$address = $this->model_account_address->getAddress($this->session->data['payment_address_id']);
     16 		} elseif (isset($this->session->data['guest']['payment'])) {
     17 			$address = $this->session->data['guest']['payment'];
     18 		}
     19 
     20 		if (!isset($address)) {
     21 			$status = false;
     22 		} elseif (!isset($this->session->data['payment_method']['code']) || $this->session->data['payment_method']['code'] != 'klarna_invoice') {
     23 			$status = false;
     24 		} elseif (!isset($klarna_fee[$address['iso_code_3']])) {
     25 			$status = false;
     26 		} elseif (!$klarna_fee[$address['iso_code_3']]['status']) {
     27 			$status = false;
     28 		} elseif ($this->cart->getSubTotal() >= $klarna_fee[$address['iso_code_3']]['total']) {
     29 			$status = false;
     30 		}
     31 
     32 		if ($status) {
     33 			$total['totals'][] = array(
     34 				'code'       => 'klarna_fee',
     35 				'title'      => $this->language->get('text_klarna_fee'),
     36 				'value'      => $klarna_fee[$address['iso_code_3']]['fee'],
     37 				'sort_order' => $klarna_fee[$address['iso_code_3']]['sort_order']
     38 			);
     39 
     40 			$tax_rates = $this->tax->getRates($klarna_fee[$address['iso_code_3']]['fee'], $klarna_fee[$address['iso_code_3']]['tax_class_id']);
     41 
     42 			foreach ($tax_rates as $tax_rate) {
     43 				if (!isset($total['taxes'][$tax_rate['tax_rate_id']])) {
     44 					$total['taxes'][$tax_rate['tax_rate_id']] = $tax_rate['amount'];
     45 				} else {
     46 					$total['taxes'][$tax_rate['tax_rate_id']] += $tax_rate['amount'];
     47 				}
     48 			}
     49 
     50 			$total['total'] += $klarna_fee[$address['iso_code_3']]['fee'];
     51 		}
     52 	}
     53 }