Show
Ignore:
Timestamp:
04/17/03 11:26:21 (21 years ago)
Author:
jalet
Message:

repykota now reports account balances too.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • pykota/trunk/pykota/storages/sql.py

    r927 r929  
    2121# 
    2222# $Log$ 
     23# Revision 1.28  2003/04/17 09:26:21  jalet 
     24# repykota now reports account balances too. 
     25# 
    2326# Revision 1.27  2003/04/16 12:35:49  jalet 
    2427# Groups quota work now ! 
     
    254257    def getUserBalance(self, userid) :     
    255258        """Returns the current account balance for a given user.""" 
    256         result = self.doQuery("SELECT balance FROM users WHERE id=%s" % self.doQuote(userid)) 
    257         try : 
    258             return self.doParseResult(result)[0]["balance"] 
    259         except TypeError :      # Not found     
    260             return 
     259        result = self.doQuery("SELECT balance, lifetimepaid FROM users WHERE id=%s" % self.doQuote(userid)) 
     260        try : 
     261            result = self.doParseResult(result)[0] 
     262        except TypeError :      # Not found     
     263            return 
     264        else :     
     265            return (result["balance"], result["lifetimepaid"]) 
    261266         
    262267    def getGroupBalance(self, groupid) :     
    263268        """Returns the current account balance for a given group, as the sum of each of its users' account balance.""" 
    264         result = self.doQuery("SELECT SUM(balance) AS balance FROM users WHERE id in (SELECT userid FROM groupsmembers WHERE groupid=%s)" % self.doQuote(groupid)) 
    265         try : 
    266             return self.doParseResult(result)[0]["balance"] 
    267         except TypeError :      # Not found     
    268             return 
     269        result = self.doQuery("SELECT SUM(balance) AS balance, SUM(lifetimepaid) AS lifetimepaid FROM users WHERE id in (SELECT userid FROM groupsmembers WHERE groupid=%s)" % self.doQuote(groupid)) 
     270        try : 
     271            result = self.doParseResult(result)[0] 
     272        except TypeError :      # Not found     
     273            return 
     274        else :     
     275            return (result["balance"], result["lifetimepaid"]) 
    269276         
    270277    def getUserLimitBy(self, userid) :     
     
    286293    def setUserBalance(self, userid, balance) :     
    287294        """Sets the account balance for a given user to a fixed value.""" 
    288         current = self.getUserBalance(userid) 
     295        (current, lifetimepaid) = self.getUserBalance(userid) 
    289296        difference = balance - current 
    290297        self.increaseUserBalance(userid, difference)