aboutsummaryrefslogtreecommitdiffstats
path: root/public/catalog/model/extension/total/klarna_fee.php
diff options
context:
space:
mode:
Diffstat (limited to 'public/catalog/model/extension/total/klarna_fee.php')
-rw-r--r--public/catalog/model/extension/total/klarna_fee.php53
1 files changed, 53 insertions, 0 deletions
diff --git a/public/catalog/model/extension/total/klarna_fee.php b/public/catalog/model/extension/total/klarna_fee.php
new file mode 100644
index 0000000..d53e0f6
--- /dev/null
+++ b/public/catalog/model/extension/total/klarna_fee.php
@@ -0,0 +1,53 @@
+<?php
+class ModelExtensionTotalKlarnaFee extends Model {
+ public function getTotal($totals) {
+ extract($totals);
+
+ $this->load->language('extension/total/klarna_fee');
+
+ $status = true;
+
+ $klarna_fee = $this->config->get('klarna_fee');
+
+ if (isset($this->session->data['payment_address_id'])) {
+ $this->load->model('account/address');
+
+ $address = $this->model_account_address->getAddress($this->session->data['payment_address_id']);
+ } elseif (isset($this->session->data['guest']['payment'])) {
+ $address = $this->session->data['guest']['payment'];
+ }
+
+ if (!isset($address)) {
+ $status = false;
+ } elseif (!isset($this->session->data['payment_method']['code']) || $this->session->data['payment_method']['code'] != 'klarna_invoice') {
+ $status = false;
+ } elseif (!isset($klarna_fee[$address['iso_code_3']])) {
+ $status = false;
+ } elseif (!$klarna_fee[$address['iso_code_3']]['status']) {
+ $status = false;
+ } elseif ($this->cart->getSubTotal() >= $klarna_fee[$address['iso_code_3']]['total']) {
+ $status = false;
+ }
+
+ if ($status) {
+ $total['totals'][] = array(
+ 'code' => 'klarna_fee',
+ 'title' => $this->language->get('text_klarna_fee'),
+ 'value' => $klarna_fee[$address['iso_code_3']]['fee'],
+ 'sort_order' => $klarna_fee[$address['iso_code_3']]['sort_order']
+ );
+
+ $tax_rates = $this->tax->getRates($klarna_fee[$address['iso_code_3']]['fee'], $klarna_fee[$address['iso_code_3']]['tax_class_id']);
+
+ foreach ($tax_rates as $tax_rate) {
+ if (!isset($total['taxes'][$tax_rate['tax_rate_id']])) {
+ $total['taxes'][$tax_rate['tax_rate_id']] = $tax_rate['amount'];
+ } else {
+ $total['taxes'][$tax_rate['tax_rate_id']] += $tax_rate['amount'];
+ }
+ }
+
+ $total['total'] += $klarna_fee[$address['iso_code_3']]['fee'];
+ }
+ }
+} \ No newline at end of file