diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py index 8fecf85ee0b..22be94a9a79 100644 --- a/addons/account/report/account_invoice_report.py +++ b/addons/account/report/account_invoice_report.py @@ -154,17 +154,8 @@ class account_invoice_report(osv.osv): WHEN ai.type::text = ANY (ARRAY['out_refund'::character varying::text, 'in_invoice'::character varying::text]) THEN - ai.residual ELSE ai.residual - END / CASE - WHEN (( SELECT count(l.id) AS count - FROM account_invoice_line l - LEFT JOIN account_invoice a ON a.id = l.invoice_id - WHERE a.id = ai.id)) <> 0 - THEN ( SELECT count(l.id) AS count - FROM account_invoice_line l - LEFT JOIN account_invoice a ON a.id = l.invoice_id - WHERE a.id = ai.id) - ELSE 1::bigint - END::numeric AS residual, + END / (SELECT count(*) FROM account_invoice_line l where invoice_id = ai.id) * + count(*) AS residual, ai.commercial_partner_id as commercial_partner_id, partner.country_id """ diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index 159286d631a..8dc2e176613 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -649,7 +649,7 @@ var form = this.editor.form; var last_field = _(form.fields_order).chain() .map(function (name) { return form.fields[name]; }) - .filter(function (field) { return field.$el.is(':visible'); }) + .filter(function (field) { return field.$el.is(':visible') && !field.get('effective_readonly'); }) .last() .value(); // tabbed from last field in form