fix: deny invalid 'date' in context
This commit is contained in:
parent
610532f6a5
commit
dbc570bdbf
1 changed files with 56 additions and 34 deletions
24
book.py
24
book.py
|
@ -11,6 +11,7 @@ from trytond.transaction import Transaction
|
|||
from trytond.pool import Pool
|
||||
from trytond.report import Report
|
||||
from decimal import Decimal
|
||||
from datetime import date
|
||||
from sql.aggregate import Sum
|
||||
from sql.conditionals import Case, Coalesce
|
||||
from sql.functions import CurrentDate
|
||||
|
@ -274,6 +275,14 @@ class Book(tree(separator='/'), Workflow, ModelSQL, ModelView):
|
|||
context = Transaction().context
|
||||
|
||||
query_date = context.get('date', IrDate.today())
|
||||
|
||||
# deny invalid date in context
|
||||
if isinstance(query_date, str):
|
||||
try :
|
||||
dt1 = date.fromisoformat(query_date)
|
||||
except :
|
||||
query_date = IrDate.today()
|
||||
|
||||
query = tab_book.join(tab_line,
|
||||
condition=tab_book.id==tab_line.cashbook,
|
||||
).select(
|
||||
|
@ -336,14 +345,27 @@ class Book(tree(separator='/'), Workflow, ModelSQL, ModelView):
|
|||
Book2 = pool.get('cashbook.book')
|
||||
Currency = pool.get('currency.currency')
|
||||
Company = pool.get('company.company')
|
||||
IrDate = pool.get('ir.date')
|
||||
tab_book = Book2.__table__()
|
||||
tab_comp = Company.__table__()
|
||||
(tab_line, tab2) = cls.get_balance_of_cashbook_sql()
|
||||
cursor = Transaction().connection.cursor()
|
||||
context = Transaction().context
|
||||
|
||||
result = {x:{y.id: Decimal('0.0') for y in cashbooks} for x in names}
|
||||
|
||||
# deny invalid date in context
|
||||
query_date = context.get('date', IrDate.today())
|
||||
if isinstance(query_date, str):
|
||||
try :
|
||||
dt1 = date.fromisoformat(query_date)
|
||||
except :
|
||||
query_date = IrDate.today()
|
||||
|
||||
# query balances of cashbooks and sub-cashbooks
|
||||
with Transaction().set_context({
|
||||
'date': query_date,
|
||||
}):
|
||||
(tab_line, tab2) = cls.get_balance_of_cashbook_sql()
|
||||
tab_subids = sub_ids_hierarchical('cashbook.book')
|
||||
query = tab_book.join(tab_subids,
|
||||
condition=tab_book.id==tab_subids.parent,
|
||||
|
|
Loading…
Reference in a new issue