← Back to team overview

savoirfairelinux-openerp team mailing list archive

[Merge] lp:~camptocamp/e-commerce-addons/7.0-remove-dead-modules into lp:e-commerce-addons

 

Guewen Baconnier @ Camptocamp has proposed merging lp:~camptocamp/e-commerce-addons/7.0-remove-dead-modules into lp:e-commerce-addons.

Requested reviews:
  extra-addons-commiter (extra-addons-commiter)

For more details, see:
https://code.launchpad.net/~camptocamp/e-commerce-addons/7.0-remove-dead-modules/+merge/201743

I propose to remove the module base_sale_multichannels.
I also removed all the modules having a dependency on it.
-- 
https://code.launchpad.net/~camptocamp/e-commerce-addons/7.0-remove-dead-modules/+merge/201743
Your team extra-addons-commiter is requested to review the proposed merge of lp:~camptocamp/e-commerce-addons/7.0-remove-dead-modules into lp:e-commerce-addons.
=== removed directory 'base_sale_export_partner'
=== removed file 'base_sale_export_partner/__init__.py'
--- base_sale_export_partner/__init__.py	2012-09-20 17:52:17 +0000
+++ base_sale_export_partner/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,23 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    Base sale export partner module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import wizard

=== removed file 'base_sale_export_partner/__openerp__.py'
--- base_sale_export_partner/__openerp__.py	2012-12-26 13:24:14 +0000
+++ base_sale_export_partner/__openerp__.py	1970-01-01 00:00:00 +0000
@@ -1,41 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    Base sale export partner module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-{
-    'name': 'Base sale multichannels - Export partners',
-    'version': '6.1.0',
-    'category': 'Sales Management',
-    'license': 'AGPL-3',
-    '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.
-    """,
-    'author': 'Akretion',
-    'website': 'http://www.akretion.com',
-    'depends': ['base_sale_multichannels'],
-    'init_xml': [],
-    'update_xml': [
-        'wizard/export_partner.xml',
-    ],
-    'demo_xml': [],
-    'installable': False,
-    'active': False,
-}

=== removed directory 'base_sale_export_partner/wizard'
=== removed file 'base_sale_export_partner/wizard/__init__.py'
--- base_sale_export_partner/wizard/__init__.py	2012-09-20 17:52:17 +0000
+++ base_sale_export_partner/wizard/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,23 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    Base sale export partner module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import export_partner

=== removed file 'base_sale_export_partner/wizard/export_partner.py'
--- base_sale_export_partner/wizard/export_partner.py	2012-12-07 12:44:57 +0000
+++ base_sale_export_partner/wizard/export_partner.py	1970-01-01 00:00:00 +0000
@@ -1,65 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    Base sale export partner module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-from openerp.osv.orm import TransientModel
-from openerp.osv import fields
-from openerp.osv.osv import except_osv
-from openerp.tools.translate import _
-from base_external_referentials.external_osv import ExternalSession
-
-class partner_export_wizard(TransientModel):
-    _name = 'partner.export.wizard'
-    _description = 'partner export wizard'
-
-
-    _columns = {
-        'shop': fields.many2many('sale.shop', 'shop_partner_rel', 'shop_id', 'partner_id', 'Shop', required=True),
-        }
-
-
-    def export_partner(self, cr, uid, id, context=None):
-        if context is None:
-            context = {}
-        shop_ids = self.read(cr, uid, id, context=context)[0]['shop']
-        sale_shop_obj = self.pool.get('sale.shop')
-        partner_obj = self.pool.get('res.partner')
-        addr_obj = self.pool.get('res.partner.address')
-        partner_ids = context.get('active_ids')
-        if not partner_ids:
-            # This should never happen
-            raise osv.except_osv(_('User Error'), 'No partner selected!')
-
-        for shop in sale_shop_obj.browse(cr, uid, shop_ids, context=context):
-            if not shop.referential_id:
-                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))
-            external_session = ExternalSession(shop.referential_id, shop)
-            context = self.pool.get('sale.shop').init_context_before_exporting_resource(cr, uid, external_session, shop.id, 'res.partner', context=context)
-            for partner in partner_obj.read(cr, uid, partner_ids, ['address'], context=context):
-                partner_obj._export_one_resource(cr, uid, external_session, partner['id'], context=context)
-                partner_obj.write(cr, uid, partner['id'], {
-                    'shop_ids': [(4, shop.id)],
-                    }, context=context)
-                for address_id in partner['address']:
-                    addr_obj._export_one_resource(cr, uid, external_session, address_id, context=context)
-        return {'type': 'ir.actions.act_window_close'}
-

=== removed file 'base_sale_export_partner/wizard/export_partner.xml'
--- base_sale_export_partner/wizard/export_partner.xml	2012-09-20 17:52:17 +0000
+++ base_sale_export_partner/wizard/export_partner.xml	1970-01-01 00:00:00 +0000
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-<data>
-
-
-<record id="partner_export_wizard_form" model="ir.ui.view">
-    <field name="name">partner.export.wizard.form</field>
-    <field name="model">partner.export.wizard</field>
-    <field name="type">form</field>
-    <field name="arch" type="xml">
-        <form>
-            <label string="Select the shops to export to:" colspan="4"/>
-            <field name="shop" nolabel="1" colspan="4"/>
-            <button icon="gtk-cancel" special="cancel" string="Cancel" colspan="2"/>
-            <button icon="gtk-ok" name="export_partner" string="Export Partner" type="object" colspan="2"/>
-        </form>
-    </field>
-</record>
-
-<record id="action_partner_export_wizard" model="ir.actions.act_window">
-    <field name="name">Export Partner</field>
-    <field name="res_model">partner.export.wizard</field>
-    <field name="view_type">form</field>
-    <field name="view_mode">form</field>
-    <field name="target">new</field>
-</record>
-
-<record id="ir_values_partner_export_wizard" model="ir.values">
-    <field name="key2">client_action_multi</field>
-    <field name="model">res.partner</field>
-    <field name="name">Export Partner</field>
-    <field name="value" eval="'ir.actions.act_window,%d'%action_partner_export_wizard"/>
-    <field name="object" eval="True"/>
-</record>
-
-
-</data>
-</openerp>

=== removed directory 'base_sale_export_product'
=== removed file 'base_sale_export_product/__init__.py'
--- base_sale_export_product/__init__.py	2012-09-20 17:52:17 +0000
+++ base_sale_export_product/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,23 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    Base sale export product module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import wizard

=== removed file 'base_sale_export_product/__openerp__.py'
--- base_sale_export_product/__openerp__.py	2012-12-26 13:24:14 +0000
+++ base_sale_export_product/__openerp__.py	1970-01-01 00:00:00 +0000
@@ -1,41 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    Base sale export product module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-{
-    'name': 'Base sale multichannels - Export products',
-    'version': '6.1.0',
-    'category': 'Sales Management',
-    'license': 'AGPL-3',
-    '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.
-    """,
-    'author': 'Akretion',
-    'website': 'http://www.akretion.com',
-    'depends': ['base_sale_multichannels'],
-    'init_xml': [],
-    'update_xml': [
-        'wizard/export_product.xml',
-    ],
-    'demo_xml': [],
-    'installable': False,
-    'active': False,
-}

=== removed directory 'base_sale_export_product/wizard'
=== removed file 'base_sale_export_product/wizard/__init__.py'
--- base_sale_export_product/wizard/__init__.py	2012-09-20 17:52:17 +0000
+++ base_sale_export_product/wizard/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,23 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    Base sale export product module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import export_product

=== removed file 'base_sale_export_product/wizard/export_product.py'
--- base_sale_export_product/wizard/export_product.py	2012-12-07 12:44:57 +0000
+++ base_sale_export_product/wizard/export_product.py	1970-01-01 00:00:00 +0000
@@ -1,91 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    Base sale export product module for OpenERP
-#    Copyright (C) 2010-2012 Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-from openerp.osv.orm import TransientModel
-from openerp.osv import fields
-from openerp.osv.osv import except_osv
-from openerp.tools.translate import _
-from base_external_referentials.external_osv import ExternalSession
-
-class product_export_wizard(TransientModel):
-    _name = 'product.export.wizard'
-    _description = 'product export wizard'
-
-    _columns = {
-        'shop': fields.many2many('sale.shop', 'shop_rel', 'shop_id', 'product_id', 'Shop', required=True),
-        }
-
-    def _export_one_product(self, cr, uid, external_session, product_id, options, context=None):
-        product_obj = self.pool.get('product.product')
-        if 'export_product' in options:
-            product_obj._export_one_resource(cr, uid, external_session, product_id, context=context)
-        if 'export_inventory' in options:
-            product_obj.export_inventory(cr, uid, external_session, [product_id], context=context)
-        if 'export_image' in options:
-            product_obj.export_product_images(cr, uid, external_session, [product_id], context=context)
-        return True
-
-    def export(self, cr, uid, id, options, context=None):
-        if context is None:
-            context={}
-        shop_ids = self.read(cr, uid, id, context=context)[0]['shop']
-        sale_shop_obj = self.pool.get('sale.shop')
-        product_obj = self.pool.get('product.product')
-        product_ids = context['active_ids']
-
-        for shop in sale_shop_obj.browse(cr, uid, shop_ids, context=context):
-            if not shop.referential_id:
-                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 syncronize it before exporting product")%(shop.name,))
-            external_session = ExternalSession(shop.referential_id, shop)
-            context = sale_shop_obj.init_context_before_exporting_resource(cr, uid, external_session, shop.id, 'product.product', context=context)
-            none_exportable_product = set(product_ids) - set([product.id for product in shop.exportable_product_ids])
-            if none_exportable_product:
-                products = ', '.join([x['name'] for x in product_obj.read(cr, uid, list(none_exportable_product), fields = ['name'], context=context)])
-                raise except_osv(_("User Error"),
-                        _("The product '%s' can not be exported to the shop '%s'. \n"
-                        "Please check : \n"
-                        "    - if they are in the root category \n"
-                        "    - if the website option is correctly configured. \n"
-                        "    - if the check box to export the product to the shop is checked")%(products, shop.name))
-            for product_id in product_ids:
-                self._export_one_product(cr, uid, external_session, product_id, options, context=context)
-        return {'type': 'ir.actions.act_window_close'}
-
-    def export_product(self, cr, uid, id, context=None):
-        return self.export(cr, uid, id, ['export_product'], context)
-
-    def export_inventory(self, cr, uid, id, context=None):
-        return self.export(
-            cr, uid, id, ['export_inventory'], context)
-
-    def export_image(self, cr, uid, id, context=None):
-        return self.export(
-            cr, uid, id, ['export_image'], context)
-
-    def _get_all_options(self, cr, uid, context=None):
-        return ['export_product', 'export_inventory', 'export_image']
-
-    def export_all(self, cr, uid, id, context=None):
-        return self.export(cr, uid, id, self._get_all_options(cr, uid, context=context), context)

=== removed file 'base_sale_export_product/wizard/export_product.xml'
--- base_sale_export_product/wizard/export_product.xml	2012-09-20 17:52:17 +0000
+++ base_sale_export_product/wizard/export_product.xml	1970-01-01 00:00:00 +0000
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-
-        <record model="ir.ui.view" id="product_export_wizard_view">
-            <field name="name">product.export.wizard.view</field>
-            <field name="model">product.export.wizard</field>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <form string="Select the shops to export to">
-                    <label string="Select the shops to export to:" colspan="4"/>
-                    <field name="shop" nolabel="1" colspan="4"/>
-                    <button icon="gtk-cancel" special="cancel" string="Cancel"/>
-                    <button icon="gtk-ok" name="export_product" string="Export Product" type="object"/>
-                    <button icon="gtk-ok" name="export_inventory" string="Export Stock" type="object"/>
-                    <button icon="gtk-ok" name="export_image" string="Export Image" type="object"/>
-                    <button icon="gtk-ok" name="export_all" string="Export All" type="object"/>
-                </form>
-            </field>
-        </record>
-
-        <record id="action_product_export_wizard" model="ir.actions.act_window">
-            <field name="name">Export Product</field>
-            <field name="res_model">product.export.wizard</field>
-            <field name="view_type">form</field>
-            <field name="view_mode">form</field>
-            <field name="target">new</field>
-            <field name="context">{}</field>
-        </record>
-
-        <record id="ir_action_export_product_wizard" model="ir.values">
-            <field name="key2">client_action_multi</field>
-            <field name="model">product.product</field>
-            <field name="name">Export Product</field>
-            <field eval="'ir.actions.act_window,%d'%action_product_export_wizard" name="value"/>
-            <field eval="True" name="object"/>
-        </record>
-    </data>
-</openerp>

=== removed directory 'base_sale_multichannels'
=== removed file 'base_sale_multichannels/__init__.py'
--- base_sale_multichannels/__init__.py	2012-08-21 13:57:44 +0000
+++ base_sale_multichannels/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,34 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution    
-#    Copyright (C) 2009 Akretion (<http://www.akretion.com>). All Rights Reserved
-#    authors: Raphaël Valyi, Sharoon Thomas
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU General Public License for more details.
-#
-#    You should have received a copy of the GNU General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import sale
-import stock
-import wizard
-import delivery
-import partner
-import account
-import external_referential
-import product
-import invoice
-import payment_method
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== removed file 'base_sale_multichannels/__openerp__.py'
--- base_sale_multichannels/__openerp__.py	2012-12-26 13:24:14 +0000
+++ base_sale_multichannels/__openerp__.py	1970-01-01 00:00:00 +0000
@@ -1,78 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    OpenERP, Open Source Management Solution
-#    Copyright (C) 2009 Akretion (<http://www.akretion.com>). All Rights Reserved
-#    authors: Raphaël Valyi, Sharoon Thomas
-#    Copyright (C) 2010-2011 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU General Public License for more details.
-#
-#    You should have received a copy of the GNU General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-{
-    'name': 'Base Sale MultiChannels',
-    'version': '6.1.2',
-    'category': 'Generic Modules/Sale',
-    'description': """
-This module provide an abstract common minimal base to multi-channels sales.
-Say you want to expose your product catalog to
-* several instances of flashy-sluggish Magento web sites
-* a cutting edge Spree web shop
-* a Neteven online Marketplace
-* EBay
-* Amazon
-* Google Base
-* an external Point Of Sale system
-* ...
-Then this module allows you to:
-* use several external references ids on every OpenERP object matching those all those external referentials
-* per referential instance, use several sale sub platform entities (ex: several Magento websites per instance)
-* per sub platform, use several shops (ex: several Magento web shops per website)
-
-For each sale shop (matching OpenERP sale.shop object), this module abstract the interfaces to:
-* export the catalog, shop warehouse stock level wise, shop pricelist wise
-* import the catalog
-* import orders
-* export orders/picking status
-    """,
-    'author': 'Akretion, Sharoon Thomas (Openlabs.co.in)',
-    'website': 'http://www.akretion.com',
-    'depends': [
-        'sale_automatic_workflow',
-        'sale_exceptions',
-        'base_external_referentials',
-        'delivery',
-        'base_onchange_player',
-    ],
-    'init_xml': [],
-    'update_xml': [
-        'security/ir.model.access.csv',
-        'sale_view.xml',
-        'partner_view.xml',
-        'invoice_view.xml',
-        'wizard/import_order.xml',
-        'delivery_view.xml',
-        'base_sale_data.xml',
-        'settings/sale.exception.csv',
-        'settings/external.referential.category.csv',
-        'stock_view.xml',
-        'payment_method_view.xml',
-        'account_view.xml',
-    ],
-    'demo_xml': [],
-    'installable': False,
-    'certificate': '',
-}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== removed file 'base_sale_multichannels/account.py'
--- base_sale_multichannels/account.py	2012-12-07 12:16:25 +0000
+++ base_sale_multichannels/account.py	1970-01-01 00:00:00 +0000
@@ -1,59 +0,0 @@
-# -*- encoding: utf-8 -*-
-#################################################################################
-#                                                                               #
-#    base_sale_multichannels for OpenERP                                        #
-#    Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>   #
-#                                                                               #
-#    This program is free software: you can redistribute it and/or modify       #
-#    it under the terms of the GNU Affero General Public License as             #
-#    published by the Free Software Foundation, either version 3 of the         #
-#    License, or (at your option) any later version.                            #
-#                                                                               #
-#    This program is distributed in the hope that it will be useful,            #
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of             #
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              #
-#    GNU Affero General Public License for more details.                        #
-#                                                                               #
-#    You should have received a copy of the GNU Affero General Public License   #
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.      #
-#                                                                               #
-#################################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-
-class account_tax_code(Model):
-    _inherit='account.tax'
-    
-    def get_tax_from_rate(self, cr, uid, rate, is_tax_included=False, context=None):
-        #TODO improve, if tax are not correctly mapped the order should be in exception (integration with sale_execption)
-        tax_ids = self.pool.get('account.tax').search(cr, uid, [('price_include', '=', is_tax_included),
-                ('type_tax_use', 'in', ['sale', 'all']), ('amount', '>=', rate - 0.001), ('amount', '<=', rate + 0.001)])
-        if tax_ids and len(tax_ids) > 0:
-            return tax_ids[0]
-        else:
-        #try to find a tax with less precision 
-            tax_ids = self.pool.get('account.tax').search(cr, uid, [('price_include', '=', is_tax_included), 
-                    ('type_tax_use', 'in', ['sale', 'all']), ('amount', '>=', rate - 0.01), ('amount', '<=', rate + 0.01)])
-            if tax_ids and len(tax_ids) > 0:
-                return tax_ids[0]
-        return False
-
-class account_tax_group(Model):
-    _name = 'account.tax.group'
-    _description = 'account tax group'
-
-    _columns = {
-        'name': fields.char('Name', size=64),
-        'tax_ids': fields.one2many('account.tax', 'group_id', 'Taxes'),
-    }
-
-class account_tax(Model):
-    _inherit = 'account.tax'
-
-    _columns = {
-        'group_id': fields.many2one('account.tax.group', 'Tax Group', help=("Choose the tax group."
-                                   " This is needed for example with magento or prestashop")),
-    }
-
-

=== removed file 'base_sale_multichannels/account_view.xml'
--- base_sale_multichannels/account_view.xml	2012-10-25 17:28:02 +0000
+++ base_sale_multichannels/account_view.xml	1970-01-01 00:00:00 +0000
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-
-        <record id="view_tax_form" model="ir.ui.view">
-            <field name="name">base_sale_multichannels.view_tax_form</field>
-            <field name="model">account.tax</field>
-            <field name="inherit_id" ref="account.view_tax_form" />
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <field name="active" position="after">
-                    <field name="group_id"/>
-                </field>
-            </field>
-        </record>
-
-
-        <record id="view_tax_group_tree" model="ir.ui.view">
-            <field name="name">account.tax.group</field>
-            <field name="model">account.tax.group</field>
-            <field name="type">tree</field>
-            <field name="arch" type="xml">
-                <tree string="Account Tax Group">
-                    <field name="name"/>
-                    <field name="tax_ids"/>
-                </tree>
-            </field>
-        </record>
-
-        <record id="view_tax_group_form" model="ir.ui.view">
-            <field name="name">account.tax.group</field>
-            <field name="model">account.tax.group</field>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <form string="Account Tax Group">
-                    <field name="name" colspan="4"/>
-                    <field name="tax_ids" colspan="4"/>
-                </form>
-            </field>
-        </record>
-
-        <record id="action_tax_group_form" model="ir.actions.act_window">
-            <field name="name">Tax Groups</field>
-            <field name="res_model">account.tax.group</field>
-            <field name="view_type">form</field>
-            <field name="view_mode">tree,form</field>
-        </record>
-
-        <menuitem action="action_tax_group_form" id="menu_action_tax_group_form" parent="account.next_id_27"/>
-
-    </data>
-</openerp>

=== removed file 'base_sale_multichannels/base_sale_data.xml'
--- base_sale_multichannels/base_sale_data.xml	2012-09-06 12:34:40 +0000
+++ base_sale_multichannels/base_sale_data.xml	1970-01-01 00:00:00 +0000
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data noupdate="1">
-
-        <record id="product_categ_services" model="product.category">
-            <field name="name">Services</field>
-        </record>
-
-        <record id="product_product_shipping" model="product.product">
-            <field name="default_code">SHIP</field>
-            <field name="list_price">0.0</field>
-            <field name="standard_price">0.0</field>
-            <field name="type">service</field>
-            <field name="name">Shipping costs</field>
-            <field name="categ_id" ref="product_categ_services"/>
-        </record>
-
-        <record id="product_product_cash_on_delivery" model="product.product">
-            <field name="default_code">CASH ON DELIVERY</field>
-            <field name="list_price">0.0</field>
-            <field name="standard_price">0.0</field>
-            <field name="type">service</field>
-            <field name="name">Cash on delivery</field>
-            <field name="categ_id" ref="product_categ_services"/>
-        </record>
-
-        <record id="product_product_gift" model="product.product">
-            <field name="default_code">GIFT CERTIFICATE</field>
-            <field name="list_price">0.0</field>
-            <field name="standard_price">0.0</field>
-            <field name="type">service</field>
-            <field name="name">Gift Certificate</field>
-            <field name="categ_id" ref="product_categ_services"/>
-        </record>
-
-        <record id="product_product_discount" model="product.product">
-            <field name="default_code">DISCOUNT</field>
-            <field name="list_price">0.0</field>
-            <field name="standard_price">0.0</field>
-            <field name="type">service</field>
-            <field name="name">Discount Coupon</field>
-            <field name="categ_id" ref="product_categ_services"/>
-        </record>
-
-    </data>
-</openerp>

