mirror of
https://github.com/AdrienHallet/HaitiWater.git
synced 2026-11-11 00:36:11 +00:00
54 lines
2.2 KiB
Python
54 lines
2.2 KiB
Python
from django.db import models
|
|
|
|
from ..consumers.models import Consumer
|
|
from ..log.utils import *
|
|
from ..utils.common_models import *
|
|
from ..water_network.models import Element
|
|
|
|
|
|
class Invoice(models.Model):
|
|
|
|
consumer = models.ForeignKey(Consumer, verbose_name="Consommateur",
|
|
related_name="invoices", on_delete=models.CASCADE)
|
|
water_outlet = models.ForeignKey(Element, verbose_name="Sortie d'eau",
|
|
related_name="invoices", on_delete=models.CASCADE)
|
|
creation = models.DateField("Date de la facture", auto_now=True)
|
|
expiration = models.DateField("Date d'expiration de la souscription")
|
|
amount = models.FloatField("Montant")
|
|
|
|
|
|
class Payment(models.Model):
|
|
|
|
consumer = models.ForeignKey(Consumer, verbose_name="Consommateur",
|
|
related_name="payments", on_delete=models.CASCADE)
|
|
water_outlet = models.ForeignKey(Element, verbose_name="Sortie d'eau",
|
|
related_name="payments", on_delete=models.CASCADE)
|
|
date = models.DateField("Date de la facture", auto_now=True)
|
|
amount = models.FloatField("Montant")
|
|
|
|
def descript(self):
|
|
return [self.id, str(self.date), self.amount, self.water_outlet.name]
|
|
|
|
def infos(self):
|
|
result = {}
|
|
for field in Payment._meta.get_fields():
|
|
if type(field) != ManyToOneRel:
|
|
if field.name == "consumer":
|
|
result["Identifiant consommateur"] = self.consumer.id
|
|
result["Nom consommateur"] = self.consumer.first_name+" "+self.consumer.last_name
|
|
elif field.name == "water_outlet":
|
|
result["Identifiant point d'eau"] = self.water_outlet.id
|
|
result["Nom point d'eau"] = self.water_outlet.name
|
|
else:
|
|
result[field.verbose_name] = self.__getattribute__(field.name)
|
|
return result
|
|
|
|
def log_add(self, transaction):
|
|
add(self._meta.model_name, self.infos(), transaction)
|
|
|
|
def log_delete(self, transaction):
|
|
delete(self._meta.model_name, self.infos(), transaction)
|
|
|
|
def log_edit(self, old, transaction):
|
|
edit(self._meta.model_name, self.infos(), old, transaction)
|