summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsbh (Open ERP) <sbh@tinyerp.com>2010-06-03 15:17:02 +0530
committersbh (Open ERP) <sbh@tinyerp.com>2010-06-03 15:17:02 +0530
commitcf7680410c51f16d548046e84fbfc0e09dc781af (patch)
treec5d6f3f3a6a79cdf87244490df66815554aea64e
parent7d239dc01d9b986ebd311ff5bdfdcb72ec02fb07 (diff)
Task-ID 880,881,883, merge sale_margin,move product_visible_discount ,merge account_invoice_salesman
bzr revid: sbh@tinyerp.com-20100603094702-9cmxsk96j6cf2wyi
-rw-r--r--addons/product_visible_discount/__init__.py22
-rw-r--r--addons/product_visible_discount/__terp__.py40
-rw-r--r--addons/product_visible_discount/i18n/ca.po47
-rw-r--r--addons/product_visible_discount/i18n/es.po62
-rw-r--r--addons/product_visible_discount/i18n/fr.po62
-rw-r--r--addons/product_visible_discount/i18n/fr_BE.po52
-rw-r--r--addons/product_visible_discount/i18n/fr_FR.po52
-rw-r--r--addons/product_visible_discount/i18n/product_visible_discount.pot52
-rw-r--r--addons/product_visible_discount/product.py153
-rw-r--r--addons/product_visible_discount/product_view.xml29
-rw-r--r--addons/sale/sale.py2
-rw-r--r--addons/sale/sale_view.xml4
-rw-r--r--addons/sale_margin/__init__.py25
-rw-r--r--addons/sale_margin/__terp__.py33
-rw-r--r--addons/sale_margin/i18n/ca.po371
-rw-r--r--addons/sale_margin/i18n/es.po371
-rw-r--r--addons/sale_margin/i18n/fr.po371
-rw-r--r--addons/sale_margin/i18n/fr_BE.po367
-rw-r--r--addons/sale_margin/i18n/sale_margin.pot367
-rw-r--r--addons/sale_margin/invoice_margin.py47
-rw-r--r--addons/sale_margin/report_margin.py90
-rw-r--r--addons/sale_margin/report_margin_view.xml94
-rw-r--r--addons/sale_margin/sale_margin.py81
-rw-r--r--addons/sale_margin/sale_margin_view.xml61
-rw-r--r--addons/sale_margin/security/ir.model.access.csv6
-rw-r--r--addons/stock/stock.py4
26 files changed, 2862 insertions, 3 deletions
diff --git a/addons/product_visible_discount/__init__.py b/addons/product_visible_discount/__init__.py
new file mode 100644
index 00000000000..006d6e5fb3c
--- /dev/null
+++ b/addons/product_visible_discount/__init__.py
@@ -0,0 +1,22 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+#
+# 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
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/product_visible_discount/__terp__.py b/addons/product_visible_discount/__terp__.py
new file mode 100644
index 00000000000..d0fad8b2034
--- /dev/null
+++ b/addons/product_visible_discount/__terp__.py
@@ -0,0 +1,40 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+#
+# 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":"Visible Discount",
+ "version":"1.0",
+ "author":"Tiny",
+ "category":"Generic Modules/Sales & Purchases",
+ "description": """
+ This module lets you calculate discounts on Sale Order lines and Invoice lines base on the partner's pricelist.
+ To this end, a new check box named "Visible Discount" is added to the pricelist form.
+ Example:
+ For the product PC1 and the partner "Asustek": if listprice=450, and the price calculated using Asustek's pricelist is 225
+ If the check box is checked, we will have on the sale order line: Unit price=450, Discount=50,00, Net price=225
+ If the check box is unchecked, we will have on Sale Order and Invoice lines: Unit price=225, Discount=0,00, Net price=225
+ """,
+ "depends":["base","product","account","sale"],
+ "demo_xml":[],
+ "update_xml":['product_view.xml'],
+ "active":False,
+ "installable":True,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/product_visible_discount/i18n/ca.po b/addons/product_visible_discount/i18n/ca.po
new file mode 100644
index 00000000000..abf326c2f2c
--- /dev/null
+++ b/addons/product_visible_discount/i18n/ca.po
@@ -0,0 +1,47 @@
+# Catalan translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2009-03-25 12:11+0000\n"
+"PO-Revision-Date: 2010-01-04 05:40+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-05-21 03:45+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: product_visible_discount
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML no vàlid per a la definició de la vista!"
+
+#. module: product_visible_discount
+#: model:ir.module.module,description:product_visible_discount.module_name_translation
+msgid ""
+"\n"
+" This module lets you calculate discounts on Sale Order lines and Invoice "
+"lines base on the partner's pricelist.\n"
+" To this end, a new check box named \"Visible Discount\" is added to the "
+"pricelist form.\n"
+" Example:\n"
+" For the product PC1 and the partner \"Asustek\": if listprice=450, "
+"and the price calculated using Asustek's pricelist is 225\n"
+" If the check box is checked, we will have on the sale order line: "
+"Unit price=450, Discount=50,00, Net price=225\n"
+" If the check box is unchecked, we will have on Sale Order and "
+"Invoice lines: Unit price=225, Discount=0,00, Net price=225\n"
+" "
+msgstr ""
+
+#. module: product_visible_discount
+#: model:ir.module.module,shortdesc:product_visible_discount.module_name_translation
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr "Descompte visible"
diff --git a/addons/product_visible_discount/i18n/es.po b/addons/product_visible_discount/i18n/es.po
new file mode 100644
index 00000000000..8e4ddbabdaf
--- /dev/null
+++ b/addons/product_visible_discount/i18n/es.po
@@ -0,0 +1,62 @@
+# Spanish translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2009-03-25 12:11+0000\n"
+"PO-Revision-Date: 2010-01-10 09:18+0000\n"
+"Last-Translator: AlbertoGago <alberto.gago@zeptia.com>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-05-21 03:45+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: product_visible_discount
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "¡XML no válido para la definición de la vista!"
+
+#. module: product_visible_discount
+#: model:ir.module.module,description:product_visible_discount.module_name_translation
+msgid ""
+"\n"
+" This module lets you calculate discounts on Sale Order lines and Invoice "
+"lines base on the partner's pricelist.\n"
+" To this end, a new check box named \"Visible Discount\" is added to the "
+"pricelist form.\n"
+" Example:\n"
+" For the product PC1 and the partner \"Asustek\": if listprice=450, "
+"and the price calculated using Asustek's pricelist is 225\n"
+" If the check box is checked, we will have on the sale order line: "
+"Unit price=450, Discount=50,00, Net price=225\n"
+" If the check box is unchecked, we will have on Sale Order and "
+"Invoice lines: Unit price=225, Discount=0,00, Net price=225\n"
+" "
+msgstr ""
+"\n"
+" Este módulo permite calcular descuentos en las líneas del Pedido de "
+"Ventas y en las de la Factura basados en la lista de precios del proveedor.\n"
+" Para esto, una nueva casilla de selección llamada \"Descuento visible\" "
+"se añade al formulario de la lista de precios.\n"
+" Ejemplo:\n"
+" Para el producto PC1 y el proveedor \"Asustek\": si el precio de "
+"lista es 450 y el precio calculado con la lista de precios de Asustek es "
+"225\n"
+" Si la casilla de selección está activada, en la línea del pedido "
+"aparecerá: precio unicario=450, Descuento=50,00, Precio neto=225\n"
+" Si la casilla de selección está desactivada, en la línea del pedido "
+"y en la factura aparecerá: Precio unitario=225, Descuento=0,00, Precio "
+"neto=225\n"
+" "
+
+#. module: product_visible_discount
+#: model:ir.module.module,shortdesc:product_visible_discount.module_name_translation
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr "Descuento visible"
diff --git a/addons/product_visible_discount/i18n/fr.po b/addons/product_visible_discount/i18n/fr.po
new file mode 100644
index 00000000000..405d8fa00d2
--- /dev/null
+++ b/addons/product_visible_discount/i18n/fr.po
@@ -0,0 +1,62 @@
+# translation of fr_FR.po to Français
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * product_visible_discount
+#
+# Numerigraphe <informatique@numerigraphe.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: fr_FR\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-03-25 12:11+0000\n"
+"PO-Revision-Date: 2010-01-19 06:12+0000\n"
+"Last-Translator: Numérigraphe <Unknown>\n"
+"Language-Team: Français\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-05-21 03:45+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: product_visible_discount
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML non valide pour l'architecture de la vue"
+
+#. module: product_visible_discount
+#: model:ir.module.module,description:product_visible_discount.module_name_translation
+msgid ""
+"\n"
+" This module lets you calculate discounts on Sale Order lines and Invoice "
+"lines base on the partner's pricelist.\n"
+" To this end, a new check box named \"Visible Discount\" is added to the "
+"pricelist form.\n"
+" Example:\n"
+" For the product PC1 and the partner \"Asustek\": if listprice=450, "
+"and the price calculated using Asustek's pricelist is 225\n"
+" If the check box is checked, we will have on the sale order line: "
+"Unit price=450, Discount=50,00, Net price=225\n"
+" If the check box is unchecked, we will have on Sale Order and "
+"Invoice lines: Unit price=225, Discount=0,00, Net price=225\n"
+" "
+msgstr ""
+"\n"
+" Ce module vous permet de calculer les remises sur les lignes de Commande "
+" et de Facture en se basant sur la liste de prix du partenaire.\n"
+" Pour cela, une nouvelle case à cocher \"Remise visible\" est ajoutée au "
+"formulaire \"Liste de prix\".\n"
+" Par exemple :\n"
+" Pour le produit PC1 et le partenaire \"Asustek\" : si le prix "
+"public=450, et le prix prix calculé en utilisant la liste de prix d'Asustek "
+"est 225\n"
+" Si la case est cochée, on aura sur la ligne de commande : Prix "
+"unitaire=450, Remise=50,00, Prix net=225\n"
+" Si la case N'EST PAS est cochée, on aura sur la ligne de commande : "
+"Prix unitaire=225, Remise=0,00, Prix net=225\n"
+" "
+
+#. module: product_visible_discount
+#: model:ir.module.module,shortdesc:product_visible_discount.module_name_translation
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr "Remise visible"
diff --git a/addons/product_visible_discount/i18n/fr_BE.po b/addons/product_visible_discount/i18n/fr_BE.po
new file mode 100644
index 00000000000..983dd588c65
--- /dev/null
+++ b/addons/product_visible_discount/i18n/fr_BE.po
@@ -0,0 +1,52 @@
+# translation of fr_FR.po to Français
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * product_visible_discount
+#
+# Numerigraphe <informatique@numerigraphe.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: fr_FR\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-03-25 12:11:15+0000\n"
+"PO-Revision-Date: 2009-03-25 13:17+0100\n"
+"Last-Translator: Numerigraphe <informatique@numerigraphe.com>\n"
+"Language-Team: Français\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. module: product_visible_discount
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML non valide pour l'architecture de la vue"
+
+#. module: product_visible_discount
+#: model:ir.module.module,description:product_visible_discount.module_name_translation
+msgid ""
+"\n"
+" This module lets you calculate discounts on Sale Order lines and Invoice lines base on the partner's pricelist.\n"
+" To this end, a new check box named \"Visible Discount\" is added to the pricelist form.\n"
+" Example:\n"
+" For the product PC1 and the partner \"Asustek\": if listprice=450, and the price calculated using Asustek's pricelist is 225\n"
+" If the check box is checked, we will have on the sale order line: Unit price=450, Discount=50,00, Net price=225\n"
+" If the check box is unchecked, we will have on Sale Order and Invoice lines: Unit price=225, Discount=0,00, Net price=225\n"
+" "
+msgstr ""
+"\n"
+" Ce module vous permet de calculer les remises sur les lignes de Commande et de Facture en se basant sur la liste de prix du partenaire.\n"
+" Pour cela, une nouvelle case à cocher \"Remise visible\" est ajoutée au formulaire \"Liste de prix\".\n"
+" Par exemple :\n"
+" Pour le produit PC1 et le partenaire \"Asustek\" : si le prix public=450, et le prix prix calculé en utilisant la liste de prix d'Asustek est 225\n"
+" Si la case est cochée, on aura sur la ligne de commande : Prix unitaire=450, Remise=50,00, Prix net=225\n"
+" Si la case N'EST PAS est cochée, on aura sur la ligne de commande : Prix unitaire=225, Remise=0,00, Prix net=225\n"
+" "
+
+#. module: product_visible_discount
+#: model:ir.module.module,shortdesc:product_visible_discount.module_name_translation
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr "Remise visible"
+
diff --git a/addons/product_visible_discount/i18n/fr_FR.po b/addons/product_visible_discount/i18n/fr_FR.po
new file mode 100644
index 00000000000..983dd588c65
--- /dev/null
+++ b/addons/product_visible_discount/i18n/fr_FR.po
@@ -0,0 +1,52 @@
+# translation of fr_FR.po to Français
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * product_visible_discount
+#
+# Numerigraphe <informatique@numerigraphe.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: fr_FR\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-03-25 12:11:15+0000\n"
+"PO-Revision-Date: 2009-03-25 13:17+0100\n"
+"Last-Translator: Numerigraphe <informatique@numerigraphe.com>\n"
+"Language-Team: Français\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. module: product_visible_discount
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML non valide pour l'architecture de la vue"
+
+#. module: product_visible_discount
+#: model:ir.module.module,description:product_visible_discount.module_name_translation
+msgid ""
+"\n"
+" This module lets you calculate discounts on Sale Order lines and Invoice lines base on the partner's pricelist.\n"
+" To this end, a new check box named \"Visible Discount\" is added to the pricelist form.\n"
+" Example:\n"
+" For the product PC1 and the partner \"Asustek\": if listprice=450, and the price calculated using Asustek's pricelist is 225\n"
+" If the check box is checked, we will have on the sale order line: Unit price=450, Discount=50,00, Net price=225\n"
+" If the check box is unchecked, we will have on Sale Order and Invoice lines: Unit price=225, Discount=0,00, Net price=225\n"
+" "
+msgstr ""
+"\n"
+" Ce module vous permet de calculer les remises sur les lignes de Commande et de Facture en se basant sur la liste de prix du partenaire.\n"
+" Pour cela, une nouvelle case à cocher \"Remise visible\" est ajoutée au formulaire \"Liste de prix\".\n"
+" Par exemple :\n"
+" Pour le produit PC1 et le partenaire \"Asustek\" : si le prix public=450, et le prix prix calculé en utilisant la liste de prix d'Asustek est 225\n"
+" Si la case est cochée, on aura sur la ligne de commande : Prix unitaire=450, Remise=50,00, Prix net=225\n"
+" Si la case N'EST PAS est cochée, on aura sur la ligne de commande : Prix unitaire=225, Remise=0,00, Prix net=225\n"
+" "
+
+#. module: product_visible_discount
+#: model:ir.module.module,shortdesc:product_visible_discount.module_name_translation
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr "Remise visible"
+
diff --git a/addons/product_visible_discount/i18n/product_visible_discount.pot b/addons/product_visible_discount/i18n/product_visible_discount.pot
new file mode 100644
index 00000000000..88d0312efdd
--- /dev/null
+++ b/addons/product_visible_discount/i18n/product_visible_discount.pot
@@ -0,0 +1,52 @@
+# translation of fr_FR.po to Français
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * product_visible_discount
+#
+# Numerigraphe <informatique@numerigraphe.com>, 2009.
+msgid ""
+msgstr ""
+"Project-Id-Version: fr_FR\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-03-25 12:11:15+0000\n"
+"PO-Revision-Date: 2009-03-25 13:17+0100\n"
+"Last-Translator: Numerigraphe <informatique@numerigraphe.com>\n"
+"Language-Team: Français\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: \n"
+"X-Generator: KBabel 1.11.4\n"
+
+#. module: product_visible_discount
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: product_visible_discount
+#: model:ir.module.module,description:product_visible_discount.module_name_translation
+msgid ""
+"\n"
+" This module lets you calculate discounts on Sale Order lines and Invoice lines base on the partner's pricelist.\n"
+" To this end, a new check box named \"Visible Discount\" is added to the pricelist form.\n"
+" Example:\n"
+" For the product PC1 and the partner \"Asustek\": if listprice=450, and the price calculated using Asustek's pricelist is 225\n"
+" If the check box is checked, we will have on the sale order line: Unit price=450, Discount=50,00, Net price=225\n"
+" If the check box is unchecked, we will have on Sale Order and Invoice lines: Unit price=225, Discount=0,00, Net price=225\n"
+" "
+msgstr ""
+"\n"
+" Ce module vous permet de calculer les remises sur les lignes de Commande et de Facture en se basant sur la liste de prix du partenaire.\n"
+" Pour cela, une nouvelle case à cocher \"Remise visible\" est ajoutée au formulaire \"Liste de prix\".\n"
+" Par exemple :\n"
+" Pour le produit PC1 et le partenaire \"Asustek\" : si le prix public=450, et le prix prix calculé en utilisant la liste de prix d'Asustek est 225\n"
+" Si la case est cochée, on aura sur la ligne de commande : Prix unitaire=450, Remise=50,00, Prix net=225\n"
+" Si la case N'EST PAS est cochée, on aura sur la ligne de commande : Prix unitaire=225, Remise=0,00, Prix net=225\n"
+" "
+
+#. module: product_visible_discount
+#: model:ir.module.module,shortdesc:product_visible_discount.module_name_translation
+#: field:product.pricelist,visible_discount:0
+msgid "Visible Discount"
+msgstr ""
+
diff --git a/addons/product_visible_discount/product.py b/addons/product_visible_discount/product.py
new file mode 100644
index 00000000000..b6e5e9fbb90
--- /dev/null
+++ b/addons/product_visible_discount/product.py
@@ -0,0 +1,153 @@
+# -*- encoding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
+# $Id$
+#
+# 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 osv import fields, osv
+import pooler
+from tools import config
+import time
+from osv.osv import except_osv
+from tools.translate import _
+
+class product_pricelist(osv.osv):
+ _name = 'product.pricelist'
+ _inherit = 'product.pricelist'
+ _columns ={
+ 'visible_discount':fields.boolean('Visible Discount'),
+ }
+
+ _defaults = {
+ 'visible_discount':lambda *a: True,
+ }
+product_pricelist()
+
+class sale_order_line(osv.osv):
+ _name = "sale.order.line"
+ _inherit = "sale.order.line"
+
+ def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
+ uom=False, qty_uos=0, uos=False, name='', partner_id=False,
+ lang=False, update_tax=True,date_order=False,packaging=False,fiscal_position=False, flag=False):
+ res=super(sale_order_line, self).product_id_change(cr, uid, ids, pricelist, product, qty,
+ uom, qty_uos, uos, name, partner_id,
+ lang, update_tax,date_order,fiscal_position=fiscal_position,flag=flag)
+
+ context = {'lang': lang, 'partner_id': partner_id}
+ result=res['value']
+ pricelist_obj=self.pool.get('product.pricelist')
+ product_obj = self.pool.get('product.product')
+ product_uom_obj = self.pool.get('product.uom')
+ if product:
+ if result.get('price_unit',False):
+ price=result['price_unit']
+ else:
+ return res
+
+ product = product_obj.browse(cr, uid, product, context)
+# product_tmpl_id = product.product_tmpl_id.id
+# pricetype_id = pricelist_obj.browse(cr, uid, pricelist).version_id[0].items_id[0].base
+# field_name = 'list_price'
+# product_read = self.pool.get('product.template').read(cr, uid, product_tmpl_id, [field_name], context)
+# list_price = product_read[field_name]
+ list_price = pricelist_obj.price_get(cr, uid, [pricelist],
+ product.id, qty or 1.0, partner_id, {'uom': uom,'date': date_order })[pricelist]
+
+ pricelists=pricelist_obj.read(cr,uid,[pricelist],['visible_discount'])
+
+ old_uom = product.uos_id or product.uom_id
+ new_list_price = product_uom_obj._compute_price(cr,
+ uid, old_uom.id, list_price, uom)
+ if(len(pricelists)>0 and pricelists[0]['visible_discount'] and list_price != 0):
+ discount=(new_list_price-price) / new_list_price * 100
+ result['price_unit']=new_list_price
+ result['discount']=discount
+ else:
+ result['discount']=0.0
+ return res
+
+
+
+sale_order_line()
+
+class account_invoice_line(osv.osv):
+ _name = "account.invoice.line"
+ _inherit = "account.invoice.line"
+
+ def product_id_change(self, cr, uid, ids, product, uom, qty=0, name='', type='out_invoice', partner_id=False, fposition_id=False, price_unit=False, address_invoice_id=False, currency_id=False, context={}):
+ res=super(account_invoice_line, self).product_id_change(cr, uid, ids, product, uom, qty, name, type, partner_id, fposition_id, price_unit, address_invoice_id, currency_id, context)
+
+
+ def get_real_price(res_dict, product_id, pricelist):
+ item_obj = self.pool.get('product.pricelist.item')
+ price_type_obj = self.pool.get('product.price.type')
+ product_obj=self.pool.get('product.product')
+ template_obj=self.pool.get('product.template')
+ field_name= 'list_price'
+
+ if res_dict.get('item_id',False) and res_dict['item_id'].get(pricelist,False):
+ item = res_dict['item_id'].get(pricelist,False)
+ item_base = item_obj.read(cr, uid, [item], ['base'])[0]['base']
+ if item_base > 0:
+ field_name = price_type_obj.browse(cr, uid, item_base).field
+
+ product_tmpl_id = product_obj.browse(cr, uid, product_id, context).product_tmpl_id.id
+
+ product_read = template_obj.read(cr, uid, product_tmpl_id, [field_name], context)
+ return product_read[field_name]
+
+
+ if product:
+ product = self.pool.get('product.product').browse(cr, uid, product, context=context)
+ pricelist_obj=self.pool.get('product.pricelist')
+ partner_obj=self.pool.get('res.partner')
+ result=res['value']
+ pricelist = False
+ real_price = 0.00
+ if type in ('in_invoice', 'in_refund'):
+ if not price_unit and partner_id:
+ pricelist =partner_obj.browse(cr, uid, partner_id).property_product_pricelist_purchase.id
+ if not pricelist:
+ raise osv.except_osv(_('No Purchase Pricelist Found !'),_("You must first define a pricelist for Supplier !"))
+ price_unit_res = pricelist_obj.price_get(cr, uid, [pricelist], product.id, qty or 1.0, partner_id, {'uom': uom})[pricelist]
+ price_unit = price_unit_res[pricelist]
+ real_price= get_real_price(price_unit_res, product.id, pricelist)
+ else:
+ if partner_id:
+ pricelist =partner_obj.browse(cr, uid, partner_id).property_product_pricelist.id
+ if not pricelist:
+ raise osv.except_osv(_('No Sale Pricelist Found '),_("You must first define a pricelist for Customer !"))
+ price_unit_res = pricelist_obj.price_get(cr, uid, [pricelist], product.id, qty or 1.0, partner_id, {'uom': uom})
+ price_unit = price_unit_res[pricelist]
+
+ real_price = get_real_price(price_unit_res, product.id, pricelist)
+ if pricelist:
+ pricelists=pricelist_obj.read(cr,uid,[pricelist],['visible_discount'])
+ if(len(pricelists)>0 and pricelists[0]['visible_discount'] and real_price != 0):
+ discount=(real_price-price_unit) / real_price * 100
+ result['price_unit']=real_price
+ result['discount']=discount
+ else:
+ result['discount']=0.0
+ return res
+
+
+account_invoice_line()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/product_visible_discount/product_view.xml b/addons/product_visible_discount/product_view.xml
new file mode 100644
index 00000000000..9fc541fbd24
--- /dev/null
+++ b/addons/product_visible_discount/product_view.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+ #---------------------------------------------------------
+ # product price list
+ #---------------------------------------------------------
+ <record model="ir.ui.view" id="product_pricelist_view_tree">
+ <field name="name">product.pricelist.tree</field>
+ <field name="model">product.pricelist</field>
+ <field name="inherit_id" ref="product.product_pricelist_view_tree"/>
+ <field name="arch" type="xml">
+ <field name="currency_id" position="before">
+ <field name="visible_discount"/>
+ </field>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="product_pricelist_view_form">
+ <field name="name">product.pricelist.form</field>
+ <field name="model">product.pricelist</field>
+ <field name="inherit_id" ref="product.product_pricelist_view"/>
+ <field name="arch" type="xml">
+ <field name="currency_id" position="before">
+ <field name="visible_discount"/>
+ </field>
+ </field>
+ </record>
+ </data>
+</openerp>
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index e684a1a6c1d..fad10adaa36 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -422,6 +422,7 @@ class sale_order(osv.osv):
if not journal_ids:
raise osv.except_osv(_('Error !'),
_('There is no sale journal defined for this company: "%s" (id:%d)') % (order.company_id.name, order.company_id.id))
+
inv = {
'name': order.client_order_ref or order.name,
'origin': order.name,
@@ -439,6 +440,7 @@ class sale_order(osv.osv):
'fiscal_position': order.fiscal_position.id or order.partner_id.property_account_position.id,
'date_invoice' : context.get('date_invoice',False),
'company_id' : order.company_id.id,
+ 'user_id':order.user_id and order.user_id.id or False
}
inv_obj = self.pool.get('account.invoice')
inv.update(self._inv_get(cr, uid, order))
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index 4d82e8595ad..8da394618af 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -105,7 +105,7 @@
<field name="shop_id" on_change="onchange_shop_id(shop_id)" widget="selection" groups="base.group_extended"/>
<field name="invoiced"/>
</group>
- <notebook colspan="4">
+ <notebook colspan="5">
<page string="Sale Order">
<field name="partner_id" on_change="onchange_partner_id(partner_id)" required="1"/>
<field domain="[('partner_id','=',partner_id)]" name="partner_order_id"/>
@@ -188,7 +188,7 @@
</tree>
</field>
<newline/>
- <group col="8" colspan="5">
+ <group col="10" colspan="5">
<field name="amount_untaxed" sum="Untaxed amount"/>
<field name="amount_tax"/>
<field name="amount_total"/>
diff --git a/addons/sale_margin/__init__.py b/addons/sale_margin/__init__.py
new file mode 100644
index 00000000000..9cb3c8383e8
--- /dev/null
+++ b/addons/sale_margin/__init__.py
@@ -0,0 +1,25 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+#
+# 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 invoice_margin
+import report_margin
+import sale_margin
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/sale_margin/__terp__.py b/addons/sale_margin/__terp__.py
new file mode 100644
index 00000000000..5b1b6ac8c60
--- /dev/null
+++ b/addons/sale_margin/__terp__.py
@@ -0,0 +1,33 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+#
+# 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":"Margins in Sale Orders",
+ "version":"1.0",
+ "author":"Tiny",
+ "category" : "Generic Modules/Sales & Purchases",
+ "depends":["sale"],
+ "demo_xml":[],
+ "update_xml":["security/ir.model.access.csv","sale_margin_view.xml","report_margin_view.xml"],
+ "active": False,
+ "installable": True,
+}
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/sale_margin/i18n/ca.po b/addons/sale_margin/i18n/ca.po
new file mode 100644
index 00000000000..ee0d944fb1b
--- /dev/null
+++ b/addons/sale_margin/i18n/ca.po
@@ -0,0 +1,371 @@
+# Catalan translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2009-11-25 14:28+0000\n"
+"PO-Revision-Date: 2010-01-04 06:00+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Catalan <ca@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-05-21 03:45+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Refund"
+msgstr "Factura d'abonament de client"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_product
+msgid "report.account.invoice.product"
+msgstr "informe.comptabilitat.factura.producte"
+
+#. module: sale_margin
+#: 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: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_product
+msgid "Invoices by Product"
+msgstr "Factures per producte"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Invoice"
+msgstr "Factura de client"
+
+#. module: sale_margin
+#: wizard_view:stock.invoice_onshipping,init:0
+msgid "Create invoices"
+msgstr "Crea factures"
+
+#. module: sale_margin
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML invàlid per a la definició de la vista!"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner_product
+msgid "report.account.invoice.partner.product"
+msgstr "informe.comptabilitat.factura.empresa.producte"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Invoice"
+msgstr "Factura de proveïdor"
+
+#. module: sale_margin
+#: field:report.account.invoice,state:0
+#: field:report.account.invoice.category,state:0
+#: field:report.account.invoice.partner,state:0
+#: field:report.account.invoice.partner.product,state:0
+#: field:report.account.invoice.product,state:0
+msgid "State"
+msgstr "Estat"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Create Invoice"
+msgstr "Crea factura"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Draft"
+msgstr "Esborrany"
+
+#. module: sale_margin
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Nom de model no vàlid en la definició de l'acció."
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_month_product
+msgid "All Months"
+msgstr "Tots els mesos"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree_all
+msgid "report.account.invoice.partner.product.tree"
+msgstr "informe.comptabilitat.factura.empresa.producte.arbre"
+
+#. module: sale_margin
+#: field:report.account.invoice,type:0
+#: field:report.account.invoice.category,type:0
+#: field:report.account.invoice.partner,type:0
+#: field:report.account.invoice.partner.product,type:0
+#: field:report.account.invoice.product,type:0
+#: wizard_field:stock.invoice_onshipping,init,type:0
+msgid "Type"
+msgstr "Tipus"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,journal_id:0
+msgid "Destination Journal"
+msgstr "Diari de destí"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Supplier Invoices"
+msgstr "Factures de proveïdor"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner.product,product_id:0
+#: field:report.account.invoice.product,product_id:0
+msgid "Product"
+msgstr "Producte"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner:0
+msgid "Invoices by partner"
+msgstr "Factures per empresa"
+
+#. module: sale_margin
+#: view:report.account.invoice.category:0
+msgid "Invoices by category"
+msgstr "Factures per categoria"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Paid"
+msgstr "Pagat"
+
+#. module: sale_margin
+#: model:ir.actions.wizard,name:sale_margin.wizard_picking_invoice_create
+#: wizard_button:stock.invoice_onshipping,init,create_invoice:0
+msgid "Create invoice"
+msgstr "Crea factura"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree_all
+msgid "report.account.invoice.category.tree"
+msgstr "informe.comptabilitat.factura.categoria.arbre"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner_product
+msgid "Invoices by Partner and Product"
+msgstr "Factures per empresa i producte"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_category
+msgid "report.account.invoice.category"
+msgstr "informe.comptabilitat.factura.categoria"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product
+msgid "This Month"
+msgstr "Aquest mes"
+
+#. module: sale_margin
+#: field:report.account.invoice.category,categ_id:0
+msgid "Categories"
+msgstr "Categories"
+
+#. module: sale_margin
+#: field:account.invoice.line,cost_price:0
+#: field:report.account.invoice,cost_price:0
+#: field:report.account.invoice.category,cost_price:0
+#: field:report.account.invoice.partner,cost_price:0
+#: field:report.account.invoice.partner.product,cost_price:0
+#: field:report.account.invoice.product,cost_price:0
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr "Preu cost"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,group:0
+msgid "Group by partner"
+msgstr "Agrupa per empresa"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner
+msgid "report.account.invoice.partner"
+msgstr "informe.comptabilitat.factura.empresa"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner
+msgid "Invoices by Partner"
+msgstr "Factures per empresa"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_category
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_category
+msgid "Invoices by Category"
+msgstr "Factures per categoria"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner.product:0
+msgid "Invoices by partner and product"
+msgstr "Factures per empresa i producte"
+
+#. module: sale_margin
+#: field:report.account.invoice,amount:0
+#: field:report.account.invoice.category,amount:0
+#: field:report.account.invoice.partner,amount:0
+#: field:report.account.invoice.partner.product,amount:0
+#: field:report.account.invoice.product,amount:0
+msgid "Amount"
+msgstr "Quantitat"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,invoice_date:0
+msgid "Invoiced date"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Refund"
+msgstr "Factura d'abonament de proveïdor"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree_all
+msgid "report.account.invoice.partner.tree"
+msgstr "informe.comptabilitat.factura.empresa.arbre"
+
+#. module: sale_margin
+#: field:report.account.invoice,margin:0
+#: field:report.account.invoice.category,margin:0
+#: field:report.account.invoice.partner,margin:0
+#: field:report.account.invoice.partner.product,margin:0
+#: field:report.account.invoice.product,margin:0
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr "Marge"
+
+#. module: sale_margin
+#: field:report.account.invoice,quantity:0
+#: field:report.account.invoice.category,quantity:0
+#: field:report.account.invoice.partner,quantity:0
+#: field:report.account.invoice.partner.product,quantity:0
+#: field:report.account.invoice.product,quantity:0
+msgid "Quantity"
+msgstr "Quantitat"
+
+#. module: sale_margin
+#: view:report.account.invoice.product:0
+msgid "Invoices by product"
+msgstr "Factures per producte"
+
+#. module: sale_margin
+#: model:ir.module.module,shortdesc:sale_margin.module_meta_information
+msgid "Margins in Sale Orders"
+msgstr "Marges en comandes de venda"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice
+msgid "report.account.invoice"
+msgstr "informe.comptabilitat.factura"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices
+#: view:report.account.invoice:0
+#: view:stock.picking:0
+#: field:stock.picking,invoice_ids:0
+msgid "Invoices"
+msgstr "Factures"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Pro-forma"
+msgstr "Pro-forma"
+
+#. module: sale_margin
+#: field:report.account.invoice,name:0
+#: field:report.account.invoice.category,name:0
+#: field:report.account.invoice.partner,name:0
+#: field:report.account.invoice.partner.product,name:0
+#: field:report.account.invoice.product,name:0
+msgid "Month"
+msgstr "Mes"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Canceled"
+msgstr "Cancel·lada"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product
+msgid "Invoice"
+msgstr "Factura"
+
+#. module: sale_margin
+#: wizard_button:stock.invoice_onshipping,init,end:0
+msgid "Cancel"
+msgstr "Cancel·la"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner,partner_id:0
+#: field:report.account.invoice.partner.product,partner_id:0
+msgid "Partner"
+msgstr "Empresa"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree_all
+msgid "report.account.invoice.tree"
+msgstr "informe.comptabilitat.factura.arbre"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Open"
+msgstr "Oberta"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree_all
+msgid "report.account.invoice.product.tree"
+msgstr "informe.comptabilitat.factura.producte.arbre"
diff --git a/addons/sale_margin/i18n/es.po b/addons/sale_margin/i18n/es.po
new file mode 100644
index 00000000000..8f81f6659b3
--- /dev/null
+++ b/addons/sale_margin/i18n/es.po
@@ -0,0 +1,371 @@
+# Spanish translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2009-11-25 14:28+0000\n"
+"PO-Revision-Date: 2010-04-08 08:04+0000\n"
+"Last-Translator: OpenERP Administrators <Unknown>\n"
+"Language-Team: Spanish <es@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-05-21 03:45+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Refund"
+msgstr "Factura de abono de cliente"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_product
+msgid "report.account.invoice.product"
+msgstr "informe.contabilidad.factura.producto"
+
+#. module: sale_margin
+#: 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: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_product
+msgid "Invoices by Product"
+msgstr "Facturas por producto"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Invoice"
+msgstr "Factura de cliente"
+
+#. module: sale_margin
+#: wizard_view:stock.invoice_onshipping,init:0
+msgid "Create invoices"
+msgstr "Crear facturas"
+
+#. module: sale_margin
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "¡XML inválido para la definición de la vista!"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner_product
+msgid "report.account.invoice.partner.product"
+msgstr "informe.contabilidad.factura.empresa.producto"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Invoice"
+msgstr "Factura de proveedor"
+
+#. module: sale_margin
+#: field:report.account.invoice,state:0
+#: field:report.account.invoice.category,state:0
+#: field:report.account.invoice.partner,state:0
+#: field:report.account.invoice.partner.product,state:0
+#: field:report.account.invoice.product,state:0
+msgid "State"
+msgstr "Estado"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Create Invoice"
+msgstr "Crear factura"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Draft"
+msgstr "Borrador"
+
+#. module: sale_margin
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr "Nombre de modelo no válido en la definición de la acción."
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_month_product
+msgid "All Months"
+msgstr "Todos los meses"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree_all
+msgid "report.account.invoice.partner.product.tree"
+msgstr "informe.contabilidad.factura.empresa.producto.árbol"
+
+#. module: sale_margin
+#: field:report.account.invoice,type:0
+#: field:report.account.invoice.category,type:0
+#: field:report.account.invoice.partner,type:0
+#: field:report.account.invoice.partner.product,type:0
+#: field:report.account.invoice.product,type:0
+#: wizard_field:stock.invoice_onshipping,init,type:0
+msgid "Type"
+msgstr "Tipo"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,journal_id:0
+msgid "Destination Journal"
+msgstr "Diario de destino"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Supplier Invoices"
+msgstr "Facturas de proveedor"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner.product,product_id:0
+#: field:report.account.invoice.product,product_id:0
+msgid "Product"
+msgstr "Producto"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner:0
+msgid "Invoices by partner"
+msgstr "Facturas por empresa"
+
+#. module: sale_margin
+#: view:report.account.invoice.category:0
+msgid "Invoices by category"
+msgstr "Facturas por categoría"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Paid"
+msgstr "Pagado"
+
+#. module: sale_margin
+#: model:ir.actions.wizard,name:sale_margin.wizard_picking_invoice_create
+#: wizard_button:stock.invoice_onshipping,init,create_invoice:0
+msgid "Create invoice"
+msgstr "Crear factura"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree_all
+msgid "report.account.invoice.category.tree"
+msgstr "informe.contabilidad.factura.categoría.árbol"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner_product
+msgid "Invoices by Partner and Product"
+msgstr "Facturas por empresa y producto"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_category
+msgid "report.account.invoice.category"
+msgstr "informe.contabilidad.factura.categoría"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product
+msgid "This Month"
+msgstr "Este Mes"
+
+#. module: sale_margin
+#: field:report.account.invoice.category,categ_id:0
+msgid "Categories"
+msgstr "Categorías"
+
+#. module: sale_margin
+#: field:account.invoice.line,cost_price:0
+#: field:report.account.invoice,cost_price:0
+#: field:report.account.invoice.category,cost_price:0
+#: field:report.account.invoice.partner,cost_price:0
+#: field:report.account.invoice.partner.product,cost_price:0
+#: field:report.account.invoice.product,cost_price:0
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr "Precio coste"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,group:0
+msgid "Group by partner"
+msgstr "Agrupar por empresa"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner
+msgid "report.account.invoice.partner"
+msgstr "informe.contabilidad.factura.empresa"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner
+msgid "Invoices by Partner"
+msgstr "Facturas por empresa"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_category
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_category
+msgid "Invoices by Category"
+msgstr "Facturas por categoría"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner.product:0
+msgid "Invoices by partner and product"
+msgstr "Facturas por empresa y producto"
+
+#. module: sale_margin
+#: field:report.account.invoice,amount:0
+#: field:report.account.invoice.category,amount:0
+#: field:report.account.invoice.partner,amount:0
+#: field:report.account.invoice.partner.product,amount:0
+#: field:report.account.invoice.product,amount:0
+msgid "Amount"
+msgstr "Importe"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,invoice_date:0
+msgid "Invoiced date"
+msgstr "fecha facturada"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Refund"
+msgstr "Factura de abono de proveedor"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree_all
+msgid "report.account.invoice.partner.tree"
+msgstr "informe.contabilidad.factura.empresa.árbol"
+
+#. module: sale_margin
+#: field:report.account.invoice,margin:0
+#: field:report.account.invoice.category,margin:0
+#: field:report.account.invoice.partner,margin:0
+#: field:report.account.invoice.partner.product,margin:0
+#: field:report.account.invoice.product,margin:0
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr "Margen"
+
+#. module: sale_margin
+#: field:report.account.invoice,quantity:0
+#: field:report.account.invoice.category,quantity:0
+#: field:report.account.invoice.partner,quantity:0
+#: field:report.account.invoice.partner.product,quantity:0
+#: field:report.account.invoice.product,quantity:0
+msgid "Quantity"
+msgstr "Cantidad"
+
+#. module: sale_margin
+#: view:report.account.invoice.product:0
+msgid "Invoices by product"
+msgstr "Facturas por producto"
+
+#. module: sale_margin
+#: model:ir.module.module,shortdesc:sale_margin.module_meta_information
+msgid "Margins in Sale Orders"
+msgstr "Márgenes en pedidos de venta"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice
+msgid "report.account.invoice"
+msgstr "informe.contabilidad.factura"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices
+#: view:report.account.invoice:0
+#: view:stock.picking:0
+#: field:stock.picking,invoice_ids:0
+msgid "Invoices"
+msgstr "Facturas"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Pro-forma"
+msgstr "Pro-forma"
+
+#. module: sale_margin
+#: field:report.account.invoice,name:0
+#: field:report.account.invoice.category,name:0
+#: field:report.account.invoice.partner,name:0
+#: field:report.account.invoice.partner.product,name:0
+#: field:report.account.invoice.product,name:0
+msgid "Month"
+msgstr "Mes"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Canceled"
+msgstr "Cancelada"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product
+msgid "Invoice"
+msgstr "Factura"
+
+#. module: sale_margin
+#: wizard_button:stock.invoice_onshipping,init,end:0
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner,partner_id:0
+#: field:report.account.invoice.partner.product,partner_id:0
+msgid "Partner"
+msgstr "Empresa"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree_all
+msgid "report.account.invoice.tree"
+msgstr "informe.contabilidad.factura.árbol"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Open"
+msgstr "Abierta"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree_all
+msgid "report.account.invoice.product.tree"
+msgstr "informe.contabilidad.factura.producto.árbol"
diff --git a/addons/sale_margin/i18n/fr.po b/addons/sale_margin/i18n/fr.po
new file mode 100644
index 00000000000..84d26ac0dfd
--- /dev/null
+++ b/addons/sale_margin/i18n/fr.po
@@ -0,0 +1,371 @@
+# French translation for openobject-addons
+# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2009-11-25 14:28+0000\n"
+"PO-Revision-Date: 2010-01-04 06:00+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: French <fr@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2010-05-21 03:45+0000\n"
+"X-Generator: Launchpad (build Unknown)\n"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Refund"
+msgstr "Note de Crédit Client"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_product
+msgid "report.account.invoice.product"
+msgstr ""
+
+#. module: sale_margin
+#: constraint:ir.model:0
+msgid ""
+"The Object name must start with x_ and not contain any special character !"
+msgstr ""
+"Le nom de l'objet doit commencer avec x_ et ne pas contenir de charactères "
+"spéciaux !"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_product
+msgid "Invoices by Product"
+msgstr "Factures par produit"
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Invoice"
+msgstr "Facture client"
+
+#. module: sale_margin
+#: wizard_view:stock.invoice_onshipping,init:0
+msgid "Create invoices"
+msgstr "Créer les factures"
+
+#. module: sale_margin
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr "XML non valide pour l'architecture de la vue"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner_product
+msgid "report.account.invoice.partner.product"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Invoice"
+msgstr "Facture fournisseur"
+
+#. module: sale_margin
+#: field:report.account.invoice,state:0
+#: field:report.account.invoice.category,state:0
+#: field:report.account.invoice.partner,state:0
+#: field:report.account.invoice.partner.product,state:0
+#: field:report.account.invoice.product,state:0
+msgid "State"
+msgstr "État"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Create Invoice"
+msgstr "Créer la facture"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Draft"
+msgstr "Brouillon"
+
+#. module: sale_margin
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_month_product
+msgid "All Months"
+msgstr "Tous les mois"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree_all
+msgid "report.account.invoice.partner.product.tree"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,type:0
+#: field:report.account.invoice.category,type:0
+#: field:report.account.invoice.partner,type:0
+#: field:report.account.invoice.partner.product,type:0
+#: field:report.account.invoice.product,type:0
+#: wizard_field:stock.invoice_onshipping,init,type:0
+msgid "Type"
+msgstr "Type"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,journal_id:0
+msgid "Destination Journal"
+msgstr "Journal de Destination"
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Supplier Invoices"
+msgstr "Factures fournisseur"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner.product,product_id:0
+#: field:report.account.invoice.product,product_id:0
+msgid "Product"
+msgstr "Produit"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner:0
+msgid "Invoices by partner"
+msgstr "Factures par partenaire"
+
+#. module: sale_margin
+#: view:report.account.invoice.category:0
+msgid "Invoices by category"
+msgstr "Factures par catégorie"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Paid"
+msgstr "Payé"
+
+#. module: sale_margin
+#: model:ir.actions.wizard,name:sale_margin.wizard_picking_invoice_create
+#: wizard_button:stock.invoice_onshipping,init,create_invoice:0
+msgid "Create invoice"
+msgstr "Créer une facture"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree_all
+msgid "report.account.invoice.category.tree"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner_product
+msgid "Invoices by Partner and Product"
+msgstr "Factures par partenaire et produit"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_category
+msgid "report.account.invoice.category"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product
+msgid "This Month"
+msgstr "Ce mois"
+
+#. module: sale_margin
+#: field:report.account.invoice.category,categ_id:0
+msgid "Categories"
+msgstr "Catégories"
+
+#. module: sale_margin
+#: field:account.invoice.line,cost_price:0
+#: field:report.account.invoice,cost_price:0
+#: field:report.account.invoice.category,cost_price:0
+#: field:report.account.invoice.partner,cost_price:0
+#: field:report.account.invoice.partner.product,cost_price:0
+#: field:report.account.invoice.product,cost_price:0
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr "Prix standard"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,group:0
+msgid "Group by partner"
+msgstr "Grouper par partenaire"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner
+msgid "report.account.invoice.partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner
+msgid "Invoices by Partner"
+msgstr "Factures par partenaire"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_category
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_category
+msgid "Invoices by Category"
+msgstr "Factures par catégorie"
+
+#. module: sale_margin
+#: view:report.account.invoice.partner.product:0
+msgid "Invoices by partner and product"
+msgstr "Factures par partenaire et produit"
+
+#. module: sale_margin
+#: field:report.account.invoice,amount:0
+#: field:report.account.invoice.category,amount:0
+#: field:report.account.invoice.partner,amount:0
+#: field:report.account.invoice.partner.product,amount:0
+#: field:report.account.invoice.product,amount:0
+msgid "Amount"
+msgstr "Total"
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,invoice_date:0
+msgid "Invoiced date"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Refund"
+msgstr "Note de crédit fournisseur"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree_all
+msgid "report.account.invoice.partner.tree"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,margin:0
+#: field:report.account.invoice.category,margin:0
+#: field:report.account.invoice.partner,margin:0
+#: field:report.account.invoice.partner.product,margin:0
+#: field:report.account.invoice.product,margin:0
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr "Marge"
+
+#. module: sale_margin
+#: field:report.account.invoice,quantity:0
+#: field:report.account.invoice.category,quantity:0
+#: field:report.account.invoice.partner,quantity:0
+#: field:report.account.invoice.partner.product,quantity:0
+#: field:report.account.invoice.product,quantity:0
+msgid "Quantity"
+msgstr "Quantité"
+
+#. module: sale_margin
+#: view:report.account.invoice.product:0
+msgid "Invoices by product"
+msgstr "Factures par produit"
+
+#. module: sale_margin
+#: model:ir.module.module,shortdesc:sale_margin.module_meta_information
+msgid "Margins in Sale Orders"
+msgstr "Marges des ventes"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice
+msgid "report.account.invoice"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices
+#: view:report.account.invoice:0
+#: view:stock.picking:0
+#: field:stock.picking,invoice_ids:0
+msgid "Invoices"
+msgstr "Factures"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Pro-forma"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,name:0
+#: field:report.account.invoice.category,name:0
+#: field:report.account.invoice.partner,name:0
+#: field:report.account.invoice.partner.product,name:0
+#: field:report.account.invoice.product,name:0
+msgid "Month"
+msgstr "Mois"
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Canceled"
+msgstr "Annulé"
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product
+msgid "Invoice"
+msgstr "Facture"
+
+#. module: sale_margin
+#: wizard_button:stock.invoice_onshipping,init,end:0
+msgid "Cancel"
+msgstr "Annuler"
+
+#. module: sale_margin
+#: field:report.account.invoice.partner,partner_id:0
+#: field:report.account.invoice.partner.product,partner_id:0
+msgid "Partner"
+msgstr "Partenaire"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree_all
+msgid "report.account.invoice.tree"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Open"
+msgstr "Ouvert"
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree_all
+msgid "report.account.invoice.product.tree"
+msgstr ""
diff --git a/addons/sale_margin/i18n/fr_BE.po b/addons/sale_margin/i18n/fr_BE.po
new file mode 100644
index 00000000000..424a1c74b3f
--- /dev/null
+++ b/addons/sale_margin/i18n/fr_BE.po
@@ -0,0 +1,367 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * sale_margin
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.6\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-11-25 14:28:11+0000\n"
+"PO-Revision-Date: 2009-11-25 14:28:11+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: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Refund"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_product
+msgid "report.account.invoice.product"
+msgstr ""
+
+#. module: sale_margin
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_product
+msgid "Invoices by Product"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Invoice"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_view:stock.invoice_onshipping,init:0
+msgid "Create invoices"
+msgstr ""
+
+#. module: sale_margin
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner_product
+msgid "report.account.invoice.partner.product"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,state:0
+#: field:report.account.invoice.category,state:0
+#: field:report.account.invoice.partner,state:0
+#: field:report.account.invoice.partner.product,state:0
+#: field:report.account.invoice.product,state:0
+msgid "State"
+msgstr ""
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Create Invoice"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: sale_margin
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_month_product
+msgid "All Months"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree_all
+msgid "report.account.invoice.partner.product.tree"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,type:0
+#: field:report.account.invoice.category,type:0
+#: field:report.account.invoice.partner,type:0
+#: field:report.account.invoice.partner.product,type:0
+#: field:report.account.invoice.product,type:0
+#: wizard_field:stock.invoice_onshipping,init,type:0
+msgid "Type"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,journal_id:0
+msgid "Destination Journal"
+msgstr ""
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Supplier Invoices"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice.partner.product,product_id:0
+#: field:report.account.invoice.product,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.partner:0
+msgid "Invoices by partner"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.category:0
+msgid "Invoices by category"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Paid"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.wizard,name:sale_margin.wizard_picking_invoice_create
+#: wizard_button:stock.invoice_onshipping,init,create_invoice:0
+msgid "Create invoice"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree_all
+msgid "report.account.invoice.category.tree"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner_product
+msgid "Invoices by Partner and Product"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_category
+msgid "report.account.invoice.category"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product
+msgid "This Month"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice.category,categ_id:0
+msgid "Categories"
+msgstr ""
+
+#. module: sale_margin
+#: field:account.invoice.line,cost_price:0
+#: field:report.account.invoice,cost_price:0
+#: field:report.account.invoice.category,cost_price:0
+#: field:report.account.invoice.partner,cost_price:0
+#: field:report.account.invoice.partner.product,cost_price:0
+#: field:report.account.invoice.product,cost_price:0
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,group:0
+msgid "Group by partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner
+msgid "report.account.invoice.partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner
+msgid "Invoices by Partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_category
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_category
+msgid "Invoices by Category"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.partner.product:0
+msgid "Invoices by partner and product"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,amount:0
+#: field:report.account.invoice.category,amount:0
+#: field:report.account.invoice.partner,amount:0
+#: field:report.account.invoice.partner.product,amount:0
+#: field:report.account.invoice.product,amount:0
+msgid "Amount"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,invoice_date:0
+msgid "Invoiced date"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree_all
+msgid "report.account.invoice.partner.tree"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,margin:0
+#: field:report.account.invoice.category,margin:0
+#: field:report.account.invoice.partner,margin:0
+#: field:report.account.invoice.partner.product,margin:0
+#: field:report.account.invoice.product,margin:0
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,quantity:0
+#: field:report.account.invoice.category,quantity:0
+#: field:report.account.invoice.partner,quantity:0
+#: field:report.account.invoice.partner.product,quantity:0
+#: field:report.account.invoice.product,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.product:0
+msgid "Invoices by product"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.module.module,shortdesc:sale_margin.module_meta_information
+msgid "Margins in Sale Orders"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice
+msgid "report.account.invoice"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices
+#: view:report.account.invoice:0
+#: view:stock.picking:0
+#: field:stock.picking,invoice_ids:0
+msgid "Invoices"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Pro-forma"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,name:0
+#: field:report.account.invoice.category,name:0
+#: field:report.account.invoice.partner,name:0
+#: field:report.account.invoice.partner.product,name:0
+#: field:report.account.invoice.product,name:0
+msgid "Month"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Canceled"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product
+msgid "Invoice"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_button:stock.invoice_onshipping,init,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice.partner,partner_id:0
+#: field:report.account.invoice.partner.product,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree_all
+msgid "report.account.invoice.tree"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Open"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree_all
+msgid "report.account.invoice.product.tree"
+msgstr ""
+
diff --git a/addons/sale_margin/i18n/sale_margin.pot b/addons/sale_margin/i18n/sale_margin.pot
new file mode 100644
index 00000000000..424a1c74b3f
--- /dev/null
+++ b/addons/sale_margin/i18n/sale_margin.pot
@@ -0,0 +1,367 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * sale_margin
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 5.0.6\n"
+"Report-Msgid-Bugs-To: support@openerp.com\n"
+"POT-Creation-Date: 2009-11-25 14:28:11+0000\n"
+"PO-Revision-Date: 2009-11-25 14:28:11+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: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Refund"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_product
+msgid "report.account.invoice.product"
+msgstr ""
+
+#. module: sale_margin
+#: constraint:ir.model:0
+msgid "The Object name must start with x_ and not contain any special character !"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_product
+msgid "Invoices by Product"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Customer Invoice"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_view:stock.invoice_onshipping,init:0
+msgid "Create invoices"
+msgstr ""
+
+#. module: sale_margin
+#: constraint:ir.ui.view:0
+msgid "Invalid XML for View Architecture!"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner_product
+msgid "report.account.invoice.partner.product"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Invoice"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,state:0
+#: field:report.account.invoice.category,state:0
+#: field:report.account.invoice.partner,state:0
+#: field:report.account.invoice.partner.product,state:0
+#: field:report.account.invoice.product,state:0
+msgid "State"
+msgstr ""
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Create Invoice"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: sale_margin
+#: constraint:ir.actions.act_window:0
+msgid "Invalid model name in the action definition."
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_month_product
+msgid "All Months"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_product_tree_all
+msgid "report.account.invoice.partner.product.tree"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,type:0
+#: field:report.account.invoice.category,type:0
+#: field:report.account.invoice.partner,type:0
+#: field:report.account.invoice.partner.product,type:0
+#: field:report.account.invoice.product,type:0
+#: wizard_field:stock.invoice_onshipping,init,type:0
+msgid "Type"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,journal_id:0
+msgid "Destination Journal"
+msgstr ""
+
+#. module: sale_margin
+#: view:stock.picking:0
+msgid "Supplier Invoices"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice.partner.product,product_id:0
+#: field:report.account.invoice.product,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.partner:0
+msgid "Invoices by partner"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.category:0
+msgid "Invoices by category"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Paid"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.wizard,name:sale_margin.wizard_picking_invoice_create
+#: wizard_button:stock.invoice_onshipping,init,create_invoice:0
+msgid "Create invoice"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_category_tree_all
+msgid "report.account.invoice.category.tree"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner_product
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner_product
+msgid "Invoices by Partner and Product"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_category
+msgid "report.account.invoice.category"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_this_month_product
+msgid "This Month"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice.category,categ_id:0
+msgid "Categories"
+msgstr ""
+
+#. module: sale_margin
+#: field:account.invoice.line,cost_price:0
+#: field:report.account.invoice,cost_price:0
+#: field:report.account.invoice.category,cost_price:0
+#: field:report.account.invoice.partner,cost_price:0
+#: field:report.account.invoice.partner.product,cost_price:0
+#: field:report.account.invoice.product,cost_price:0
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,group:0
+msgid "Group by partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice_partner
+msgid "report.account.invoice.partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_partner
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_partner
+msgid "Invoices by Partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_category
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_category
+msgid "Invoices by Category"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.partner.product:0
+msgid "Invoices by partner and product"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,amount:0
+#: field:report.account.invoice.category,amount:0
+#: field:report.account.invoice.partner,amount:0
+#: field:report.account.invoice.partner.product,amount:0
+#: field:report.account.invoice.product,amount:0
+msgid "Amount"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_field:stock.invoice_onshipping,init,invoice_date:0
+msgid "Invoiced date"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,type:0
+#: selection:report.account.invoice.category,type:0
+#: selection:report.account.invoice.partner,type:0
+#: selection:report.account.invoice.partner.product,type:0
+#: selection:report.account.invoice.product,type:0
+msgid "Supplier Refund"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_partner_tree_all
+msgid "report.account.invoice.partner.tree"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,margin:0
+#: field:report.account.invoice.category,margin:0
+#: field:report.account.invoice.partner,margin:0
+#: field:report.account.invoice.partner.product,margin:0
+#: field:report.account.invoice.product,margin:0
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,quantity:0
+#: field:report.account.invoice.category,quantity:0
+#: field:report.account.invoice.partner,quantity:0
+#: field:report.account.invoice.partner.product,quantity:0
+#: field:report.account.invoice.product,quantity:0
+msgid "Quantity"
+msgstr ""
+
+#. module: sale_margin
+#: view:report.account.invoice.product:0
+msgid "Invoices by product"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.module.module,shortdesc:sale_margin.module_meta_information
+msgid "Margins in Sale Orders"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_report_account_invoice
+msgid "report.account.invoice"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_all_invoice_by_invoices
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_by_invoices
+#: view:report.account.invoice:0
+#: view:stock.picking:0
+#: field:stock.picking,invoice_ids:0
+msgid "Invoices"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Pro-forma"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice,name:0
+#: field:report.account.invoice.category,name:0
+#: field:report.account.invoice.partner,name:0
+#: field:report.account.invoice.partner.product,name:0
+#: field:report.account.invoice.product,name:0
+msgid "Month"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Canceled"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.ui.menu,name:sale_margin.menu_report_account_invoice_product
+msgid "Invoice"
+msgstr ""
+
+#. module: sale_margin
+#: wizard_button:stock.invoice_onshipping,init,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: sale_margin
+#: field:report.account.invoice.partner,partner_id:0
+#: field:report.account.invoice.partner.product,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_tree_all
+msgid "report.account.invoice.tree"
+msgstr ""
+
+#. module: sale_margin
+#: selection:report.account.invoice,state:0
+#: selection:report.account.invoice.category,state:0
+#: selection:report.account.invoice.partner,state:0
+#: selection:report.account.invoice.partner.product,state:0
+#: selection:report.account.invoice.product,state:0
+msgid "Open"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree
+#: model:ir.actions.act_window,name:sale_margin.action_report_account_invoice_product_tree_all
+msgid "report.account.invoice.product.tree"
+msgstr ""
+
diff --git a/addons/sale_margin/invoice_margin.py b/addons/sale_margin/invoice_margin.py
new file mode 100644
index 00000000000..120c2d6c293
--- /dev/null
+++ b/addons/sale_margin/invoice_margin.py
@@ -0,0 +1,47 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+#
+# 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
+import pooler
+from tools import config
+import time
+
+class account_invoice_line(osv.osv):
+ _name = "account.invoice.line"
+ _inherit = "account.invoice.line"
+ _columns = {
+ 'cost_price': fields.float('Cost Price', digits=(16, 2)),
+ }
+ def write(self, cr, uid, ids, vals, context={}):
+ if vals.get('product_id' , False):
+ res=self.pool.get('product.product').read(cr, uid, [vals['product_id']], ['standard_price'])
+ vals['cost_price']=res[0]['standard_price']
+ return super(account_invoice_line, self).write(cr, uid, ids, vals, context)
+
+ def create(self, cr, uid, vals, context={}):
+ if vals.get('product_id',False):
+ res=self.pool.get('product.product').read(cr, uid, [vals['product_id']], ['standard_price'])
+ vals['cost_price']=res[0]['standard_price']
+ return super(account_invoice_line, self).create(cr, uid, vals, context)
+account_invoice_line()
+
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/sale_margin/report_margin.py b/addons/sale_margin/report_margin.py
new file mode 100644
index 00000000000..a318a6c17b8
--- /dev/null
+++ b/addons/sale_margin/report_margin.py
@@ -0,0 +1,90 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+#
+# 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
+import pooler
+from tools import config
+import time
+import tools
+
+
+
+class report_account_invoice_product(osv.osv):
+ _name = 'report.account.invoice.product'
+ _auto = False
+ _description = "Invoice Statistics"
+ _columns = {
+ 'date': fields.date('Date', readonly=True),
+ 'year': fields.char('Year', size=4, readonly=True),
+ 'day': fields.char('Day', size=128, readonly=True),
+ 'month':fields.selection([('01','January'), ('02','February'), ('03','March'), ('04','April'),
+ ('05','May'), ('06','June'), ('07','July'), ('08','August'), ('09','September'),
+ ('10','October'), ('11','November'), ('12','December')], 'Month',readonly=True),
+ 'type': fields.selection([
+ ('out_invoice','Customer Invoice'),
+ ('in_invoice','Supplier Invoice'),
+ ('out_refund','Customer Refund'),
+ ('in_refund','Supplier Refund'),
+ ],'Type', readonly=True),
+ 'state': fields.selection([
+ ('draft','Draft'),
+ ('proforma','Pro-forma'),
+ ('open','Open'),
+ ('paid','Paid'),
+ ('cancel','Canceled')
+ ],'State', readonly=True),
+ 'product_id': fields.many2one('product.product', 'Product', readonly=True),
+ 'amount': fields.float('Amount', readonly=True),
+ 'cost_price': fields.float('Cost Price', readonly=True),
+ 'margin': fields.float('Margin', readonly=True),
+ 'categ_id': fields.many2one('product.category', 'Categories', readonly=True),
+ 'quantity': fields.float('Quantity', readonly=True),
+ 'partner_id': fields.many2one('res.partner', 'Partner', readonly=True),
+ }
+ def init(self, cr):
+ tools.drop_view_if_exists(cr, 'report_account_invoice_product')
+ cr.execute("""
+ create or replace view report_account_invoice_product as (
+ select
+ min(l.id) as id,
+ i.create_date as date,
+ to_char(date_trunc('day',i.date_invoice), 'YYYY') as year,
+ to_char(date_trunc('day',i.date_invoice), 'MM') as month,
+ to_char(date_trunc('day',i.date_invoice), 'YYYY-MM-DD') as day,
+ i.type,
+ i.state,
+ l.product_id,
+ t.categ_id,
+ i.partner_id,
+ sum(l.quantity * l.price_unit * (1.0 - l.discount/100.0)) as amount,
+ sum(l.quantity * l.cost_price) as cost_price,
+ sum((l.quantity * l.price_unit * (1.0 - l.discount/100.0) - (l.quantity * l.cost_price))) as margin,
+ sum(l.quantity) as quantity
+ from account_invoice i
+ left join account_invoice_line l on (i.id = l.invoice_id)
+ left join product_product p on (p.id = l.product_id)
+ left join product_template t on (t.id = p.product_tmpl_id)
+ group by t.categ_id,i.partner_id,l.product_id, i.date_invoice, i.type, i.state,i.create_date
+ )
+ """)
+report_account_invoice_product()
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/sale_margin/report_margin_view.xml b/addons/sale_margin/report_margin_view.xml
new file mode 100644
index 00000000000..b22c2e28801
--- /dev/null
+++ b/addons/sale_margin/report_margin_view.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0"?>
+<openerp>
+ <data>
+
+ <record model="ir.ui.view" id="view_report_account_invoice_tree">
+ <field name="name">report.account.invoice.product.tree</field>
+ <field name="model">report.account.invoice.product</field>
+ <field name="type">tree</field>
+ <field name="arch" type="xml">
+ <tree string="Invoices by product">
+ <field name="date"/>
+ <field name="year" invisible="1" />
+ <field name="month" invisible="1"/>
+ <field name="day" invisible="1"/>
+ <field name="type"/>
+ <field name="state"/>
+ <field name="product_id" invisible="1" />
+ <field name="partner_id"/>
+ <field name="categ_id" invisible="1" />
+ <field name="amount"/>
+ <field name="cost_price"/>
+ <field name="margin"/>
+ <field name="quantity"/>
+ </tree>
+ </field>
+ </record>
+
+ <record id="view_report_account_invoice_filter" model="ir.ui.view">
+ <field name="name">account.invoice.product.filter</field>
+ <field name="model">report.account.invoice.product</field>
+ <field name="type">search</field>
+ <field name="arch" type="xml">
+ <search string="Search Margin">
+ <group col="10" colspan="4">
+ <filter icon="terp-account" string="This Year" domain="[('year','=',time.strftime('%%Y'))]" help="All Months Sales by Margin"/>
+ <filter icon="terp-account" string="This Month" domain="[('month','=',time.strftime('%%m'))]" help="This Months Sales by Margin"/>
+ <filter string="Draft" icon="terp-account" domain="[('state','=','draft')]" help="Draft Invoices"/>
+ <filter string="Pro-forma" icon="terp-account" domain="[('state','=','proforma')]" help="Pro-forma Invoices"/>
+ <filter string="Current" icon="terp-account" domain="[('state', '=' ,'open')]" help="open Invoices"/>
+ <filter string="Done" icon="terp-account" domain="[('state','=','paid')]" help="Done Invoices"/>
+ </group>
+ <newline/>
+ <group expand="1" string="Group By..." colspan="4" col="10">
+ <filter string="Partner" icon="terp-account" context="{'group_by':'partner_id'}"/>
+ <filter string="Product" icon="terp-account" context="{'group_by':'product_id'}"/>
+ <filter string="Category" icon="terp-account" context="{'group_by':'categ_id'}"/>
+ <filter string="State" icon="terp-account" context="{'group_by':'state'}"/>
+ <filter string="Day" icon="terp-account" context="{'group_by':'day'}"/>
+ <filter string="Month" icon="terp-account" context="{'group_by':'month'}"/>
+ <filter string="Year" icon="terp-account" context="{'group_by':'year'}"/>
+ </group>
+ <newline/>
+ <group expand="0" string="Extended options..." groups="base.group_extended">
+ <field name="date" string="Date Invoiced"/>
+ <separator orientation="vertical"/>
+ <field name="partner_id" widget="selection"/>
+ <field name="amount" />
+ <field name="state"/>
+ <newline/>
+ <separator orientation="vertical"/>
+ <field name="product_id"/>
+ <field name="categ_id"/>
+ </group>
+ </search>
+ </field>
+ </record>
+
+ <record id="view_report_account_invoice_graph" model="ir.ui.view">
+ <field name="name">report.account.invoice.product.graph</field>
+ <field name="model">report.account.invoice.product</field>
+ <field name="type">graph</field>
+ <field name="arch" type="xml">
+ <graph string="Invoice by Partner" type="pie">
+ <field name="partner_id"/>
+ <field name="margin"/>
+ <field name="amount"/>
+ </graph>
+ </field>
+ </record>
+
+ <record id="action_report_account_invoice_report" model="ir.actions.act_window">
+ <field name="name">Invoice Analysis</field>
+ <field name="res_model">report.account.invoice.product</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,graph</field>
+ <field name="context">{"search_default_At Date":1,'group_by_no_leaf':1,'group_by':[]}</field>
+ <field name="search_view_id" ref="view_report_account_invoice_filter"/>
+ </record>
+
+ <menuitem name="Invoice Report" id="menu_report_account_invoice_product" parent="account.menu_finance_reporting"/>
+
+ <menuitem name="Invoice" id="menu_report_account_invoice_reoirt" parent="menu_report_account_invoice_product" action="action_report_account_invoice_report"/>
+ </data>
+</openerp>
diff --git a/addons/sale_margin/sale_margin.py b/addons/sale_margin/sale_margin.py
new file mode 100644
index 00000000000..4d86054c3c0
--- /dev/null
+++ b/addons/sale_margin/sale_margin.py
@@ -0,0 +1,81 @@
+##############################################################################
+#
+# OpenERP, Open Source Management Solution
+# Copyright (C) 2004-2009 Tiny SPRL (<http://tiny.be>).
+#
+# 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
+import pooler
+from tools import config
+import time
+
+class sale_order_line(osv.osv):
+ _name = "sale.order.line"
+ _inherit = "sale.order.line"
+ def _product_margin(self, cr, uid, ids, field_name, arg, context):
+ res = {}
+ for line in self.browse(cr, uid, ids):
+ res[line.id] = 0
+ if line.product_id:
+ if line.purchase_price:
+ res[line.id] = round((line.price_unit*line.product_uos_qty*(100.0-line.discount)/100.0) -(line.purchase_price*line.product_uos_qty),2)
+ else:
+ res[line.id] = round((line.price_unit*line.product_uos_qty*(100.0-line.discount)/100.0) -(line.product_id.standard_price*line.product_uos_qty),2)
+ return res
+
+ _columns = {
+ 'margin': fields.function(_product_margin, method=True, string='Margin', store=True),
+ 'purchase_price': fields.float('Cost Price', digits=(16,2))
+ }
+sale_order_line()
+
+class sale_order(osv.osv):
+ _inherit = "sale.order"
+ def _product_margin(self, cr, uid, ids, field_name, arg, context):
+ result = {}
+ for sale in self.browse(cr, uid, ids, context=context):
+ result[sale.id] = 0.0
+ for line in sale.order_line:
+ result[sale.id] += line.margin or 0.0
+ return result
+
+ _columns = {
+ 'margin': fields.function(_product_margin, method=True, string='Margin', store=True),
+ }
+sale_order()
+
+class stock_picking(osv.osv):
+ _inherit = 'stock.picking'
+
+ _columns = {
+ 'invoice_ids': fields.many2many('account.invoice', 'picking_invoice_rel', 'picking_id', 'invoice_id', 'Invoices', domain=[('type','=','in_invoice')]),
+ }
+
+ def create_invoice(self, cr, uid, ids, *args):
+ # need to carify with new requirement
+ res = False
+ invoice_ids = []
+ margin_deduce = 0.0
+ picking_obj = self.pool.get('stock.picking')
+ picking_obj.write(cr, uid, ids, {'invoice_state' : '2binvoiced'})
+ res = picking_obj.action_invoice_create(cr, uid, ids, type='out_invoice', context={})
+ invoice_ids = res.values()
+ picking_obj.write(cr, uid, ids,{'invoice_ids':[[6,0,invoice_ids]]})
+ return True
+stock_picking()
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+
diff --git a/addons/sale_margin/sale_margin_view.xml b/addons/sale_margin/sale_margin_view.xml
new file mode 100644
index 00000000000..1b46a850df8
--- /dev/null
+++ b/addons/sale_margin/sale_margin_view.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+<data>
+
+ <record model="ir.ui.view" id="sale_margin_sale_order">
+ <field name="name">sale.order.margin.view.form</field>
+ <field name="type">form</field>
+ <field name="model">sale.order</field>
+ <field name="inherit_id" ref="sale.view_order_form" />
+ <field name="arch" type="xml">
+ <field name="amount_total" position="after">
+ <field name="margin"/>
+ </field>
+ </field>
+ </record>
+ <record model="ir.ui.view" id="sale_margin_sale_order_tree">
+ <field name="name">sale.order.margin.view.tree</field>
+ <field name="type">tree</field>
+ <field name="model">sale.order</field>
+ <field name="inherit_id" ref="sale.view_order_tree" />
+ <field name="arch" type="xml">
+ <field name="state" position="after">
+ <field name="margin"/>
+ </field>
+ </field>
+ </record>
+
+ <record model="ir.ui.view" id="sale_margin_sale_order_line_tree">
+ <field name="name">sale.order.margin.line.view.tree</field>
+ <field name="type">tree</field>
+ <field name="model">sale.order.line</field>
+ <field name="inherit_id" ref="sale.view_order_line_tree" />
+ <field name="arch" type="xml">
+ <field name="price_subtotal" position="after">
+ <field name="margin"/>
+ </field>
+ </field>
+ </record>
+
+
+ <record model="ir.ui.view" id="view_picking_margin_out_form">
+ <field name="name">picking.margin.view.form</field>
+ <field name="type">form</field>
+ <field name="model">stock.picking</field>
+ <field name="inherit_id" ref="stock.view_picking_out_form" />
+ <field name="arch" type="xml">
+ <notebook colspan="4">
+ <page string="Supplier Invoices">
+ <separator string="Invoices" colspan="4"/>
+ <field colspan="4" name="invoice_ids" nolabel="1"/>
+ <group col="10" colspan="4">
+ <label colspan="6"/>
+ <button name="create_invoice" icon='gtk-execute' string="Create Invoice" type="object"/>
+ </group>
+ </page>
+ </notebook>
+ </field>
+ </record>
+
+</data>
+</openerp>
diff --git a/addons/sale_margin/security/ir.model.access.csv b/addons/sale_margin/security/ir.model.access.csv
new file mode 100644
index 00000000000..77b73303ec8
--- /dev/null
+++ b/addons/sale_margin/security/ir.model.access.csv
@@ -0,0 +1,6 @@
+"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
+"access_report_account_invoice_product","report.account.invoice.product","model_report_account_invoice_product","account.group_account_invoice",1,1,1,1
+"access_report_account_invoice_category","report.account.invoice.category","model_report_account_invoice_category","account.group_account_invoice",1,1,1,1
+"access_report_account_invoice_partner","report.account.invoice.partner","model_report_account_invoice_partner","account.group_account_invoice",1,1,1,1
+"access_report_account_invoice_partner_product","report.account.invoice.partner.product","model_report_account_invoice_partner_product","account.group_account_invoice",1,1,1,1
+"access_report_account_invoice","report.account.invoice","model_report_account_invoice","account.group_account_invoice",1,1,1,1
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 6c3d09f2895..2dd585d6364 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -786,7 +786,8 @@ class stock_picking(osv.osv):
'name': (invoice.name or '') + ', ' + (picking.name or ''),
'origin': (invoice.origin or '') + ', ' + (picking.name or '') + (picking.origin and (':' + picking.origin) or ''),
'comment': (comment and (invoice.comment and invoice.comment+"\n"+comment or comment)) or (invoice.comment and invoice.comment or ''),
- 'date_invoice':context.get('date_inv',False)
+ 'date_invoice':context.get('date_inv',False),
+ 'user_id':picking.sale_id.user_id and picking.sale_id.user_id.id or False
}
invoice_obj.write(cr, uid, [invoice_id], invoice_vals, context=context)
else:
@@ -803,6 +804,7 @@ class stock_picking(osv.osv):
'fiscal_position': partner.property_account_position.id,
'date_invoice': context.get('date_inv',False),
'company_id': picking.company_id.id,
+
}
cur_id = self.get_currency_id(cr, uid, picking)
if cur_id: