45 lines
1.8 KiB
Python
45 lines
1.8 KiB
Python
# Copyright 2014 Guewen Baconnier (Camptocamp)
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
|
from odoo import models, fields, api
|
|
from odoo.osv import expression
|
|
|
|
|
|
class AccountMoveLine(models.Model):
|
|
_inherit = 'account.move.line'
|
|
|
|
transaction_ref = fields.Char(
|
|
'Transaction Ref.',
|
|
index=True,
|
|
copy=False
|
|
)
|
|
|
|
@api.multi
|
|
def prepare_move_lines_for_reconciliation_widget(self,
|
|
target_currency=False,
|
|
target_date=False):
|
|
prepared_lines = []
|
|
for line in self:
|
|
_super = super(AccountMoveLine, line)
|
|
# The super method loop over the lines and returns a list of
|
|
# prepared lines. Here we'll have 1 line per call to super.
|
|
# If we called super on the whole list, we would need to
|
|
# browse again the lines, or match the 'lines' vs
|
|
# 'prepared_lines' to update the transaction_ref.
|
|
vals = _super.prepare_move_lines_for_reconciliation_widget(
|
|
target_currency=target_currency,
|
|
target_date=target_date)[0]
|
|
vals['transaction_ref'] = line.transaction_ref
|
|
prepared_lines.append(vals)
|
|
return prepared_lines
|
|
|
|
@api.model
|
|
def domain_move_lines_for_reconciliation(self, str=False):
|
|
"""Add transaction_ref in search of move lines."""
|
|
_super = super(AccountMoveLine, self)
|
|
_get_domain = _super.domain_move_lines_for_reconciliation
|
|
domain = _get_domain(str=str)
|
|
if not str and str != '/':
|
|
return domain
|
|
domain_trans_ref = [('transaction_ref', 'ilike', str)]
|
|
return expression.OR([domain, domain_trans_ref])
|