]> asedeno.scripts.mit.edu Git - bluechips.git/blobdiff - bluechips/model/expenditure.py
if user is spender, they are always involved in an expenditure
[bluechips.git] / bluechips / model / expenditure.py
index f7e69344dc2cf88bf09cb7f0fa6ea9a81fdc4cb9..4f9dfb6bac430b9908c2d9aedee65be18caf2430 100644 (file)
@@ -86,4 +86,16 @@ class Expenditure(object):
             s = Split(self, user, share)
             meta.Session.add(s)
 
+    def involves(self, user):
+        "Returns True if ``user`` is involved in this expenditure."
+        return (any((split.user == user) and (split.share != 0)
+                    for split in self.splits) or
+                (self.spender == user))
+
+    def share(self, user):
+        "Return the share corresponding to ``user``."
+        shares = dict((split.user, split.share)
+                      for split in self.splits)
+        return shares.get(user, Currency(0))
+
 __all__ = ['Expenditure']