|  | 
|  | 1 | +class UserController: | 
|  | 2 | +    __userList= None | 
|  | 3 | +    __settledBill = None | 
|  | 4 | +    def __init__(self,userList): | 
|  | 5 | +        self.__settledBill= list() | 
|  | 6 | +        self.__userList = userList | 
|  | 7 | +        self.__settleBill() | 
|  | 8 | +         | 
|  | 9 | +     | 
|  | 10 | +    def __settleBill(self): | 
|  | 11 | +        for gu in self.__userList: | 
|  | 12 | +            for du in self.__userList: | 
|  | 13 | +                if (gu!=du): | 
|  | 14 | +                    if (du.getDebts().get(gu,0)>gu.getDebts().get(du,0)): | 
|  | 15 | +                        du.getDebts()[gu] = du.getDebts().get(gu,0) - gu.getDebts().get(du,0) | 
|  | 16 | +                        gu.getDebts()[du] = 0 | 
|  | 17 | +                        updateString = gu.getName() + " pays " + str(du.getDebts()[gu]) + "to " + du.getName() | 
|  | 18 | +                        self.__settledBill.append(updateString) | 
|  | 19 | +                    elif (du.getDebts().get(gu,0)<gu.getDebts().get(du,0)): | 
|  | 20 | +                        gu.getDebts()[du] = gu.getDebts().get(du,0) - du.getDebts().get(gu,0)  | 
|  | 21 | +                        du.getDebts()[gu] = 0 | 
|  | 22 | +                        updateString = du.getName() + " pays " + str(gu.getDebts()[du]) + "to " + gu.getName() | 
|  | 23 | +                        self.__settledBill.append(updateString) | 
|  | 24 | +                    else: | 
|  | 25 | +                        gu.getDebts()[du] = gu.getDebts().get(du,0) - du.getDebts().get(gu,0)  | 
|  | 26 | +                        du.getDebts()[gu] = 0 | 
|  | 27 | +                 | 
|  | 28 | +    def getSettledBill(self): | 
|  | 29 | +        return self.__settledBill | 
|  | 30 | +     | 
|  | 31 | +    def getUserBill(self,u): | 
|  | 32 | +        self.getSettledBill() | 
|  | 33 | +        userBill = list() | 
|  | 34 | +        for gu in self.__userList: | 
|  | 35 | +            if (gu!=u): | 
|  | 36 | +                if (u.getDebts().get(gu,0)>gu.getDebts().get(u,0)): | 
|  | 37 | +                    updateString = gu.getName() + " pays " + str(u.getDebts()[gu]) + "to " + u.getName() | 
|  | 38 | +                    userBill.append(updateString) | 
|  | 39 | +                elif (u.getDebts().get(gu,0)<gu.getDebts().get(u,0)): | 
|  | 40 | +                    u.getDebts()[gu] = 0 | 
|  | 41 | +                    updateString = u.getName() + " pays " + str(gu.getDebts()[u]) + "to " + gu.getName() | 
|  | 42 | +                    userBill.append(updateString) | 
|  | 43 | +        if (len(userBill)==0): | 
|  | 44 | +            userBill.append("No Bill ") | 
|  | 45 | +        return userBill | 
0 commit comments