diff --git a/addons/mrp/__openerp__.py b/addons/mrp/__openerp__.py
index b405f402d81..efcdb5f73c3 100644
--- a/addons/mrp/__openerp__.py
+++ b/addons/mrp/__openerp__.py
@@ -48,6 +48,7 @@ Dashboard / Reports for MRP will include:
'res_config_view.xml',
'views/report_mrporder.xml',
'views/report_mrpbomstructure.xml',
+ 'views/report_mrpbomcost.xml',
],
'demo': ['mrp_demo.xml'],
'test': [
diff --git a/addons/mrp/mrp_report.xml b/addons/mrp/mrp_report.xml
index 903749cf1a3..5c93b996207 100644
--- a/addons/mrp/mrp_report.xml
+++ b/addons/mrp/mrp_report.xml
@@ -18,6 +18,13 @@
file="mrp.report_mrporder"
report_type="qweb-pdf"
/>
-
+
diff --git a/addons/mrp/report/__init__.py b/addons/mrp/report/__init__.py
index a71fee4bbc2..73a73053af1 100644
--- a/addons/mrp/report/__init__.py
+++ b/addons/mrp/report/__init__.py
@@ -3,3 +3,4 @@
import bom_structure
import mrp_report
+import bom_cost
\ No newline at end of file
diff --git a/addons/mrp/report/bom_cost.py b/addons/mrp/report/bom_cost.py
new file mode 100644
index 00000000000..d27a05b1bce
--- /dev/null
+++ b/addons/mrp/report/bom_cost.py
@@ -0,0 +1,48 @@
+# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
+from openerp import api, models
+
+
+class MrpBomCost(models.AbstractModel):
+ _name = 'report.mrp_bom_cost'
+
+ @api.multi
+ def get_lines(self, boms):
+ product_lines = []
+ for bom in boms:
+ products = bom.product_id
+ if not products:
+ products = bom.product_tmpl_id.product_variant_ids
+ for product in products:
+ attributes = []
+ for value in product.attribute_value_ids:
+ attributes += [(value.attribute_id.name, value.name)]
+ result, result2 = self.env['mrp.bom']._bom_explode(bom, product, 1)
+ product_line = {'name': product.name, 'lines': [], 'total': 0.0,
+ 'currency': self.env.user.company_id.currency_id,
+ 'product_uom_qty': bom.product_qty,
+ 'product_uom': bom.product_uom,
+ 'attributes': attributes}
+ total = 0.0
+ for bom_line in result:
+ line_product = self.env['product.product'].browse(bom_line['product_id'])
+ price_uom = self.env['product.uom']._compute_qty(line_product.uom_id.id, line_product.standard_price, bom_line['product_uom'])
+ line = {
+ 'product_id': line_product,
+ 'product_uom_qty': bom_line['product_qty'],
+ 'product_uom': self.env['product.uom'].browse(bom_line['product_uom']),
+ 'price_unit': price_uom,
+ 'total_price': price_uom * bom_line['product_qty'],
+ }
+ total += line['total_price']
+ product_line['lines'] += [line]
+ product_line['total'] = total
+ product_lines += [product_line]
+ return product_lines
+
+ @api.multi
+ def render_html(self, data=None):
+ boms = self.env['mrp.bom'].browse(self.ids)
+ res = self.get_lines(boms)
+ return self.env['report'].render('mrp.mrp_bom_cost', {'lines': res})
\ No newline at end of file
diff --git a/addons/mrp/views/report_mrpbomcost.xml b/addons/mrp/views/report_mrpbomcost.xml
new file mode 100644
index 00000000000..3237e55c47a
--- /dev/null
+++ b/addons/mrp/views/report_mrpbomcost.xml
@@ -0,0 +1,55 @@
+
+
+
+
+
+