improve balances query.
This commit is contained in:
parent
d9e9e3f2a0
commit
5b87a27667
@ -30,20 +30,24 @@ class Account(db.Model):
|
||||
def balances(self):
|
||||
"""Return the balances of this account."""
|
||||
return db.session.query(
|
||||
db.func.sum(Operation.value).label("future"),
|
||||
db.func.sum(
|
||||
db.case(
|
||||
[(Operation.pointed,
|
||||
Operation.value)],
|
||||
else_=0
|
||||
)
|
||||
db.func.coalesce(
|
||||
db.func.sum(
|
||||
Operation.value
|
||||
), 0
|
||||
).label("future"),
|
||||
db.func.coalesce(
|
||||
db.func.sum(
|
||||
Operation.value
|
||||
).filter(
|
||||
Operation.pointed
|
||||
), 0
|
||||
).label("pointed"),
|
||||
db.func.sum(
|
||||
db.case(
|
||||
[(Operation.operation_date <= db.func.current_date(),
|
||||
Operation.value)],
|
||||
else_=0
|
||||
)
|
||||
db.func.coalesce(
|
||||
db.func.sum(
|
||||
Operation.value,
|
||||
).filter(
|
||||
Operation.operation_date <= db.func.current_date()
|
||||
), 0
|
||||
).label("current"),
|
||||
).filter(
|
||||
Operation.account_id == self.id
|
||||
|
Loading…
Reference in New Issue
Block a user