iro/controller/viewinterface.py
branchdevel
changeset 127 79966b937274
parent 126 1ac2439a68b5
child 135 f8640c663e3e
--- a/iro/controller/viewinterface.py	Mon Jan 30 06:52:46 2012 +0100
+++ b/iro/controller/viewinterface.py	Mon Jan 30 21:02:03 2012 +0100
@@ -149,16 +149,37 @@
         return [u[0] for u in offers]
 
     @vUser
-    def statistic(self, user):
-        '''Gibt eine Statik zurück über die versendendeten Nachrichten und des Preises.
+    @dbdefer
+    def bill(self, session, user):
+        '''Gibt eine Rechnung zurück über die noch nicht abgerechneten Nachrichten und des Preises.
 
         Keywords:
         apikey[string]: Der API Key
 
         Return:
-        statistic[list]: Eine Liste nach Nachrichtentypen
+        bills[dict]: Eine Liste nach Nachrichtentypen
+        bill[route][info].anz: Anzahl der verschickten Nachrichten pro "Infoklasse"
+        bill[route][info].price: Preis pro "Infoklasse"
+        bill[route].anz: Anzahl der verschickten Nachrichten pro Route 
+        bill[route].price: Preis für eine Route
+        total.price: der Gesammtpreis
+        total.anz: die Gesammtanzahl
         '''
-        return ""
+        ret={'total':{'price':0, 'anz':0}}
+        user=session.merge(user)
+        for route in user.rights:
+            n=route.offer_name
+            ret[n]={'price':0, 'anz':0, 'info':{}}
+            for bill in route.bill:
+                ret[n]['info'][bill.info]={'price':float(bill.price),'anz':bill.anz}
+                ret[n]['price'] += bill.price
+                ret[n]['anz'] += bill.anz
+            ret['total']['price'] += ret[n]['price'] 
+            ret['total']['anz'] += ret[n]['anz'] 
+            ret[n]['price'] = float(ret[n]['price'])
+
+        ret['total']['price'] = float(ret['total']['price'])
+        return ret
 
     @validate(kwd="recipients",func=vTel)
     def telnumber(self,recipients):