# -*- coding: utf-8 -*- # Part of flectra. See LICENSE file for full copyright and licensing details. from flectra import api, fields, models class SaleReport(models.Model): _inherit = "sale.report" website_id = fields.Many2one('website', 'Website', readonly=True) def _select(self): select_str = """ WITH currency_rate as (%s) SELECT min(l.id) as id, l.product_id as product_id, t.uom_id as product_uom, sum(l.product_uom_qty / u.factor * u2.factor) as product_uom_qty, sum(l.qty_delivered / u.factor * u2.factor) as qty_delivered, sum(l.qty_invoiced / u.factor * u2.factor) as qty_invoiced, sum(l.qty_to_invoice / u.factor * u2.factor) as qty_to_invoice, sum(l.price_total / COALESCE(cr.rate, 1.0)) as price_total, sum(l.price_subtotal / COALESCE(cr.rate, 1.0)) as price_subtotal, sum(l.amt_to_invoice / COALESCE(cr.rate, 1.0)) as amt_to_invoice, sum(l.amt_invoiced / COALESCE(cr.rate, 1.0)) as amt_invoiced, count(*) as nbr, s.name as name, s.date_order as date, s.confirmation_date as confirmation_date, s.state as state, s.partner_id as partner_id, s.user_id as user_id, s.company_id as company_id, extract(epoch from avg(date_trunc('day',s.date_order)-date_trunc('day',s.create_date)))/(24*60*60)::decimal(16,2) as delay, t.categ_id as categ_id, s.pricelist_id as pricelist_id, s.analytic_account_id as analytic_account_id, s.team_id as team_id, s.website_id as website_id, p.product_tmpl_id, partner.country_id as country_id, partner.commercial_partner_id as commercial_partner_id, sum(p.weight * l.product_uom_qty / u.factor * u2.factor) as weight, sum(p.volume * l.product_uom_qty / u.factor * u2.factor) as volume """ % self.env['res.currency']._select_companies_rates() return select_str def _group_by(self): res = super(SaleReport, self)._group_by() return res + ',s.website_id'