=== removed file 'base_sale_multichannels/connector.py'
--- base_sale_multichannels/connector.py	2012-08-22 16:31:16 +0000
+++ base_sale_multichannels/connector.py	1970-01-01 00:00:00 +0000
@@ -1,37 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   product_custom_attributes for OpenERP                                     #
-#   Copyright (C) 2012 Camptocamp Alexandre Fayolle  <alexandre.fayolle@xxxxxxxxxxxxxx>  #
-#   Copyright (C) 2012 Akretion Sebastien Beau <sebastien.beau@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-from base_external_referentials.connector import AbstractConnector
-
-class BaseConnector(AbstractConnector):
-    def _get_import_defaults_res_partner(self, cr, uid, context=None):
-        pass
-    def _get_import_defaults_res_partner(self, cr, uid, context=None):
-        pass
-    def _get_import_defaults_external_shop_group(self, cr, uid, context=None):
-        pass
-
-    def _get_import_defaults_sale_order(self, cr, uid, context=None):
-        pass
-
-    def _record_one_sale_order(self, cr, uid, res_obj, resource, defaults, context):
-        pass

=== removed file 'base_sale_multichannels/delivery.py'
--- base_sale_multichannels/delivery.py	2012-08-21 13:57:44 +0000
+++ base_sale_multichannels/delivery.py	1970-01-01 00:00:00 +0000
@@ -1,29 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    Author Guewen Baconnier. Copyright 2011 Camptocamp SA
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU General Public License as published by
-#    the Free Software Foundation, either version 3 of the License, or
-#    (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU General Public License for more details.
-#
-#    You should have received a copy of the GNU General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-
-class delivery_carrier(Model):
-    _inherit = "delivery.carrier"
-
-    _columns = {
-        'export_needs_tracking': fields.boolean('Export only shippings with a tracking number'),
-    }

=== removed file 'base_sale_multichannels/delivery_view.xml'
--- base_sale_multichannels/delivery_view.xml	2011-07-14 14:37:48 +0000
+++ base_sale_multichannels/delivery_view.xml	1970-01-01 00:00:00 +0000
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-
-        <record id="view_delivery_carrier_form_inherit" model="ir.ui.view">
-            <field name="name">delivery.carrier.form.inherit</field>
-            <field name="model">delivery.carrier</field>
-            <field name="inherit_id" ref="delivery.view_delivery_carrier_form" />
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                 <data>
-                    <field name="product_id" position="after">
-                        <field name="export_needs_tracking"/>
-                    </field>
-                </data>
-            </field>
-        </record>
-
-    </data>
-</openerp>

=== removed file 'base_sale_multichannels/external_referential.py'
--- base_sale_multichannels/external_referential.py	2012-10-23 10:21:28 +0000
+++ base_sale_multichannels/external_referential.py	1970-01-01 00:00:00 +0000
@@ -1,83 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   base_sale_multichannels for OpenERP                                       #
-#   Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-from openerp.osv.orm import Model
-from openerp.osv import fields
-
-
-class external_referential(Model):
-    _inherit = "external.referential"
-
-    _columns = {
-        'last_imported_product_id': fields.integer('Last Imported Product Id',
-                                                   help=("Product are imported one by one."
-                                                         "This is the magento id of the last product imported."
-                                                         "If you clear it all product will be imported")),
-        'last_imported_partner_id': fields.integer('Last Imported Partner Id',
-                                                   help=("Partners are imported one by one."
-                                                         "This is the magento id of the last partner imported."
-                                                         "If you clear it all partners will be imported")),
-        'import_all_attributs': fields.boolean('Import all attributs',
-                                               help=("If the option is uncheck only the attributs"
-                                                     "that doesn't exist in OpenERP will be imported")),
-        'import_image_with_product': fields.boolean('With image',
-                                                    help=("If the option is check the product's image and"
-                                                          "the product will be imported at the same time and"
-                                                          "so the step '7-import images' is not needed")),
-        'import_links_with_product': fields.boolean('With links',
-                                                    help=("If the option is check the product's links"
-                                                          "(Up-Sell, Cross-Sell, Related) and the product will be imported"
-                                                          "at the same time and so the step '8-import links' is not needed")),
-        }
-
-    def import_customer_groups(self, cr, uid, ids, context=None):
-        self.import_resources(cr, uid, ids, 'res.partner.category', context=context)
-        return True
-
-    def import_product_categories(self, cr, uid, ids, context=None):
-        self.import_resources(cr, uid, ids, 'product.category', context=context)
-        return True
-
-    def import_customers(self, cr, uid, ids, context=None):
-        self.import_resources(cr, uid, ids, 'res.partner', context=context)
-        return True
-
-#    def import_product_attributes_sets(self, cr, uid, ids, context=None):
-#        return self.import_resources(cr, uid, ids, 'TODO', context=context)
-#
-#    def import_product_attributes_groups(self, cr, uid, ids, context=None):
-#        return self.import_resources(cr, uid, ids, 'TODO', context=context)
-#
-#    def import_product_attributes(self, cr, uid, ids, context=None):
-#        return self.import_resources(cr, uid, ids, 'TODO', context=context)
-
-    def import_products(self, cr, uid, ids, context=None):
-        self.import_resources(cr, uid, ids, 'product.product', context=context)
-        return True
-
-    def import_product_links(self, cr, uid, ids, context=None):
-        self.import_resources(cr, uid, ids, 'product.link', context=context)
-        return True
-
-
-
-
-
-

=== removed directory 'base_sale_multichannels/i18n'
=== removed file 'base_sale_multichannels/i18n/base_sale_multichannels.pot'
--- base_sale_multichannels/i18n/base_sale_multichannels.pot	2010-08-26 01:14:26 +0000
+++ base_sale_multichannels/i18n/base_sale_multichannels.pot	1970-01-01 00:00:00 +0000
@@ -1,306 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#	* base_sale_multichannels
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.6\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2009-12-20 17:22:08+0000\n"
-"PO-Revision-Date: 2009-12-20 17:22:08+0000\n"
-"Last-Translator: <>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: \n"
-"Plural-Forms: \n"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Partial Delivery"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: constraint:ir.model:0
-msgid "The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
-msgid "\n"
-"This module provide an abstract common minimal base to multi-channels sales.\n"
-"Say you want to expose your product catalog to\n"
-"* several instances of flashy-sluggish Magento web sites\n"
-"* a cutting edge Spree web shop\n"
-"* a Neteven online Marketplace\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* an external Point Of Sale system\n"
-"* ...\n"
-"Then this module allows you to:\n"
-"* use several external references ids on every OpenERP object matching those all those external referentials\n"
-"* per referential instance, use several sale sub platform entities (ex: several Magento websites per instance)\n"
-"* per sub platform, use several shops (ex: several Magento web shops per website)\n"
-"\n"
-"For each sale shop (matching OpenERP sale.shop object), this module abstract the interfaces to:\n"
-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
-"* import the catalog\n"
-"* import orders\n"
-"* export orders/picking status\n"
-"    "
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,order_policy:0
-msgid "Shipping Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "None"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Shipped Quantities"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,referential_id:0
-msgid "Referential"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Draft"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_quantity:0
-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."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,shop_group_id:0
-msgid "Shop Group"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:product.category,recursive_childen_ids:0
-msgid "All Child Categories"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Update Orders Status"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_policy:0
-msgid "If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:account.journal,external_payment_codes:0
-msgid "Enter the external payment codes, comma separated. They will be used to select the payment journal."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_policy:0
-msgid "Packing Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Complete Delivery"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_generation_policy:0
-msgid "Invoice Generation Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Ordered Quantities"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,is_tax_included:0
-msgid "Requires sale_tax_include module to be installed"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Catalog"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "External Shop Settings"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Catalog"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice from the Packing"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Order Generation"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:account.journal,external_payment_codes:0
-msgid "External Payment Codes"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice on Order After Delivery"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,shop_ids:0
-msgid "Sale Shops"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,name:0
-msgid "Name"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_quantity:0
-msgid "Invoice on"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,order_policy:0
-msgid "The Shipping Policy is used to synchronise invoice and delivery operations.\n"
-"  - The 'Pay before delivery' choice will first generate the invoice and then generate the packing order after the payment of this invoice.\n"
-"  - 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"
-"  - The 'Invoice on Order After Delivery' choice will generate the draft invoice based on sale order after all packing lists have been finished.\n"
-"  - The 'Invoice from the packing' choice is used to create an invoice during the packing process."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_inventory_export_date:0
-msgid "Last Inventory Export Time"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.referential,shop_group_ids:0
-msgid "Sub Entities"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,referential_id:0
-msgid "External Referential"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Payment Before Delivery"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
-msgid "Base Sale MultiChannels"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-#: field:sale.shop,exportable_product_ids:0
-msgid "Exportable Products"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Import Orders"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_generation_policy:0
-msgid "Picking Generation Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_generation_policy:0
-msgid "Should orders create an invoice after import?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_update_order_export_date:0
-msgid "Last Order Update  Time"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_generation_policy:0
-msgid "Should orders create a picking after import?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Validated"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
-msgid "External Referential Shop Group"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Stock Levels Only"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Shipping & Manual Invoice"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Actions"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,exportable_root_category_ids:0
-msgid "Root Category"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,is_tax_included:0
-msgid "Prices Include Tax?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Shop"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Multi Channels"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Orders"
-msgstr ""
-

=== removed file 'base_sale_multichannels/i18n/ca.po'
--- base_sale_multichannels/i18n/ca.po	2012-02-27 18:49:05 +0000
+++ base_sale_multichannels/i18n/ca.po	1970-01-01 00:00:00 +0000
@@ -1,380 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#	* base_sale_multichannels
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.6\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
-"PO-Revision-Date: 2011-02-14 10:04+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"<jesteve@xxxxxxxxxxxxxxx>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
-"X-Generator: Launchpad (build 14676)\n"
-"X-Poedit-Language: Catalan\n"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Partial Delivery"
-msgstr "Enviament parcial"
-
-#. module: base_sale_multichannels
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter "
-"especial!"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
-msgid ""
-"\n"
-"This module provide an abstract common minimal base to multi-channels "
-"sales.\n"
-"Say you want to expose your product catalog to\n"
-"* several instances of flashy-sluggish Magento web sites\n"
-"* a cutting edge Spree web shop\n"
-"* a Neteven online Marketplace\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* an external Point Of Sale system\n"
-"* ...\n"
-"Then this module allows you to:\n"
-"* use several external references ids on every OpenERP object matching those "
-"all those external referentials\n"
-"* per referential instance, use several sale sub platform entities (ex: "
-"several Magento websites per instance)\n"
-"* per sub platform, use several shops (ex: several Magento web shops per "
-"website)\n"
-"\n"
-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
-"the interfaces to:\n"
-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
-"* import the catalog\n"
-"* import orders\n"
-"* export orders/picking status\n"
-"    "
-msgstr ""
-"\n"
-"Aquest mòdul proporciona una mínima base d'abstracció comuna a diversos "
-"canals de vendes.\n"
-"Suposem que voleu exposar el vostre catàleg de productes a:\n"
-"* Diverses instàncies de botiga web de Magento\n"
-"* Una botiga web d'última generació Spree\n"
-"* Un mercat Neteven\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* Un sistema punt de venda extern\n"
-"* ...\n"
-"Llavors, aquest mòdul us permet:\n"
-"* L'ús de diverses referències externes a tots els identificadors d'objectes "
-"OpenERP que apunten a totes aquestes referències externes.\n"
-"* Referències per instància, l'ús de diverses sub entitats de vendes (per "
-"exemple diversos llocs web Magento per instància)\n"
-"* Referències per sub entitat, l'ús de diverses botigues (per exemple "
-"diverses botigues web Magento per lloc web)\n"
-"\n"
-"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"
-"* Exportar el catàleg, nivell d'estoc del magatzem de la botiga, tarifa de "
-"preus de la botiga\n"
-"* Importar el catàleg\n"
-"* Importar comandes\n"
-"* Exportar l'estat de les comandes/albarans\n"
-"    "
-
-#. module: base_sale_multichannels
-#: field:sale.shop,order_policy:0
-msgid "Shipping Policy"
-msgstr "Política de facturació"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "None"
-msgstr "Cap"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Shipped Quantities"
-msgstr "Quantitats enviades"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,referential_id:0
-msgid "Referential"
-msgstr "Referència"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Draft"
-msgstr "Esborrany"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_quantity:0
-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."
-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."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,shop_group_id:0
-msgid "Shop Group"
-msgstr "Grup botigues"
-
-#. module: base_sale_multichannels
-#: field:product.category,recursive_childen_ids:0
-msgid "All Child Categories"
-msgstr "Totes categories filles"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Update Orders Status"
-msgstr "Actualitza estat comandes"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_policy:0
-msgid ""
-"If you don't have enough stock available to deliver all at once, do you "
-"accept partial shipments or not?"
-msgstr ""
-"Si no disposeu de suficient estoc disponible per a enviar-ho tot a la "
-"vegada, accepteu enviaments parcials?"
-
-#. module: base_sale_multichannels
-#: help:account.journal,external_payment_codes:0
-msgid ""
-"Enter the external payment codes, comma separated. They will be used to "
-"select the payment journal."
-msgstr ""
-"Indiqueu els codis de pagament externs, separats per coma. S'utilitzaran per "
-"a seleccionar el diari de pagament."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_policy:0
-msgid "Packing Policy"
-msgstr "Política d'enviament"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Complete Delivery"
-msgstr "Enviament complet"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_generation_policy:0
-msgid "Invoice Generation Policy"
-msgstr "Política generació de factures"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Ordered Quantities"
-msgstr "Quantitats ordenades"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,is_tax_included:0
-msgid "Requires sale_tax_include module to be installed"
-msgstr "Requereix que el mòdul sale_tax_include sigui instal·lat."
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Catalog"
-msgstr "Catàleg"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "External Shop Settings"
-msgstr "Configuració botiga externa"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Catalog"
-msgstr "Exporta catàleg"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice from the Packing"
-msgstr "Factura des d'albarà"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Order Generation"
-msgstr "Generació comanda"
-
-#. module: base_sale_multichannels
-#: field:account.journal,external_payment_codes:0
-msgid "External Payment Codes"
-msgstr "Codis de pagament externs"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice on Order After Delivery"
-msgstr "Factura comanda després de l'enviament"
-
-#. module: base_sale_multichannels
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML invàlid per a la definició de la vista!"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,shop_ids:0
-msgid "Sale Shops"
-msgstr "Botigues venda"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,name:0
-msgid "Name"
-msgstr "Nom"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_quantity:0
-msgid "Invoice on"
-msgstr "Factura les"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,order_policy:0
-msgid ""
-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
-"  - The 'Pay before delivery' choice will first generate the invoice and "
-"then generate the packing order after the payment of this invoice.\n"
-"  - 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"
-"  - The 'Invoice on Order After Delivery' choice will generate the draft "
-"invoice based on sale order after all packing lists have been finished.\n"
-"  - The 'Invoice from the packing' choice is used to create an invoice "
-"during the packing process."
-msgstr ""
-"La política d'enviament s'utilitza per sincronitzar la factura i les "
-"operacions d'enviament.\n"
-"  - 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"
-"  - 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"
-"  - 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"
-"  - L'opció 'Factura des d'albarà' s'utilitza per a crear una factura des "
-"dels albarans processats."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_inventory_export_date:0
-msgid "Last Inventory Export Time"
-msgstr "Data última exportació inventari"
-
-#. module: base_sale_multichannels
-#: field:external.referential,shop_group_ids:0
-msgid "Sub Entities"
-msgstr "Sub entitats"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,referential_id:0
-msgid "External Referential"
-msgstr "Referència externa"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Payment Before Delivery"
-msgstr "Pagament abans de l'enviament"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
-msgid "Base Sale MultiChannels"
-msgstr "Base vendes multicanal"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-#: field:sale.shop,exportable_product_ids:0
-msgid "Exportable Products"
-msgstr "Productes exportables"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Import Orders"
-msgstr "Importa comandes"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_generation_policy:0
-msgid "Picking Generation Policy"
-msgstr "Política generació d'albarans"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_generation_policy:0
-msgid "Should orders create an invoice after import?"
-msgstr "Les comandes haurien de crear una factura després de la importació?"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_update_order_export_date:0
-msgid "Last Order Update  Time"
-msgstr "Data última actualització comandes"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_generation_policy:0
-msgid "Should orders create a picking after import?"
-msgstr "Les comandes haurien de crear un albarà després de la importació?"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Validated"
-msgstr "Validat"
-
-#. module: base_sale_multichannels
-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
-msgid "External Referential Shop Group"
-msgstr "Referència externa grup botigues"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Stock Levels Only"
-msgstr "Exporta només nivells d'estoc"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Shipping & Manual Invoice"
-msgstr "Envia & Factura manual"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Actions"
-msgstr "Accions"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,exportable_root_category_ids:0
-msgid "Root Category"
-msgstr "Categoria arrel"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,is_tax_included:0
-msgid "Prices Include Tax?"
-msgstr "Preus inclouen impostos?"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Shop"
-msgstr "Botiga venda"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Multi Channels"
-msgstr "Vendes Multi canal"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Orders"
-msgstr "Comandes"

=== removed file 'base_sale_multichannels/i18n/ca_ES.po'
--- base_sale_multichannels/i18n/ca_ES.po	2010-08-26 01:14:26 +0000
+++ base_sale_multichannels/i18n/ca_ES.po	1970-01-01 00:00:00 +0000
@@ -1,334 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#	* base_sale_multichannels
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.6\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2009-12-20 17:22:08+0000\n"
-"PO-Revision-Date: 2010-03-02 13:08+0100\n"
-"Last-Translator: Jordi Esteve (Zikzakmedia) <jesteve@xxxxxxxxxxxxxxx>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-Language: Catalan\n"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Partial Delivery"
-msgstr "Enviament parcial"
-
-#. module: base_sale_multichannels
-#: constraint:ir.model:0
-msgid "The Object name must start with x_ and not contain any special character !"
-msgstr "El nom de l'objecte ha de començar amb x_ i no contenir cap caràcter especial!"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
-msgid ""
-"\n"
-"This module provide an abstract common minimal base to multi-channels sales.\n"
-"Say you want to expose your product catalog to\n"
-"* several instances of flashy-sluggish Magento web sites\n"
-"* a cutting edge Spree web shop\n"
-"* a Neteven online Marketplace\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* an external Point Of Sale system\n"
-"* ...\n"
-"Then this module allows you to:\n"
-"* use several external references ids on every OpenERP object matching those all those external referentials\n"
-"* per referential instance, use several sale sub platform entities (ex: several Magento websites per instance)\n"
-"* per sub platform, use several shops (ex: several Magento web shops per website)\n"
-"\n"
-"For each sale shop (matching OpenERP sale.shop object), this module abstract the interfaces to:\n"
-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
-"* import the catalog\n"
-"* import orders\n"
-"* export orders/picking status\n"
-"    "
-msgstr ""
-"\n"
-"Aquest mòdul proporciona una mínima base d'abstracció comuna a diversos canals de vendes.\n"
-"Suposem que voleu exposar el vostre catàleg de productes a:\n"
-"* Diverses instàncies de botiga web de Magento\n"
-"* Una botiga web d'última generació Spree\n"
-"* Un mercat Neteven\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* Un sistema punt de venda extern\n"
-"* ...\n"
-"Llavors, aquest mòdul us permet:\n"
-"* L'ús de diverses referències externes a tots els identificadors d'objectes OpenERP que apunten a totes aquestes referències externes.\n"
-"* Referències per instància, l'ús de diverses sub entitats de vendes (per exemple diversos llocs web Magento per instància)\n"
-"* Referències per sub entitat, l'ús de diverses botigues (per exemple diverses botigues web Magento per lloc web)\n"
-"\n"
-"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"
-"* Exportar el catàleg, nivell d'estoc del magatzem de la botiga, tarifa de preus de la botiga\n"
-"* Importar el catàleg\n"
-"* Importar comandes\n"
-"* Exportar l'estat de les comandes/albarans\n"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,order_policy:0
-msgid "Shipping Policy"
-msgstr "Política de facturació"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "None"
-msgstr "Cap"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Shipped Quantities"
-msgstr "Quantitats enviades"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,referential_id:0
-msgid "Referential"
-msgstr "Referència"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Draft"
-msgstr "Esborrany"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_quantity:0
-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."
-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."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,shop_group_id:0
-msgid "Shop Group"
-msgstr "Grup botigues"
-
-#. module: base_sale_multichannels
-#: field:product.category,recursive_childen_ids:0
-msgid "All Child Categories"
-msgstr "Totes categories filles"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Update Orders Status"
-msgstr "Actualitza estat comandes"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_policy:0
-msgid "If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"
-msgstr "Si no disposeu de suficient estoc disponible per a enviar-ho tot a la vegada, accepteu enviaments parcials?"
-
-#. module: base_sale_multichannels
-#: help:account.journal,external_payment_codes:0
-msgid "Enter the external payment codes, comma separated. They will be used to select the payment journal."
-msgstr "Indiqueu els codis de pagament externs, separats per coma. S'utilitzaran per a seleccionar el diari de pagament."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_policy:0
-msgid "Packing Policy"
-msgstr "Política d'enviament"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Complete Delivery"
-msgstr "Enviament complet"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_generation_policy:0
-msgid "Invoice Generation Policy"
-msgstr "Política generació de factures"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Ordered Quantities"
-msgstr "Quantitats ordenades"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,is_tax_included:0
-msgid "Requires sale_tax_include module to be installed"
-msgstr "Requereix que el mòdul sale_tax_include sigui instal·lat."
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Catalog"
-msgstr "Catàleg"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "External Shop Settings"
-msgstr "Configuració botiga externa"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Catalog"
-msgstr "Exporta catàleg"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice from the Packing"
-msgstr "Factura des d'albarà"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Order Generation"
-msgstr "Generació comanda"
-
-#. module: base_sale_multichannels
-#: field:account.journal,external_payment_codes:0
-msgid "External Payment Codes"
-msgstr "Codis de pagament externs"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice on Order After Delivery"
-msgstr "Factura comanda després de l'enviament"
-
-#. module: base_sale_multichannels
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML invàlid per a la definició de la vista!"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,shop_ids:0
-msgid "Sale Shops"
-msgstr "Botigues venda"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,name:0
-msgid "Name"
-msgstr "Nom"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_quantity:0
-msgid "Invoice on"
-msgstr "Factura les"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,order_policy:0
-msgid ""
-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
-"  - The 'Pay before delivery' choice will first generate the invoice and then generate the packing order after the payment of this invoice.\n"
-"  - 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"
-"  - The 'Invoice on Order After Delivery' choice will generate the draft invoice based on sale order after all packing lists have been finished.\n"
-"  - The 'Invoice from the packing' choice is used to create an invoice during the packing process."
-msgstr ""
-"La política d'enviament s'utilitza per sincronitzar la factura i les operacions d'enviament.\n"
-"  - 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"
-"  - 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"
-"  - 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"
-"  - L'opció 'Factura des d'albarà' s'utilitza per a crear una factura des dels albarans processats."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_inventory_export_date:0
-msgid "Last Inventory Export Time"
-msgstr "Data última exportació inventari"
-
-#. module: base_sale_multichannels
-#: field:external.referential,shop_group_ids:0
-msgid "Sub Entities"
-msgstr "Sub entitats"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,referential_id:0
-msgid "External Referential"
-msgstr "Referència externa"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Payment Before Delivery"
-msgstr "Pagament abans de l'enviament"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
-msgid "Base Sale MultiChannels"
-msgstr "Base vendes multicanal"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-#: field:sale.shop,exportable_product_ids:0
-msgid "Exportable Products"
-msgstr "Productes exportables"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Import Orders"
-msgstr "Importa comandes"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_generation_policy:0
-msgid "Picking Generation Policy"
-msgstr "Política generació d'albarans"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_generation_policy:0
-msgid "Should orders create an invoice after import?"
-msgstr "Les comandes haurien de crear una factura després de la importació?"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_update_order_export_date:0
-msgid "Last Order Update  Time"
-msgstr "Data última actualització comandes"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_generation_policy:0
-msgid "Should orders create a picking after import?"
-msgstr "Les comandes haurien de crear un albarà després de la importació?"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Validated"
-msgstr "Validat"
-
-#. module: base_sale_multichannels
-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
-msgid "External Referential Shop Group"
-msgstr "Referència externa grup botigues"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Stock Levels Only"
-msgstr "Exporta només nivells d'estoc"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Shipping & Manual Invoice"
-msgstr "Envia & Factura manual"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Actions"
-msgstr "Accions"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,exportable_root_category_ids:0
-msgid "Root Category"
-msgstr "Categoria arrel"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,is_tax_included:0
-msgid "Prices Include Tax?"
-msgstr "Preus inclouen impostos?"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Shop"
-msgstr "Botiga venda"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Multi Channels"
-msgstr "Vendes Multi canal"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Orders"
-msgstr "Comandes"
-

