mirror of
https://gitlab.com/datalifeit/trytond-account_es_sii
synced 2023-12-14 06:13:02 +01:00
parent
3646b939f3
commit
728a02880a
1 changed files with 18 additions and 9 deletions
27
invoice.py
27
invoice.py
|
@ -87,6 +87,8 @@ class Invoice(metaclass=PoolMeta):
|
||||||
pool = Pool()
|
pool = Pool()
|
||||||
SIILines = pool.get('aeat.sii.report.lines')
|
SIILines = pool.get('aeat.sii.report.lines')
|
||||||
|
|
||||||
|
assert clause[1] in ('=', 'in')
|
||||||
|
|
||||||
table = SIILines.__table__()
|
table = SIILines.__table__()
|
||||||
|
|
||||||
cursor = Transaction().connection.cursor()
|
cursor = Transaction().connection.cursor()
|
||||||
|
@ -99,25 +101,32 @@ class Invoice(metaclass=PoolMeta):
|
||||||
invoices.append(invoice)
|
invoices.append(invoice)
|
||||||
lines.append(id_)
|
lines.append(id_)
|
||||||
|
|
||||||
|
values = clause[-1]
|
||||||
is_none = False
|
is_none = False
|
||||||
c = clause[-1]
|
if isinstance(clause[-1], (list, tuple, set)):
|
||||||
if isinstance(clause[-1], list):
|
|
||||||
if None in clause[-1]:
|
if None in clause[-1]:
|
||||||
is_none = True
|
is_none = True
|
||||||
c.remove(None)
|
values.remove(None)
|
||||||
|
else:
|
||||||
|
is_none = bool(clause[-1] is None)
|
||||||
|
|
||||||
c0 = []
|
c0 = []
|
||||||
if clause[-1] is None or is_none:
|
if is_none:
|
||||||
c0 = [('id', 'not in', invoices)]
|
c0 = [('sii_records', '=', None)]
|
||||||
|
|
||||||
clause2 = [tuple(('state',)) + tuple(clause[1:]),
|
clause2 = [
|
||||||
('id', 'in', lines)]
|
('state', ) + tuple(clause[1:2]) + (values, ),
|
||||||
|
('id', 'in', lines)
|
||||||
|
]
|
||||||
|
|
||||||
res_lines = SIILines.search(clause2)
|
res_lines = SIILines.search(clause2)
|
||||||
|
|
||||||
if is_none:
|
if is_none:
|
||||||
return ['OR', c0, [
|
return [
|
||||||
('id', 'in', [x.invoice.id for x in res_lines])]]
|
'OR',
|
||||||
|
c0,
|
||||||
|
[('id', 'in', [x.invoice.id for x in res_lines])]
|
||||||
|
]
|
||||||
else:
|
else:
|
||||||
return [('id', 'in', [x.invoice.id for x in res_lines])]
|
return [('id', 'in', [x.invoice.id for x in res_lines])]
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue