mirror of
https://github.com/OCA/manufacture.git
synced 2025-01-28 16:37:15 +02:00
[10.0][MIG] mrp_bom_location: migrate report
This commit is contained in:
@@ -3,27 +3,31 @@
|
||||
# (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
|
||||
from openerp import models
|
||||
|
||||
|
||||
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,
|
||||
})
|
||||
class BomStructureReport(models.AbstractModel):
|
||||
_inherit = 'report.mrp.report_mrpbomstructure'
|
||||
|
||||
def get_children(self, record, level=0):
|
||||
result = []
|
||||
|
||||
def _get_rec(record, level, qty=1.0):
|
||||
def _get_rec(record, level, qty=1.0, uom=False):
|
||||
for l in record:
|
||||
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
|
||||
qty_per_bom = l.bom_id.product_qty
|
||||
if uom:
|
||||
if uom != l.bom_id.product_uom_id:
|
||||
qty = uom._compute_quantity(
|
||||
qty, l.bom_id.product_uom_id)
|
||||
res['pqty'] = (l.product_qty * qty) / qty_per_bom
|
||||
else:
|
||||
# for the first case, the ponderation is right
|
||||
res['pqty'] = (l.product_qty * qty)
|
||||
res['puom'] = l.product_uom_id
|
||||
res['uname'] = l.product_uom_id.name
|
||||
res['level'] = level
|
||||
res['code'] = l.bom_id.code
|
||||
res['location_name'] = l.location_id.complete_name or ''
|
||||
@@ -31,17 +35,13 @@ class bom_structure(report_sxw.rml_parse):
|
||||
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:
|
||||
_get_rec(
|
||||
l.child_line_ids, level,
|
||||
qty=res['pqty'], uom=res['puom'])
|
||||
if 0 < level < 6:
|
||||
level -= 1
|
||||
return result
|
||||
|
||||
children = _get_rec(record, level)
|
||||
|
||||
return children
|
||||
|
||||
|
||||
class report_mrpbomstructure_location(osv.AbstractModel):
|
||||
_inherit = 'report.mrp.report_mrpbomstructure'
|
||||
_template = 'mrp.report_mrpbomstructure'
|
||||
_wrapped_report_class = bom_structure
|
||||
|
||||
Reference in New Issue
Block a user