=== removed file 'base_sale_multichannels/i18n/es.po'
--- base_sale_multichannels/i18n/es.po	2012-02-27 18:49:05 +0000
+++ base_sale_multichannels/i18n/es.po	1970-01-01 00:00:00 +0000
@@ -1,379 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#	* base_sale_multichannels
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.6\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
-"PO-Revision-Date: 2011-02-14 10:04+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"<jesteve@xxxxxxxxxxxxxxx>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
-"X-Generator: Launchpad (build 14676)\n"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Partial Delivery"
-msgstr "Envío parcial"
-
-#. module: base_sale_multichannels
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"¡El nombre del objeto debe empezar con x_ y no contener ningún carácter "
-"especial!"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
-msgid ""
-"\n"
-"This module provide an abstract common minimal base to multi-channels "
-"sales.\n"
-"Say you want to expose your product catalog to\n"
-"* several instances of flashy-sluggish Magento web sites\n"
-"* a cutting edge Spree web shop\n"
-"* a Neteven online Marketplace\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* an external Point Of Sale system\n"
-"* ...\n"
-"Then this module allows you to:\n"
-"* use several external references ids on every OpenERP object matching those "
-"all those external referentials\n"
-"* per referential instance, use several sale sub platform entities (ex: "
-"several Magento websites per instance)\n"
-"* per sub platform, use several shops (ex: several Magento web shops per "
-"website)\n"
-"\n"
-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
-"the interfaces to:\n"
-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
-"* import the catalog\n"
-"* import orders\n"
-"* export orders/picking status\n"
-"    "
-msgstr ""
-"\n"
-"Este módulo proporciona una mínima base de abstracción común a varios "
-"canales de ventas.\n"
-"Supongamos que quiere exponer su catálogo de productos en:\n"
-"* Varias instancias de tiendas web de Magento\n"
-"* Una tienda web de última generación Spree\n"
-"* Un mercado Neteven\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* Un sistema punto de venta externo\n"
-"* ...\n"
-"Entonces, este módulo le permite:\n"
-"* El uso de varias referencias externas en todos los identificadores de "
-"objetos OpenERP que mapean todas estas referencias externas.\n"
-"* Referencias por instancia, el uso de varias subentidades de ventas (por "
-"ejemplo varios sitios web Magento por instancia)\n"
-"* Referencias por subentidad, el uso de varias tiendas (por ejemplo varias "
-"tiendas web Magento por sitio web)\n"
-"\n"
-"Para cada tienda de venta (que se corresponda al objeto sale.shop de "
-"OpenERP), este módulo abstrae las interfaces de:\n"
-"* Exportar el catálogo, nivel de stock del almacén de la tienda, tarifa de "
-"precios de la tienda\n"
-"* Importar el catálogo\n"
-"* Importar pedidos\n"
-"* Exportar el estado de pedidos/albaranes\n"
-"    "
-
-#. module: base_sale_multichannels
-#: field:sale.shop,order_policy:0
-msgid "Shipping Policy"
-msgstr "Política de facturación"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "None"
-msgstr "Ninguno/a"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Shipped Quantities"
-msgstr "Cantidades enviadas"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,referential_id:0
-msgid "Referential"
-msgstr "Referencia"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Draft"
-msgstr "Borrador"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_quantity:0
-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."
-msgstr ""
-"El pedido de venta creará automáticamente la propuesta de factura (factura "
-"borrador). Las cantidades pedidas y las cantidades enviadas pueden no ser "
-"las mismas. Tiene que decidir si factura basado en cantidades pedidas o "
-"enviadas. Si el producto es un servicio, cantidades enviadas significa horas "
-"dedicadas a las tareas asociadas."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,shop_group_id:0
-msgid "Shop Group"
-msgstr "Grupo tiendas"
-
-#. module: base_sale_multichannels
-#: field:product.category,recursive_childen_ids:0
-msgid "All Child Categories"
-msgstr "Todas categorías hijas"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Update Orders Status"
-msgstr "Actualizar estado pedidos"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_policy:0
-msgid ""
-"If you don't have enough stock available to deliver all at once, do you "
-"accept partial shipments or not?"
-msgstr ""
-"Si no dispone de suficiente stock disponible para enviarlo todo a la vez, "
-"¿acepta envíos parciales?"
-
-#. module: base_sale_multichannels
-#: help:account.journal,external_payment_codes:0
-msgid ""
-"Enter the external payment codes, comma separated. They will be used to "
-"select the payment journal."
-msgstr ""
-"Indique los códigos de pago externos, separados por coma. Serán utilizados "
-"para seleccionar el diario de pago."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_policy:0
-msgid "Packing Policy"
-msgstr "Política de envío"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Complete Delivery"
-msgstr "Envío completo"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_generation_policy:0
-msgid "Invoice Generation Policy"
-msgstr "Política generación de facturas"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Ordered Quantities"
-msgstr "Cantidades ordenadas"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,is_tax_included:0
-msgid "Requires sale_tax_include module to be installed"
-msgstr "Requiere que el módulo sale_tax_include sea instalado."
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Catalog"
-msgstr "Catálogo"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "External Shop Settings"
-msgstr "Configuración tienda externa"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Catalog"
-msgstr "Exportar catálogo"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice from the Packing"
-msgstr "Factura desde albarán"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Order Generation"
-msgstr "Generación pedido"
-
-#. module: base_sale_multichannels
-#: field:account.journal,external_payment_codes:0
-msgid "External Payment Codes"
-msgstr "Códigos de pago externos"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice on Order After Delivery"
-msgstr "Facturar pedido después del envío"
-
-#. module: base_sale_multichannels
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "¡XML inválido para la definición de la vista!"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,shop_ids:0
-msgid "Sale Shops"
-msgstr "Tiendas venta"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,name:0
-msgid "Name"
-msgstr "Nombre"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_quantity:0
-msgid "Invoice on"
-msgstr "Facturar las"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,order_policy:0
-msgid ""
-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
-"  - The 'Pay before delivery' choice will first generate the invoice and "
-"then generate the packing order after the payment of this invoice.\n"
-"  - 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"
-"  - The 'Invoice on Order After Delivery' choice will generate the draft "
-"invoice based on sale order after all packing lists have been finished.\n"
-"  - The 'Invoice from the packing' choice is used to create an invoice "
-"during the packing process."
-msgstr ""
-"La política de envío se utiliza para sincronizar la factura y las "
-"operaciones de envío.\n"
-"  - La opción 'Pago antes del envío' primero genera la factura y luego "
-"genera el albarán después del pago de esta factura.\n"
-"  - La opción 'Envío '& Factura manual' creará el albarán directamente y "
-"esperará a que el usuario haga clic manualmente en el botón 'Factura' para "
-"generar la factura borrador.\n"
-"  - La opción 'Factura según pedido después envío' generará la factura "
-"borrador basada en el pedido de venta después de que todos los albaranes se "
-"hayan procesado.\n"
-"  - La opción 'Factura desde albarán' se utiliza para crear una factura "
-"durante el proceso de los albaranes."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_inventory_export_date:0
-msgid "Last Inventory Export Time"
-msgstr "Fecha última exportación inventario"
-
-#. module: base_sale_multichannels
-#: field:external.referential,shop_group_ids:0
-msgid "Sub Entities"
-msgstr "Sub entidades"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,referential_id:0
-msgid "External Referential"
-msgstr "Referencia externa"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Payment Before Delivery"
-msgstr "Pago antes del envío"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
-msgid "Base Sale MultiChannels"
-msgstr "Base ventas multicanal"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-#: field:sale.shop,exportable_product_ids:0
-msgid "Exportable Products"
-msgstr "Productos exportables"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Import Orders"
-msgstr "Importar pedidos"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_generation_policy:0
-msgid "Picking Generation Policy"
-msgstr "Política generación de albaranes"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_generation_policy:0
-msgid "Should orders create an invoice after import?"
-msgstr "¿Los pedidos deberían crear una factura después de la importación?"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_update_order_export_date:0
-msgid "Last Order Update  Time"
-msgstr "Fecha última actualización pedidos"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_generation_policy:0
-msgid "Should orders create a picking after import?"
-msgstr "¿Los pedidos deberían crear un albarán después de la importación?"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Validated"
-msgstr "Validado"
-
-#. module: base_sale_multichannels
-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
-msgid "External Referential Shop Group"
-msgstr "Referencia externa grupo tiendas"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Stock Levels Only"
-msgstr "Exportar sólo niveles de stock"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Shipping & Manual Invoice"
-msgstr "Enviar & Factura manual"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Actions"
-msgstr "Accions"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,exportable_root_category_ids:0
-msgid "Root Category"
-msgstr "Categoría raíz"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,is_tax_included:0
-msgid "Prices Include Tax?"
-msgstr "¿Precios incluyen impuestos?"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Shop"
-msgstr "Tienda venta"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Multi Channels"
-msgstr "Ventas Multi canal"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Orders"
-msgstr "Pedidos"

=== removed file 'base_sale_multichannels/i18n/fr.po'
--- base_sale_multichannels/i18n/fr.po	2012-02-27 18:49:05 +0000
+++ base_sale_multichannels/i18n/fr.po	1970-01-01 00:00:00 +0000
@@ -1,356 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#	* base_sale_multichannels
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.1beta\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
-"PO-Revision-Date: 2011-12-05 12:42+0000\n"
-"Last-Translator: OpenERP Administrators <Unknown>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
-"X-Generator: Launchpad (build 14676)\n"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Partial Delivery"
-msgstr "Livraison Partielle"
-
-#. module: base_sale_multichannels
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
-msgid ""
-"\n"
-"This module provide an abstract common minimal base to multi-channels "
-"sales.\n"
-"Say you want to expose your product catalog to\n"
-"* several instances of flashy-sluggish Magento web sites\n"
-"* a cutting edge Spree web shop\n"
-"* a Neteven online Marketplace\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* an external Point Of Sale system\n"
-"* ...\n"
-"Then this module allows you to:\n"
-"* use several external references ids on every OpenERP object matching those "
-"all those external referentials\n"
-"* per referential instance, use several sale sub platform entities (ex: "
-"several Magento websites per instance)\n"
-"* per sub platform, use several shops (ex: several Magento web shops per "
-"website)\n"
-"\n"
-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
-"the interfaces to:\n"
-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
-"* import the catalog\n"
-"* import orders\n"
-"* export orders/picking status\n"
-"    "
-msgstr ""
-"\n"
-"Ce module fourni une couche d'abstracion minimale pour les ventes en multi-"
-"canaux.\n"
-"Vous voulez exposer votre catalogue produits sur\n"
-"* plusieurs instances de sites web magento\n"
-"* une boutique en ligne Spree d'avant garde\n"
-"* un marché en ligne Neteven\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* un système de point de vente externe\n"
-"* ...\n"
-"Ce module vous permet donc:\n"
-"* d'utiliser plusieurs identifiants externes dans tout les objets OpenERP "
-"correspondant entre eux use several external references ids on every OpenERP "
-"object matching those all those external referentials\n"
-"* par instance référentielle, d'utiliser plusieurs entités de sous "
-"plateforme de vente (ex: plusieurs sites web Magento par instance)\n"
-"* par sous plateforme, d'utiliser plusieurs boutiques (ex: plusieurs "
-"boutiques en ligne Magento par site web)\n"
-"\n"
-"Pour chaque boutique de vente (correspondant aux objets OpenERP sale.shop), "
-"ce module extrait les interfaces pour:\n"
-"* exporter le catalogue, le niveau de stock du magasin, les listes de prix "
-"du magasin\n"
-"* importer le catalogue\n"
-"* importer les commandes\n"
-"* exporter les commandes/status picking\n"
-"    "
-
-#. module: base_sale_multichannels
-#: field:sale.shop,order_policy:0
-msgid "Shipping Policy"
-msgstr "Politique d'expédition"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "None"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Shipped Quantities"
-msgstr "Quantités Expédiées"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,referential_id:0
-msgid "Referential"
-msgstr "Référentiel"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Draft"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_quantity:0
-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."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,shop_group_id:0
-msgid "Shop Group"
-msgstr "Groupe de Magasin"
-
-#. module: base_sale_multichannels
-#: field:product.category,recursive_childen_ids:0
-msgid "All Child Categories"
-msgstr "Toute les Catégories Enfant"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Update Orders Status"
-msgstr "Mettre à Jour les Status des Commmandes"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_policy:0
-msgid ""
-"If you don't have enough stock available to deliver all at once, do you "
-"accept partial shipments or not?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:account.journal,external_payment_codes:0
-msgid ""
-"Enter the external payment codes, comma separated. They will be used to "
-"select the payment journal."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_policy:0
-msgid "Packing Policy"
-msgstr "Politique d'Emballage"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Complete Delivery"
-msgstr "Livraison Complète"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_generation_policy:0
-msgid "Invoice Generation Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Ordered Quantities"
-msgstr "Quantités Commandées"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,is_tax_included:0
-msgid "Requires sale_tax_include module to be installed"
-msgstr "Requière le module sale_tax_include pour pouvoir être installé"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Catalog"
-msgstr "Catalogue"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "External Shop Settings"
-msgstr "Paramètres du Magasin Externe"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Catalog"
-msgstr "Exporter le Catalogue"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice from the Packing"
-msgstr "Facture de l'emballage"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Order Generation"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:account.journal,external_payment_codes:0
-msgid "External Payment Codes"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice on Order After Delivery"
-msgstr "Facture sur Commande Après Livraison"
-
-#. module: base_sale_multichannels
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,shop_ids:0
-msgid "Sale Shops"
-msgstr "Magasins de Vente"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,name:0
-msgid "Name"
-msgstr "Nom"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_quantity:0
-msgid "Invoice on"
-msgstr "Facture sur"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,order_policy:0
-msgid ""
-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
-"  - The 'Pay before delivery' choice will first generate the invoice and "
-"then generate the packing order after the payment of this invoice.\n"
-"  - 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"
-"  - The 'Invoice on Order After Delivery' choice will generate the draft "
-"invoice based on sale order after all packing lists have been finished.\n"
-"  - The 'Invoice from the packing' choice is used to create an invoice "
-"during the packing process."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_inventory_export_date:0
-msgid "Last Inventory Export Time"
-msgstr "Date du Dernier Export d'Inventaire"
-
-#. module: base_sale_multichannels
-#: field:external.referential,shop_group_ids:0
-msgid "Sub Entities"
-msgstr "Sous Entité"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,referential_id:0
-msgid "External Referential"
-msgstr "Référentiel Externe"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Payment Before Delivery"
-msgstr "Paiement Avant Livraison"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
-msgid "Base Sale MultiChannels"
-msgstr "Ventes en Multi Canaux"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-#: field:sale.shop,exportable_product_ids:0
-msgid "Exportable Products"
-msgstr "Produits Exportables"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Import Orders"
-msgstr "Import des Commandes"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_generation_policy:0
-msgid "Picking Generation Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_generation_policy:0
-msgid "Should orders create an invoice after import?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_update_order_export_date:0
-msgid "Last Order Update  Time"
-msgstr "Date de la dernière mise à jour des commandes"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_generation_policy:0
-msgid "Should orders create a picking after import?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Validated"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
-msgid "External Referential Shop Group"
-msgstr "Référence Externe du Groupe de Magasin"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Stock Levels Only"
-msgstr "Export des niveaux de Stock Seulement"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Shipping & Manual Invoice"
-msgstr "Expédition et Facture Manuelle"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Actions"
-msgstr "Actions"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,exportable_root_category_ids:0
-msgid "Root Category"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,is_tax_included:0
-msgid "Prices Include Tax?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Shop"
-msgstr "Magasin de Vente"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Multi Channels"
-msgstr "Vente Multi Canaux"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Orders"
-msgstr "Commandes"

