mirror of
				https://gitlab.crans.org/bde/nk20-scripts
				synced 2025-10-30 06:49:50 +01:00 
			
		
		
		
	add support for transactions
This commit is contained in:
		| @@ -47,9 +47,7 @@ def update_line(n,N, content): | |||||||
|     n = str(n) |     n = str(n) | ||||||
|     N = str(N) |     N = str(N) | ||||||
|     n.rjust(len(N)) |     n.rjust(len(N)) | ||||||
|     content.ljust(41) |     print(f"({n}/{N}) {content:10.10}", end="\r") | ||||||
|     content = content[:40] |  | ||||||
|     print(f"({n}/{N}) {content}", end="\r") |  | ||||||
|  |  | ||||||
| @transaction.atomic | @transaction.atomic | ||||||
| def import_comptes(cur): | def import_comptes(cur): | ||||||
| @@ -154,7 +152,7 @@ def import_boutons(cur): | |||||||
|  |  | ||||||
| @transaction.atomic | @transaction.atomic | ||||||
| def import_transaction(cur): | 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 |     N = cur.rowcount | ||||||
|     for idx, row in enumerate(cur): |     for idx, row in enumerate(cur): | ||||||
|         update_line(idx,N,row["label"]) |         update_line(idx,N,row["label"]) | ||||||
| @@ -168,7 +166,10 @@ def import_transaction(cur): | |||||||
|             "reason":row["description"], |             "reason":row["description"], | ||||||
|             "valid":row["valide"], |             "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"] |             cat_name = row["categorie"] | ||||||
|             if cat_name == None: |             if cat_name == None: | ||||||
|                 cat_name = 'None' |                 cat_name = 'None' | ||||||
| @@ -177,8 +178,29 @@ def import_transaction(cur): | |||||||
|                 cat.save() |                 cat.save() | ||||||
|             obj_dict["category"] = cat |             obj_dict["category"] = cat | ||||||
|             transac = RecurrentTransaction.objects.create(**obj_dict) |             transac = RecurrentTransaction.objects.create(**obj_dict) | ||||||
|             transac.save() |         elif ttype == "crédit" or ttype == "retrait": | ||||||
|         elif row["type"] == "adhésion": |             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") |             print("adhesion not supported yet") | ||||||
|         else: |         else: | ||||||
|            print("other type not supported yet") |            print("other type not supported yet") | ||||||
| @@ -246,7 +268,7 @@ class Command(BaseCommand): | |||||||
|                 MAP_IDBDE = json.load(fp) |                 MAP_IDBDE = json.load(fp) | ||||||
|         if kwargs["save"]: |         if kwargs["save"]: | ||||||
|             filename = 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) |                 json.dump(MAP_IDBDE,fp,sort_keys=True, indent=2) | ||||||
|                  |                  | ||||||
|         # /!\ need a prober MAP_IDBDE |         # /!\ need a prober MAP_IDBDE | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user