savoirfairelinux-openerp team mailing list archive
-
savoirfairelinux-openerp team
-
Mailing list archive
-
Message #00062
lp:~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom into lp:openerp-manufacturing
Jonatan Cloutier has proposed merging lp:~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom into lp:openerp-manufacturing.
Requested reviews:
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c)
For more details, see:
https://code.launchpad.net/~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom/+merge/157680
Add a module that add the fields 'Bubble Number' and 'RefDes' (reference description) to a component in BoM view that is useful for some industrial design.
--
https://code.launchpad.net/~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom/+merge/157680
Your team Savoir-faire Linux' OpenERP is subscribed to branch lp:~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom.
=== added directory 'mrp_industrial_design_bom'
=== added file 'mrp_industrial_design_bom/__init__.py'
--- mrp_industrial_design_bom/__init__.py 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/__init__.py 2013-04-08 15:48:34 +0000
@@ -0,0 +1,24 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import industrial_design
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
=== added file 'mrp_industrial_design_bom/__openerp__.py'
--- mrp_industrial_design_bom/__openerp__.py 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/__openerp__.py 2013-04-08 15:48:34 +0000
@@ -0,0 +1,39 @@
+# -*- encoding: utf-8 -*-
+
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+{
+ 'name' : 'Industrial design specification in BoM',
+ 'version' : '1.0',
+ "author" : "Savoir-faire Linux",
+ "website" : "http://www.savoirfairelinux.com",
+ 'license': 'AGPL-3',
+ 'category' : 'Specific Industry Applications',
+ 'depends' : ['mrp'],
+ "data" : ['mrp_industrial_design.xml'],
+ 'description': """
+Add the fields 'Bubble Number' and 'RefDes' (reference description) to a component in BoM view.
+""",
+ 'auto_install': False,
+ 'installable': True
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
=== added directory 'mrp_industrial_design_bom/i18n'
=== added file 'mrp_industrial_design_bom/i18n/fr.po'
--- mrp_industrial_design_bom/i18n/fr.po 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/i18n/fr.po 2013-04-08 15:48:34 +0000
@@ -0,0 +1,32 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * mrp_industrial_design_bom
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-03-26 16:23+0000\n"
+"PO-Revision-Date: 2013-03-26 14:00-0500\n"
+"Last-Translator: Marc Cassuto <marc.cassuto@xxxxxxxxxxxxxxxxxxxx>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+
+#. module: mrp_industrial_design_bom
+#: model:ir.model,name:mrp_industrial_design_bom.model_mrp_bom
+msgid "Bill of Material"
+msgstr "Nomenclature"
+
+#. module: mrp_industrial_design_bom
+#: field:mrp.bom,refdes:0
+msgid "Notes"
+msgstr "notes"
+
+#. module: mrp_industrial_design_bom
+#: field:mrp.bom,bubble_number:0
+msgid "No"
+msgstr "N°"
+
=== added file 'mrp_industrial_design_bom/i18n/mrp_industrial_design_bom.pot'
--- mrp_industrial_design_bom/i18n/mrp_industrial_design_bom.pot 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/i18n/mrp_industrial_design_bom.pot 2013-04-08 15:48:34 +0000
@@ -0,0 +1,32 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * mrp_industrial_design_bom
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2013-03-26 16:23+0000\n"
+"PO-Revision-Date: 2013-03-26 16:23+0000\n"
+"Last-Translator: <>\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+
+#. module: mrp_industrial_design_bom
+#: model:ir.model,name:mrp_industrial_design_bom.model_mrp_bom
+msgid "Bill of Material"
+msgstr ""
+
+#. module: mrp_industrial_design_bom
+#: field:mrp.bom,refdes:0
+msgid "Notes"
+msgstr ""
+
+#. module: mrp_industrial_design_bom
+#: field:mrp.bom,bubble_number:0
+msgid "No"
+msgstr ""
+
=== added file 'mrp_industrial_design_bom/industrial_design.py'
--- mrp_industrial_design_bom/industrial_design.py 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/industrial_design.py 2013-04-08 15:48:34 +0000
@@ -0,0 +1,32 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2010 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.osv import fields, orm
+
+class mrp_bom(orm.Model):
+ _inherit = 'mrp.bom'
+ _columns = {
+ 'bubble_number': fields.integer('No'),
+ 'refdes': fields.text('Notes'),
+ }
+
+ _order = "bubble_number"
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'mrp_industrial_design_bom/mrp_industrial_design.xml'
--- mrp_industrial_design_bom/mrp_industrial_design.xml 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/mrp_industrial_design.xml 2013-04-08 15:48:34 +0000
@@ -0,0 +1,29 @@
+<?xml version="1.0" ?>
+<openerp>
+ <data>
+ <delete model="ir.actions.report.xml" search="[('name', '=', 'bom.structure')]" />
+ <report auto="True"
+ header="False"
+ id="report_custom_bom_structure"
+ model="mrp.bom"
+ name="custom.bom.structure"
+ rml="mrp_industrial_design_bom/report/bom_structure_custom.rml"
+ string="BOM Structure"/>
+
+ <record model="ir.ui.view" id="mrp_bom_form_view_inherit">
+ <field name="name">mrp.bom.form.inherit</field>
+ <field name="model">mrp.bom</field>
+ <field name="inherit_id" ref="mrp.mrp_bom_form_view" />
+ <field name="arch" type="xml">
+ <xpath expr="/form/notebook/page/field/tree/field[@name='product_id']" position="before">
+ <field name="bubble_number" />
+ </xpath>
+ <xpath expr="/form/notebook/page/field/tree/field[@name='date_stop']" position="after">
+ <field name="refdes" />
+ </xpath>
+ </field>
+ </record>
+
+ </data>
+</openerp>
+
=== added directory 'mrp_industrial_design_bom/report'
=== added file 'mrp_industrial_design_bom/report/__init__.py'
--- mrp_industrial_design_bom/report/__init__.py 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/report/__init__.py 2013-04-08 15:48:34 +0000
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import bom_structure_custom
=== added file 'mrp_industrial_design_bom/report/bom_structure_custom.odt'
Binary files mrp_industrial_design_bom/report/bom_structure_custom.odt 1970-01-01 00:00:00 +0000 and mrp_industrial_design_bom/report/bom_structure_custom.odt 2013-04-08 15:48:34 +0000 differ
=== added file 'mrp_industrial_design_bom/report/bom_structure_custom.py'
--- mrp_industrial_design_bom/report/bom_structure_custom.py 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/report/bom_structure_custom.py 2013-04-08 15:48:34 +0000
@@ -0,0 +1,69 @@
+## -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+import time
+from openerp.report import report_sxw
+from openerp.osv import osv
+from openerp import pooler
+
+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({
+ 'time': time,
+ 'get_children':self.get_children,
+ })
+
+ def get_children(self, object, level=0):
+ result = []
+
+ def _get_rec(object, level):
+ for l in object:
+ res = {}
+ res['name'] = l.name
+ res['pname'] = l.product_id.name
+ res['pcode'] = l.product_id.default_code
+ res['pqty'] = l.product_qty
+ res['uname'] = l.product_uom.name
+ res['code'] = l.code
+ res['level'] = level
+ res['bnumber'] = l.bubble_number
+ result.append(res)
+ if l.child_complete_ids:
+ if level<6:
+ level += 1
+ _get_rec(l.child_complete_ids,level)
+ if level>0 and level<6:
+ level -= 1
+ return result
+
+ children = _get_rec(object,level)
+
+ return children
+
+report_sxw.report_sxw('report.custom.bom.structure',
+ 'mrp.bom',
+ 'mrp_industrial_design_bom/report/bom_structure_custom.rml',
+ parser=bom_structure,
+ header='internal')
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
=== added file 'mrp_industrial_design_bom/report/bom_structure_custom.rml'
--- mrp_industrial_design_bom/report/bom_structure_custom.rml 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/report/bom_structure_custom.rml 2013-04-08 15:48:34 +0000
@@ -0,0 +1,158 @@
+<?xml version="1.0"?>
+<document filename="test.pdf">
+ <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
+ <pageTemplate id="first">
+ <frame id="first" x1="31.0" y1="30.0" width="532" height="781"/>
+ </pageTemplate>
+ </template>
+ <stylesheet>
+ <blockTableStyle id="Standard_Outline">
+ <blockAlignment value="LEFT"/>
+ <blockValign value="TOP"/>
+ </blockTableStyle>
+ <blockTableStyle id="Table2">
+ <blockAlignment value="LEFT"/>
+ <blockValign value="TOP"/>
+ <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
+ </blockTableStyle>
+ <blockTableStyle id="Table1">
+ <blockAlignment value="LEFT"/>
+ <blockValign value="TOP"/>
+ <lineStyle kind="LINEBELOW" colorName="#999999" start="0,-1" stop="0,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#999999" start="1,-1" stop="1,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#999999" start="2,-1" stop="2,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#999999" start="3,-1" stop="3,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#999999" start="4,-1" stop="4,-1"/>
+ </blockTableStyle>
+ <blockTableStyle id="Table3">
+ <blockAlignment value="LEFT"/>
+ <blockValign value="TOP"/>
+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
+ <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
+ </blockTableStyle>
+ <initialize>
+ <paraStyle name="all" alignment="justify"/>
+ </initialize>
+ <paraStyle name="P1" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="Standard" fontName="Helvetica"/>
+ <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+ <paraStyle name="Text_20_body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
+ <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
+ <paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="Index" fontName="Helvetica"/>
+ <paraStyle name="Table_20_Contents" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT"/>
+ <paraStyle name="Table_20_Heading" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/>
+ <paraStyle name="terp_5f_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_default_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_default_5f_Bold_5f_8" fontName="Helvetica-Bold" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_default_5f_Bold_5f_9" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_default_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_tblheader_5f_General" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_tblheader_5f_General_5f_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_default_5f_Centre_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_tblheader_5f_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="Footer" fontName="Helvetica"/>
+ <paraStyle name="Horizontal_20_Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
+ <paraStyle name="Heading_20_9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_tblheader_5f_General_5f_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_tblheader_5f_Details_5f_Centre" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_tblheader_5f_Details_5f_Right" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="6.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_default_5f_Right_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_header_5f_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_header_5f_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_default_5f_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_default_5f_Centre_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_default_5f_Right_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_default_5f_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_default_5f_Right_5f_9_5f_Bold" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="terp_5f_default_5f_8_5f_Italic" fontName="Helvetica-Oblique" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
+ <paraStyle name="Heading_20_2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
+ <paraStyle name="terp_5f_remove_5f_space" fontName="Helvetica" fontSize="2.0" leading="3" spaceBefore="0.0" spaceAfter="0.0"/>
+ <images/>
+ </stylesheet>
+ <story>
+ <para style="terp_5f_header_5f_Centre">BOM Structure</para>
+ <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table2">
+ <tr>
+ <td>
+ <para style="terp_5f_tblheader_5f_Details">BOM Name</para>
+ </td>
+ <td>
+ <para style="P3">
+ <font face="Helvetica">Bubble Number</font>
+ </para>
+ </td>
+ <td>
+ <para style="terp_5f_tblheader_5f_Details">Product Name</para>
+ </td>
+ <td>
+ <para style="terp_5f_tblheader_5f_Details_5f_Right">Quantity</para>
+ </td>
+ <td>
+ <para style="terp_5f_tblheader_5f_General_5f_Centre">BOM Ref</para>
+ </td>
+ </tr>
+ </blockTable>
+ <section>
+ <para style="terp_5f_default_5f_8">[[ repeatIn(objects, 'o') ]]</para>
+ <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table1">
+ <tr>
+ <td>
+ <para style="terp_5f_default_5f_Bold_5f_9">[[ o.name ]]</para>
+ </td>
+ <td>
+ <para style="P1">
+ <font face="Helvetica">[[ o.bubble_number ]]</font>
+ </para>
+ </td>
+ <td>
+ <para style="terp_5f_default_5f_Bold_5f_9">[ [[ (o.product_id.default_code) or removeParentNode('font') ]] ] [[ o.product_id.name ]]</para>
+ </td>
+ <td>
+ <para style="terp_5f_default_5f_Right_5f_9_5f_Bold">[[ o.product_qty ]] [[ o.product_uom.name ]]</para>
+ </td>
+ <td>
+ <para style="terp_5f_tblheader_5f_Details_5f_Centre">[[ o.code ]]</para>
+ </td>
+ </tr>
+ </blockTable>
+ <section>
+ <para style="terp_5f_default_5f_8">[[ repeatIn(get_children(o.bom_lines), 'l') ]]</para>
+ <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table3">
+ <tr>
+ <td>
+ <para style="terp_5f_default_5f_9"><font face="Helvetica" size="8.0">[[ '... '*(l['level']) ]]</font> - [[ l['name'] ]]</para>
+ </td>
+ <td>
+ <para style="P2">
+ <font face="Helvetica">[[ l['bnumber'] ]]</font>
+ </para>
+ </td>
+ <td>
+ <para style="terp_5f_default_5f_9">[ [[ (l['pcode']) or removeParentNode('font') ]] ] [[ l['pname'] ]]</para>
+ </td>
+ <td>
+ <para style="terp_5f_default_5f_Right_5f_9">[[ l['pqty'] ]] [[ l['uname'] ]]</para>
+ </td>
+ <td>
+ <para style="terp_5f_default_5f_Centre_5f_9">[[ l['code'] ]]</para>
+ </td>
+ </tr>
+ </blockTable>
+ <para style="terp_5f_default_5f_1">
+ <font color="white"> </font>
+ </para>
+ </section>
+ </section>
+ </story>
+</document>
+
Follow ups