=== removed file 'base_sale_multichannels/i18n/pt.po'
--- base_sale_multichannels/i18n/pt.po	2012-02-27 18:49:05 +0000
+++ base_sale_multichannels/i18n/pt.po	1970-01-01 00:00:00 +0000
@@ -1,379 +0,0 @@
-# Portuguese translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
-"PO-Revision-Date: 2011-02-14 10:04+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Portuguese <pt@xxxxxx>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
-"X-Generator: Launchpad (build 14676)\n"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Partial Delivery"
-msgstr "Entrega Parcial"
-
-#. module: base_sale_multichannels
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-"O nome do Objecto deve começar com x_ e não pode conter nenhum caracter "
-"especial !"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
-msgid ""
-"\n"
-"This module provide an abstract common minimal base to multi-channels "
-"sales.\n"
-"Say you want to expose your product catalog to\n"
-"* several instances of flashy-sluggish Magento web sites\n"
-"* a cutting edge Spree web shop\n"
-"* a Neteven online Marketplace\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* an external Point Of Sale system\n"
-"* ...\n"
-"Then this module allows you to:\n"
-"* use several external references ids on every OpenERP object matching those "
-"all those external referentials\n"
-"* per referential instance, use several sale sub platform entities (ex: "
-"several Magento websites per instance)\n"
-"* per sub platform, use several shops (ex: several Magento web shops per "
-"website)\n"
-"\n"
-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
-"the interfaces to:\n"
-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
-"* import the catalog\n"
-"* import orders\n"
-"* export orders/picking status\n"
-"    "
-msgstr ""
-"\n"
-"Este módulo fornece uma base comum mínima abstrata para vendas multi-"
-"canais.\n"
-"Digamos que queira expor o seu catálogo de produto para\n"
-"* várias instâncias de wev sites Magento flashy-sluggish\n"
-"* Uma loja online Spree de ponta\n"
-"* Uma Mercado Local online de Neteven\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* um sistema externo de Ponto de Venda\n"
-"* ...\n"
-"Então, este módulo permite-lhe fazer:\n"
-"* utilizar vários id externos de referência em cada objecto OpenERP "
-"correspondente a todas as referências externas\n"
-"* por referência de instância utilizar várias entradas de sub-plantaformas "
-"de vendas (ex: várias páginas web Magento por instância)\n"
-"* por sub-plantaforma, utilizar várias lojas (ec: várias lojas web Magento "
-"por página web)\n"
-"\n"
-"Para cada loja de venda (sale.shop.object correspondente OpenERP), este "
-"módulo abstrata as interfaces para:\n"
-"* exportar o catálogo,nível sensato de stock no armazém da loja, lista de "
-"preço justo da loja \n"
-"* importar o catálogo\n"
-"* importar ordens\n"
-"* exportar ordens/estado da recolha\n"
-"    "
-
-#. module: base_sale_multichannels
-#: field:sale.shop,order_policy:0
-msgid "Shipping Policy"
-msgstr "Política de Expedição"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "None"
-msgstr "Nenhum"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Shipped Quantities"
-msgstr "Quantidades Enviadas"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,referential_id:0
-msgid "Referential"
-msgstr "Referencial"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Draft"
-msgstr "Rascunho"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_quantity:0
-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."
-msgstr ""
-"A ordem de venda vai automáticamente criar uma proposta de factura (factura "
-"de rascunho). Quantidades entregues e ordenadas podem não ser a mesma. Vai "
-"ter que escolher se a sua factura é baseada em ordenada ou quantidades "
-"enviadas. Se o produto é um serviço, quantidades enviadas significa horas "
-"gastas nas tarefas associadas."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,shop_group_id:0
-msgid "Shop Group"
-msgstr "Grupo de Loja"
-
-#. module: base_sale_multichannels
-#: field:product.category,recursive_childen_ids:0
-msgid "All Child Categories"
-msgstr "Todas as Categorias Descendentes"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Update Orders Status"
-msgstr "Estado das Ordens Actualizadas"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_policy:0
-msgid ""
-"If you don't have enough stock available to deliver all at once, do you "
-"accept partial shipments or not?"
-msgstr ""
-"Se não tiver stock sufeciente desponível para entregar de uma vez, aceita "
-"transferência parciais ou não?"
-
-#. module: base_sale_multichannels
-#: help:account.journal,external_payment_codes:0
-msgid ""
-"Enter the external payment codes, comma separated. They will be used to "
-"select the payment journal."
-msgstr ""
-"Entrar com os códigos de pagamento externo, vírgula separada. Eles serão "
-"utilizados para selecionar o diário de pagamento."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_policy:0
-msgid "Packing Policy"
-msgstr "Política de Embalagem"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Complete Delivery"
-msgstr "Entrega completa"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_generation_policy:0
-msgid "Invoice Generation Policy"
-msgstr "Politica de Geração de Factura"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Ordered Quantities"
-msgstr "Quantidades Ordenadas"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,is_tax_included:0
-msgid "Requires sale_tax_include module to be installed"
-msgstr "Requere que o módulo sale_tax_include seja instalado"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Catalog"
-msgstr "Catálogo"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "External Shop Settings"
-msgstr "Definições da Loja Externa"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Catalog"
-msgstr "Exportar Catálogo"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice from the Packing"
-msgstr "Factura de Embalagem"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Order Generation"
-msgstr "Ordem de Geração"
-
-#. module: base_sale_multichannels
-#: field:account.journal,external_payment_codes:0
-msgid "External Payment Codes"
-msgstr "Códigos de Pagamento Externo"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice on Order After Delivery"
-msgstr "Ordem Facturada Antes da Entrega"
-
-#. module: base_sale_multichannels
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr "XML Inválido para a Arquitectura de Vista!"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,shop_ids:0
-msgid "Sale Shops"
-msgstr "Lojas de Vendas"
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,name:0
-msgid "Name"
-msgstr "Nome"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_quantity:0
-msgid "Invoice on"
-msgstr "Facturado em"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,order_policy:0
-msgid ""
-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
-"  - The 'Pay before delivery' choice will first generate the invoice and "
-"then generate the packing order after the payment of this invoice.\n"
-"  - 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"
-"  - The 'Invoice on Order After Delivery' choice will generate the draft "
-"invoice based on sale order after all packing lists have been finished.\n"
-"  - The 'Invoice from the packing' choice is used to create an invoice "
-"during the packing process."
-msgstr ""
-"A Políca de Entrega é utilizada para sincronizar a factura e as operações de "
-"entrega.\n"
-"   - A escolha 'Pagar antes de entregar' vai gerar a factura e em seguida "
-"gerar uma ordem de embalagem depois do pagamento desta factura.\n"
-"   - O 'Envio & Factura Manual' vai criar directamente a ordem de embalagem "
-"e esperar para que o utilizador clique manualmente no botão 'factura' para "
-"gerar uma factura rascunho.\n"
-"   - A escolha 'Factura em Ordem Antes da Entrega' vai gerar uma factura "
-"rascunho baseada na ordem de venda depois de todas as listas de embalagem "
-"tenham terminado.\n"
-"   - A escolha 'Factura a partir da embalagem' é utilizada para criar uma "
-"factura durante o processo de embalagem."
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_inventory_export_date:0
-msgid "Last Inventory Export Time"
-msgstr "Último Inventário de Exportação de Tempo"
-
-#. module: base_sale_multichannels
-#: field:external.referential,shop_group_ids:0
-msgid "Sub Entities"
-msgstr "Sub Movimentos"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,referential_id:0
-msgid "External Referential"
-msgstr "Referencial Externa"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Payment Before Delivery"
-msgstr "Pagamento Antes da Entrega"
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
-msgid "Base Sale MultiChannels"
-msgstr "Venda Base de Multi-Canais"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-#: field:sale.shop,exportable_product_ids:0
-msgid "Exportable Products"
-msgstr "Produtos Exportados"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Import Orders"
-msgstr "Importar Ordem"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_generation_policy:0
-msgid "Picking Generation Policy"
-msgstr "Política de Recolha de Geração"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_generation_policy:0
-msgid "Should orders create an invoice after import?"
-msgstr "As ordens devem criar uma factura depois da importação?"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_update_order_export_date:0
-msgid "Last Order Update  Time"
-msgstr "Última Actualização da Ordem Tempo"
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_generation_policy:0
-msgid "Should orders create a picking after import?"
-msgstr "As ordens devem criar uma recolha depois da importação?"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Validated"
-msgstr "Validado"
-
-#. module: base_sale_multichannels
-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
-msgid "External Referential Shop Group"
-msgstr "Referencia Externa Grupo de Loja"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Stock Levels Only"
-msgstr "Exportar Somente os Níveis de Stock"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Shipping & Manual Invoice"
-msgstr "Expedição e Factura Manual"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Actions"
-msgstr "Acção"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,exportable_root_category_ids:0
-msgid "Root Category"
-msgstr "Categoria Raíz"
-
-#. module: base_sale_multichannels
-#: field:sale.shop,is_tax_included:0
-msgid "Prices Include Tax?"
-msgstr "Preços Incluem Impostos?"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Shop"
-msgstr "Loja de Venda"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Multi Channels"
-msgstr "Venda Multi Canais"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Orders"
-msgstr "Ordem"

=== removed file 'base_sale_multichannels/i18n/sv.po'
--- base_sale_multichannels/i18n/sv.po	2012-02-27 18:49:05 +0000
+++ base_sale_multichannels/i18n/sv.po	1970-01-01 00:00:00 +0000
@@ -1,327 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-#	* base_sale_multichannels
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 5.0.14\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2009-12-20 17:22+0000\n"
-"PO-Revision-Date: 2011-02-14 11:51+0000\n"
-"Last-Translator: Olivier Dony (OpenERP) <Unknown>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-01-17 05:05+0000\n"
-"X-Generator: Launchpad (build 14676)\n"
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Partial Delivery"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: constraint:ir.model:0
-msgid ""
-"The Object name must start with x_ and not contain any special character !"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,description:base_sale_multichannels.module_meta_information
-msgid ""
-"\n"
-"This module provide an abstract common minimal base to multi-channels "
-"sales.\n"
-"Say you want to expose your product catalog to\n"
-"* several instances of flashy-sluggish Magento web sites\n"
-"* a cutting edge Spree web shop\n"
-"* a Neteven online Marketplace\n"
-"* EBay\n"
-"* Amazon\n"
-"* Google Base\n"
-"* an external Point Of Sale system\n"
-"* ...\n"
-"Then this module allows you to:\n"
-"* use several external references ids on every OpenERP object matching those "
-"all those external referentials\n"
-"* per referential instance, use several sale sub platform entities (ex: "
-"several Magento websites per instance)\n"
-"* per sub platform, use several shops (ex: several Magento web shops per "
-"website)\n"
-"\n"
-"For each sale shop (matching OpenERP sale.shop object), this module abstract "
-"the interfaces to:\n"
-"* export the catalog, shop warehouse stock level wise, shop pricelist wise\n"
-"* import the catalog\n"
-"* import orders\n"
-"* export orders/picking status\n"
-"    "
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,order_policy:0
-msgid "Shipping Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "None"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Shipped Quantities"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,referential_id:0
-msgid "Referential"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Draft"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_quantity:0
-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."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,shop_group_id:0
-msgid "Shop Group"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:product.category,recursive_childen_ids:0
-msgid "All Child Categories"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Update Orders Status"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_policy:0
-msgid ""
-"If you don't have enough stock available to deliver all at once, do you "
-"accept partial shipments or not?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:account.journal,external_payment_codes:0
-msgid ""
-"Enter the external payment codes, comma separated. They will be used to "
-"select the payment journal."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_policy:0
-msgid "Packing Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,picking_policy:0
-msgid "Complete Delivery"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_generation_policy:0
-msgid "Invoice Generation Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_quantity:0
-msgid "Ordered Quantities"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,is_tax_included:0
-msgid "Requires sale_tax_include module to be installed"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Catalog"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "External Shop Settings"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Catalog"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice from the Packing"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Order Generation"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:account.journal,external_payment_codes:0
-msgid "External Payment Codes"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Invoice on Order After Delivery"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: constraint:ir.ui.view:0
-msgid "Invalid XML for View Architecture!"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,shop_ids:0
-msgid "Sale Shops"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.shop.group,name:0
-msgid "Name"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,invoice_quantity:0
-msgid "Invoice on"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,order_policy:0
-msgid ""
-"The Shipping Policy is used to synchronise invoice and delivery operations.\n"
-"  - The 'Pay before delivery' choice will first generate the invoice and "
-"then generate the packing order after the payment of this invoice.\n"
-"  - 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"
-"  - The 'Invoice on Order After Delivery' choice will generate the draft "
-"invoice based on sale order after all packing lists have been finished.\n"
-"  - The 'Invoice from the packing' choice is used to create an invoice "
-"during the packing process."
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_inventory_export_date:0
-msgid "Last Inventory Export Time"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:external.referential,shop_group_ids:0
-msgid "Sub Entities"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,referential_id:0
-msgid "External Referential"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Payment Before Delivery"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: model:ir.module.module,shortdesc:base_sale_multichannels.module_meta_information
-msgid "Base Sale MultiChannels"
-msgstr "Base Sale MultiChannels"
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-#: field:sale.shop,exportable_product_ids:0
-msgid "Exportable Products"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Import Orders"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,picking_generation_policy:0
-msgid "Picking Generation Policy"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,invoice_generation_policy:0
-msgid "Should orders create an invoice after import?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,last_update_order_export_date:0
-msgid "Last Order Update  Time"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: help:sale.shop,picking_generation_policy:0
-msgid "Should orders create a picking after import?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,invoice_generation_policy:0
-#: selection:sale.shop,picking_generation_policy:0
-msgid "Validated"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: model:ir.model,name:base_sale_multichannels.model_external_shop_group
-msgid "External Referential Shop Group"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Export Stock Levels Only"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: selection:sale.shop,order_policy:0
-msgid "Shipping & Manual Invoice"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Actions"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,exportable_root_category_ids:0
-msgid "Root Category"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: field:sale.shop,is_tax_included:0
-msgid "Prices Include Tax?"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Shop"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Sale Multi Channels"
-msgstr ""
-
-#. module: base_sale_multichannels
-#: view:sale.shop:0
-msgid "Orders"
-msgstr ""

=== removed file 'base_sale_multichannels/invoice.py'
--- base_sale_multichannels/invoice.py	2012-08-21 13:57:44 +0000
+++ base_sale_multichannels/invoice.py	1970-01-01 00:00:00 +0000
@@ -1,41 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   base_sale_multichannels for OpenERP                                       #
-#   Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-from openerp.osv.orm import Model
-from openerp.osv import fields
-
-class account_invoice(Model):
-    _inherit='account.invoice'
-    
-    _columns={
-        'shop_id': fields.many2one('sale.shop', 'Shop', readonly=True, states={'draft': [('readonly', False)]}),
-        'do_not_export': fields.boolean('Do not export',
-                 help="This delivery order will not be exported to the external referential."),
-    }
-
-    def _prepare_invoice_refund(self, cr, uid, ids, invoice_vals, date=None, period_id=None, description=None, journal_id=None, context=None):
-        invoice = self.browse(cr, uid, invoice_vals['id'], context=context)
-        invoice_vals = super(account_invoice, self)._prepare_invoice_refund(cr, uid, ids, invoice_vals, date=date, period_id=period_id, 
-                                                    description=description, journal_id=journal_id, context=context)
-        invoice_vals.update({
-                'sale_ids': [(6,0, [sale.id for sale in invoice.sale_ids])],
-                'shop_id': invoice.shop_id.id,
-            })
-        return invoice_vals

=== removed file 'base_sale_multichannels/invoice_view.xml'
--- base_sale_multichannels/invoice_view.xml	2012-04-30 23:38:34 +0000
+++ base_sale_multichannels/invoice_view.xml	1970-01-01 00:00:00 +0000
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-
-        <record id="invoice_form" model="ir.ui.view">
-            <field name="name">base_sale_multichannel_invoice_form</field>
-            <field name="model">account.invoice</field>
-            <field name="inherit_id" ref="account.invoice_form" />
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <field name="move_id" position="after">
-                    <field name="shop_id" select="1" />
-                </field>
-            </field>
-        </record>
-
-
-    </data>
-</openerp>

=== removed file 'base_sale_multichannels/partner.py'
--- base_sale_multichannels/partner.py	2012-12-26 13:34:03 +0000
+++ base_sale_multichannels/partner.py	1970-01-01 00:00:00 +0000
@@ -1,54 +0,0 @@
-# -*- encoding: utf-8 -*-
-#################################################################################
-#                                                                               #
-#    base_sale_multichannels for OpenERP                                        #
-#    Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>   #
-#                                                                               #
-#    This program is free software: you can redistribute it and/or modify       #
-#    it under the terms of the GNU Affero General Public License as             #
-#    published by the Free Software Foundation, either version 3 of the         #
-#    License, or (at your option) any later version.                            #
-#                                                                               #
-#    This program is distributed in the hope that it will be useful,            #
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of             #
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              #
-#    GNU Affero General Public License for more details.                        #
-#                                                                               #
-#    You should have received a copy of the GNU Affero General Public License   #
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.      #
-#                                                                               #
-#################################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-
-
-class res_partner(Model):
-    _inherit='res.partner'
-
-    _columns = {
-        # defaults_shop_id is deprecated... we should not use it any more !
-        'defaults_shop_id': fields.many2one('sale.shop', 'Sale Shop', help="This is the default shop of the customer"),
-        '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."),
-    }
-
-    # xxx move to BaseConnector _get_import_defaults_res_partner
-    def _get_default_import_values(self, cr, uid, external_session, mapping_id=None, defaults=None, context=None):
-        if external_session.sync_from_object._name == 'sale.shop':
-            shop = external_session.sync_from_object
-            if not defaults: defaults = {}
-            defaults.update({
-                'lang': shop.default_customer_lang.code,
-                'property_account_position': shop.default_fiscal_position.id,
-                'property_account_receivable': shop.default_customer_account,
-                'shop_ids': [(4, shop.id)],
-            })
-        return defaults
-
-class res_partner_address(Model):
-    _inherit='res.partner.address'
-
-    def _transform_one_resource(self, *args, **kwargs):
-        if kwargs.get('parent_data') and kwargs['parent_data'].get('partner_id'):
-            kwargs['defaults']['partner_id'] = kwargs['parent_data']['parent_id']
-        return super(res_partner_address, self)._transform_one_resource(*args, **kwargs)

