1
0
mirror of https://gitlab.crans.org/bde/nk20-scripts synced 2024-12-27 01:42:24 +00:00

add support for transactions

This commit is contained in:
Pierre-antoine Comby 2020-04-10 23:06:47 +02:00
parent 6ed6551459
commit aeb5ac9f8d

View File

@ -47,9 +47,7 @@ def update_line(n,N, content):
n = str(n)
N = str(N)
n.rjust(len(N))
content.ljust(41)
content = content[:40]
print(f"({n}/{N}) {content}", end="\r")
print(f"({n}/{N}) {content:10.10}", end="\r")
@transaction.atomic
def import_comptes(cur):
@ -154,7 +152,7 @@ def import_boutons(cur):
@transaction.atomic
def import_transaction(cur):
cur.execute("SELECT * FROM transactions LEFT JOIN adhesions ON transactions.id = adhesions.idtransaction ORDER BY -id;")
cur.execute("SELECT * FROM transactions LEFT JOIN adhesions ON transactions.id = adhesions.idtransaction ORDER BY transaction.id;")
N = cur.rowcount
for idx, row in enumerate(cur):
update_line(idx,N,row["label"])
@ -168,7 +166,10 @@ def import_transaction(cur):
"reason":row["description"],
"valid":row["valide"],
}
if row["type"] == "bouton":
ttype = row["type"]
if ttype == "don" or ttype == "transfert" or ttype == "invitation":
transac = Transaction.objects.create(**obj_dict)
elif ttype == "bouton":
cat_name = row["categorie"]
if cat_name == None:
cat_name = 'None'
@ -177,8 +178,29 @@ def import_transaction(cur):
cat.save()
obj_dict["category"] = cat
transac = RecurrentTransaction.objects.create(**obj_dict)
transac.save()
elif row["type"] == "adhésion":
elif ttype == "crédit" or ttype == "retrait":
field_id = "source_id" if ttype == "crédit" else "destination_id"
if "espèce" in row["description"]:
obj_dict[field_id] = 1
elif "carte" in row["description"]:
obj_dict[field_id] = 2
elif "cheques" in row["description"]:
obj_dict[field_id] = 3
elif "virement" in row["description"]:
obj_dict[field_id] = 4
actor = Note.objects.get(MAP_IDBDE[max(row["destinataire"],
row["emetteur"])])
# custom fields of SpecialTransaction
if dest.__class__.__name__ == "NoteUser":
obj_dict["first_name"] = dest.user.first_name
obj_dict["last_name"] = dest.user.last_name
elif dest.__class__.__name__ == "NoteClub":
obj_dict["first_name"] = dest.club.name
obj_dict["last_name"] = dest.club.name
else:
raise("You should'nt be there")
transac = SpecialTransaction.objects.create(**obj_dict)
elif ttype == "adhésion":
print("adhesion not supported yet")
else:
print("other type not supported yet")
@ -246,7 +268,7 @@ class Command(BaseCommand):
MAP_IDBDE = json.load(fp)
if kwargs["save"]:
filename = kwargs["save"]
with open(filename,'w') as fp:
with open(filename,'r') as fp:
json.dump(MAP_IDBDE,fp,sort_keys=True, indent=2)
# /!\ need a prober MAP_IDBDE