diff --git a/base_transaction_id/__init__.py b/base_transaction_id/__init__.py
index ef5622e1..7241064a 100644
--- a/base_transaction_id/__init__.py
+++ b/base_transaction_id/__init__.py
@@ -23,3 +23,4 @@ from . import invoice
from . import sale
from . import stock
from . import account_move
+from . import account_bank_statement
diff --git a/base_transaction_id/__openerp__.py b/base_transaction_id/__openerp__.py
index a4656d43..0d091fd6 100644
--- a/base_transaction_id/__openerp__.py
+++ b/base_transaction_id/__openerp__.py
@@ -26,6 +26,7 @@
'category': 'Hidden/Dependency',
'complexity': 'easy',
'depends': [
+ 'account',
'stock_account',
'sale_stock',
],
@@ -46,6 +47,7 @@
'invoice_view.xml',
'sale_view.xml',
'account_move_line_view.xml',
+ 'views/base_transaction_id.xml',
],
'test': [],
'installable': True,
diff --git a/base_transaction_id/account_bank_statement.py b/base_transaction_id/account_bank_statement.py
new file mode 100644
index 00000000..e9d6346b
--- /dev/null
+++ b/base_transaction_id/account_bank_statement.py
@@ -0,0 +1,61 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# Author: Guewen Baconnier
+# Copyright 2014 Camptocamp SA
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see .
+#
+##############################################################################
+
+from openerp.osv import orm
+
+
+class account_bank_statement_line(orm.Model):
+
+ _inherit = 'account.bank.statement.line'
+
+ def _domain_move_lines_for_reconciliation(self, cr, uid, st_line,
+ excluded_ids=None, str=False,
+ additional_domain=None,
+ context=None):
+ _super = super(account_bank_statement_line, self)
+ _get_domain = _super._domain_move_lines_for_reconciliation
+ domain = _get_domain(cr, uid, st_line, excluded_ids=excluded_ids,
+ str=str, additional_domain=additional_domain,
+ context=context)
+ if not str and str != '/':
+ return domain
+ domain = domain[:]
+ domain.insert(-1, '|')
+ domain.append(('transaction_ref', 'ilike', str))
+ return domain
+
+ def _domain_reconciliation_proposition(self, cr, uid, st_line,
+ excluded_ids=None, context=None):
+ _super = super(account_bank_statement_line, self)
+ _get_domain = _super._domain_reconciliation_proposition
+ domain = _get_domain(cr, uid, st_line, excluded_ids=excluded_ids,
+ context=context)
+ new_domain = []
+ for criterion in domain:
+ if len(criterion) == 3:
+ field, op, value = criterion
+ if (field, op) == ('ref', '='):
+ new_domain += [
+ '|',
+ ('transaction_ref', '=', value),
+ ]
+ new_domain.append(criterion)
+ return new_domain
diff --git a/base_transaction_id/account_move.py b/base_transaction_id/account_move.py
index 2fd2e269..77b73366 100644
--- a/base_transaction_id/account_move.py
+++ b/base_transaction_id/account_move.py
@@ -35,3 +35,22 @@ class account_move_line(orm.Model):
default['transaction_ref'] = False
_super = super(account_move_line, self)
return _super.copy_data(cr, uid, id, default=default, context=context)
+
+ def prepare_move_lines_for_reconciliation_widget(self, cr, uid, lines,
+ target_currency=False,
+ target_date=False,
+ context=None):
+ _super = super(account_move_line, self)
+ prepare = _super.prepare_move_lines_for_reconciliation_widget
+ prepared_lines = []
+ for line in lines:
+ # 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 = prepare(cr, uid, [line], target_currency=target_currency,
+ target_date=target_date, context=context)[0]
+ vals['transaction_ref'] = line.transaction_ref
+ prepared_lines.append(vals)
+ return prepared_lines
diff --git a/base_transaction_id/static/src/js/account_widgets.js b/base_transaction_id/static/src/js/account_widgets.js
new file mode 100644
index 00000000..277c9c2c
--- /dev/null
+++ b/base_transaction_id/static/src/js/account_widgets.js
@@ -0,0 +1,11 @@
+openerp.base_transaction_id = function (instance) {
+
+ instance.web.account.bankStatementReconciliationLine.include({
+ decorateMoveLine: function(line, currency_id) {
+ this._super(line, currency_id);
+ if (line.transaction_ref) {
+ line.q_label += ' (' + line.transaction_ref + ')';
+ }
+ },
+ });
+};
diff --git a/base_transaction_id/views/base_transaction_id.xml b/base_transaction_id/views/base_transaction_id.xml
new file mode 100644
index 00000000..a66a28bf
--- /dev/null
+++ b/base_transaction_id/views/base_transaction_id.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+