=== removed file 'base_sale_multichannels/partner_view.xml'
--- base_sale_multichannels/partner_view.xml	2012-09-26 10:22:02 +0000
+++ base_sale_multichannels/partner_view.xml	1970-01-01 00:00:00 +0000
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-    Copyright (C) 2012 Akretion (http://www.akretion.com/)
-    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-    The licence is in the file __openerp__.py
--->
-
-<openerp>
-<data>
-
-
-<record id="shop_ids_partner_form" model="ir.ui.view">
-    <field name="name">shop_ids.partner.form</field>
-    <field name="model">res.partner</field>
-    <field name="inherit_id" ref="base.view_partner_form" />
-    <field name="arch" type="xml">
-        <page string="History" position="after">
-            <page string="Shops">
-                <field name="shop_ids" nolabel="1" colspan="4" />
-            </page>
-        </page>
-    </field>
-</record>
-
-
-</data>
-</openerp>

=== removed file 'base_sale_multichannels/payment_method.py'
--- base_sale_multichannels/payment_method.py	2012-08-21 13:57:44 +0000
+++ base_sale_multichannels/payment_method.py	1970-01-01 00:00:00 +0000
@@ -1,53 +0,0 @@
-# -*- encoding: utf-8 -*-
-#################################################################################
-#                                                                               #
-#    base_sale_multichannels for OpenERP                                        #
-#    Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>   #
-#                                                                               #
-#    This program is free software: you can redistribute it and/or modify       #
-#    it under the terms of the GNU Affero General Public License as             #
-#    published by the Free Software Foundation, either version 3 of the         #
-#    License, or (at your option) any later version.                            #
-#                                                                               #
-#    This program is distributed in the hope that it will be useful,            #
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of             #
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the              #
-#    GNU Affero General Public License for more details.                        #
-#                                                                               #
-#    You should have received a copy of the GNU Affero General Public License   #
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.      #
-#                                                                               #
-#################################################################################
-
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-
-
-
-class payment_method(Model):
-    _inherit = "payment.method"
-
-    _columns = {
-        'automatic_update': fields.boolean('Automatic Update',
-                help=("If the order is not paid, OpenERP  will call the external system",
-                     "before each order import in order to know if this order is paid")),
-    }
-
-    def get_or_create_payment_method(self, cr, uid, payment_method, context=None):
-        """
-        try to get id of 'payment_method' or create if not exists
-        :param str payment_method: payment method like PayPal, etc.
-        :rtype: int
-        :return: id of required payment method
-        """
-
-        pay_method_obj = self.pool.get('payment.method')
-        method_ids = pay_method_obj.search(cr, uid, [['name', '=ilike', payment_method]],
-                                                                                context=context)
-        if method_ids:
-            method_id = method_ids[0]
-        else:
-            method_id = pay_method_obj.create(cr, uid, {'name' : payment_method}, context=context)
-
-        return method_id

=== removed file 'base_sale_multichannels/payment_method_view.xml'
--- base_sale_multichannels/payment_method_view.xml	2012-05-06 17:51:58 +0000
+++ base_sale_multichannels/payment_method_view.xml	1970-01-01 00:00:00 +0000
@@ -1,39 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  sale_quick_payment for OpenERP
-  Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>
-  The licence is in the file __openerp__.py
--->
-
-<openerp>
-    <data>
-
-        <!-- VIEW FOR THE OBJECT : payment_method -->
-        <record id="payment_method_view_form" model="ir.ui.view">
-            <field name="name">sale_automatic_workflow.payment_method.view_form</field>
-            <field name="model">payment.method</field>
-            <field name="inherit_id" ref="sale_quick_payment.payment_method_view_form" />
-            <field eval="16" name="priority"/>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <field name="payment_term_id" position="after">
-                    <field name="automatic_update" />
-                </field>
-            </field>
-        </record>
-
-        <record id="payment_method_view_tree" model="ir.ui.view">
-            <field name="name">sale_automatic_workflow.payment_method.view_tree</field>
-            <field name="model">payment.method</field>
-            <field name="inherit_id" ref="sale_quick_payment.payment_method_view_tree" />
-            <field eval="16" name="priority"/>
-            <field name="type">tree</field>
-            <field name="arch" type="xml">
-                <field name="payment_term_id" position="after">
-                    <field name="automatic_update" />
-                </field>
-            </field>
-        </record>
-
-    </data>
-</openerp>

=== removed file 'base_sale_multichannels/product.py'
--- base_sale_multichannels/product.py	2013-01-04 10:15:39 +0000
+++ base_sale_multichannels/product.py	1970-01-01 00:00:00 +0000
@@ -1,152 +0,0 @@
-    # -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   base_sale_multichannels for OpenERP                                       #
-#   Copyright (C) 2011 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-from base_external_referentials.decorator import only_for_referential
-from base_external_referentials.decorator import commit_now
-
-class product_product(Model):
-    _inherit='product.product'
-
-    def _check_if_export(self, cr, uid, external_session, product, context=None):
-        if context.get('export_product') == 'simple':
-            return True
-        return False
-
-    @only_for_referential(ref_categ ='Multichannel Sale')
-    def _get_last_exported_date(self, cr, uid, external_session, context=None):
-        shop = external_session.sync_from_object
-        if context.get('export_product') == 'simple':
-            return shop.last_products_export_date
-        elif context.get('export_product') == 'special':
-            return shop.last_special_products_export_date
-        return False
-
-    @only_for_referential(ref_categ ='Multichannel Sale')
-    @commit_now
-    def _set_last_exported_date(self, cr, uid, external_session, date, context=None):
-        shop = external_session.sync_from_object
-        if context.get('export_product') == 'simple':
-            return self.pool.get('sale.shop').write(cr, uid, shop.id, {'last_products_export_date': date}, context=context)
-        elif context.get('export_product') == 'special':
-            return self.pool.get('sale.shop').write(cr, uid, shop.id, {'last_special_products_export_date': date}, context=context)
-
-    @only_for_referential(ref_categ ='Multichannel Sale')
-    def get_ids_and_update_date(self, cr, uid, external_session, ids=None, last_exported_date=None, context=None):
-        res = (), {} # list of ids, dict of ids to date_changed
-        shop = external_session.sync_from_object
-        if shop.exportable_product_ids:
-            product_ids = [product.id for product in shop.exportable_product_ids if self._check_if_export(cr, uid, external_session, product, context=context)]
-            if ids:
-                product_ids = set(ids).intersection(set(product_ids))
-            if product_ids:
-                res = super(product_product, self).get_ids_and_update_date(cr, uid, external_session,
-                                                            ids=product_ids,
-                                                            last_exported_date=last_exported_date,
-                                                            context=context)
-        return res
-
-    def _get_categories_ids_for_shop(self, cr, uid, product_id, shop_id, context=None):
-        shop_obj = self.pool.get('sale.shop')
-        shop_values = shop_obj.read(cr, uid, shop_id,
-                                    ['exportable_category_ids'],
-                                    context=context)
-        shop_categ_ids = set(shop_values['exportable_category_ids'])
-        product = self.read(cr, uid, product_id, ['categ_ids', 'categ_id'], context=context)
-        product_categ_ids = set(product['categ_ids'])
-        product_categ_ids.add(product['categ_id'][0])
-        return list(product_categ_ids & shop_categ_ids)
-
-    def _get_or_create_ext_category_ids_for_shop(self, cr, uid, external_session, product_id, context=None):
-        res = []
-        categ_obj = self.pool.get('product.category')
-        for oe_categ_id in self._get_categories_ids_for_shop(cr, uid, product_id, external_session.sync_from_object.id, context=context):
-            res.append(categ_obj.get_or_create_extid(cr, uid, external_session, oe_categ_id, context=context))
-        return res
-
-class product_template(Model):
-    _inherit = 'product.template'
-
-    #TODO implement set function and also support multi tax
-    def _get_tax_group_id(self, cr, uid, ids, field_name, args, context=None):
-        result = {}
-        for product in self.browse(cr, uid, ids, context=context):
-            result[product.id] = product.taxes_id and product.taxes_id[0].group_id.id
-        return result
-
-    _columns = {
-        'tax_group_id': fields.function(_get_tax_group_id,
-                            string='Tax Group',
-                            type='many2one',
-                            relation='account.tax.group',
-                            store=False,
-                            help=('Tax group are use with some external',
-                                  ' system like magento or prestashop')),
-    }
-
-
-class product_category(Model):
-    _inherit = "product.category"
-
-    def collect_children(self, category, children=None):
-        if children is None:
-            children = []
-
-        for child in category.child_id:
-            children.append(child.id)
-            self.collect_children(child, children)
-
-        return children
-
-    def _get_recursive_children_ids(self, cr, uid, ids, name, args, context=None):
-        res = {}
-        for category in self.browse(cr, uid, ids):
-            res[category.id] = self.collect_children(category, [category.id])
-        return res
-
-    _columns = {
-        'recursive_children_ids': fields.function(_get_recursive_children_ids, method=True, type='one2many', relation="product.category", string='All Child Categories'),
-    }
-
-    @only_for_referential(ref_categ ='Multichannel Sale')
-    def _get_last_exported_date(self, cr, uid, external_session, context=None):
-        shop = external_session.sync_from_object
-        return shop.last_category_export_date
-
-    @only_for_referential(ref_categ ='Multichannel Sale')
-    @commit_now
-    def _set_last_exported_date(self, cr, uid, external_session, date, context=None):
-        shop = external_session.sync_from_object
-        return self.pool.get('sale.shop').write(cr, uid, shop.id, {'last_category_export_date': date}, context=context)
-
-    def get_ids_and_update_date(self, cr, uid, external_session, ids=None, last_exported_date=None, context=None):
-        shop = external_session.sync_from_object
-        if shop.exportable_category_ids:
-            res = super(product_category, self).get_ids_and_update_date(cr, uid, external_session,
-                                                            ids=[categ.id for categ in shop.exportable_category_ids],
-                                                            last_exported_date=last_exported_date,
-                                                            context=context)
-        else:
-            res = (), {} # list of ids, dict of ids to date_changed
-        return res
-

=== removed file 'base_sale_multichannels/sale.py'
--- base_sale_multichannels/sale.py	2013-01-14 07:40:50 +0000
+++ base_sale_multichannels/sale.py	1970-01-01 00:00:00 +0000
@@ -1,971 +0,0 @@
-# -*- encoding: utf-8 -*-
-#########################################################################
-#                                                                       #
-# Copyright (C) 2009  Raphaël Valyi                                     #
-# Copyright (C) 2010-2011 Akretion Sébastien BEAU                       #
-#                                        <sebastien.beau@xxxxxxxxxxxx>  #
-# Copyright (C) 2011-2012 Camptocamp Guewen Baconnier                   #
-# Copyright (C) 2011 by Openlabs Technologies & Consulting (P) Limited  #
-#                                                                       #
-#This program is free software: you can redistribute it and/or modify   #
-#it under the terms of the GNU General Public License as published by   #
-#the Free Software Foundation, either version 3 of the License, or      #
-#(at your option) any later version.                                    #
-#                                                                       #
-#This program is distributed in the hope that it will be useful,        #
-#but WITHOUT ANY WARRANTY; without even the implied warranty of         #
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          #
-#GNU General Public License for more details.                           #
-#                                                                       #
-#You should have received a copy of the GNU General Public License      #
-#along with this program.  If not, see <http://www.gnu.org/licenses/>.  #
-#########################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-from openerp.osv.osv import except_osv
-import pooler
-from sets import Set as set
-import netsvc
-from tools.translate import _
-import time
-import decimal_precision as dp
-from datetime import datetime, timedelta
-from dateutil.relativedelta import relativedelta
-from tools import DEFAULT_SERVER_DATETIME_FORMAT, DEFAULT_SERVER_DATE_FORMAT
-from base_external_referentials.external_osv import ExternalSession
-from base_external_referentials.decorator import open_report
-from base_external_referentials.decorator import catch_error_in_report
-
-#TODO use external_session.logger when it's posible
-import logging
-_logger = logging.getLogger(__name__)
-
-
-class StockPicking(Model):
-    '''Add a flag for marking picking as exported'''
-    _inherit = 'stock.picking'
-
-    _columns = {
-        'exported_to_magento': fields.boolean('Exported to Magento',
-            readonly=True),
-    }
-
-
-class external_shop_group(Model):
-    _name = 'external.shop.group'
-    _description = 'External Referential Shop Group'
-
-    _columns = {
-        'name': fields.char('Name', size=64, required=True),
-        'referential_id': fields.many2one('external.referential', 'Referential', select=True,
-                                                                             ondelete='cascade'),
-        'shop_ids': fields.one2many('sale.shop', 'shop_group_id', 'Sale Shops'),
-    }
-
-    # xxx move to BaseConnector _get_import_defaults_external_shop_group
-    def _get_default_import_values(self, cr, uid, external_session, **kwargs):
-        return {'referential_id' : external_session.referential_id.id}
-
-
-class external_referential(Model):
-    _inherit = 'external.referential'
-
-    _columns = {
-        'shop_group_ids': fields.one2many('external.shop.group', 'referential_id', 'Sub Entities'),
-    }
-
-
-
-class ExternalShippingCreateError(Exception):
-     """
-      This error has to be raised when we tried to create a stock.picking on
-      the external referential and the external referential has failed
-      to create it. It must be raised only when we are SURE that the
-      external referential will never be able to create it!
-     """
-     pass
-
-
-class sale_shop(Model):
-    _inherit = "sale.shop"
-
-    def _get_exportable_category_ids(self, cr, uid, ids, name, args, context=None):
-        res = {}
-        for shop in self.browse(cr, uid, ids, context=context):
-            res[shop.id] = set()
-            for category in shop.exportable_root_category_ids:
-                res[shop.id] = res[shop.id].union(set(self.pool.get('product.category')._get_recursive_children_ids(cr, uid, [category.id], "", [], context)[category.id]))
-            res[shop.id] = list(res[shop.id])
-        return res
-
-    def _get_exportable_product_ids(self, cr, uid, ids, name, args, context=None):
-        res = {}
-        for shop in self.read(cr, uid, ids, ['exportable_category_ids'], context=context):
-            all_categories = shop['exportable_category_ids']
-
-            # If product_m2mcategories module is installed search in main category
-            # and extra categories. If not, only in main category
-            cr.execute('select * from ir_module_module where name=%s and state=%s',
-                                                            ('product_m2mcategories','installed'))
-            if cr.fetchone():
-                res[shop['id']] = self.pool.get("product.product").search(cr, uid, ['|',
-                        ('categ_id', 'in', all_categories),('categ_ids', 'in', all_categories)])
-            else:
-                res[shop['id']] = self.pool.get("product.product").search(cr, uid,
-                                                            [('categ_id', 'in', all_categories)])
-        return res
-
-    def _get_referential_id(self, cr, uid, ids, name, args, context=None):
-        res = {}
-        for shop in self.browse(cr, uid, ids, context=context):
-            if shop.shop_group_id:
-                res[shop.id] = shop.shop_group_id.referential_id.id
-            else:
-                res[shop.id] = shop.referential_integer_id
-        return res
-
-    def _get_shop_from_shop_group(self, cr, uid, ids, context=None):
-        return self.pool.get('sale.shop').search(cr, uid, [('shop_group_id', 'in', ids)], context=context)
-
-    def _set_referential_id(self, cr, uid, id, name, value, arg, context=None):
-        shop = self.browse(cr, uid, id, context=context)
-        if shop.shop_group_id:
-            raise except_osv(_("User Error"), _("You can not change the referential of this shop, please change the referential of the shop group!"))
-        else:
-            self.write(cr, uid, id, {'referential_integer_id': value}, context=context)
-        return True
-
-    def _get_shop_ids(self, cr, uid, ids, context=None):
-        shop_ids=[]
-        for group in self.pool.get('external.shop.group').browse(cr, uid, ids, context=context):
-            shop_ids += [shop.id for shop in group.shop_ids]
-        return shop_ids
-
-    def _get_stock_field_id(self, cr, uid, context=None):
-        if self.pool.get('ir.module.module').search(cr, uid, [
-                    ['name', '=', 'stock_available_immediately'],
-                    ['state', 'in', ['installed', 'to upgrade']],
-                                            ], context=context):
-            stock_field = 'immediately_usable_qty'
-        else:
-            stock_field = 'virtual_available'
-
-        field_ids = self.pool.get('ir.model.fields').search(
-            cr, uid,
-            [('model', '=', 'product.product'),
-             ('name', '=', stock_field)],
-            context=context)
-        return field_ids[0]
-
-    #Depending of the e-commerce solution use you can have one or more root category
-    #If you need only one the value will be stored in the exportable_root_category_ids fields
-    def _get_rootcategory(self, cr, uid, ids, name, value, context=None):
-        res = {}
-        for shop in self.browse(cr, uid, ids, context):
-            res[shop.id] = shop.exportable_root_category_ids and shop.exportable_root_category_ids[0].id or False
-        return res
-
-    def _set_rootcategory(self, cr, uid, id, name, value, fnct_inv_arg, context=None):
-        return self.write(cr, uid, id, {'exportable_root_category_ids': [(6,0,[value])]}, context=context)
-
-    def _get_referential_type_name(self, cr, uid, ids, field_name, arg, context=None):
-        result = {}
-        for shop in self.browse(cr, uid, ids):
-            if shop.referential_id:
-                result[shop.id] = shop.referential_id.type_id.name
-            else:
-                result[shop.id] = False
-        return result
-
-    _columns = {
-        'exportable_category_ids': fields.function(_get_exportable_category_ids, type='many2many', relation="product.category", string='Exportable Categories'),
-        'exportable_root_category_ids': fields.many2many('product.category', 'shop_category_rel', 'categ_id', 'shop_id', 'Exportable Root Categories'),
-        'exportable_root_category_id':fields.function(_get_rootcategory, fnct_inv = _set_rootcategory, type="many2one", relation="product.category", string="Root Category"),
-        'exportable_product_ids': fields.function(_get_exportable_product_ids, type='many2many', relation="product.product", string='Exportable Products'),
-        'shop_group_id': fields.many2one('external.shop.group', 'Shop Group', ondelete='cascade'),
-        'last_inventory_export_date': fields.datetime('Last Inventory Export Time'),
-        'last_images_export_date': fields.datetime('Last Images Export Time'),
-        'last_update_order_export_date' : fields.datetime('Last Order Update  Time'),
-        'last_products_export_date' : fields.datetime('Last Product Export Time'),
-        'last_special_products_export_date' : fields.datetime('Last Special Product Export Time'),
-        'last_category_export_date' : fields.datetime('Last Category Export Time'),
-        'referential_id': fields.function(_get_referential_id,
-            fnct_inv=_set_referential_id, type='many2one',
-            relation='external.referential', string='External Referential', store={
-                'sale.shop': (lambda self, cr, uid, ids, c={}: ids, ['referential_integer_id', 'shop_group_id'], 10),
-                'external.shop.group': (_get_shop_from_shop_group, ['referential_id'], 20),
-                }),
-        'referential_integer_id': fields.integer('Referential Integer ID'),
-        'is_tax_included': fields.boolean('Prices Include Tax', help="Does the external system work with Taxes Inclusive Prices ?"),
-        'sale_journal': fields.many2one('account.journal', 'Sale Journal'),
-        'order_prefix': fields.char('Order Prefix', size=64),
-        'default_payment_method_id': fields.many2one('payment.method', 'Payment Method'),
-        'default_language': fields.many2one('res.lang', 'Default Language'),
-        'default_fiscal_position': fields.many2one('account.fiscal.position', 'Default Fiscal Position'),
-        'default_customer_account': fields.many2one('account.account', 'Default Customer Account'),
-        'default_customer_lang': fields.many2one('res.lang', 'Default Customer Language'),
-        'auto_import': fields.boolean('Automatic Import'),
-        'address_id':fields.many2one('res.partner.address', 'Address'),
-        'website': fields.char('Website', size=64),
-        'image':fields.binary('Image', filters='*.png,*.jpg,*.gif'),
-        'use_external_tax': fields.boolean(
-            'Use External Taxes',
-            help="If activated, the external taxes will be applied.\n"
-                 "If not activated, OpenERP will compute them "
-                 "according to default values and fiscal positions."),
-        'import_orders_from_date': fields.datetime('Only created after'),
-        '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."),
-        'type_name': fields.function(_get_referential_type_name, type='char', string='Referential type',
-                store={
-                'sale.shop': (lambda self, cr, uid, ids, c={}: ids, ['referential_id', 'shop_group_id'],10)}),
-        'product_stock_field_id': fields.many2one(
-            'ir.model.fields',
-            string='Stock Field',
-            domain="[('model', 'in', ['product.product', 'product.template']),"
-                   " ('ttype', '=', 'float')]",
-            help="Choose the field of the product which will be used for "
-                 "stock inventory updates.\nIf empty, Quantity Available "
-                 "is used"),
-    }
-
-    _defaults = {
-        'payment_default_id': 1, #required field that would cause trouble if not set when importing
-        'auto_import': True,
-        'use_external_tax': True,
-        'product_stock_field_id': _get_stock_field_id,
-    }
-
-    def init_context_before_exporting_resource(self, cr, uid, external_session, object_id, resource_name, context=None):
-        context = super(sale_shop, self).init_context_before_exporting_resource(cr, uid, external_session, object_id, resource_name, context=context)
-        context['pricelist'] = external_session.sync_from_object.get_pricelist(context=context)
-        return context
-
-    def get_pricelist(self, cr, uid, id, context=None):
-        if isinstance(id, list):
-            id=id[0]
-        shop = self.browse(cr, uid, id, context=context)
-        if shop.pricelist_id:
-            return shop.pricelist_id.id
-        else:
-            return self.pool.get('product.pricelist').search(cr, uid, [('type', '=', 'sale'), ('active', '=', True)], context=context)[0]
-
-    def export_catalog(self, cr, uid, ids, context=None):
-        if context is None: context={}
-        self.export_resources(cr, uid, ids, 'product.category', context=context)
-        # In various e-commerce system product can depend of other products
-        # So the simple product (with no dependency) are exported in priority
-        # Then the special product (with dependency) are exported at the end
-        context['export_product'] = 'simple'
-        self.export_resources(cr, uid, ids, 'product.product', context=context)
-        context['export_product'] = 'special'
-        self.export_resources(cr, uid, ids, 'product.product', context=context)
-        #Export Images
-        self.export_resources(cr, uid, ids, 'product.images', context=context)
-
-        #TODO export link
-        #TODO update the last date
-        #I don't know where it's the best to update it here or in the export functions
-        #take care about concurent write with different cursor
-
-
-        return True
-
-    def export_inventory(self, cr, uid, ids, context=None):
-        if context is None:
-            context = {}
-        for shop in self.browse(cr, uid, ids):
-            external_session = ExternalSession(shop.referential_id, shop)
-            self._export_inventory(cr, uid, external_session, ids, context=context)
-        return True
-
-    def _get_product_ids_for_stock_to_export(self, cr, uid, shop, context=None):
-        return [product.id for product in shop.exportable_product_ids]
-
-    def _export_inventory(self, cr, uid, external_session, ids, context=None):
-        shop = external_session.sync_from_object
-        stock_move_obj = self.pool.get('stock.move')
-        for shop in self.browse(cr, uid, ids):
-            external_session = ExternalSession(shop.referential_id, shop)
-
-            product_ids = self._get_product_ids_for_stock_to_export(cr, uid, shop, context=context)
-
-            if shop.last_inventory_export_date:
-                # we do not exclude canceled moves because it means
-                # some stock levels could have increased since last export
-                recent_move_ids = stock_move_obj.search(
-                    cr, uid,
-                    [('write_date', '>', shop.last_inventory_export_date),
-                     ('product_id', 'in', product_ids),
-                     ('product_id.type', '!=', 'service'),
-                     ('state', '!=', 'draft')],
-                    context=context)
-            else:
-                recent_move_ids = stock_move_obj.search(
-                    cr, uid,
-                    [('product_id', 'in', product_ids)],
-                    context=context)
-
-            recent_moves = stock_move_obj.browse(
-                cr, uid, recent_move_ids, context=context)
-
-            product_ids = [move.product_id.id
-                           for move
-                           in recent_moves
-                           if move.product_id.state != 'obsolete']
-            product_ids = list(set(product_ids))
-            external_session.logger.info('Export Stock for %s products' %len(product_ids))
-            self.pool.get('product.product').export_inventory(
-                    cr, uid, external_session, product_ids, context=context)
-            shop.write({'last_inventory_export_date':
-                            time.strftime(DEFAULT_SERVER_DATETIME_FORMAT)})
-        return True
-
-    def import_catalog(self, cr, uid, ids, context):
-        #TODO import categories, then products
-        raise except_osv(_("Not Implemented"), _("Not Implemented in abstract base module!"))
-
-    def import_orders(self, cr, uid, ids, context=None):
-        self.import_resources(cr, uid, ids, 'sale.order', context=context)
-        return True
-
-    def check_need_to_update(self, cr, uid, ids, context=None):
-        """ This function will update the order status in OpenERP for
-        the order which are in the state 'need to update' """
-        for shop in self.browse(cr, uid, ids, context=context):
-            external_session = ExternalSession(shop.referential_id, shop)
-            so_obj = self.pool.get('sale.order')
-            orders_to_update = so_obj.search(cr, uid,
-                    [('need_to_update', '=', True),
-                     ('shop_id', '=', shop.id)],
-                    context=context)
-            so_obj._check_need_to_update(cr, uid, external_session, orders_to_update, context=context)
-        return False
-
-    def _update_order_query(self, cr, uid, shop, context=None):
-        req = """
-            SELECT ir_model_data.res_id, ir_model_data.name
-                FROM sale_order
-                INNER JOIN ir_model_data ON sale_order.id = ir_model_data.res_id
-                WHERE ir_model_data.model='sale.order' AND sale_order.shop_id=%s
-                    AND ir_model_data.referential_id NOTNULL
-        """
-        params = (shop.id,)
-        if shop.last_update_order_export_date:
-            req += "AND sale_order.update_state_date > %s"
-            params = (shop.id, shop.last_update_order_export_date)
-        return req, params
-
-    def update_orders(self, cr, uid, ids, context=None):
-        if context is None:
-            context = {}
-        for shop in self.browse(cr, uid, ids):
-            external_session = ExternalSession(shop.referential_id, shop)
-            #get all orders, which the state is not draft and the date of modification is superior to the last update, to exports
-            cr.execute(*self._update_order_query(cr, uid, shop, context=context))
-            results = cr.fetchall()
-            for result in results:
-                ids = self.pool.get('sale.order').search(cr, uid, [('id', '=', result[0])])
-                if ids:
-                    id = ids[0]
-                    order = self.pool.get('sale.order').browse(cr, uid, id, context)
-                    order_ext_id = result[1].split('sale_order/')[1]
-                    res = self.update_shop_orders(cr, uid, external_session, order, order_ext_id, context)
-                    if res:
-                        external_session.logger.info(_("Successfully updated order with OpenERP id %s and ext id %s in external sale system") % (id, order_ext_id))
-            self.pool.get('sale.shop').write(cr, uid, shop.id, {'last_update_order_export_date': time.strftime(DEFAULT_SERVER_DATETIME_FORMAT)})
-        return False
-
-    def export_shop_partners(self, cr, uid, ids, context=None):
-        if context is None: context={}
-        self.export_resources(cr, uid, ids, 'res.partner', context=context)
-        return True
-
-    def update_shop_orders(self, cr, uid, external_session, order, ext_id, context):
-        raise except_osv(_("Not Implemented"), _("Not Implemented in abstract base module!"))
-
-    def _export_shipping_query(self, cr, uid, shop, context=None):
-        query = """
-        SELECT stock_picking.id AS picking_id,
-               sale_order.id AS order_id,
-               count(pickings.id) AS picking_number
-        FROM stock_picking
-        LEFT JOIN sale_order
-                  ON sale_order.id = stock_picking.sale_id
-        LEFT JOIN stock_picking as pickings
-                  ON (sale_order.id = pickings.sale_id
-                      AND pickings.type='out'
-                      AND pickings.state!='cancel')
-        LEFT JOIN ir_model_data
-                  ON stock_picking.id = ir_model_data.res_id
-                  AND ir_model_data.model = 'stock.picking'
-        LEFT JOIN delivery_carrier
-                  ON delivery_carrier.id = stock_picking.carrier_id
-        WHERE sale_order.shop_id = %(shop_id)s
-              AND ir_model_data.res_id ISNULL
-              AND stock_picking.state = 'done'
-              AND stock_picking.type = 'out'
-              AND NOT stock_picking.do_not_export
-              AND (NOT delivery_carrier.export_needs_tracking
-                   OR stock_picking.carrier_tracking_ref IS NOT NULL)
-        GROUP BY stock_picking.id,
-                 sale_order.id,
-                 delivery_carrier.export_needs_tracking,
-                 stock_picking.carrier_tracking_ref,
-                 stock_picking.backorder_id
-        ORDER BY sale_order.id ASC,
-                 COALESCE(stock_picking.backorder_id, NULL, 0) ASC"""
-        params = {'shop_id': shop.id}
-        return query, params
-
-    def export_shipping(self, cr, uid, ids, context):
-        picking_obj = self.pool.get('stock.picking')
-        for shop in self.browse(cr, uid, ids):
-            cr.execute(*self._export_shipping_query(
-                            cr, uid, shop, context=context))
-            results = cr.dictfetchall()
-            if not results:
-                _logger.info("There is no shipping to export for the shop '%s' to the external referential", shop.name)
-                continue
-            context['conn_obj'] = shop.referential_id.external_connection()
-
-
-            picking_cr = pooler.get_db(cr.dbname).cursor()
-            try:
-                for result in results:
-                    picking_id = result['picking_id']
-
-                    if result["picking_number"] == 1:
-                        picking_type = 'complete'
-                    else:
-                        picking_type = 'partial'
-
-                    ext_shipping_id = False
-                    try:
-                        ext_shipping_id = picking_obj.create_ext_shipping(
-                            picking_cr, uid, picking_id, picking_type,
-                            shop.referential_id.id, context)
-                    except ExternalShippingCreateError, e:
-                        # when the creation has failed on the external
-                        # referential and we know that we can never
-                        # create it, we flag it as do_not_export
-                        # ExternalShippingCreateError raising has to be
-                        # correctly handled by create_ext_shipping()
-                        picking_obj.write(
-                            picking_cr, uid,
-                            picking_id,
-                            {'do_not_export': True},
-                            context=context)
-
-                    if ext_shipping_id:
-                        picking_obj.create_external_id_vals(
-                            picking_cr,
-                            uid,
-                            picking_id,
-                            ext_shipping_id,
-                            shop.referential_id.id,
-                            context=context)
-                        _logger.info("Successfully creating shipping with OpenERP id %s and ext id %s in external sale system", result["picking_id"], ext_shipping_id)
-                    picking_cr.commit()
-            finally:
-                picking_cr.close()
-        return True
-
-    def export_invoices(self, cr, uid, ids, context=None):
-        invoice_obj = self.pool.get('account.invoice')
-        for shop in self.browse(cr, uid, ids, context=None):
-            external_session = ExternalSession(shop.referential_id, shop)
-            invoice_ids = self.get_invoice_to_export(cr, uid, shop.id, context=context)
-            if not invoice_ids:
-                external_session.logger.info("There is no invoice to export for the shop '%s' to the external referential" % (shop.name,))
-            for invoice_id in invoice_ids:
-                self.pool.get('account.invoice')._export_one_resource(cr, uid, external_session, invoice_id, context=context)
-        return True
-
-    def get_invoice_to_export(self, cr, uid, shop_id, context=None):
-        shop = self.browse(cr, uid, shop_id, context=context)
-        cr.execute(*self._export_invoice_query(cr, uid, shop, context=context))
-        results = cr.dictfetchall()
-        return [res['invoice_id'] for res in results]
-
-    def _export_invoice_query(self, cr, uid, shop, context=None):
-        query = """
-        SELECT account_invoice.id AS invoice_id
-        FROM account_invoice
-        LEFT JOIN ir_model_data
-                  ON account_invoice.id = ir_model_data.res_id
-                  AND ir_model_data.model = 'account.invoice'
-                  AND referential_id = %(referential_id)s
-        WHERE shop_id = %(shop_id)s
-              AND ir_model_data.res_id ISNULL
-              AND account_invoice.state in ('paid', 'open')
-              AND NOT account_invoice.do_not_export
-        """
-        params = {'shop_id': shop.id, 'referential_id': shop.referential_id.id}
-        return query, params
-
-sale_shop()
-
-
-class sale_order(Model):
-    _inherit = "sale.order"
-
-    _columns = {
-        'need_to_update': fields.boolean('Need To Update'),
-        'ext_total_amount': fields.float(
-            'Origin External Amount',
-            digits_compute=dp.get_precision('Sale Price'),
-            readonly=True),
-        'ext_total_amount_tax': fields.float(
-            'Origin External Tax Amount',
-            digits_compute=dp.get_precision('Sale Price'),
-            readonly=True),
-        'referential_id': fields.related(
-                    'shop_id', 'referential_id',
-                    type='many2one', relation='external.referential',
-                    string='External Referential'),
-        'update_state_date': fields.datetime('Update State Date'),
-        'shipping_tax_amount': fields.dummy(string = 'Shipping Taxe Amount'),
-        'shipping_amount_tax_excluded': fields.dummy(string = 'Shipping Price Tax Exclude'),
-        'shipping_amount_tax_included': fields.dummy(string = 'Shipping Price Tax Include'),
-    }
-
-    _defaults = {
-        'need_to_update': False,
-    }
-
-    def write(self, cr, uid, ids, vals, context=None):
-        if 'state' in vals:
-            vals['update_state_date'] = datetime.now().strftime(DEFAULT_SERVER_DATETIME_FORMAT)
-        return super(sale_order, self).write(cr, uid, ids, vals, context=context)
-
-    # xxx move to BaseConnector _get_import_defaults_sale_order
-    def _get_default_import_values(self, cr, uid, external_session, mapping_id=None, defaults=None, context=None):
-        shop = False
-        if external_session.sync_from_object._name == 'sale.shop':
-            shop = external_session.sync_from_object
-        elif context.get('sale_shop_id'):
-            shop = self.pool.get('sale.shop').browse(cr, uid,  context['sale_shop_id'], context=context)
-        if shop:
-            if defaults is None: defaults = {}
-            defaults.update({
-                    'pricelist_id': shop.get_pricelist(context=context),
-                    'shop_id': shop.id,
-                    'fiscal_position': shop.default_fiscal_position.id,
-                    'payment_method_id': shop.default_payment_method_id.id,
-                    'company_id': shop.company_id.id,
-            })
-            #TODO we should avoid passing this parameter in the context
-            #for now we new it for importing order from wizard correctly
-            #refactor for V7
-            context.update({
-                    'use_external_tax': shop.use_external_tax,
-                    'is_tax_included': shop.is_tax_included,
-                })
-        return defaults
-
-    @open_report
-    def _import_resources(self, cr, uid, external_session, defaults=None, method="search_then_read", context=None):
-        if context is None: context={}
-        shop = external_session.sync_from_object
-        if shop:
-            context.update({
-                    'use_external_tax': shop.use_external_tax,
-                    'is_tax_included': shop.is_tax_included,
-                })
-        return super(sale_order, self)._import_resources(cr, uid, external_session, defaults=defaults, method=method, context=context)
-
-
-    def check_if_order_exist(self, cr, uid, external_session, resource, order_mapping=None, defaults=None, context=None):
-        mapping_name = False
-        for line in order_mapping['mapping_lines']:
-            if line['internal_field'] == 'name':
-                mapping_name = line
-        if mapping_name:
-            local_mapping = {1: {'mapping_lines': [mapping_name]}}
-            vals = self._transform_one_resource(cr, uid, external_session,
-                                        'from_external_to_openerp', resource,
-                                        mapping=local_mapping,
-                                        mapping_id=1,
-                                        defaults=defaults,
-                                        context=context)
-            if vals.get('name'):
-                exist_id = self.search(cr, uid, [['name', '=', vals['name']]], context=context)
-                if exist_id:
-                    external_session.logger.info("Sale Order %s already exist in OpenERP,"
-                                                    "no need to import it again"%vals['name'])
-                    return True
-
-        return False
-
-    # xxx a deplacer dans BaseConnector  sale_order
-    @catch_error_in_report
-    def _record_one_external_resource(self, cr, uid, external_session, resource, defaults=None,
-                                                        mapping=None, mapping_id=None, context=None):
-        mapping, mapping_id = self._init_mapping(cr, uid, external_session.referential_id.id,
-                                            mapping=mapping, mapping_id=mapping_id, context=context)
-        exist_id = self.check_if_order_exist(cr, uid, external_session, resource,
-                                            order_mapping=mapping[mapping_id], defaults=defaults, context=context)
-        if exist_id:
-            return {}
-        else:
-            return super(sale_order, self)._record_one_external_resource(cr, uid, external_session, resource,
-                                defaults=defaults, mapping=mapping, mapping_id=mapping_id, context=context)
-
-    def _check_need_to_update(self, cr, uid, external_session, ids, context=None):
-        """
-        For each order, check in external system if it has been paid since last
-        check. If so, it will launch the defined flow based on the
-        payment type (validate order, invoice, ...)
-        """
-        for order in self.browse(cr, uid, ids, context=context):
-            self._check_need_to_update_single(cr, uid, external_session, order, context=context)
-        return True
-
-    def _check_need_to_update_single(self, cr, uid, external_session, order, context=None):
-        """Not implemented in this abstract module"""
-        return True
-
-    def _get_params_onchange_partner_id(self, cr, uid, vals, context=None):
-        args = [
-            'None',
-            vals.get('partner_id'),
-        ]
-        return args, {}
-
-    #I will probably extract this code in order to put it in a "glue" module
-    def _get_params_onchange_address_id(self, cr, uid, vals, context=None):
-        args = [
-            None,
-            vals.get('partner_invoice_id'),
-            vals.get('partner_shipping_id'),
-            vals.get('partner_id'),
-        ]
-        kwargs = {
-            'shop_id': vals.get('shop_id'),
-        }
-        return args, kwargs
-
-    def play_sale_order_onchange(self, cr, uid, vals, defaults=None, context=None):
-        ir_module_obj= self.pool.get('ir.module.module')
-        if ir_module_obj.search(cr, uid, [
-                            ['name', '=', 'account_fiscal_position_rule_sale'],
-                            ['state', 'in', ['installed', 'to upgrade']],
-                                                            ], context=context):
-            vals = self.call_onchange(cr, uid, 'onchange_partner_id', vals, defaults, context=context)
-            vals = self.call_onchange(cr, uid, 'onchange_address_id', vals, defaults, context=context)
-        else:
-            vals = self.call_onchange(cr, uid, 'onchange_partner_id', vals, defaults, context=context)
-
-
-        return vals
-
-    def _merge_with_default_values(self, cr, uid, external_session, ressource, vals, sub_mapping_list, defaults=None, context=None):
-        if vals.get('name'):
-            shop = external_session.sync_from_object
-            if shop.order_prefix:
-                vals['name'] = '%s%s' %(shop.order_prefix, vals['name'])
-        if context is None: context ={}
-        if vals.get('payment_method_id'):
-            payment_method = self.pool.get('payment.method').browse(cr, uid, vals['payment_method_id'], context=context)
-            workflow_process = payment_method.workflow_process_id
-            if workflow_process:
-                vals['order_policy'] = workflow_process.order_policy
-                vals['picking_policy'] = workflow_process.picking_policy
-                vals['invoice_quantity'] = workflow_process.invoice_quantity
-        # update vals with order onchange in order to compute taxes
-        vals = self.play_sale_order_onchange(cr, uid, vals, defaults=defaults, context=context)
-        return super(sale_order, self)._merge_with_default_values(cr, uid, external_session, ressource, vals, sub_mapping_list, defaults=defaults, context=context)
-
-    def oe_create(self, cr, uid, external_session, vals, resource, defaults, context):
-        #depending of the external system the contact address can be optionnal
-        vals = self._convert_special_fields(cr, uid, vals, external_session.referential_id.id, context=context)
-        if not vals.get('partner_order_id'):
-            vals['partner_order_id'] = vals['partner_invoice_id']
-        if not vals.get('partner_shipping_id'):
-            vals['partner_shipping_id'] = vals['partner_invoice_id']
-        order_id = super(sale_order, self).oe_create(cr, uid, external_session, vals, resource, defaults, context)
-        self.paid_and_update(cr, uid, external_session, order_id, resource, context=context)
-        return order_id
-
-    def paid_and_update(self, cr, uid, external_session, order_id, resource, context=None):
-        wf_service = netsvc.LocalService("workflow")
-        paid = self.create_external_payment(cr, uid, external_session, order_id, resource, context)
-        order = self.browse(cr, uid, order_id, context=context)
-        validate_order = order.workflow_process_id.validate_order
-        if validate_order == 'always' or validate_order == 'if_paid' and paid:
-            try:
-                wf_service.trg_validate(uid, 'sale.order', order.id, 'order_confirm', cr)
-            except:
-                raise
-                #What we should do?? creating the order but not validating it???
-                #Maybe setting a special flag can be a good solution? with a retry method?
-            return True
-
-        elif validate_order == 'if_paid' and order.payment_method_id.automatic_update:
-            days_before_order_cancel = order.workflow_process_id.days_before_order_cancel or 30
-            order_date = datetime.strptime(order.date_order, DEFAULT_SERVER_DATE_FORMAT)
-            order_cancel_date = order_date + relativedelta(days=days_before_order_cancel)
-            if order.state == 'draft' and order_cancel_date < datetime.now():
-                wf_service.trg_validate(uid, 'sale.order', order.id, 'cancel', cr)
-                self.write(cr, uid, order.id, {'need_to_update': False})
-                self.log(cr, uid, order.id, ("order %s canceled in OpenERP because older than % days"
-                                     "and still not confirmed") % (order.id, days_before_order_cancel))
-                #TODO eventually call a trigger to cancel the order in the external system too
-                external_session.logger.info(("order %s canceled in OpenERP because older than % days and "
-                                "still not confirmed") %(order.id, days_before_order_cancel))
-            else:
-                self.write(cr, uid, order_id, {'need_to_update': True}, context=context)
-        return False
-
-    def create_external_payment(self, cr, uid, external_session, order_id, resource, context):
-        """
-        Fonction that will create a payment from the external resource
-        """
-        vals = self._get_payment_information(cr, uid, external_session, order_id, resource, context=context)
-        if vals.get('paid'):
-            if not vals.get('journal_id'):
-                external_session.logger.warning(_("Not journal found for payment method %s. Can not create payment")%vals['payment_method'])
-                vals['paid'] = False
-            else:
-                self.pay_sale_order(cr, uid, order_id, vals['journal_id'], vals['amount'], vals['date'], context=context)
-        return vals.get('paid')
-
-    def _get_payment_information(self, cr, uid, external_session, order_id, resource, context=None):
-        """
-        Function that will return the information in order to create the payment
-        """
-        vals = {}
-        sale = self.browse(cr, uid, order_id, context=context)
-        vals['payment_method'] = sale.payment_method_id.name
-        vals['journal_id'] = sale.payment_method_id.journal_id and sale.payment_method_id.journal_id.id
-        vals['date'] = sale.date_order
-        return vals
-
-    def _prepare_invoice(self, cr, uid, order, lines, context=None):
-        """Prepare the dict of values to create the new invoice for a
-           sale order. This method may be overridden to implement custom
-           invoice generation (making sure to call super() to establish
-           a clean extension chain).
-
-           :param browse_record order: sale.order record to invoice
-           :param list(int) lines: list of invoice line IDs that must be
-                                  attached to the invoice
-           :return: dict of value to create() the invoice
-        """
-        vals = super(sale_order, self)._prepare_invoice(cr, uid, order, lines, context=context)
-        if order.shop_id.sale_journal:
-            vals['journal_id'] = order.shop_id.sale_journal.id
-        vals['shop_id'] = order.shop_id.id
-        return vals
-
-    def _prepare_order_picking(self, cr, uid, order, context=None):
-        vals = super(sale_order, self)._prepare_order_picking(cr, uid, order, context=context)
-        vals['shop_id'] = order.shop_id.id
-        return vals
-
-    def oe_update(self, cr, uid, external_session, existing_rec_id, vals, resource, defaults, context=None):
-        '''Not implemented in this abstract module, if it's not implemented in your module it will raise an error'''
-        # Explication :
-        # sometime customer can do ugly thing like renamming a sale_order and try to reimported it,
-        # sometime openerp run two scheduler at the same time, or the customer launch two openerp at the same time
-        # or the external system give us again an already imported order
-        # As the update of an existing order (this is not the update of the status but the update of the line, the address...)
-        # is not supported by base_sale_multichannels and also not in magentoerpconnect.
-        # It's better to don't allow this feature to avoid hidding a problem.
-        # It's better to have the order not imported and to know it than having order with duplicated line.
-        if not (context and context.get('oe_update_supported', False)):
-            #TODO found a clean solution to raise the except_osv error in the try except of the function import_with_try
-            raise except_osv(_("Not Implemented"), _(("The order with the id %s try to be updated from the external system."
-                                " This feature is not supported. Maybe the import try to reimport an existing sale order"%(existing_rec_id,))))
-        return super(sale_order, self).oe_update(cr, uid, external_session, existing_rec_id, vals, resource, defaults, context=context)
-
-    def _convert_special_fields(self, cr, uid, vals, referential_id, context=None):
-        """
-        Convert the special 'fake' field into an order line
-        special field are :
-        - shipping amount and shipping_tax_rate
-        - cash_on_delivery and cash_on_delivery_taxe_rate
-        - gift_certificates
-
-        :param dict vals : values of the sale order to create
-        :param int referential_id : external referential id
-        :return: the value for the sale order with the special field converted
-        :rtype: dict
-        """
-        def check_key(keys):
-            return len(set([
-                        'shipping_amount_tax_excluded',
-                        'shipping_amount_tax_included',
-                        'shipping_tax_amount'])
-                    & set(keys)) >= 2
-
-        for line in vals['order_line']:
-            for field in ['shipping_amount_tax_excluded','shipping_amount_tax_included', 'shipping_tax_amount']:
-                if field in line[2]:
-                    vals[field] = vals.get(field, 0.0) + line[2][field]
-                    del line[2][field]
-
-        if not 'shipping_tax_rate' in vals and check_key(vals.keys()):
-            if not 'shipping_amount_tax_excluded' in vals:
-                vals['shipping_amount_tax_excluded'] = vals['shipping_amount_tax_included'] - vals['shipping_tax_amount']
-            elif not 'shipping_tax_amount' in vals:
-                vals['shipping_tax_amount'] = vals['shipping_amount_tax_included'] - vals['shipping_amount_tax_excluded']
-            vals['shipping_tax_rate'] = vals['shipping_amount_tax_excluded'] and \
-                            vals['shipping_tax_amount'] / vals['shipping_amount_tax_excluded'] or 0
-            del vals['shipping_tax_amount']
-        for option in self._get_special_fields(cr, uid, context=context):
-            vals = self._add_order_extra_line(cr, uid, vals, option, context=context)
-        return vals
-
-
-    def _get_special_fields(self, cr, uid, context=None):
-        return [
-            {
-            'price_unit_tax_excluded' : 'shipping_amount_tax_excluded',
-            'price_unit_tax_included' : 'shipping_amount_tax_included',
-            'tax_rate_field' : 'shipping_tax_rate',
-            'product_ref' : ('base_sale_multichannels', 'product_product_shipping'),
-            },
-            {
-            'tax_rate_field' : 'cash_on_delivery_taxe_rate',
-            'price_unit_tax_excluded' : 'cash_on_delivery_amount_tax_excluded',
-            'price_unit_tax_included' : 'cash_on_delivery_amount_tax_included',
-            'product_ref' : ('base_sale_multichannels', 'product_product_cash_on_delivery'),
-            },
-            {
-            'price_unit_tax_excluded' : 'gift_certificates_amount', #gift certificate doesn't have any tax
-            'price_unit_tax_included' : 'gift_certificates_amount',
-            'product_ref' : ('base_sale_multichannels', 'product_product_gift'),
-            'code_field': 'gift_certificates_code',
-            'sign': -1,
-            },
-        ]
-
-    def _add_order_extra_line(self, cr, uid, vals, option, context):
-        """ Add or substract amount on order as a separate line item with single quantity for each type of amounts like :
-        shipping, cash on delivery, discount, gift certificates...
-
-        :param dict vals: values of the sale order to create
-        :param option: dictionnary of option for the special field to process
-        """
-        if context is None: context={}
-        sign = option.get('sign', 1)
-        if context.get('is_tax_included') and vals.get(option['price_unit_tax_included']):
-            price_unit = vals.pop(option['price_unit_tax_included']) * sign
-        elif vals.get(option['price_unit_tax_excluded']):
-            price_unit = vals.pop(option['price_unit_tax_excluded']) * sign
-        else:
-            for key in ['price_unit_tax_excluded', 'price_unit_tax_included', 'tax_rate_field']:
-                if option.get(key) and option[key] in vals:
-                    del vals[option[key]]
-            return vals #if there is not price, we have nothing to import
-
-        model_data_obj = self.pool.get('ir.model.data')
-        model, product_id = model_data_obj.get_object_reference(cr, uid, *option['product_ref'])
-        product = self.pool.get('product.product').browse(cr, uid, product_id, context)
-
-        extra_line = {
-                        'product_id': product.id,
-                        'name': product.name,
-                        'product_uom': product.uom_id.id,
-                        'product_uom_qty': 1,
-                        'price_unit': price_unit,
-                    }
-
-        extra_line = self.pool.get('sale.order.line').play_sale_order_line_onchange(cr, uid, extra_line, vals, vals['order_line'], context=context)
-        if context.get('use_external_tax') and option.get('tax_rate_field'):
-            tax_rate = vals.pop(option['tax_rate_field'])
-            if tax_rate:
-                line_tax_id = self.pool.get('account.tax').get_tax_from_rate(cr, uid, tax_rate, context.get('is_tax_included'), context=context)
-                if not line_tax_id:
-                    raise except_osv(_('Error'), _('No tax id found for the rate %s with the tax include = %s')%(tax_rate, context.get('is_tax_included')))
-                extra_line['tax_id'] = [(6, 0, [line_tax_id])]
-            else:
-                extra_line['tax_id'] = False
-        if not option.get('tax_rate_field'):
-            del extra_line['tax_id']
-        ext_code_field = option.get('code_field')
-        if ext_code_field and vals.get(ext_code_field):
-            extra_line['name'] = "%s [%s]" % (extra_line['name'], vals[ext_code_field])
-        vals['order_line'].append((0, 0, extra_line))
-        return vals
-
-class sale_order_line(Model):
-    _inherit='sale.order.line'
-
-    _columns = {
-        'ext_product_ref': fields.char('Product Ext Ref',
-                            help="This is the original external product reference", size=256),
-        'shipping_tax_amount': fields.dummy(string = 'Shipping Taxe Amount'),
-        'shipping_amount_tax_excluded': fields.dummy(string = 'Shipping Price Tax Exclude'),
-        'shipping_amount_tax_included': fields.dummy(string = 'Shipping Price Tax Include'),
-        'ext_ref_line': fields.char('Ext. Ref Line', size=64,
-                help='Unique order line id delivered by external application'),
-    }
-
-    def _get_params_product_id_change(self, cr, uid, line, parent_data, previous_lines, context=None):
-        args = [
-            None,
-            parent_data.get('pricelist_id'),
-            line.get('product_id')
-        ]
-        kwargs ={
-            'qty': float(line.get('product_uom_qty')),
-            'uom': line.get('product_uom'),
-            'qty_uos': float(line.get('product_uos_qty') or line.get('product_uom_qty')),
-            'uos': line.get('product_uos'),
-            'name': line.get('name'),
-            'partner_id': parent_data.get('partner_id'),
-            'lang': False,
-            'update_tax': True,
-            'date_order': parent_data.get('date_order'),
-            'packaging': line.get('product_packaging'),
-            'fiscal_position': parent_data.get('fiscal_position'),
-            'flag': False,
-            'context': context,
-        }
-        return args, kwargs
-
-    def play_sale_order_line_onchange(self, cr, uid, line, parent_data, previous_lines, defaults=None, context=None):
-        original_line = line.copy()
-        if not context.get('use_external_tax') and 'tax_id' in line:
-            del line['tax_id']
-        line = self.call_onchange(cr, uid, 'product_id_change', line, defaults=defaults, parent_data=parent_data, previous_lines=previous_lines, context=context)
-        #TODO all m2m should be mapped correctly
-        if context.get('use_external_tax'):
-            #if we use the external tax and the onchange have added a taxe, 
-            #them we remove it.
-            #Indeed we have to make the difference between a real tax_id
-            #imported and a default value set by the onchange
-            if not 'tax_id' in original_line and 'tax_id' in line:
-                del line['tax_id']
-        elif line.get('tax_id'):
-            line['tax_id'] = [(6, 0, line['tax_id'])]
-        return line
-
-    def _transform_one_resource(self, cr, uid, external_session, convertion_type, resource, mapping, mapping_id,
-                     mapping_line_filter_ids=None, parent_data=None, previous_result=None, defaults=None, context=None):
-        if context is None: context={}
-        line = super(sale_order_line, self)._transform_one_resource(cr, uid, external_session, convertion_type, resource,
-                            mapping, mapping_id, mapping_line_filter_ids=mapping_line_filter_ids, parent_data=parent_data,
-                            previous_result=previous_result, defaults=defaults, context=context)
-
-        if context.get('is_tax_included') and 'price_unit_tax_included' in line:
-            line['price_unit'] = line['price_unit_tax_included']
-        elif 'price_unit_tax_excluded' in line:
-            line['price_unit']  = line['price_unit_tax_excluded']
-
-        line = self.play_sale_order_line_onchange(cr, uid, line, parent_data, previous_result,
-                                                                        defaults, context=context)
-        if context.get('use_external_tax'):
-            if not 'tax_id' in line and line.get('tax_rate'):
-                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)
-                if not line_tax_id:
-                    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')))
-                line['tax_id'] = [(6, 0, [line_tax_id])]
-            else:
-                line['tax_id'] = False
-        return line
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:

=== removed file 'base_sale_multichannels/sale_view.xml'
--- base_sale_multichannels/sale_view.xml	2012-12-20 15:09:51 +0000
+++ base_sale_multichannels/sale_view.xml	1970-01-01 00:00:00 +0000
@@ -1,221 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-
-        <record model="ir.ui.view" id="base_sale_multichannels_view_shop_form">
-            <field name="name">base_sale_multichannels_view_shop_form</field>
-            <field name="model">sale.shop</field>
-            <field name="inherit_id" ref="sale.view_shop_form" />
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <data>
-                    <field name="payment_default_id" position="after">
-                        <field name="sale_journal" domain="[('type','=','sale')]"/>
-                    </field>
-                    <form position="inside">
-                        <separator string="Sale Multi Channels" colspan="4" />
-                        <notebook colspan="4">
-                            <page string="External Shop Settings">
-                                <group col="4" colspan="4">
-                                    <field name="referential_id" />
-                                    <field name="shop_group_id" />
-                                    <field name="type_name" invisible="True"/>
-                                </group>
-                            </page>
-                            <page string="Extra Information">
-                                <separator string='Accounting' colspan="4"/>
-                                    <field name="auto_import"/>
-                                    <field name="is_tax_included"/>
-                                    <field name="use_external_tax"/>
-                                    <field name="check_total_amount"/>
-                                    <field name="order_prefix"/>
-                                    <field name="default_payment_method_id"/>
-                                    <field name="default_fiscal_position"/>
-                                    <field name="default_customer_account"/>
-                                    <field name="default_customer_lang"/>
-                                <separator string='Stock' colspan="4"/>
-                                    <field name="product_stock_field_id"/>
-                                <separator string='Other Information' colspan="4"/>
-                                    <field name="address_id" colspan="2" />
-                                    <field name="website" colspan="2" />
-                                    <field name="image" widget='image' colspan="2" />
-                            </page>
-                        </notebook>
-                    </form>
-                </data>
-            </field>
-        </record>
-
-        <record model="ir.ui.view" id="base_sale_multichannel_view_order_tree">
-            <field name="name">base_sale_multichannel_view_order_tree</field>
-            <field name="model">sale.order</field>
-            <field name="inherit_id" ref="sale.view_order_tree" />
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <field name="state" position="after">
-                    <field name="need_to_update" />
-                </field>
-                <field name="amount_total" position="after">
-                    <field name="ext_total_amount" string="Ext. Total" />
-                </field>
-            </field>
-        </record>
-
-        <record id="view_sales_order_filter" model="ir.ui.view">
-            <field name="name">base_sale_multichannel.view_sales_order_filter</field>
-            <field name="model">sale.order</field>
-            <field name="inherit_id" ref="sale.view_sales_order_filter" />
-            <field name="type">search</field>
-            <field eval="32" name="priority"/>
-            <field name="arch" type="xml">
-                <filter icon="terp-check" string="Sales" position="after">
-                    <separator orientation="vertical"/>
-                    <filter icon="gtk-refresh" name="to-update" string="TO UPDATE" domain="[('need_to_update','!=',False)]"/>
-                </filter>
-            </field>
-        </record>
-
-        <record model="ir.ui.view" id="base_sale_multichannel_view_order_form">
-            <field name="name">base_sale_multichannel_view_order_form</field>
-            <field name="model">sale.order</field>
-            <field name="inherit_id" ref="sale_automatic_workflow.sale_order_view_form" />
-            <field name="type">form</field>
-            <field eval="30" name="priority"/>
-            <field name="arch" type="xml">
-                <data>
-                    <group name="automatic_workflow" position="after">
-                        <field name="referential_id" invisible="True"/>
-                        <group name="external_payment" attrs="{'invisible': [('referential_id', '=', False)]}">
-                            <separator string="External Payment" colspan="4"/>
-                            <field name="ext_total_amount" />
-                            <field name="ext_total_amount_tax"/>
-                            <field name="need_to_update" />
-                        </group>
-                    </group>
-                    <xpath expr="/form/notebook/page/field/form/notebook/page[@string='Order Line']/group" position="after">
-                        <group name='External Information' colspan="4">
-                            <separator string="External Information" colspan="4" />
-                            <field name="ext_product_ref" />
-                            <field name="ext_ref_line" select="1" />
-                        </group>
-                    </xpath>
-                </data>
-            </field>
-        </record>
-
-        <record model="ir.ui.view" id="base_sale_multichannel_view_order_line_tree">
-            <field name="name">base_sale_multichannel_view_order_tree</field>
-            <field name="model">sale.order.line</field>
-            <field name="inherit_id" ref="sale.view_order_line_tree" />
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <data>
-                    <field name="product_id" position="after">
-                        <field name="ext_product_ref" />
-                    </field>
-                </data>
-            </field>
-        </record>
-
-        <record model="ir.ui.view" id="base_sale_multichannel_view_order_line_form">
-            <field name="name">base_sale_multichannel_view_order_form</field>
-            <field name="model">sale.order.line</field>
-            <field name="inherit_id" ref="sale.view_order_line_form2" />
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <data>
-                    <field name="notes" position="after">
-                        <group name='External Syncronization' colspan="4">
-                            <separator string="External syncronization" colspan="4" />
-                            <field name="ext_product_ref" select="1" />
-                            <field name="ext_ref_line" select="1" />
-                        </group>
-                    </field>
-                </data>
-            </field>
-        </record>
-
-        <record id="view_base_sale_external_shop_group_form" model="ir.ui.view">
-            <field name="name">base.sale.external.shop.group.form</field>
-            <field name="model">external.shop.group</field>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <form string="External shop group">
-                    <field name="name" select="1" />
-                    <field name="referential_id" widget="selection" select="1" />
-                    <newline />
-                    <field name="shop_ids" colspan="4" />
-                </form>
-            </field>
-        </record>
-
-        <record id="view_base_sale_external_shop_group_tree" model="ir.ui.view">
-            <field name="name">base.sale.external.shop.group.tree</field>
-            <field name="model">external.shop.group</field>
-            <field name="type">tree</field>
-            <field name="arch" type="xml">
-                <tree string="External shop groups">
-                    <field name="name" />
-                    <field name="referential_id" />
-                    <field name="shop_ids" />
-                </tree>
-            </field>
-        </record>
-
-        <record id="act_base_sale_external_shop_group" model="ir.actions.act_window">
-            <field name="name">External referential shop groups</field>
-            <field name="res_model">external.shop.group</field>
-            <field name="view_type">form</field>
-            <field name="view_mode">tree,form</field>
-        </record>
-
-        <act_window
-            id="base_external_referentials.ext_product_product"
-            name="External Product"
-            res_model="ir.model.data"
-            src_model="product.product"
-            domain="[('res_id', '=', active_id), ('model', '=', 'product.product')]"
-        />
-        
-        <act_window
-            id="base_external_referentials.ext_product_category"
-            name="External Category"
-            res_model="ir.model.data"
-            src_model="product.category"
-            domain="[('res_id', '=', active_id), ('model', '=', 'product.category')]"
-        />
-
-        <act_window
-            id="base_external_referentials.ext_sale_order"
-            name="External Order"
-            res_model="ir.model.data"
-            src_model="sale.order"
-            domain="[('res_id', '=', active_id), ('model', '=', 'sale.order')]"
-        />
-        
-        <act_window
-            id="base_external_referentials.ext_sale_shop"
-            name="External Shop"
-            res_model="ir.model.data"
-            src_model="sale.shop"
-            domain="[('res_id', '=', active_id), ('model', '=', 'sale.shop')]"
-        />
-        
-        <act_window
-            id="base_external_referentials.ext_res_partner"
-            name="External Partner"
-            res_model="ir.model.data"
-            src_model="res.partner"
-            domain="[('res_id', '=', active_id), ('model', '=', 'res.partner')]"
-        />
-        
-        <act_window
-            id="base_external_referentials.ext_res_partner_address"
-            name="External Address"
-            res_model="ir.model.data"
-            src_model="res.partner.address"
-            domain="[('res_id', '=', active_id), ('model', '=', 'res.partner.address')]"
-        />
-
-    </data>
-</openerp>

