Merge lp:~savoirfairelinux-openerp/openerp-manufacturing/add-industrial-design-bom into lp:openerp-manufacturing
- add-industrial-design-bom
- Merge into 7.0
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 |
Related bugs: |
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.
Commit message
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.
Alexandre Fayolle - camptocamp (alexandre-fayolle-c2c) wrote : Posted in a previous version of this proposal | # |
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.
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) : Posted in a previous version of this proposal | # |
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote : Posted in a previous version of this proposal | # |
Can you rename/replace bom_structure_
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) : | # |
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.
Maxime Chambreuil (http://www.savoirfairelinux.com) (max3903) wrote : | # |
I agree, my bad.
Preview Diff
1 | === added directory 'mrp_industrial_design_bom' | |||
2 | === added file 'mrp_industrial_design_bom/__init__.py' | |||
3 | --- mrp_industrial_design_bom/__init__.py 1970-01-01 00:00:00 +0000 | |||
4 | +++ mrp_industrial_design_bom/__init__.py 2013-04-26 13:46:31 +0000 | |||
5 | @@ -0,0 +1,24 @@ | |||
6 | 1 | # -*- encoding: utf-8 -*- | ||
7 | 2 | ############################################################################## | ||
8 | 3 | # | ||
9 | 4 | # OpenERP, Open Source Management Solution | ||
10 | 5 | # Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>). | ||
11 | 6 | # | ||
12 | 7 | # This program is free software: you can redistribute it and/or modify | ||
13 | 8 | # it under the terms of the GNU General Public License as | ||
14 | 9 | # published by the Free Software Foundation, either version 3 of the | ||
15 | 10 | # License, or (at your option) any later version. | ||
16 | 11 | # | ||
17 | 12 | # This program is distributed in the hope that it will be useful, | ||
18 | 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
19 | 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
20 | 15 | # GNU General Public License for more details. | ||
21 | 16 | # | ||
22 | 17 | # You should have received a copy of the GNU General Public License | ||
23 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
24 | 19 | # | ||
25 | 20 | ############################################################################## | ||
26 | 21 | |||
27 | 22 | import industrial_design | ||
28 | 23 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||
29 | 24 | |||
30 | 0 | 25 | ||
31 | === added file 'mrp_industrial_design_bom/__openerp__.py' | |||
32 | --- mrp_industrial_design_bom/__openerp__.py 1970-01-01 00:00:00 +0000 | |||
33 | +++ mrp_industrial_design_bom/__openerp__.py 2013-04-26 13:46:31 +0000 | |||
34 | @@ -0,0 +1,39 @@ | |||
35 | 1 | # -*- encoding: utf-8 -*- | ||
36 | 2 | |||
37 | 3 | ############################################################################## | ||
38 | 4 | # | ||
39 | 5 | # OpenERP, Open Source Management Solution | ||
40 | 6 | # Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>). | ||
41 | 7 | # | ||
42 | 8 | # This program is free software: you can redistribute it and/or modify | ||
43 | 9 | # it under the terms of the GNU Affero General Public License as | ||
44 | 10 | # published by the Free Software Foundation, either version 3 of the | ||
45 | 11 | # License, or (at your option) any later version. | ||
46 | 12 | # | ||
47 | 13 | # This program is distributed in the hope that it will be useful, | ||
48 | 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
49 | 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
50 | 16 | # GNU Affero General Public License for more details. | ||
51 | 17 | # | ||
52 | 18 | # You should have received a copy of the GNU Affero General Public License | ||
53 | 19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
54 | 20 | # | ||
55 | 21 | ############################################################################## | ||
56 | 22 | |||
57 | 23 | { | ||
58 | 24 | 'name' : 'Industrial design specification in BoM', | ||
59 | 25 | 'version' : '1.0', | ||
60 | 26 | "author" : "Savoir-faire Linux", | ||
61 | 27 | "website" : "http://www.savoirfairelinux.com", | ||
62 | 28 | 'license': 'AGPL-3', | ||
63 | 29 | 'category' : 'Specific Industry Applications', | ||
64 | 30 | 'depends' : ['mrp'], | ||
65 | 31 | "data" : ['mrp_industrial_design.xml'], | ||
66 | 32 | 'description': """ | ||
67 | 33 | Add the fields 'Bubble Number' and 'RefDes' (reference description) to a component in BoM view. | ||
68 | 34 | """, | ||
69 | 35 | 'auto_install': False, | ||
70 | 36 | 'installable': True | ||
71 | 37 | } | ||
72 | 38 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||
73 | 39 | |||
74 | 0 | 40 | ||
75 | === added directory 'mrp_industrial_design_bom/i18n' | |||
76 | === added file 'mrp_industrial_design_bom/i18n/fr.po' | |||
77 | --- mrp_industrial_design_bom/i18n/fr.po 1970-01-01 00:00:00 +0000 | |||
78 | +++ mrp_industrial_design_bom/i18n/fr.po 2013-04-26 13:46:31 +0000 | |||
79 | @@ -0,0 +1,32 @@ | |||
80 | 1 | # Translation of OpenERP Server. | ||
81 | 2 | # This file contains the translation of the following modules: | ||
82 | 3 | # * mrp_industrial_design_bom | ||
83 | 4 | # | ||
84 | 5 | msgid "" | ||
85 | 6 | msgstr "" | ||
86 | 7 | "Project-Id-Version: OpenERP Server 7.0\n" | ||
87 | 8 | "Report-Msgid-Bugs-To: \n" | ||
88 | 9 | "POT-Creation-Date: 2013-03-26 16:23+0000\n" | ||
89 | 10 | "PO-Revision-Date: 2013-03-26 14:00-0500\n" | ||
90 | 11 | "Last-Translator: Marc Cassuto <marc.cassuto@savoirfairelinux.com>\n" | ||
91 | 12 | "Language-Team: \n" | ||
92 | 13 | "MIME-Version: 1.0\n" | ||
93 | 14 | "Content-Type: text/plain; charset=UTF-8\n" | ||
94 | 15 | "Content-Transfer-Encoding: 8bit\n" | ||
95 | 16 | "Plural-Forms: \n" | ||
96 | 17 | |||
97 | 18 | #. module: mrp_industrial_design_bom | ||
98 | 19 | #: model:ir.model,name:mrp_industrial_design_bom.model_mrp_bom | ||
99 | 20 | msgid "Bill of Material" | ||
100 | 21 | msgstr "Nomenclature" | ||
101 | 22 | |||
102 | 23 | #. module: mrp_industrial_design_bom | ||
103 | 24 | #: field:mrp.bom,refdes:0 | ||
104 | 25 | msgid "Notes" | ||
105 | 26 | msgstr "notes" | ||
106 | 27 | |||
107 | 28 | #. module: mrp_industrial_design_bom | ||
108 | 29 | #: field:mrp.bom,bubble_number:0 | ||
109 | 30 | msgid "No" | ||
110 | 31 | msgstr "N°" | ||
111 | 32 | |||
112 | 0 | 33 | ||
113 | === added file 'mrp_industrial_design_bom/i18n/mrp_industrial_design_bom.pot' | |||
114 | --- mrp_industrial_design_bom/i18n/mrp_industrial_design_bom.pot 1970-01-01 00:00:00 +0000 | |||
115 | +++ mrp_industrial_design_bom/i18n/mrp_industrial_design_bom.pot 2013-04-26 13:46:31 +0000 | |||
116 | @@ -0,0 +1,32 @@ | |||
117 | 1 | # Translation of OpenERP Server. | ||
118 | 2 | # This file contains the translation of the following modules: | ||
119 | 3 | # * mrp_industrial_design_bom | ||
120 | 4 | # | ||
121 | 5 | msgid "" | ||
122 | 6 | msgstr "" | ||
123 | 7 | "Project-Id-Version: OpenERP Server 7.0\n" | ||
124 | 8 | "Report-Msgid-Bugs-To: \n" | ||
125 | 9 | "POT-Creation-Date: 2013-03-26 16:23+0000\n" | ||
126 | 10 | "PO-Revision-Date: 2013-03-26 16:23+0000\n" | ||
127 | 11 | "Last-Translator: <>\n" | ||
128 | 12 | "Language-Team: \n" | ||
129 | 13 | "MIME-Version: 1.0\n" | ||
130 | 14 | "Content-Type: text/plain; charset=UTF-8\n" | ||
131 | 15 | "Content-Transfer-Encoding: \n" | ||
132 | 16 | "Plural-Forms: \n" | ||
133 | 17 | |||
134 | 18 | #. module: mrp_industrial_design_bom | ||
135 | 19 | #: model:ir.model,name:mrp_industrial_design_bom.model_mrp_bom | ||
136 | 20 | msgid "Bill of Material" | ||
137 | 21 | msgstr "" | ||
138 | 22 | |||
139 | 23 | #. module: mrp_industrial_design_bom | ||
140 | 24 | #: field:mrp.bom,refdes:0 | ||
141 | 25 | msgid "Notes" | ||
142 | 26 | msgstr "" | ||
143 | 27 | |||
144 | 28 | #. module: mrp_industrial_design_bom | ||
145 | 29 | #: field:mrp.bom,bubble_number:0 | ||
146 | 30 | msgid "No" | ||
147 | 31 | msgstr "" | ||
148 | 32 | |||
149 | 0 | 33 | ||
150 | === added file 'mrp_industrial_design_bom/industrial_design.py' | |||
151 | --- mrp_industrial_design_bom/industrial_design.py 1970-01-01 00:00:00 +0000 | |||
152 | +++ mrp_industrial_design_bom/industrial_design.py 2013-04-26 13:46:31 +0000 | |||
153 | @@ -0,0 +1,32 @@ | |||
154 | 1 | # -*- encoding: utf-8 -*- | ||
155 | 2 | ############################################################################## | ||
156 | 3 | # | ||
157 | 4 | # OpenERP, Open Source Management Solution | ||
158 | 5 | # Copyright (C) 2010 Savoir-faire Linux (<http://www.savoirfairelinux.com>). | ||
159 | 6 | # | ||
160 | 7 | # This program is free software: you can redistribute it and/or modify | ||
161 | 8 | # it under the terms of the GNU General Public License as | ||
162 | 9 | # published by the Free Software Foundation, either version 3 of the | ||
163 | 10 | # License, or (at your option) any later version. | ||
164 | 11 | # | ||
165 | 12 | # This program is distributed in the hope that it will be useful, | ||
166 | 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
167 | 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
168 | 15 | # GNU General Public License for more details. | ||
169 | 16 | # | ||
170 | 17 | # You should have received a copy of the GNU General Public License | ||
171 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
172 | 19 | # | ||
173 | 20 | ############################################################################## | ||
174 | 21 | |||
175 | 22 | from openerp.osv import fields, orm | ||
176 | 23 | |||
177 | 24 | class mrp_bom(orm.Model): | ||
178 | 25 | _inherit = 'mrp.bom' | ||
179 | 26 | _columns = { | ||
180 | 27 | 'bubble_number': fields.integer('No'), | ||
181 | 28 | 'refdes': fields.text('Notes'), | ||
182 | 29 | } | ||
183 | 30 | |||
184 | 31 | _order = "bubble_number" | ||
185 | 32 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||
186 | 0 | 33 | ||
187 | === added file 'mrp_industrial_design_bom/mrp_industrial_design.xml' | |||
188 | --- mrp_industrial_design_bom/mrp_industrial_design.xml 1970-01-01 00:00:00 +0000 | |||
189 | +++ mrp_industrial_design_bom/mrp_industrial_design.xml 2013-04-26 13:46:31 +0000 | |||
190 | @@ -0,0 +1,29 @@ | |||
191 | 1 | <?xml version="1.0" ?> | ||
192 | 2 | <openerp> | ||
193 | 3 | <data> | ||
194 | 4 | <delete model="ir.actions.report.xml" search="[('name', '=', 'bom.structure')]" /> | ||
195 | 5 | <report auto="True" | ||
196 | 6 | header="False" | ||
197 | 7 | id="report_industrial_design_bom_structure" | ||
198 | 8 | model="mrp.bom" | ||
199 | 9 | name="industrialdesign.bom.structure" | ||
200 | 10 | rml="mrp_industrial_design_bom/report/bom_structure_industrial_design.rml" | ||
201 | 11 | string="BOM Structure"/> | ||
202 | 12 | |||
203 | 13 | <record model="ir.ui.view" id="mrp_bom_form_view_inherit"> | ||
204 | 14 | <field name="name">mrp.bom.form.inherit</field> | ||
205 | 15 | <field name="model">mrp.bom</field> | ||
206 | 16 | <field name="inherit_id" ref="mrp.mrp_bom_form_view" /> | ||
207 | 17 | <field name="arch" type="xml"> | ||
208 | 18 | <xpath expr="/form/notebook/page/field/tree/field[@name='product_id']" position="before"> | ||
209 | 19 | <field name="bubble_number" /> | ||
210 | 20 | </xpath> | ||
211 | 21 | <xpath expr="/form/notebook/page/field/tree/field[@name='date_stop']" position="after"> | ||
212 | 22 | <field name="refdes" /> | ||
213 | 23 | </xpath> | ||
214 | 24 | </field> | ||
215 | 25 | </record> | ||
216 | 26 | |||
217 | 27 | </data> | ||
218 | 28 | </openerp> | ||
219 | 29 | |||
220 | 0 | 30 | ||
221 | === added directory 'mrp_industrial_design_bom/report' | |||
222 | === added file 'mrp_industrial_design_bom/report/__init__.py' | |||
223 | --- mrp_industrial_design_bom/report/__init__.py 1970-01-01 00:00:00 +0000 | |||
224 | +++ mrp_industrial_design_bom/report/__init__.py 2013-04-26 13:46:31 +0000 | |||
225 | @@ -0,0 +1,23 @@ | |||
226 | 1 | # -*- coding: utf-8 -*- | ||
227 | 2 | |||
228 | 3 | ############################################################################## | ||
229 | 4 | # | ||
230 | 5 | # OpenERP, Open Source Management Solution | ||
231 | 6 | # Copyright (C) 2013 Savoir-faire Linux (<http://www.savoirfairelinux.com>). | ||
232 | 7 | # | ||
233 | 8 | # This program is free software: you can redistribute it and/or modify | ||
234 | 9 | # it under the terms of the GNU Affero General Public License as | ||
235 | 10 | # published by the Free Software Foundation, either version 3 of the | ||
236 | 11 | # License, or (at your option) any later version. | ||
237 | 12 | # | ||
238 | 13 | # This program is distributed in the hope that it will be useful, | ||
239 | 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
240 | 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
241 | 16 | # GNU Affero General Public License for more details. | ||
242 | 17 | # | ||
243 | 18 | # You should have received a copy of the GNU Affero General Public License | ||
244 | 19 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
245 | 20 | # | ||
246 | 21 | ############################################################################## | ||
247 | 22 | |||
248 | 23 | import bom_structure_industrial_design | ||
249 | 0 | 24 | ||
250 | === added file 'mrp_industrial_design_bom/report/bom_structure_industrial_design.odt' | |||
251 | 1 | Binary 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 | 25 | Binary 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 |
252 | === added file 'mrp_industrial_design_bom/report/bom_structure_industrial_design.py' | |||
253 | --- mrp_industrial_design_bom/report/bom_structure_industrial_design.py 1970-01-01 00:00:00 +0000 | |||
254 | +++ mrp_industrial_design_bom/report/bom_structure_industrial_design.py 2013-04-26 13:46:31 +0000 | |||
255 | @@ -0,0 +1,69 @@ | |||
256 | 1 | ## -*- coding: utf-8 -*- | ||
257 | 2 | ############################################################################## | ||
258 | 3 | # | ||
259 | 4 | # OpenERP, Open Source Management Solution | ||
260 | 5 | # Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>). | ||
261 | 6 | # | ||
262 | 7 | # This program is free software: you can redistribute it and/or modify | ||
263 | 8 | # it under the terms of the GNU Affero General Public License as | ||
264 | 9 | # published by the Free Software Foundation, either version 3 of the | ||
265 | 10 | # License, or (at your option) any later version. | ||
266 | 11 | # | ||
267 | 12 | # This program is distributed in the hope that it will be useful, | ||
268 | 13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
269 | 14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
270 | 15 | # GNU Affero General Public License for more details. | ||
271 | 16 | # | ||
272 | 17 | # You should have received a copy of the GNU Affero General Public License | ||
273 | 18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||
274 | 19 | # | ||
275 | 20 | ############################################################################## | ||
276 | 21 | |||
277 | 22 | import time | ||
278 | 23 | from openerp.report import report_sxw | ||
279 | 24 | from openerp.osv import osv | ||
280 | 25 | from openerp import pooler | ||
281 | 26 | |||
282 | 27 | class bom_structure(report_sxw.rml_parse): | ||
283 | 28 | def __init__(self, cr, uid, name, context): | ||
284 | 29 | super(bom_structure, self).__init__(cr, uid, name, context=context) | ||
285 | 30 | self.localcontext.update({ | ||
286 | 31 | 'time': time, | ||
287 | 32 | 'get_children':self.get_children, | ||
288 | 33 | }) | ||
289 | 34 | |||
290 | 35 | def get_children(self, object, level=0): | ||
291 | 36 | result = [] | ||
292 | 37 | |||
293 | 38 | def _get_rec(object, level): | ||
294 | 39 | for l in object: | ||
295 | 40 | res = {} | ||
296 | 41 | res['name'] = l.name | ||
297 | 42 | res['pname'] = l.product_id.name | ||
298 | 43 | res['pcode'] = l.product_id.default_code | ||
299 | 44 | res['pqty'] = l.product_qty | ||
300 | 45 | res['uname'] = l.product_uom.name | ||
301 | 46 | res['code'] = l.code | ||
302 | 47 | res['level'] = level | ||
303 | 48 | res['bnumber'] = l.bubble_number | ||
304 | 49 | result.append(res) | ||
305 | 50 | if l.child_complete_ids: | ||
306 | 51 | if level<6: | ||
307 | 52 | level += 1 | ||
308 | 53 | _get_rec(l.child_complete_ids,level) | ||
309 | 54 | if level>0 and level<6: | ||
310 | 55 | level -= 1 | ||
311 | 56 | return result | ||
312 | 57 | |||
313 | 58 | children = _get_rec(object,level) | ||
314 | 59 | |||
315 | 60 | return children | ||
316 | 61 | |||
317 | 62 | report_sxw.report_sxw('report.industrialdesign.bom.structure', | ||
318 | 63 | 'mrp.bom', | ||
319 | 64 | 'mrp_industrial_design_bom/report/bom_structure_industrial_design.rml', | ||
320 | 65 | parser=bom_structure, | ||
321 | 66 | header='internal') | ||
322 | 67 | |||
323 | 68 | |||
324 | 69 | # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: | ||
325 | 0 | 70 | ||
326 | === added file 'mrp_industrial_design_bom/report/bom_structure_industrial_design.rml' | |||
327 | --- mrp_industrial_design_bom/report/bom_structure_industrial_design.rml 1970-01-01 00:00:00 +0000 | |||
328 | +++ mrp_industrial_design_bom/report/bom_structure_industrial_design.rml 2013-04-26 13:46:31 +0000 | |||
329 | @@ -0,0 +1,158 @@ | |||
330 | 1 | <?xml version="1.0"?> | ||
331 | 2 | <document filename="test.pdf"> | ||
332 | 3 | <template pageSize="(595.0,842.0)" title="Test" author="Martin Simon" allowSplitting="20"> | ||
333 | 4 | <pageTemplate id="first"> | ||
334 | 5 | <frame id="first" x1="31.0" y1="30.0" width="532" height="781"/> | ||
335 | 6 | </pageTemplate> | ||
336 | 7 | </template> | ||
337 | 8 | <stylesheet> | ||
338 | 9 | <blockTableStyle id="Standard_Outline"> | ||
339 | 10 | <blockAlignment value="LEFT"/> | ||
340 | 11 | <blockValign value="TOP"/> | ||
341 | 12 | </blockTableStyle> | ||
342 | 13 | <blockTableStyle id="Table2"> | ||
343 | 14 | <blockAlignment value="LEFT"/> | ||
344 | 15 | <blockValign value="TOP"/> | ||
345 | 16 | <lineStyle kind="LINEBELOW" colorName="#000000" start="0,-1" stop="0,-1"/> | ||
346 | 17 | <lineStyle kind="LINEBELOW" colorName="#000000" start="1,-1" stop="1,-1"/> | ||
347 | 18 | <lineStyle kind="LINEBELOW" colorName="#000000" start="2,-1" stop="2,-1"/> | ||
348 | 19 | <lineStyle kind="LINEBELOW" colorName="#000000" start="3,-1" stop="3,-1"/> | ||
349 | 20 | <lineStyle kind="LINEBELOW" colorName="#000000" start="4,-1" stop="4,-1"/> | ||
350 | 21 | </blockTableStyle> | ||
351 | 22 | <blockTableStyle id="Table1"> | ||
352 | 23 | <blockAlignment value="LEFT"/> | ||
353 | 24 | <blockValign value="TOP"/> | ||
354 | 25 | <lineStyle kind="LINEBELOW" colorName="#999999" start="0,-1" stop="0,-1"/> | ||
355 | 26 | <lineStyle kind="LINEBELOW" colorName="#999999" start="1,-1" stop="1,-1"/> | ||
356 | 27 | <lineStyle kind="LINEBELOW" colorName="#999999" start="2,-1" stop="2,-1"/> | ||
357 | 28 | <lineStyle kind="LINEBELOW" colorName="#999999" start="3,-1" stop="3,-1"/> | ||
358 | 29 | <lineStyle kind="LINEBELOW" colorName="#999999" start="4,-1" stop="4,-1"/> | ||
359 | 30 | </blockTableStyle> | ||
360 | 31 | <blockTableStyle id="Table3"> | ||
361 | 32 | <blockAlignment value="LEFT"/> | ||
362 | 33 | <blockValign value="TOP"/> | ||
363 | 34 | <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="0,-1" stop="0,-1"/> | ||
364 | 35 | <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="1,-1" stop="1,-1"/> | ||
365 | 36 | <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="2,-1" stop="2,-1"/> | ||
366 | 37 | <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="3,-1" stop="3,-1"/> | ||
367 | 38 | <lineStyle kind="LINEBELOW" colorName="#e6e6e6" start="4,-1" stop="4,-1"/> | ||
368 | 39 | </blockTableStyle> | ||
369 | 40 | <initialize> | ||
370 | 41 | <paraStyle name="all" alignment="justify"/> | ||
371 | 42 | </initialize> | ||
372 | 43 | <paraStyle name="P1" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> | ||
373 | 44 | <paraStyle name="P2" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> | ||
374 | 45 | <paraStyle name="P3" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> | ||
375 | 46 | <paraStyle name="Standard" fontName="Helvetica"/> | ||
376 | 47 | <paraStyle name="Heading" fontName="Helvetica" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> | ||
377 | 48 | <paraStyle name="Text_20_body" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/> | ||
378 | 49 | <paraStyle name="List" fontName="Helvetica" spaceBefore="0.0" spaceAfter="6.0"/> | ||
379 | 50 | <paraStyle name="Caption" fontName="Helvetica" fontSize="12.0" leading="15" spaceBefore="6.0" spaceAfter="6.0"/> | ||
380 | 51 | <paraStyle name="Index" fontName="Helvetica"/> | ||
381 | 52 | <paraStyle name="Table_20_Contents" fontName="Helvetica" fontSize="6.0" leading="8" alignment="LEFT"/> | ||
382 | 53 | <paraStyle name="Table_20_Heading" fontName="Helvetica" fontSize="6.0" leading="8" alignment="CENTER"/> | ||
383 | 54 | <paraStyle name="terp_5f_header" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> | ||
384 | 55 | <paraStyle name="terp_5f_default_5f_8" fontName="Helvetica" fontSize="8.0" leading="10" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> | ||
385 | 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"/> | ||
386 | 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"/> | ||
387 | 58 | <paraStyle name="terp_5f_default_5f_9" fontName="Helvetica" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> | ||
388 | 59 | <paraStyle name="terp_5f_tblheader_5f_General" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> | ||
389 | 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"/> | ||
390 | 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"/> | ||
391 | 62 | <paraStyle name="terp_5f_tblheader_5f_Details" fontName="Helvetica-Bold" fontSize="9.0" leading="11" alignment="LEFT" spaceBefore="6.0" spaceAfter="6.0"/> | ||
392 | 63 | <paraStyle name="Footer" fontName="Helvetica"/> | ||
393 | 64 | <paraStyle name="Horizontal_20_Line" fontName="Helvetica" fontSize="6.0" leading="8" spaceBefore="0.0" spaceAfter="14.0"/> | ||
394 | 65 | <paraStyle name="Heading_20_9" fontName="Helvetica-Bold" fontSize="75%" leading="NaN" spaceBefore="12.0" spaceAfter="6.0"/> | ||
395 | 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"/> | ||
396 | 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"/> | ||
397 | 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"/> | ||
398 | 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"/> | ||
399 | 70 | <paraStyle name="terp_5f_header_5f_Right" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="LEFT" spaceBefore="12.0" spaceAfter="6.0"/> | ||
400 | 71 | <paraStyle name="terp_5f_header_5f_Centre" fontName="Helvetica-Bold" fontSize="15.0" leading="19" alignment="CENTER" spaceBefore="12.0" spaceAfter="6.0"/> | ||
401 | 72 | <paraStyle name="terp_5f_default_5f_address" fontName="Helvetica" fontSize="10.0" leading="13" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> | ||
402 | 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"/> | ||
403 | 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"/> | ||
404 | 75 | <paraStyle name="terp_5f_default_5f_1" fontName="Helvetica" fontSize="2.0" leading="3" alignment="LEFT" spaceBefore="0.0" spaceAfter="0.0"/> | ||
405 | 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"/> | ||
406 | 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"/> | ||
407 | 78 | <paraStyle name="Heading_20_2" fontName="Helvetica-BoldOblique" fontSize="14.0" leading="17" spaceBefore="12.0" spaceAfter="6.0"/> | ||
408 | 79 | <paraStyle name="terp_5f_remove_5f_space" fontName="Helvetica" fontSize="2.0" leading="3" spaceBefore="0.0" spaceAfter="0.0"/> | ||
409 | 80 | <images/> | ||
410 | 81 | </stylesheet> | ||
411 | 82 | <story> | ||
412 | 83 | <para style="terp_5f_header_5f_Centre">BOM Structure</para> | ||
413 | 84 | <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table2"> | ||
414 | 85 | <tr> | ||
415 | 86 | <td> | ||
416 | 87 | <para style="terp_5f_tblheader_5f_Details">BOM Name</para> | ||
417 | 88 | </td> | ||
418 | 89 | <td> | ||
419 | 90 | <para style="P3"> | ||
420 | 91 | <font face="Helvetica">Bubble Number</font> | ||
421 | 92 | </para> | ||
422 | 93 | </td> | ||
423 | 94 | <td> | ||
424 | 95 | <para style="terp_5f_tblheader_5f_Details">Product Name</para> | ||
425 | 96 | </td> | ||
426 | 97 | <td> | ||
427 | 98 | <para style="terp_5f_tblheader_5f_Details_5f_Right">Quantity</para> | ||
428 | 99 | </td> | ||
429 | 100 | <td> | ||
430 | 101 | <para style="terp_5f_tblheader_5f_General_5f_Centre">BOM Ref</para> | ||
431 | 102 | </td> | ||
432 | 103 | </tr> | ||
433 | 104 | </blockTable> | ||
434 | 105 | <section> | ||
435 | 106 | <para style="terp_5f_default_5f_8">[[ repeatIn(objects, 'o') ]]</para> | ||
436 | 107 | <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table1"> | ||
437 | 108 | <tr> | ||
438 | 109 | <td> | ||
439 | 110 | <para style="terp_5f_default_5f_Bold_5f_9">[[ o.name ]]</para> | ||
440 | 111 | </td> | ||
441 | 112 | <td> | ||
442 | 113 | <para style="P1"> | ||
443 | 114 | <font face="Helvetica">[[ o.bubble_number ]]</font> | ||
444 | 115 | </para> | ||
445 | 116 | </td> | ||
446 | 117 | <td> | ||
447 | 118 | <para style="terp_5f_default_5f_Bold_5f_9">[ [[ (o.product_id.default_code) or removeParentNode('font') ]] ] [[ o.product_id.name ]]</para> | ||
448 | 119 | </td> | ||
449 | 120 | <td> | ||
450 | 121 | <para style="terp_5f_default_5f_Right_5f_9_5f_Bold">[[ o.product_qty ]] [[ o.product_uom.name ]]</para> | ||
451 | 122 | </td> | ||
452 | 123 | <td> | ||
453 | 124 | <para style="terp_5f_tblheader_5f_Details_5f_Centre">[[ o.code ]]</para> | ||
454 | 125 | </td> | ||
455 | 126 | </tr> | ||
456 | 127 | </blockTable> | ||
457 | 128 | <section> | ||
458 | 129 | <para style="terp_5f_default_5f_8">[[ repeatIn(get_children(o.bom_lines), 'l') ]]</para> | ||
459 | 130 | <blockTable colWidths="141.0,74.0,213.0,52.0,52.0" style="Table3"> | ||
460 | 131 | <tr> | ||
461 | 132 | <td> | ||
462 | 133 | <para style="terp_5f_default_5f_9"><font face="Helvetica" size="8.0">[[ '... '*(l['level']) ]]</font> - [[ l['name'] ]]</para> | ||
463 | 134 | </td> | ||
464 | 135 | <td> | ||
465 | 136 | <para style="P2"> | ||
466 | 137 | <font face="Helvetica">[[ l['bnumber'] ]]</font> | ||
467 | 138 | </para> | ||
468 | 139 | </td> | ||
469 | 140 | <td> | ||
470 | 141 | <para style="terp_5f_default_5f_9">[ [[ (l['pcode']) or removeParentNode('font') ]] ] [[ l['pname'] ]]</para> | ||
471 | 142 | </td> | ||
472 | 143 | <td> | ||
473 | 144 | <para style="terp_5f_default_5f_Right_5f_9">[[ l['pqty'] ]] [[ l['uname'] ]]</para> | ||
474 | 145 | </td> | ||
475 | 146 | <td> | ||
476 | 147 | <para style="terp_5f_default_5f_Centre_5f_9">[[ l['code'] ]]</para> | ||
477 | 148 | </td> | ||
478 | 149 | </tr> | ||
479 | 150 | </blockTable> | ||
480 | 151 | <para style="terp_5f_default_5f_1"> | ||
481 | 152 | <font color="white"> </font> | ||
482 | 153 | </para> | ||
483 | 154 | </section> | ||
484 | 155 | </section> | ||
485 | 156 | </story> | ||
486 | 157 | </document> | ||
487 | 158 |
The diff is empty.