Merge lp:~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom into lp:openerp-manufacturing

Proposed by Jonatan Cloutier
Status: Merged
Merged at revision: 5
Proposed branch: lp:~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom
Merge into: lp:openerp-manufacturing
Diff against target: 487 lines (+438/-0)
9 files modified
mrp_industrial_design_bom/__init__.py (+24/-0)
mrp_industrial_design_bom/__openerp__.py (+39/-0)
mrp_industrial_design_bom/i18n/fr.po (+32/-0)
mrp_industrial_design_bom/i18n/mrp_industrial_design_bom.pot (+32/-0)
mrp_industrial_design_bom/industrial_design.py (+32/-0)
mrp_industrial_design_bom/mrp_industrial_design.xml (+29/-0)
mrp_industrial_design_bom/report/__init__.py (+23/-0)
mrp_industrial_design_bom/report/bom_structure_industrial_design.py (+69/-0)
mrp_industrial_design_bom/report/bom_structure_industrial_design.rml (+158/-0)
To merge this branch: bzr merge lp:~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom
Reviewer Review Type Date Requested Status
Stefan Rijnhart (Opener) Needs Fixing
Maxime Chambreuil (http://www.savoirfairelinux.com) lgtm, no test Approve
Alexandre Fayolle - camptocamp Pending
Review via email: mp+161126@code.launchpad.net

This proposal supersedes a proposal from 2013-04-11.

Description of the change

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.

To post a comment you must log in.
Revision history for this message
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote : Posted in a previous version of this proposal

The diff is empty.

review: Needs Resubmitting
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote : Posted in a previous version of this proposal

line 200: you have an indentation problem.

Otherwise, it looks good to me.

review: Needs Fixing (review, no test.)
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) : Posted in a previous version of this proposal
review: Approve (review, no test.)
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote : Posted in a previous version of this proposal

Can you rename/replace bom_structure_custom by bom_structure_industrial_design everywhere in the report subdirectory ?

review: Needs Fixing
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) :
review: Approve (lgtm, no test)
Revision history for this message
Stefan Rijnhart (Opener) (stefan-opener) wrote :

Maxime,

you merged this a bit too fast for my taste, two hours after the resubmit. Please allow a couple of days for other people to react.

This module deletes the original BOM report, and then redefines it. I assume that it contains a copy of the original report plus the additional fields that this module defines. I would advocate two changes;

Instead of deleting the report, just set the rml location on the existing report to the rml file in this module. Otherwise, this will impact models that refer to the original report, such as an email template.

The change of the location of the rml template should be stated in the module description.

If you agree to these changes, it is probably easier to submit a patch branch than to uncommit this hasty merge.

review: Needs Fixing
Revision history for this message
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote :

