mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
add location to bom structure report
This commit is contained in:
committed by
davidborromeo
parent
da972a2feb
commit
38268d8604
@@ -11,6 +11,9 @@ components. This may be useful to distinguish between different BoMs for the
|
||||
same product or to highlight the preferred locations to fetch the
|
||||
components from.
|
||||
|
||||
The location appears in the BOM Structure Report.
|
||||
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
|
||||
@@ -3,3 +3,4 @@
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import models
|
||||
from . import report
|
||||
|
||||
@@ -16,5 +16,6 @@
|
||||
],
|
||||
"data": [
|
||||
"views/mrp_view.xml",
|
||||
"views/report_mrpbomstructure.xml",
|
||||
],
|
||||
}
|
||||
|
||||
5
mrp_bom_location/report/__init__.py
Normal file
5
mrp_bom_location/report/__init__.py
Normal file
@@ -0,0 +1,5 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Copyright 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||
|
||||
from . import bom_structure
|
||||
47
mrp_bom_location/report/bom_structure.py
Normal file
47
mrp_bom_location/report/bom_structure.py
Normal file
@@ -0,0 +1,47 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# © 2017 Eficent Business and IT Consulting Services S.L.
|
||||
# (http://www.eficent.com)
|
||||
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html).
|
||||
|
||||
from openerp.osv import osv
|
||||
from openerp.report import report_sxw
|
||||
|
||||
|
||||
class bom_structure(report_sxw.rml_parse):
|
||||
def __init__(self, cr, uid, name, context):
|
||||
super(bom_structure, self).__init__(cr, uid, name, context=context)
|
||||
self.localcontext.update({
|
||||
'get_children': self.get_children,
|
||||
})
|
||||
|
||||
def get_children(self, object, level=0):
|
||||
result = []
|
||||
|
||||
def _get_rec(object, level, qty=1.0):
|
||||
for l in object:
|
||||
res = {}
|
||||
res['pname'] = l.product_id.name_get()[0][1]
|
||||
res['pcode'] = l.product_id.default_code
|
||||
res['pqty'] = l.product_qty * qty
|
||||
res['uname'] = l.product_uom.name
|
||||
res['level'] = level
|
||||
res['code'] = l.bom_id.code
|
||||
res['location_name'] = l.location_id.complete_name or ''
|
||||
result.append(res)
|
||||
if l.child_line_ids:
|
||||
if level<6:
|
||||
level += 1
|
||||
_get_rec(l.child_line_ids, level, qty=res['pqty'])
|
||||
if level>0 and level<6:
|
||||
level -= 1
|
||||
return result
|
||||
|
||||
children = _get_rec(object,level)
|
||||
|
||||
return children
|
||||
|
||||
|
||||
class report_mrpbomstructure_location(osv.AbstractModel):
|
||||
_inherit = 'report.mrp.report_mrpbomstructure'
|
||||
_template = 'mrp.report_mrpbomstructure'
|
||||
_wrapped_report_class = bom_structure
|
||||
20
mrp_bom_location/views/report_mrpbomstructure.xml
Normal file
20
mrp_bom_location/views/report_mrpbomstructure.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<template id="report_mrpbomstructure_location"
|
||||
inherit_id="mrp.report_mrpbomstructure">
|
||||
<xpath expr="//thead/tr" position="inside">
|
||||
<th>Location</th>
|
||||
</xpath>
|
||||
<xpath expr="//tbody/t/tr[1]" position="inside">
|
||||
<td>
|
||||
<span t-field="o.location_id.complete_name"/>
|
||||
</td>
|
||||
</xpath>
|
||||
|
||||
<xpath expr="//tbody/t/tr[2]" position="inside">
|
||||
<td>
|
||||
<span t-esc="l['location_name']"/>
|
||||
</td>
|
||||
</xpath>
|
||||
</template>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user