45 lines
1.9 KiB
Python
45 lines
1.9 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
|
|
|
|
from flectra import models
|
|
|
|
|
|
class PosSaleReport(models.Model):
|
|
_inherit = "report.all.channels.sales"
|
|
|
|
def _pos(self):
|
|
pos_str = """
|
|
SELECT
|
|
(-1) * pol.id AS id,
|
|
pos.name AS name,
|
|
pos.partner_id AS partner_id,
|
|
pol.product_id AS product_id,
|
|
pro.product_tmpl_id AS product_tmpl_id,
|
|
pos.date_order AS date_order,
|
|
pos.user_id AS user_id,
|
|
pt.categ_id AS categ_id,
|
|
pos.company_id AS company_id,
|
|
((pol.qty * pol.price_unit) * (100 - pol.discount) / 100) AS price_total,
|
|
pos.pricelist_id AS pricelist_id,
|
|
rp.country_id AS country_id,
|
|
(pol.qty * pol.price_unit) AS price_subtotal,
|
|
(pol.qty * u.factor) AS product_qty,
|
|
NULL AS analytic_account_id,
|
|
config.crm_team_id AS team_id
|
|
|
|
FROM pos_order_line AS pol
|
|
JOIN pos_order pos ON (pos.id = pol.order_id)
|
|
LEFT JOIN pos_session session ON (session.id = pos.session_id)
|
|
LEFT JOIN pos_config config ON (config.id = session.config_id)
|
|
LEFT JOIN product_product pro ON (pol.product_id = pro.id)
|
|
LEFT JOIN product_template pt ON (pro.product_tmpl_id = pt.id)
|
|
LEFT JOIN product_category AS pc ON (pt.categ_id = pc.id)
|
|
LEFT JOIN res_company AS rc ON (pos.company_id = rc.id)
|
|
LEFT JOIN res_partner rp ON (rc.partner_id = rp.id)
|
|
LEFT JOIN product_uom u ON (u.id=pt.uom_id)
|
|
"""
|
|
return pos_str
|
|
|
|
def _from(self):
|
|
return """(%s UNION ALL %s)""" % (self._so(), self._pos())
|