diff -r 1ac2439a68b5 -r 79966b937274 iro/controller/viewinterface.py --- 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):