mirror of
				https://gitlab.crans.org/bde/nk20
				synced 2025-11-04 01:12:08 +01:00 
			
		
		
		
	Merge branch 'import_nk15' into 'master'
Import nk15 See merge request bde/nk20!81
This commit is contained in:
		@@ -264,6 +264,17 @@ class SpecialTransaction(Transaction):
 | 
				
			|||||||
    def type(self):
 | 
					    def type(self):
 | 
				
			||||||
        return _('Credit') if isinstance(self.source, NoteSpecial) else _("Debit")
 | 
					        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):
 | 
					class MembershipTransaction(Transaction):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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.
 | 
					    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.
 | 
					    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(
 | 
					    transaction = models.OneToOneField(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,7 +1,6 @@
 | 
				
			|||||||
# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
 | 
					# Copyright (C) 2018-2020 by BDE ENS Paris-Saclay
 | 
				
			||||||
# SPDX-License-Identifier: GPL-3.0-or-later
 | 
					# SPDX-License-Identifier: GPL-3.0-or-later
 | 
				
			||||||
 | 
					
 | 
				
			||||||
from note.models import NoteSpecial
 | 
					 | 
				
			||||||
from treasury.models import SpecialTransactionProxy, RemittanceType
 | 
					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
 | 
					    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():
 | 
				
			||||||
        SpecialTransactionProxy.objects.create(transaction=instance, remittance=None).save()
 | 
					        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()
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user