Merge lp:~angelmoya/product-extra-addons/nan_product_pack into lp:product-extra-addons/oerp6.1-stable
- nan_product_pack
- Merge into 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 |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Yannick Vaucher @ Camptocamp | license | Approve | |
Review via email:
|
Commit message
Description of the change
Add nan_product_pack from extra-addons
To post a comment you must log in.
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote : | # |
review:
Needs Fixing
(license)
- 78. By Angel Moya - Domatix
-
[FIX] update license
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
Angel Moya - Domatix (angelmoya) wrote : | # |
I talked with Nan Tic about license, and no problem to change it
Revision history for this message
![](/+icing/build/overlay/assets/skins/sam/images/close.gif)
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 |
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