parent
94ed2d7d48
commit
862fd6e846
27
invoice.py
27
invoice.py
|
@ -87,6 +87,8 @@ class Invoice(metaclass=PoolMeta):
|
|||
pool = Pool()
|
||||
SIILines = pool.get('aeat.sii.report.lines')
|
||||
|
||||
assert clause[1] in ('=', 'in')
|
||||
|
||||
table = SIILines.__table__()
|
||||
|
||||
cursor = Transaction().connection.cursor()
|
||||
|
@ -99,25 +101,32 @@ class Invoice(metaclass=PoolMeta):
|
|||
invoices.append(invoice)
|
||||
lines.append(id_)
|
||||
|
||||
values = clause[-1]
|
||||
is_none = False
|
||||
c = clause[-1]
|
||||
if isinstance(clause[-1], list):
|
||||
if isinstance(clause[-1], (list, tuple, set)):
|
||||
if None in clause[-1]:
|
||||
is_none = True
|
||||
c.remove(None)
|
||||
values.remove(None)
|
||||
else:
|
||||
is_none = bool(clause[-1] is None)
|
||||
|
||||
c0 = []
|
||||
if clause[-1] is None or is_none:
|
||||
c0 = [('id', 'not in', invoices)]
|
||||
if is_none:
|
||||
c0 = [('sii_records', '=', None)]
|
||||
|
||||
clause2 = [tuple(('state',)) + tuple(clause[1:]),
|
||||
('id', 'in', lines)]
|
||||
clause2 = [
|
||||
('state', ) + tuple(clause[1:2]) + (values, ),
|
||||
('id', 'in', lines)
|
||||
]
|
||||
|
||||
res_lines = SIILines.search(clause2)
|
||||
|
||||
if is_none:
|
||||
return ['OR', c0, [
|
||||
('id', 'in', [x.invoice.id for x in res_lines])]]
|
||||
return [
|
||||
'OR',
|
||||
c0,
|
||||
[('id', 'in', [x.invoice.id for x in res_lines])]
|
||||
]
|
||||
else:
|
||||
return [('id', 'in', [x.invoice.id for x in res_lines])]
|
||||
|
||||
|
|
Loading…
Reference in New Issue