I agree, my bad.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== 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-26 13:46:31 +0000
@@ -0,0 +1,24 @@
1# -*- encoding: utf-8 -*-
2##############################################################################
3#
4# OpenERP, Open Source Management Solution
5# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
6#
7# This program is free software: you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as
9# published by the Free Software Foundation, either version 3 of the
10# License, or (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program. If not, see <http://www.gnu.org/licenses/>.
19#
20##############################################################################
21
22import industrial_design
23# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
24
025
=== 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-26 13:46:31 +0000
@@ -0,0 +1,39 @@
1# -*- encoding: utf-8 -*-
2
3##############################################################################
4#
5# OpenERP, Open Source Management Solution
6# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU Affero General Public License as
10# published by the Free Software Foundation, either version 3 of the
11# License, or (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU Affero General Public License for more details.
17#
18# You should have received a copy of the GNU Affero General Public License
19# along with this program. If not, see <http://www.gnu.org/licenses/>.
20#
21##############################################################################
22
23{
24 'name' : 'Industrial design specification in BoM',
25 'version' : '1.0',
26 "author" : "Savoir-faire Linux",
27 "website" : "http://www.savoirfairelinux.com",
28 'license': 'AGPL-3',
29 'category' : 'Specific Industry Applications',
30 'depends' : ['mrp'],
31 "data" : ['mrp_industrial_design.xml'],
32 'description': """
33Add the fields 'Bubble Number' and 'RefDes' (reference description) to a component in BoM view.
34""",
35 'auto_install': False,
36 'installable': True
37}
38# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
39
040
=== 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-26 13:46:31 +0000
@@ -0,0 +1,32 @@
1# Translation of OpenERP Server.
2# This file contains the translation of the following modules:
3# * mrp_industrial_design_bom
4#
5msgid ""
6msgstr ""
7"Project-Id-Version: OpenERP Server 7.0\n"
8"Report-Msgid-Bugs-To: \n"
9"POT-Creation-Date: 2013-03-26 16:23+0000\n"
10"PO-Revision-Date: 2013-03-26 14:00-0500\n"
11"Last-Translator: Marc Cassuto <marc.cassuto@savoirfairelinux.com>\n"
12"Language-Team: \n"
13"MIME-Version: 1.0\n"
14"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Transfer-Encoding: 8bit\n"
16"Plural-Forms: \n"
17
18#. module: mrp_industrial_design_bom
19#: model:ir.model,name:mrp_industrial_design_bom.model_mrp_bom
20msgid "Bill of Material"
21msgstr "Nomenclature"
22
23#. module: mrp_industrial_design_bom
24#: field:mrp.bom,refdes:0
25msgid "Notes"
26msgstr "notes"
27
28#. module: mrp_industrial_design_bom
29#: field:mrp.bom,bubble_number:0
30msgid "No"
31msgstr "N°"
32
033
=== 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-26 13:46:31 +0000
@@ -0,0 +1,32 @@
1# Translation of OpenERP Server.
2# This file contains the translation of the following modules:
3# * mrp_industrial_design_bom
4#
5msgid ""
6msgstr ""
7"Project-Id-Version: OpenERP Server 7.0\n"
8"Report-Msgid-Bugs-To: \n"
9"POT-Creation-Date: 2013-03-26 16:23+0000\n"
10"PO-Revision-Date: 2013-03-26 16:23+0000\n"
11"Last-Translator: <>\n"
12"Language-Team: \n"
13"MIME-Version: 1.0\n"
14"Content-Type: text/plain; charset=UTF-8\n"
15"Content-Transfer-Encoding: \n"
16"Plural-Forms: \n"
17
18#. module: mrp_industrial_design_bom
19#: model:ir.model,name:mrp_industrial_design_bom.model_mrp_bom
20msgid "Bill of Material"
21msgstr ""
22
23#. module: mrp_industrial_design_bom
24#: field:mrp.bom,refdes:0
25msgid "Notes"
26msgstr ""
27
28#. module: mrp_industrial_design_bom
29#: field:mrp.bom,bubble_number:0
30msgid "No"
31msgstr ""
32
033
=== 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-26 13:46:31 +0000
@@ -0,0 +1,32 @@
1# -*- encoding: utf-8 -*-
2##############################################################################
3#
4# OpenERP, Open Source Management Solution
5# Copyright (C) 2010 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
6#
7# This program is free software: you can redistribute it and/or modify
8# it under the terms of the GNU General Public License as
9# published by the Free Software Foundation, either version 3 of the
10# License, or (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU General Public License for more details.
16#
17# You should have received a copy of the GNU General Public License
18# along with this program. If not, see <http://www.gnu.org/licenses/>.
19#
20##############################################################################
21
22from openerp.osv import fields, orm
23
24class mrp_bom(orm.Model):
25 _inherit = 'mrp.bom'
26 _columns = {
27 'bubble_number': fields.integer('No'),
28 'refdes': fields.text('Notes'),
29 }
30
31 _order = "bubble_number"
32# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
033
=== 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-26 13:46:31 +0000
@@ -0,0 +1,29 @@
1<?xml version="1.0" ?>
2<openerp>
3 <data>
4 <delete model="ir.actions.report.xml" search="[('name', '=', 'bom.structure')]" />
5 <report auto="True"
6 header="False"
7 id="report_industrial_design_bom_structure"
8 model="mrp.bom"
9 name="industrialdesign.bom.structure"
10 rml="mrp_industrial_design_bom/report/bom_structure_industrial_design.rml"
11 string="BOM Structure"/>
12
13 <record model="ir.ui.view" id="mrp_bom_form_view_inherit">
14 <field name="name">mrp.bom.form.inherit</field>
15 <field name="model">mrp.bom</field>
16 <field name="inherit_id" ref="mrp.mrp_bom_form_view" />
17 <field name="arch" type="xml">
18 <xpath expr="/form/notebook/page/field/tree/field[@name='product_id']" position="before">
19 <field name="bubble_number" />
20 </xpath>
21 <xpath expr="/form/notebook/page/field/tree/field[@name='date_stop']" position="after">
22 <field name="refdes" />
23 </xpath>
24 </field>
25 </record>
26
27 </data>
28</openerp>
29
030
=== 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-26 13:46:31 +0000
@@ -0,0 +1,23 @@
1# -*- coding: utf-8 -*-
2
3##############################################################################
4#
5# OpenERP, Open Source Management Solution
6# Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>).
7#
8# This program is free software: you can redistribute it and/or modify
9# it under the terms of the GNU Affero General Public License as
10# published by the Free Software Foundation, either version 3 of the
11# License, or (at your option) any later version.
12#
13# This program is distributed in the hope that it will be useful,
14# but WITHOUT ANY WARRANTY; without even the implied warranty of
15# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16# GNU Affero General Public License for more details.
17#
18# You should have received a copy of the GNU Affero General Public License
19# along with this program. If not, see <http://www.gnu.org/licenses/>.
20#
21##############################################################################
22
23import bom_structure_industrial_design
024
=== added file 'mrp_industrial_design_bom/report/bom_structure_industrial_design.odt'
1Binary files mrp_industrial_design_bom/report/bom_structure_industrial_design.odt 1970-01-01 00:00:00 +0000 and mrp_industrial_design_bom/report/bom_structure_industrial_design.odt 2013-04-26 13:46:31 +0000 differ25Binary files mrp_industrial_design_bom/report/bom_structure_industrial_design.odt 1970-01-01 00:00:00 +0000 and mrp_industrial_design_bom/report/bom_structure_industrial_design.odt 2013-04-26 13:46:31 +0000 differ
=== added file 'mrp_industrial_design_bom/report/bom_structure_industrial_design.py'
--- mrp_industrial_design_bom/report/bom_structure_industrial_design.py 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/report/bom_structure_industrial_design.py 2013-04-26 13:46:31 +0000
@@ -0,0 +1,69 @@
1## -*- coding: utf-8 -*-
2##############################################################################
3#
4# OpenERP, Open Source Management Solution
5# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
6#
7# This program is free software: you can redistribute it and/or modify
8# it under the terms of the GNU Affero General Public License as
9# published by the Free Software Foundation, either version 3 of the
10# License, or (at your option) any later version.
11#
12# This program is distributed in the hope that it will be useful,
13# but WITHOUT ANY WARRANTY; without even the implied warranty of
14# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15# GNU Affero General Public License for more details.
16#
17# You should have received a copy of the GNU Affero General Public License
18# along with this program. If not, see <http://www.gnu.org/licenses/>.
19#
20##############################################################################
21
22import time
23from openerp.report import report_sxw
24from openerp.osv import osv
25from openerp import pooler
26
27class bom_structure(report_sxw.rml_parse):
28 def __init__(self, cr, uid, name, context):
29 super(bom_structure, self).__init__(cr, uid, name, context=context)
30 self.localcontext.update({
31 'time': time,
32 'get_children':self.get_children,
33 })
34
35 def get_children(self, object, level=0):
36 result = []
37
38 def _get_rec(object, level):
39 for l in object:
40 res = {}
41 res['name'] = l.name
42 res['pname'] = l.product_id.name
43 res['pcode'] = l.product_id.default_code
44 res['pqty'] = l.product_qty
45 res['uname'] = l.product_uom.name
46 res['code'] = l.code
47 res['level'] = level
48 res['bnumber'] = l.bubble_number
49 result.append(res)
50 if l.child_complete_ids:
51 if level<6:
52 level += 1
53 _get_rec(l.child_complete_ids,level)
54 if level>0 and level<6:
55 level -= 1
56 return result
57
58 children = _get_rec(object,level)
59
60 return children
61
62report_sxw.report_sxw('report.industrialdesign.bom.structure',
63 'mrp.bom',
64 'mrp_industrial_design_bom/report/bom_structure_industrial_design.rml',
65 parser=bom_structure,
66 header='internal')
67
68
69# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
070
=== added file 'mrp_industrial_design_bom/report/bom_structure_industrial_design.rml'
--- mrp_industrial_design_bom/report/bom_structure_industrial_design.rml 1970-01-01 00:00:00 +0000
+++ mrp_industrial_design_bom/report/bom_structure_industrial_design.rml 2013-04-26 13:46:31 +0000
@@ -0,0 +1,158 @@
1<?xml version="1.0"?>
2<document filename="test.pdf">
3 <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20">
4 <pageTemplate id="first">
5 <frame id="first" x1="31.0" y1="30.0" width="532" height="781"/>
6 </pageTemplate>
7 </template>
8 <stylesheet>
9 <blockTableStyle id="Standard_Outline">
10 <blockAlignment value="LEFT"/>
11 <blockValign value="TOP"/>
12 </blockTableStyle>
13 <blockTableStyle id="Table2">
14 <blockAlignment value="LEFT"/>
15 <blockValign value="TOP"/>
16 <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/>
17 <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/>
18 <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/>
19 <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/>
20 <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/>
21 </blockTableStyle>
22 <blockTableStyle id="Table1">
23 <blockAlignment value="LEFT"/>
24 <blockValign value="TOP"/>
25 <lineStyle kind="LINEBELOW" colorName="#999999" start="0,-1" stop="0,-1"/>
26 <lineStyle kind="LINEBELOW" colorName="#999999" start="1,-1" stop="1,-1"/>
27 <lineStyle kind="LINEBELOW" colorName="#999999" start="2,-1" stop="2,-1"/>
28 <lineStyle kind="LINEBELOW" colorName="#999999" start="3,-1" stop="3,-1"/>
29 <lineStyle kind="LINEBELOW" colorName="#999999" start="4,-1" stop="4,-1"/>
30 </blockTableStyle>
31 <blockTableStyle id="Table3">
32 <blockAlignment value="LEFT"/>
33 <blockValign value="TOP"/>
34 <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/>
35 <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/>
36 <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/>
37 <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/>
38 <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/>
39 </blockTableStyle>
40 <initialize>
41 <paraStyle name="all" alignment="justify"/>
42 </initialize>
43 <paraStyle name="P1" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
44 <paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
45 <paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
46 <paraStyle name="Standard" fontName="Helvetica"/>
47 <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
48 <paraStyle name="Text_20_body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
49 <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/>
50 <paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/>
51 <paraStyle name="Index" fontName="Helvetica"/>
52 <paraStyle name="Table_20_Contents" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT"/>
53 <paraStyle name="Table_20_Heading" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/>
54 <paraStyle name="terp_5f_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
55 <paraStyle name="terp_5f_default_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
56 <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"/>
57 <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"/>
58 <paraStyle name="terp_5f_default_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
59 <paraStyle name="terp_5f_tblheader_5f_General" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
60 <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"/>
61 <paraStyle name="terp_5f_default_5f_Centre_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
62 <paraStyle name="terp_5f_tblheader_5f_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/>
63 <paraStyle name="Footer" fontName="Helvetica"/>
64 <paraStyle name="Horizontal_20_Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/>
65 <paraStyle name="Heading_20_9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/>
66 <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"/>
67 <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"/>
68 <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"/>
69 <paraStyle name="terp_5f_default_5f_Right_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
70 <paraStyle name="terp_5f_header_5f_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/>
71 <paraStyle name="terp_5f_header_5f_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/>
72 <paraStyle name="terp_5f_default_5f_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
73 <paraStyle name="terp_5f_default_5f_Centre_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="CENTER" spaceBefore="0.0" spaceAfter="0.0"/>
74 <paraStyle name="terp_5f_default_5f_Right_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="RIGHT" spaceBefore="0.0" spaceAfter="0.0"/>
75 <paraStyle name="terp_5f_default_5f_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/>
76 <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"/>
77 <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"/>
78 <paraStyle name="Heading_20_2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/>
79 <paraStyle name="terp_5f_remove_5f_space" fontName="Helvetica" fontSize="2.0" leading="3" spaceBefore="0.0" spaceAfter="0.0"/>
80 <images/>
81 </stylesheet>
82 <story>
83 <para style="terp_5f_header_5f_Centre">BOM Structure</para>
84 <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table2">
85 <tr>
86 <td>
87 <para style="terp_5f_tblheader_5f_Details">BOM Name</para>
88 </td>
89 <td>
90 <para style="P3">
91 <font face="Helvetica">Bubble Number</font>
92 </para>
93 </td>
94 <td>
95 <para style="terp_5f_tblheader_5f_Details">Product Name</para>
96 </td>
97 <td>
98 <para style="terp_5f_tblheader_5f_Details_5f_Right">Quantity</para>
99 </td>
100 <td>
101 <para style="terp_5f_tblheader_5f_General_5f_Centre">BOM Ref</para>
102 </td>
103 </tr>
104 </blockTable>
105 <section>
106 <para style="terp_5f_default_5f_8">[[ repeatIn(objects, 'o') ]]</para>
107 <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table1">
108 <tr>
109 <td>
110 <para style="terp_5f_default_5f_Bold_5f_9">[[ o.name ]]</para>
111 </td>
112 <td>
113 <para style="P1">
114 <font face="Helvetica">[[ o.bubble_number ]]</font>
115 </para>
116 </td>
117 <td>
118 <para style="terp_5f_default_5f_Bold_5f_9">[ [[ (o.product_id.default_code) or removeParentNode('font') ]] ] [[ o.product_id.name ]]</para>
119 </td>
120 <td>
121 <para style="terp_5f_default_5f_Right_5f_9_5f_Bold">[[ o.product_qty ]] [[ o.product_uom.name ]]</para>
122 </td>
123 <td>
124 <para style="terp_5f_tblheader_5f_Details_5f_Centre">[[ o.code ]]</para>
125 </td>
126 </tr>
127 </blockTable>
128 <section>
129 <para style="terp_5f_default_5f_8">[[ repeatIn(get_children(o.bom_lines), 'l') ]]</para>
130 <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table3">
131 <tr>
132 <td>
133 <para style="terp_5f_default_5f_9"><font face="Helvetica" size="8.0">[[ '... '*(l['level']) ]]</font> - [[ l['name'] ]]</para>
134 </td>
135 <td>
136 <para style="P2">
137 <font face="Helvetica">[[ l['bnumber'] ]]</font>
138 </para>
139 </td>
140 <td>
141 <para style="terp_5f_default_5f_9">[ [[ (l['pcode']) or removeParentNode('font') ]] ] [[ l['pname'] ]]</para>
142 </td>
143 <td>
144 <para style="terp_5f_default_5f_Right_5f_9">[[ l['pqty'] ]] [[ l['uname'] ]]</para>
145 </td>
146 <td>
147 <para style="terp_5f_default_5f_Centre_5f_9">[[ l['code'] ]]</para>
148 </td>
149 </tr>
150 </blockTable>
151 <para style="terp_5f_default_5f_1">
152 <font color="white"> </font>
153 </para>
154 </section>
155 </section>
156 </story>
157</document>
158