Merge lp:~camptocamp/e-commerce-addons/7.0-remove-dead-modules into lp:~extra-addons-commiter/e-commerce-addons/7.0

Proposed by Guewen Baconnier @ Camptocamp
Status: Merged
Approved by: Yannick Vaucher @ Camptocamp
Approved revision: 290
Merged at revision: 290
Proposed branch: lp:~camptocamp/e-commerce-addons/7.0-remove-dead-modules
Merge into: lp:~extra-addons-commiter/e-commerce-addons/7.0
Diff against target: 6033 lines (+0/-5731)
58 files modified
base_sale_export_partner/__init__.py (+0/-23)
base_sale_export_partner/__openerp__.py (+0/-41)
base_sale_export_partner/wizard/__init__.py (+0/-23)
base_sale_export_partner/wizard/export_partner.py (+0/-65)
base_sale_export_partner/wizard/export_partner.xml (+0/-38)
base_sale_export_product/__init__.py (+0/-23)
base_sale_export_product/__openerp__.py (+0/-41)
base_sale_export_product/wizard/__init__.py (+0/-23)
base_sale_export_product/wizard/export_product.py (+0/-91)
base_sale_export_product/wizard/export_product.xml (+0/-39)
base_sale_multichannels/__init__.py (+0/-34)
base_sale_multichannels/__openerp__.py (+0/-78)
base_sale_multichannels/account.py (+0/-59)
base_sale_multichannels/account_view.xml (+0/-52)
base_sale_multichannels/base_sale_data.xml (+0/-46)
base_sale_multichannels/connector.py (+0/-37)
base_sale_multichannels/delivery.py (+0/-29)
base_sale_multichannels/delivery_view.xml (+0/-20)
base_sale_multichannels/external_referential.py (+0/-83)
base_sale_multichannels/i18n/base_sale_multichannels.pot (+0/-306)
base_sale_multichannels/i18n/ca.po (+0/-380)
base_sale_multichannels/i18n/ca_ES.po (+0/-334)
base_sale_multichannels/i18n/es.po (+0/-379)
base_sale_multichannels/i18n/fr.po (+0/-356)
base_sale_multichannels/i18n/pt.po (+0/-379)
base_sale_multichannels/i18n/sv.po (+0/-327)
base_sale_multichannels/invoice.py (+0/-41)
base_sale_multichannels/invoice_view.xml (+0/-19)
base_sale_multichannels/partner.py (+0/-54)
base_sale_multichannels/partner_view.xml (+0/-28)
base_sale_multichannels/payment_method.py (+0/-53)
base_sale_multichannels/payment_method_view.xml (+0/-39)
base_sale_multichannels/product.py (+0/-152)
base_sale_multichannels/sale.py (+0/-971)
base_sale_multichannels/sale_view.xml (+0/-221)
base_sale_multichannels/security/ir.model.access.csv (+0/-18)
base_sale_multichannels/settings/external.referential.category.csv (+0/-2)
base_sale_multichannels/settings/sale.exception.csv (+0/-12)
base_sale_multichannels/stock.py (+0/-46)
base_sale_multichannels/stock_view.xml (+0/-16)
base_sale_multichannels/wizard/__init__.py (+0/-23)
base_sale_multichannels/wizard/import_order.py (+0/-42)
base_sale_multichannels/wizard/import_order.xml (+0/-35)
base_sale_report_synchronizer/__init__.py (+0/-22)
base_sale_report_synchronizer/__openerp__.py (+0/-47)
base_sale_report_synchronizer/sale.py (+0/-31)
base_sale_report_synchronizer/sale_view.xml (+0/-21)
product_custom_attributes_shop/__init__.py (+0/-29)
product_custom_attributes_shop/__openerp__.py (+0/-52)
product_custom_attributes_shop/product.py (+0/-113)
product_custom_attributes_shop/product_attribute.py (+0/-40)
product_custom_attributes_shop/product_attribute_view.xml (+0/-42)
product_custom_attributes_shop/sale.py (+0/-77)
product_custom_attributes_shop/sale_view.xml (+0/-43)
product_custom_attributes_shop/security/ir.model.access.csv (+0/-4)
product_images_sync/__init__.py (+0/-23)
product_images_sync/__openerp__.py (+0/-47)
product_images_sync/product_images_sync.py (+0/-62)
To merge this branch: bzr merge lp:~camptocamp/e-commerce-addons/7.0-remove-dead-modules
Reviewer Review Type Date Requested Status
Yannick Vaucher @ Camptocamp Approve
Joël Grand-Guillaume @ camptocamp code review, no tests Approve
Sébastien BEAU - http://www.akretion.com Approve
Review via email: mp+201743@code.launchpad.net

Description of the change

I propose to remove the module base_sale_multichannels.
I also removed all the modules having a dependency on it.

To post a comment you must log in.
Revision history for this message
Sébastien BEAU - http://www.akretion.com (sebastien.beau) wrote :

Good Idea

review: Approve
Revision history for this message
Joël Grand-Guillaume @ camptocamp (jgrandguillaume-c2c) wrote :

Hi,

I also in favor of that removal !

Regards

review: Approve (code review, no tests)
Revision history for this message
Yannick Vaucher @ Camptocamp (yvaucher-c2c) wrote :

