[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 <pimodoo@users.noreply.github.com>
This commit is contained in:
@@ -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'),
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user