mirror of
https://github.com/AdrienHallet/HaitiWater.git
synced 2026-10-26 17:35:18 +00:00
Fixed balance. Oops
This commit is contained in:
1 parent
ca999a19cc
commit
8e56c19b4e
3 files changed
+15
-8
No files matched your search
@@ -187,14 +187,13 @@ def get_payment_elements(request):
|
||||
|
||||
def get_payment_details(request):
|
||||
consumer_id = request.GET.get("id", None)
|
||||
balance = 0 # TODO balance in view to optimize
|
||||
from ..consumers.models import Consumer
|
||||
consumer = Consumer.objects.filter(id=consumer_id).first()
|
||||
balance = consumer.get_balance()
|
||||
validity = None
|
||||
for elem in Invoice.objects.filter(consumer_id=consumer_id):
|
||||
balance -= elem.amount
|
||||
if not validity or elem.expiration > validity:
|
||||
validity = elem.expiration
|
||||
for elem in Payment.objects.filter(consumer_id=consumer_id):
|
||||
balance += elem.amount
|
||||
|
||||
return balance, str(validity)
|
||||
|
||||
|
||||
@@ -22,12 +22,15 @@ class Consumer(models.Model):
|
||||
return self.first_name + " " + self.last_name
|
||||
|
||||
def descript(self):
|
||||
view = VirtualConsumersBalance.objects.filter(relevant_model=self.id).first()
|
||||
tab = [self.id, self.last_name, self.first_name, self.get_gender_display(),
|
||||
self.location, self.get_phone_number(),
|
||||
self.household_size, self.water_outlet.name, view.balance, self.water_outlet.zone.name]
|
||||
self.household_size, self.water_outlet.name, self.get_balance(), self.water_outlet.zone.name]
|
||||
return tab
|
||||
|
||||
def get_balance(self):
|
||||
view = VirtualConsumersBalance.objects.filter(relevant_model=self.id).first()
|
||||
return view.payed - view.due
|
||||
|
||||
def get_phone_number(self):
|
||||
return self.phone_number if self.phone_number != "0" else "Non spécifié"
|
||||
|
||||
@@ -61,7 +64,9 @@ class Consumer(models.Model):
|
||||
|
||||
class VirtualConsumersBalance(models.Model):
|
||||
relevant_model = models.BigIntegerField("Id", primary_key=True)
|
||||
balance = models.FloatField("Balance", null=False, default=0)
|
||||
payed = models.FloatField("Total payé", null=False, default=0)
|
||||
due = models.FloatField("Total dû", null=False, default=0)
|
||||
|
||||
|
||||
class Meta:
|
||||
managed = False
|
||||
|
||||
@@ -45,5 +45,8 @@ CREATE OR REPLACE VIEW public.consumer_virtualtotalbalance AS
|
||||
c.id AS "relevant_model",
|
||||
( SELECT COALESCE(SUM(p.amount), 0)
|
||||
FROM financial_payment p
|
||||
WHERE p.consumer_id = c.id) AS "balance"
|
||||
WHERE p.consumer_id = c.id) AS "payed",
|
||||
( SELECT COALESCE(SUM(i.amount), 0)
|
||||
FROM financial_invoice i
|
||||
WHERE i.consumer_id = c.id) AS "due"
|
||||
FROM consumers_consumer c;
|
||||
Reference in new issue
Block a user