diff --git a/addons/pos_sale/report/sale_report.py b/addons/pos_sale/report/sale_report.py
index 5053d78342f..ddc713c0bb9 100644
--- a/addons/pos_sale/report/sale_report.py
+++ b/addons/pos_sale/report/sale_report.py
@@ -56,7 +56,10 @@ class SaleReport(models.Model):
(select sum(t.volume*l.qty/u.factor) from pos_order_line l
join product_product p on (l.product_id=p.id)
left join product_template t on (p.product_tmpl_id=t.id)
- left join uom_uom u on (u.id=t.uom_id)) AS volume
+ left join uom_uom u on (u.id=t.uom_id)) AS volume,
+ l.discount as discount,
+ sum((l.price_unit * l.discount / 100.0 / COALESCE(cr.rate, 1.0))) as discount_amount,
+ NULL as order_id
'''
for field in fields.keys():
diff --git a/addons/sale/report/sale_report.py b/addons/sale/report/sale_report.py
index 7809ea0ff3f..0af13520c2a 100644
--- a/addons/sale/report/sale_report.py
+++ b/addons/sale/report/sale_report.py
@@ -46,6 +46,11 @@ class SaleReport(models.Model):
weight = fields.Float('Gross Weight', readonly=True)
volume = fields.Float('Volume', readonly=True)
+ discount = fields.Float('Discount %', readonly=True)
+ discount_amount = fields.Float('Discount Amount', readonly=True)
+
+ order_id = fields.Integer('Order ID', readonly=True)
+
def _query(self, with_clause='', fields={}, groupby='', from_clause=''):
with_ = """currency_rate as (%s) %s""" % (self.env['res.currency']._select_companies_rates(), with_clause)
@@ -78,7 +83,10 @@ class SaleReport(models.Model):
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
+ sum(p.volume * l.product_uom_qty / u.factor * u2.factor) as volume,
+ l.discount as discount,
+ sum((l.price_unit * l.discount / 100.0 / COALESCE(cr.rate, 1.0))) as discount_amount,
+ s.id as order_id
"""
for field in fields.values():
@@ -117,7 +125,9 @@ class SaleReport(models.Model):
s.team_id,
p.product_tmpl_id,
partner.country_id,
- partner.commercial_partner_id %s
+ partner.commercial_partner_id,
+ l.discount,
+ s.id %s
""" % (groupby)
return 'WITH %s (SELECT %s FROM %s WHERE l.product_id IS NOT NULL GROUP BY %s)' % (with_, select_, from_, groupby_)
diff --git a/addons/sale/report/sale_report_views.xml b/addons/sale/report/sale_report_views.xml
index e1ddb6361a1..d3f53f7bc23 100644
--- a/addons/sale/report/sale_report_views.xml
+++ b/addons/sale/report/sale_report_views.xml
@@ -17,7 +17,7 @@
sale.report.graph
sale.report
-
+
@@ -31,9 +31,12 @@
-
-
+
+
+
+
+
diff --git a/addons/sale/views/sale_views.xml b/addons/sale/views/sale_views.xml
index 5c711dfe2c8..761333e3920 100644
--- a/addons/sale/views/sale_views.xml
+++ b/addons/sale/views/sale_views.xml
@@ -566,7 +566,7 @@
-
+
+
+
+
+
+
diff --git a/addons/website_sale/models/sale_order.py b/addons/website_sale/models/sale_order.py
index fc70d78ad67..45f36c11dbd 100644
--- a/addons/website_sale/models/sale_order.py
+++ b/addons/website_sale/models/sale_order.py
@@ -256,3 +256,9 @@ class SaleOrder(models.Model):
self.payment_tx_id.state = 'done'
else:
raise ValidationError(_("The quote should be sent and the payment acquirer type should be manual or wire transfer"))
+
+ def _set_demo_create_date(self, create_date):
+ self.env.cr.execute("""UPDATE sale_order SET create_date=%s WHERE id IN %s """, (create_date, tuple(self.ids)))
+ self.modified(['create_date'])
+ if self.env.recompute and self.env.context.get('recompute', True):
+ self.recompute()