From 3501703c15ac6c2641c734b357482591e8dfc3e1 Mon Sep 17 00:00:00 2001
From: Bartuccio Antoine
Date: Tue, 5 Nov 2019 19:49:55 +0100
Subject: [PATCH] eboutic: don't display future account balance if contains
refilling item
---
eboutic/models.py | 7 +++++++
eboutic/templates/eboutic/eboutic_main.jinja | 11 +++++++----
eboutic/templates/eboutic/eboutic_makecommand.jinja | 13 ++++++++-----
3 files changed, 22 insertions(+), 9 deletions(-)
diff --git a/eboutic/models.py b/eboutic/models.py
index ab7485de..4d43ce26 100644
--- a/eboutic/models.py
+++ b/eboutic/models.py
@@ -24,6 +24,7 @@
from django.db import models, DataError
from django.utils.translation import ugettext_lazy as _
+from django.utils.functional import cached_property
from django.conf import settings
from accounting.models import CurrencyField
@@ -68,6 +69,12 @@ class Basket(models.Model):
if item.quantity <= 0:
item.delete()
+ @cached_property
+ def contains_refilling_item(self):
+ return self.items.filter(
+ type_id=settings.SITH_COUNTER_PRODUCTTYPE_REFILLING
+ ).exists()
+
def get_total(self):
total = 0
for i in self.items.all():
diff --git a/eboutic/templates/eboutic/eboutic_main.jinja b/eboutic/templates/eboutic/eboutic_main.jinja
index d416161e..38a212b1 100644
--- a/eboutic/templates/eboutic/eboutic_main.jinja
+++ b/eboutic/templates/eboutic/eboutic_main.jinja
@@ -35,10 +35,13 @@
{% trans %}Basket amount: {% endtrans %}{{ "%0.2f"|format(basket.get_total()) }} €
{% if customer_amount != None %}
-
- {% trans %}Current account amount: {% endtrans %}{{ "%0.2f"|format(customer_amount) }} €
-
- {% trans %}Remaining account amount: {% endtrans %}{{ "%0.2f"|format(customer_amount - basket.get_total()) }} €
+
+ {% trans %}Current account amount: {% endtrans %}{{ "%0.2f"|format(customer_amount) }} €
+
+ {% if not basket.contains_refilling_item %}
+
+ {% trans %}Remaining account amount: {% endtrans %}{{ "%0.2f"|format(customer_amount - basket.get_total()) }} €
+ {% endif %}
{% endif %}
diff --git a/eboutic/templates/eboutic/eboutic_makecommand.jinja b/eboutic/templates/eboutic/eboutic_makecommand.jinja
index b9a3ed4d..aab34d46 100644
--- a/eboutic/templates/eboutic/eboutic_makecommand.jinja
+++ b/eboutic/templates/eboutic/eboutic_makecommand.jinja
@@ -32,10 +32,13 @@
{% trans %}Basket amount: {% endtrans %}{{ "%0.2f"|format(basket.get_total()) }} €
{% if customer_amount != None %}
-
- {% trans %}Current account amount: {% endtrans %}{{ "%0.2f"|format(customer_amount) }} €
-
- {% trans %}Remaining account amount: {% endtrans %}{{ "%0.2f"|format(customer_amount - basket.get_total()) }} €
+
+ {% trans %}Current account amount: {% endtrans %}{{ "%0.2f"|format(customer_amount) }} €
+
+ {% if not basket.contains_refilling_item %}
+
+ {% trans %}Remaining account amount: {% endtrans %}{{ "%0.2f"|format(customer_amount - basket.get_total()) }} €
+ {% endif %}
{% endif %}
{% if settings.SITH_EBOUTIC_CB_ENABLED %}
@@ -48,7 +51,7 @@
{% endif %}
- {% if basket.items.filter(type_id=settings.SITH_COUNTER_PRODUCTTYPE_REFILLING).exists() %}
+ {% if basket.contains_refilling_item %}
{% trans %}AE account payment disabled because your basket contains refilling items.{% endtrans %}
{% else %}