Merge lp:~angelmoya/product-extra-addons/nan_product_pack into lp:product-extra-addons/oerp6.1-stable

Proposed by Angel Moya - Domatix
Status: Needs review
Proposed branch: lp:~angelmoya/product-extra-addons/nan_product_pack
Merge into: lp:product-extra-addons/oerp6.1-stable
Diff against target: 1331 lines (+1274/-0)
11 files modified
nan_product_pack/__init__.py (+21/-0)
nan_product_pack/__openerp__.py (+40/-0)
nan_product_pack/i18n/ca.po (+163/-0)
nan_product_pack/i18n/de.po (+145/-0)
nan_product_pack/i18n/es.po (+164/-0)
nan_product_pack/i18n/it.po (+163/-0)
nan_product_pack/i18n/nan_product_pack.pot (+137/-0)
nan_product_pack/i18n/pt.po (+149/-0)
nan_product_pack/pack.py (+239/-0)
nan_product_pack/pack_view.xml (+50/-0)
nan_product_pack/security/ir.model.access.csv (+3/-0)
To merge this branch: bzr merge lp:~angelmoya/product-extra-addons/nan_product_pack
Reviewer Review Type Date Requested Status
Yannick Vaucher @ Camptocamp license Approve
Review via email: mp+148132@code.launchpad.net

Description of the change

Add nan_product_pack from extra-addons

To post a comment you must log in.
Revision history for this message
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote :

The license needs to be AGPL not GPL

http://v6.openerp.com/services/faq-onsite
See question: "If I make an OpenERP Module, what License do I have to use?"

http://www.gnu.org/licenses/agpl-3.0.html

review: Needs Fixing (license)
78. By Angel Moya - Domatix

[FIX] update license

Revision history for this message
Angel Moya - Domatix (angelmoya) wrote :

I talked with Nan Tic about license, and no problem to change it

Revision history for this message
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote :

Thanks

review: Approve (license)

Unmerged revisions

78. By Angel Moya - Domatix

[FIX] update license

77. By Angel Moya - Domatix

