Allow the new bank statement reconciliation to search in transaction_ref

Require https://github.com/odoo/odoo/pull/3025 to be merged to work!
pull/524/head
Guewen Baconnier 2014-10-10 16:31:51 +02:00 committed by Dũng (Trần Đình)
parent 26ac1f9401
commit 80a2bc9635
6 changed files with 105 additions and 0 deletions

View File

@ -23,3 +23,4 @@ from . import invoice
from . import sale
from . import stock
from . import account_move
from . import account_bank_statement

View File

@ -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,

View File

@ -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 <http://www.gnu.org/licenses/>.
#
##############################################################################
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

View File

@ -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

View File

@ -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 + ')';
}
},
});
};

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="assets_backend" name="account assets" inherit_id="web.assets_backend">
<xpath expr="." position="inside">
<script type="text/javascript" src="/base_transaction_id/static/src/js/account_widgets.js"></script>
</xpath>
</template>
</data>
</openerp>