mirror of
				https://gitlab.crans.org/bde/nk20-scripts
				synced 2025-10-31 15:09:59 +01:00 
			
		
		
		
	Fix note balances if needed
This commit is contained in:
		| @@ -11,6 +11,7 @@ from note.templatetags.pretty_money import pretty_money | ||||
| class Command(BaseCommand): | ||||
|     def add_arguments(self, parser): | ||||
|         parser.add_argument('--sum-all', '-s', action='store_true', help='Check if the global sum is equal to zero') | ||||
|         parser.add_argument('--fix', '-f', action='store_true', help='Fix note balances') | ||||
|  | ||||
|     def handle(self, *args, **options): | ||||
|         if options["sum_all"]: | ||||
| @@ -29,11 +30,14 @@ class Command(BaseCommand): | ||||
|                 .annotate(total=F("quantity") * F("amount")).aggregate(Sum("total"))["total__sum"] or 0 | ||||
|             outcoming = Transaction.objects.filter(valid=True, source=note)\ | ||||
|                 .annotate(total=F("quantity") * F("amount")).aggregate(Sum("total"))["total__sum"] or 0 | ||||
|             expected_balance = incoming - outcoming | ||||
|             if expected_balance != balance: | ||||
|             calculated_balance = incoming - outcoming | ||||
|             if calculated_balance != balance: | ||||
|                 self.stderr.write(self.style.NOTICE("LA SOMME DES TRANSACTIONS DE LA NOTE {} NE CORRESPOND PAS " | ||||
|                                                     "AVEC LE MONTANT RÉEL".format(str(note)))) | ||||
|                 self.stderr.write(self.style.NOTICE("Attendu : {}, calculé : {}" | ||||
|                                                     .format(pretty_money(balance), pretty_money(expected_balance)))) | ||||
|                                                     .format(pretty_money(balance), pretty_money(calculated_balance)))) | ||||
|                 if options["fix"]: | ||||
|                     note.balance = calculated_balance | ||||
|                     note.save() | ||||
|                 error = True | ||||
|         exit(1 if error else 0) | ||||
|   | ||||
		Reference in New Issue
	
	Block a user