[ADD] nan_product_pack module

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== added directory 'nan_product_pack'
2=== added file 'nan_product_pack/__init__.py'
3--- nan_product_pack/__init__.py 1970-01-01 00:00:00 +0000
4+++ nan_product_pack/__init__.py 2013-02-13 12:26:21 +0000
5@@ -0,0 +1,21 @@
6+# -*- encoding: latin-1 -*-
7+##############################################################################
8+#
9+# Copyright (c) 2009 Àngel Àlvarez - NaN (http://www.nan-tic.com) All Rights Reserved.
10+#
11+# This program is free software: you can redistribute it and/or modify #
12+# it under the terms of the GNU Affero General Public License as #
13+# published by the Free Software Foundation, either version 3 of the #
14+# License, or (at your option) any later version. #
15+# #
16+# This program is distributed in the hope that it will be useful, #
17+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
18+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
19+# GNU Affero General Public License for more details. #
20+# #
21+# You should have received a copy of the GNU Affero General Public License #
22+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
23+#
24+##############################################################################
25+
26+import pack
27
28=== added file 'nan_product_pack/__openerp__.py'
29--- nan_product_pack/__openerp__.py 1970-01-01 00:00:00 +0000
30+++ nan_product_pack/__openerp__.py 2013-02-13 12:26:21 +0000
31@@ -0,0 +1,40 @@
32+# encoding: utf-8
33+
34+# This program is free software: you can redistribute it and/or modify #
35+# it under the terms of the GNU Affero General Public License as #
36+# published by the Free Software Foundation, either version 3 of the #
37+# License, or (at your option) any later version. #
38+# #
39+# This program is distributed in the hope that it will be useful, #
40+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
41+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
42+# GNU Affero General Public License for more details. #
43+# #
44+# You should have received a copy of the GNU Affero General Public License #
45+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
46+
47+{
48+ "name" : "Product Pack",
49+ "version" : "0.1",
50+ "description" : """
51+Allows configuring products as a collection of other products. If such a product is added in a sale order, all the products of the pack will be added automatically (when storing the order) as children of the pack product.
52+
53+The module has been made compatible with nan_external_prices and containts code to specifically handle when the module is available but they're still independent and there are no dependencies between them.
54+
55+Developed for Trod y Avia, S.L.
56+ """,
57+ "author" : "NaN·tic",
58+ "website" : "http://www.NaN-tic.com",
59+ "depends" : [
60+ 'sale'
61+ ],
62+ "category" : "Custom Modules",
63+ "init_xml" : [],
64+ "demo_xml" : [],
65+ "update_xml" : [
66+ 'security/ir.model.access.csv',
67+ 'pack_view.xml'
68+ ],
69+ "active": False,
70+ "installable": True
71+}
72
73=== added directory 'nan_product_pack/i18n'
74=== added file 'nan_product_pack/i18n/ca.po'
75--- nan_product_pack/i18n/ca.po 1970-01-01 00:00:00 +0000
76+++ nan_product_pack/i18n/ca.po 2013-02-13 12:26:21 +0000
77@@ -0,0 +1,163 @@
78+# Translation of OpenERP Server.
79+# This file contains the translation of the following modules:
80+# * nan_product_pack
81+#
82+msgid ""
83+msgstr ""
84+"Project-Id-Version: OpenERP Server 5.0.6\n"
85+"Report-Msgid-Bugs-To: support@openerp.com\n"
86+"POT-Creation-Date: 2011-01-15 11:45+0000\n"
87+"PO-Revision-Date: 2011-02-15 14:19+0000\n"
88+"Last-Translator: Jordi Esteve (Zikzakmedia) <jesteve@zikzakmedia.com>\n"
89+"Language-Team: \n"
90+"MIME-Version: 1.0\n"
91+"Content-Type: text/plain; charset=UTF-8\n"
92+"Content-Transfer-Encoding: 8bit\n"
93+"X-Launchpad-Export-Date: 2012-08-28 07:16+0000\n"
94+"X-Generator: Launchpad (build 15864)\n"
95+
96+#. module: nan_product_pack
97+#: constraint:ir.model:0
98+msgid ""
99+"The Object name must start with x_ and not contain any special character !"
100+msgstr ""
101+"El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter "
102+"especial!"
103+
104+#. module: nan_product_pack
105+#: help:product.product,stock_depends:0
106+msgid "Mark if pack stock is calcualted from component stock"
107+msgstr ""
108+"Marqueu aquest camp si l'estoc del paquet es calcula a partir de l'estoc "
109+"dels components."
110+
111+#. module: nan_product_pack
112+#: field:sale.order.line,pack_child_line_ids:0
113+msgid "Lines in pack"
114+msgstr "Línies en el paquet"
115+
116+#. module: nan_product_pack
117+#: help:sale.order.line,pack_depth:0
118+msgid "Depth of the product if it is part of a pack."
119+msgstr "Profunditat del producte si forma part d'un paquet."
120+
121+#. module: nan_product_pack
122+#: field:product.pack.line,product_id:0
123+msgid "Product"
124+msgstr "Producte"
125+
126+#. module: nan_product_pack
127+#: view:product.pack.line:0
128+msgid "Pack Product Lines"
129+msgstr "Línies del paquet de productes"
130+
131+#. module: nan_product_pack
132+#: view:product.product:0
133+msgid ""
134+"If you add products in the 'Pack Products' field, all those products will be "
135+"added automatically when a new quotation or order is created."
136+msgstr ""
137+"Si afegiu productes en el camp \"Paquet de productes\", tots els productes "
138+"s'afegiran automàticament quan creeu un nou pressupost o comanda."
139+
140+#. module: nan_product_pack
141+#: model:ir.module.module,description:nan_product_pack.module_meta_information
142+msgid ""
143+"\n"
144+"Allows configuring products as a collection of other products. If such a "
145+"product is added in a sale order, all the products of the pack will be added "
146+"automatically (when storing the order) as children of the pack product.\n"
147+"\n"
148+"The module has been made compatible with nan_external_prices and containts "
149+"code to specifically handle when the module is available but they're still "
150+"independent and there are no dependencies between them.\n"
151+" "
152+msgstr ""
153+"\n"
154+"Permet configurar els productes com col·leccions d'altres productes. Si "
155+"s'afegeix un producte d'aquest tipus en una comanda de venda, tots els "
156+"productes del paquet s'afegiran automàticament (quan es guardi la comanda) "
157+"com a fills del producte principal.\n"
158+"\n"
159+"Aquest mòdul és compatible amb nan_external_prices i conté codi per "
160+"funcionar quan està instal·lat encara que ambdós són encara independents i "
161+"no hi ha dependències entre ells.\n"
162+" "
163+
164+#. module: nan_product_pack
165+#: view:product.product:0
166+#: field:sale.order.line,pack_parent_line_id:0
167+msgid "Pack"
168+msgstr "Paquet"
169+
170+#. module: nan_product_pack
171+#: model:ir.model,name:nan_product_pack.model_product_pack_line
172+msgid "product.pack.line"
173+msgstr "producte.paquet.línea"
174+
175+#. module: nan_product_pack
176+#: constraint:ir.ui.view:0
177+msgid "Invalid XML for View Architecture!"
178+msgstr "XML no vàlid per a la definició de la vista!"
179+
180+#. module: nan_product_pack
181+#: model:ir.module.module,shortdesc:nan_product_pack.module_meta_information
182+msgid "Product Pack"
183+msgstr "Paquet de productes"
184+
185+#. module: nan_product_pack
186+#: field:product.product,stock_depends:0
187+msgid "Stock depends of components"
188+msgstr "Estoc depen dels components"
189+
190+#. module: nan_product_pack
191+#: help:sale.order.line,pack_parent_line_id:0
192+msgid "The pack that contains this product."
193+msgstr "El paquet que conté aquest producte."
194+
195+#. module: nan_product_pack
196+#: field:sale.order.line,pack_depth:0
197+msgid "Depth"
198+msgstr "Profunditat"
199+
200+#. module: nan_product_pack
201+#: help:product.product,pack_fixed_price:0
202+msgid ""
203+"Mark this field if the public price of the pack should be fixed. Do not mark "
204+"it if the price should be calculated from the sum of the prices of the "
205+"products in the pack."
206+msgstr ""
207+"Marqueu aquest camp si el preu de venda del paquet ha de ser fix. No ho "
208+"marqueu si el preu s'ha de calcular a partir de la suma dels preus dels "
209+"productes del paquet."
210+
211+#. module: nan_product_pack
212+#: field:product.pack.line,quantity:0
213+msgid "Quantity"
214+msgstr "Quantitat"
215+
216+#. module: nan_product_pack
217+#: view:product.product:0
218+#: field:product.product,pack_line_ids:0
219+msgid "Pack Products"
220+msgstr "Productes del paquet"
221+
222+#. module: nan_product_pack
223+#: field:product.pack.line,parent_product_id:0
224+msgid "Parent Product"
225+msgstr "Producte pare"
226+
227+#. module: nan_product_pack
228+#: field:product.product,pack_fixed_price:0
229+msgid "Pack has fixed price"
230+msgstr "El paquet té un preu fix"
231+
232+#. module: nan_product_pack
233+#: view:product.pack.line:0
234+msgid "Pack Product Line"
235+msgstr "Línia de paquet de productes"
236+
237+#. module: nan_product_pack
238+#: help:product.product,pack_line_ids:0
239+msgid "List of products that are part of this pack."
240+msgstr "Llista de productes que formen part del paquet."
241
242=== added file 'nan_product_pack/i18n/de.po'
243--- nan_product_pack/i18n/de.po 1970-01-01 00:00:00 +0000
244+++ nan_product_pack/i18n/de.po 2013-02-13 12:26:21 +0000
245@@ -0,0 +1,145 @@
246+# German translation for openobject-addons
247+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
248+# This file is distributed under the same license as the openobject-addons package.
249+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
250+#
251+msgid ""
252+msgstr ""
253+"Project-Id-Version: openobject-addons\n"
254+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
255+"POT-Creation-Date: 2011-01-15 11:45+0000\n"
256+"PO-Revision-Date: 2011-02-15 14:19+0000\n"
257+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
258+"Language-Team: German <de@li.org>\n"
259+"MIME-Version: 1.0\n"
260+"Content-Type: text/plain; charset=UTF-8\n"
261+"Content-Transfer-Encoding: 8bit\n"
262+"X-Launchpad-Export-Date: 2012-08-28 07:16+0000\n"
263+"X-Generator: Launchpad (build 15864)\n"
264+
265+#. module: nan_product_pack
266+#: constraint:ir.model:0
267+msgid ""
268+"The Object name must start with x_ and not contain any special character !"
269+msgstr ""
270+
271+#. module: nan_product_pack
272+#: help:product.product,stock_depends:0
273+msgid "Mark if pack stock is calcualted from component stock"
274+msgstr ""
275+
276+#. module: nan_product_pack
277+#: field:sale.order.line,pack_child_line_ids:0
278+msgid "Lines in pack"
279+msgstr ""
280+
281+#. module: nan_product_pack
282+#: help:sale.order.line,pack_depth:0
283+msgid "Depth of the product if it is part of a pack."
284+msgstr ""
285+
286+#. module: nan_product_pack
287+#: field:product.pack.line,product_id:0
288+msgid "Product"
289+msgstr ""
290+
291+#. module: nan_product_pack
292+#: view:product.pack.line:0
293+msgid "Pack Product Lines"
294+msgstr ""
295+
296+#. module: nan_product_pack
297+#: view:product.product:0
298+msgid ""
299+"If you add products in the 'Pack Products' field, all those products will be "
300+"added automatically when a new quotation or order is created."
301+msgstr ""
302+
303+#. module: nan_product_pack
304+#: model:ir.module.module,description:nan_product_pack.module_meta_information
305+msgid ""
306+"\n"
307+"Allows configuring products as a collection of other products. If such a "
308+"product is added in a sale order, all the products of the pack will be added "
309+"automatically (when storing the order) as children of the pack product.\n"
310+"\n"
311+"The module has been made compatible with nan_external_prices and containts "
312+"code to specifically handle when the module is available but they're still "
313+"independent and there are no dependencies between them.\n"
314+" "
315+msgstr ""
316+
317+#. module: nan_product_pack
318+#: view:product.product:0
319+#: field:sale.order.line,pack_parent_line_id:0
320+msgid "Pack"
321+msgstr ""
322+
323+#. module: nan_product_pack
324+#: model:ir.model,name:nan_product_pack.model_product_pack_line
325+msgid "product.pack.line"
326+msgstr ""
327+
328+#. module: nan_product_pack
329+#: constraint:ir.ui.view:0
330+msgid "Invalid XML for View Architecture!"
331+msgstr ""
332+
333+#. module: nan_product_pack
334+#: model:ir.module.module,shortdesc:nan_product_pack.module_meta_information
335+msgid "Product Pack"
336+msgstr ""
337+
338+#. module: nan_product_pack
339+#: field:product.product,stock_depends:0
340+msgid "Stock depends of components"
341+msgstr ""
342+
343+#. module: nan_product_pack
344+#: help:sale.order.line,pack_parent_line_id:0
345+msgid "The pack that contains this product."
346+msgstr ""
347+
348+#. module: nan_product_pack
349+#: field:sale.order.line,pack_depth:0
350+msgid "Depth"
351+msgstr ""
352+
353+#. module: nan_product_pack
354+#: help:product.product,pack_fixed_price:0
355+msgid ""
356+"Mark this field if the public price of the pack should be fixed. Do not mark "
357+"it if the price should be calculated from the sum of the prices of the "
358+"products in the pack."
359+msgstr ""
360+
361+#. module: nan_product_pack
362+#: field:product.pack.line,quantity:0
363+msgid "Quantity"
364+msgstr ""
365+
366+#. module: nan_product_pack
367+#: view:product.product:0
368+#: field:product.product,pack_line_ids:0
369+msgid "Pack Products"
370+msgstr ""
371+
372+#. module: nan_product_pack
373+#: field:product.pack.line,parent_product_id:0
374+msgid "Parent Product"
375+msgstr ""
376+
377+#. module: nan_product_pack
378+#: field:product.product,pack_fixed_price:0
379+msgid "Pack has fixed price"
380+msgstr ""
381+
382+#. module: nan_product_pack
383+#: view:product.pack.line:0
384+msgid "Pack Product Line"
385+msgstr ""
386+
387+#. module: nan_product_pack
388+#: help:product.product,pack_line_ids:0
389+msgid "List of products that are part of this pack."
390+msgstr ""
391
392=== added file 'nan_product_pack/i18n/es.po'
393--- nan_product_pack/i18n/es.po 1970-01-01 00:00:00 +0000
394+++ nan_product_pack/i18n/es.po 2013-02-13 12:26:21 +0000
395@@ -0,0 +1,164 @@
396+# Translation of OpenERP Server.
397+# This file contains the translation of the following modules:
398+# * nan_product_pack
399+#
400+# Albert Cervera i Areny <albert@nan-tic.com>, 2009.
401+msgid ""
402+msgstr ""
403+"Project-Id-Version: OpenERP Server 5.0.6\n"
404+"Report-Msgid-Bugs-To: support@openerp.com\n"
405+"POT-Creation-Date: 2011-01-15 11:45+0000\n"
406+"PO-Revision-Date: 2011-02-15 14:19+0000\n"
407+"Last-Translator: Jordi Esteve (Zikzakmedia) <jesteve@zikzakmedia.com>\n"
408+"Language-Team: Catalan <kde-i18n-ca@kde.org>\n"
409+"MIME-Version: 1.0\n"
410+"Content-Type: text/plain; charset=UTF-8\n"
411+"Content-Transfer-Encoding: 8bit\n"
412+"X-Launchpad-Export-Date: 2012-08-28 07:16+0000\n"
413+"X-Generator: Launchpad (build 15864)\n"
414+
415+#. module: nan_product_pack
416+#: constraint:ir.model:0
417+msgid ""
418+"The Object name must start with x_ and not contain any special character !"
419+msgstr ""
420+"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
421+"especial!"
422+
423+#. module: nan_product_pack
424+#: help:product.product,stock_depends:0
425+msgid "Mark if pack stock is calcualted from component stock"
426+msgstr ""
427+"Marque este campo si el stock del pack se calcula a partir del stock de los "
428+"componentes."
429+
430+#. module: nan_product_pack
431+#: field:sale.order.line,pack_child_line_ids:0
432+msgid "Lines in pack"
433+msgstr "Líneas en el pack"
434+
435+#. module: nan_product_pack
436+#: help:sale.order.line,pack_depth:0
437+msgid "Depth of the product if it is part of a pack."
438+msgstr "Profundidad del producto si forma parte de un pack."
439+
440+#. module: nan_product_pack
441+#: field:product.pack.line,product_id:0
442+msgid "Product"
443+msgstr "Producto"
444+
445+#. module: nan_product_pack
446+#: view:product.pack.line:0
447+msgid "Pack Product Lines"
448+msgstr "Líneas del pack de productos"
449+
450+#. module: nan_product_pack
451+#: view:product.product:0
452+msgid ""
453+"If you add products in the 'Pack Products' field, all those products will be "
454+"added automatically when a new quotation or order is created."
455+msgstr ""
456+"Si añade productos en el campo \"Pack de productos\", todos los productos se "
457+"añadirán automáticamente cuando cree un nuevo presupuesto o pedido."
458+
459+#. module: nan_product_pack
460+#: model:ir.module.module,description:nan_product_pack.module_meta_information
461+msgid ""
462+"\n"
463+"Allows configuring products as a collection of other products. If such a "
464+"product is added in a sale order, all the products of the pack will be added "
465+"automatically (when storing the order) as children of the pack product.\n"
466+"\n"
467+"The module has been made compatible with nan_external_prices and containts "
468+"code to specifically handle when the module is available but they're still "
469+"independent and there are no dependencies between them.\n"
470+" "
471+msgstr ""
472+"\n"
473+"Permite configurar los productos como colecciones de otros productos. Si se "
474+"añade un producto de este tipo en un pedido de venta, todos los productos "
475+"del pack se añadirán automáticamente (cuando se guarde el pedido) como hijos "
476+"del producto principal.\n"
477+"\n"
478+"Este módulo es compatible con nan_external_prices y contiene código para "
479+"funcionar cuando está instalado aunque ambos son todavía independientes y no "
480+"hay dependencias entre ellos.\n"
481+" "
482+
483+#. module: nan_product_pack
484+#: view:product.product:0
485+#: field:sale.order.line,pack_parent_line_id:0
486+msgid "Pack"
487+msgstr "Pack"
488+
489+#. module: nan_product_pack
490+#: model:ir.model,name:nan_product_pack.model_product_pack_line
491+msgid "product.pack.line"
492+msgstr "producto.pack.línea"
493+
494+#. module: nan_product_pack
495+#: constraint:ir.ui.view:0
496+msgid "Invalid XML for View Architecture!"
497+msgstr "¡XML no válido para la definición de la vista!"
498+
499+#. module: nan_product_pack
500+#: model:ir.module.module,shortdesc:nan_product_pack.module_meta_information
501+msgid "Product Pack"
502+msgstr "Pack de productos"
503+
504+#. module: nan_product_pack
505+#: field:product.product,stock_depends:0
506+msgid "Stock depends of components"
507+msgstr "Stock depende de los componentes"
508+
509+#. module: nan_product_pack
510+#: help:sale.order.line,pack_parent_line_id:0
511+msgid "The pack that contains this product."
512+msgstr "El pack que contiene este producto."
513+
514+#. module: nan_product_pack
515+#: field:sale.order.line,pack_depth:0
516+msgid "Depth"
517+msgstr "Profundidad"
518+
519+#. module: nan_product_pack
520+#: help:product.product,pack_fixed_price:0
521+msgid ""
522+"Mark this field if the public price of the pack should be fixed. Do not mark "
523+"it if the price should be calculated from the sum of the prices of the "
524+"products in the pack."
525+msgstr ""
526+"Marque este campo si el precio de venta del pack tiene que ser fijo. No lo "
527+"marque si el precio se tiene que calcular a partir de la suma de los precios "
528+"de los productos del pack."
529+
530+#. module: nan_product_pack
531+#: field:product.pack.line,quantity:0
532+msgid "Quantity"
533+msgstr "Cantidad"
534+
535+#. module: nan_product_pack
536+#: view:product.product:0
537+#: field:product.product,pack_line_ids:0
538+msgid "Pack Products"
539+msgstr "Productos del pack"
540+
541+#. module: nan_product_pack
542+#: field:product.pack.line,parent_product_id:0
543+msgid "Parent Product"
544+msgstr "Producto padre"
545+
546+#. module: nan_product_pack
547+#: field:product.product,pack_fixed_price:0
548+msgid "Pack has fixed price"
549+msgstr "El pack tiene un precio fijo"
550+
551+#. module: nan_product_pack
552+#: view:product.pack.line:0
553+msgid "Pack Product Line"
554+msgstr "Línea de pack de productos"
555+
556+#. module: nan_product_pack
557+#: help:product.product,pack_line_ids:0
558+msgid "List of products that are part of this pack."
559+msgstr "Lista de productos que forman parte del pack."
560
561=== added file 'nan_product_pack/i18n/it.po'
562--- nan_product_pack/i18n/it.po 1970-01-01 00:00:00 +0000
563+++ nan_product_pack/i18n/it.po 2013-02-13 12:26:21 +0000
564@@ -0,0 +1,163 @@
565+# Italian translation for openobject-addons
566+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
567+# This file is distributed under the same license as the openobject-addons package.
568+# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
569+#
570+msgid ""
571+msgstr ""
572+"Project-Id-Version: openobject-addons\n"
573+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
574+"POT-Creation-Date: 2011-01-15 11:45+0000\n"
575+"PO-Revision-Date: 2011-05-03 10:13+0000\n"
576+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
577+"Language-Team: Italian <it@li.org>\n"
578+"MIME-Version: 1.0\n"
579+"Content-Type: text/plain; charset=UTF-8\n"
580+"Content-Transfer-Encoding: 8bit\n"
581+"X-Launchpad-Export-Date: 2012-08-28 07:16+0000\n"
582+"X-Generator: Launchpad (build 15864)\n"
583+
584+#. module: nan_product_pack
585+#: constraint:ir.model:0
586+msgid ""
587+"The Object name must start with x_ and not contain any special character !"
588+msgstr ""
589+"Il nome dell'oggetto deve iniziare con x_ e non deve contenere alcun "
590+"carattere speciale !"
591+
592+#. module: nan_product_pack
593+#: help:product.product,stock_depends:0
594+msgid "Mark if pack stock is calcualted from component stock"
595+msgstr ""
596+"Selezionare se la giacenza del kit è calcolata sulla base della giacenza dei "
597+"componenti"
598+
599+#. module: nan_product_pack
600+#: field:sale.order.line,pack_child_line_ids:0
601+msgid "Lines in pack"
602+msgstr "Righe nel kit"
603+
604+#. module: nan_product_pack
605+#: help:sale.order.line,pack_depth:0
606+msgid "Depth of the product if it is part of a pack."
607+msgstr "Profondità del prodotto se è parte di un kit"
608+
609+#. module: nan_product_pack
610+#: field:product.pack.line,product_id:0
611+msgid "Product"
612+msgstr "Prodotto"
613+
614+#. module: nan_product_pack
615+#: view:product.pack.line:0
616+msgid "Pack Product Lines"
617+msgstr "Righe Kit"
618+
619+#. module: nan_product_pack
620+#: view:product.product:0
621+msgid ""
622+"If you add products in the 'Pack Products' field, all those products will be "
623+"added automatically when a new quotation or order is created."
624+msgstr ""
625+"Se si aggiungono prodotti nel campo 'Prodotti Kit', tutti quei prodotti "
626+"saranno automaticamente aggiunti alla creazione di un preventivo o ordine."
627+
628+#. module: nan_product_pack
629+#: model:ir.module.module,description:nan_product_pack.module_meta_information
630+msgid ""
631+"\n"
632+"Allows configuring products as a collection of other products. If such a "
633+"product is added in a sale order, all the products of the pack will be added "
634+"automatically (when storing the order) as children of the pack product.\n"
635+"\n"
636+"The module has been made compatible with nan_external_prices and containts "
637+"code to specifically handle when the module is available but they're still "
638+"independent and there are no dependencies between them.\n"
639+" "
640+msgstr ""
641+"\n"
642+"Permette di configurare prosotti come collezioni di altri prodotti. Se uno "
643+"di questi prodotti viene aggiunto ad un ordine di vendita, tutti i prodotti "
644+"nel kit saranno aggiunti automaticamente (al salvataggio dell'ordine) come "
645+"figli del prodotto kit.\n"
646+"\n"
647+"Il modulo è stato reso compatibile con nan_external_prices e contiene il "
648+"codice per gestire entrambi i moduli pur mantenendoli indipendenti.\n"
649+" "
650+
651+#. module: nan_product_pack
652+#: view:product.product:0
653+#: field:sale.order.line,pack_parent_line_id:0
654+msgid "Pack"
655+msgstr "Kit"
656+
657+#. module: nan_product_pack
658+#: model:ir.model,name:nan_product_pack.model_product_pack_line
659+msgid "product.pack.line"
660+msgstr "product.pack.line"
661+
662+#. module: nan_product_pack
663+#: constraint:ir.ui.view:0
664+msgid "Invalid XML for View Architecture!"
665+msgstr "XML non valido per l'architettura della vista"
666+
667+#. module: nan_product_pack
668+#: model:ir.module.module,shortdesc:nan_product_pack.module_meta_information
669+msgid "Product Pack"
670+msgstr "Kit prodotto"
671+
672+#. module: nan_product_pack
673+#: field:product.product,stock_depends:0
674+msgid "Stock depends of components"
675+msgstr "La giacenza si basa sui componenti"
676+
677+#. module: nan_product_pack
678+#: help:sale.order.line,pack_parent_line_id:0
679+msgid "The pack that contains this product."
680+msgstr "Il kit che contiene questo prodotto."
681+
682+#. module: nan_product_pack
683+#: field:sale.order.line,pack_depth:0
684+msgid "Depth"
685+msgstr "Profondità"
686+
687+#. module: nan_product_pack
688+#: help:product.product,pack_fixed_price:0
689+msgid ""
690+"Mark this field if the public price of the pack should be fixed. Do not mark "
691+"it if the price should be calculated from the sum of the prices of the "
692+"products in the pack."
693+msgstr ""
694+"Selezionare questo campo se il prezzo pubblico del kit debba essere fisso. "
695+"Non selezionarlo se il prezzo debba essere calcolato sulla base dei prezzi "
696+"dei prodotti nel kit."
697+
698+#. module: nan_product_pack
699+#: field:product.pack.line,quantity:0
700+msgid "Quantity"
701+msgstr "Quantità"
702+
703+#. module: nan_product_pack
704+#: view:product.product:0
705+#: field:product.product,pack_line_ids:0
706+msgid "Pack Products"
707+msgstr "Prodotti kit"
708+
709+#. module: nan_product_pack
710+#: field:product.pack.line,parent_product_id:0
711+msgid "Parent Product"
712+msgstr "Prodotto genitore"
713+
714+#. module: nan_product_pack
715+#: field:product.product,pack_fixed_price:0
716+msgid "Pack has fixed price"
717+msgstr "Il kit ha prezzo fisso"
718+
719+#. module: nan_product_pack
720+#: view:product.pack.line:0
721+msgid "Pack Product Line"
722+msgstr "Riga prodotto kit"
723+
724+#. module: nan_product_pack
725+#: help:product.product,pack_line_ids:0
726+msgid "List of products that are part of this pack."
727+msgstr "Lista dei prodotti che sono parte di questo kit."
728
729=== added file 'nan_product_pack/i18n/nan_product_pack.pot'
730--- nan_product_pack/i18n/nan_product_pack.pot 1970-01-01 00:00:00 +0000
731+++ nan_product_pack/i18n/nan_product_pack.pot 2013-02-13 12:26:21 +0000
732@@ -0,0 +1,137 @@
733+# Translation of OpenERP Server.
734+# This file contains the translation of the following modules:
735+# * nan_product_pack
736+#
737+msgid ""
738+msgstr ""
739+"Project-Id-Version: OpenERP Server 5.0.15\n"
740+"Report-Msgid-Bugs-To: support@openerp.com\n"
741+"POT-Creation-Date: 2011-01-15 11:45:01+0000\n"
742+"PO-Revision-Date: 2011-01-15 11:45:01+0000\n"
743+"Last-Translator: <>\n"
744+"Language-Team: \n"
745+"MIME-Version: 1.0\n"
746+"Content-Type: text/plain; charset=UTF-8\n"
747+"Content-Transfer-Encoding: \n"
748+"Plural-Forms: \n"
749+
750+#. module: nan_product_pack
751+#: constraint:ir.model:0
752+msgid "The Object name must start with x_ and not contain any special character !"
753+msgstr "The Object name must start with x_ and not contain any special character !"
754+
755+#. module: nan_product_pack
756+#: help:product.product,stock_depends:0
757+msgid "Mark if pack stock is calcualted from component stock"
758+msgstr "Mark if pack stock is calcualted from component stock"
759+
760+#. module: nan_product_pack
761+#: field:sale.order.line,pack_child_line_ids:0
762+msgid "Lines in pack"
763+msgstr "Lines in pack"
764+
765+#. module: nan_product_pack
766+#: help:sale.order.line,pack_depth:0
767+msgid "Depth of the product if it is part of a pack."
768+msgstr "Depth of the product if it is part of a pack."
769+
770+#. module: nan_product_pack
771+#: field:product.pack.line,product_id:0
772+msgid "Product"
773+msgstr "Product"
774+
775+#. module: nan_product_pack
776+#: view:product.pack.line:0
777+msgid "Pack Product Lines"
778+msgstr "Pack Product Lines"
779+
780+#. module: nan_product_pack
781+#: view:product.product:0
782+msgid "If you add products in the 'Pack Products' field, all those products will be added automatically when a new quotation or order is created."
783+msgstr "If you add products in the 'Pack Products' field, all those products will be added automatically when a new quotation or order is created."
784+
785+#. module: nan_product_pack
786+#: model:ir.module.module,description:nan_product_pack.module_meta_information
787+msgid "\n"
788+"Allows configuring products as a collection of other products. If such a product is added in a sale order, all the products of the pack will be added automatically (when storing the order) as children of the pack product.\n"
789+"\n"
790+"The module has been made compatible with nan_external_prices and containts code to specifically handle when the module is available but they're still independent and there are no dependencies between them.\n"
791+" "
792+msgstr "\n"
793+"Allows configuring products as a collection of other products. If such a product is added in a sale order, all the products of the pack will be added automatically (when storing the order) as children of the pack product.\n"
794+"\n"
795+"The module has been made compatible with nan_external_prices and containts code to specifically handle when the module is available but they're still independent and there are no dependencies between them.\n"
796+" "
797+
798+#. module: nan_product_pack
799+#: view:product.product:0
800+#: field:sale.order.line,pack_parent_line_id:0
801+msgid "Pack"
802+msgstr "Pack"
803+
804+#. module: nan_product_pack
805+#: model:ir.model,name:nan_product_pack.model_product_pack_line
806+msgid "product.pack.line"
807+msgstr "product.pack.line"
808+
809+#. module: nan_product_pack
810+#: constraint:ir.ui.view:0
811+msgid "Invalid XML for View Architecture!"
812+msgstr "Invalid XML for View Architecture!"
813+
814+#. module: nan_product_pack
815+#: model:ir.module.module,shortdesc:nan_product_pack.module_meta_information
816+msgid "Product Pack"
817+msgstr "Product Pack"
818+
819+#. module: nan_product_pack
820+#: field:product.product,stock_depends:0
821+msgid "Stock depends of components"
822+msgstr "Stock depends of components"
823+
824+#. module: nan_product_pack
825+#: help:sale.order.line,pack_parent_line_id:0
826+msgid "The pack that contains this product."
827+msgstr "The pack that contains this product."
828+
829+#. module: nan_product_pack
830+#: field:sale.order.line,pack_depth:0
831+msgid "Depth"
832+msgstr "Depth"
833+
834+#. module: nan_product_pack
835+#: help:product.product,pack_fixed_price:0
836+msgid "Mark this field if the public price of the pack should be fixed. Do not mark it if the price should be calculated from the sum of the prices of the products in the pack."
837+msgstr "Mark this field if the public price of the pack should be fixed. Do not mark it if the price should be calculated from the sum of the prices of the products in the pack."
838+
839+#. module: nan_product_pack
840+#: field:product.pack.line,quantity:0
841+msgid "Quantity"
842+msgstr "Quantity"
843+
844+#. module: nan_product_pack
845+#: view:product.product:0
846+#: field:product.product,pack_line_ids:0
847+msgid "Pack Products"
848+msgstr "Pack Products"
849+
850+#. module: nan_product_pack
851+#: field:product.pack.line,parent_product_id:0
852+msgid "Parent Product"
853+msgstr "Parent Product"
854+
855+#. module: nan_product_pack
856+#: field:product.product,pack_fixed_price:0
857+msgid "Pack has fixed price"
858+msgstr "Pack has fixed price"
859+
860+#. module: nan_product_pack
861+#: view:product.pack.line:0
862+msgid "Pack Product Line"
863+msgstr "Pack Product Line"
864+
865+#. module: nan_product_pack
866+#: help:product.product,pack_line_ids:0
867+msgid "List of products that are part of this pack."
868+msgstr "List of products that are part of this pack."
869+
870
871=== added file 'nan_product_pack/i18n/pt.po'
872--- nan_product_pack/i18n/pt.po 1970-01-01 00:00:00 +0000
873+++ nan_product_pack/i18n/pt.po 2013-02-13 12:26:21 +0000
874@@ -0,0 +1,149 @@
875+# Portuguese translation for openobject-addons
876+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
877+# This file is distributed under the same license as the openobject-addons package.
878+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
879+#
880+msgid ""
881+msgstr ""
882+"Project-Id-Version: openobject-addons\n"
883+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
884+"POT-Creation-Date: 2011-01-15 11:45+0000\n"
885+"PO-Revision-Date: 2011-02-15 14:19+0000\n"
886+"Last-Translator: Luniz <luniz52@hotmail.com>\n"
887+"Language-Team: Portuguese <pt@li.org>\n"
888+"MIME-Version: 1.0\n"
889+"Content-Type: text/plain; charset=UTF-8\n"
890+"Content-Transfer-Encoding: 8bit\n"
891+"X-Launchpad-Export-Date: 2012-08-28 07:16+0000\n"
892+"X-Generator: Launchpad (build 15864)\n"
893+
894+#. module: nan_product_pack
895+#: constraint:ir.model:0
896+msgid ""
897+"The Object name must start with x_ and not contain any special character !"
898+msgstr ""
899+"O nome do Objecto deve começar com x_ e não pode conter nenhum caracter "
900+"especial !"
901+
902+#. module: nan_product_pack
903+#: help:product.product,stock_depends:0
904+msgid "Mark if pack stock is calcualted from component stock"
905+msgstr ""
906+
907+#. module: nan_product_pack
908+#: field:sale.order.line,pack_child_line_ids:0
909+msgid "Lines in pack"
910+msgstr "Linhas em embalagens"
911+
912+#. module: nan_product_pack
913+#: help:sale.order.line,pack_depth:0
914+msgid "Depth of the product if it is part of a pack."
915+msgstr "Profundidade do produto se ele faz parte da embalagem."
916+
917+#. module: nan_product_pack
918+#: field:product.pack.line,product_id:0
919+msgid "Product"
920+msgstr "Produto"
921+
922+#. module: nan_product_pack
923+#: view:product.pack.line:0
924+msgid "Pack Product Lines"
925+msgstr "Linhas de Embalagem de Produto"
926+
927+#. module: nan_product_pack
928+#: view:product.product:0
929+msgid ""
930+"If you add products in the 'Pack Products' field, all those products will be "
931+"added automatically when a new quotation or order is created."
932+msgstr ""
933+"Se adicionar o produto no campo \"Embalagem de Produtos ', todos os produtos "
934+"serão adicionados automaticamente quando uma nova ordem de cotação é criado."
935+
936+#. module: nan_product_pack
937+#: model:ir.module.module,description:nan_product_pack.module_meta_information
938+msgid ""
939+"\n"
940+"Allows configuring products as a collection of other products. If such a "
941+"product is added in a sale order, all the products of the pack will be added "
942+"automatically (when storing the order) as children of the pack product.\n"
943+"\n"
944+"The module has been made compatible with nan_external_prices and containts "
945+"code to specifically handle when the module is available but they're still "
946+"independent and there are no dependencies between them.\n"
947+" "
948+msgstr ""
949+
950+#. module: nan_product_pack
951+#: view:product.product:0
952+#: field:sale.order.line,pack_parent_line_id:0
953+msgid "Pack"
954+msgstr "Embalagem"
955+
956+#. module: nan_product_pack
957+#: model:ir.model,name:nan_product_pack.model_product_pack_line
958+msgid "product.pack.line"
959+msgstr "product.pack.line"
960+
961+#. module: nan_product_pack
962+#: constraint:ir.ui.view:0
963+msgid "Invalid XML for View Architecture!"
964+msgstr "XML Inválido para a Aquitectura de Vista!"
965+
966+#. module: nan_product_pack
967+#: model:ir.module.module,shortdesc:nan_product_pack.module_meta_information
968+msgid "Product Pack"
969+msgstr "Embalagem de Produto"
970+
971+#. module: nan_product_pack
972+#: field:product.product,stock_depends:0
973+msgid "Stock depends of components"
974+msgstr ""
975+
976+#. module: nan_product_pack
977+#: help:sale.order.line,pack_parent_line_id:0
978+msgid "The pack that contains this product."
979+msgstr "A embalagem que contém esse produto."
980+
981+#. module: nan_product_pack
982+#: field:sale.order.line,pack_depth:0
983+msgid "Depth"
984+msgstr "Profundidade"
985+
986+#. module: nan_product_pack
987+#: help:product.product,pack_fixed_price:0
988+msgid ""
989+"Mark this field if the public price of the pack should be fixed. Do not mark "
990+"it if the price should be calculated from the sum of the prices of the "
991+"products in the pack."
992+msgstr ""
993+
994+#. module: nan_product_pack
995+#: field:product.pack.line,quantity:0
996+msgid "Quantity"
997+msgstr "Quantidade"
998+
999+#. module: nan_product_pack
1000+#: view:product.product:0
1001+#: field:product.product,pack_line_ids:0
1002+msgid "Pack Products"
1003+msgstr "Embalagem de Produtos"
1004+
1005+#. module: nan_product_pack
1006+#: field:product.pack.line,parent_product_id:0
1007+msgid "Parent Product"
1008+msgstr "Produto Ascendente"
1009+
1010+#. module: nan_product_pack
1011+#: field:product.product,pack_fixed_price:0
1012+msgid "Pack has fixed price"
1013+msgstr "A Embalagem tem preço fixado"
1014+
1015+#. module: nan_product_pack
1016+#: view:product.pack.line:0
1017+msgid "Pack Product Line"
1018+msgstr "Linha de Embalagem de Produto"
1019+
1020+#. module: nan_product_pack
1021+#: help:product.product,pack_line_ids:0
1022+msgid "List of products that are part of this pack."
1023+msgstr "Lista dos produtos que fazem parte desta embalagem."
1024
1025=== added file 'nan_product_pack/pack.py'
1026--- nan_product_pack/pack.py 1970-01-01 00:00:00 +0000
1027+++ nan_product_pack/pack.py 2013-02-13 12:26:21 +0000
1028@@ -0,0 +1,239 @@
1029+# -*- encoding: latin-1 -*-
1030+##############################################################################
1031+#
1032+# Copyright (c) 2009 �ngel �lvarez - NaN (http://www.nan-tic.com) All Rights Reserved.
1033+#
1034+# This program is free software: you can redistribute it and/or modify #
1035+# it under the terms of the GNU Affero General Public License as #
1036+# published by the Free Software Foundation, either version 3 of the #
1037+# License, or (at your option) any later version. #
1038+# #
1039+# This program is distributed in the hope that it will be useful, #
1040+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
1041+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
1042+# GNU Affero General Public License for more details. #
1043+# #
1044+# You should have received a copy of the GNU Affero General Public License #
1045+# along with this program. If not, see <http://www.gnu.org/licenses/>. #
1046+#
1047+##############################################################################
1048+
1049+import math
1050+from osv import fields,osv
1051+
1052+class product_pack( osv.osv ):
1053+ _name = 'product.pack.line'
1054+ _rec_name = 'product_id'
1055+ _columns = {
1056+ 'parent_product_id': fields.many2one( 'product.product', 'Parent Product', ondelete='cascade', required=True ),
1057+ 'quantity': fields.float( 'Quantity', required=True ),
1058+ 'product_id': fields.many2one( 'product.product', 'Product', required=True ),
1059+ }
1060+
1061+product_pack()
1062+
1063+class product_product( osv.osv ):
1064+ _inherit = 'product.product'
1065+ _columns = {
1066+ 'stock_depends': fields.boolean( 'Stock depends of components', help='Mark if pack stock is calcualted from component stock' ),
1067+ 'pack_fixed_price': fields.boolean( 'Pack has fixed price', help='Mark this field if the public price of the pack should be fixed. Do not mark it if the price should be calculated from the sum of the prices of the products in the pack.' ),
1068+ 'pack_line_ids': fields.one2many( 'product.pack.line','parent_product_id', 'Pack Products', help='List of products that are part of this pack.' ),
1069+ }
1070+
1071+ def get_product_available( self, cr, uid, ids, context=None ):
1072+ """ Calulate stock for packs, return maximum stock that lets complete pack """
1073+ result={}
1074+ for product in self.browse( cr, uid, ids, context=context ):
1075+ stock = super( product_product, self ).get_product_available( cr, uid, [ product.id ], context=context )
1076+
1077+ # Check if product stock depends on it's subproducts stock.
1078+ if not product.stock_depends:
1079+ result[ product.id ] = stock[ product.id ]
1080+ continue
1081+
1082+ first_subproduct = True
1083+ pack_stock = 0
1084+
1085+ # Check if the pack has subproducts
1086+ if product.pack_line_ids:
1087+ # Take the stock/virtual stock of all subproducts
1088+ subproducts_stock = self.get_product_available( cr, uid, [ line.product_id.id for line in product.pack_line_ids ], context=context )
1089+ # Go over all subproducts, take quantity needed for the pack and its available stock
1090+ for subproduct in product.pack_line_ids:
1091+ if first_subproduct:
1092+ subproduct_quantity = subproduct.quantity
1093+ subproduct_stock = subproducts_stock[ subproduct.product_id.id ]
1094+ # Calculate real stock for current pack from the subproduct stock and needed quantity
1095+ pack_stock = math.floor( subproduct_stock / subproduct_quantity )
1096+ first_subproduct = False
1097+ continue
1098+ # Take the info of the next subproduct
1099+ subproduct_quantity_next = subproduct.quantity
1100+ subproduct_stock_next = subproducts_stock[ subproduct.product_id.id ]
1101+ pack_stock_next = math.floor( subproduct_stock_next / subproduct_quantity_next )
1102+ # compare the stock of a subproduct and the next subproduct
1103+ if pack_stock_next < pack_stock:
1104+ pack_stock = pack_stock_next
1105+ # result is the minimum stock of all subproducts
1106+ result[ product.id ] = pack_stock
1107+ else:
1108+ result[ product.id ] = stock[ product.id ]
1109+ return result
1110+
1111+product_product()
1112+
1113+class sale_order_line(osv.osv):
1114+ _inherit = 'sale.order.line'
1115+ _columns = {
1116+ 'pack_depth': fields.integer('Depth', required=True, help='Depth of the product if it is part of a pack.'),
1117+ 'pack_parent_line_id': fields.many2one('sale.order.line', 'Pack', help='The pack that contains this product.'),
1118+ 'pack_child_line_ids': fields.one2many('sale.order.line', 'pack_parent_line_id', 'Lines in pack', help=''),
1119+ }
1120+ _defaults = {
1121+ 'pack_depth': lambda *a: 0,
1122+ }
1123+sale_order_line()
1124+
1125+class sale_order(osv.osv):
1126+ _inherit = 'sale.order'
1127+
1128+ def create(self, cr, uid, vals, context=None):
1129+ result = super(sale_order,self).create(cr, uid, vals, context)
1130+ self.expand_packs(cr, uid, [result], context)
1131+ return result
1132+
1133+ def write(self, cr, uid, ids, vals, context=None):
1134+ result = super(sale_order,self).write(cr, uid, ids, vals, context)
1135+ self.expand_packs(cr, uid, ids, context)
1136+ return result
1137+
1138+ def expand_packs(self, cr, uid, ids, context={}, depth=1):
1139+ if depth == 10:
1140+ return
1141+ updated_orders = []
1142+ for order in self.browse(cr, uid, ids, context):
1143+
1144+ fiscal_position = order.fiscal_position and self.pool.get('account.fiscal.position').browse(cr, uid, order.fiscal_position, context) or False
1145+
1146+ # The reorder variable is used to ensure lines of the same pack go right after their
1147+ # parent.
1148+ # What the algorithm does is check if the previous item had children. As children items
1149+ # must go right after the parent if the line we're evaluating doesn't have a parent it
1150+ # means it's a new item (and probably has the default 10 sequence number - unless the
1151+ # appropiate c2c_sale_sequence module is installed). In this case we mark the item for
1152+ # reordering and evaluate the next one. Note that as the item is not evaluated and it might
1153+ # have to be expanded it's put on the queue for another iteration (it's simple and works well).
1154+ # Once the next item has been evaluated the sequence of the item marked for reordering is updated
1155+ # with the next value.
1156+ sequence = -1
1157+ reorder = []
1158+ last_had_children = False
1159+ for line in order.order_line:
1160+ if last_had_children and not line.pack_parent_line_id:
1161+ reorder.append( line.id )
1162+ if line.product_id.pack_line_ids and not order.id in updated_orders:
1163+ updated_orders.append( order.id )
1164+ continue
1165+
1166+ sequence += 1
1167+
1168+ if sequence > line.sequence:
1169+ self.pool.get('sale.order.line').write(cr, uid, [line.id], {
1170+ 'sequence': sequence,
1171+ }, context)
1172+ else:
1173+ sequence = line.sequence
1174+
1175+ if line.state != 'draft':
1176+ continue
1177+ if not line.product_id:
1178+ continue
1179+
1180+ # If pack was already expanded (in another create/write operation or in
1181+ # a previous iteration) don't do it again.
1182+ if line.pack_child_line_ids:
1183+ last_had_children = True
1184+ continue
1185+ last_had_children = False
1186+
1187+ for subline in line.product_id.pack_line_ids:
1188+ sequence += 1
1189+
1190+ subproduct = subline.product_id
1191+ quantity = subline.quantity * line.product_uom_qty
1192+
1193+ if line.product_id.pack_fixed_price:
1194+ price = 0.0
1195+ discount = 0.0
1196+ else:
1197+ pricelist = order.pricelist_id.id
1198+ price = self.pool.get('product.pricelist').price_get(cr, uid, [pricelist],
1199+ subproduct.id, quantity, order.partner_id.id, {
1200+ 'uom': subproduct.uom_id.id,
1201+ 'date': order.date_order,
1202+ })[pricelist]
1203+ discount = line.discount
1204+
1205+ # Obtain product name in partner's language
1206+ ctx = {'lang': order.partner_id.lang}
1207+ subproduct_name = self.pool.get('product.product').browse(cr, uid, subproduct.id, ctx).name
1208+
1209+ tax_ids = self.pool.get('account.fiscal.position').map_tax(cr, uid, fiscal_position, subproduct.taxes_id)
1210+
1211+ if subproduct.uos_id:
1212+ uos_id = subproduct.uos_id.id
1213+ uos_qty = quantity * subproduct.uos_coeff
1214+ else:
1215+ uos_id = False
1216+ uos_qty = quantity
1217+
1218+ vals = {
1219+ 'order_id': order.id,
1220+ 'name': '%s%s' % ('> '* (line.pack_depth+1), subproduct_name),
1221+ 'sequence': sequence,
1222+ 'delay': subproduct.sale_delay or 0.0,
1223+ 'product_id': subproduct.id,
1224+ 'procurement_id': line.procurement_id and line.procurement_id.id or False,
1225+ 'price_unit': price,
1226+ 'tax_id': [(6,0,tax_ids)],
1227+ 'type': subproduct.procure_method,
1228+ 'property_ids': [(6,0,[])],
1229+ 'address_allotment_id': False,
1230+ 'product_uom_qty': quantity,
1231+ 'product_uom': subproduct.uom_id.id,
1232+ 'product_uos_qty': uos_qty,
1233+ 'product_uos': uos_id,
1234+ 'product_packaging': False,
1235+ 'move_ids': [(6,0,[])],
1236+ 'discount': discount,
1237+ 'number_packages': False,
1238+ 'notes': False,
1239+ 'th_weight': False,
1240+ 'state': 'draft',
1241+ 'pack_parent_line_id': line.id,
1242+ 'pack_depth': line.pack_depth + 1,
1243+ }
1244+
1245+ # It's a control for the case that the nan_external_prices was installed with the product pack
1246+ if 'prices_used' in line:
1247+ vals[ 'prices_used' ] = line.prices_used
1248+
1249+ self.pool.get('sale.order.line').create(cr, uid, vals, context)
1250+ if not order.id in updated_orders:
1251+ updated_orders.append( order.id )
1252+
1253+ for id in reorder:
1254+ sequence += 1
1255+ self.pool.get('sale.order.line').write(cr, uid, [id], {
1256+ 'sequence': sequence,
1257+ }, context)
1258+
1259+ if updated_orders:
1260+ # Try to expand again all those orders that had a pack in this iteration.
1261+ # This way we support packs inside other packs.
1262+ self.expand_packs(cr, uid, ids, context, depth+1)
1263+ return
1264+
1265+sale_order()
1266+
1267+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
1268
1269=== added file 'nan_product_pack/pack_view.xml'
1270--- nan_product_pack/pack_view.xml 1970-01-01 00:00:00 +0000
1271+++ nan_product_pack/pack_view.xml 2013-02-13 12:26:21 +0000
1272@@ -0,0 +1,50 @@
1273+<?xml version="1.0" encoding="utf-8"?>
1274+<openerp>
1275+<data>
1276+
1277+ <!-- Product view modification -->
1278+ <record model="ir.ui.view" id="nan_product_pack_form">
1279+ <field name="name">product.product.pack.form</field>
1280+ <field name="model">product.product</field>
1281+ <field name="type">form</field>
1282+ <field name="inherit_id" ref="product.product_normal_form_view" />
1283+ <field name="arch" type="xml">
1284+ <notebook position="inside">
1285+ <page string="Pack">
1286+ <label string="If you add products in the 'Pack Products' field, all those products will be added automatically when a new quotation or order is created." colspan="4"/>
1287+ <field name="stock_depends"/>
1288+ <field name="pack_fixed_price"/>
1289+ <label string=""/>
1290+ <separator string="Pack Products" colspan="4"/>
1291+ <field name="pack_line_ids" colspan="4" nolabel="1"/>
1292+ </page>
1293+ </notebook>
1294+ </field>
1295+ </record>
1296+
1297+ <!-- product.pack.line -->
1298+ <record model="ir.ui.view" id="product_pack_line_form">
1299+ <field name="name">product.pack.line.form</field>
1300+ <field name="model">product.pack.line</field>
1301+ <field name="type">form</field>
1302+ <field name="arch" type="xml">
1303+ <form string="Pack Product Line">
1304+ <field name="quantity"/>
1305+ <field name="product_id"/>
1306+ </form>
1307+ </field>
1308+ </record>
1309+ <record model="ir.ui.view" id="product_pack_line_tree">
1310+ <field name="name">product.pack.line.tree</field>
1311+ <field name="model">product.pack.line</field>
1312+ <field name="type">tree</field>
1313+ <field name="arch" type="xml">
1314+ <tree string="Pack Product Lines">
1315+ <field name="quantity"/>
1316+ <field name="product_id"/>
1317+ </tree>
1318+ </field>
1319+ </record>
1320+</data>
1321+</openerp>
1322+
1323
1324=== added directory 'nan_product_pack/security'
1325=== added file 'nan_product_pack/security/ir.model.access.csv'
1326--- nan_product_pack/security/ir.model.access.csv 1970-01-01 00:00:00 +0000
1327+++ nan_product_pack/security/ir.model.access.csv 2013-02-13 12:26:21 +0000
1328@@ -0,0 +1,3 @@
1329+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
1330+"access_product_pack_line_manager","product.pack.line manager","model_product_pack_line","base.group_sale_manager",1,1,1,1
1331+"access_product_pack_line_mployee","product.pack.line employee","model_product_pack_line","base.group_user",1,0,0,0

Subscribers

People subscribed via source and target branches