mirror of
https://gitlab.crans.org/bde/nk20-scripts
synced 2024-12-25 00:42:23 +00:00
Import Société générale credits
This commit is contained in:
parent
4984159a61
commit
169895a825
@ -8,6 +8,7 @@ import pytz
|
||||
import datetime
|
||||
import copy
|
||||
|
||||
from django.contrib.auth.models import User
|
||||
from django.utils.timezone import make_aware
|
||||
from django.db import transaction
|
||||
from django.contrib.contenttypes.models import ContentType
|
||||
@ -23,7 +24,7 @@ from note.models import Note, NoteClub
|
||||
from activity.models import Guest, GuestTransaction, Entry
|
||||
|
||||
from member.models import Membership
|
||||
from treasury.models import Remittance, SpecialTransactionProxy
|
||||
from treasury.models import Remittance, SpecialTransactionProxy, SogeCredit
|
||||
from ._import_utils import ImportCommand, BulkCreateManager, timed
|
||||
|
||||
MAP_TRANSACTION = dict()
|
||||
@ -367,6 +368,30 @@ class Command(ImportCommand):
|
||||
except:
|
||||
print("Failed to save row: " + str(row))
|
||||
|
||||
@timed
|
||||
def import_soge_credits(self):
|
||||
users = User.objects.filter(profile__registration_valid=True).order_by('pk')
|
||||
n = users.count()
|
||||
for idx, user in enumerate(users.all()):
|
||||
self.update_line(idx, n, user.username)
|
||||
soge_credit_transaction = SpecialTransaction.objects.filter(
|
||||
reason__icontains="crédit sogé",
|
||||
destination_id=user.note.id,
|
||||
)
|
||||
if soge_credit_transaction.exists():
|
||||
soge_credit_transaction = soge_credit_transaction.get()
|
||||
soge_credit = SogeCredit.objects.create(user=user, credit_transaction=soge_credit_transaction)
|
||||
memberships = Membership.objects.filter(
|
||||
user=user,
|
||||
club_id__in=[BDE_PK, KFET_PK],
|
||||
date_start__lte=soge_credit_transaction.created_at,
|
||||
date_end__gte=soge_credit_transaction.created_at,
|
||||
).all()
|
||||
for membership in memberships:
|
||||
soge_credit.transactions.add(membership.transaction)
|
||||
soge_credit.save()
|
||||
|
||||
|
||||
@timed
|
||||
def handle(self, *args, **kwargs):
|
||||
# default args, provided by ImportCommand.
|
||||
@ -383,3 +408,4 @@ class Command(ImportCommand):
|
||||
self.set_roles()
|
||||
self.import_remittances(cur, kwargs["chunk"])
|
||||
self.import_checks(cur)
|
||||
self.import_soge_credits()
|
||||
|
Loading…
Reference in New Issue
Block a user