55 lines
1.6 KiB
Python
55 lines
1.6 KiB
Python
from db import dbGetMany, dbGetOne
|
|
from loguru import logger
|
|
import datetime
|
|
import iso8601
|
|
from utils import getParam
|
|
from Cheetah.Template import Template
|
|
|
|
def perform(dbh, params):
|
|
year = getParam(params, 'year', datetime.datetime.today().year)
|
|
|
|
accountEntries = dbGetMany(
|
|
dbh,
|
|
{
|
|
"statement": "SELECT * FROM account_statement_v WHERE fiscal_year = %(year)s",
|
|
"params": {
|
|
'year': year
|
|
}
|
|
}
|
|
)
|
|
|
|
overview = dbGetMany(
|
|
dbh,
|
|
{
|
|
"statement": "select sum(amount), category from account_statement_v where fiscal_year = %(year)s group by category",
|
|
"params": {
|
|
'year': year
|
|
}
|
|
}
|
|
)
|
|
|
|
sum_related = dbGetOne(
|
|
dbh,
|
|
{
|
|
"statement": "select coalesce(sum(amount), 0::numeric(10,2)) as sum from account_statement_v where fiscal_year = %(year)s and category != 'nicht abrechenbare Positionen'",
|
|
"params": {
|
|
'year': year
|
|
}
|
|
}
|
|
)
|
|
|
|
sum_unrelated = dbGetOne(
|
|
dbh,
|
|
{
|
|
"statement": "select coalesce(sum(amount), 0::numeric(10,2)) as sum from account_statement_v where fiscal_year = %(year)s and category = 'nicht abrechenbare Positionen'",
|
|
"params": {
|
|
'year': year
|
|
}
|
|
}
|
|
)
|
|
|
|
template = getParam(params, 'template', 'accountStatement.tmpl')
|
|
input = { 'year': year, 'entries': accountEntries, 'overview': overview, 'related': sum_related, 'unrelated': sum_unrelated }
|
|
tmpl = Template(file=template, searchList=[ input ])
|
|
print(tmpl)
|