From f41bcda03b3eb054f640355ce4e165a1e5c99c8f Mon Sep 17 00:00:00 2001
From: Nicolas Lempereur <nle@odoo.com>
Date: Fri, 6 May 2016 17:59:43 +0200
Subject: [PATCH] [IMP] account: invoice analysis pivot quantities

In the report "Invoice Analysis", the view under the report is grouping
lines by invoice and also by product on this invoice.

Thus, quantities in the pivot view are not the real quantity of invoice
lines, but of invoice lines with different products.

eg:

invoice a:
- line 1: product X
- line 2: product Y
- line 3: product X

in the report there would appear to only be 2 invoice line, whilst there
is in realy three (this information is accessible via "# of Lines").

closes #11954
opw-676651
---
 addons/account/i18n/account.pot                 | 2 +-
 addons/account/report/account_invoice_report.py | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/addons/account/i18n/account.pot b/addons/account/i18n/account.pot
index 2031a086405c..80638ce39b4b 100644
--- a/addons/account/i18n/account.pot
+++ b/addons/account/i18n/account.pot
@@ -97,7 +97,7 @@ msgstr ""
 
 #. module: account
 #: model:ir.model.fields,field_description:account.field_account_invoice_report_nbr
-msgid "# of Invoices"
+msgid "# of Lines"
 msgstr ""
 
 #. module: account
diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py
index b2f2f0fa83c0..319983c65f22 100644
--- a/addons/account/report/account_invoice_report.py
+++ b/addons/account/report/account_invoice_report.py
@@ -46,7 +46,7 @@ class AccountInvoiceReport(models.Model):
     price_average = fields.Float(string='Average Price', readonly=True, group_operator="avg")
     user_currency_price_average = fields.Float(string="Average Price", compute='_compute_amounts_in_user_currency', digits=0)
     currency_rate = fields.Float(string='Currency Rate', readonly=True)
-    nbr = fields.Integer(string='# of Invoices', readonly=True)  # TDE FIXME master: rename into nbr_lines
+    nbr = fields.Integer(string='# of Lines', readonly=True)  # TDE FIXME master: rename into nbr_lines
     type = fields.Selection([
         ('out_invoice', 'Customer Invoice'),
         ('in_invoice', 'Vendor Bill'),
@@ -102,12 +102,12 @@ class AccountInvoiceReport(models.Model):
 
     def _sub_select(self):
         select_str = """
-                SELECT min(ail.id) AS id,
+                SELECT ail.id AS id,
                     ai.date_invoice AS date,
                     ail.product_id, ai.partner_id, ai.payment_term_id, ail.account_analytic_id,
                     u2.name AS uom_name,
                     ai.currency_id, ai.journal_id, ai.fiscal_position_id, ai.user_id, ai.company_id,
-                    count(ail.*) AS nbr,
+                    1 AS nbr,
                     ai.type, ai.state, pt.categ_id, ai.date_due, ai.account_id, ail.account_id AS account_line_id,
                     ai.partner_bank_id,
                     SUM(CASE
@@ -146,7 +146,7 @@ class AccountInvoiceReport(models.Model):
 
     def _group_by(self):
         group_by_str = """
-                GROUP BY ail.product_id, ail.account_analytic_id, ai.date_invoice, ai.id,
+                GROUP BY ail.id, ail.product_id, ail.account_analytic_id, ai.date_invoice, ai.id,
                     ai.partner_id, ai.payment_term_id, u2.name, u2.id, ai.currency_id, ai.journal_id,
                     ai.fiscal_position_id, ai.user_id, ai.company_id, ai.type, ai.state, pt.categ_id,
                     ai.date_due, ai.account_id, ail.account_id, ai.partner_bank_id, ai.residual_company_signed,
-- 
GitLab