=== removed directory 'base_sale_multichannels/security'
=== removed file 'base_sale_multichannels/security/ir.model.access.csv'
--- base_sale_multichannels/security/ir.model.access.csv	2012-10-17 12:58:27 +0000
+++ base_sale_multichannels/security/ir.model.access.csv	1970-01-01 00:00:00 +0000
@@ -1,18 +0,0 @@
-"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
-"access_base_sale_multichannels_external_shop_group_manager","base_sale_multichannels_external_shop_group","model_external_shop_group","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_referential","base_external_referentials_external_referential","base_external_referentials.model_external_referential","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_referential_type","base_external_referentials_external_referential_type","base_external_referentials.model_external_referential_type","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_referential_version","base_external_referentials_external_referential_version","base_external_referentials.model_external_referential_version","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_mapping_template","base_external_referentials_external_mapping_template","base_external_referentials.model_external_mapping_template","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_mappinglines_template","base_external_referentials_external_mappinglines_template","base_external_referentials.model_external_mappinglines_template","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_referential","base_external_referentials_external_referential","base_external_referentials.model_external_referential","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_mapping_line","base_external_referentials_external_mapping_line","base_external_referentials.model_external_mapping_line","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_mapping","base_external_referentials_external_mapping","base_external_referentials.model_external_mapping","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_report","base_external_referentials_external_report","base_external_referentials.model_external_report","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_report_history","base_external_referentials_external_report_history","base_external_referentials.model_external_report_history","base.group_sale_manager",1,1,1,1
-"access_base_external_referentials_external_report_line","base_external_referentials_external_report_line","base_external_referentials.model_external_report_line","base.group_sale_manager",1,1,1,1
-"access_sale_sale_shop","sale_sale_shop","sale.model_sale_shop","base.group_sale_manager",1,1,1,1
-"access_base_sale_multichannels_ir_model_data","base_sale_multichannels_ir_model_data","base.model_ir_model_data","base.group_sale_manager",1,1,1,1
-"access_base_sale_multichannels_external_shop_group","base_sale_multichannels_external_shop_group","model_external_shop_group","base.group_user",1,0,0,0
-"access_account_tax_group_user","Read-only access to account.tax.group","model_account_tax_group","base.group_user",1,0,0,0
-"access_account_tax_group_account_manager","RW access to account.tax.group","model_account_tax_group","account.group_account_manager",1,1,1,1

=== removed directory 'base_sale_multichannels/settings'
=== removed file 'base_sale_multichannels/settings/external.referential.category.csv'
--- base_sale_multichannels/settings/external.referential.category.csv	2012-06-21 17:44:12 +0000
+++ base_sale_multichannels/settings/external.referential.category.csv	1970-01-01 00:00:00 +0000
@@ -1,2 +0,0 @@
-"id","name"
-"multichannels","Multichannel Sale"

=== removed file 'base_sale_multichannels/settings/sale.exception.csv'
--- base_sale_multichannels/settings/sale.exception.csv	2013-02-04 14:47:25 +0000
+++ base_sale_multichannels/settings/sale.exception.csv	1970-01-01 00:00:00 +0000
@@ -1,12 +0,0 @@
-id,name,description,sequence,model,code
-excep_wrong_total_amount,Total Amount differs from external system,"The amount computed doesn't match with the external amount because the taxes have not been configured properly (maybe some fiscal positions have changed the final price).
-Please fix it manually and check your taxes rules.
-
-NB : This check have being applied because you have checked the option \check total amount\"" on the shop of this sale order""",30,sale.order,"if order.shop_id.check_total_amount and abs(order.amount_total - order.ext_total_amount) >= 0.01:
-    failed = True"
-excep_wrong_total_amount_tax,Total Tax Amount differs from external system,"The tax amount computed doesn't match with the external tax amount because the taxes have not been configured properly (maybe some fiscal positions have changed the final price).
-Please fix it manually and check your taxes rules.
-
-NB : This check have being applied because you have checked the option \check total amount\"" on the shop of this sale order""",30,sale.order,"#By default we allow a cent of difference for the taxe, feel free to customise it in your own module
-if order.shop_id.check_total_amount and abs(order.amount_tax - order.ext_total_amount_tax) > 0.01:
-    failed = True"

=== removed file 'base_sale_multichannels/stock.py'
--- base_sale_multichannels/stock.py	2012-08-21 13:57:44 +0000
+++ base_sale_multichannels/stock.py	1970-01-01 00:00:00 +0000
@@ -1,46 +0,0 @@
-# -*- encoding: utf-8 -*-
-#########################################################################
-#                                                                       #
-#########################################################################
-#                                                                       #
-# Copyright (C) 2010 BEAU Sébastien                                     #
-#                                                                       #
-#This program is free software: you can redistribute it and/or modify   #
-#it under the terms of the GNU General Public License as published by   #
-#the Free Software Foundation, either version 3 of the License, or      #
-#(at your option) any later version.                                    #
-#                                                                       #
-#This program is distributed in the hope that it will be useful,        #
-#but WITHOUT ANY WARRANTY; without even the implied warranty of         #
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the          #
-#GNU General Public License for more details.                           #
-#                                                                       #
-#You should have received a copy of the GNU General Public License      #
-#along with this program.  If not, see <http://www.gnu.org/licenses/>.  #
-#########################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-from openerp.osv.osv import except_osv
-from tools.translate import _
-
-class stock_picking(Model):
-    _inherit = "stock.picking"
-
-    _columns = {
-        'do_not_export': fields.boolean(
-            'Do not export',
-            help="This delivery order will not be exported to the "
-                 "external referential."
-        ),
-        'shop_id': fields.many2one('sale.shop', 'Shop', readonly=True, states={'draft': [('readonly', False)]}),
-    }
-
-    def create_ext_shipping(self, cr, uid, id, picking_type, external_referential_id, context):
-        raise except_osv(_("Not Implemented"), _("Not Implemented in abstract base module!"))
-
-    def _prepare_invoice(self, cr, uid, picking, partner, inv_type, journal_id, context=None):
-        vals = super(stock_picking, self)._prepare_invoice(cr, uid, picking, partner, \
-                                                            inv_type, journal_id, context=context)
-        vals['shop_id'] = picking.shop_id.id
-        return vals

=== removed file 'base_sale_multichannels/stock_view.xml'
--- base_sale_multichannels/stock_view.xml	2012-03-29 09:59:52 +0000
+++ base_sale_multichannels/stock_view.xml	1970-01-01 00:00:00 +0000
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-        <record id="view_picking_out_form_ext" model="ir.ui.view">
-            <field name="name">stock.picking.out.form.ext</field>
-            <field name="model">stock.picking</field>
-            <field name="inherit_id" ref="stock.view_picking_out_form"/>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <page string="Additional info" position="inside">
-                    <field name="do_not_export"/>
-                </page>
-            </field>
-        </record>
-    </data>
-</openerp>

=== removed directory 'base_sale_multichannels/wizard'
=== removed file 'base_sale_multichannels/wizard/__init__.py'
--- base_sale_multichannels/wizard/__init__.py	2012-09-20 17:52:17 +0000
+++ base_sale_multichannels/wizard/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,23 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    Base_sale_multichannels module for OpenERP
-#    Copyright (C) 2010 Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import import_order
-

=== removed file 'base_sale_multichannels/wizard/import_order.py'
--- base_sale_multichannels/wizard/import_order.py	2012-08-21 07:38:58 +0000
+++ base_sale_multichannels/wizard/import_order.py	1970-01-01 00:00:00 +0000
@@ -1,42 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-#    Base_sale_multichannels module for OpenERP
-#    Copyright (C) 2010 Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-from osv import fields,osv
-from tools.translate import _
-from base_external_referentials.external_osv import ExternalSession
-
-class sale_order_import_wizard(osv.osv_memory):
-    _name = 'sale.order.import.wizard'
-    _description = 'sale order import wizard'
-
-    _columns = {
-        'order_number': fields.char('Order Number', size=64),
-        }
-
-    def import_order(self, cr, uid, ids, context=None):
-        if context is None:
-            context={}
-        shop = self.pool.get('sale.shop').browse(cr, uid, context['active_id'], context=context)
-        external_session = ExternalSession(shop.referential_id, shop)
-        wizard = self.browse(cr, uid, ids[0], context=context)
-        self.pool.get('sale.order')._import_one_resource(cr, uid, external_session, wizard.order_number, context=context)
-        return {'type': 'ir.actions.act_window_close'}

=== removed file 'base_sale_multichannels/wizard/import_order.xml'
--- base_sale_multichannels/wizard/import_order.xml	2012-06-11 07:33:40 +0000
+++ base_sale_multichannels/wizard/import_order.xml	1970-01-01 00:00:00 +0000
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-        <record model="ir.ui.view" id="sale_order_import_wizard_view">
-            <field name="name">sale.order.import.wizard.view</field>
-            <field name="model">sale.order.import.wizard</field>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <form string="Import a specifique order from an external system">
-                    <field name="order_number" nolabel="1" colspan='4'/>
-                    <button icon="gtk-cancel" special="cancel" string="Cancel"/>
-                    <button icon="gtk-ok" name="import_order" string="Import Order" type="object"/>
-                </form>
-            </field>
-        </record>
-
-        <record id="action_import_order_wizard" model="ir.actions.act_window">
-            <field name="name">Import Order</field>
-            <field name="type">ir.actions.act_window</field>
-            <field name="res_model">sale.order.import.wizard</field>
-            <field name="view_type">form</field>
-            <field name="view_mode">form</field>
-            <field name="target">new</field>
-            <field name="context">{}</field>
-        </record>
-
-        <record id="ir_action_import_order_wizard" model="ir.values">
-            <field name="key2">client_action_multi</field>
-            <field name="model">sale.shop</field>
-            <field name="name">Import Order</field>
-            <field eval="'ir.actions.act_window,%d'%action_import_order_wizard" name="value"/>
-            <field eval="True" name="object"/>
-        </record>
-    </data>
-</openerp>

