Skip to content
GitLab
Explore
Sign in
Commits on Source (1)
Import Société générale credits
· 169895a8
ynerant
authored
Aug 07, 2020
169895a8
Hide whitespace changes
Inline
Side-by-side
management/commands/import_transaction.py
View file @
169895a8
...
...
@@ -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
()