Skip to content

Commit

Permalink
[FIX] account: bank statement reconciliation widget: display only one…
Browse files Browse the repository at this point in the history
… line for a partial reconciliation
  • Loading branch information
Whisno committed Sep 12, 2014
1 parent b7361b0 commit f393171
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
1 change: 1 addition & 0 deletions addons/account/account_move_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -776,6 +776,7 @@ def prepare_move_lines_for_reconciliation_widget(self, cr, uid, lines, target_cu
if line.reconcile_partial_id:
reconcile_partial_ids.append(line.reconcile_partial_id.id)
partial_reconciliation_siblings_ids = self.search(cr, uid, [('reconcile_partial_id', '=', line.reconcile_partial_id.id)], context=context)
partial_reconciliation_siblings_ids.remove(line.id)

ret_line = {
'id': line.id,
Expand Down
35 changes: 18 additions & 17 deletions addons/account/static/src/js/account_widgets.js
Original file line number Diff line number Diff line change
Expand Up @@ -293,13 +293,10 @@ openerp.account = function (instance) {

// Adds move line ids to the list of move lines not to fetch for a given partner
// This is required because the same move line cannot be selected for multiple reconciliation
// and because for a partial reconciliation only one line can be fetched)
excludeMoveLines: function(source_child, partner_id, lines) {
var self = this;
var line_ids = [];
_.each(lines, function(o) {
line_ids.push(o.id);
line_ids = line_ids.concat(o.partial_reconciliation_siblings_ids);
});
var line_ids = _.collect(lines, function(o) { return o.id });

var excluded_ids = this.excluded_move_lines_ids[partner_id];
var excluded_move_lines_changed = false;
Expand Down Expand Up @@ -338,11 +335,7 @@ openerp.account = function (instance) {

unexcludeMoveLines: function(source_child, partner_id, lines) {
var self = this;
var line_ids = [];
_.each(lines, function(o) {
line_ids.push(o.id);
line_ids = line_ids.concat(o.partial_reconciliation_siblings_ids);
});
var line_ids = _.collect(lines, function(o) { return o.id });

var initial_excluded_lines_num = this.excluded_move_lines_ids[partner_id].length;
this.excluded_move_lines_ids[partner_id] = _.difference(this.excluded_move_lines_ids[partner_id], line_ids);
Expand Down Expand Up @@ -1291,7 +1284,14 @@ openerp.account = function (instance) {
} else {
self.$el.removeClass("no_match");
}


_.each(self.get("mv_lines"), function(line) {
if (line.partial_reconciliation_siblings_ids.length > 0) {
var correct_format = _.collect(line.partial_reconciliation_siblings_ids, function(o) { return {'id': o} });
self.getParent().excludeMoveLines(self, self.partner_id, correct_format);
}
});

self.updateMatchView();
self.updatePagerControls();
},
Expand Down Expand Up @@ -1487,12 +1487,13 @@ openerp.account = function (instance) {
if (offset < 0) offset = 0;
var limit = (self.get("pager_index")+1) * self.max_move_lines_displayed - deselected_lines_num;
if (limit > self.max_move_lines_displayed) limit = self.max_move_lines_displayed;
if (self.st_line.has_no_partner)
var excluded_ids = self.getParent().excluded_move_lines_ids[self.partner_id];
_.each(self.get("mv_lines_selected").concat(self.mv_lines_deselected), function(o){
excluded_ids.push(o.id);
excluded_ids = excluded_ids.concat(o.partial_reconciliation_siblings_ids);
});
var excluded_ids = self.getParent().excluded_move_lines_ids[self.partner_id];
var excluded_ids = _.collect(self.get("mv_lines_selected").concat(self.mv_lines_deselected), function(o) { return o.id; });
var globally_excluded_ids = self.getParent().excluded_move_lines_ids[self.partner_id];
if (globally_excluded_ids !== undefined)
for (var i=0; i<globally_excluded_ids.length; i++)
if (excluded_ids.indexOf(globally_excluded_ids[i]) === -1)
excluded_ids.push(globally_excluded_ids[i]);

var deferred_move_lines;
var move_lines = [];
Expand Down

0 comments on commit f393171

Please sign in to comment.