=== removed directory 'base_sale_report_synchronizer'
=== removed file 'base_sale_report_synchronizer/__init__.py'
--- base_sale_report_synchronizer/__init__.py	2012-10-09 12:40:16 +0000
+++ base_sale_report_synchronizer/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,22 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   base_sale_report_synchronizer for OpenERP                                 #
-#   Copyright (C) 2012 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-import sale

=== removed file 'base_sale_report_synchronizer/__openerp__.py'
--- base_sale_report_synchronizer/__openerp__.py	2012-12-26 13:24:14 +0000
+++ base_sale_report_synchronizer/__openerp__.py	1970-01-01 00:00:00 +0000
@@ -1,47 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   base_sale_report_synchronizer for OpenERP                                 #
-#   Copyright (C) 2012 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-
-
-{
-    'name': 'base_sale_report_synchronizer',
-    'version': '6.1.1',
-    'category': 'Generic Modules/Others',
-    'license': 'AGPL-3',
-    'description': """
-        Abstract module to syncronize invoice and refund
-        report with external e-commerce system
-    """,
-    'author': 'Akretion',
-    'website': 'http://www.akretion.com/',
-    'depends': [
-        'base_sale_multichannels',
-        'report_synchronizer',
-        ], 
-    'init_xml': [],
-    'update_xml': [ 
-            'sale_view.xml',
-    ],
-    'demo_xml': [],
-    'installable': False,
-    'active': False,
-}
-

=== removed file 'base_sale_report_synchronizer/sale.py'
--- base_sale_report_synchronizer/sale.py	2012-08-21 13:57:44 +0000
+++ base_sale_report_synchronizer/sale.py	1970-01-01 00:00:00 +0000
@@ -1,31 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   base_sale_report_synchronizer for OpenERP                                 #
-#   Copyright (C) 2012 Akretion Sébastien BEAU <sebastien.beau@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-
-class sale_shop(Model):
-    _inherit = "sale.shop"
-
-    _columns = {
-        'invoice_report': fields.many2one('ir.actions.report.xml', 'Invoice Report'),
-        'refund_report': fields.many2one('ir.actions.report.xml', 'Refund Report'),
-    }

=== removed file 'base_sale_report_synchronizer/sale_view.xml'
--- base_sale_report_synchronizer/sale_view.xml	2012-10-09 12:40:16 +0000
+++ base_sale_report_synchronizer/sale_view.xml	1970-01-01 00:00:00 +0000
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
-    <data>
-
-        <record model="ir.ui.view" id="view_shop_form">
-            <field name="name">base_sale_multichannels_view_shop_form</field>
-            <field name="model">sale.shop</field>
-            <field name="inherit_id" ref="sale.view_shop_form" />
-            <field name="type">form</field>
-            <field name="priority">20</field>
-            <field name="arch" type="xml">
-                <field name="image" position="after">
-                    <separator string='Report' colspan="4"/>
-                    <field name="invoice_report" colspan="2" />
-                    <field name="refund_report" colspan="2" />
-                </field>
-            </field>
-        </record>
-
-    </data>
-</openerp>

=== removed directory 'product_custom_attributes_shop'
=== removed file 'product_custom_attributes_shop/__init__.py'
--- product_custom_attributes_shop/__init__.py	2012-08-10 12:03:22 +0000
+++ product_custom_attributes_shop/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,29 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   product_custom_attributes_shop for OpenERP                                 #
-#   Copyright (C) 2012 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-
-
-import sale
-import product
-import product_attribute
-
-
-

=== removed file 'product_custom_attributes_shop/__openerp__.py'
--- product_custom_attributes_shop/__openerp__.py	2012-12-26 13:24:14 +0000
+++ product_custom_attributes_shop/__openerp__.py	1970-01-01 00:00:00 +0000
@@ -1,52 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   product_custom_attributes_shop for OpenERP                                 #
-#   Copyright (C) 2012 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-
-
-{
-    'name': 'product_custom_attributes_shop',
-    'version': '6.1.1',
-    'category': 'Generic Modules/Others',
-    'license': 'AGPL-3',
-    'description': """
-    This module give the posibility to manage different value for special field
-    (like name, description, metadata....) per shop.
-    Indeed when you sale on an e-shop you must have for exemple a different
-    description per product (ranking problem). This that module you will be able
-    to add in the shop tab of the product a description per shop.
-    """,
-    'author': 'Akretion',
-    'website': 'http://www.akretion.com/',
-    'depends': [
-        'base_sale_multichannels',
-        'product_custom_attributes',
-        ],
-    'init_xml': [],
-    'update_xml': [
-        'sale_view.xml',
-        'product_attribute_view.xml',
-        'security/ir.model.access.csv',
-    ],
-    'demo_xml': [],
-    'installable': False,
-    'active': False,
-}
-

=== removed file 'product_custom_attributes_shop/product.py'
--- product_custom_attributes_shop/product.py	2012-12-07 12:44:57 +0000
+++ product_custom_attributes_shop/product.py	1970-01-01 00:00:00 +0000
@@ -1,113 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   product_custom_attributes for OpenERP                                      #
-#   Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-from openerp.osv.osv import except_osv
-import netsvc
-from lxml import etree
-from openerp.tools.translate import _
-import re
-
-
-class product_product(Model):
-    _inherit = "product.product"
-
-    def _build_shop_attributes_notebook(self, cr, uid, shops, context=None):
-        notebook = etree.Element('notebook', name="shop_attributes_notebook", colspan="4")
-        toupdate_fields = []
-        for shop in shops:
-            page = etree.SubElement(notebook, 'page', string=shop.name.capitalize())
-            for attribute in shop.shop_attribute_ids:
-                toupdate_fields.append(attribute.name)
-                self._build_attribute_field(cr, uid, page, attribute, context=context)
-        return notebook, toupdate_fields
-
-    def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
-        result = super(product_product, self).fields_view_get(cr, uid, view_id,view_type,context,toolbar=toolbar, submenu=submenu)
-        if view_type == 'form':
-            eview = etree.fromstring(result['arch'])
-            info_page = eview.xpath("//page[@string='Information']")
-            if info_page:
-                info_page = info_page[0]
-                shop_obj = self.pool.get('sale.shop')
-                shop_ids = shop_obj.search(cr, uid, [], context=context)
-                shops = []
-                for shop in shop_obj.browse(cr, uid, shop_ids, context=context):
-                    if shop.shop_attribute_ids:
-                        shops.append(shop)
-                if shops:
-                    attributes_notebook, toupdate_fields = self._build_shop_attributes_notebook(cr, uid, shops, context=context)
-                    result['fields'].update(self.fields_get(cr, uid, toupdate_fields, context))
-                    main_page = etree.Element('page', string=_('Shop Attributes'))
-                    main_page.append(attributes_notebook)
-                    info_page.addnext(main_page)
-                    result['arch'] = etree.tostring(eview, pretty_print=True)
-                    result = self._fix_size_bug(cr, uid, result, context=context)
-        return result
-
-    def check_if_activable(self, cr, uid, vals, context=None):
-        categ_ids = [vals['categ_id']] + vals.get('categ_ids', [])
-        for key in vals.keys():
-            if re.match('x_shop.*?_attr_active', key) and vals[key]:
-                shop_id = int(key.replace('x_shop', '').replace('_attr_active', ''))
-                if not self.pool.get('product.category').check_if_in_shop_category(cr, uid, categ_ids, shop_id, context=context):
-                    shop = self.pool.get('sale.shop').browse(cr, uid, shop_id, context=context)
-                    raise except_osv(
-                        _("User Error"), 
-                        _("The product must be in an children of one of this categories \"%s\" "
-                             "in order to be activable on the shop \"%s\"")
-                        %('", "'.join([categ.name for categ in shop.exportable_root_category_ids]), shop.name))
-
-    def create(self, cr, uid, vals, context=None):
-        if context is None: context={}
-        if not context.get('do_not_check_active_field_on_shop'):
-            vals['categ_ids'] = vals.get('categ_ids', [(6,0,[])])[0][2]
-            self.check_if_activable(cr, uid, vals, context=context)
-        return super(product_product, self).create(cr, uid, vals, context=context)
-
-    def write(self, cr, uid, ids, vals, context=None):
-        if context is None: context={}
-        need_check = False
-        if not context.get('do_not_check_active_field_on_shop'):
-            for key in vals.keys():
-                if re.match('x_shop.*?_attr_active', key) and vals[key] or key in ('categ_id', 'categ_ids'):
-                    need_check = True
-                    break
-        res = super(product_product, self).write(cr, uid, ids, vals, context=context)
-        if need_check:
-            if not hasattr(ids, '__iter__'):
-                ids = [ids]
-            field_to_read = ['categ_ids', 'categ_id'] + [key for key in self._columns if re.match('x_shop.*?_attr_active', key)]
-            for product in self.read(cr, uid, ids, field_to_read, context=context):
-                product['categ_id'] = product['categ_id'][0]
-                self.check_if_activable(cr, uid, product, context=context)
-        return res
-        
-class product_category(Model):
-    _inherit = 'product.category'
-    
-    def check_if_in_shop_category(self, cr, uid, categ_ids, shop_id, context=None):
-        exportable_category_ids = self.pool.get('sale.shop').read(cr, uid, shop_id, ['exportable_category_ids'])['exportable_category_ids']
-        for categ_id in categ_ids:
-            if categ_id in exportable_category_ids:
-                return True
-        return False

=== removed file 'product_custom_attributes_shop/product_attribute.py'
--- product_custom_attributes_shop/product_attribute.py	2012-08-21 13:57:44 +0000
+++ product_custom_attributes_shop/product_attribute.py	1970-01-01 00:00:00 +0000
@@ -1,40 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   product_custom_attributes for OpenERP                                      #
-#   Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-import netsvc
-
-class attribute_shop_location(Model):
-
-    _name = "attribute.shop.location"
-    _description = "Attribute Shop Location"
-    _order="sequence"
-
-    _inherits = {'product.attribute': 'attribute_id'}
-
-    _columns = {
-        'attribute_id': fields.many2one('product.attribute', 'Product Attribute', required=True, ondelete="cascade"),
-        'shop_id': fields.many2one('sale.shop', 'Shop', required=True),
-        'sequence': fields.integer('Sequence'),
-        'external_name': fields.char('External Name', size=128, required=True),
-    }
-

=== removed file 'product_custom_attributes_shop/product_attribute_view.xml'
--- product_custom_attributes_shop/product_attribute_view.xml	2012-08-10 12:03:22 +0000
+++ product_custom_attributes_shop/product_attribute_view.xml	1970-01-01 00:00:00 +0000
@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  product_custom_attributes_shop for OpenERP
-  Copyright (C) 2011 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
-  The licence is in the file __openerp__.py
--->
-
-<openerp>
-    <data>
-
-        <!-- CREATED VIEW FOR THE OBJECT : attribute_shop_location -->
-
-
-        <record id="attribute_shop_location_form_view" model="ir.ui.view">
-            <field name="name">attribute.shop.location.form</field>
-            <field name="model">attribute.shop.location</field>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <form string="Attribute Shop Location">
-                    <field name="attribute_id" />
-                    <field name="sequence" />
-                    <field name="external_name" />
-                    <field name="shop_id" />
-                </form>
-            </field>
-        </record>
-
-        <record id="attribute_shop_location_tree_view" model="ir.ui.view">
-            <field name="name">attribute.shop.location.tree</field>
-            <field name="model">attribute.shop.location</field>
-            <field name="type">tree</field>
-            <field name="arch" type="xml">
-                <tree string="Attribute Shop Location">
-                    <field name="attribute_id" />
-                    <field name="external_name" />
-                    <field name="sequence" />
-                </tree>
-            </field>
-        </record>
-
-    </data>
-</openerp>

=== removed file 'product_custom_attributes_shop/sale.py'
--- product_custom_attributes_shop/sale.py	2012-08-21 13:57:44 +0000
+++ product_custom_attributes_shop/sale.py	1970-01-01 00:00:00 +0000
@@ -1,77 +0,0 @@
-# -*- encoding: utf-8 -*-
-###############################################################################
-#                                                                             #
-#   product_custom_attributes_shop for OpenERP                                 #
-#   Copyright (C) 2012 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>  #
-#                                                                             #
-#   This program is free software: you can redistribute it and/or modify      #
-#   it under the terms of the GNU Affero General Public License as            #
-#   published by the Free Software Foundation, either version 3 of the        #
-#   License, or (at your option) any later version.                           #
-#                                                                             #
-#   This program is distributed in the hope that it will be useful,           #
-#   but WITHOUT ANY WARRANTY; without even the implied warranty of            #
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             #
-#   GNU Affero General Public License for more details.                       #
-#                                                                             #
-#   You should have received a copy of the GNU Affero General Public License  #
-#   along with this program.  If not, see <http://www.gnu.org/licenses/>.     #
-#                                                                             #
-###############################################################################
-
-from openerp.osv.orm import Model
-from openerp.osv import fields
-import netsvc
-
-
-class sale_shop(Model):
-    
-    _inherit = "sale.shop"
-
-    def _get_exportable_product_ids(self, cr, uid, ids, name, args, context=None):
-        res = {}
-        for shop in self.browse(cr, uid, ids, context=context):
-            res[shop.id] = self.pool.get('product.product').search(cr, uid, [['x_shop%s_attr_active'%shop.id, '=', True], ['active', '=', True]], context=context)
-        return res
-
-    _columns = {
-        'shop_attribute_ids': fields.one2many('attribute.shop.location', 'shop_id', 'Attributes'),
-        'exportable_product_ids': fields.function(_get_exportable_product_ids, method=True, type='one2many', relation="product.product", string='Exportable Products'),
-    }
-
-
-
-    def _prepare_attribute_shop_fields(self, cr, uid, context=None):
-        return {'name': 'char', 'description': 'text', 'active': 'boolean'}
-
-    def generate_shop_attributes(self, cr, uid, ids, context=None):
-        attr_loc_obj = self.pool.get('attribute.shop.location')
-        attr_obj = self.pool.get('product.attribute')
-        model_id = self.pool.get('ir.model').search(cr, uid, [('model', '=', 'product.product')], context=context)[0]
-        for shop in self.browse(cr, uid, ids, context=context):
-            fields = self._prepare_attribute_shop_fields(cr, uid, context=context)
-            for field, field_type in fields.items():
-                attribute_loc_ids = attr_loc_obj.search(cr, uid, [('shop_id', '=', shop.id),('external_name', '=', field)], context=context)
-                if not attribute_loc_ids:
-                    field_name = 'x_shop%s_attr_%s' %(shop.id, field)
-                    prod_attribute_ids = attr_obj.search(cr, uid, [('name', '=', field_name)], context=context)
-                    if not prod_attribute_ids:
-                        vals = {
-                                'name': field_name, 
-                                'field_description': field, 
-                                'attribute_type': field_type, 
-                                'based_on': 'product_product',
-                                'translate': field_type in ('char', 'text'),
-                                }
-                        prod_attribute_id = attr_obj.create(cr, uid, vals, context=context)
-                    else:
-                        prod_attribute_id = prod_attribute_ids[0]
-                    attribute_id = attr_loc_obj.create(cr, uid, {
-                                    'external_name': field,
-                                    'attribute_id': prod_attribute_id,
-                                    'shop_id': shop.id
-                                                }, context=context)
-                    attribute_loc_ids.append(attribute_id)
-        return attribute_loc_ids
-
-

=== removed file 'product_custom_attributes_shop/sale_view.xml'
--- product_custom_attributes_shop/sale_view.xml	2012-08-10 12:03:22 +0000
+++ product_custom_attributes_shop/sale_view.xml	1970-01-01 00:00:00 +0000
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-  product_custom_attributes_shop for OpenERP
-  Copyright (C) 2012 Akretion Benoît GUILLOT <benoit.guillot@xxxxxxxxxxxx>
-  The licence is in the file __openerp__.py
--->
-
-<openerp>
-    <data>
-    
-        <!-- INHERITED VIEW FOR THE OBJECT : sale_shop -->
-
-        <record id="attributes_sale_shop_view_form" model="ir.ui.view">
-            <field name="name">product_custom_attributs_shop.sale_shop.view_form</field>
-            <field name="model">sale.shop</field>
-            <field name="inherit_id" ref="base_sale_multichannels.base_sale_multichannels_view_shop_form" />
-            <field eval="16" name="priority"/>
-            <field name="type">form</field>
-            <field name="arch" type="xml">
-                <data>
-                    <xpath expr="/form/notebook/page[@string='Extra Information']" position="after">
-                        <page string="Custom Attributes" >
-                            <button name="generate_shop_attributes" string="Generate Default Shop Attributes" colspan="1" type="object" />
-                            <field name="shop_attribute_ids" nolabel="1" colspan="4">
-                                <form string="Product Shop Attributes" >
-                                    <field name="attribute_id" />
-                                    <field name="sequence" />
-                                    <field name="external_name" />
-                                </form>
-                                <tree stirng="Product Shop Attributes" >
-                                    <field name="attribute_id" />
-                                    <field name="external_name" />
-                                    <field name="sequence" />
-                                </tree>
-                            </field>
-                        </page>
-                    </xpath>
-                </data>
-            </field>
-        </record>
-
-    </data>
-</openerp>

=== removed directory 'product_custom_attributes_shop/security'
=== removed file 'product_custom_attributes_shop/security/ir.model.access.csv'
--- product_custom_attributes_shop/security/ir.model.access.csv	2012-10-17 12:36:17 +0000
+++ product_custom_attributes_shop/security/ir.model.access.csv	1970-01-01 00:00:00 +0000
@@ -1,4 +0,0 @@
-id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
-access_attribute_shop_location_read,Read-only access to attribute.shop.location,model_attribute_shop_location,base.group_user,1,0,0,0
-access_attribute_shop_location_stock_mgr,RW access to attribute.shop.location,model_attribute_shop_location,stock.group_stock_manager,1,1,1,1
-access_attribute_shop_location_sale_mgr,RW access to attribute.shop.location,model_attribute_shop_location,base.group_sale_manager,1,1,1,1

=== removed directory 'product_images_sync'
=== removed file 'product_images_sync/__init__.py'
--- product_images_sync/__init__.py	2012-09-05 17:23:57 +0000
+++ product_images_sync/__init__.py	1970-01-01 00:00:00 +0000
@@ -1,23 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    product_images_sync module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-import product_images_sync

=== removed file 'product_images_sync/__openerp__.py'
--- product_images_sync/__openerp__.py	2012-12-26 13:24:14 +0000
+++ product_images_sync/__openerp__.py	1970-01-01 00:00:00 +0000
@@ -1,47 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    product_images_sync module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-
-{
-    'name': 'Product images synchronization',
-    'version': '6.1.0',
-    'category': 'Sales Management',
-    'license': 'AGPL-3',
-    'description': """
-        This module is a generic module that handles the synchro of product images
-        between OpenERP and externals referentials such as a Magento e-commerce,
-        a PrestaShop e-commerce, etc...
-    """,
-    'author': 'Akretion',
-    'website': 'http://www.akretion.com',
-    'depends': [
-        'product_images_olbs',
-        'base_external_referentials',
-        'base_sale_multichannels',
-        ],
-    'init_xml': [],
-    'update_xml': [
-    ],
-    'demo_xml': [],
-    'installable': False,
-    'active': False,
-}

=== removed file 'product_images_sync/product_images_sync.py'
--- product_images_sync/product_images_sync.py	2012-11-28 17:28:03 +0000
+++ product_images_sync/product_images_sync.py	1970-01-01 00:00:00 +0000
@@ -1,62 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-#    product_images_sync module for OpenERP
-#    Copyright (C) 2012 Akretion (http://www.akretion.com). All Rights Reserved
-#    @author Alexis de Lattre <alexis.delattre@xxxxxxxxxxxx>
-#
-#    This program is free software: you can redistribute it and/or modify
-#    it under the terms of the GNU Affero General Public License as
-#    published by the Free Software Foundation, either version 3 of the
-#    License, or (at your option) any later version.
-#
-#    This program is distributed in the hope that it will be useful,
-#    but WITHOUT ANY WARRANTY; without even the implied warranty of
-#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-#    GNU Affero General Public License for more details.
-#
-#    You should have received a copy of the GNU Affero General Public License
-#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from osv import osv, fields
-from base_external_referentials.decorator import only_for_referential, commit_now
-
-# TODO : move field last_images_export_date in this module ? (-> will need to update dependancy ?)
-
-class sale_shop(osv.osv):
-    _inherit = 'sale.shop'
-
-    def export_images(self, cr, uid, ids, context=None):
-        return self.export_resources(cr, uid, ids, 'product.images', context=context)
-
-sale_shop()
-
-class product_images(osv.osv):
-    _inherit = 'product.images'
-
-    @only_for_referential(ref_categ = 'Multichannel Sale')
-    def _get_last_exported_date(self, cr, uid, external_session, context=None):
-        return self.pool.get('sale.shop').browse(cr, uid, external_session.sync_from_object.id, context=context).last_images_export_date
-
-    @only_for_referential(ref_categ = 'Multichannel Sale')
-    @commit_now
-    def _set_last_exported_date(self, cr, uid, external_session, date, context=None):
-        return self.pool.get('sale.shop').write(cr, uid,
-            external_session.sync_from_object.id,
-            {'last_images_export_date': date}, context=context)
-
-    def get_ids_and_update_date(self, cr, uid, external_session, ids=None, last_exported_date=None, context=None):
-        shop = external_session.sync_from_object
-        if shop.exportable_product_ids:
-            product_ids = self.pool.get('sale.shop').read(cr, uid, shop.id, ['exportable_product_ids'], context=context)['exportable_product_ids']
-            print "product_ids =", product_ids
-            image_ids = self.search(cr, uid, [('product_id', 'in', product_ids)], context=context)
-            res = super(product_images, self).get_ids_and_update_date(cr, uid, external_session, ids=image_ids, last_exported_date=last_exported_date, context=context)
-        else:
-            res = (), {}
-        return res
-
-
-product_images()


Follow ups