From f17beeef4b07c2dba4d4c1e1e6394d318271e51f Mon Sep 17 00:00:00 2001 From: rhe Date: Thu, 16 May 2019 08:15:53 +0000 Subject: [PATCH] [FIX] sale: Adapt sales count on product When the sales count on the product form doesn't take into account the sales done in point of sale. So we've extend the list of done states to take the ones from point of sale. TASK-ID: 1985493 closes odoo/odoo#33422 Signed-off-by: pimodoo --- addons/pos_sale/report/sale_report.py | 6 ++++++ addons/sale/models/product_product.py | 7 ++++--- addons/sale/report/sale_report.py | 4 ++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/addons/pos_sale/report/sale_report.py b/addons/pos_sale/report/sale_report.py index 97ccd467f69..13f16a69c03 100644 --- a/addons/pos_sale/report/sale_report.py +++ b/addons/pos_sale/report/sale_report.py @@ -8,6 +8,12 @@ from odoo import api, fields, models class SaleReport(models.Model): _inherit = "sale.report" + @api.model + def _get_done_states(self): + done_states = super(SaleReport, self)._get_done_states() + done_states.extend(['pos_done', 'invoiced']) + return done_states + state = fields.Selection(selection_add=[('pos_draft', 'New'), ('paid', 'Paid'), ('pos_done', 'Posted'), diff --git a/addons/sale/models/product_product.py b/addons/sale/models/product_product.py index 635e89820e6..d5045aa6464 100644 --- a/addons/sale/models/product_product.py +++ b/addons/sale/models/product_product.py @@ -17,12 +17,13 @@ class ProductProduct(models.Model): return r date_from = fields.Datetime.to_string(fields.datetime.combine(fields.datetime.now() - timedelta(days=365), time.min)) - date_to = fields.Datetime.to_string(fields.datetime.combine(fields.datetime.today(), time.min)) + + done_states = self.env['sale.report']._get_done_states() + domain = [ - ('state', 'in', ['sale', 'done', 'paid']), + ('state', 'in', done_states), ('product_id', 'in', self.ids), ('date', '>=', date_from), - ('date', '<', date_to) ] for group in self.env['sale.report'].read_group(domain, ['product_id', 'product_uom_qty'], ['product_id']): r[group['product_id'][0]] = group['product_uom_qty'] diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py index fab00d06a39..4936a9401ed 100644 --- a/addons/sale/report/sale_report.py +++ b/addons/sale/report/sale_report.py @@ -12,6 +12,10 @@ class SaleReport(models.Model): _rec_name = 'date' _order = 'date desc' + @api.model + def _get_done_states(self): + return ['sale', 'done', 'paid'] + name = fields.Char('Order Reference', readonly=True) date = fields.Datetime('Order Date', readonly=True) confirmation_date = fields.Datetime('Confirmation Date', readonly=True)