Browse Source

transparence : méthodes de paiement

Élie Bouttier 7 years ago
parent
commit
6448b60b96
1 changed files with 21 additions and 3 deletions
  1. 21 3
      banking/management/commands/transparence.py

+ 21 - 3
banking/management/commands/transparence.py

@@ -15,12 +15,15 @@ class Command(BaseCommand):
     def add_arguments(self, parser):
         parser.add_argument('--services', action='store_true')
         parser.add_argument('--adhesions', action='store_true')
+        parser.add_argument('--methodes', action='store_true')
 
     def handle(self, *args, **options):
         if options['services']:
             self.handle_services()
         if options['adhesions']:
             self.handle_adhesions()
+        if options['methodes']:
+            self.handle_methodes()
 
     def handle_services(self):
         ttnn = Adhesion.objects.get(id=100)
@@ -55,10 +58,10 @@ class Command(BaseCommand):
             else:
                 percent = 0
             if npay:
-                moy = income / npay
+                moy = '%12.2f' % (income / npay)
             else:
-                moy = float('nan')
-            self.stdout.write("%-18s%12d%12d%12d%12d%12d%12d%12.2f%12.2f%12.1f" % (service_type, ntotal, ninf, nadh, nfree, nmiss, npay, income, moy, percent))
+                moy = '%12s' % '-'
+            self.stdout.write("%-18s%12d%12d%12d%12d%12d%12d%12.2f%s%12.1f" % (service_type, ntotal, ninf, nadh, nfree, nmiss, npay, income, moy, percent))
 
     def handle_adhesions(self):
         adhesions = Adhesion.objects.filter(Q(active__isnull=True) | Q(active=True))
@@ -76,3 +79,18 @@ class Command(BaseCommand):
                 income += float(payment.amount) / payment.period
         self.stdout.write("%12s%12s%12s%12s%12s%12s" % ('Adhesions', 'gratuites', 'manquantes', 'payées', 'euros', 'moyenne'))
         self.stdout.write("%12d%12d%12d%12d%12.2f%12.2f" % (nadh, pgra, pmiss, ppay, income, 12 * income / ppay))
+
+    def handle_methodes(self):
+        prelevement, virement, facture = 0, 0, 0
+        for payment in RecurringPayment.objects.all():
+            payment = payment.current
+            if not payment:
+                continue
+            if payment.payment_method == PaymentUpdate.DEBIT:
+                prelevement += payment.amount / payment.period
+            elif payment.payment_method == PaymentUpdate.TRANSFER:
+                virement += payment.amount / payment.period
+            elif payment.payment_method == PaymentUpdate.INVOICE:
+                facture += payment.amount / payment.period
+        self.stdout.write("%12s%12s%12s%12s" % ('prélèvement', 'virement', 'facture', 'total'))
+        self.stdout.write("%12.2f%12.2f%12.2f%12.2f" % (prelevement, virement, facture, prelevement + virement + facture))