mirror of
				https://gitlab.crans.org/bde/nk20-scripts
				synced 2025-10-30 22:59:52 +01:00 
			
		
		
		
	Import Société générale credits
This commit is contained in:
		| @@ -8,6 +8,7 @@ import pytz | |||||||
| import datetime | import datetime | ||||||
| import copy | import copy | ||||||
|  |  | ||||||
|  | from django.contrib.auth.models import User | ||||||
| from django.utils.timezone import make_aware | from django.utils.timezone import make_aware | ||||||
| from django.db import transaction | from django.db import transaction | ||||||
| from django.contrib.contenttypes.models import ContentType | 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 activity.models import Guest, GuestTransaction, Entry | ||||||
|  |  | ||||||
| from member.models import Membership | 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 | from ._import_utils import ImportCommand, BulkCreateManager, timed | ||||||
|  |  | ||||||
| MAP_TRANSACTION = dict() | MAP_TRANSACTION = dict() | ||||||
| @@ -367,6 +368,30 @@ class Command(ImportCommand): | |||||||
|             except: |             except: | ||||||
|                 print("Failed to save row: " + str(row)) |                 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 |     @timed | ||||||
|     def handle(self, *args, **kwargs): |     def handle(self, *args, **kwargs): | ||||||
|         # default args, provided by ImportCommand. |         # default args, provided by ImportCommand. | ||||||
| @@ -383,3 +408,4 @@ class Command(ImportCommand): | |||||||
|             self.set_roles() |             self.set_roles() | ||||||
|         self.import_remittances(cur, kwargs["chunk"]) |         self.import_remittances(cur, kwargs["chunk"]) | ||||||
|         self.import_checks(cur) |         self.import_checks(cur) | ||||||
|  |         self.import_soge_credits() | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user