Import Société générale credits

This commit is contained in:
Yohann D'ANELLO 2020-08-07 13:17:17 +02:00
parent 4984159a61
commit 169895a825
1 changed files with 27 additions and 1 deletions

View File

@ -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()