Odoo Help


This community is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.


How to count how many products are in a report?

James Ford
on 4/4/16, 2:10 PM 241 views

I have a report on the account.invoice model and want to show how many products in the invoice line. Below will show a picture of what I want to do.

Image: http://es.zimagez.com/zimage/progorma.php

The idea is to count how many products there are on the invoice and return the number of the quantity of products.

Maybe it may be simple, but really do not know everything about Odoo.

Thanks for your advice and help.

Can You post your code ?

Jignesh Mehta
on 4/5/16, 2:37 AM
Kazim Mirza
On 4/5/16, 2:53 AM

Hi James,

You can run counter.

Before your for loop: 

<t t-set="counter" t-value="0"/>
in for loop : 

<t  t-set="counter" t-value="counter + 1"/>
After for loop you can print it like:

<t t-esc="counter"/> 

Hope this helps.


On 4/6/16, 8:05 AM

I try to query into report, it's working...

class customer_report(models.Model):

  _name = "customer.report"

 _description = "Orders Statistics"

 _auto = False

 name = fields.Many2one('res.partner', readonly=True)

 p_id = fields.Many2one('preorder.config','PreOrder Ref')

 tot_product = fields.Integer('# of Unique Product')

 tot_piece = fields.Integer('# of Piece')


 def init(self, cr):

 """Initialize the sql view for the event registration """

 tools.drop_view_if_exists(cr, 'customer_report')

 # TOFIX this request won't select events that have no registration

 cr.execute(""" CREATE VIEW customer_report AS (


 poc.id::varchar || '/' || coalesce(poc.id::varchar,'') AS id,

 poui.customer AS p_id,

 poui.partner_id AS name,

 count(pl.product_id) AS tot_product,

 count(poc.id) AS tot_piece


 preorder_config poc

 left join preorder_user_input poui on (poui.preorder_id = poc.id)

 left join preorder_product_rel ppr on (ppr.preorder_id = poc.id)

 left join preorder_user_input_product_line pl on (pl.user_input_id = poui.id)

 group by

 poc.id, poui.preorder_id, poui.partner_id



Mustafa Al Saeedi
On 4/5/16, 10:37 PM

There a good modules implement what you want on v8.0 but on sales order you can find it on


And for picking 


Hope that's help you


Your Answer

Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!

About This Community

This community is for professionals and enthusiasts of our products and services. Read Guidelines

Question tools

1 follower(s)


Asked: 4/4/16, 2:10 PM
Seen: 241 times
Last updated: 4/7/16, 1:04 AM