mirror of
https://gitlab.crans.org/bde/nk20
synced 2025-09-29 12:53:31 +02:00
First step to re-write logic of SogeCredit validity
This commit is contained in:
18
apps/treasury/migrations/0011_sogecredit_valid.py
Normal file
18
apps/treasury/migrations/0011_sogecredit_valid.py
Normal file
@@ -0,0 +1,18 @@
|
||||
# Generated by Django 5.2.6 on 2025-09-28 20:12
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('treasury', '0010_alter_invoice_bde'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='sogecredit',
|
||||
name='valid',
|
||||
field=models.BooleanField(blank=True, default=False, verbose_name='Valid'),
|
||||
),
|
||||
]
|
@@ -308,6 +308,12 @@ class SogeCredit(models.Model):
|
||||
null=True,
|
||||
)
|
||||
|
||||
valid = models.BooleanField(
|
||||
default=False,
|
||||
verbose_name=_("Valid"),
|
||||
blank=True,
|
||||
)
|
||||
|
||||
class Meta:
|
||||
verbose_name = _("Credit from the Société générale")
|
||||
verbose_name_plural = _("Credits from the Société générale")
|
||||
@@ -338,7 +344,7 @@ class SogeCredit(models.Model):
|
||||
credit_transaction.save()
|
||||
credit_transaction.refresh_from_db()
|
||||
self.credit_transaction = credit_transaction
|
||||
elif not self.valid:
|
||||
elif not self.valid_legacy:
|
||||
self.credit_transaction.amount = self.amount
|
||||
self.credit_transaction._force_save = True
|
||||
self.credit_transaction.save()
|
||||
@@ -346,12 +352,12 @@ class SogeCredit(models.Model):
|
||||
return super().save(*args, **kwargs)
|
||||
|
||||
@property
|
||||
def valid(self):
|
||||
def valid_legacy(self):
|
||||
return self.credit_transaction and self.credit_transaction.valid
|
||||
|
||||
@property
|
||||
def amount(self):
|
||||
if self.valid:
|
||||
if self.valid_legacy:
|
||||
return self.credit_transaction.total
|
||||
amount = 0
|
||||
transactions_wei = self.transactions.filter(membership__club__weiclub__isnull=False)
|
||||
@@ -365,7 +371,7 @@ class SogeCredit(models.Model):
|
||||
The Sogé credit may be created after the user already paid its memberships.
|
||||
We query transactions and update the credit, if it is unvalid.
|
||||
"""
|
||||
if self.valid or not self.pk:
|
||||
if self.valid_legacy or not self.pk:
|
||||
return
|
||||
|
||||
# Soge do not pay BDE and kfet memberships since 2022
|
||||
@@ -405,7 +411,7 @@ class SogeCredit(models.Model):
|
||||
Invalidating a Société générale delete the transaction of the bank if it was already created.
|
||||
Treasurers must know what they do, With Great Power Comes Great Responsibility...
|
||||
"""
|
||||
if self.valid:
|
||||
if self.valid_legacy:
|
||||
self.credit_transaction.valid = False
|
||||
self.credit_transaction.save()
|
||||
for tr in self.transactions.all():
|
||||
@@ -414,7 +420,7 @@ class SogeCredit(models.Model):
|
||||
tr.save()
|
||||
|
||||
def validate(self, force=False):
|
||||
if self.valid and not force:
|
||||
if self.valid_legacy and not force:
|
||||
# The credit is already done
|
||||
return
|
||||
|
||||
|
Reference in New Issue
Block a user