2013-01-24 00:01:42 +01:00
from app import app
from app import db
from api . model . accounts import Account
from sqlalchemy import func , desc
from sqlalchemy . orm import column_property
from sqlalchemy . sql import func , select
class Entry ( db . Model ) :
id = db . Column ( db . Integer , primary_key = True )
value_date = db . Column ( db . Date , nullable = False )
operation_date = db . Column ( db . Date , nullable = True )
label = db . Column ( db . String ( 500 ) , nullable = False )
value = db . Column ( db . Numeric ( 15 , 2 ) , nullable = False )
account_id = db . Column ( db . Integer , db . ForeignKey ( ' account.id ' ) )
account = db . relationship ( Account , backref = db . backref ( ' entry ' , lazy = " Dynamic " ) )
category = db . Column ( db . String ( 100 ) , nullable = True )
2013-01-25 01:10:03 +01:00
sold = column_property ( func . sum ( value ) . over ( order_by = " value_date, operation_date, value desc, label desc " ) )
pointedsold = column_property ( func . sum ( value ) . over ( partition_by = " operation_date is not null " , order_by = " value_date, operation_date, value desc, label desc " ) )
2013-01-24 00:01:42 +01:00
def __init__ ( self , value_date , label , value , account_id , operation_date = None , category = None ) :
self . value_date = value_date
self . operation_date = operation_date
self . label = label
self . value = value
self . account_id = account_id
self . category = category