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
Jordi Ballester Alomar
parent
af0a8b9e17
commit
c38771b47a
@@ -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
|
same product or to highlight the preferred locations to fetch the
|
||||||
components from.
|
components from.
|
||||||
|
|
||||||
|
The location appears in the BOM Structure Report.
|
||||||
|
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
=====
|
=====
|
||||||
|
|
||||||
|
|||||||
@@ -3,3 +3,4 @@
|
|||||||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
from . import report
|
||||||
|
|||||||
@@ -16,5 +16,6 @@
|
|||||||
],
|
],
|
||||||
"data": [
|
"data": [
|
||||||
"views/mrp_view.xml",
|
"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