--- 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):