Compare commits

...

6 Commits

Author SHA1 Message Date
Pierre-antoine Comby f468c2f939 Merge branch 'import_nk15' into 'master'
Import nk15

See merge request bde/nk20!81
2020-05-25 22:09:52 +02:00
Yohann D'ANELLO fdf373d1d5 Merge remote-tracking branch 'origin/master' into import_nk15
# Conflicts:
#	apps/treasury/signals.py
2020-05-07 19:01:23 +02:00
Pierre-antoine Comby 6d27193ac4 update import script 2020-04-18 16:07:45 +02:00
Pierre-antoine Comby 038ddc2ab8 remittance need preciser check (bug during import) 2020-04-18 15:59:59 +02:00
Pierre-antoine Comby cc97948c24 clean specialTransaction 2020-04-18 15:59:06 +02:00
Pierre-antoine Comby 53748cd534 frenglish -> english 2020-04-18 15:57:11 +02:00
3 changed files with 19 additions and 5 deletions

View File

@ -264,6 +264,17 @@ class SpecialTransaction(Transaction):
def type(self):
return _('Credit') if isinstance(self.source, NoteSpecial) else _("Debit")
def is_credit(self):
return isinstance(self.source, NoteSpecial)
def is_debit(self):
return isinstance(self.destination, NoteSpecial)
def clean(self):
# SpecialTransaction are only possible with NoteSpecial object
if self.is_credit() == self.is_debit():
raise(ValidationError(_("A special transaction is only possible between a Note associated to a payment method and a User or a Club")))
class MembershipTransaction(Transaction):
"""

View File

@ -191,7 +191,7 @@ class SpecialTransactionProxy(models.Model):
"""
In order to keep modularity, we don't that the Note app depends on the treasury app.
That's why we create a proxy in this app, to link special transactions and remittances.
If it isn't very clean, that makes what we want.
If it isn't very clean, it does what we want.
"""
transaction = models.OneToOneField(

View File

@ -1,7 +1,6 @@
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
# SPDX-License-Identifier: GPL-3.0-or-later
from note.models import NoteSpecial
from treasury.models import SpecialTransactionProxy, RemittanceType
@ -9,6 +8,10 @@ def save_special_transaction(instance, created, **kwargs):
"""
When a special transaction is created, we create its linked proxy
"""
if created and isinstance(instance.source, NoteSpecial) \
and RemittanceType.objects.filter(note=instance.source).exists():
if instance.is_credit():
if created and RemittanceType.objects.filter(note=instance.source).exists():
SpecialTransactionProxy.objects.create(transaction=instance, remittance=None).save()
else:
if created and RemittanceType.objects.filter(note=instance.destination).exists():
SpecialTransactionProxy.objects.create(transaction=instance, remittance=None).save()