From c1a65de7c6823a3cf1e609c6a412ea416bf8bedb Mon Sep 17 00:00:00 2001 From: Simone Rubino Date: Wed, 15 Jun 2022 13:07:04 +0200 Subject: [PATCH 1/3] [FIX] account_reconciliation_widget_partial: Click on input field Otherwise, the following is raised: Error: Failed to execute 'removeChild' on 'Node': The node to be removed is no longer a child of this node. Perhaps it was moved in a 'blur' event handler? --- .../static/src/js/reconciliation_renderer.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/account_reconciliation_widget_partial/static/src/js/reconciliation_renderer.js b/account_reconciliation_widget_partial/static/src/js/reconciliation_renderer.js index ba2871bd..2d754790 100644 --- a/account_reconciliation_widget_partial/static/src/js/reconciliation_renderer.js +++ b/account_reconciliation_widget_partial/static/src/js/reconciliation_renderer.js @@ -50,5 +50,15 @@ odoo.define('account_reconcile_partial.ReconciliationRenderer', function (requir } return this._super.apply(this, arguments); }, + _onSelectProposition: function (event) { + var $el = $(event.target); + if ($el.hasClass('edit_amount_input')) { + // When the input is clicked, it is not to select the line + // but simply to write in the input field. + // so there is no need to call super that usually removes the line + return; + } + return this._super.apply(this, arguments); + }, }); }); From 88216dafba86eb3d9efe232a7ab696e788a7349b Mon Sep 17 00:00:00 2001 From: Simone Rubino Date: Wed, 15 Jun 2022 14:16:36 +0200 Subject: [PATCH 2/3] [IMP] account_reconciliation_widget_partial: Format amount The amount is formatted based on currency --- .../static/src/js/reconciliation_action.js | 2 +- .../static/src/js/reconciliation_renderer.js | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/account_reconciliation_widget_partial/static/src/js/reconciliation_action.js b/account_reconciliation_widget_partial/static/src/js/reconciliation_action.js index 3e80989f..769bcf49 100644 --- a/account_reconciliation_widget_partial/static/src/js/reconciliation_action.js +++ b/account_reconciliation_widget_partial/static/src/js/reconciliation_action.js @@ -12,7 +12,7 @@ odoo.define("account_reconcile_partial.ReconciliationClientAction", function (re var handle = event.target.handle; var line = this.model.getLine(handle); var amount = this.model.getPartialReconcileAmount(handle, event.data); - self._getWidget(handle).updatePartialAmount(event.data.data, amount); + self._getWidget(handle).updatePartialAmount(event, amount); }, }); }); diff --git a/account_reconciliation_widget_partial/static/src/js/reconciliation_renderer.js b/account_reconciliation_widget_partial/static/src/js/reconciliation_renderer.js index 2d754790..d27001d1 100644 --- a/account_reconciliation_widget_partial/static/src/js/reconciliation_renderer.js +++ b/account_reconciliation_widget_partial/static/src/js/reconciliation_renderer.js @@ -1,6 +1,7 @@ odoo.define('account_reconcile_partial.ReconciliationRenderer', function (require) { "use strict"; + var field_utils = require('web.field_utils'); var renderer = require('account.ReconciliationRenderer') renderer.LineRenderer.include({ @@ -15,12 +16,22 @@ odoo.define('account_reconcile_partial.ReconciliationRenderer', function (requir {'data': $line.closest('.mv_line').data('line-id')} ); }, - updatePartialAmount: function(line_id, amount) { + updatePartialAmount: function(event, amount) { + var line_id = event.data.data; var $line = this.$('.mv_line[data-line-id='+line_id+']'); + var handle = event.target.handle; + var line = this.model.getLine(handle); + var format_options = { + currency_id: line.st_line.currency_id, + noSymbol: true, + }; + var amount = field_utils.format.monetary( + amount, {}, format_options); + $line.find('.line_info_edit').addClass('o_hidden'); $line.find('.edit_amount_input').removeClass('o_hidden'); $line.find('.edit_amount_input').focus(); - $line.find('.edit_amount_input').val(amount.toFixed(2)); + $line.find('.edit_amount_input').val(amount); $line.find('.edit_amount_input').select(); $line.find('.line_amount').addClass('o_hidden'); }, From 2a645fb431d62bee9adc6508ae7841245c10823e Mon Sep 17 00:00:00 2001 From: Simone Rubino Date: Wed, 15 Jun 2022 16:37:38 +0200 Subject: [PATCH 3/3] [FIX] account_reconciliation_widget_partial: Behavior for amount not accepted If the amount is not accepted, reset the line --- .../static/src/js/reconciliation_model.js | 1 + 1 file changed, 1 insertion(+) diff --git a/account_reconciliation_widget_partial/static/src/js/reconciliation_model.js b/account_reconciliation_widget_partial/static/src/js/reconciliation_model.js index e2ff0697..40c66e71 100644 --- a/account_reconciliation_widget_partial/static/src/js/reconciliation_model.js +++ b/account_reconciliation_widget_partial/static/src/js/reconciliation_model.js @@ -36,6 +36,7 @@ odoo.define("account_reconcile_partial.ReconciliationModel", function (require) amount >= Math.abs(prop.amount) || amount <= 0 || isNaN(amount) ) { + prop.partial_reconcile = false; delete prop.partial_amount_str; delete prop.partial_amount; if (isNaN(amount) || amount < 0) {