LGTM

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== removed directory 'base_sale_export_partner'
2=== removed file 'base_sale_export_partner/__init__.py'
3--- base_sale_export_partner/__init__.py 2012-09-20 17:52:17 +0000
4+++ base_sale_export_partner/__init__.py 1970-01-01 00:00:00 +0000
5@@ -1,23 +0,0 @@
6-# -*- encoding: utf-8 -*-
7-##############################################################################
8-#
9-# Base sale export partner module for OpenERP
10-# Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
11-# @author Alexis de Lattre <alexis.delattre@akretion.com>
12-#
13-# This program is free software: you can redistribute it and/or modify
14-# it under the terms of the GNU Affero General Public License as
15-# published by the Free Software Foundation, either version 3 of the
16-# License, or (at your option) any later version.
17-#
18-# This program is distributed in the hope that it will be useful,
19-# but WITHOUT ANY WARRANTY; without even the implied warranty of
20-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21-# GNU Affero General Public License for more details.
22-#
23-# You should have received a copy of the GNU Affero General Public License
24-# along with this program. If not, see <http://www.gnu.org/licenses/>.
25-#
26-##############################################################################
27-
28-import wizard
29
30=== removed file 'base_sale_export_partner/__openerp__.py'
31--- base_sale_export_partner/__openerp__.py 2012-12-26 13:24:14 +0000
32+++ base_sale_export_partner/__openerp__.py 1970-01-01 00:00:00 +0000
33@@ -1,41 +0,0 @@
34-# -*- encoding: utf-8 -*-
35-##############################################################################
36-#
37-# Base sale export partner module for OpenERP
38-# Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
39-# @author Alexis de Lattre <alexis.delattre@akretion.com>
40-#
41-# This program is free software: you can redistribute it and/or modify
42-# it under the terms of the GNU Affero General Public License as
43-# published by the Free Software Foundation, either version 3 of the
44-# License, or (at your option) any later version.
45-#
46-# This program is distributed in the hope that it will be useful,
47-# but WITHOUT ANY WARRANTY; without even the implied warranty of
48-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
49-# GNU Affero General Public License for more details.
50-#
51-# You should have received a copy of the GNU Affero General Public License
52-# along with this program. If not, see <http://www.gnu.org/licenses/>.
53-#
54-##############################################################################
55-
56-
57-{
58- 'name': 'Base sale multichannels - Export partners',
59- 'version': '6.1.0',
60- 'category': 'Sales Management',
61- 'license': 'AGPL-3',
62- 'description': """This module contains a wizard to export one or several partners "manually" to an external shop such as a Magento shop, a PrestaShop boutique, Amazon or eBay.
63- """,
64- 'author': 'Akretion',
65- 'website': 'http://www.akretion.com',
66- 'depends': ['base_sale_multichannels'],
67- 'init_xml': [],
68- 'update_xml': [
69- 'wizard/export_partner.xml',
70- ],
71- 'demo_xml': [],
72- 'installable': False,
73- 'active': False,
74-}
75
76=== removed directory 'base_sale_export_partner/wizard'
77=== removed file 'base_sale_export_partner/wizard/__init__.py'
78--- base_sale_export_partner/wizard/__init__.py 2012-09-20 17:52:17 +0000
79+++ base_sale_export_partner/wizard/__init__.py 1970-01-01 00:00:00 +0000
80@@ -1,23 +0,0 @@
81-# -*- encoding: utf-8 -*-
82-##############################################################################
83-#
84-# Base sale export partner module for OpenERP
85-# Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
86-# @author Alexis de Lattre <alexis.delattre@akretion.com>
87-#
88-# This program is free software: you can redistribute it and/or modify
89-# it under the terms of the GNU Affero General Public License as
90-# published by the Free Software Foundation, either version 3 of the
91-# License, or (at your option) any later version.
92-#
93-# This program is distributed in the hope that it will be useful,
94-# but WITHOUT ANY WARRANTY; without even the implied warranty of
95-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
96-# GNU Affero General Public License for more details.
97-#
98-# You should have received a copy of the GNU Affero General Public License
99-# along with this program. If not, see <http://www.gnu.org/licenses/>.
100-#
101-##############################################################################
102-
103-import export_partner
104
105=== removed file 'base_sale_export_partner/wizard/export_partner.py'
106--- base_sale_export_partner/wizard/export_partner.py 2012-12-07 12:44:57 +0000
107+++ base_sale_export_partner/wizard/export_partner.py 1970-01-01 00:00:00 +0000
108@@ -1,65 +0,0 @@
109-# -*- coding: utf-8 -*-
110-##############################################################################
111-#
112-# Base sale export partner module for OpenERP
113-# Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
114-# @author Alexis de Lattre <alexis.delattre@akretion.com>
115-#
116-# This program is free software: you can redistribute it and/or modify
117-# it under the terms of the GNU Affero General Public License as
118-# published by the Free Software Foundation, either version 3 of the
119-# License, or (at your option) any later version.
120-#
121-# This program is distributed in the hope that it will be useful,
122-# but WITHOUT ANY WARRANTY; without even the implied warranty of
123-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
124-# GNU Affero General Public License for more details.
125-#
126-# You should have received a copy of the GNU Affero General Public License
127-# along with this program. If not, see <http://www.gnu.org/licenses/>.
128-#
129-##############################################################################
130-
131-
132-from openerp.osv.orm import TransientModel
133-from openerp.osv import fields
134-from openerp.osv.osv import except_osv
135-from openerp.tools.translate import _
136-from base_external_referentials.external_osv import ExternalSession
137-
138-class partner_export_wizard(TransientModel):
139- _name = 'partner.export.wizard'
140- _description = 'partner export wizard'
141-
142-
143- _columns = {
144- 'shop': fields.many2many('sale.shop', 'shop_partner_rel', 'shop_id', 'partner_id', 'Shop', required=True),
145- }
146-
147-
148- def export_partner(self, cr, uid, id, context=None):
149- if context is None:
150- context = {}
151- shop_ids = self.read(cr, uid, id, context=context)[0]['shop']
152- sale_shop_obj = self.pool.get('sale.shop')
153- partner_obj = self.pool.get('res.partner')
154- addr_obj = self.pool.get('res.partner.address')
155- partner_ids = context.get('active_ids')
156- if not partner_ids:
157- # This should never happen
158- raise osv.except_osv(_('User Error'), 'No partner selected!')
159-
160- for shop in sale_shop_obj.browse(cr, uid, shop_ids, context=context):
161- if not shop.referential_id:
162- raise except_osv(_("User Error"), _("The shop '%s' doesn't have any external referential. Are you sure that it's an external sale shop? If yes, synchronize it before exporting partners." % shop.name))
163- external_session = ExternalSession(shop.referential_id, shop)
164- context = self.pool.get('sale.shop').init_context_before_exporting_resource(cr, uid, external_session, shop.id, 'res.partner', context=context)
165- for partner in partner_obj.read(cr, uid, partner_ids, ['address'], context=context):
166- partner_obj._export_one_resource(cr, uid, external_session, partner['id'], context=context)
167- partner_obj.write(cr, uid, partner['id'], {
168- 'shop_ids': [(4, shop.id)],
169- }, context=context)
170- for address_id in partner['address']:
171- addr_obj._export_one_resource(cr, uid, external_session, address_id, context=context)
172- return {'type': 'ir.actions.act_window_close'}
173-
174
175=== removed file 'base_sale_export_partner/wizard/export_partner.xml'
176--- base_sale_export_partner/wizard/export_partner.xml 2012-09-20 17:52:17 +0000
177+++ base_sale_export_partner/wizard/export_partner.xml 1970-01-01 00:00:00 +0000
178@@ -1,38 +0,0 @@
179-<?xml version="1.0" encoding="utf-8"?>
180-<openerp>
181-<data>
182-
183-
184-<record id="partner_export_wizard_form" model="ir.ui.view">
185- <field name="name">partner.export.wizard.form</field>
186- <field name="model">partner.export.wizard</field>
187- <field name="type">form</field>
188- <field name="arch" type="xml">
189- <form>
190- <label string="Select the shops to export to:" colspan="4"/>
191- <field name="shop" nolabel="1" colspan="4"/>
192- <button icon="gtk-cancel" special="cancel" string="Cancel" colspan="2"/>
193- <button icon="gtk-ok" name="export_partner" string="Export Partner" type="object" colspan="2"/>
194- </form>
195- </field>
196-</record>
197-
198-<record id="action_partner_export_wizard" model="ir.actions.act_window">
199- <field name="name">Export Partner</field>
200- <field name="res_model">partner.export.wizard</field>
201- <field name="view_type">form</field>
202- <field name="view_mode">form</field>
203- <field name="target">new</field>
204-</record>
205-
206-<record id="ir_values_partner_export_wizard" model="ir.values">
207- <field name="key2">client_action_multi</field>
208- <field name="model">res.partner</field>
209- <field name="name">Export Partner</field>
210- <field name="value" eval="'ir.actions.act_window,%d'%action_partner_export_wizard"/>
211- <field name="object" eval="True"/>
212-</record>
213-
214-
215-</data>
216-</openerp>
217
218=== removed directory 'base_sale_export_product'
219=== removed file 'base_sale_export_product/__init__.py'
220--- base_sale_export_product/__init__.py 2012-09-20 17:52:17 +0000
221+++ base_sale_export_product/__init__.py 1970-01-01 00:00:00 +0000
222@@ -1,23 +0,0 @@
223-# -*- encoding: utf-8 -*-
224-##############################################################################
225-#
226-# Base sale export product module for OpenERP
227-# Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
228-# @author Alexis de Lattre <alexis.delattre@akretion.com>
229-#
230-# This program is free software: you can redistribute it and/or modify
231-# it under the terms of the GNU Affero General Public License as
232-# published by the Free Software Foundation, either version 3 of the
233-# License, or (at your option) any later version.
234-#
235-# This program is distributed in the hope that it will be useful,
236-# but WITHOUT ANY WARRANTY; without even the implied warranty of
237-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
238-# GNU Affero General Public License for more details.
239-#
240-# You should have received a copy of the GNU Affero General Public License
241-# along with this program. If not, see <http://www.gnu.org/licenses/>.
242-#
243-##############################################################################
244-
245-import wizard
246
247=== removed file 'base_sale_export_product/__openerp__.py'
248--- base_sale_export_product/__openerp__.py 2012-12-26 13:24:14 +0000
249+++ base_sale_export_product/__openerp__.py 1970-01-01 00:00:00 +0000
250@@ -1,41 +0,0 @@
251-# -*- encoding: utf-8 -*-
252-##############################################################################
253-#
254-# Base sale export product module for OpenERP
255-# Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
256-# @author Alexis de Lattre <alexis.delattre@akretion.com>
257-#
258-# This program is free software: you can redistribute it and/or modify
259-# it under the terms of the GNU Affero General Public License as
260-# published by the Free Software Foundation, either version 3 of the
261-# License, or (at your option) any later version.
262-#
263-# This program is distributed in the hope that it will be useful,
264-# but WITHOUT ANY WARRANTY; without even the implied warranty of
265-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
266-# GNU Affero General Public License for more details.
267-#
268-# You should have received a copy of the GNU Affero General Public License
269-# along with this program. If not, see <http://www.gnu.org/licenses/>.
270-#
271-##############################################################################
272-
273-
274-{
275- 'name': 'Base sale multichannels - Export products',
276- 'version': '6.1.0',
277- 'category': 'Sales Management',
278- 'license': 'AGPL-3',
279- 'description': """This module contains a wizard to export one or several products "manually" to an external shop such as a Magento shop, a PrestaShop boutique, Amazon or eBay.
280- """,
281- 'author': 'Akretion',
282- 'website': 'http://www.akretion.com',
283- 'depends': ['base_sale_multichannels'],
284- 'init_xml': [],
285- 'update_xml': [
286- 'wizard/export_product.xml',
287- ],
288- 'demo_xml': [],
289- 'installable': False,
290- 'active': False,
291-}
292
293=== removed directory 'base_sale_export_product/wizard'
294=== removed file 'base_sale_export_product/wizard/__init__.py'
295--- base_sale_export_product/wizard/__init__.py 2012-09-20 17:52:17 +0000
296+++ base_sale_export_product/wizard/__init__.py 1970-01-01 00:00:00 +0000
297@@ -1,23 +0,0 @@
298-# -*- encoding: utf-8 -*-
299-##############################################################################
300-#
301-# Base sale export product module for OpenERP
302-# Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
303-# @author Alexis de Lattre <alexis.delattre@akretion.com>
304-#
305-# This program is free software: you can redistribute it and/or modify
306-# it under the terms of the GNU Affero General Public License as
307-# published by the Free Software Foundation, either version 3 of the
308-# License, or (at your option) any later version.
309-#
310-# This program is distributed in the hope that it will be useful,
311-# but WITHOUT ANY WARRANTY; without even the implied warranty of
312-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
313-# GNU Affero General Public License for more details.
314-#
315-# You should have received a copy of the GNU Affero General Public License
316-# along with this program. If not, see <http://www.gnu.org/licenses/>.
317-#
318-##############################################################################
319-
320-import export_product
321
322=== removed file 'base_sale_export_product/wizard/export_product.py'
323--- base_sale_export_product/wizard/export_product.py 2012-12-07 12:44:57 +0000
324+++ base_sale_export_product/wizard/export_product.py 1970-01-01 00:00:00 +0000
325@@ -1,91 +0,0 @@
326-# -*- coding: utf-8 -*-
327-##############################################################################
328-#
329-# Base sale export product module for OpenERP
330-# Copyright (C) 2010-2012 Sébastien BEAU <sebastien.beau@akretion.com>
331-#
332-# This program is free software: you can redistribute it and/or modify
333-# it under the terms of the GNU Affero General Public License as
334-# published by the Free Software Foundation, either version 3 of the
335-# License, or (at your option) any later version.
336-#
337-# This program is distributed in the hope that it will be useful,
338-# but WITHOUT ANY WARRANTY; without even the implied warranty of
339-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
340-# GNU Affero General Public License for more details.
341-#
342-# You should have received a copy of the GNU Affero General Public License
343-# along with this program. If not, see <http://www.gnu.org/licenses/>.
344-#
345-##############################################################################
346-
347-
348-from openerp.osv.orm import TransientModel
349-from openerp.osv import fields
350-from openerp.osv.osv import except_osv
351-from openerp.tools.translate import _
352-from base_external_referentials.external_osv import ExternalSession
353-
354-class product_export_wizard(TransientModel):
355- _name = 'product.export.wizard'
356- _description = 'product export wizard'
357-
358- _columns = {
359- 'shop': fields.many2many('sale.shop', 'shop_rel', 'shop_id', 'product_id', 'Shop', required=True),
360- }
361-
362- def _export_one_product(self, cr, uid, external_session, product_id, options, context=None):
363- product_obj = self.pool.get('product.product')
364- if 'export_product' in options:
365- product_obj._export_one_resource(cr, uid, external_session, product_id, context=context)
366- if 'export_inventory' in options:
367- product_obj.export_inventory(cr, uid, external_session, [product_id], context=context)
368- if 'export_image' in options:
369- product_obj.export_product_images(cr, uid, external_session, [product_id], context=context)
370- return True
371-
372- def export(self, cr, uid, id, options, context=None):
373- if context is None:
374- context={}
375- shop_ids = self.read(cr, uid, id, context=context)[0]['shop']
376- sale_shop_obj = self.pool.get('sale.shop')
377- product_obj = self.pool.get('product.product')
378- product_ids = context['active_ids']
379-
380- for shop in sale_shop_obj.browse(cr, uid, shop_ids, context=context):
381- if not shop.referential_id:
382- raise except_osv(_("User Error"),
383- _("The shop '%s' doesn't have any external "
384- "referential are you sure that it's an external sale shop? "
385- "If yes syncronize it before exporting product")%(shop.name,))
386- external_session = ExternalSession(shop.referential_id, shop)
387- context = sale_shop_obj.init_context_before_exporting_resource(cr, uid, external_session, shop.id, 'product.product', context=context)
388- none_exportable_product = set(product_ids) - set([product.id for product in shop.exportable_product_ids])
389- if none_exportable_product:
390- products = ', '.join([x['name'] for x in product_obj.read(cr, uid, list(none_exportable_product), fields = ['name'], context=context)])
391- raise except_osv(_("User Error"),
392- _("The product '%s' can not be exported to the shop '%s'. \n"
393- "Please check : \n"
394- " - if they are in the root category \n"
395- " - if the website option is correctly configured. \n"
396- " - if the check box to export the product to the shop is checked")%(products, shop.name))
397- for product_id in product_ids:
398- self._export_one_product(cr, uid, external_session, product_id, options, context=context)
399- return {'type': 'ir.actions.act_window_close'}
400-
401- def export_product(self, cr, uid, id, context=None):
402- return self.export(cr, uid, id, ['export_product'], context)
403-
404- def export_inventory(self, cr, uid, id, context=None):
405- return self.export(
406- cr, uid, id, ['export_inventory'], context)
407-
408- def export_image(self, cr, uid, id, context=None):
409- return self.export(
410- cr, uid, id, ['export_image'], context)
411-
412- def _get_all_options(self, cr, uid, context=None):
413- return ['export_product', 'export_inventory', 'export_image']
414-
415- def export_all(self, cr, uid, id, context=None):
416- return self.export(cr, uid, id, self._get_all_options(cr, uid, context=context), context)
417
418=== removed file 'base_sale_export_product/wizard/export_product.xml'
419--- base_sale_export_product/wizard/export_product.xml 2012-09-20 17:52:17 +0000
420+++ base_sale_export_product/wizard/export_product.xml 1970-01-01 00:00:00 +0000
421@@ -1,39 +0,0 @@
422-<?xml version="1.0" encoding="utf-8"?>
423-<openerp>
424- <data>
425-
426- <record model="ir.ui.view" id="product_export_wizard_view">
427- <field name="name">product.export.wizard.view</field>
428- <field name="model">product.export.wizard</field>
429- <field name="type">form</field>
430- <field name="arch" type="xml">
431- <form string="Select the shops to export to">
432- <label string="Select the shops to export to:" colspan="4"/>
433- <field name="shop" nolabel="1" colspan="4"/>
434- <button icon="gtk-cancel" special="cancel" string="Cancel"/>
435- <button icon="gtk-ok" name="export_product" string="Export Product" type="object"/>
436- <button icon="gtk-ok" name="export_inventory" string="Export Stock" type="object"/>
437- <button icon="gtk-ok" name="export_image" string="Export Image" type="object"/>
438- <button icon="gtk-ok" name="export_all" string="Export All" type="object"/>
439- </form>
440- </field>
441- </record>
442-
443- <record id="action_product_export_wizard" model="ir.actions.act_window">
444- <field name="name">Export Product</field>
445- <field name="res_model">product.export.wizard</field>
446- <field name="view_type">form</field>
447- <field name="view_mode">form</field>
448- <field name="target">new</field>
449- <field name="context">{}</field>
450- </record>
451-
452- <record id="ir_action_export_product_wizard" model="ir.values">
453- <field name="key2">client_action_multi</field>
454- <field name="model">product.product</field>
455- <field name="name">Export Product</field>
456- <field eval="'ir.actions.act_window,%d'%action_product_export_wizard" name="value"/>
457- <field eval="True" name="object"/>
458- </record>
459- </data>
460-</openerp>
461
462=== removed directory 'base_sale_multichannels'
463=== removed file 'base_sale_multichannels/__init__.py'
464--- base_sale_multichannels/__init__.py 2012-08-21 13:57:44 +0000
465+++ base_sale_multichannels/__init__.py 1970-01-01 00:00:00 +0000
466@@ -1,34 +0,0 @@
467-# -*- encoding: utf-8 -*-
468-##############################################################################
469-#
470-# OpenERP, Open Source Management Solution
471-# Copyright (C) 2009 Akretion (<http://www.akretion.com>). All Rights Reserved
472-# authors: Raphaël Valyi, Sharoon Thomas
473-#
474-# This program is free software: you can redistribute it and/or modify
475-# it under the terms of the GNU General Public License as published by
476-# the Free Software Foundation, either version 3 of the License, or
477-# (at your option) any later version.
478-#
479-# This program is distributed in the hope that it will be useful,
480-# but WITHOUT ANY WARRANTY; without even the implied warranty of
481-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
482-# GNU General Public License for more details.
483-#
484-# You should have received a copy of the GNU General Public License
485-# along with this program. If not, see <http://www.gnu.org/licenses/>.
486-#
487-##############################################################################
488-
489-import sale
490-import stock
491-import wizard
492-import delivery
493-import partner
494-import account
495-import external_referential
496-import product
497-import invoice
498-import payment_method
499-
500-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
501
502=== removed file 'base_sale_multichannels/__openerp__.py'
503--- base_sale_multichannels/__openerp__.py 2012-12-26 13:24:14 +0000
504+++ base_sale_multichannels/__openerp__.py 1970-01-01 00:00:00 +0000
505@@ -1,78 +0,0 @@
506-# -*- encoding: utf-8 -*-
507-##############################################################################
508-#
509-# OpenERP, Open Source Management Solution
510-# Copyright (C) 2009 Akretion (<http://www.akretion.com>). All Rights Reserved
511-# authors: Raphaël Valyi, Sharoon Thomas
512-# Copyright (C) 2010-2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com>
513-# This program is free software: you can redistribute it and/or modify
514-# it under the terms of the GNU General Public License as published by
515-# the Free Software Foundation, either version 3 of the License, or
516-# (at your option) any later version.
517-#
518-# This program is distributed in the hope that it will be useful,
519-# but WITHOUT ANY WARRANTY; without even the implied warranty of
520-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
521-# GNU General Public License for more details.
522-#
523-# You should have received a copy of the GNU General Public License
524-# along with this program. If not, see <http://www.gnu.org/licenses/>.
525-#
526-##############################################################################
527-
528-
529-{
530- 'name': 'Base Sale MultiChannels',
531- 'version': '6.1.2',
532- 'category': 'Generic Modules/Sale',
533- 'description': """
534-This module provide an abstract common minimal base to multi-channels sales.
535-Say you want to expose your product catalog to
536-* several instances of flashy-sluggish Magento web sites
537-* a cutting edge Spree web shop
538-* a Neteven online Marketplace
539-* EBay
540-* Amazon
541-* Google Base
542-* an external Point Of Sale system
543-* ...
544-Then this module allows you to:
545-* use several external references ids on every OpenERP object matching those all those external referentials
546-* per referential instance, use several sale sub platform entities (ex: several Magento websites per instance)
547-* per sub platform, use several shops (ex: several Magento web shops per website)
548-
549-For each sale shop (matching OpenERP sale.shop object), this module abstract the interfaces to:
550-* export the catalog, shop warehouse stock level wise, shop pricelist wise
551-* import the catalog
552-* import orders
553-* export orders/picking status
554- """,
555- 'author': 'Akretion, Sharoon Thomas (Openlabs.co.in)',
556- 'website': 'http://www.akretion.com',
557- 'depends': [
558- 'sale_automatic_workflow',
559- 'sale_exceptions',
560- 'base_external_referentials',
561- 'delivery',
562- 'base_onchange_player',
563- ],
564- 'init_xml': [],
565- 'update_xml': [
566- 'security/ir.model.access.csv',
567- 'sale_view.xml',
568- 'partner_view.xml',
569- 'invoice_view.xml',
570- 'wizard/import_order.xml',
571- 'delivery_view.xml',
572- 'base_sale_data.xml',
573- 'settings/sale.exception.csv',
574- 'settings/external.referential.category.csv',
575- 'stock_view.xml',
576- 'payment_method_view.xml',
577- 'account_view.xml',
578- ],
579- 'demo_xml': [],
580- 'installable': False,
581- 'certificate': '',
582-}
583-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
584
585=== removed file 'base_sale_multichannels/account.py'
586--- base_sale_multichannels/account.py 2012-12-07 12:16:25 +0000
587+++ base_sale_multichannels/account.py 1970-01-01 00:00:00 +0000
588@@ -1,59 +0,0 @@
589-# -*- encoding: utf-8 -*-
590-#################################################################################
591-# #
592-# base_sale_multichannels for OpenERP #
593-# Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com> #
594-# #
595-# This program is free software: you can redistribute it and/or modify #
596-# it under the terms of the GNU Affero General Public License as #
597-# published by the Free Software Foundation, either version 3 of the #
598-# License, or (at your option) any later version. #
599-# #
600-# This program is distributed in the hope that it will be useful, #
601-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
602-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
603-# GNU Affero General Public License for more details. #
604-# #
605-# You should have received a copy of the GNU Affero General Public License #
606-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
607-# #
608-#################################################################################
609-
610-from openerp.osv.orm import Model
611-from openerp.osv import fields
612-
613-class account_tax_code(Model):
614- _inherit='account.tax'
615-
616- def get_tax_from_rate(self, cr, uid, rate, is_tax_included=False, context=None):
617- #TODO improve, if tax are not correctly mapped the order should be in exception (integration with sale_execption)
618- tax_ids = self.pool.get('account.tax').search(cr, uid, [('price_include', '=', is_tax_included),
619- ('type_tax_use', 'in', ['sale', 'all']), ('amount', '>=', rate - 0.001), ('amount', '<=', rate + 0.001)])
620- if tax_ids and len(tax_ids) > 0:
621- return tax_ids[0]
622- else:
623- #try to find a tax with less precision
624- tax_ids = self.pool.get('account.tax').search(cr, uid, [('price_include', '=', is_tax_included),
625- ('type_tax_use', 'in', ['sale', 'all']), ('amount', '>=', rate - 0.01), ('amount', '<=', rate + 0.01)])
626- if tax_ids and len(tax_ids) > 0:
627- return tax_ids[0]
628- return False
629-
630-class account_tax_group(Model):
631- _name = 'account.tax.group'
632- _description = 'account tax group'
633-
634- _columns = {
635- 'name': fields.char('Name', size=64),
636- 'tax_ids': fields.one2many('account.tax', 'group_id', 'Taxes'),
637- }
638-
639-class account_tax(Model):
640- _inherit = 'account.tax'
641-
642- _columns = {
643- 'group_id': fields.many2one('account.tax.group', 'Tax Group', help=("Choose the tax group."
644- " This is needed for example with magento or prestashop")),
645- }
646-
647-
648
649=== removed file 'base_sale_multichannels/account_view.xml'
650--- base_sale_multichannels/account_view.xml 2012-10-25 17:28:02 +0000
651+++ base_sale_multichannels/account_view.xml 1970-01-01 00:00:00 +0000
652@@ -1,52 +0,0 @@
653-<?xml version="1.0" encoding="utf-8"?>
654-<openerp>
655- <data>
656-
657- <record id="view_tax_form" model="ir.ui.view">
658- <field name="name">base_sale_multichannels.view_tax_form</field>
659- <field name="model">account.tax</field>
660- <field name="inherit_id" ref="account.view_tax_form" />
661- <field name="type">form</field>
662- <field name="arch" type="xml">
663- <field name="active" position="after">
664- <field name="group_id"/>
665- </field>
666- </field>
667- </record>
668-
669-
670- <record id="view_tax_group_tree" model="ir.ui.view">
671- <field name="name">account.tax.group</field>
672- <field name="model">account.tax.group</field>
673- <field name="type">tree</field>
674- <field name="arch" type="xml">
675- <tree string="Account Tax Group">
676- <field name="name"/>
677- <field name="tax_ids"/>
678- </tree>
679- </field>
680- </record>
681-
682- <record id="view_tax_group_form" model="ir.ui.view">
683- <field name="name">account.tax.group</field>
684- <field name="model">account.tax.group</field>
685- <field name="type">form</field>
686- <field name="arch" type="xml">
687- <form string="Account Tax Group">
688- <field name="name" colspan="4"/>
689- <field name="tax_ids" colspan="4"/>
690- </form>
691- </field>
692- </record>
693-
694- <record id="action_tax_group_form" model="ir.actions.act_window">
695- <field name="name">Tax Groups</field>
696- <field name="res_model">account.tax.group</field>
697- <field name="view_type">form</field>
698- <field name="view_mode">tree,form</field>
699- </record>
700-
701- <menuitem action="action_tax_group_form" id="menu_action_tax_group_form" parent="account.next_id_27"/>
702-
703- </data>
704-</openerp>
705
706=== removed file 'base_sale_multichannels/base_sale_data.xml'
707--- base_sale_multichannels/base_sale_data.xml 2012-09-06 12:34:40 +0000
708+++ base_sale_multichannels/base_sale_data.xml 1970-01-01 00:00:00 +0000
709@@ -1,46 +0,0 @@
710-<?xml version="1.0" encoding="utf-8"?>
711-<openerp>
712- <data noupdate="1">
713-
714- <record id="product_categ_services" model="product.category">
715- <field name="name">Services</field>
716- </record>
717-
718- <record id="product_product_shipping" model="product.product">
719- <field name="default_code">SHIP</field>
720- <field name="list_price">0.0</field>
721- <field name="standard_price">0.0</field>
722- <field name="type">service</field>
723- <field name="name">Shipping costs</field>
724- <field name="categ_id" ref="product_categ_services"/>
725- </record>
726-
727- <record id="product_product_cash_on_delivery" model="product.product">
728- <field name="default_code">CASH ON DELIVERY</field>
729- <field name="list_price">0.0</field>
730- <field name="standard_price">0.0</field>
731- <field name="type">service</field>
732- <field name="name">Cash on delivery</field>
733- <field name="categ_id" ref="product_categ_services"/>
734- </record>
735-
736- <record id="product_product_gift" model="product.product">
737- <field name="default_code">GIFT CERTIFICATE</field>
738- <field name="list_price">0.0</field>
739- <field name="standard_price">0.0</field>
740- <field name="type">service</field>
741- <field name="name">Gift Certificate</field>
742- <field name="categ_id" ref="product_categ_services"/>
743- </record>
744-
745- <record id="product_product_discount" model="product.product">
746- <field name="default_code">DISCOUNT</field>
747- <field name="list_price">0.0</field>
748- <field name="standard_price">0.0</field>
749- <field name="type">service</field>
750- <field name="name">Discount Coupon</field>
751- <field name="categ_id" ref="product_categ_services"/>
752- </record>
753-
754- </data>
755-</openerp>
756
757=== removed file 'base_sale_multichannels/connector.py'
758--- base_sale_multichannels/connector.py 2012-08-22 16:31:16 +0000
759+++ base_sale_multichannels/connector.py 1970-01-01 00:00:00 +0000
760@@ -1,37 +0,0 @@
761-# -*- encoding: utf-8 -*-
762-###############################################################################
763-# #
764-# product_custom_attributes for OpenERP #
765-# Copyright (C) 2012 Camptocamp Alexandre Fayolle <alexandre.fayolle@camptocamp.com> #
766-# Copyright (C) 2012 Akretion Sebastien Beau <sebastien.beau@akretion.com> #
767-# #
768-# This program is free software: you can redistribute it and/or modify #
769-# it under the terms of the GNU Affero General Public License as #
770-# published by the Free Software Foundation, either version 3 of the #
771-# License, or (at your option) any later version. #
772-# #
773-# This program is distributed in the hope that it will be useful, #
774-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
775-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
776-# GNU Affero General Public License for more details. #
777-# #
778-# You should have received a copy of the GNU Affero General Public License #
779-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
780-# #
781-###############################################################################
782-
783-from base_external_referentials.connector import AbstractConnector
784-
785-class BaseConnector(AbstractConnector):
786- def _get_import_defaults_res_partner(self, cr, uid, context=None):
787- pass
788- def _get_import_defaults_res_partner(self, cr, uid, context=None):
789- pass
790- def _get_import_defaults_external_shop_group(self, cr, uid, context=None):
791- pass
792-
793- def _get_import_defaults_sale_order(self, cr, uid, context=None):
794- pass
795-
796- def _record_one_sale_order(self, cr, uid, res_obj, resource, defaults, context):
797- pass
798
799=== removed file 'base_sale_multichannels/delivery.py'
800--- base_sale_multichannels/delivery.py 2012-08-21 13:57:44 +0000
801+++ base_sale_multichannels/delivery.py 1970-01-01 00:00:00 +0000
802@@ -1,29 +0,0 @@
803-# -*- encoding: utf-8 -*-
804-##############################################################################
805-#
806-# Author Guewen Baconnier. Copyright 2011 Camptocamp SA
807-#
808-# This program is free software: you can redistribute it and/or modify
809-# it under the terms of the GNU General Public License as published by
810-# the Free Software Foundation, either version 3 of the License, or
811-# (at your option) any later version.
812-#
813-# This program is distributed in the hope that it will be useful,
814-# but WITHOUT ANY WARRANTY; without even the implied warranty of
815-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
816-# GNU General Public License for more details.
817-#
818-# You should have received a copy of the GNU General Public License
819-# along with this program. If not, see <http://www.gnu.org/licenses/>.
820-#
821-##############################################################################
822-
823-from openerp.osv.orm import Model
824-from openerp.osv import fields
825-
826-class delivery_carrier(Model):
827- _inherit = "delivery.carrier"
828-
829- _columns = {
830- 'export_needs_tracking': fields.boolean('Export only shippings with a tracking number'),
831- }
832
833=== removed file 'base_sale_multichannels/delivery_view.xml'
834--- base_sale_multichannels/delivery_view.xml 2011-07-14 14:37:48 +0000
835+++ base_sale_multichannels/delivery_view.xml 1970-01-01 00:00:00 +0000
836@@ -1,20 +0,0 @@
837-<?xml version="1.0" encoding="utf-8"?>
838-<openerp>
839- <data>
840-
841- <record id="view_delivery_carrier_form_inherit" model="ir.ui.view">
842- <field name="name">delivery.carrier.form.inherit</field>
843- <field name="model">delivery.carrier</field>
844- <field name="inherit_id" ref="delivery.view_delivery_carrier_form" />
845- <field name="type">form</field>
846- <field name="arch" type="xml">
847- <data>
848- <field name="product_id" position="after">
849- <field name="export_needs_tracking"/>
850- </field>
851- </data>
852- </field>
853- </record>
854-
855- </data>
856-</openerp>
857
858=== removed file 'base_sale_multichannels/external_referential.py'
859--- base_sale_multichannels/external_referential.py 2012-10-23 10:21:28 +0000
860+++ base_sale_multichannels/external_referential.py 1970-01-01 00:00:00 +0000
861@@ -1,83 +0,0 @@
862-# -*- encoding: utf-8 -*-
863-###############################################################################
864-# #
865-# base_sale_multichannels for OpenERP #
866-# Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com> #
867-# #
868-# This program is free software: you can redistribute it and/or modify #
869-# it under the terms of the GNU Affero General Public License as #
870-# published by the Free Software Foundation, either version 3 of the #
871-# License, or (at your option) any later version. #
872-# #
873-# This program is distributed in the hope that it will be useful, #
874-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
875-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
876-# GNU Affero General Public License for more details. #
877-# #
878-# You should have received a copy of the GNU Affero General Public License #
879-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
880-# #
881-###############################################################################
882-from openerp.osv.orm import Model
883-from openerp.osv import fields
884-
885-
886-class external_referential(Model):
887- _inherit = "external.referential"
888-
889- _columns = {
890- 'last_imported_product_id': fields.integer('Last Imported Product Id',
891- help=("Product are imported one by one."
892- "This is the magento id of the last product imported."
893- "If you clear it all product will be imported")),
894- 'last_imported_partner_id': fields.integer('Last Imported Partner Id',
895- help=("Partners are imported one by one."
896- "This is the magento id of the last partner imported."
897- "If you clear it all partners will be imported")),
898- 'import_all_attributs': fields.boolean('Import all attributs',
899- help=("If the option is uncheck only the attributs"
900- "that doesn't exist in OpenERP will be imported")),
901- 'import_image_with_product': fields.boolean('With image',
902- help=("If the option is check the product's image and"
903- "the product will be imported at the same time and"
904- "so the step '7-import images' is not needed")),
905- 'import_links_with_product': fields.boolean('With links',
906- help=("If the option is check the product's links"
907- "(Up-Sell, Cross-Sell, Related) and the product will be imported"
908- "at the same time and so the step '8-import links' is not needed")),
909- }
910-
911- def import_customer_groups(self, cr, uid, ids, context=None):
912- self.import_resources(cr, uid, ids, 'res.partner.category', context=context)
913- return True
914-
915- def import_product_categories(self, cr, uid, ids, context=None):
916- self.import_resources(cr, uid, ids, 'product.category', context=context)
917- return True
918-
919- def import_customers(self, cr, uid, ids, context=None):
920- self.import_resources(cr, uid, ids, 'res.partner', context=context)
921- return True
922-
923-# def import_product_attributes_sets(self, cr, uid, ids, context=None):
924-# return self.import_resources(cr, uid, ids, 'TODO', context=context)
925-#
926-# def import_product_attributes_groups(self, cr, uid, ids, context=None):
927-# return self.import_resources(cr, uid, ids, 'TODO', context=context)
928-#
929-# def import_product_attributes(self, cr, uid, ids, context=None):
930-# return self.import_resources(cr, uid, ids, 'TODO', context=context)
931-
932- def import_products(self, cr, uid, ids, context=None):
933- self.import_resources(cr, uid, ids, 'product.product', context=context)
934- return True
935-
936- def import_product_links(self, cr, uid, ids, context=None):
937- self.import_resources(cr, uid, ids, 'product.link', context=context)
938- return True
939-
940-
941-
942-
943-
944-
945
946=== removed directory 'base_sale_multichannels/i18n'
947=== removed file 'base_sale_multichannels/i18n/base_sale_multichannels.pot'
948--- base_sale_multichannels/i18n/base_sale_multichannels.pot 2010-08-26 01:14:26 +0000
949+++ base_sale_multichannels/i18n/base_sale_multichannels.pot 1970-01-01 00:00:00 +0000
950@@ -1,306 +0,0 @@
951-# Translation of OpenERP Server.
952-# This file contains the translation of the following modules:
953-# * base_sale_multichannels
954-#
955-msgid ""
956-msgstr ""
957-"Project-Id-Version: OpenERP Server 5.0.6\n"
958-"Report-Msgid-Bugs-To: support@openerp.com\n"
959-"POT-Creation-Date: 2009-12-20 17:22:08+0000\n"
960-"PO-Revision-Date: 2009-12-20 17:22:08+0000\n"
961-"Last-Translator: <>\n"
962-"Language-Team: \n"
963-"MIME-Version: 1.0\n"
964-"Content-Type: text/plain; charset=UTF-8\n"
965-"Content-Transfer-Encoding: \n"
966-"Plural-Forms: \n"
967-
968-#. module: base_sale_multichannels
969-#: selection:sale.shop,picking_policy:0
970-msgid "Partial Delivery"
971-msgstr ""
972-
973-#. module: base_sale_multichannels
974-#: constraint:ir.model:0
975-msgid "The Object name must start with x_ and not contain any special character !"
976-msgstr ""
977-
978-#. module: base_sale_multichannels
979-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
980-msgid "\n"
981-"This module provide an abstract common minimal base to multi-channels sales.\n"
982-"Say you want to expose your product catalog to\n"
983-"* several instances of flashy-sluggish Magento web sites\n"
984-"* a cutting edge Spree web shop\n"
985-"* a Neteven online Marketplace\n"
986-"* EBay\n"
987-"* Amazon\n"
988-"* Google Base\n"
989-"* an external Point Of Sale system\n"
990-"* ...\n"
991-"Then this module allows you to:\n"
992-"* use several external references ids on every OpenERP object matching those all those external referentials\n"
993-"* per referential instance, use several sale sub platform entities (ex: several Magento websites per instance)\n"
994-"* per sub platform, use several shops (ex: several Magento web shops per website)\n"
995-"\n"
996-"For each sale shop (matching OpenERP sale.shop object), this module abstract the interfaces to:\n"
997-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
998-"* import the catalog\n"
999-"* import orders\n"
1000-"* export orders/picking status\n"
1001-" "
1002-msgstr ""
1003-
1004-#. module: base_sale_multichannels
1005-#: field:sale.shop,order_policy:0
1006-msgid "Shipping Policy"
1007-msgstr ""
1008-
1009-#. module: base_sale_multichannels
1010-#: selection:sale.shop,invoice_generation_policy:0
1011-#: selection:sale.shop,picking_generation_policy:0
1012-msgid "None"
1013-msgstr ""
1014-
1015-#. module: base_sale_multichannels
1016-#: selection:sale.shop,invoice_quantity:0
1017-msgid "Shipped Quantities"
1018-msgstr ""
1019-
1020-#. module: base_sale_multichannels
1021-#: field:external.shop.group,referential_id:0
1022-msgid "Referential"
1023-msgstr ""
1024-
1025-#. module: base_sale_multichannels
1026-#: selection:sale.shop,invoice_generation_policy:0
1027-#: selection:sale.shop,picking_generation_policy:0
1028-msgid "Draft"
1029-msgstr ""
1030-
1031-#. module: base_sale_multichannels
1032-#: help:sale.shop,invoice_quantity:0
1033-msgid "The sale order will automatically create the invoice proposition (draft invoice). Ordered and delivered quantities may not be the same. You have to choose if you invoice based on ordered or shipped quantities. If the product is a service, shipped quantities means hours spent on the associated tasks."
1034-msgstr ""
1035-
1036-#. module: base_sale_multichannels
1037-#: field:sale.shop,shop_group_id:0
1038-msgid "Shop Group"
1039-msgstr ""
1040-
1041-#. module: base_sale_multichannels
1042-#: field:product.category,recursive_childen_ids:0
1043-msgid "All Child Categories"
1044-msgstr ""
1045-
1046-#. module: base_sale_multichannels
1047-#: view:sale.shop:0
1048-msgid "Update Orders Status"
1049-msgstr ""
1050-
1051-#. module: base_sale_multichannels
1052-#: help:sale.shop,picking_policy:0
1053-msgid "If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"
1054-msgstr ""
1055-
1056-#. module: base_sale_multichannels
1057-#: help:account.journal,external_payment_codes:0
1058-msgid "Enter the external payment codes, comma separated. They will be used to select the payment journal."
1059-msgstr ""
1060-
1061-#. module: base_sale_multichannels
1062-#: field:sale.shop,picking_policy:0
1063-msgid "Packing Policy"
1064-msgstr ""
1065-
1066-#. module: base_sale_multichannels
1067-#: selection:sale.shop,picking_policy:0
1068-msgid "Complete Delivery"
1069-msgstr ""
1070-
1071-#. module: base_sale_multichannels
1072-#: field:sale.shop,invoice_generation_policy:0
1073-msgid "Invoice Generation Policy"
1074-msgstr ""
1075-
1076-#. module: base_sale_multichannels
1077-#: selection:sale.shop,invoice_quantity:0
1078-msgid "Ordered Quantities"
1079-msgstr ""
1080-
1081-#. module: base_sale_multichannels
1082-#: help:sale.shop,is_tax_included:0
1083-msgid "Requires sale_tax_include module to be installed"
1084-msgstr ""
1085-
1086-#. module: base_sale_multichannels
1087-#: view:sale.shop:0
1088-msgid "Catalog"
1089-msgstr ""
1090-
1091-#. module: base_sale_multichannels
1092-#: view:sale.shop:0
1093-msgid "External Shop Settings"
1094-msgstr ""
1095-
1096-#. module: base_sale_multichannels
1097-#: view:sale.shop:0
1098-msgid "Export Catalog"
1099-msgstr ""
1100-
1101-#. module: base_sale_multichannels
1102-#: selection:sale.shop,order_policy:0
1103-msgid "Invoice from the Packing"
1104-msgstr ""
1105-
1106-#. module: base_sale_multichannels
1107-#: view:sale.shop:0
1108-msgid "Order Generation"
1109-msgstr ""
1110-
1111-#. module: base_sale_multichannels
1112-#: field:account.journal,external_payment_codes:0
1113-msgid "External Payment Codes"
1114-msgstr ""
1115-
1116-#. module: base_sale_multichannels
1117-#: selection:sale.shop,order_policy:0
1118-msgid "Invoice on Order After Delivery"
1119-msgstr ""
1120-
1121-#. module: base_sale_multichannels
1122-#: constraint:ir.ui.view:0
1123-msgid "Invalid XML for View Architecture!"
1124-msgstr ""
1125-
1126-#. module: base_sale_multichannels
1127-#: field:external.shop.group,shop_ids:0
1128-msgid "Sale Shops"
1129-msgstr ""
1130-
1131-#. module: base_sale_multichannels
1132-#: field:external.shop.group,name:0
1133-msgid "Name"
1134-msgstr ""
1135-
1136-#. module: base_sale_multichannels
1137-#: field:sale.shop,invoice_quantity:0
1138-msgid "Invoice on"
1139-msgstr ""
1140-
1141-#. module: base_sale_multichannels
1142-#: help:sale.shop,order_policy:0
1143-msgid "The Shipping Policy is used to synchronise invoice and delivery operations.\n"
1144-" - The 'Pay before delivery' choice will first generate the invoice and then generate the packing order after the payment of this invoice.\n"
1145-" - The 'Shipping & Manual Invoice' will create the packing order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice.\n"
1146-" - The 'Invoice on Order After Delivery' choice will generate the draft invoice based on sale order after all packing lists have been finished.\n"
1147-" - The 'Invoice from the packing' choice is used to create an invoice during the packing process."
1148-msgstr ""
1149-
1150-#. module: base_sale_multichannels
1151-#: field:sale.shop,last_inventory_export_date:0
1152-msgid "Last Inventory Export Time"
1153-msgstr ""
1154-
1155-#. module: base_sale_multichannels
1156-#: field:external.referential,shop_group_ids:0
1157-msgid "Sub Entities"
1158-msgstr ""
1159-
1160-#. module: base_sale_multichannels
1161-#: field:sale.shop,referential_id:0
1162-msgid "External Referential"
1163-msgstr ""
1164-
1165-#. module: base_sale_multichannels
1166-#: selection:sale.shop,order_policy:0
1167-msgid "Payment Before Delivery"
1168-msgstr ""
1169-
1170-#. module: base_sale_multichannels
1171-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
1172-msgid "Base Sale MultiChannels"
1173-msgstr ""
1174-
1175-#. module: base_sale_multichannels
1176-#: view:sale.shop:0
1177-#: field:sale.shop,exportable_product_ids:0
1178-msgid "Exportable Products"
1179-msgstr ""
1180-
1181-#. module: base_sale_multichannels
1182-#: view:sale.shop:0
1183-msgid "Import Orders"
1184-msgstr ""
1185-
1186-#. module: base_sale_multichannels
1187-#: field:sale.shop,picking_generation_policy:0
1188-msgid "Picking Generation Policy"
1189-msgstr ""
1190-
1191-#. module: base_sale_multichannels
1192-#: help:sale.shop,invoice_generation_policy:0
1193-msgid "Should orders create an invoice after import?"
1194-msgstr ""
1195-
1196-#. module: base_sale_multichannels
1197-#: field:sale.shop,last_update_order_export_date:0
1198-msgid "Last Order Update Time"
1199-msgstr ""
1200-
1201-#. module: base_sale_multichannels
1202-#: help:sale.shop,picking_generation_policy:0
1203-msgid "Should orders create a picking after import?"
1204-msgstr ""
1205-
1206-#. module: base_sale_multichannels
1207-#: selection:sale.shop,invoice_generation_policy:0
1208-#: selection:sale.shop,picking_generation_policy:0
1209-msgid "Validated"
1210-msgstr ""
1211-
1212-#. module: base_sale_multichannels
1213-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
1214-msgid "External Referential Shop Group"
1215-msgstr ""
1216-
1217-#. module: base_sale_multichannels
1218-#: view:sale.shop:0
1219-msgid "Export Stock Levels Only"
1220-msgstr ""
1221-
1222-#. module: base_sale_multichannels
1223-#: selection:sale.shop,order_policy:0
1224-msgid "Shipping & Manual Invoice"
1225-msgstr ""
1226-
1227-#. module: base_sale_multichannels
1228-#: view:sale.shop:0
1229-msgid "Actions"
1230-msgstr ""
1231-
1232-#. module: base_sale_multichannels
1233-#: field:sale.shop,exportable_root_category_ids:0
1234-msgid "Root Category"
1235-msgstr ""
1236-
1237-#. module: base_sale_multichannels
1238-#: field:sale.shop,is_tax_included:0
1239-msgid "Prices Include Tax?"
1240-msgstr ""
1241-
1242-#. module: base_sale_multichannels
1243-#: view:sale.shop:0
1244-msgid "Sale Shop"
1245-msgstr ""
1246-
1247-#. module: base_sale_multichannels
1248-#: view:sale.shop:0
1249-msgid "Sale Multi Channels"
1250-msgstr ""
1251-
1252-#. module: base_sale_multichannels
1253-#: view:sale.shop:0
1254-msgid "Orders"
1255-msgstr ""
1256-
1257
1258=== removed file 'base_sale_multichannels/i18n/ca.po'
1259--- base_sale_multichannels/i18n/ca.po 2012-02-27 18:49:05 +0000
1260+++ base_sale_multichannels/i18n/ca.po 1970-01-01 00:00:00 +0000
1261@@ -1,380 +0,0 @@
1262-# Translation of OpenERP Server.
1263-# This file contains the translation of the following modules:
1264-# * base_sale_multichannels
1265-#
1266-msgid ""
1267-msgstr ""
1268-"Project-Id-Version: OpenERP Server 5.0.6\n"
1269-"Report-Msgid-Bugs-To: support@openerp.com\n"
1270-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
1271-"PO-Revision-Date: 2011-02-14 10:04+0000\n"
1272-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
1273-"<jesteve@zikzakmedia.com>\n"
1274-"Language-Team: \n"
1275-"MIME-Version: 1.0\n"
1276-"Content-Type: text/plain; charset=UTF-8\n"
1277-"Content-Transfer-Encoding: 8bit\n"
1278-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
1279-"X-Generator: Launchpad (build 14676)\n"
1280-"X-Poedit-Language: Catalan\n"
1281-
1282-#. module: base_sale_multichannels
1283-#: selection:sale.shop,picking_policy:0
1284-msgid "Partial Delivery"
1285-msgstr "Enviament parcial"
1286-
1287-#. module: base_sale_multichannels
1288-#: constraint:ir.model:0
1289-msgid ""
1290-"The Object name must start with x_ and not contain any special character !"
1291-msgstr ""
1292-"El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter "
1293-"especial!"
1294-
1295-#. module: base_sale_multichannels
1296-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
1297-msgid ""
1298-"\n"
1299-"This module provide an abstract common minimal base to multi-channels "
1300-"sales.\n"
1301-"Say you want to expose your product catalog to\n"
1302-"* several instances of flashy-sluggish Magento web sites\n"
1303-"* a cutting edge Spree web shop\n"
1304-"* a Neteven online Marketplace\n"
1305-"* EBay\n"
1306-"* Amazon\n"
1307-"* Google Base\n"
1308-"* an external Point Of Sale system\n"
1309-"* ...\n"
1310-"Then this module allows you to:\n"
1311-"* use several external references ids on every OpenERP object matching those "
1312-"all those external referentials\n"
1313-"* per referential instance, use several sale sub platform entities (ex: "
1314-"several Magento websites per instance)\n"
1315-"* per sub platform, use several shops (ex: several Magento web shops per "
1316-"website)\n"
1317-"\n"
1318-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
1319-"the interfaces to:\n"
1320-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
1321-"* import the catalog\n"
1322-"* import orders\n"
1323-"* export orders/picking status\n"
1324-" "
1325-msgstr ""
1326-"\n"
1327-"Aquest mòdul proporciona una mínima base d'abstracció comuna a diversos "
1328-"canals de vendes.\n"
1329-"Suposem que voleu exposar el vostre catàleg de productes a:\n"
1330-"* Diverses instàncies de botiga web de Magento\n"
1331-"* Una botiga web d'última generació Spree\n"
1332-"* Un mercat Neteven\n"
1333-"* EBay\n"
1334-"* Amazon\n"
1335-"* Google Base\n"
1336-"* Un sistema punt de venda extern\n"
1337-"* ...\n"
1338-"Llavors, aquest mòdul us permet:\n"
1339-"* L'ús de diverses referències externes a tots els identificadors d'objectes "
1340-"OpenERP que apunten a totes aquestes referències externes.\n"
1341-"* Referències per instància, l'ús de diverses sub entitats de vendes (per "
1342-"exemple diversos llocs web Magento per instància)\n"
1343-"* Referències per sub entitat, l'ús de diverses botigues (per exemple "
1344-"diverses botigues web Magento per lloc web)\n"
1345-"\n"
1346-"Per a cada botiga de venda (que es correspondrà a l'objecte sale.shop de "
1347-"OpenERP), aquest mòdul abstreu les interfícies de:\n"
1348-"* Exportar el catàleg, nivell d'estoc del magatzem de la botiga, tarifa de "
1349-"preus de la botiga\n"
1350-"* Importar el catàleg\n"
1351-"* Importar comandes\n"
1352-"* Exportar l'estat de les comandes/albarans\n"
1353-" "
1354-
1355-#. module: base_sale_multichannels
1356-#: field:sale.shop,order_policy:0
1357-msgid "Shipping Policy"
1358-msgstr "Política de facturació"
1359-
1360-#. module: base_sale_multichannels
1361-#: selection:sale.shop,invoice_generation_policy:0
1362-#: selection:sale.shop,picking_generation_policy:0
1363-msgid "None"
1364-msgstr "Cap"
1365-
1366-#. module: base_sale_multichannels
1367-#: selection:sale.shop,invoice_quantity:0
1368-msgid "Shipped Quantities"
1369-msgstr "Quantitats enviades"
1370-
1371-#. module: base_sale_multichannels
1372-#: field:external.shop.group,referential_id:0
1373-msgid "Referential"
1374-msgstr "Referència"
1375-
1376-#. module: base_sale_multichannels
1377-#: selection:sale.shop,invoice_generation_policy:0
1378-#: selection:sale.shop,picking_generation_policy:0
1379-msgid "Draft"
1380-msgstr "Esborrany"
1381-
1382-#. module: base_sale_multichannels
1383-#: help:sale.shop,invoice_quantity:0
1384-msgid ""
1385-"The sale order will automatically create the invoice proposition (draft "
1386-"invoice). Ordered and delivered quantities may not be the same. You have to "
1387-"choose if you invoice based on ordered or shipped quantities. If the product "
1388-"is a service, shipped quantities means hours spent on the associated tasks."
1389-msgstr ""
1390-"La comanda de venda crearà automàticament la proposta de factura (factura "
1391-"esborrany). Les quantitats demanades i les quantitats enviades poden no ser "
1392-"les mateixes. Heu de decidir si factureu basat en quantitats demanades o "
1393-"enviades. Si el producte és un servei, quantitats enviades significa hores "
1394-"dedicades a les tasques associades."
1395-
1396-#. module: base_sale_multichannels
1397-#: field:sale.shop,shop_group_id:0
1398-msgid "Shop Group"
1399-msgstr "Grup botigues"
1400-
1401-#. module: base_sale_multichannels
1402-#: field:product.category,recursive_childen_ids:0
1403-msgid "All Child Categories"
1404-msgstr "Totes categories filles"
1405-
1406-#. module: base_sale_multichannels
1407-#: view:sale.shop:0
1408-msgid "Update Orders Status"
1409-msgstr "Actualitza estat comandes"
1410-
1411-#. module: base_sale_multichannels
1412-#: help:sale.shop,picking_policy:0
1413-msgid ""
1414-"If you don't have enough stock available to deliver all at once, do you "
1415-"accept partial shipments or not?"
1416-msgstr ""
1417-"Si no disposeu de suficient estoc disponible per a enviar-ho tot a la "
1418-"vegada, accepteu enviaments parcials?"
1419-
1420-#. module: base_sale_multichannels
1421-#: help:account.journal,external_payment_codes:0
1422-msgid ""
1423-"Enter the external payment codes, comma separated. They will be used to "
1424-"select the payment journal."
1425-msgstr ""
1426-"Indiqueu els codis de pagament externs, separats per coma. S'utilitzaran per "
1427-"a seleccionar el diari de pagament."
1428-
1429-#. module: base_sale_multichannels
1430-#: field:sale.shop,picking_policy:0
1431-msgid "Packing Policy"
1432-msgstr "Política d'enviament"
1433-
1434-#. module: base_sale_multichannels
1435-#: selection:sale.shop,picking_policy:0
1436-msgid "Complete Delivery"
1437-msgstr "Enviament complet"
1438-
1439-#. module: base_sale_multichannels
1440-#: field:sale.shop,invoice_generation_policy:0
1441-msgid "Invoice Generation Policy"
1442-msgstr "Política generació de factures"
1443-
1444-#. module: base_sale_multichannels
1445-#: selection:sale.shop,invoice_quantity:0
1446-msgid "Ordered Quantities"
1447-msgstr "Quantitats ordenades"
1448-
1449-#. module: base_sale_multichannels
1450-#: help:sale.shop,is_tax_included:0
1451-msgid "Requires sale_tax_include module to be installed"
1452-msgstr "Requereix que el mòdul sale_tax_include sigui instal·lat."
1453-
1454-#. module: base_sale_multichannels
1455-#: view:sale.shop:0
1456-msgid "Catalog"
1457-msgstr "Catàleg"
1458-
1459-#. module: base_sale_multichannels
1460-#: view:sale.shop:0
1461-msgid "External Shop Settings"
1462-msgstr "Configuració botiga externa"
1463-
1464-#. module: base_sale_multichannels
1465-#: view:sale.shop:0
1466-msgid "Export Catalog"
1467-msgstr "Exporta catàleg"
1468-
1469-#. module: base_sale_multichannels
1470-#: selection:sale.shop,order_policy:0
1471-msgid "Invoice from the Packing"
1472-msgstr "Factura des d'albarà"
1473-
1474-#. module: base_sale_multichannels
1475-#: view:sale.shop:0
1476-msgid "Order Generation"
1477-msgstr "Generació comanda"
1478-
1479-#. module: base_sale_multichannels
1480-#: field:account.journal,external_payment_codes:0
1481-msgid "External Payment Codes"
1482-msgstr "Codis de pagament externs"
1483-
1484-#. module: base_sale_multichannels
1485-#: selection:sale.shop,order_policy:0
1486-msgid "Invoice on Order After Delivery"
1487-msgstr "Factura comanda després de l'enviament"
1488-
1489-#. module: base_sale_multichannels
1490-#: constraint:ir.ui.view:0
1491-msgid "Invalid XML for View Architecture!"
1492-msgstr "XML invàlid per a la definició de la vista!"
1493-
1494-#. module: base_sale_multichannels
1495-#: field:external.shop.group,shop_ids:0
1496-msgid "Sale Shops"
1497-msgstr "Botigues venda"
1498-
1499-#. module: base_sale_multichannels
1500-#: field:external.shop.group,name:0
1501-msgid "Name"
1502-msgstr "Nom"
1503-
1504-#. module: base_sale_multichannels
1505-#: field:sale.shop,invoice_quantity:0
1506-msgid "Invoice on"
1507-msgstr "Factura les"
1508-
1509-#. module: base_sale_multichannels
1510-#: help:sale.shop,order_policy:0
1511-msgid ""
1512-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
1513-" - The 'Pay before delivery' choice will first generate the invoice and "
1514-"then generate the packing order after the payment of this invoice.\n"
1515-" - The 'Shipping & Manual Invoice' will create the packing order directly "
1516-"and wait for the user to manually click on the 'Invoice' button to generate "
1517-"the draft invoice.\n"
1518-" - The 'Invoice on Order After Delivery' choice will generate the draft "
1519-"invoice based on sale order after all packing lists have been finished.\n"
1520-" - The 'Invoice from the packing' choice is used to create an invoice "
1521-"during the packing process."
1522-msgstr ""
1523-"La política d'enviament s'utilitza per sincronitzar la factura i les "
1524-"operacions d'enviament.\n"
1525-" - L'opció 'Pagament abans de l'enviament' primer genera la factura i "
1526-"després genera l'albarà al fer efectiu el pagament d'aquesta factura.\n"
1527-" - L'opció 'Enviament' & Factura manual 'crearà l'albarà directament i "
1528-"esperarà que l'usuari faci clic manualment al botó' Factura 'per generar la "
1529-"factura esborrany.\n"
1530-" - L'opció 'Factura segons comanda després enviament' generarà la factura "
1531-"esborrany basada en la comanda de venda després que tots els albarans es "
1532-"processin.\n"
1533-" - L'opció 'Factura des d'albarà' s'utilitza per a crear una factura des "
1534-"dels albarans processats."
1535-
1536-#. module: base_sale_multichannels
1537-#: field:sale.shop,last_inventory_export_date:0
1538-msgid "Last Inventory Export Time"
1539-msgstr "Data última exportació inventari"
1540-
1541-#. module: base_sale_multichannels
1542-#: field:external.referential,shop_group_ids:0
1543-msgid "Sub Entities"
1544-msgstr "Sub entitats"
1545-
1546-#. module: base_sale_multichannels
1547-#: field:sale.shop,referential_id:0
1548-msgid "External Referential"
1549-msgstr "Referència externa"
1550-
1551-#. module: base_sale_multichannels
1552-#: selection:sale.shop,order_policy:0
1553-msgid "Payment Before Delivery"
1554-msgstr "Pagament abans de l'enviament"
1555-
1556-#. module: base_sale_multichannels
1557-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
1558-msgid "Base Sale MultiChannels"
1559-msgstr "Base vendes multicanal"
1560-
1561-#. module: base_sale_multichannels
1562-#: view:sale.shop:0
1563-#: field:sale.shop,exportable_product_ids:0
1564-msgid "Exportable Products"
1565-msgstr "Productes exportables"
1566-
1567-#. module: base_sale_multichannels
1568-#: view:sale.shop:0
1569-msgid "Import Orders"
1570-msgstr "Importa comandes"
1571-
1572-#. module: base_sale_multichannels
1573-#: field:sale.shop,picking_generation_policy:0
1574-msgid "Picking Generation Policy"
1575-msgstr "Política generació d'albarans"
1576-
1577-#. module: base_sale_multichannels
1578-#: help:sale.shop,invoice_generation_policy:0
1579-msgid "Should orders create an invoice after import?"
1580-msgstr "Les comandes haurien de crear una factura després de la importació?"
1581-
1582-#. module: base_sale_multichannels
1583-#: field:sale.shop,last_update_order_export_date:0
1584-msgid "Last Order Update Time"
1585-msgstr "Data última actualització comandes"
1586-
1587-#. module: base_sale_multichannels
1588-#: help:sale.shop,picking_generation_policy:0
1589-msgid "Should orders create a picking after import?"
1590-msgstr "Les comandes haurien de crear un albarà després de la importació?"
1591-
1592-#. module: base_sale_multichannels
1593-#: selection:sale.shop,invoice_generation_policy:0
1594-#: selection:sale.shop,picking_generation_policy:0
1595-msgid "Validated"
1596-msgstr "Validat"
1597-
1598-#. module: base_sale_multichannels
1599-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
1600-msgid "External Referential Shop Group"
1601-msgstr "Referència externa grup botigues"
1602-
1603-#. module: base_sale_multichannels
1604-#: view:sale.shop:0
1605-msgid "Export Stock Levels Only"
1606-msgstr "Exporta només nivells d'estoc"
1607-
1608-#. module: base_sale_multichannels
1609-#: selection:sale.shop,order_policy:0
1610-msgid "Shipping & Manual Invoice"
1611-msgstr "Envia & Factura manual"
1612-
1613-#. module: base_sale_multichannels
1614-#: view:sale.shop:0
1615-msgid "Actions"
1616-msgstr "Accions"
1617-
1618-#. module: base_sale_multichannels
1619-#: field:sale.shop,exportable_root_category_ids:0
1620-msgid "Root Category"
1621-msgstr "Categoria arrel"
1622-
1623-#. module: base_sale_multichannels
1624-#: field:sale.shop,is_tax_included:0
1625-msgid "Prices Include Tax?"
1626-msgstr "Preus inclouen impostos?"
1627-
1628-#. module: base_sale_multichannels
1629-#: view:sale.shop:0
1630-msgid "Sale Shop"
1631-msgstr "Botiga venda"
1632-
1633-#. module: base_sale_multichannels
1634-#: view:sale.shop:0
1635-msgid "Sale Multi Channels"
1636-msgstr "Vendes Multi canal"
1637-
1638-#. module: base_sale_multichannels
1639-#: view:sale.shop:0
1640-msgid "Orders"
1641-msgstr "Comandes"
1642
1643=== removed file 'base_sale_multichannels/i18n/ca_ES.po'
1644--- base_sale_multichannels/i18n/ca_ES.po 2010-08-26 01:14:26 +0000
1645+++ base_sale_multichannels/i18n/ca_ES.po 1970-01-01 00:00:00 +0000
1646@@ -1,334 +0,0 @@
1647-# Translation of OpenERP Server.
1648-# This file contains the translation of the following modules:
1649-# * base_sale_multichannels
1650-#
1651-msgid ""
1652-msgstr ""
1653-"Project-Id-Version: OpenERP Server 5.0.6\n"
1654-"Report-Msgid-Bugs-To: support@openerp.com\n"
1655-"POT-Creation-Date: 2009-12-20 17:22:08+0000\n"
1656-"PO-Revision-Date: 2010-03-02 13:08+0100\n"
1657-"Last-Translator: Jordi Esteve (Zikzakmedia) <jesteve@zikzakmedia.com>\n"
1658-"Language-Team: \n"
1659-"MIME-Version: 1.0\n"
1660-"Content-Type: text/plain; charset=UTF-8\n"
1661-"Content-Transfer-Encoding: 8bit\n"
1662-"X-Poedit-Language: Catalan\n"
1663-
1664-#. module: base_sale_multichannels
1665-#: selection:sale.shop,picking_policy:0
1666-msgid "Partial Delivery"
1667-msgstr "Enviament parcial"
1668-
1669-#. module: base_sale_multichannels
1670-#: constraint:ir.model:0
1671-msgid "The Object name must start with x_ and not contain any special character !"
1672-msgstr "El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter especial!"
1673-
1674-#. module: base_sale_multichannels
1675-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
1676-msgid ""
1677-"\n"
1678-"This module provide an abstract common minimal base to multi-channels sales.\n"
1679-"Say you want to expose your product catalog to\n"
1680-"* several instances of flashy-sluggish Magento web sites\n"
1681-"* a cutting edge Spree web shop\n"
1682-"* a Neteven online Marketplace\n"
1683-"* EBay\n"
1684-"* Amazon\n"
1685-"* Google Base\n"
1686-"* an external Point Of Sale system\n"
1687-"* ...\n"
1688-"Then this module allows you to:\n"
1689-"* use several external references ids on every OpenERP object matching those all those external referentials\n"
1690-"* per referential instance, use several sale sub platform entities (ex: several Magento websites per instance)\n"
1691-"* per sub platform, use several shops (ex: several Magento web shops per website)\n"
1692-"\n"
1693-"For each sale shop (matching OpenERP sale.shop object), this module abstract the interfaces to:\n"
1694-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
1695-"* import the catalog\n"
1696-"* import orders\n"
1697-"* export orders/picking status\n"
1698-" "
1699-msgstr ""
1700-"\n"
1701-"Aquest mòdul proporciona una mínima base d'abstracció comuna a diversos canals de vendes.\n"
1702-"Suposem que voleu exposar el vostre catàleg de productes a:\n"
1703-"* Diverses instàncies de botiga web de Magento\n"
1704-"* Una botiga web d'última generació Spree\n"
1705-"* Un mercat Neteven\n"
1706-"* EBay\n"
1707-"* Amazon\n"
1708-"* Google Base\n"
1709-"* Un sistema punt de venda extern\n"
1710-"* ...\n"
1711-"Llavors, aquest mòdul us permet:\n"
1712-"* L'ús de diverses referències externes a tots els identificadors d'objectes OpenERP que apunten a totes aquestes referències externes.\n"
1713-"* Referències per instància, l'ús de diverses sub entitats de vendes (per exemple diversos llocs web Magento per instància)\n"
1714-"* Referències per sub entitat, l'ús de diverses botigues (per exemple diverses botigues web Magento per lloc web)\n"
1715-"\n"
1716-"Per a cada botiga de venda (que es correspondrà a l'objecte sale.shop de OpenERP), aquest mòdul abstreu les interfícies de:\n"
1717-"* Exportar el catàleg, nivell d'estoc del magatzem de la botiga, tarifa de preus de la botiga\n"
1718-"* Importar el catàleg\n"
1719-"* Importar comandes\n"
1720-"* Exportar l'estat de les comandes/albarans\n"
1721-
1722-#. module: base_sale_multichannels
1723-#: field:sale.shop,order_policy:0
1724-msgid "Shipping Policy"
1725-msgstr "Política de facturació"
1726-
1727-#. module: base_sale_multichannels
1728-#: selection:sale.shop,invoice_generation_policy:0
1729-#: selection:sale.shop,picking_generation_policy:0
1730-msgid "None"
1731-msgstr "Cap"
1732-
1733-#. module: base_sale_multichannels
1734-#: selection:sale.shop,invoice_quantity:0
1735-msgid "Shipped Quantities"
1736-msgstr "Quantitats enviades"
1737-
1738-#. module: base_sale_multichannels
1739-#: field:external.shop.group,referential_id:0
1740-msgid "Referential"
1741-msgstr "Referència"
1742-
1743-#. module: base_sale_multichannels
1744-#: selection:sale.shop,invoice_generation_policy:0
1745-#: selection:sale.shop,picking_generation_policy:0
1746-msgid "Draft"
1747-msgstr "Esborrany"
1748-
1749-#. module: base_sale_multichannels
1750-#: help:sale.shop,invoice_quantity:0
1751-msgid "The sale order will automatically create the invoice proposition (draft invoice). Ordered and delivered quantities may not be the same. You have to choose if you invoice based on ordered or shipped quantities. If the product is a service, shipped quantities means hours spent on the associated tasks."
1752-msgstr "La comanda de venda crearà automàticament la proposta de factura (factura esborrany). Les quantitats demanades i les quantitats enviades poden no ser les mateixes. Heu de decidir si factureu basat en quantitats demanades o enviades. Si el producte és un servei, quantitats enviades significa hores dedicades a les tasques associades."
1753-
1754-#. module: base_sale_multichannels
1755-#: field:sale.shop,shop_group_id:0
1756-msgid "Shop Group"
1757-msgstr "Grup botigues"
1758-
1759-#. module: base_sale_multichannels
1760-#: field:product.category,recursive_childen_ids:0
1761-msgid "All Child Categories"
1762-msgstr "Totes categories filles"
1763-
1764-#. module: base_sale_multichannels
1765-#: view:sale.shop:0
1766-msgid "Update Orders Status"
1767-msgstr "Actualitza estat comandes"
1768-
1769-#. module: base_sale_multichannels
1770-#: help:sale.shop,picking_policy:0
1771-msgid "If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"
1772-msgstr "Si no disposeu de suficient estoc disponible per a enviar-ho tot a la vegada, accepteu enviaments parcials?"
1773-
1774-#. module: base_sale_multichannels
1775-#: help:account.journal,external_payment_codes:0
1776-msgid "Enter the external payment codes, comma separated. They will be used to select the payment journal."
1777-msgstr "Indiqueu els codis de pagament externs, separats per coma. S'utilitzaran per a seleccionar el diari de pagament."
1778-
1779-#. module: base_sale_multichannels
1780-#: field:sale.shop,picking_policy:0
1781-msgid "Packing Policy"
1782-msgstr "Política d'enviament"
1783-
1784-#. module: base_sale_multichannels
1785-#: selection:sale.shop,picking_policy:0
1786-msgid "Complete Delivery"
1787-msgstr "Enviament complet"
1788-
1789-#. module: base_sale_multichannels
1790-#: field:sale.shop,invoice_generation_policy:0
1791-msgid "Invoice Generation Policy"
1792-msgstr "Política generació de factures"
1793-
1794-#. module: base_sale_multichannels
1795-#: selection:sale.shop,invoice_quantity:0
1796-msgid "Ordered Quantities"
1797-msgstr "Quantitats ordenades"
1798-
1799-#. module: base_sale_multichannels
1800-#: help:sale.shop,is_tax_included:0
1801-msgid "Requires sale_tax_include module to be installed"
1802-msgstr "Requereix que el mòdul sale_tax_include sigui instal·lat."
1803-
1804-#. module: base_sale_multichannels
1805-#: view:sale.shop:0
1806-msgid "Catalog"
1807-msgstr "Catàleg"
1808-
1809-#. module: base_sale_multichannels
1810-#: view:sale.shop:0
1811-msgid "External Shop Settings"
1812-msgstr "Configuració botiga externa"
1813-
1814-#. module: base_sale_multichannels
1815-#: view:sale.shop:0
1816-msgid "Export Catalog"
1817-msgstr "Exporta catàleg"
1818-
1819-#. module: base_sale_multichannels
1820-#: selection:sale.shop,order_policy:0
1821-msgid "Invoice from the Packing"
1822-msgstr "Factura des d'albarà"
1823-
1824-#. module: base_sale_multichannels
1825-#: view:sale.shop:0
1826-msgid "Order Generation"
1827-msgstr "Generació comanda"
1828-
1829-#. module: base_sale_multichannels
1830-#: field:account.journal,external_payment_codes:0
1831-msgid "External Payment Codes"
1832-msgstr "Codis de pagament externs"
1833-
1834-#. module: base_sale_multichannels
1835-#: selection:sale.shop,order_policy:0
1836-msgid "Invoice on Order After Delivery"
1837-msgstr "Factura comanda després de l'enviament"
1838-
1839-#. module: base_sale_multichannels
1840-#: constraint:ir.ui.view:0
1841-msgid "Invalid XML for View Architecture!"
1842-msgstr "XML invàlid per a la definició de la vista!"
1843-
1844-#. module: base_sale_multichannels
1845-#: field:external.shop.group,shop_ids:0
1846-msgid "Sale Shops"
1847-msgstr "Botigues venda"
1848-
1849-#. module: base_sale_multichannels
1850-#: field:external.shop.group,name:0
1851-msgid "Name"
1852-msgstr "Nom"
1853-
1854-#. module: base_sale_multichannels
1855-#: field:sale.shop,invoice_quantity:0
1856-msgid "Invoice on"
1857-msgstr "Factura les"
1858-
1859-#. module: base_sale_multichannels
1860-#: help:sale.shop,order_policy:0
1861-msgid ""
1862-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
1863-" - The 'Pay before delivery' choice will first generate the invoice and then generate the packing order after the payment of this invoice.\n"
1864-" - The 'Shipping & Manual Invoice' will create the packing order directly and wait for the user to manually click on the 'Invoice' button to generate the draft invoice.\n"
1865-" - The 'Invoice on Order After Delivery' choice will generate the draft invoice based on sale order after all packing lists have been finished.\n"
1866-" - The 'Invoice from the packing' choice is used to create an invoice during the packing process."
1867-msgstr ""
1868-"La política d'enviament s'utilitza per sincronitzar la factura i les operacions d'enviament.\n"
1869-" - L'opció 'Pagament abans de l'enviament' primer genera la factura i després genera l'albarà al fer efectiu el pagament d'aquesta factura.\n"
1870-" - L'opció 'Enviament' & Factura manual 'crearà l'albarà directament i esperarà que l'usuari faci clic manualment al botó' Factura 'per generar la factura esborrany.\n"
1871-" - L'opció 'Factura segons comanda després enviament' generarà la factura esborrany basada en la comanda de venda després que tots els albarans es processin.\n"
1872-" - L'opció 'Factura des d'albarà' s'utilitza per a crear una factura des dels albarans processats."
1873-
1874-#. module: base_sale_multichannels
1875-#: field:sale.shop,last_inventory_export_date:0
1876-msgid "Last Inventory Export Time"
1877-msgstr "Data última exportació inventari"
1878-
1879-#. module: base_sale_multichannels
1880-#: field:external.referential,shop_group_ids:0
1881-msgid "Sub Entities"
1882-msgstr "Sub entitats"
1883-
1884-#. module: base_sale_multichannels
1885-#: field:sale.shop,referential_id:0
1886-msgid "External Referential"
1887-msgstr "Referència externa"
1888-
1889-#. module: base_sale_multichannels
1890-#: selection:sale.shop,order_policy:0
1891-msgid "Payment Before Delivery"
1892-msgstr "Pagament abans de l'enviament"
1893-
1894-#. module: base_sale_multichannels
1895-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
1896-msgid "Base Sale MultiChannels"
1897-msgstr "Base vendes multicanal"
1898-
1899-#. module: base_sale_multichannels
1900-#: view:sale.shop:0
1901-#: field:sale.shop,exportable_product_ids:0
1902-msgid "Exportable Products"
1903-msgstr "Productes exportables"
1904-
1905-#. module: base_sale_multichannels
1906-#: view:sale.shop:0
1907-msgid "Import Orders"
1908-msgstr "Importa comandes"
1909-
1910-#. module: base_sale_multichannels
1911-#: field:sale.shop,picking_generation_policy:0
1912-msgid "Picking Generation Policy"
1913-msgstr "Política generació d'albarans"
1914-
1915-#. module: base_sale_multichannels
1916-#: help:sale.shop,invoice_generation_policy:0
1917-msgid "Should orders create an invoice after import?"
1918-msgstr "Les comandes haurien de crear una factura després de la importació?"
1919-
1920-#. module: base_sale_multichannels
1921-#: field:sale.shop,last_update_order_export_date:0
1922-msgid "Last Order Update Time"
1923-msgstr "Data última actualització comandes"
1924-
1925-#. module: base_sale_multichannels
1926-#: help:sale.shop,picking_generation_policy:0
1927-msgid "Should orders create a picking after import?"
1928-msgstr "Les comandes haurien de crear un albarà després de la importació?"
1929-
1930-#. module: base_sale_multichannels
1931-#: selection:sale.shop,invoice_generation_policy:0
1932-#: selection:sale.shop,picking_generation_policy:0
1933-msgid "Validated"
1934-msgstr "Validat"
1935-
1936-#. module: base_sale_multichannels
1937-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
1938-msgid "External Referential Shop Group"
1939-msgstr "Referència externa grup botigues"
1940-
1941-#. module: base_sale_multichannels
1942-#: view:sale.shop:0
1943-msgid "Export Stock Levels Only"
1944-msgstr "Exporta només nivells d'estoc"
1945-
1946-#. module: base_sale_multichannels
1947-#: selection:sale.shop,order_policy:0
1948-msgid "Shipping & Manual Invoice"
1949-msgstr "Envia & Factura manual"
1950-
1951-#. module: base_sale_multichannels
1952-#: view:sale.shop:0
1953-msgid "Actions"
1954-msgstr "Accions"
1955-
1956-#. module: base_sale_multichannels
1957-#: field:sale.shop,exportable_root_category_ids:0
1958-msgid "Root Category"
1959-msgstr "Categoria arrel"
1960-
1961-#. module: base_sale_multichannels
1962-#: field:sale.shop,is_tax_included:0
1963-msgid "Prices Include Tax?"
1964-msgstr "Preus inclouen impostos?"
1965-
1966-#. module: base_sale_multichannels
1967-#: view:sale.shop:0
1968-msgid "Sale Shop"
1969-msgstr "Botiga venda"
1970-
1971-#. module: base_sale_multichannels
1972-#: view:sale.shop:0
1973-msgid "Sale Multi Channels"
1974-msgstr "Vendes Multi canal"
1975-
1976-#. module: base_sale_multichannels
1977-#: view:sale.shop:0
1978-msgid "Orders"
1979-msgstr "Comandes"
1980-
1981
1982=== removed file 'base_sale_multichannels/i18n/es.po'
1983--- base_sale_multichannels/i18n/es.po 2012-02-27 18:49:05 +0000
1984+++ base_sale_multichannels/i18n/es.po 1970-01-01 00:00:00 +0000
1985@@ -1,379 +0,0 @@
1986-# Translation of OpenERP Server.
1987-# This file contains the translation of the following modules:
1988-# * base_sale_multichannels
1989-#
1990-msgid ""
1991-msgstr ""
1992-"Project-Id-Version: OpenERP Server 5.0.6\n"
1993-"Report-Msgid-Bugs-To: support@openerp.com\n"
1994-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
1995-"PO-Revision-Date: 2011-02-14 10:04+0000\n"
1996-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
1997-"<jesteve@zikzakmedia.com>\n"
1998-"Language-Team: \n"
1999-"MIME-Version: 1.0\n"
2000-"Content-Type: text/plain; charset=UTF-8\n"
2001-"Content-Transfer-Encoding: 8bit\n"
2002-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
2003-"X-Generator: Launchpad (build 14676)\n"
2004-
2005-#. module: base_sale_multichannels
2006-#: selection:sale.shop,picking_policy:0
2007-msgid "Partial Delivery"
2008-msgstr "Envío parcial"
2009-
2010-#. module: base_sale_multichannels
2011-#: constraint:ir.model:0
2012-msgid ""
2013-"The Object name must start with x_ and not contain any special character !"
2014-msgstr ""
2015-"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
2016-"especial!"
2017-
2018-#. module: base_sale_multichannels
2019-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
2020-msgid ""
2021-"\n"
2022-"This module provide an abstract common minimal base to multi-channels "
2023-"sales.\n"
2024-"Say you want to expose your product catalog to\n"
2025-"* several instances of flashy-sluggish Magento web sites\n"
2026-"* a cutting edge Spree web shop\n"
2027-"* a Neteven online Marketplace\n"
2028-"* EBay\n"
2029-"* Amazon\n"
2030-"* Google Base\n"
2031-"* an external Point Of Sale system\n"
2032-"* ...\n"
2033-"Then this module allows you to:\n"
2034-"* use several external references ids on every OpenERP object matching those "
2035-"all those external referentials\n"
2036-"* per referential instance, use several sale sub platform entities (ex: "
2037-"several Magento websites per instance)\n"
2038-"* per sub platform, use several shops (ex: several Magento web shops per "
2039-"website)\n"
2040-"\n"
2041-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
2042-"the interfaces to:\n"
2043-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
2044-"* import the catalog\n"
2045-"* import orders\n"
2046-"* export orders/picking status\n"
2047-" "
2048-msgstr ""
2049-"\n"
2050-"Este módulo proporciona una mínima base de abstracción común a varios "
2051-"canales de ventas.\n"
2052-"Supongamos que quiere exponer su catálogo de productos en:\n"
2053-"* Varias instancias de tiendas web de Magento\n"
2054-"* Una tienda web de última generación Spree\n"
2055-"* Un mercado Neteven\n"
2056-"* EBay\n"
2057-"* Amazon\n"
2058-"* Google Base\n"
2059-"* Un sistema punto de venta externo\n"
2060-"* ...\n"
2061-"Entonces, este módulo le permite:\n"
2062-"* El uso de varias referencias externas en todos los identificadores de "
2063-"objetos OpenERP que mapean todas estas referencias externas.\n"
2064-"* Referencias por instancia, el uso de varias subentidades de ventas (por "
2065-"ejemplo varios sitios web Magento por instancia)\n"
2066-"* Referencias por subentidad, el uso de varias tiendas (por ejemplo varias "
2067-"tiendas web Magento por sitio web)\n"
2068-"\n"
2069-"Para cada tienda de venta (que se corresponda al objeto sale.shop de "
2070-"OpenERP), este módulo abstrae las interfaces de:\n"
2071-"* Exportar el catálogo, nivel de stock del almacén de la tienda, tarifa de "
2072-"precios de la tienda\n"
2073-"* Importar el catálogo\n"
2074-"* Importar pedidos\n"
2075-"* Exportar el estado de pedidos/albaranes\n"
2076-" "
2077-
2078-#. module: base_sale_multichannels
2079-#: field:sale.shop,order_policy:0
2080-msgid "Shipping Policy"
2081-msgstr "Política de facturación"
2082-
2083-#. module: base_sale_multichannels
2084-#: selection:sale.shop,invoice_generation_policy:0
2085-#: selection:sale.shop,picking_generation_policy:0
2086-msgid "None"
2087-msgstr "Ninguno/a"
2088-
2089-#. module: base_sale_multichannels
2090-#: selection:sale.shop,invoice_quantity:0
2091-msgid "Shipped Quantities"
2092-msgstr "Cantidades enviadas"
2093-
2094-#. module: base_sale_multichannels
2095-#: field:external.shop.group,referential_id:0
2096-msgid "Referential"
2097-msgstr "Referencia"
2098-
2099-#. module: base_sale_multichannels
2100-#: selection:sale.shop,invoice_generation_policy:0
2101-#: selection:sale.shop,picking_generation_policy:0
2102-msgid "Draft"
2103-msgstr "Borrador"
2104-
2105-#. module: base_sale_multichannels
2106-#: help:sale.shop,invoice_quantity:0
2107-msgid ""
2108-"The sale order will automatically create the invoice proposition (draft "
2109-"invoice). Ordered and delivered quantities may not be the same. You have to "
2110-"choose if you invoice based on ordered or shipped quantities. If the product "
2111-"is a service, shipped quantities means hours spent on the associated tasks."
2112-msgstr ""
2113-"El pedido de venta creará automáticamente la propuesta de factura (factura "
2114-"borrador). Las cantidades pedidas y las cantidades enviadas pueden no ser "
2115-"las mismas. Tiene que decidir si factura basado en cantidades pedidas o "
2116-"enviadas. Si el producto es un servicio, cantidades enviadas significa horas "
2117-"dedicadas a las tareas asociadas."
2118-
2119-#. module: base_sale_multichannels
2120-#: field:sale.shop,shop_group_id:0
2121-msgid "Shop Group"
2122-msgstr "Grupo tiendas"
2123-
2124-#. module: base_sale_multichannels
2125-#: field:product.category,recursive_childen_ids:0
2126-msgid "All Child Categories"
2127-msgstr "Todas categorías hijas"
2128-
2129-#. module: base_sale_multichannels
2130-#: view:sale.shop:0
2131-msgid "Update Orders Status"
2132-msgstr "Actualizar estado pedidos"
2133-
2134-#. module: base_sale_multichannels
2135-#: help:sale.shop,picking_policy:0
2136-msgid ""
2137-"If you don't have enough stock available to deliver all at once, do you "
2138-"accept partial shipments or not?"
2139-msgstr ""
2140-"Si no dispone de suficiente stock disponible para enviarlo todo a la vez, "
2141-"¿acepta envíos parciales?"
2142-
2143-#. module: base_sale_multichannels
2144-#: help:account.journal,external_payment_codes:0
2145-msgid ""
2146-"Enter the external payment codes, comma separated. They will be used to "
2147-"select the payment journal."
2148-msgstr ""
2149-"Indique los códigos de pago externos, separados por coma. Serán utilizados "
2150-"para seleccionar el diario de pago."
2151-
2152-#. module: base_sale_multichannels
2153-#: field:sale.shop,picking_policy:0
2154-msgid "Packing Policy"
2155-msgstr "Política de envío"
2156-
2157-#. module: base_sale_multichannels
2158-#: selection:sale.shop,picking_policy:0
2159-msgid "Complete Delivery"
2160-msgstr "Envío completo"
2161-
2162-#. module: base_sale_multichannels
2163-#: field:sale.shop,invoice_generation_policy:0
2164-msgid "Invoice Generation Policy"
2165-msgstr "Política generación de facturas"
2166-
2167-#. module: base_sale_multichannels
2168-#: selection:sale.shop,invoice_quantity:0
2169-msgid "Ordered Quantities"
2170-msgstr "Cantidades ordenadas"
2171-
2172-#. module: base_sale_multichannels
2173-#: help:sale.shop,is_tax_included:0
2174-msgid "Requires sale_tax_include module to be installed"
2175-msgstr "Requiere que el módulo sale_tax_include sea instalado."
2176-
2177-#. module: base_sale_multichannels
2178-#: view:sale.shop:0
2179-msgid "Catalog"
2180-msgstr "Catálogo"
2181-
2182-#. module: base_sale_multichannels
2183-#: view:sale.shop:0
2184-msgid "External Shop Settings"
2185-msgstr "Configuración tienda externa"
2186-
2187-#. module: base_sale_multichannels
2188-#: view:sale.shop:0
2189-msgid "Export Catalog"
2190-msgstr "Exportar catálogo"
2191-
2192-#. module: base_sale_multichannels
2193-#: selection:sale.shop,order_policy:0
2194-msgid "Invoice from the Packing"
2195-msgstr "Factura desde albarán"
2196-
2197-#. module: base_sale_multichannels
2198-#: view:sale.shop:0
2199-msgid "Order Generation"
2200-msgstr "Generación pedido"
2201-
2202-#. module: base_sale_multichannels
2203-#: field:account.journal,external_payment_codes:0
2204-msgid "External Payment Codes"
2205-msgstr "Códigos de pago externos"
2206-
2207-#. module: base_sale_multichannels
2208-#: selection:sale.shop,order_policy:0
2209-msgid "Invoice on Order After Delivery"
2210-msgstr "Facturar pedido después del envío"
2211-
2212-#. module: base_sale_multichannels
2213-#: constraint:ir.ui.view:0
2214-msgid "Invalid XML for View Architecture!"
2215-msgstr "¡XML inválido para la definición de la vista!"
2216-
2217-#. module: base_sale_multichannels
2218-#: field:external.shop.group,shop_ids:0
2219-msgid "Sale Shops"
2220-msgstr "Tiendas venta"
2221-
2222-#. module: base_sale_multichannels
2223-#: field:external.shop.group,name:0
2224-msgid "Name"
2225-msgstr "Nombre"
2226-
2227-#. module: base_sale_multichannels
2228-#: field:sale.shop,invoice_quantity:0
2229-msgid "Invoice on"
2230-msgstr "Facturar las"
2231-
2232-#. module: base_sale_multichannels
2233-#: help:sale.shop,order_policy:0
2234-msgid ""
2235-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
2236-" - The 'Pay before delivery' choice will first generate the invoice and "
2237-"then generate the packing order after the payment of this invoice.\n"
2238-" - The 'Shipping & Manual Invoice' will create the packing order directly "
2239-"and wait for the user to manually click on the 'Invoice' button to generate "
2240-"the draft invoice.\n"
2241-" - The 'Invoice on Order After Delivery' choice will generate the draft "
2242-"invoice based on sale order after all packing lists have been finished.\n"
2243-" - The 'Invoice from the packing' choice is used to create an invoice "
2244-"during the packing process."
2245-msgstr ""
2246-"La política de envío se utiliza para sincronizar la factura y las "
2247-"operaciones de envío.\n"
2248-" - La opción 'Pago antes del envío' primero genera la factura y luego "
2249-"genera el albarán después del pago de esta factura.\n"
2250-" - La opción 'Envío '& Factura manual' creará el albarán directamente y "
2251-"esperará a que el usuario haga clic manualmente en el botón 'Factura' para "
2252-"generar la factura borrador.\n"
2253-" - La opción 'Factura según pedido después envío' generará la factura "
2254-"borrador basada en el pedido de venta después de que todos los albaranes se "
2255-"hayan procesado.\n"
2256-" - La opción 'Factura desde albarán' se utiliza para crear una factura "
2257-"durante el proceso de los albaranes."
2258-
2259-#. module: base_sale_multichannels
2260-#: field:sale.shop,last_inventory_export_date:0
2261-msgid "Last Inventory Export Time"
2262-msgstr "Fecha última exportación inventario"
2263-
2264-#. module: base_sale_multichannels
2265-#: field:external.referential,shop_group_ids:0
2266-msgid "Sub Entities"
2267-msgstr "Sub entidades"
2268-
2269-#. module: base_sale_multichannels
2270-#: field:sale.shop,referential_id:0
2271-msgid "External Referential"
2272-msgstr "Referencia externa"
2273-
2274-#. module: base_sale_multichannels
2275-#: selection:sale.shop,order_policy:0
2276-msgid "Payment Before Delivery"
2277-msgstr "Pago antes del envío"
2278-
2279-#. module: base_sale_multichannels
2280-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
2281-msgid "Base Sale MultiChannels"
2282-msgstr "Base ventas multicanal"
2283-
2284-#. module: base_sale_multichannels
2285-#: view:sale.shop:0
2286-#: field:sale.shop,exportable_product_ids:0
2287-msgid "Exportable Products"
2288-msgstr "Productos exportables"
2289-
2290-#. module: base_sale_multichannels
2291-#: view:sale.shop:0
2292-msgid "Import Orders"
2293-msgstr "Importar pedidos"
2294-
2295-#. module: base_sale_multichannels
2296-#: field:sale.shop,picking_generation_policy:0
2297-msgid "Picking Generation Policy"
2298-msgstr "Política generación de albaranes"
2299-
2300-#. module: base_sale_multichannels
2301-#: help:sale.shop,invoice_generation_policy:0
2302-msgid "Should orders create an invoice after import?"
2303-msgstr "¿Los pedidos deberían crear una factura después de la importación?"
2304-
2305-#. module: base_sale_multichannels
2306-#: field:sale.shop,last_update_order_export_date:0
2307-msgid "Last Order Update Time"
2308-msgstr "Fecha última actualización pedidos"
2309-
2310-#. module: base_sale_multichannels
2311-#: help:sale.shop,picking_generation_policy:0
2312-msgid "Should orders create a picking after import?"
2313-msgstr "¿Los pedidos deberían crear un albarán después de la importación?"
2314-
2315-#. module: base_sale_multichannels
2316-#: selection:sale.shop,invoice_generation_policy:0
2317-#: selection:sale.shop,picking_generation_policy:0
2318-msgid "Validated"
2319-msgstr "Validado"
2320-
2321-#. module: base_sale_multichannels
2322-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
2323-msgid "External Referential Shop Group"
2324-msgstr "Referencia externa grupo tiendas"
2325-
2326-#. module: base_sale_multichannels
2327-#: view:sale.shop:0
2328-msgid "Export Stock Levels Only"
2329-msgstr "Exportar sólo niveles de stock"
2330-
2331-#. module: base_sale_multichannels
2332-#: selection:sale.shop,order_policy:0
2333-msgid "Shipping & Manual Invoice"
2334-msgstr "Enviar & Factura manual"
2335-
2336-#. module: base_sale_multichannels
2337-#: view:sale.shop:0
2338-msgid "Actions"
2339-msgstr "Accions"
2340-
2341-#. module: base_sale_multichannels
2342-#: field:sale.shop,exportable_root_category_ids:0
2343-msgid "Root Category"
2344-msgstr "Categoría raíz"
2345-
2346-#. module: base_sale_multichannels
2347-#: field:sale.shop,is_tax_included:0
2348-msgid "Prices Include Tax?"
2349-msgstr "¿Precios incluyen impuestos?"
2350-
2351-#. module: base_sale_multichannels
2352-#: view:sale.shop:0
2353-msgid "Sale Shop"
2354-msgstr "Tienda venta"
2355-
2356-#. module: base_sale_multichannels
2357-#: view:sale.shop:0
2358-msgid "Sale Multi Channels"
2359-msgstr "Ventas Multi canal"
2360-
2361-#. module: base_sale_multichannels
2362-#: view:sale.shop:0
2363-msgid "Orders"
2364-msgstr "Pedidos"
2365
2366=== removed file 'base_sale_multichannels/i18n/fr.po'
2367--- base_sale_multichannels/i18n/fr.po 2012-02-27 18:49:05 +0000
2368+++ base_sale_multichannels/i18n/fr.po 1970-01-01 00:00:00 +0000
2369@@ -1,356 +0,0 @@
2370-# Translation of OpenERP Server.
2371-# This file contains the translation of the following modules:
2372-# * base_sale_multichannels
2373-#
2374-msgid ""
2375-msgstr ""
2376-"Project-Id-Version: OpenERP Server 6.1beta\n"
2377-"Report-Msgid-Bugs-To: \n"
2378-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
2379-"PO-Revision-Date: 2011-12-05 12:42+0000\n"
2380-"Last-Translator: OpenERP Administrators <Unknown>\n"
2381-"Language-Team: \n"
2382-"MIME-Version: 1.0\n"
2383-"Content-Type: text/plain; charset=UTF-8\n"
2384-"Content-Transfer-Encoding: 8bit\n"
2385-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
2386-"X-Generator: Launchpad (build 14676)\n"
2387-
2388-#. module: base_sale_multichannels
2389-#: selection:sale.shop,picking_policy:0
2390-msgid "Partial Delivery"
2391-msgstr "Livraison Partielle"
2392-
2393-#. module: base_sale_multichannels
2394-#: constraint:ir.model:0
2395-msgid ""
2396-"The Object name must start with x_ and not contain any special character !"
2397-msgstr ""
2398-
2399-#. module: base_sale_multichannels
2400-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
2401-msgid ""
2402-"\n"
2403-"This module provide an abstract common minimal base to multi-channels "
2404-"sales.\n"
2405-"Say you want to expose your product catalog to\n"
2406-"* several instances of flashy-sluggish Magento web sites\n"
2407-"* a cutting edge Spree web shop\n"
2408-"* a Neteven online Marketplace\n"
2409-"* EBay\n"
2410-"* Amazon\n"
2411-"* Google Base\n"
2412-"* an external Point Of Sale system\n"
2413-"* ...\n"
2414-"Then this module allows you to:\n"
2415-"* use several external references ids on every OpenERP object matching those "
2416-"all those external referentials\n"
2417-"* per referential instance, use several sale sub platform entities (ex: "
2418-"several Magento websites per instance)\n"
2419-"* per sub platform, use several shops (ex: several Magento web shops per "
2420-"website)\n"
2421-"\n"
2422-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
2423-"the interfaces to:\n"
2424-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
2425-"* import the catalog\n"
2426-"* import orders\n"
2427-"* export orders/picking status\n"
2428-" "
2429-msgstr ""
2430-"\n"
2431-"Ce module fourni une couche d'abstracion minimale pour les ventes en multi-"
2432-"canaux.\n"
2433-"Vous voulez exposer votre catalogue produits sur\n"
2434-"* plusieurs instances de sites web magento\n"
2435-"* une boutique en ligne Spree d'avant garde\n"
2436-"* un marché en ligne Neteven\n"
2437-"* EBay\n"
2438-"* Amazon\n"
2439-"* Google Base\n"
2440-"* un système de point de vente externe\n"
2441-"* ...\n"
2442-"Ce module vous permet donc:\n"
2443-"* d'utiliser plusieurs identifiants externes dans tout les objets OpenERP "
2444-"correspondant entre eux use several external references ids on every OpenERP "
2445-"object matching those all those external referentials\n"
2446-"* par instance référentielle, d'utiliser plusieurs entités de sous "
2447-"plateforme de vente (ex: plusieurs sites web Magento par instance)\n"
2448-"* par sous plateforme, d'utiliser plusieurs boutiques (ex: plusieurs "
2449-"boutiques en ligne Magento par site web)\n"
2450-"\n"
2451-"Pour chaque boutique de vente (correspondant aux objets OpenERP sale.shop), "
2452-"ce module extrait les interfaces pour:\n"
2453-"* exporter le catalogue, le niveau de stock du magasin, les listes de prix "
2454-"du magasin\n"
2455-"* importer le catalogue\n"
2456-"* importer les commandes\n"
2457-"* exporter les commandes/status picking\n"
2458-" "
2459-
2460-#. module: base_sale_multichannels
2461-#: field:sale.shop,order_policy:0
2462-msgid "Shipping Policy"
2463-msgstr "Politique d'expédition"
2464-
2465-#. module: base_sale_multichannels
2466-#: selection:sale.shop,invoice_generation_policy:0
2467-#: selection:sale.shop,picking_generation_policy:0
2468-msgid "None"
2469-msgstr ""
2470-
2471-#. module: base_sale_multichannels
2472-#: selection:sale.shop,invoice_quantity:0
2473-msgid "Shipped Quantities"
2474-msgstr "Quantités Expédiées"
2475-
2476-#. module: base_sale_multichannels
2477-#: field:external.shop.group,referential_id:0
2478-msgid "Referential"
2479-msgstr "Référentiel"
2480-
2481-#. module: base_sale_multichannels
2482-#: selection:sale.shop,invoice_generation_policy:0
2483-#: selection:sale.shop,picking_generation_policy:0
2484-msgid "Draft"
2485-msgstr ""
2486-
2487-#. module: base_sale_multichannels
2488-#: help:sale.shop,invoice_quantity:0
2489-msgid ""
2490-"The sale order will automatically create the invoice proposition (draft "
2491-"invoice). Ordered and delivered quantities may not be the same. You have to "
2492-"choose if you invoice based on ordered or shipped quantities. If the product "
2493-"is a service, shipped quantities means hours spent on the associated tasks."
2494-msgstr ""
2495-
2496-#. module: base_sale_multichannels
2497-#: field:sale.shop,shop_group_id:0
2498-msgid "Shop Group"
2499-msgstr "Groupe de Magasin"
2500-
2501-#. module: base_sale_multichannels
2502-#: field:product.category,recursive_childen_ids:0
2503-msgid "All Child Categories"
2504-msgstr "Toute les Catégories Enfant"
2505-
2506-#. module: base_sale_multichannels
2507-#: view:sale.shop:0
2508-msgid "Update Orders Status"
2509-msgstr "Mettre à Jour les Status des Commmandes"
2510-
2511-#. module: base_sale_multichannels
2512-#: help:sale.shop,picking_policy:0
2513-msgid ""
2514-"If you don't have enough stock available to deliver all at once, do you "
2515-"accept partial shipments or not?"
2516-msgstr ""
2517-
2518-#. module: base_sale_multichannels
2519-#: help:account.journal,external_payment_codes:0
2520-msgid ""
2521-"Enter the external payment codes, comma separated. They will be used to "
2522-"select the payment journal."
2523-msgstr ""
2524-
2525-#. module: base_sale_multichannels
2526-#: field:sale.shop,picking_policy:0
2527-msgid "Packing Policy"
2528-msgstr "Politique d'Emballage"
2529-
2530-#. module: base_sale_multichannels
2531-#: selection:sale.shop,picking_policy:0
2532-msgid "Complete Delivery"
2533-msgstr "Livraison Complète"
2534-
2535-#. module: base_sale_multichannels
2536-#: field:sale.shop,invoice_generation_policy:0
2537-msgid "Invoice Generation Policy"
2538-msgstr ""
2539-
2540-#. module: base_sale_multichannels
2541-#: selection:sale.shop,invoice_quantity:0
2542-msgid "Ordered Quantities"
2543-msgstr "Quantités Commandées"
2544-
2545-#. module: base_sale_multichannels
2546-#: help:sale.shop,is_tax_included:0
2547-msgid "Requires sale_tax_include module to be installed"
2548-msgstr "Requière le module sale_tax_include pour pouvoir être installé"
2549-
2550-#. module: base_sale_multichannels
2551-#: view:sale.shop:0
2552-msgid "Catalog"
2553-msgstr "Catalogue"
2554-
2555-#. module: base_sale_multichannels
2556-#: view:sale.shop:0
2557-msgid "External Shop Settings"
2558-msgstr "Paramètres du Magasin Externe"
2559-
2560-#. module: base_sale_multichannels
2561-#: view:sale.shop:0
2562-msgid "Export Catalog"
2563-msgstr "Exporter le Catalogue"
2564-
2565-#. module: base_sale_multichannels
2566-#: selection:sale.shop,order_policy:0
2567-msgid "Invoice from the Packing"
2568-msgstr "Facture de l'emballage"
2569-
2570-#. module: base_sale_multichannels
2571-#: view:sale.shop:0
2572-msgid "Order Generation"
2573-msgstr ""
2574-
2575-#. module: base_sale_multichannels
2576-#: field:account.journal,external_payment_codes:0
2577-msgid "External Payment Codes"
2578-msgstr ""
2579-
2580-#. module: base_sale_multichannels
2581-#: selection:sale.shop,order_policy:0
2582-msgid "Invoice on Order After Delivery"
2583-msgstr "Facture sur Commande Après Livraison"
2584-
2585-#. module: base_sale_multichannels
2586-#: constraint:ir.ui.view:0
2587-msgid "Invalid XML for View Architecture!"
2588-msgstr ""
2589-
2590-#. module: base_sale_multichannels
2591-#: field:external.shop.group,shop_ids:0
2592-msgid "Sale Shops"
2593-msgstr "Magasins de Vente"
2594-
2595-#. module: base_sale_multichannels
2596-#: field:external.shop.group,name:0
2597-msgid "Name"
2598-msgstr "Nom"
2599-
2600-#. module: base_sale_multichannels
2601-#: field:sale.shop,invoice_quantity:0
2602-msgid "Invoice on"
2603-msgstr "Facture sur"
2604-
2605-#. module: base_sale_multichannels
2606-#: help:sale.shop,order_policy:0
2607-msgid ""
2608-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
2609-" - The 'Pay before delivery' choice will first generate the invoice and "
2610-"then generate the packing order after the payment of this invoice.\n"
2611-" - The 'Shipping & Manual Invoice' will create the packing order directly "
2612-"and wait for the user to manually click on the 'Invoice' button to generate "
2613-"the draft invoice.\n"
2614-" - The 'Invoice on Order After Delivery' choice will generate the draft "
2615-"invoice based on sale order after all packing lists have been finished.\n"
2616-" - The 'Invoice from the packing' choice is used to create an invoice "
2617-"during the packing process."
2618-msgstr ""
2619-
2620-#. module: base_sale_multichannels
2621-#: field:sale.shop,last_inventory_export_date:0
2622-msgid "Last Inventory Export Time"
2623-msgstr "Date du Dernier Export d'Inventaire"
2624-
2625-#. module: base_sale_multichannels
2626-#: field:external.referential,shop_group_ids:0
2627-msgid "Sub Entities"
2628-msgstr "Sous Entité"
2629-
2630-#. module: base_sale_multichannels
2631-#: field:sale.shop,referential_id:0
2632-msgid "External Referential"
2633-msgstr "Référentiel Externe"
2634-
2635-#. module: base_sale_multichannels
2636-#: selection:sale.shop,order_policy:0
2637-msgid "Payment Before Delivery"
2638-msgstr "Paiement Avant Livraison"
2639-
2640-#. module: base_sale_multichannels
2641-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
2642-msgid "Base Sale MultiChannels"
2643-msgstr "Ventes en Multi Canaux"
2644-
2645-#. module: base_sale_multichannels
2646-#: view:sale.shop:0
2647-#: field:sale.shop,exportable_product_ids:0
2648-msgid "Exportable Products"
2649-msgstr "Produits Exportables"
2650-
2651-#. module: base_sale_multichannels
2652-#: view:sale.shop:0
2653-msgid "Import Orders"
2654-msgstr "Import des Commandes"
2655-
2656-#. module: base_sale_multichannels
2657-#: field:sale.shop,picking_generation_policy:0
2658-msgid "Picking Generation Policy"
2659-msgstr ""
2660-
2661-#. module: base_sale_multichannels
2662-#: help:sale.shop,invoice_generation_policy:0
2663-msgid "Should orders create an invoice after import?"
2664-msgstr ""
2665-
2666-#. module: base_sale_multichannels
2667-#: field:sale.shop,last_update_order_export_date:0
2668-msgid "Last Order Update Time"
2669-msgstr "Date de la dernière mise à jour des commandes"
2670-
2671-#. module: base_sale_multichannels
2672-#: help:sale.shop,picking_generation_policy:0
2673-msgid "Should orders create a picking after import?"
2674-msgstr ""
2675-
2676-#. module: base_sale_multichannels
2677-#: selection:sale.shop,invoice_generation_policy:0
2678-#: selection:sale.shop,picking_generation_policy:0
2679-msgid "Validated"
2680-msgstr ""
2681-
2682-#. module: base_sale_multichannels
2683-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
2684-msgid "External Referential Shop Group"
2685-msgstr "Référence Externe du Groupe de Magasin"
2686-
2687-#. module: base_sale_multichannels
2688-#: view:sale.shop:0
2689-msgid "Export Stock Levels Only"
2690-msgstr "Export des niveaux de Stock Seulement"
2691-
2692-#. module: base_sale_multichannels
2693-#: selection:sale.shop,order_policy:0
2694-msgid "Shipping & Manual Invoice"
2695-msgstr "Expédition et Facture Manuelle"
2696-
2697-#. module: base_sale_multichannels
2698-#: view:sale.shop:0
2699-msgid "Actions"
2700-msgstr "Actions"
2701-
2702-#. module: base_sale_multichannels
2703-#: field:sale.shop,exportable_root_category_ids:0
2704-msgid "Root Category"
2705-msgstr ""
2706-
2707-#. module: base_sale_multichannels
2708-#: field:sale.shop,is_tax_included:0
2709-msgid "Prices Include Tax?"
2710-msgstr ""
2711-
2712-#. module: base_sale_multichannels
2713-#: view:sale.shop:0
2714-msgid "Sale Shop"
2715-msgstr "Magasin de Vente"
2716-
2717-#. module: base_sale_multichannels
2718-#: view:sale.shop:0
2719-msgid "Sale Multi Channels"
2720-msgstr "Vente Multi Canaux"
2721-
2722-#. module: base_sale_multichannels
2723-#: view:sale.shop:0
2724-msgid "Orders"
2725-msgstr "Commandes"
2726
2727=== removed file 'base_sale_multichannels/i18n/pt.po'
2728--- base_sale_multichannels/i18n/pt.po 2012-02-27 18:49:05 +0000
2729+++ base_sale_multichannels/i18n/pt.po 1970-01-01 00:00:00 +0000
2730@@ -1,379 +0,0 @@
2731-# Portuguese translation for openobject-addons
2732-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
2733-# This file is distributed under the same license as the openobject-addons package.
2734-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
2735-#
2736-msgid ""
2737-msgstr ""
2738-"Project-Id-Version: openobject-addons\n"
2739-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
2740-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
2741-"PO-Revision-Date: 2011-02-14 10:04+0000\n"
2742-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
2743-"Language-Team: Portuguese <pt@li.org>\n"
2744-"MIME-Version: 1.0\n"
2745-"Content-Type: text/plain; charset=UTF-8\n"
2746-"Content-Transfer-Encoding: 8bit\n"
2747-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
2748-"X-Generator: Launchpad (build 14676)\n"
2749-
2750-#. module: base_sale_multichannels
2751-#: selection:sale.shop,picking_policy:0
2752-msgid "Partial Delivery"
2753-msgstr "Entrega Parcial"
2754-
2755-#. module: base_sale_multichannels
2756-#: constraint:ir.model:0
2757-msgid ""
2758-"The Object name must start with x_ and not contain any special character !"
2759-msgstr ""
2760-"O nome do Objecto deve começar com x_ e não pode conter nenhum caracter "
2761-"especial !"
2762-
2763-#. module: base_sale_multichannels
2764-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
2765-msgid ""
2766-"\n"
2767-"This module provide an abstract common minimal base to multi-channels "
2768-"sales.\n"
2769-"Say you want to expose your product catalog to\n"
2770-"* several instances of flashy-sluggish Magento web sites\n"
2771-"* a cutting edge Spree web shop\n"
2772-"* a Neteven online Marketplace\n"
2773-"* EBay\n"
2774-"* Amazon\n"
2775-"* Google Base\n"
2776-"* an external Point Of Sale system\n"
2777-"* ...\n"
2778-"Then this module allows you to:\n"
2779-"* use several external references ids on every OpenERP object matching those "
2780-"all those external referentials\n"
2781-"* per referential instance, use several sale sub platform entities (ex: "
2782-"several Magento websites per instance)\n"
2783-"* per sub platform, use several shops (ex: several Magento web shops per "
2784-"website)\n"
2785-"\n"
2786-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
2787-"the interfaces to:\n"
2788-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
2789-"* import the catalog\n"
2790-"* import orders\n"
2791-"* export orders/picking status\n"
2792-" "
2793-msgstr ""
2794-"\n"
2795-"Este módulo fornece uma base comum mínima abstrata para vendas multi-"
2796-"canais.\n"
2797-"Digamos que queira expor o seu catálogo de produto para\n"
2798-"* várias instâncias de wev sites Magento flashy-sluggish\n"
2799-"* Uma loja online Spree de ponta\n"
2800-"* Uma Mercado Local online de Neteven\n"
2801-"* EBay\n"
2802-"* Amazon\n"
2803-"* Google Base\n"
2804-"* um sistema externo de Ponto de Venda\n"
2805-"* ...\n"
2806-"Então, este módulo permite-lhe fazer:\n"
2807-"* utilizar vários id externos de referência em cada objecto OpenERP "
2808-"correspondente a todas as referências externas\n"
2809-"* por referência de instância utilizar várias entradas de sub-plantaformas "
2810-"de vendas (ex: várias páginas web Magento por instância)\n"
2811-"* por sub-plantaforma, utilizar várias lojas (ec: várias lojas web Magento "
2812-"por página web)\n"
2813-"\n"
2814-"Para cada loja de venda (sale.shop.object correspondente OpenERP), este "
2815-"módulo abstrata as interfaces para:\n"
2816-"* exportar o catálogo,nível sensato de stock no armazém da loja, lista de "
2817-"preço justo da loja \n"
2818-"* importar o catálogo\n"
2819-"* importar ordens\n"
2820-"* exportar ordens/estado da recolha\n"
2821-" "
2822-
2823-#. module: base_sale_multichannels
2824-#: field:sale.shop,order_policy:0
2825-msgid "Shipping Policy"
2826-msgstr "Política de Expedição"
2827-
2828-#. module: base_sale_multichannels
2829-#: selection:sale.shop,invoice_generation_policy:0
2830-#: selection:sale.shop,picking_generation_policy:0
2831-msgid "None"
2832-msgstr "Nenhum"
2833-
2834-#. module: base_sale_multichannels
2835-#: selection:sale.shop,invoice_quantity:0
2836-msgid "Shipped Quantities"
2837-msgstr "Quantidades Enviadas"
2838-
2839-#. module: base_sale_multichannels
2840-#: field:external.shop.group,referential_id:0
2841-msgid "Referential"
2842-msgstr "Referencial"
2843-
2844-#. module: base_sale_multichannels
2845-#: selection:sale.shop,invoice_generation_policy:0
2846-#: selection:sale.shop,picking_generation_policy:0
2847-msgid "Draft"
2848-msgstr "Rascunho"
2849-
2850-#. module: base_sale_multichannels
2851-#: help:sale.shop,invoice_quantity:0
2852-msgid ""
2853-"The sale order will automatically create the invoice proposition (draft "
2854-"invoice). Ordered and delivered quantities may not be the same. You have to "
2855-"choose if you invoice based on ordered or shipped quantities. If the product "
2856-"is a service, shipped quantities means hours spent on the associated tasks."
2857-msgstr ""
2858-"A ordem de venda vai automáticamente criar uma proposta de factura (factura "
2859-"de rascunho). Quantidades entregues e ordenadas podem não ser a mesma. Vai "
2860-"ter que escolher se a sua factura é baseada em ordenada ou quantidades "
2861-"enviadas. Se o produto é um serviço, quantidades enviadas significa horas "
2862-"gastas nas tarefas associadas."
2863-
2864-#. module: base_sale_multichannels
2865-#: field:sale.shop,shop_group_id:0
2866-msgid "Shop Group"
2867-msgstr "Grupo de Loja"
2868-
2869-#. module: base_sale_multichannels
2870-#: field:product.category,recursive_childen_ids:0
2871-msgid "All Child Categories"
2872-msgstr "Todas as Categorias Descendentes"
2873-
2874-#. module: base_sale_multichannels
2875-#: view:sale.shop:0
2876-msgid "Update Orders Status"
2877-msgstr "Estado das Ordens Actualizadas"
2878-
2879-#. module: base_sale_multichannels
2880-#: help:sale.shop,picking_policy:0
2881-msgid ""
2882-"If you don't have enough stock available to deliver all at once, do you "
2883-"accept partial shipments or not?"
2884-msgstr ""
2885-"Se não tiver stock sufeciente desponível para entregar de uma vez, aceita "
2886-"transferência parciais ou não?"
2887-
2888-#. module: base_sale_multichannels
2889-#: help:account.journal,external_payment_codes:0
2890-msgid ""
2891-"Enter the external payment codes, comma separated. They will be used to "
2892-"select the payment journal."
2893-msgstr ""
2894-"Entrar com os códigos de pagamento externo, vírgula separada. Eles serão "
2895-"utilizados para selecionar o diário de pagamento."
2896-
2897-#. module: base_sale_multichannels
2898-#: field:sale.shop,picking_policy:0
2899-msgid "Packing Policy"
2900-msgstr "Política de Embalagem"
2901-
2902-#. module: base_sale_multichannels
2903-#: selection:sale.shop,picking_policy:0
2904-msgid "Complete Delivery"
2905-msgstr "Entrega completa"
2906-
2907-#. module: base_sale_multichannels
2908-#: field:sale.shop,invoice_generation_policy:0
2909-msgid "Invoice Generation Policy"
2910-msgstr "Politica de Geração de Factura"
2911-
2912-#. module: base_sale_multichannels
2913-#: selection:sale.shop,invoice_quantity:0
2914-msgid "Ordered Quantities"
2915-msgstr "Quantidades Ordenadas"
2916-
2917-#. module: base_sale_multichannels
2918-#: help:sale.shop,is_tax_included:0
2919-msgid "Requires sale_tax_include module to be installed"
2920-msgstr "Requere que o módulo sale_tax_include seja instalado"
2921-
2922-#. module: base_sale_multichannels
2923-#: view:sale.shop:0
2924-msgid "Catalog"
2925-msgstr "Catálogo"
2926-
2927-#. module: base_sale_multichannels
2928-#: view:sale.shop:0
2929-msgid "External Shop Settings"
2930-msgstr "Definições da Loja Externa"
2931-
2932-#. module: base_sale_multichannels
2933-#: view:sale.shop:0
2934-msgid "Export Catalog"
2935-msgstr "Exportar Catálogo"
2936-
2937-#. module: base_sale_multichannels
2938-#: selection:sale.shop,order_policy:0
2939-msgid "Invoice from the Packing"
2940-msgstr "Factura de Embalagem"
2941-
2942-#. module: base_sale_multichannels
2943-#: view:sale.shop:0
2944-msgid "Order Generation"
2945-msgstr "Ordem de Geração"
2946-
2947-#. module: base_sale_multichannels
2948-#: field:account.journal,external_payment_codes:0
2949-msgid "External Payment Codes"
2950-msgstr "Códigos de Pagamento Externo"
2951-
2952-#. module: base_sale_multichannels
2953-#: selection:sale.shop,order_policy:0
2954-msgid "Invoice on Order After Delivery"
2955-msgstr "Ordem Facturada Antes da Entrega"
2956-
2957-#. module: base_sale_multichannels
2958-#: constraint:ir.ui.view:0
2959-msgid "Invalid XML for View Architecture!"
2960-msgstr "XML Inválido para a Arquitectura de Vista!"
2961-
2962-#. module: base_sale_multichannels
2963-#: field:external.shop.group,shop_ids:0
2964-msgid "Sale Shops"
2965-msgstr "Lojas de Vendas"
2966-
2967-#. module: base_sale_multichannels
2968-#: field:external.shop.group,name:0
2969-msgid "Name"
2970-msgstr "Nome"
2971-
2972-#. module: base_sale_multichannels
2973-#: field:sale.shop,invoice_quantity:0
2974-msgid "Invoice on"
2975-msgstr "Facturado em"
2976-
2977-#. module: base_sale_multichannels
2978-#: help:sale.shop,order_policy:0
2979-msgid ""
2980-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
2981-" - The 'Pay before delivery' choice will first generate the invoice and "
2982-"then generate the packing order after the payment of this invoice.\n"
2983-" - The 'Shipping & Manual Invoice' will create the packing order directly "
2984-"and wait for the user to manually click on the 'Invoice' button to generate "
2985-"the draft invoice.\n"
2986-" - The 'Invoice on Order After Delivery' choice will generate the draft "
2987-"invoice based on sale order after all packing lists have been finished.\n"
2988-" - The 'Invoice from the packing' choice is used to create an invoice "
2989-"during the packing process."
2990-msgstr ""
2991-"A Políca de Entrega é utilizada para sincronizar a factura e as operações de "
2992-"entrega.\n"
2993-" - A escolha 'Pagar antes de entregar' vai gerar a factura e em seguida "
2994-"gerar uma ordem de embalagem depois do pagamento desta factura.\n"
2995-" - O 'Envio & Factura Manual' vai criar directamente a ordem de embalagem "
2996-"e esperar para que o utilizador clique manualmente no botão 'factura' para "
2997-"gerar uma factura rascunho.\n"
2998-" - A escolha 'Factura em Ordem Antes da Entrega' vai gerar uma factura "
2999-"rascunho baseada na ordem de venda depois de todas as listas de embalagem "
3000-"tenham terminado.\n"
3001-" - A escolha 'Factura a partir da embalagem' é utilizada para criar uma "
3002-"factura durante o processo de embalagem."
3003-
3004-#. module: base_sale_multichannels
3005-#: field:sale.shop,last_inventory_export_date:0
3006-msgid "Last Inventory Export Time"
3007-msgstr "Último Inventário de Exportação de Tempo"
3008-
3009-#. module: base_sale_multichannels
3010-#: field:external.referential,shop_group_ids:0
3011-msgid "Sub Entities"
3012-msgstr "Sub Movimentos"
3013-
3014-#. module: base_sale_multichannels
3015-#: field:sale.shop,referential_id:0
3016-msgid "External Referential"
3017-msgstr "Referencial Externa"
3018-
3019-#. module: base_sale_multichannels
3020-#: selection:sale.shop,order_policy:0
3021-msgid "Payment Before Delivery"
3022-msgstr "Pagamento Antes da Entrega"
3023-
3024-#. module: base_sale_multichannels
3025-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
3026-msgid "Base Sale MultiChannels"
3027-msgstr "Venda Base de Multi-Canais"
3028-
3029-#. module: base_sale_multichannels
3030-#: view:sale.shop:0
3031-#: field:sale.shop,exportable_product_ids:0
3032-msgid "Exportable Products"
3033-msgstr "Produtos Exportados"
3034-
3035-#. module: base_sale_multichannels
3036-#: view:sale.shop:0
3037-msgid "Import Orders"
3038-msgstr "Importar Ordem"
3039-
3040-#. module: base_sale_multichannels
3041-#: field:sale.shop,picking_generation_policy:0
3042-msgid "Picking Generation Policy"
3043-msgstr "Política de Recolha de Geração"
3044-
3045-#. module: base_sale_multichannels
3046-#: help:sale.shop,invoice_generation_policy:0
3047-msgid "Should orders create an invoice after import?"
3048-msgstr "As ordens devem criar uma factura depois da importação?"
3049-
3050-#. module: base_sale_multichannels
3051-#: field:sale.shop,last_update_order_export_date:0
3052-msgid "Last Order Update Time"
3053-msgstr "Última Actualização da Ordem Tempo"
3054-
3055-#. module: base_sale_multichannels
3056-#: help:sale.shop,picking_generation_policy:0
3057-msgid "Should orders create a picking after import?"
3058-msgstr "As ordens devem criar uma recolha depois da importação?"
3059-
3060-#. module: base_sale_multichannels
3061-#: selection:sale.shop,invoice_generation_policy:0
3062-#: selection:sale.shop,picking_generation_policy:0
3063-msgid "Validated"
3064-msgstr "Validado"
3065-
3066-#. module: base_sale_multichannels
3067-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
3068-msgid "External Referential Shop Group"
3069-msgstr "Referencia Externa Grupo de Loja"
3070-
3071-#. module: base_sale_multichannels
3072-#: view:sale.shop:0
3073-msgid "Export Stock Levels Only"
3074-msgstr "Exportar Somente os Níveis de Stock"
3075-
3076-#. module: base_sale_multichannels
3077-#: selection:sale.shop,order_policy:0
3078-msgid "Shipping & Manual Invoice"
3079-msgstr "Expedição e Factura Manual"
3080-
3081-#. module: base_sale_multichannels
3082-#: view:sale.shop:0
3083-msgid "Actions"
3084-msgstr "Acção"
3085-
3086-#. module: base_sale_multichannels
3087-#: field:sale.shop,exportable_root_category_ids:0
3088-msgid "Root Category"
3089-msgstr "Categoria Raíz"
3090-
3091-#. module: base_sale_multichannels
3092-#: field:sale.shop,is_tax_included:0
3093-msgid "Prices Include Tax?"
3094-msgstr "Preços Incluem Impostos?"
3095-
3096-#. module: base_sale_multichannels
3097-#: view:sale.shop:0
3098-msgid "Sale Shop"
3099-msgstr "Loja de Venda"
3100-
3101-#. module: base_sale_multichannels
3102-#: view:sale.shop:0
3103-msgid "Sale Multi Channels"
3104-msgstr "Venda Multi Canais"
3105-
3106-#. module: base_sale_multichannels
3107-#: view:sale.shop:0
3108-msgid "Orders"
3109-msgstr "Ordem"
3110
3111=== removed file 'base_sale_multichannels/i18n/sv.po'
3112--- base_sale_multichannels/i18n/sv.po 2012-02-27 18:49:05 +0000
3113+++ base_sale_multichannels/i18n/sv.po 1970-01-01 00:00:00 +0000
3114@@ -1,327 +0,0 @@
3115-# Translation of OpenERP Server.
3116-# This file contains the translation of the following modules:
3117-# * base_sale_multichannels
3118-#
3119-msgid ""
3120-msgstr ""
3121-"Project-Id-Version: OpenERP Server 5.0.14\n"
3122-"Report-Msgid-Bugs-To: support@openerp.com\n"
3123-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
3124-"PO-Revision-Date: 2011-02-14 11:51+0000\n"
3125-"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
3126-"Language-Team: \n"
3127-"MIME-Version: 1.0\n"
3128-"Content-Type: text/plain; charset=UTF-8\n"
3129-"Content-Transfer-Encoding: 8bit\n"
3130-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
3131-"X-Generator: Launchpad (build 14676)\n"
3132-
3133-#. module: base_sale_multichannels
3134-#: selection:sale.shop,picking_policy:0
3135-msgid "Partial Delivery"
3136-msgstr ""
3137-
3138-#. module: base_sale_multichannels
3139-#: constraint:ir.model:0
3140-msgid ""
3141-"The Object name must start with x_ and not contain any special character !"
3142-msgstr ""
3143-
3144-#. module: base_sale_multichannels
3145-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
3146-msgid ""
3147-"\n"
3148-"This module provide an abstract common minimal base to multi-channels "
3149-"sales.\n"
3150-"Say you want to expose your product catalog to\n"
3151-"* several instances of flashy-sluggish Magento web sites\n"
3152-"* a cutting edge Spree web shop\n"
3153-"* a Neteven online Marketplace\n"
3154-"* EBay\n"
3155-"* Amazon\n"
3156-"* Google Base\n"
3157-"* an external Point Of Sale system\n"
3158-"* ...\n"
3159-"Then this module allows you to:\n"
3160-"* use several external references ids on every OpenERP object matching those "
3161-"all those external referentials\n"
3162-"* per referential instance, use several sale sub platform entities (ex: "
3163-"several Magento websites per instance)\n"
3164-"* per sub platform, use several shops (ex: several Magento web shops per "
3165-"website)\n"
3166-"\n"
3167-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
3168-"the interfaces to:\n"
3169-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
3170-"* import the catalog\n"
3171-"* import orders\n"
3172-"* export orders/picking status\n"
3173-" "
3174-msgstr ""
3175-
3176-#. module: base_sale_multichannels
3177-#: field:sale.shop,order_policy:0
3178-msgid "Shipping Policy"
3179-msgstr ""
3180-
3181-#. module: base_sale_multichannels
3182-#: selection:sale.shop,invoice_generation_policy:0
3183-#: selection:sale.shop,picking_generation_policy:0
3184-msgid "None"
3185-msgstr ""
3186-
3187-#. module: base_sale_multichannels
3188-#: selection:sale.shop,invoice_quantity:0
3189-msgid "Shipped Quantities"
3190-msgstr ""
3191-
3192-#. module: base_sale_multichannels
3193-#: field:external.shop.group,referential_id:0
3194-msgid "Referential"
3195-msgstr ""
3196-
3197-#. module: base_sale_multichannels
3198-#: selection:sale.shop,invoice_generation_policy:0
3199-#: selection:sale.shop,picking_generation_policy:0
3200-msgid "Draft"
3201-msgstr ""
3202-
3203-#. module: base_sale_multichannels
3204-#: help:sale.shop,invoice_quantity:0
3205-msgid ""
3206-"The sale order will automatically create the invoice proposition (draft "
3207-"invoice). Ordered and delivered quantities may not be the same. You have to "
3208-"choose if you invoice based on ordered or shipped quantities. If the product "
3209-"is a service, shipped quantities means hours spent on the associated tasks."
3210-msgstr ""
3211-
3212-#. module: base_sale_multichannels
3213-#: field:sale.shop,shop_group_id:0
3214-msgid "Shop Group"
3215-msgstr ""
3216-
3217-#. module: base_sale_multichannels
3218-#: field:product.category,recursive_childen_ids:0
3219-msgid "All Child Categories"
3220-msgstr ""
3221-
3222-#. module: base_sale_multichannels
3223-#: view:sale.shop:0
3224-msgid "Update Orders Status"
3225-msgstr ""
3226-
3227-#. module: base_sale_multichannels
3228-#: help:sale.shop,picking_policy:0
3229-msgid ""
3230-"If you don't have enough stock available to deliver all at once, do you "
3231-"accept partial shipments or not?"
3232-msgstr ""
3233-
3234-#. module: base_sale_multichannels
3235-#: help:account.journal,external_payment_codes:0
3236-msgid ""
3237-"Enter the external payment codes, comma separated. They will be used to "
3238-"select the payment journal."
3239-msgstr ""
3240-
3241-#. module: base_sale_multichannels
3242-#: field:sale.shop,picking_policy:0
3243-msgid "Packing Policy"
3244-msgstr ""
3245-
3246-#. module: base_sale_multichannels
3247-#: selection:sale.shop,picking_policy:0
3248-msgid "Complete Delivery"
3249-msgstr ""
3250-
3251-#. module: base_sale_multichannels
3252-#: field:sale.shop,invoice_generation_policy:0
3253-msgid "Invoice Generation Policy"
3254-msgstr ""
3255-
3256-#. module: base_sale_multichannels
3257-#: selection:sale.shop,invoice_quantity:0
3258-msgid "Ordered Quantities"
3259-msgstr ""
3260-
3261-#. module: base_sale_multichannels
3262-#: help:sale.shop,is_tax_included:0
3263-msgid "Requires sale_tax_include module to be installed"
3264-msgstr ""
3265-
3266-#. module: base_sale_multichannels
3267-#: view:sale.shop:0
3268-msgid "Catalog"
3269-msgstr ""
3270-
3271-#. module: base_sale_multichannels
3272-#: view:sale.shop:0
3273-msgid "External Shop Settings"
3274-msgstr ""
3275-
3276-#. module: base_sale_multichannels
3277-#: view:sale.shop:0
3278-msgid "Export Catalog"
3279-msgstr ""
3280-
3281-#. module: base_sale_multichannels
3282-#: selection:sale.shop,order_policy:0
3283-msgid "Invoice from the Packing"
3284-msgstr ""
3285-
3286-#. module: base_sale_multichannels
3287-#: view:sale.shop:0
3288-msgid "Order Generation"
3289-msgstr ""
3290-
3291-#. module: base_sale_multichannels
3292-#: field:account.journal,external_payment_codes:0
3293-msgid "External Payment Codes"
3294-msgstr ""
3295-
3296-#. module: base_sale_multichannels
3297-#: selection:sale.shop,order_policy:0
3298-msgid "Invoice on Order After Delivery"
3299-msgstr ""
3300-
3301-#. module: base_sale_multichannels
3302-#: constraint:ir.ui.view:0
3303-msgid "Invalid XML for View Architecture!"
3304-msgstr ""
3305-
3306-#. module: base_sale_multichannels
3307-#: field:external.shop.group,shop_ids:0
3308-msgid "Sale Shops"
3309-msgstr ""
3310-
3311-#. module: base_sale_multichannels
3312-#: field:external.shop.group,name:0
3313-msgid "Name"
3314-msgstr ""
3315-
3316-#. module: base_sale_multichannels
3317-#: field:sale.shop,invoice_quantity:0
3318-msgid "Invoice on"
3319-msgstr ""
3320-
3321-#. module: base_sale_multichannels
3322-#: help:sale.shop,order_policy:0
3323-msgid ""
3324-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
3325-" - The 'Pay before delivery' choice will first generate the invoice and "
3326-"then generate the packing order after the payment of this invoice.\n"
3327-" - The 'Shipping & Manual Invoice' will create the packing order directly "
3328-"and wait for the user to manually click on the 'Invoice' button to generate "
3329-"the draft invoice.\n"
3330-" - The 'Invoice on Order After Delivery' choice will generate the draft "
3331-"invoice based on sale order after all packing lists have been finished.\n"
3332-" - The 'Invoice from the packing' choice is used to create an invoice "
3333-"during the packing process."
3334-msgstr ""
3335-
3336-#. module: base_sale_multichannels
3337-#: field:sale.shop,last_inventory_export_date:0
3338-msgid "Last Inventory Export Time"
3339-msgstr ""
3340-
3341-#. module: base_sale_multichannels
3342-#: field:external.referential,shop_group_ids:0
3343-msgid "Sub Entities"
3344-msgstr ""
3345-
3346-#. module: base_sale_multichannels
3347-#: field:sale.shop,referential_id:0
3348-msgid "External Referential"
3349-msgstr ""
3350-
3351-#. module: base_sale_multichannels
3352-#: selection:sale.shop,order_policy:0
3353-msgid "Payment Before Delivery"
3354-msgstr ""
3355-
3356-#. module: base_sale_multichannels
3357-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
3358-msgid "Base Sale MultiChannels"
3359-msgstr "Base Sale MultiChannels"
3360-
3361-#. module: base_sale_multichannels
3362-#: view:sale.shop:0
3363-#: field:sale.shop,exportable_product_ids:0
3364-msgid "Exportable Products"
3365-msgstr ""
3366-
3367-#. module: base_sale_multichannels
3368-#: view:sale.shop:0
3369-msgid "Import Orders"
3370-msgstr ""
3371-
3372-#. module: base_sale_multichannels
3373-#: field:sale.shop,picking_generation_policy:0
3374-msgid "Picking Generation Policy"
3375-msgstr ""
3376-
3377-#. module: base_sale_multichannels
3378-#: help:sale.shop,invoice_generation_policy:0
3379-msgid "Should orders create an invoice after import?"
3380-msgstr ""
3381-
3382-#. module: base_sale_multichannels
3383-#: field:sale.shop,last_update_order_export_date:0
3384-msgid "Last Order Update Time"
3385-msgstr ""
3386-
3387-#. module: base_sale_multichannels
3388-#: help:sale.shop,picking_generation_policy:0
3389-msgid "Should orders create a picking after import?"
3390-msgstr ""
3391-
3392-#. module: base_sale_multichannels
3393-#: selection:sale.shop,invoice_generation_policy:0
3394-#: selection:sale.shop,picking_generation_policy:0
3395-msgid "Validated"
3396-msgstr ""
3397-
3398-#. module: base_sale_multichannels
3399-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
3400-msgid "External Referential Shop Group"
3401-msgstr ""
3402-
3403-#. module: base_sale_multichannels
3404-#: view:sale.shop:0
3405-msgid "Export Stock Levels Only"
3406-msgstr ""
3407-
3408-#. module: base_sale_multichannels
3409-#: selection:sale.shop,order_policy:0
3410-msgid "Shipping & Manual Invoice"
3411-msgstr ""
3412-
3413-#. module: base_sale_multichannels
3414-#: view:sale.shop:0
3415-msgid "Actions"
3416-msgstr ""
3417-
3418-#. module: base_sale_multichannels
3419-#: field:sale.shop,exportable_root_category_ids:0
3420-msgid "Root Category"
3421-msgstr ""
3422-
3423-#. module: base_sale_multichannels
3424-#: field:sale.shop,is_tax_included:0
3425-msgid "Prices Include Tax?"
3426-msgstr ""
3427-
3428-#. module: base_sale_multichannels
3429-#: view:sale.shop:0
3430-msgid "Sale Shop"
3431-msgstr ""
3432-
3433-#. module: base_sale_multichannels
3434-#: view:sale.shop:0
3435-msgid "Sale Multi Channels"
3436-msgstr ""
3437-
3438-#. module: base_sale_multichannels
3439-#: view:sale.shop:0
3440-msgid "Orders"
3441-msgstr ""
3442
3443=== removed file 'base_sale_multichannels/invoice.py'
3444--- base_sale_multichannels/invoice.py 2012-08-21 13:57:44 +0000
3445+++ base_sale_multichannels/invoice.py 1970-01-01 00:00:00 +0000
3446@@ -1,41 +0,0 @@
3447-# -*- encoding: utf-8 -*-
3448-###############################################################################
3449-# #
3450-# base_sale_multichannels for OpenERP #
3451-# Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com> #
3452-# #
3453-# This program is free software: you can redistribute it and/or modify #
3454-# it under the terms of the GNU Affero General Public License as #
3455-# published by the Free Software Foundation, either version 3 of the #
3456-# License, or (at your option) any later version. #
3457-# #
3458-# This program is distributed in the hope that it will be useful, #
3459-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
3460-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
3461-# GNU Affero General Public License for more details. #
3462-# #
3463-# You should have received a copy of the GNU Affero General Public License #
3464-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
3465-# #
3466-###############################################################################
3467-from openerp.osv.orm import Model
3468-from openerp.osv import fields
3469-
3470-class account_invoice(Model):
3471- _inherit='account.invoice'
3472-
3473- _columns={
3474- 'shop_id': fields.many2one('sale.shop', 'Shop', readonly=True, states={'draft': [('readonly', False)]}),
3475- 'do_not_export': fields.boolean('Do not export',
3476- help="This delivery order will not be exported to the external referential."),
3477- }
3478-
3479- def _prepare_invoice_refund(self, cr, uid, ids, invoice_vals, date=None, period_id=None, description=None, journal_id=None, context=None):
3480- invoice = self.browse(cr, uid, invoice_vals['id'], context=context)
3481- invoice_vals = super(account_invoice, self)._prepare_invoice_refund(cr, uid, ids, invoice_vals, date=date, period_id=period_id,
3482- description=description, journal_id=journal_id, context=context)
3483- invoice_vals.update({
3484- 'sale_ids': [(6,0, [sale.id for sale in invoice.sale_ids])],
3485- 'shop_id': invoice.shop_id.id,
3486- })
3487- return invoice_vals
3488
3489=== removed file 'base_sale_multichannels/invoice_view.xml'
3490--- base_sale_multichannels/invoice_view.xml 2012-04-30 23:38:34 +0000
3491+++ base_sale_multichannels/invoice_view.xml 1970-01-01 00:00:00 +0000
3492@@ -1,19 +0,0 @@
3493-<?xml version="1.0" encoding="utf-8"?>
3494-<openerp>
3495- <data>
3496-
3497- <record id="invoice_form" model="ir.ui.view">
3498- <field name="name">base_sale_multichannel_invoice_form</field>
3499- <field name="model">account.invoice</field>
3500- <field name="inherit_id" ref="account.invoice_form" />
3501- <field name="type">form</field>
3502- <field name="arch" type="xml">
3503- <field name="move_id" position="after">
3504- <field name="shop_id" select="1" />
3505- </field>
3506- </field>
3507- </record>
3508-
3509-
3510- </data>
3511-</openerp>
3512
3513=== removed file 'base_sale_multichannels/partner.py'
3514--- base_sale_multichannels/partner.py 2012-12-26 13:34:03 +0000
3515+++ base_sale_multichannels/partner.py 1970-01-01 00:00:00 +0000
3516@@ -1,54 +0,0 @@
3517-# -*- encoding: utf-8 -*-
3518-#################################################################################
3519-# #
3520-# base_sale_multichannels for OpenERP #
3521-# Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com> #
3522-# #
3523-# This program is free software: you can redistribute it and/or modify #
3524-# it under the terms of the GNU Affero General Public License as #
3525-# published by the Free Software Foundation, either version 3 of the #
3526-# License, or (at your option) any later version. #
3527-# #
3528-# This program is distributed in the hope that it will be useful, #
3529-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
3530-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
3531-# GNU Affero General Public License for more details. #
3532-# #
3533-# You should have received a copy of the GNU Affero General Public License #
3534-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
3535-# #
3536-#################################################################################
3537-
3538-from openerp.osv.orm import Model
3539-from openerp.osv import fields
3540-
3541-
3542-class res_partner(Model):
3543- _inherit='res.partner'
3544-
3545- _columns = {
3546- # defaults_shop_id is deprecated... we should not use it any more !
3547- 'defaults_shop_id': fields.many2one('sale.shop', 'Sale Shop', help="This is the default shop of the customer"),
3548- 'shop_ids': fields.many2many('sale.shop', 'sale_shop_res_partner_rel', 'shop_id', 'partner_id', 'Present in Shops', readonly=True, help="List of shops in which this customer exists."),
3549- }
3550-
3551- # xxx move to BaseConnector _get_import_defaults_res_partner
3552- def _get_default_import_values(self, cr, uid, external_session, mapping_id=None, defaults=None, context=None):
3553- if external_session.sync_from_object._name == 'sale.shop':
3554- shop = external_session.sync_from_object
3555- if not defaults: defaults = {}
3556- defaults.update({
3557- 'lang': shop.default_customer_lang.code,
3558- 'property_account_position': shop.default_fiscal_position.id,
3559- 'property_account_receivable': shop.default_customer_account,
3560- 'shop_ids': [(4, shop.id)],
3561- })
3562- return defaults
3563-
3564-class res_partner_address(Model):
3565- _inherit='res.partner.address'
3566-
3567- def _transform_one_resource(self, *args, **kwargs):
3568- if kwargs.get('parent_data') and kwargs['parent_data'].get('partner_id'):
3569- kwargs['defaults']['partner_id'] = kwargs['parent_data']['parent_id']
3570- return super(res_partner_address, self)._transform_one_resource(*args, **kwargs)
3571
3572=== removed file 'base_sale_multichannels/partner_view.xml'
3573--- base_sale_multichannels/partner_view.xml 2012-09-26 10:22:02 +0000
3574+++ base_sale_multichannels/partner_view.xml 1970-01-01 00:00:00 +0000
3575@@ -1,28 +0,0 @@
3576-<?xml version="1.0" encoding="utf-8"?>
3577-
3578-<!--
3579- Copyright (C) 2012 Akretion (http://www.akretion.com/)
3580- @author Alexis de Lattre <alexis.delattre@akretion.com>
3581- The licence is in the file __openerp__.py
3582--->
3583-
3584-<openerp>
3585-<data>
3586-
3587-
3588-<record id="shop_ids_partner_form" model="ir.ui.view">
3589- <field name="name">shop_ids.partner.form</field>
3590- <field name="model">res.partner</field>
3591- <field name="inherit_id" ref="base.view_partner_form" />
3592- <field name="arch" type="xml">
3593- <page string="History" position="after">
3594- <page string="Shops">
3595- <field name="shop_ids" nolabel="1" colspan="4" />
3596- </page>
3597- </page>
3598- </field>
3599-</record>
3600-
3601-
3602-</data>
3603-</openerp>
3604
3605=== removed file 'base_sale_multichannels/payment_method.py'
3606--- base_sale_multichannels/payment_method.py 2012-08-21 13:57:44 +0000
3607+++ base_sale_multichannels/payment_method.py 1970-01-01 00:00:00 +0000
3608@@ -1,53 +0,0 @@
3609-# -*- encoding: utf-8 -*-
3610-#################################################################################
3611-# #
3612-# base_sale_multichannels for OpenERP #
3613-# Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com> #
3614-# #
3615-# This program is free software: you can redistribute it and/or modify #
3616-# it under the terms of the GNU Affero General Public License as #
3617-# published by the Free Software Foundation, either version 3 of the #
3618-# License, or (at your option) any later version. #
3619-# #
3620-# This program is distributed in the hope that it will be useful, #
3621-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
3622-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
3623-# GNU Affero General Public License for more details. #
3624-# #
3625-# You should have received a copy of the GNU Affero General Public License #
3626-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
3627-# #
3628-#################################################################################
3629-
3630-
3631-from openerp.osv.orm import Model
3632-from openerp.osv import fields
3633-
3634-
3635-
3636-class payment_method(Model):
3637- _inherit = "payment.method"
3638-
3639- _columns = {
3640- 'automatic_update': fields.boolean('Automatic Update',
3641- help=("If the order is not paid, OpenERP will call the external system",
3642- "before each order import in order to know if this order is paid")),
3643- }
3644-
3645- def get_or_create_payment_method(self, cr, uid, payment_method, context=None):
3646- """
3647- try to get id of 'payment_method' or create if not exists
3648- :param str payment_method: payment method like PayPal, etc.
3649- :rtype: int
3650- :return: id of required payment method
3651- """
3652-
3653- pay_method_obj = self.pool.get('payment.method')
3654- method_ids = pay_method_obj.search(cr, uid, [['name', '=ilike', payment_method]],
3655- context=context)
3656- if method_ids:
3657- method_id = method_ids[0]
3658- else:
3659- method_id = pay_method_obj.create(cr, uid, {'name' : payment_method}, context=context)
3660-
3661- return method_id
3662
3663=== removed file 'base_sale_multichannels/payment_method_view.xml'
3664--- base_sale_multichannels/payment_method_view.xml 2012-05-06 17:51:58 +0000
3665+++ base_sale_multichannels/payment_method_view.xml 1970-01-01 00:00:00 +0000
3666@@ -1,39 +0,0 @@
3667-<?xml version="1.0" encoding="utf-8"?>
3668-<!--
3669- sale_quick_payment for OpenERP
3670- Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com>
3671- The licence is in the file __openerp__.py
3672--->
3673-
3674-<openerp>
3675- <data>
3676-
3677- <!-- VIEW FOR THE OBJECT : payment_method -->
3678- <record id="payment_method_view_form" model="ir.ui.view">
3679- <field name="name">sale_automatic_workflow.payment_method.view_form</field>
3680- <field name="model">payment.method</field>
3681- <field name="inherit_id" ref="sale_quick_payment.payment_method_view_form" />
3682- <field eval="16" name="priority"/>
3683- <field name="type">form</field>
3684- <field name="arch" type="xml">
3685- <field name="payment_term_id" position="after">
3686- <field name="automatic_update" />
3687- </field>
3688- </field>
3689- </record>
3690-
3691- <record id="payment_method_view_tree" model="ir.ui.view">
3692- <field name="name">sale_automatic_workflow.payment_method.view_tree</field>
3693- <field name="model">payment.method</field>
3694- <field name="inherit_id" ref="sale_quick_payment.payment_method_view_tree" />
3695- <field eval="16" name="priority"/>
3696- <field name="type">tree</field>
3697- <field name="arch" type="xml">
3698- <field name="payment_term_id" position="after">
3699- <field name="automatic_update" />
3700- </field>
3701- </field>
3702- </record>
3703-
3704- </data>
3705-</openerp>
3706
3707=== removed file 'base_sale_multichannels/product.py'
3708--- base_sale_multichannels/product.py 2013-01-04 10:15:39 +0000
3709+++ base_sale_multichannels/product.py 1970-01-01 00:00:00 +0000
3710@@ -1,152 +0,0 @@
3711- # -*- encoding: utf-8 -*-
3712-###############################################################################
3713-# #
3714-# base_sale_multichannels for OpenERP #
3715-# Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@akretion.com> #
3716-# #
3717-# This program is free software: you can redistribute it and/or modify #
3718-# it under the terms of the GNU Affero General Public License as #
3719-# published by the Free Software Foundation, either version 3 of the #
3720-# License, or (at your option) any later version. #
3721-# #
3722-# This program is distributed in the hope that it will be useful, #
3723-# but WITHOUT ANY WARRANTY; without even the implied warranty of #
3724-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
3725-# GNU Affero General Public License for more details. #
3726-# #
3727-# You should have received a copy of the GNU Affero General Public License #
3728-# along with this program. If not, see <http://www.gnu.org/licenses/>. #
3729-# #
3730-###############################################################################
3731-
3732-
3733-from openerp.osv.orm import Model
3734-from openerp.osv import fields
3735-from base_external_referentials.decorator import only_for_referential
3736-from base_external_referentials.decorator import commit_now
3737-
3738-class product_product(Model):
3739- _inherit='product.product'
3740-
3741- def _check_if_export(self, cr, uid, external_session, product, context=None):
3742- if context.get('export_product') == 'simple':
3743- return True
3744- return False
3745-
3746- @only_for_referential(ref_categ ='Multichannel Sale')
3747- def _get_last_exported_date(self, cr, uid, external_session, context=None):
3748- shop = external_session.sync_from_object
3749- if context.get('export_product') == 'simple':
3750- return shop.last_products_export_date
3751- elif context.get('export_product') == 'special':
3752- return shop.last_special_products_export_date
3753- return False
3754-
3755- @only_for_referential(ref_categ ='Multichannel Sale')
3756- @commit_now
3757- def _set_last_exported_date(self, cr, uid, external_session, date, context=None):
3758- shop = external_session.sync_from_object
3759- if context.get('export_product') == 'simple':
3760- return self.pool.get('sale.shop').write(cr, uid, shop.id, {'last_products_export_date': date}, context=context)
3761- elif context.get('export_product') == 'special':
3762- return self.pool.get('sale.shop').write(cr, uid, shop.id, {'last_special_products_export_date': date}, context=context)
3763-
3764- @only_for_referential(ref_categ ='Multichannel Sale')
3765- def get_ids_and_update_date(self, cr, uid, external_session, ids=None, last_exported_date=None, context=None):
3766- res = (), {} # list of ids, dict of ids to date_changed
3767- shop = external_session.sync_from_object
3768- if shop.exportable_product_ids:
3769- product_ids = [product.id for product in shop.exportable_product_ids if self._check_if_export(cr, uid, external_session, product, context=context)]
3770- if ids:
3771- product_ids = set(ids).intersection(set(product_ids))
3772- if product_ids:
3773- res = super(product_product, self).get_ids_and_update_date(cr, uid, external_session,
3774- ids=product_ids,
3775- last_exported_date=last_exported_date,
3776- context=context)
3777- return res
3778-
3779- def _get_categories_ids_for_shop(self, cr, uid, product_id, shop_id, context=None):
3780- shop_obj = self.pool.get('sale.shop')
3781- shop_values = shop_obj.read(cr, uid, shop_id,
3782- ['exportable_category_ids'],
3783- context=context)
3784- shop_categ_ids = set(shop_values['exportable_category_ids'])
3785- product = self.read(cr, uid, product_id, ['categ_ids', 'categ_id'], context=context)
3786- product_categ_ids = set(product['categ_ids'])
3787- product_categ_ids.add(product['categ_id'][0])
3788- return list(product_categ_ids & shop_categ_ids)
3789-
3790- def _get_or_create_ext_category_ids_for_shop(self, cr, uid, external_session, product_id, context=None):
3791- res = []
3792- categ_obj = self.pool.get('product.category')
3793- for oe_categ_id in self._get_categories_ids_for_shop(cr, uid, product_id, external_session.sync_from_object.id, context=context):
3794- res.append(categ_obj.get_or_create_extid(cr, uid, external_session, oe_categ_id, context=context))
3795- return res
3796-
3797-class product_template(Model):
3798- _inherit = 'product.template'
3799-
3800- #TODO implement set function and also support multi tax
3801- def _get_tax_group_id(self, cr, uid, ids, field_name, args, context=None):
3802- result = {}
3803- for product in self.browse(cr, uid, ids, context=context):
3804- result[product.id] = product.taxes_id and product.taxes_id[0].group_id.id
3805- return result
3806-
3807- _columns = {
3808- 'tax_group_id': fields.function(_get_tax_group_id,
3809- string='Tax Group',
3810- type='many2one',
3811- relation='account.tax.group',
3812- store=False,
3813- help=('Tax group are use with some external',
3814- ' system like magento or prestashop')),
3815- }
3816-
3817-
3818-class product_category(Model):
3819- _inherit = "product.category"
3820-
3821- def collect_children(self, category, children=None):
3822- if children is None:
3823- children = []
3824-
3825- for child in category.child_id:
3826- children.append(child.id)
3827- self.collect_children(child, children)
3828-
3829- return children
3830-
3831- def _get_recursive_children_ids(self, cr, uid, ids, name, args, context=None):
3832- res = {}
3833- for category in self.browse(cr, uid, ids):
3834- res[category.id] = self.collect_children(category, [category.id])
3835- return res
3836-
3837- _columns = {
3838- 'recursive_children_ids': fields.function(_get_recursive_children_ids, method=True, type='one2many', relation="product.category", string='All Child Categories'),
3839- }
3840-
3841- @only_for_referential(ref_categ ='Multichannel Sale')
3842- def _get_last_exported_date(self, cr, uid, external_session, context=None):
3843- shop = external_session.sync_from_object
3844- return shop.last_category_export_date
3845-
3846- @only_for_referential(ref_categ ='Multichannel Sale')
3847- @commit_now
3848- def _set_last_exported_date(self, cr, uid, external_session, date, context=None):
3849- shop = external_session.sync_from_object
3850- return self.pool.get('sale.shop').write(cr, uid, shop.id, {'last_category_export_date': date}, context=context)
3851-
3852- def get_ids_and_update_date(self, cr, uid, external_session, ids=None, last_exported_date=None, context=None):
3853- shop = external_session.sync_from_object
3854- if shop.exportable_category_ids:
3855- res = super(product_category, self).get_ids_and_update_date(cr, uid, external_session,
3856- ids=[categ.id for categ in shop.exportable_category_ids],
3857- last_exported_date=last_exported_date,
3858- context=context)
3859- else:
3860- res = (), {} # list of ids, dict of ids to date_changed
3861- return res
3862-
3863
3864=== removed file 'base_sale_multichannels/sale.py'
3865--- base_sale_multichannels/sale.py 2013-01-14 07:40:50 +0000
3866+++ base_sale_multichannels/sale.py 1970-01-01 00:00:00 +0000
3867@@ -1,971 +0,0 @@
3868-# -*- encoding: utf-8 -*-
3869-#########################################################################
3870-# #
3871-# Copyright (C) 2009 Raphaël Valyi #
3872-# Copyright (C) 2010-2011 Akretion Sébastien BEAU #
3873-# <sebastien.beau@akretion.com> #
3874-# Copyright (C) 2011-2012 Camptocamp Guewen Baconnier #
3875-# Copyright (C) 2011 by Openlabs Technologies & Consulting (P) Limited #
3876-# #
3877-#This program is free software: you can redistribute it and/or modify #
3878-#it under the terms of the GNU General Public License as published by #
3879-#the Free Software Foundation, either version 3 of the License, or #
3880-#(at your option) any later version. #
3881-# #
3882-#This program is distributed in the hope that it will be useful, #
3883-#but WITHOUT ANY WARRANTY; without even the implied warranty of #
3884-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
3885-#GNU General Public License for more details. #
3886-# #
3887-#You should have received a copy of the GNU General Public License #
3888-#along with this program. If not, see <http://www.gnu.org/licenses/>. #
3889-#########################################################################
3890-
3891-from openerp.osv.orm import Model
3892-from openerp.osv import fields
3893-from openerp.osv.osv import except_osv
3894-import pooler
3895-from sets import Set as set
3896-import netsvc
3897-from tools.translate import _
3898-import time
3899-import decimal_precision as dp
3900-from datetime import datetime, timedelta
3901-from dateutil.relativedelta import relativedelta
3902-from tools import DEFAULT_SERVER_DATETIME_FORMAT, DEFAULT_SERVER_DATE_FORMAT
3903-from base_external_referentials.external_osv import ExternalSession
3904-from base_external_referentials.decorator import open_report
3905-from base_external_referentials.decorator import catch_error_in_report
3906-
3907-#TODO use external_session.logger when it's posible
3908-import logging
3909-_logger = logging.getLogger(__name__)
3910-
3911-
3912-class StockPicking(Model):
3913- '''Add a flag for marking picking as exported'''
3914- _inherit = 'stock.picking'
3915-
3916- _columns = {
3917- 'exported_to_magento': fields.boolean('Exported to Magento',
3918- readonly=True),
3919- }
3920-
3921-
3922-class external_shop_group(Model):
3923- _name = 'external.shop.group'
3924- _description = 'External Referential Shop Group'
3925-
3926- _columns = {
3927- 'name': fields.char('Name', size=64, required=True),
3928- 'referential_id': fields.many2one('external.referential', 'Referential', select=True,
3929- ondelete='cascade'),
3930- 'shop_ids': fields.one2many('sale.shop', 'shop_group_id', 'Sale Shops'),
3931- }
3932-
3933- # xxx move to BaseConnector _get_import_defaults_external_shop_group
3934- def _get_default_import_values(self, cr, uid, external_session, **kwargs):
3935- return {'referential_id' : external_session.referential_id.id}
3936-
3937-
3938-class external_referential(Model):
3939- _inherit = 'external.referential'
3940-
3941- _columns = {
3942- 'shop_group_ids': fields.one2many('external.shop.group', 'referential_id', 'Sub Entities'),
3943- }
3944-
3945-
3946-
3947-class ExternalShippingCreateError(Exception):
3948- """
3949- This error has to be raised when we tried to create a stock.picking on
3950- the external referential and the external referential has failed
3951- to create it. It must be raised only when we are SURE that the
3952- external referential will never be able to create it!
3953- """
3954- pass
3955-
3956-
3957-class sale_shop(Model):
3958- _inherit = "sale.shop"
3959-
3960- def _get_exportable_category_ids(self, cr, uid, ids, name, args, context=None):
3961- res = {}
3962- for shop in self.browse(cr, uid, ids, context=context):
3963- res[shop.id] = set()
3964- for category in shop.exportable_root_category_ids:
3965- res[shop.id] = res[shop.id].union(set(self.pool.get('product.category')._get_recursive_children_ids(cr, uid, [category.id], "", [], context)[category.id]))
3966- res[shop.id] = list(res[shop.id])
3967- return res
3968-
3969- def _get_exportable_product_ids(self, cr, uid, ids, name, args, context=None):
3970- res = {}
3971- for shop in self.read(cr, uid, ids, ['exportable_category_ids'], context=context):
3972- all_categories = shop['exportable_category_ids']
3973-
3974- # If product_m2mcategories module is installed search in main category
3975- # and extra categories. If not, only in main category
3976- cr.execute('select * from ir_module_module where name=%s and state=%s',
3977- ('product_m2mcategories','installed'))
3978- if cr.fetchone():
3979- res[shop['id']] = self.pool.get("product.product").search(cr, uid, ['|',
3980- ('categ_id', 'in', all_categories),('categ_ids', 'in', all_categories)])
3981- else:
3982- res[shop['id']] = self.pool.get("product.product").search(cr, uid,
3983- [('categ_id', 'in', all_categories)])
3984- return res
3985-
3986- def _get_referential_id(self, cr, uid, ids, name, args, context=None):
3987- res = {}
3988- for shop in self.browse(cr, uid, ids, context=context):
3989- if shop.shop_group_id:
3990- res[shop.id] = shop.shop_group_id.referential_id.id
3991- else:
3992- res[shop.id] = shop.referential_integer_id
3993- return res
3994-
3995- def _get_shop_from_shop_group(self, cr, uid, ids, context=None):
3996- return self.pool.get('sale.shop').search(cr, uid, [('shop_group_id', 'in', ids)], context=context)
3997-
3998- def _set_referential_id(self, cr, uid, id, name, value, arg, context=None):
3999- shop = self.browse(cr, uid, id, context=context)
4000- if shop.shop_group_id:
4001- raise except_osv(_("User Error"), _("You can not change the referential of this shop, please change the referential of the shop group!"))
4002- else:
4003- self.write(cr, uid, id, {'referential_integer_id': value}, context=context)
4004- return True
4005-
4006- def _get_shop_ids(self, cr, uid, ids, context=None):
4007- shop_ids=[]
4008- for group in self.pool.get('external.shop.group').browse(cr, uid, ids, context=context):
4009- shop_ids += [shop.id for shop in group.shop_ids]
4010- return shop_ids
4011-
4012- def _get_stock_field_id(self, cr, uid, context=None):
4013- if self.pool.get('ir.module.module').search(cr, uid, [
4014- ['name', '=', 'stock_available_immediately'],
4015- ['state', 'in', ['installed', 'to upgrade']],
4016- ], context=context):
4017- stock_field = 'immediately_usable_qty'
4018- else:
4019- stock_field = 'virtual_available'
4020-
4021- field_ids = self.pool.get('ir.model.fields').search(
4022- cr, uid,
4023- [('model', '=', 'product.product'),
4024- ('name', '=', stock_field)],
4025- context=context)
4026- return field_ids[0]
4027-
4028- #Depending of the e-commerce solution use you can have one or more root category
4029- #If you need only one the value will be stored in the exportable_root_category_ids fields
4030- def _get_rootcategory(self, cr, uid, ids, name, value, context=None):
4031- res = {}
4032- for shop in self.browse(cr, uid, ids, context):
4033- res[shop.id] = shop.exportable_root_category_ids and shop.exportable_root_category_ids[0].id or False
4034- return res
4035-
4036- def _set_rootcategory(self, cr, uid, id, name, value, fnct_inv_arg, context=None):
4037- return self.write(cr, uid, id, {'exportable_root_category_ids': [(6,0,[value])]}, context=context)
4038-
4039- def _get_referential_type_name(self, cr, uid, ids, field_name, arg, context=None):
4040- result = {}
4041- for shop in self.browse(cr, uid, ids):
4042- if shop.referential_id:
4043- result[shop.id] = shop.referential_id.type_id.name
4044- else:
4045- result[shop.id] = False
4046- return result
4047-
4048- _columns = {
4049- 'exportable_category_ids': fields.function(_get_exportable_category_ids, type='many2many', relation="product.category", string='Exportable Categories'),
4050- 'exportable_root_category_ids': fields.many2many('product.category', 'shop_category_rel', 'categ_id', 'shop_id', 'Exportable Root Categories'),
4051- 'exportable_root_category_id':fields.function(_get_rootcategory, fnct_inv = _set_rootcategory, type="many2one", relation="product.category", string="Root Category"),
4052- 'exportable_product_ids': fields.function(_get_exportable_product_ids, type='many2many', relation="product.product", string='Exportable Products'),
4053- 'shop_group_id': fields.many2one('external.shop.group', 'Shop Group', ondelete='cascade'),
4054- 'last_inventory_export_date': fields.datetime('Last Inventory Export Time'),
4055- 'last_images_export_date': fields.datetime('Last Images Export Time'),
4056- 'last_update_order_export_date' : fields.datetime('Last Order Update Time'),
4057- 'last_products_export_date' : fields.datetime('Last Product Export Time'),
4058- 'last_special_products_export_date' : fields.datetime('Last Special Product Export Time'),
4059- 'last_category_export_date' : fields.datetime('Last Category Export Time'),
4060- 'referential_id': fields.function(_get_referential_id,
4061- fnct_inv=_set_referential_id, type='many2one',
4062- relation='external.referential', string='External Referential', store={
4063- 'sale.shop': (lambda self, cr, uid, ids, c={}: ids, ['referential_integer_id', 'shop_group_id'], 10),
4064- 'external.shop.group': (_get_shop_from_shop_group, ['referential_id'], 20),
4065- }),
4066- 'referential_integer_id': fields.integer('Referential Integer ID'),
4067- 'is_tax_included': fields.boolean('Prices Include Tax', help="Does the external system work with Taxes Inclusive Prices ?"),
4068- 'sale_journal': fields.many2one('account.journal', 'Sale Journal'),
4069- 'order_prefix': fields.char('Order Prefix', size=64),
4070- 'default_payment_method_id': fields.many2one('payment.method', 'Payment Method'),
4071- 'default_language': fields.many2one('res.lang', 'Default Language'),
4072- 'default_fiscal_position': fields.many2one('account.fiscal.position', 'Default Fiscal Position'),
4073- 'default_customer_account': fields.many2one('account.account', 'Default Customer Account'),
4074- 'default_customer_lang': fields.many2one('res.lang', 'Default Customer Language'),
4075- 'auto_import': fields.boolean('Automatic Import'),
4076- 'address_id':fields.many2one('res.partner.address', 'Address'),
4077- 'website': fields.char('Website', size=64),
4078- 'image':fields.binary('Image', filters='*.png,*.jpg,*.gif'),
4079- 'use_external_tax': fields.boolean(
4080- 'Use External Taxes',
4081- help="If activated, the external taxes will be applied.\n"
4082- "If not activated, OpenERP will compute them "
4083- "according to default values and fiscal positions."),
4084- 'import_orders_from_date': fields.datetime('Only created after'),
4085- 'check_total_amount': fields.boolean('Check Total Amount', help="The total amount computed by OpenERP should match with the external amount, if not the sale order can not be confirmed."),
4086- 'type_name': fields.function(_get_referential_type_name, type='char', string='Referential type',
4087- store={
4088- 'sale.shop': (lambda self, cr, uid, ids, c={}: ids, ['referential_id', 'shop_group_id'],10)}),
4089- 'product_stock_field_id': fields.many2one(
4090- 'ir.model.fields',
4091- string='Stock Field',
4092- domain="[('model', 'in', ['product.product', 'product.template']),"
4093- " ('ttype', '=', 'float')]",
4094- help="Choose the field of the product which will be used for "
4095- "stock inventory updates.\nIf empty, Quantity Available "
4096- "is used"),
4097- }
4098-
4099- _defaults = {
4100- 'payment_default_id': 1, #required field that would cause trouble if not set when importing
4101- 'auto_import': True,
4102- 'use_external_tax': True,
4103- 'product_stock_field_id': _get_stock_field_id,
4104- }
4105-
4106- def init_context_before_exporting_resource(self, cr, uid, external_session, object_id, resource_name, context=None):
4107- context = super(sale_shop, self).init_context_before_exporting_resource(cr, uid, external_session, object_id, resource_name, context=context)
4108- context['pricelist'] = external_session.sync_from_object.get_pricelist(context=context)
4109- return context
4110-
4111- def get_pricelist(self, cr, uid, id, context=None):
4112- if isinstance(id, list):
4113- id=id[0]
4114- shop = self.browse(cr, uid, id, context=context)
4115- if shop.pricelist_id:
4116- return shop.pricelist_id.id
4117- else:
4118- return self.pool.get('product.pricelist').search(cr, uid, [('type', '=', 'sale'), ('active', '=', True)], context=context)[0]
4119-
4120- def export_catalog(self, cr, uid, ids, context=None):
4121- if context is None: context={}
4122- self.export_resources(cr, uid, ids, 'product.category', context=context)
4123- # In various e-commerce system product can depend of other products
4124- # So the simple product (with no dependency) are exported in priority
4125- # Then the special product (with dependency) are exported at the end
4126- context['export_product'] = 'simple'
4127- self.export_resources(cr, uid, ids, 'product.product', context=context)
4128- context['export_product'] = 'special'
4129- self.export_resources(cr, uid, ids, 'product.product', context=context)
4130- #Export Images
4131- self.export_resources(cr, uid, ids, 'product.images', context=context)
4132-
4133- #TODO export link
4134- #TODO update the last date
4135- #I don't know where it's the best to update it here or in the export functions
4136- #take care about concurent write with different cursor
4137-
4138-
4139- return True
4140-
4141- def export_inventory(self, cr, uid, ids, context=None):
4142- if context is None:
4143- context = {}
4144- for shop in self.browse(cr, uid, ids):
4145- external_session = ExternalSession(shop.referential_id, shop)
4146- self._export_inventory(cr, uid, external_session, ids, context=context)
4147- return True
4148-
4149- def _get_product_ids_for_stock_to_export(self, cr, uid, shop, context=None):
4150- return [product.id for product in shop.exportable_product_ids]
4151-
4152- def _export_inventory(self, cr, uid, external_session, ids, context=None):
4153- shop = external_session.sync_from_object
4154- stock_move_obj = self.pool.get('stock.move')
4155- for shop in self.browse(cr, uid, ids):
4156- external_session = ExternalSession(shop.referential_id, shop)
4157-
4158- product_ids = self._get_product_ids_for_stock_to_export(cr, uid, shop, context=context)
4159-
4160- if shop.last_inventory_export_date:
4161- # we do not exclude canceled moves because it means
4162- # some stock levels could have increased since last export
4163- recent_move_ids = stock_move_obj.search(
4164- cr, uid,
4165- [('write_date', '>', shop.last_inventory_export_date),
4166- ('product_id', 'in', product_ids),
4167- ('product_id.type', '!=', 'service'),
4168- ('state', '!=', 'draft')],
4169- context=context)
4170- else:
4171- recent_move_ids = stock_move_obj.search(
4172- cr, uid,
4173- [('product_id', 'in', product_ids)],
4174- context=context)
4175-
4176- recent_moves = stock_move_obj.browse(
4177- cr, uid, recent_move_ids, context=context)
4178-
4179- product_ids = [move.product_id.id
4180- for move
4181- in recent_moves
4182- if move.product_id.state != 'obsolete']
4183- product_ids = list(set(product_ids))
4184- external_session.logger.info('Export Stock for %s products' %len(product_ids))
4185- self.pool.get('product.product').export_inventory(
4186- cr, uid, external_session, product_ids, context=context)
4187- shop.write({'last_inventory_export_date':
4188- time.strftime(DEFAULT_SERVER_DATETIME_FORMAT)})
4189- return True
4190-
4191- def import_catalog(self, cr, uid, ids, context):
4192- #TODO import categories, then products
4193- raise except_osv(_("Not Implemented"), _("Not Implemented in abstract base module!"))
4194-
4195- def import_orders(self, cr, uid, ids, context=None):
4196- self.import_resources(cr, uid, ids, 'sale.order', context=context)
4197- return True
4198-
4199- def check_need_to_update(self, cr, uid, ids, context=None):
4200- """ This function will update the order status in OpenERP for
4201- the order which are in the state 'need to update' """
4202- for shop in self.browse(cr, uid, ids, context=context):
4203- external_session = ExternalSession(shop.referential_id, shop)
4204- so_obj = self.pool.get('sale.order')
4205- orders_to_update = so_obj.search(cr, uid,
4206- [('need_to_update', '=', True),
4207- ('shop_id', '=', shop.id)],
4208- context=context)
4209- so_obj._check_need_to_update(cr, uid, external_session, orders_to_update, context=context)
4210- return False
4211-
4212- def _update_order_query(self, cr, uid, shop, context=None):
4213- req = """
4214- SELECT ir_model_data.res_id, ir_model_data.name
4215- FROM sale_order
4216- INNER JOIN ir_model_data ON sale_order.id = ir_model_data.res_id
4217- WHERE ir_model_data.model='sale.order' AND sale_order.shop_id=%s
4218- AND ir_model_data.referential_id NOTNULL
4219- """
4220- params = (shop.id,)
4221- if shop.last_update_order_export_date:
4222- req += "AND sale_order.update_state_date > %s"
4223- params = (shop.id, shop.last_update_order_export_date)
4224- return req, params
4225-
4226- def update_orders(self, cr, uid, ids, context=None):
4227- if context is None:
4228- context = {}
4229- for shop in self.browse(cr, uid, ids):
4230- external_session = ExternalSession(shop.referential_id, shop)
4231- #get all orders, which the state is not draft and the date of modification is superior to the last update, to exports
4232- cr.execute(*self._update_order_query(cr, uid, shop, context=context))
4233- results = cr.fetchall()
4234- for result in results:
4235- ids = self.pool.get('sale.order').search(cr, uid, [('id', '=', result[0])])
4236- if ids:
4237- id = ids[0]
4238- order = self.pool.get('sale.order').browse(cr, uid, id, context)
4239- order_ext_id = result[1].split('sale_order/')[1]
4240- res = self.update_shop_orders(cr, uid, external_session, order, order_ext_id, context)
4241- if res:
4242- external_session.logger.info(_("Successfully updated order with OpenERP id %s and ext id %s in external sale system") % (id, order_ext_id))
4243- self.pool.get('sale.shop').write(cr, uid, shop.id, {'last_update_order_export_date': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT)})
4244- return False
4245-
4246- def export_shop_partners(self, cr, uid, ids, context=None):
4247- if context is None: context={}
4248- self.export_resources(cr, uid, ids, 'res.partner', context=context)
4249- return True
4250-
4251- def update_shop_orders(self, cr, uid, external_session, order, ext_id, context):
4252- raise except_osv(_("Not Implemented"), _("Not Implemented in abstract base module!"))
4253-
4254- def _export_shipping_query(self, cr, uid, shop, context=None):
4255- query = """
4256- SELECT stock_picking.id AS picking_id,
4257- sale_order.id AS order_id,
4258- count(pickings.id) AS picking_number
4259- FROM stock_picking
4260- LEFT JOIN sale_order
4261- ON sale_order.id = stock_picking.sale_id
4262- LEFT JOIN stock_picking as pickings
4263- ON (sale_order.id = pickings.sale_id
4264- AND pickings.type='out'
4265- AND pickings.state!='cancel')
4266- LEFT JOIN ir_model_data
4267- ON stock_picking.id = ir_model_data.res_id
4268- AND ir_model_data.model = 'stock.picking'
4269- LEFT JOIN delivery_carrier
4270- ON delivery_carrier.id = stock_picking.carrier_id
4271- WHERE sale_order.shop_id = %(shop_id)s
4272- AND ir_model_data.res_id ISNULL
4273- AND stock_picking.state = 'done'
4274- AND stock_picking.type = 'out'
4275- AND NOT stock_picking.do_not_export
4276- AND (NOT delivery_carrier.export_needs_tracking
4277- OR stock_picking.carrier_tracking_ref IS NOT NULL)
4278- GROUP BY stock_picking.id,
4279- sale_order.id,
4280- delivery_carrier.export_needs_tracking,
4281- stock_picking.carrier_tracking_ref,
4282- stock_picking.backorder_id
4283- ORDER BY sale_order.id ASC,
4284- COALESCE(stock_picking.backorder_id, NULL, 0) ASC"""
4285- params = {'shop_id': shop.id}
4286- return query, params
4287-
4288- def export_shipping(self, cr, uid, ids, context):
4289- picking_obj = self.pool.get('stock.picking')
4290- for shop in self.browse(cr, uid, ids):
4291- cr.execute(*self._export_shipping_query(
4292- cr, uid, shop, context=context))
4293- results = cr.dictfetchall()
4294- if not results:
4295- _logger.info("There is no shipping to export for the shop '%s' to the external referential", shop.name)
4296- continue
4297- context['conn_obj'] = shop.referential_id.external_connection()
4298-
4299-
4300- picking_cr = pooler.get_db(cr.dbname).cursor()
4301- try:
4302- for result in results:
4303- picking_id = result['picking_id']
4304-
4305- if result["picking_number"] == 1:
4306- picking_type = 'complete'
4307- else:
4308- picking_type = 'partial'
4309-
4310- ext_shipping_id = False
4311- try:
4312- ext_shipping_id = picking_obj.create_ext_shipping(
4313- picking_cr, uid, picking_id, picking_type,
4314- shop.referential_id.id, context)
4315- except ExternalShippingCreateError, e:
4316- # when the creation has failed on the external
4317- # referential and we know that we can never
4318- # create it, we flag it as do_not_export
4319- # ExternalShippingCreateError raising has to be
4320- # correctly handled by create_ext_shipping()
4321- picking_obj.write(
4322- picking_cr, uid,
4323- picking_id,
4324- {'do_not_export': True},
4325- context=context)
4326-
4327- if ext_shipping_id:
4328- picking_obj.create_external_id_vals(
4329- picking_cr,
4330- uid,
4331- picking_id,
4332- ext_shipping_id,
4333- shop.referential_id.id,
4334- context=context)
4335- _logger.info("Successfully creating shipping with OpenERP id %s and ext id %s in external sale system", result["picking_id"], ext_shipping_id)
4336- picking_cr.commit()
4337- finally:
4338- picking_cr.close()
4339- return True
4340-
4341- def export_invoices(self, cr, uid, ids, context=None):
4342- invoice_obj = self.pool.get('account.invoice')
4343- for shop in self.browse(cr, uid, ids, context=None):
4344- external_session = ExternalSession(shop.referential_id, shop)
4345- invoice_ids = self.get_invoice_to_export(cr, uid, shop.id, context=context)
4346- if not invoice_ids:
4347- external_session.logger.info("There is no invoice to export for the shop '%s' to the external referential" % (shop.name,))
4348- for invoice_id in invoice_ids:
4349- self.pool.get('account.invoice')._export_one_resource(cr, uid, external_session, invoice_id, context=context)
4350- return True
4351-
4352- def get_invoice_to_export(self, cr, uid, shop_id, context=None):
4353- shop = self.browse(cr, uid, shop_id, context=context)
4354- cr.execute(*self._export_invoice_query(cr, uid, shop, context=context))
4355- results = cr.dictfetchall()
4356- return [res['invoice_id'] for res in results]
4357-
4358- def _export_invoice_query(self, cr, uid, shop, context=None):
4359- query = """
4360- SELECT account_invoice.id AS invoice_id
4361- FROM account_invoice
4362- LEFT JOIN ir_model_data
4363- ON account_invoice.id = ir_model_data.res_id
4364- AND ir_model_data.model = 'account.invoice'
4365- AND referential_id = %(referential_id)s
4366- WHERE shop_id = %(shop_id)s
4367- AND ir_model_data.res_id ISNULL
4368- AND account_invoice.state in ('paid', 'open')
4369- AND NOT account_invoice.do_not_export
4370- """
4371- params = {'shop_id': shop.id, 'referential_id': shop.referential_id.id}
4372- return query, params
4373-
4374-sale_shop()
4375-
4376-
4377-class sale_order(Model):
4378- _inherit = "sale.order"
4379-
4380- _columns = {
4381- 'need_to_update': fields.boolean('Need To Update'),
4382- 'ext_total_amount': fields.float(
4383- 'Origin External Amount',
4384- digits_compute=dp.get_precision('Sale Price'),
4385- readonly=True),
4386- 'ext_total_amount_tax': fields.float(
4387- 'Origin External Tax Amount',
4388- digits_compute=dp.get_precision('Sale Price'),
4389- readonly=True),
4390- 'referential_id': fields.related(
4391- 'shop_id', 'referential_id',
4392- type='many2one', relation='external.referential',
4393- string='External Referential'),
4394- 'update_state_date': fields.datetime('Update State Date'),
4395- 'shipping_tax_amount': fields.dummy(string = 'Shipping Taxe Amount'),
4396- 'shipping_amount_tax_excluded': fields.dummy(string = 'Shipping Price Tax Exclude'),
4397- 'shipping_amount_tax_included': fields.dummy(string = 'Shipping Price Tax Include'),
4398- }
4399-
4400- _defaults = {
4401- 'need_to_update': False,
4402- }
4403-
4404- def write(self, cr, uid, ids, vals, context=None):
4405- if 'state' in vals:
4406- vals['update_state_date'] = datetime.now().strftime(DEFAULT_SERVER_DATETIME_FORMAT)
4407- return super(sale_order, self).write(cr, uid, ids, vals, context=context)
4408-
4409- # xxx move to BaseConnector _get_import_defaults_sale_order
4410- def _get_default_import_values(self, cr, uid, external_session, mapping_id=None, defaults=None, context=None):
4411- shop = False
4412- if external_session.sync_from_object._name == 'sale.shop':
4413- shop = external_session.sync_from_object
4414- elif context.get('sale_shop_id'):
4415- shop = self.pool.get('sale.shop').browse(cr, uid, context['sale_shop_id'], context=context)
4416- if shop:
4417- if defaults is None: defaults = {}
4418- defaults.update({
4419- 'pricelist_id': shop.get_pricelist(context=context),
4420- 'shop_id': shop.id,
4421- 'fiscal_position': shop.default_fiscal_position.id,
4422- 'payment_method_id': shop.default_payment_method_id.id,
4423- 'company_id': shop.company_id.id,
4424- })
4425- #TODO we should avoid passing this parameter in the context
4426- #for now we new it for importing order from wizard correctly
4427- #refactor for V7
4428- context.update({
4429- 'use_external_tax': shop.use_external_tax,
4430- 'is_tax_included': shop.is_tax_included,
4431- })
4432- return defaults
4433-
4434- @open_report
4435- def _import_resources(self, cr, uid, external_session, defaults=None, method="search_then_read", context=None):
4436- if context is None: context={}
4437- shop = external_session.sync_from_object
4438- if shop:
4439- context.update({
4440- 'use_external_tax': shop.use_external_tax,
4441- 'is_tax_included': shop.is_tax_included,
4442- })
4443- return super(sale_order, self)._import_resources(cr, uid, external_session, defaults=defaults, method=method, context=context)
4444-
4445-
4446- def check_if_order_exist(self, cr, uid, external_session, resource, order_mapping=None, defaults=None, context=None):
4447- mapping_name = False
4448- for line in order_mapping['mapping_lines']:
4449- if line['internal_field'] == 'name':
4450- mapping_name = line
4451- if mapping_name:
4452- local_mapping = {1: {'mapping_lines': [mapping_name]}}
4453- vals = self._transform_one_resource(cr, uid, external_session,
4454- 'from_external_to_openerp', resource,
4455- mapping=local_mapping,
4456- mapping_id=1,
4457- defaults=defaults,
4458- context=context)
4459- if vals.get('name'):
4460- exist_id = self.search(cr, uid, [['name', '=', vals['name']]], context=context)
4461- if exist_id:
4462- external_session.logger.info("Sale Order %s already exist in OpenERP,"
4463- "no need to import it again"%vals['name'])
4464- return True
4465-
4466- return False
4467-
4468- # xxx a deplacer dans BaseConnector sale_order
4469- @catch_error_in_report
4470- def _record_one_external_resource(self, cr, uid, external_session, resource, defaults=None,
4471- mapping=None, mapping_id=None, context=None):
4472- mapping, mapping_id = self._init_mapping(cr, uid, external_session.referential_id.id,
4473- mapping=mapping, mapping_id=mapping_id, context=context)
4474- exist_id = self.check_if_order_exist(cr, uid, external_session, resource,
4475- order_mapping=mapping[mapping_id], defaults=defaults, context=context)
4476- if exist_id:
4477- return {}
4478- else:
4479- return super(sale_order, self)._record_one_external_resource(cr, uid, external_session, resource,
4480- defaults=defaults, mapping=mapping, mapping_id=mapping_id, context=context)
4481-
4482- def _check_need_to_update(self, cr, uid, external_session, ids, context=None):
4483- """
4484- For each order, check in external system if it has been paid since last
4485- check. If so, it will launch the defined flow based on the
4486- payment type (validate order, invoice, ...)
4487- """
4488- for order in self.browse(cr, uid, ids, context=context):
4489- self._check_need_to_update_single(cr, uid, external_session, order, context=context)
4490- return True
4491-
4492- def _check_need_to_update_single(self, cr, uid, external_session, order, context=None):
4493- """Not implemented in this abstract module"""
4494- return True
4495-
4496- def _get_params_onchange_partner_id(self, cr, uid, vals, context=None):
4497- args = [
4498- 'None',
4499- vals.get('partner_id'),
4500- ]
4501- return args, {}
4502-
4503- #I will probably extract this code in order to put it in a "glue" module
4504- def _get_params_onchange_address_id(self, cr, uid, vals, context=None):
4505- args = [
4506- None,
4507- vals.get('partner_invoice_id'),
4508- vals.get('partner_shipping_id'),
4509- vals.get('partner_id'),
4510- ]
4511- kwargs = {
4512- 'shop_id': vals.get('shop_id'),
4513- }
4514- return args, kwargs
4515-
4516- def play_sale_order_onchange(self, cr, uid, vals, defaults=None, context=None):
4517- ir_module_obj= self.pool.get('ir.module.module')
4518- if ir_module_obj.search(cr, uid, [
4519- ['name', '=', 'account_fiscal_position_rule_sale'],
4520- ['state', 'in', ['installed', 'to upgrade']],
4521- ], context=context):
4522- vals = self.call_onchange(cr, uid, 'onchange_partner_id', vals, defaults, context=context)
4523- vals = self.call_onchange(cr, uid, 'onchange_address_id', vals, defaults, context=context)
4524- else:
4525- vals = self.call_onchange(cr, uid, 'onchange_partner_id', vals, defaults, context=context)
4526-
4527-
4528- return vals
4529-
4530- def _merge_with_default_values(self, cr, uid, external_session, ressource, vals, sub_mapping_list, defaults=None, context=None):
4531- if vals.get('name'):
4532- shop = external_session.sync_from_object
4533- if shop.order_prefix:
4534- vals['name'] = '%s%s' %(shop.order_prefix, vals['name'])
4535- if context is None: context ={}
4536- if vals.get('payment_method_id'):
4537- payment_method = self.pool.get('payment.method').browse(cr, uid, vals['payment_method_id'], context=context)
4538- workflow_process = payment_method.workflow_process_id
4539- if workflow_process:
4540- vals['order_policy'] = workflow_process.order_policy
4541- vals['picking_policy'] = workflow_process.picking_policy
4542- vals['invoice_quantity'] = workflow_process.invoice_quantity
4543- # update vals with order onchange in order to compute taxes
4544- vals = self.play_sale_order_onchange(cr, uid, vals, defaults=defaults, context=context)
4545- return super(sale_order, self)._merge_with_default_values(cr, uid, external_session, ressource, vals, sub_mapping_list, defaults=defaults, context=context)
4546-
4547- def oe_create(self, cr, uid, external_session, vals, resource, defaults, context):
4548- #depending of the external system the contact address can be optionnal
4549- vals = self._convert_special_fields(cr, uid, vals, external_session.referential_id.id, context=context)
4550- if not vals.get('partner_order_id'):
4551- vals['partner_order_id'] = vals['partner_invoice_id']
4552- if not vals.get('partner_shipping_id'):
4553- vals['partner_shipping_id'] = vals['partner_invoice_id']
4554- order_id = super(sale_order, self).oe_create(cr, uid, external_session, vals, resource, defaults, context)
4555- self.paid_and_update(cr, uid, external_session, order_id, resource, context=context)
4556- return order_id
4557-
4558- def paid_and_update(self, cr, uid, external_session, order_id, resource, context=None):
4559- wf_service = netsvc.LocalService("workflow")
4560- paid = self.create_external_payment(cr, uid, external_session, order_id, resource, context)
4561- order = self.browse(cr, uid, order_id, context=context)
4562- validate_order = order.workflow_process_id.validate_order
4563- if validate_order == 'always' or validate_order == 'if_paid' and paid:
4564- try:
4565- wf_service.trg_validate(uid, 'sale.order', order.id, 'order_confirm', cr)
4566- except:
4567- raise
4568- #What we should do?? creating the order but not validating it???
4569- #Maybe setting a special flag can be a good solution? with a retry method?
4570- return True
4571-
4572- elif validate_order == 'if_paid' and order.payment_method_id.automatic_update:
4573- days_before_order_cancel = order.workflow_process_id.days_before_order_cancel or 30
4574- order_date = datetime.strptime(order.date_order, DEFAULT_SERVER_DATE_FORMAT)
4575- order_cancel_date = order_date + relativedelta(days=days_before_order_cancel)
4576- if order.state == 'draft' and order_cancel_date < datetime.now():
4577- wf_service.trg_validate(uid, 'sale.order', order.id, 'cancel', cr)
4578- self.write(cr, uid, order.id, {'need_to_update': False})
4579- self.log(cr, uid, order.id, ("order %s canceled in OpenERP because older than % days"
4580- "and still not confirmed") % (order.id, days_before_order_cancel))
4581- #TODO eventually call a trigger to cancel the order in the external system too
4582- external_session.logger.info(("order %s canceled in OpenERP because older than % days and "
4583- "still not confirmed") %(order.id, days_before_order_cancel))
4584- else:
4585- self.write(cr, uid, order_id, {'need_to_update': True}, context=context)
4586- return False
4587-
4588- def create_external_payment(self, cr, uid, external_session, order_id, resource, context):
4589- """
4590- Fonction that will create a payment from the external resource
4591- """
4592- vals = self._get_payment_information(cr, uid, external_session, order_id, resource, context=context)
4593- if vals.get('paid'):
4594- if not vals.get('journal_id'):
4595- external_session.logger.warning(_("Not journal found for payment method %s. Can not create payment")%vals['payment_method'])
4596- vals['paid'] = False
4597- else:
4598- self.pay_sale_order(cr, uid, order_id, vals['journal_id'], vals['amount'], vals['date'], context=context)
4599- return vals.get('paid')
4600-
4601- def _get_payment_information(self, cr, uid, external_session, order_id, resource, context=None):
4602- """
4603- Function that will return the information in order to create the payment
4604- """
4605- vals = {}
4606- sale = self.browse(cr, uid, order_id, context=context)
4607- vals['payment_method'] = sale.payment_method_id.name
4608- vals['journal_id'] = sale.payment_method_id.journal_id and sale.payment_method_id.journal_id.id
4609- vals['date'] = sale.date_order
4610- return vals
4611-
4612- def _prepare_invoice(self, cr, uid, order, lines, context=None):
4613- """Prepare the dict of values to create the new invoice for a
4614- sale order. This method may be overridden to implement custom
4615- invoice generation (making sure to call super() to establish
4616- a clean extension chain).
4617-
4618- :param browse_record order: sale.order record to invoice
4619- :param list(int) lines: list of invoice line IDs that must be
4620- attached to the invoice
4621- :return: dict of value to create() the invoice
4622- """
4623- vals = super(sale_order, self)._prepare_invoice(cr, uid, order, lines, context=context)
4624- if order.shop_id.sale_journal:
4625- vals['journal_id'] = order.shop_id.sale_journal.id
4626- vals['shop_id'] = order.shop_id.id
4627- return vals
4628-
4629- def _prepare_order_picking(self, cr, uid, order, context=None):
4630- vals = super(sale_order, self)._prepare_order_picking(cr, uid, order, context=context)
4631- vals['shop_id'] = order.shop_id.id
4632- return vals
4633-
4634- def oe_update(self, cr, uid, external_session, existing_rec_id, vals, resource, defaults, context=None):
4635- '''Not implemented in this abstract module, if it's not implemented in your module it will raise an error'''
4636- # Explication :
4637- # sometime customer can do ugly thing like renamming a sale_order and try to reimported it,
4638- # sometime openerp run two scheduler at the same time, or the customer launch two openerp at the same time
4639- # or the external system give us again an already imported order
4640- # As the update of an existing order (this is not the update of the status but the update of the line, the address...)
4641- # is not supported by base_sale_multichannels and also not in magentoerpconnect.
4642- # It's better to don't allow this feature to avoid hidding a problem.
4643- # It's better to have the order not imported and to know it than having order with duplicated line.
4644- if not (context and context.get('oe_update_supported', False)):
4645- #TODO found a clean solution to raise the except_osv error in the try except of the function import_with_try
4646- raise except_osv(_("Not Implemented"), _(("The order with the id %s try to be updated from the external system."
4647- " This feature is not supported. Maybe the import try to reimport an existing sale order"%(existing_rec_id,))))
4648- return super(sale_order, self).oe_update(cr, uid, external_session, existing_rec_id, vals, resource, defaults, context=context)
4649-
4650- def _convert_special_fields(self, cr, uid, vals, referential_id, context=None):
4651- """
4652- Convert the special 'fake' field into an order line
4653- special field are :
4654- - shipping amount and shipping_tax_rate
4655- - cash_on_delivery and cash_on_delivery_taxe_rate
4656- - gift_certificates
4657-
4658- :param dict vals : values of the sale order to create
4659- :param int referential_id : external referential id
4660- :return: the value for the sale order with the special field converted
4661- :rtype: dict
4662- """
4663- def check_key(keys):
4664- return len(set([
4665- 'shipping_amount_tax_excluded',
4666- 'shipping_amount_tax_included',
4667- 'shipping_tax_amount'])
4668- & set(keys)) >= 2
4669-
4670- for line in vals['order_line']:
4671- for field in ['shipping_amount_tax_excluded','shipping_amount_tax_included', 'shipping_tax_amount']:
4672- if field in line[2]:
4673- vals[field] = vals.get(field, 0.0) + line[2][field]
4674- del line[2][field]
4675-
4676- if not 'shipping_tax_rate' in vals and check_key(vals.keys()):
4677- if not 'shipping_amount_tax_excluded' in vals:
4678- vals['shipping_amount_tax_excluded'] = vals['shipping_amount_tax_included'] - vals['shipping_tax_amount']
4679- elif not 'shipping_tax_amount' in vals:
4680- vals['shipping_tax_amount'] = vals['shipping_amount_tax_included'] - vals['shipping_amount_tax_excluded']
4681- vals['shipping_tax_rate'] = vals['shipping_amount_tax_excluded'] and \
4682- vals['shipping_tax_amount'] / vals['shipping_amount_tax_excluded'] or 0
4683- del vals['shipping_tax_amount']
4684- for option in self._get_special_fields(cr, uid, context=context):
4685- vals = self._add_order_extra_line(cr, uid, vals, option, context=context)
4686- return vals
4687-
4688-
4689- def _get_special_fields(self, cr, uid, context=None):
4690- return [
4691- {
4692- 'price_unit_tax_excluded' : 'shipping_amount_tax_excluded',
4693- 'price_unit_tax_included' : 'shipping_amount_tax_included',
4694- 'tax_rate_field' : 'shipping_tax_rate',
4695- 'product_ref' : ('base_sale_multichannels', 'product_product_shipping'),
4696- },
4697- {
4698- 'tax_rate_field' : 'cash_on_delivery_taxe_rate',
4699- 'price_unit_tax_excluded' : 'cash_on_delivery_amount_tax_excluded',
4700- 'price_unit_tax_included' : 'cash_on_delivery_amount_tax_included',
4701- 'product_ref' : ('base_sale_multichannels', 'product_product_cash_on_delivery'),
4702- },
4703- {
4704- 'price_unit_tax_excluded' : 'gift_certificates_amount', #gift certificate doesn't have any tax
4705- 'price_unit_tax_included' : 'gift_certificates_amount',
4706- 'product_ref' : ('base_sale_multichannels', 'product_product_gift'),
4707- 'code_field': 'gift_certificates_code',
4708- 'sign': -1,
4709- },
4710- ]
4711-
4712- def _add_order_extra_line(self, cr, uid, vals, option, context):
4713- """ Add or substract amount on order as a separate line item with single quantity for each type of amounts like :
4714- shipping, cash on delivery, discount, gift certificates...
4715-
4716- :param dict vals: values of the sale order to create
4717- :param option: dictionnary of option for the special field to process
4718- """
4719- if context is None: context={}
4720- sign = option.get('sign', 1)
4721- if context.get('is_tax_included') and vals.get(option['price_unit_tax_included']):
4722- price_unit = vals.pop(option['price_unit_tax_included']) * sign
4723- elif vals.get(option['price_unit_tax_excluded']):
4724- price_unit = vals.pop(option['price_unit_tax_excluded']) * sign
4725- else:
4726- for key in ['price_unit_tax_excluded', 'price_unit_tax_included', 'tax_rate_field']:
4727- if option.get(key) and option[key] in vals:
4728- del vals[option[key]]
4729- return vals #if there is not price, we have nothing to import
4730-
4731- model_data_obj = self.pool.get('ir.model.data')
4732- model, product_id = model_data_obj.get_object_reference(cr, uid, *option['product_ref'])
4733- product = self.pool.get('product.product').browse(cr, uid, product_id, context)
4734-
4735- extra_line = {
4736- 'product_id': product.id,
4737- 'name': product.name,
4738- 'product_uom': product.uom_id.id,
4739- 'product_uom_qty': 1,
4740- 'price_unit': price_unit,
4741- }
4742-
4743- extra_line = self.pool.get('sale.order.line').play_sale_order_line_onchange(cr, uid, extra_line, vals, vals['order_line'], context=context)
4744- if context.get('use_external_tax') and option.get('tax_rate_field'):
4745- tax_rate = vals.pop(option['tax_rate_field'])
4746- if tax_rate:
4747- line_tax_id = self.pool.get('account.tax').get_tax_from_rate(cr, uid, tax_rate, context.get('is_tax_included'), context=context)
4748- if not line_tax_id:
4749- raise except_osv(_('Error'), _('No tax id found for the rate %s with the tax include = %s')%(tax_rate, context.get('is_tax_included')))
4750- extra_line['tax_id'] = [(6, 0, [line_tax_id])]
4751- else:
4752- extra_line['tax_id'] = False
4753- if not option.get('tax_rate_field'):
4754- del extra_line['tax_id']
4755- ext_code_field = option.get('code_field')
4756- if ext_code_field and vals.get(ext_code_field):
4757- extra_line['name'] = "%s [%s]" % (extra_line['name'], vals[ext_code_field])
4758- vals['order_line'].append((0, 0, extra_line))
4759- return vals
4760-
4761-class sale_order_line(Model):
4762- _inherit='sale.order.line'
4763-
4764- _columns = {
4765- 'ext_product_ref': fields.char('Product Ext Ref',
4766- help="This is the original external product reference", size=256),
4767- 'shipping_tax_amount': fields.dummy(string = 'Shipping Taxe Amount'),
4768- 'shipping_amount_tax_excluded': fields.dummy(string = 'Shipping Price Tax Exclude'),
4769- 'shipping_amount_tax_included': fields.dummy(string = 'Shipping Price Tax Include'),
4770- 'ext_ref_line': fields.char('Ext. Ref Line', size=64,
4771- help='Unique order line id delivered by external application'),
4772- }
4773-
4774- def _get_params_product_id_change(self, cr, uid, line, parent_data, previous_lines, context=None):
4775- args = [
4776- None,
4777- parent_data.get('pricelist_id'),
4778- line.get('product_id')
4779- ]
4780- kwargs ={
4781- 'qty': float(line.get('product_uom_qty')),
4782- 'uom': line.get('product_uom'),
4783- 'qty_uos': float(line.get('product_uos_qty') or line.get('product_uom_qty')),
4784- 'uos': line.get('product_uos'),
4785- 'name': line.get('name'),
4786- 'partner_id': parent_data.get('partner_id'),
4787- 'lang': False,
4788- 'update_tax': True,
4789- 'date_order': parent_data.get('date_order'),
4790- 'packaging': line.get('product_packaging'),
4791- 'fiscal_position': parent_data.get('fiscal_position'),
4792- 'flag': False,
4793- 'context': context,
4794- }
4795- return args, kwargs
4796-
4797- def play_sale_order_line_onchange(self, cr, uid, line, parent_data, previous_lines, defaults=None, context=None):
4798- original_line = line.copy()
4799- if not context.get('use_external_tax') and 'tax_id' in line:
4800- del line['tax_id']
4801- line = self.call_onchange(cr, uid, 'product_id_change', line, defaults=defaults, parent_data=parent_data, previous_lines=previous_lines, context=context)
4802- #TODO all m2m should be mapped correctly
4803- if context.get('use_external_tax'):
4804- #if we use the external tax and the onchange have added a taxe,
4805- #them we remove it.
4806- #Indeed we have to make the difference between a real tax_id
4807- #imported and a default value set by the onchange
4808- if not 'tax_id' in original_line and 'tax_id' in line:
4809- del line['tax_id']
4810- elif line.get('tax_id'):
4811- line['tax_id'] = [(6, 0, line['tax_id'])]
4812- return line
4813-
4814- def _transform_one_resource(self, cr, uid, external_session, convertion_type, resource, mapping, mapping_id,
4815- mapping_line_filter_ids=None, parent_data=None, previous_result=None, defaults=None, context=None):
4816- if context is None: context={}
4817- line = super(sale_order_line, self)._transform_one_resource(cr, uid, external_session, convertion_type, resource,
4818- mapping, mapping_id, mapping_line_filter_ids=mapping_line_filter_ids, parent_data=parent_data,
4819- previous_result=previous_result, defaults=defaults, context=context)
4820-
4821- if context.get('is_tax_included') and 'price_unit_tax_included' in line:
4822- line['price_unit'] = line['price_unit_tax_included']
4823- elif 'price_unit_tax_excluded' in line:
4824- line['price_unit'] = line['price_unit_tax_excluded']
4825-
4826- line = self.play_sale_order_line_onchange(cr, uid, line, parent_data, previous_result,
4827- defaults, context=context)
4828- if context.get('use_external_tax'):
4829- if not 'tax_id' in line and line.get('tax_rate'):
4830- line_tax_id = self.pool.get('account.tax').get_tax_from_rate(cr, uid, line['tax_rate'], context.get('is_tax_included', False), context=context)
4831- if not line_tax_id:
4832- raise except_osv(_('Error'), _('No tax id found for the rate %s with the tax include = %s')%(line['tax_rate'], context.get('is_tax_included')))
4833- line['tax_id'] = [(6, 0, [line_tax_id])]
4834- else:
4835- line['tax_id'] = False
4836- return line
4837-
4838-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
4839
4840=== removed file 'base_sale_multichannels/sale_view.xml'
4841--- base_sale_multichannels/sale_view.xml 2012-12-20 15:09:51 +0000
4842+++ base_sale_multichannels/sale_view.xml 1970-01-01 00:00:00 +0000
4843@@ -1,221 +0,0 @@
4844-<?xml version="1.0" encoding="utf-8"?>
4845-<openerp>
4846- <data>
4847-
4848- <record model="ir.ui.view" id="base_sale_multichannels_view_shop_form">
4849- <field name="name">base_sale_multichannels_view_shop_form</field>
4850- <field name="model">sale.shop</field>
4851- <field name="inherit_id" ref="sale.view_shop_form" />
4852- <field name="type">form</field>
4853- <field name="arch" type="xml">
4854- <data>
4855- <field name="payment_default_id" position="after">
4856- <field name="sale_journal" domain="[('type','=','sale')]"/>
4857- </field>
4858- <form position="inside">
4859- <separator string="Sale Multi Channels" colspan="4" />
4860- <notebook colspan="4">
4861- <page string="External Shop Settings">
4862- <group col="4" colspan="4">
4863- <field name="referential_id" />
4864- <field name="shop_group_id" />
4865- <field name="type_name" invisible="True"/>
4866- </group>
4867- </page>
4868- <page string="Extra Information">
4869- <separator string='Accounting' colspan="4"/>
4870- <field name="auto_import"/>
4871- <field name="is_tax_included"/>
4872- <field name="use_external_tax"/>
4873- <field name="check_total_amount"/>
4874- <field name="order_prefix"/>
4875- <field name="default_payment_method_id"/>
4876- <field name="default_fiscal_position"/>
4877- <field name="default_customer_account"/>
4878- <field name="default_customer_lang"/>
4879- <separator string='Stock' colspan="4"/>
4880- <field name="product_stock_field_id"/>
4881- <separator string='Other Information' colspan="4"/>
4882- <field name="address_id" colspan="2" />
4883- <field name="website" colspan="2" />
4884- <field name="image" widget='image' colspan="2" />
4885- </page>
4886- </notebook>
4887- </form>
4888- </data>
4889- </field>
4890- </record>
4891-
4892- <record model="ir.ui.view" id="base_sale_multichannel_view_order_tree">
4893- <field name="name">base_sale_multichannel_view_order_tree</field>
4894- <field name="model">sale.order</field>
4895- <field name="inherit_id" ref="sale.view_order_tree" />
4896- <field name="type">form</field>
4897- <field name="arch" type="xml">
4898- <field name="state" position="after">
4899- <field name="need_to_update" />
4900- </field>
4901- <field name="amount_total" position="after">
4902- <field name="ext_total_amount" string="Ext. Total" />
4903- </field>
4904- </field>
4905- </record>
4906-
4907- <record id="view_sales_order_filter" model="ir.ui.view">
4908- <field name="name">base_sale_multichannel.view_sales_order_filter</field>
4909- <field name="model">sale.order</field>
4910- <field name="inherit_id" ref="sale.view_sales_order_filter" />
4911- <field name="type">search</field>
4912- <field eval="32" name="priority"/>
4913- <field name="arch" type="xml">
4914- <filter icon="terp-check" string="Sales" position="after">
4915- <separator orientation="vertical"/>
4916- <filter icon="gtk-refresh" name="to-update" string="TO UPDATE" domain="[('need_to_update','!=',False)]"/>
4917- </filter>
4918- </field>
4919- </record>
4920-
4921- <record model="ir.ui.view" id="base_sale_multichannel_view_order_form">
4922- <field name="name">base_sale_multichannel_view_order_form</field>
4923- <field name="model">sale.order</field>
4924- <field name="inherit_id" ref="sale_automatic_workflow.sale_order_view_form" />
4925- <field name="type">form</field>
4926- <field eval="30" name="priority"/>
4927- <field name="arch" type="xml">
4928- <data>
4929- <group name="automatic_workflow" position="after">
4930- <field name="referential_id" invisible="True"/>
4931- <group name="external_payment" attrs="{'invisible': [('referential_id', '=', False)]}">
4932- <separator string="External Payment" colspan="4"/>
4933- <field name="ext_total_amount" />
4934- <field name="ext_total_amount_tax"/>
4935- <field name="need_to_update" />
4936- </group>
4937- </group>
4938- <xpath expr="/form/notebook/page/field/form/notebook/page[@string='Order Line']/group" position="after">
4939- <group name='External Information' colspan="4">
4940- <separator string="External Information" colspan="4" />
4941- <field name="ext_product_ref" />
4942- <field name="ext_ref_line" select="1" />
4943- </group>
4944- </xpath>
4945- </data>
4946- </field>
4947- </record>
4948-
4949- <record model="ir.ui.view" id="base_sale_multichannel_view_order_line_tree">
4950- <field name="name">base_sale_multichannel_view_order_tree</field>
4951- <field name="model">sale.order.line</field>
4952- <field name="inherit_id" ref="sale.view_order_line_tree" />
4953- <field name="type">form</field>
4954- <field name="arch" type="xml">
4955- <data>
4956- <field name="product_id" position="after">
4957- <field name="ext_product_ref" />
4958- </field>
4959- </data>
4960- </field>
4961- </record>
4962-
4963- <record model="ir.ui.view" id="base_sale_multichannel_view_order_line_form">
4964- <field name="name">base_sale_multichannel_view_order_form</field>
4965- <field name="model">sale.order.line</field>
4966- <field name="inherit_id" ref="sale.view_order_line_form2" />
4967- <field name="type">form</field>
4968- <field name="arch" type="xml">
4969- <data>
4970- <field name="notes" position="after">
4971- <group name='External Syncronization' colspan="4">
4972- <separator string="External syncronization" colspan="4" />
4973- <field name="ext_product_ref" select="1" />
4974- <field name="ext_ref_line" select="1" />
4975- </group>
4976- </field>
4977- </data>
4978- </field>
4979- </record>
4980-
4981- <record id="view_base_sale_external_shop_group_form" model="ir.ui.view">
4982- <field name="name">base.sale.external.shop.group.form</field>
4983- <field name="model">external.shop.group</field>
4984- <field name="type">form</field>
4985- <field name="arch" type="xml">
4986- <form string="External shop group">
4987- <field name="name" select="1" />
4988- <field name="referential_id" widget="selection" select="1" />
4989- <newline />
4990- <field name="shop_ids" colspan="4" />
4991- </form>
4992- </field>
4993- </record>
4994-
4995- <record id="view_base_sale_external_shop_group_tree" model="ir.ui.view">
4996- <field name="name">base.sale.external.shop.group.tree</field>
4997- <field name="model">external.shop.group</field>
4998- <field name="type">tree</field>
4999- <field name="arch" type="xml">
5000- <tree string="External shop groups">
The diff has been truncated for viewing.

Subscribers

People subscribed via source and target branches