diff --git a/accountant/models/accounts.py b/accountant/models/accounts.py index 3f63fa5..d7640d8 100644 --- a/accountant/models/accounts.py +++ b/accountant/models/accounts.py @@ -56,17 +56,23 @@ class Account(db.Model): def income(self, begin, end): """Return the income for a specific time period.""" query = db.session.query( - db.func.sum( - Operation.value - ).filter( - db.func.sign(Operation.value) == -1 + db.func.coalesce( + db.func.sum( + Operation.value + ).filter( + db.func.sign(Operation.value) == -1 + ), 0 ).label("expenses"), - db.func.sum( - Operation.value - ).filter( - db.func.sign(Operation.value) == 1 + db.func.coalesce( + db.func.sum( + Operation.value + ).filter( + db.func.sign(Operation.value) == 1 + ), 0 ).label("revenues"), - db.func.sum(Operation.value).label("income") + db.func.coalesce( + db.func.sum(Operation.value), 0 + ).label("income") ).filter( Operation.account_id == self.id, )