From c65992fef00925b36da42d85bc12f014ddc72f3e Mon Sep 17 00:00:00 2001
From: Richard Schreiber <wiffbi@gmail.com>
Date: Tue, 4 Mar 2025 09:58:02 +0100
Subject: [PATCH] fix fee_calc splitting with None tax-rules

---
 pretix_servicefees/signals.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/pretix_servicefees/signals.py b/pretix_servicefees/signals.py
index 884cb83..032cea7 100644
--- a/pretix_servicefees/signals.py
+++ b/pretix_servicefees/signals.py
@@ -141,14 +141,19 @@ def get_fees(
         if split_taxes:
             # split taxes based on products ordered
             d = defaultdict(lambda: Decimal("0.00"))
+            trs = {}
             for p in positions:
                 if isinstance(p, CartPosition):
                     tr = p.item.tax_rule
                 else:
                     tr = p.tax_rule
-                d[tr] += p.price - p.tax_value
+                if not tr:
+                    tr = tax_rule_zero
+                key = (tr.rate, tr.code)
+                d[key] += p.price - p.tax_value
+                trs[key] = tr
 
-            base_values = sorted([tuple(t) for t in d.items()], key=lambda t: t[0].rate)
+            base_values = sorted([(trs[t[0]], t[1]) for t in d.items()], key=lambda t: t[0].rate)
             sum_base = sum(t[1] for t in base_values)
             if sum_base:
                 fee_values = [