openerp-community team mailing list archive
-
openerp-community team
-
Mailing list archive
-
Message #04642
lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
Ronald Portier (Therp) has proposed merging lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes.
Requested reviews:
Product Core Editors (product-core-editors)
Related bugs:
Bug #1272282 in OpenERP Product Attributes: "Fixed price module not installable"
https://bugs.launchpad.net/openerp-product-attributes/+bug/1272282
For more details, see:
https://code.launchpad.net/~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price/+merge/203348
Replace original code to make it compatible with 7.0.
I used the trick to have -1 for the price discount and put the fixed price in price_surcharge.
This will create a price: (base_price * (1 + price_discount)) + price_surcharge =
(base_price * (1 -1)) + price_surcharge = price_surcharge.
Therefore OpenERP will do all its normal computations (including currency-conversions), but none of those computations needs to be modified, adopted or overruled.
--
https://code.launchpad.net/~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price/+merge/203348
Your team OpenERP Community is subscribed to branch lp:openerp-product-attributes.
=== modified file 'product_pricelist_fixed_price/AUTHORS.txt'
--- product_pricelist_fixed_price/AUTHORS.txt 2011-04-01 10:14:05 +0000
+++ product_pricelist_fixed_price/AUTHORS.txt 2014-01-27 15:19:50 +0000
@@ -1,1 +1,3 @@
Lorenzo Battistini <lorenzo.battistini@xxxxxxxxxxxx>
+Ronald Portier <ronald@xxxxxxxx>
+
=== modified file 'product_pricelist_fixed_price/__init__.py'
--- product_pricelist_fixed_price/__init__.py 2011-04-01 10:14:05 +0000
+++ product_pricelist_fixed_price/__init__.py 2014-01-27 15:19:50 +0000
@@ -1,22 +1,3 @@
# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2011 Domsense s.r.l. (<http://www.domsense.com>).
-#
-# 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 . import model
-import pricelist
=== modified file 'product_pricelist_fixed_price/__openerp__.py'
--- product_pricelist_fixed_price/__openerp__.py 2013-01-21 06:49:06 +0000
+++ product_pricelist_fixed_price/__openerp__.py 2014-01-27 15:19:50 +0000
@@ -3,6 +3,7 @@
#
# OpenERP, Open Source Management Solution
# Copyright (C) 2011 Domsense s.r.l. (<http://www.domsense.com>).
+# 2014 Therp BV (<http://www.therp.nl>).
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -19,20 +20,21 @@
#
##############################################################################
-
{
"name": "Price List Fixed Price",
- "version": "1.0",
+ "version": "2.0",
'category': 'Generic Modules/Inventory Control',
"depends": ["product"],
- "author": "Agile Business Group & Domsense",
- "description": """This module allows to specify a fixed price for price list rules. So, if the rule is based on 'fixed price', this price will be used without any computation""",
- 'website': 'http://www.agilebg.com',
- 'init_xml': [],
- 'update_xml': [
- 'pricelist_view.xml',
+ "author": "Product Addons Community",
+ "description": """This module allows to specify a fixed price for price
+ list rules.""",
+ 'website': 'https://launchpad.net/openerp-product-attributes',
+ 'data': [
+ 'view/pricelist_view.xml',
+ 'view/pricelist_menu.xml',
],
'demo_xml': [],
- 'installable': False,
+ 'installable': True,
'active': False,
}
+
=== removed file 'product_pricelist_fixed_price/i18n/ca.po'
--- product_pricelist_fixed_price/i18n/ca.po 2012-12-05 05:42:11 +0000
+++ product_pricelist_fixed_price/i18n/ca.po 1970-01-01 00:00:00 +0000
@@ -1,65 +0,0 @@
-# Catalan translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-03-25 10:08+0000\n"
-"PO-Revision-Date: 2012-04-18 23:39+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Catalan <ca@xxxxxx>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-05 05:42+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Max. Margin"
-msgstr "Marge màxim"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Min. Margin"
-msgstr "Marge mínim"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Rounding Method"
-msgstr "Mètode arrodoniment"
-
-#. module: product_pricelist_fixed_price
-#: constraint:product.pricelist.item:0
-msgid ""
-"Error ! You cannot assign the Main Pricelist as Other Pricelist in PriceList "
-"Item!"
-msgstr ""
-"Error! No podeu assignar la tarifa principal com una altre tarifa en un "
-"element de la tarifa."
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist
-msgid "Pricelist"
-msgstr "Tarifa"
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:97
-#, python-format
-msgid "Warning !"
-msgstr "Atenció!"
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_item
-msgid "Pricelist item"
-msgstr "Element de la tarifa"
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:32
-#: field:product.pricelist.item,fixed_price:0
-#, python-format
-msgid "Fixed Price"
-msgstr "Preu fix"
=== removed file 'product_pricelist_fixed_price/i18n/de.po'
--- product_pricelist_fixed_price/i18n/de.po 2012-12-05 05:42:11 +0000
+++ product_pricelist_fixed_price/i18n/de.po 1970-01-01 00:00:00 +0000
@@ -1,65 +0,0 @@
-# German translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-03-25 10:08+0000\n"
-"PO-Revision-Date: 2011-05-02 07:47+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: German <de@xxxxxx>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-05 05:42+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Max. Margin"
-msgstr "Max. Spanne"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Min. Margin"
-msgstr "Min. Spanne"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Rounding Method"
-msgstr "Rundungsverfahren"
-
-#. module: product_pricelist_fixed_price
-#: constraint:product.pricelist.item:0
-msgid ""
-"Error ! You cannot assign the Main Pricelist as Other Pricelist in PriceList "
-"Item!"
-msgstr ""
-"Fehler! Sie können die Basispreisliste nicht als alternative Preisliste in "
-"einem Preislisteneintrag zuweisen."
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist
-msgid "Pricelist"
-msgstr "Preisliste"
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:97
-#, python-format
-msgid "Warning !"
-msgstr "Warnung!"
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_item
-msgid "Pricelist item"
-msgstr "Preisliste Einzelposition"
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:32
-#: field:product.pricelist.item,fixed_price:0
-#, python-format
-msgid "Fixed Price"
-msgstr "Festpreis"
=== removed file 'product_pricelist_fixed_price/i18n/es.po'
--- product_pricelist_fixed_price/i18n/es.po 2012-12-05 05:42:11 +0000
+++ product_pricelist_fixed_price/i18n/es.po 1970-01-01 00:00:00 +0000
@@ -1,65 +0,0 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
-# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: openobject-addons\n"
-"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2011-03-25 10:08+0000\n"
-"PO-Revision-Date: 2011-08-26 23:18+0000\n"
-"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
-"Language-Team: Spanish <es@xxxxxx>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-05 05:42+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Max. Margin"
-msgstr "Margen máximo"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Min. Margin"
-msgstr "Margen mínimo"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Rounding Method"
-msgstr "Método redondeo"
-
-#. module: product_pricelist_fixed_price
-#: constraint:product.pricelist.item:0
-msgid ""
-"Error ! You cannot assign the Main Pricelist as Other Pricelist in PriceList "
-"Item!"
-msgstr ""
-"¡Error! No puede asignar la tarifa principal como otra tarifa en un "
-"elemento de la tarifa."
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist
-msgid "Pricelist"
-msgstr "Lista de Precios"
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:97
-#, python-format
-msgid "Warning !"
-msgstr "¡Atención!"
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_item
-msgid "Pricelist item"
-msgstr "Elemento de la tarifa"
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:32
-#: field:product.pricelist.item,fixed_price:0
-#, python-format
-msgid "Fixed Price"
-msgstr "Precio fijo"
=== removed file 'product_pricelist_fixed_price/i18n/it.po'
--- product_pricelist_fixed_price/i18n/it.po 2012-12-05 05:42:11 +0000
+++ product_pricelist_fixed_price/i18n/it.po 1970-01-01 00:00:00 +0000
@@ -1,64 +0,0 @@
-# Translation of OpenERP Server.
-# This file contains the translation of the following modules:
-# * product_pricelist_fixed_price
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: OpenERP Server 6.0.1\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2011-03-25 10:08+0000\n"
-"PO-Revision-Date: 2011-03-31 12:02+0000\n"
-"Last-Translator: Lorenzo Battistini <lorenzo.battistini@xxxxxxxxxxx>\n"
-"Language-Team: \n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-05 05:42+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Max. Margin"
-msgstr "Margine Massimo"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Min. Margin"
-msgstr "Margine Minimo"
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Rounding Method"
-msgstr "Metodo Arrotondamento"
-
-#. module: product_pricelist_fixed_price
-#: constraint:product.pricelist.item:0
-msgid ""
-"Error ! You cannot assign the Main Pricelist as Other Pricelist in PriceList "
-"Item!"
-msgstr ""
-"Errore ! Non è possibile assegnare il listino principale come 'altro "
-"listino' nell'elemento di listino!"
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist
-msgid "Pricelist"
-msgstr "Listino Prezzi"
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:97
-#, python-format
-msgid "Warning !"
-msgstr "attenzione !"
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_item
-msgid "Pricelist item"
-msgstr "Oggetto Listino"
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:32
-#: field:product.pricelist.item,fixed_price:0
-#, python-format
-msgid "Fixed Price"
-msgstr "Prezzo fisso"
=== added file 'product_pricelist_fixed_price/i18n/nl.po'
--- product_pricelist_fixed_price/i18n/nl.po 1970-01-01 00:00:00 +0000
+++ product_pricelist_fixed_price/i18n/nl.po 2014-01-27 15:19:50 +0000
@@ -0,0 +1,175 @@
+# Translation of OpenERP Server.
+# This file contains the translation of the following modules:
+# * product_pricelist_fixed_price
+# <ronald@xxxxxxxx> <>, 2014.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-01-27 14:11+0000\n"
+"PO-Revision-Date: 2014-01-27 15:37+0100\n"
+"Last-Translator: <ronald@xxxxxxxx>\n"
+"Language-Team:\n"
+"Language: nl_NL\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: \n"
+"Plural-Forms: \n"
+"X-Generator: Gtranslator 2.91.6\n"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.actions.act_window,help:product_pricelist_fixed_price.product_fixedprice_version_action
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a pricelist version.\n"
+" </p><p>\n"
+" There can be more than one version of a pricelist, each of\n"
+" these must be valid during a certain period of time. Some\n"
+" examples of versions: Main Prices, 2010, 2011, Summer "
+"Sales,\n"
+" etc.\n"
+" </p>\n"
+" "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Klik om een prijslijst versie toe te voegen.\n"
+" </p><p>\n"
+" Er kan meer dan één versie van een prijslijst zijn. Ieder\n"
+" daarvan moet een bepaalde tijd geldig zijn. Voorbeelden van\n"
+" versies: Standaard prijzen, 2010, 2011, Zomer-uitverkoop, "
+"etc.\n"
+" </p>\n"
+"..............."
+
+#. module: product_pricelist_fixed_price
+#: model:ir.actions.act_window,help:product_pricelist_fixed_price.product_fixedprice_action
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a pricelist.\n"
+" </p><p>\n"
+" There can be more than one version of a pricelist, each of\n"
+" these must be valid during a certain period of time. Some\n"
+" examples of versions: Main Prices, 2010, 2011, Summer "
+"Sales,\n"
+" etc.\n"
+" </p>\n"
+" "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Klik om een prijslijst toe te voegen.\n"
+" </p><p>\n"
+" Er kan meer dan één versie van een prijslijst zijn. Ieder\n"
+" daarvan moet een bepaalde tijd geldig zijn. Voorbeelden van\n"
+" versies: Standaard prijzen, 2010, 2011, Zomer-uitverkoop, "
+"etc.\n"
+" </p>"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist.version:0
+msgid "Fixed Pricelist Version"
+msgstr "Vaste prijslijst versie"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.actions.act_window,name:product_pricelist_fixed_price.product_fixedprice_version_action
+#: model:ir.ui.menu,name:product_pricelist_fixed_price.product_fixedprice_version_menu
+msgid "Fixed Pricelist versions"
+msgstr "Vaste prijslijst versies"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.actions.act_window,name:product_pricelist_fixed_price.product_fixedprice_action
+#: model:ir.ui.menu,name:product_pricelist_fixed_price.product_fixedprice_menu
+msgid "Fixed Pricelists"
+msgstr "Vaste prijslijsten"
+
+#. module: product_pricelist_fixed_price
+#: field:product.pricelist,fixed_price:0
+#: field:product.pricelist.item,fixed_price:0
+#: field:product.pricelist.version,fixed_price:0
+msgid "Fixed price"
+msgstr "Vaste prijs"
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:80
+#, python-format
+msgid "Fixed price item only valid on fixed pricelist."
+msgstr "Vaste prijs regel alleen geldig op een vaste prijslijst."
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_version.py:26
+#, python-format
+msgid "Fixed price version only valid on fixed pricelist."
+msgstr "Vaste prijsversie alleen geldig voor een vaste prijslijst"
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:73
+#, python-format
+msgid "Fixed pricelist should have fixed price items."
+msgstr "Vaste prijslijst moet vaste prijs regels hebben."
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_version.py:19
+#, python-format
+msgid "Fixed pricelist should have fixed price versions."
+msgstr "Vaste prijslijst moet vaste prijs versies hebben."
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist.item:0
+msgid "Price"
+msgstr "Prijs"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist
+msgid "Pricelist"
+msgstr "Prijslijst"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_version
+msgid "Pricelist Version"
+msgstr "Prijslijst versie"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_item
+msgid "Pricelist item"
+msgstr "Prijslijst regel"
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:85
+#, python-format
+msgid "Product required for fixed price item."
+msgstr "Produkt verplicht op vaste prijs regel"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist.item:0
+msgid "Products Fixed Price Items"
+msgstr "Vaste prijs regels voor producten"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist:0
+msgid "Products Fixed Price List"
+msgstr "Vaste prijslijst voor produkten"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist:0
+msgid "Products Fixed Price Search"
+msgstr "Zoeken in vaste prijzen voor produkten"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist:0
+msgid "Products Price"
+msgstr "Produktprijzen"
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:72
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:79
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:84
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_version.py:18
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_version.py:25
+#, python-format
+msgid "Validation error!"
+msgstr "Validatie fout!"
+
+#. module: product_pricelist_fixed_price
+#: constraint:product.pricelist.item:0
+msgid "invalid values for fixed price"
+msgstr "Ongeldige waarden voor vaste prijs"
=== modified file 'product_pricelist_fixed_price/i18n/product_pricelist_fixed_price.pot'
--- product_pricelist_fixed_price/i18n/product_pricelist_fixed_price.pot 2011-04-01 10:14:05 +0000
+++ product_pricelist_fixed_price/i18n/product_pricelist_fixed_price.pot 2014-01-27 15:19:50 +0000
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
-"Project-Id-Version: OpenERP Server 6.0.1\n"
-"Report-Msgid-Bugs-To: support@xxxxxxxxxxx\n"
-"POT-Creation-Date: 2011-03-25 10:08+0000\n"
-"PO-Revision-Date: 2011-03-25 10:08+0000\n"
+"Project-Id-Version: OpenERP Server 7.0\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2014-01-27 14:11+0000\n"
+"PO-Revision-Date: 2014-01-27 14:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -16,45 +16,153 @@
"Plural-Forms: \n"
#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Max. Margin"
-msgstr ""
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Min. Margin"
-msgstr ""
-
-#. module: product_pricelist_fixed_price
-#: view:product.pricelist.item:0
-msgid "Rounding Method"
-msgstr ""
-
-#. module: product_pricelist_fixed_price
-#: constraint:product.pricelist.item:0
-msgid "Error ! You cannot assign the Main Pricelist as Other Pricelist in PriceList Item!"
-msgstr ""
+#: model:ir.actions.act_window,help:product_pricelist_fixed_price.product_fixedprice_action
+msgid "<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a pricelist.\n"
+" </p><p>\n"
+" There can be more than one version of a pricelist, each of\n"
+" these must be valid during a certain period of time. Some\n"
+" examples of versions: Main Prices, 2010, 2011, Summer Sales,\n"
+" etc.\n"
+" </p>\n"
+" "
+msgstr "<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a pricelist.\n"
+" </p><p>\n"
+" There can be more than one version of a pricelist, each of\n"
+" these must be valid during a certain period of time. Some\n"
+" examples of versions: Main Prices, 2010, 2011, Summer Sales,\n"
+" etc.\n"
+" </p>\n"
+" "
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:80
+#, python-format
+msgid "Fixed price item only valid on fixed pricelist."
+msgstr "Fixed price item only valid on fixed pricelist."
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_version.py:19
+#, python-format
+msgid "Fixed pricelist should have fixed price versions."
+msgstr "Fixed pricelist should have fixed price versions."
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:72
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:79
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:84
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_version.py:18
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_version.py:25
+#, python-format
+msgid "Validation error!"
+msgstr "Validation error!"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_version
+msgid "Pricelist Version"
+msgstr "Pricelist Version"
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_version.py:26
+#, python-format
+msgid "Fixed price version only valid on fixed pricelist."
+msgstr "Fixed price version only valid on fixed pricelist."
+
+#. module: product_pricelist_fixed_price
+#: model:ir.actions.act_window,help:product_pricelist_fixed_price.product_fixedprice_version_action
+msgid "<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a pricelist version.\n"
+" </p><p>\n"
+" There can be more than one version of a pricelist, each of\n"
+" these must be valid during a certain period of time. Some\n"
+" examples of versions: Main Prices, 2010, 2011, Summer Sales,\n"
+" etc.\n"
+" </p>\n"
+" "
+msgstr "<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a pricelist version.\n"
+" </p><p>\n"
+" There can be more than one version of a pricelist, each of\n"
+" these must be valid during a certain period of time. Some\n"
+" examples of versions: Main Prices, 2010, 2011, Summer Sales,\n"
+" etc.\n"
+" </p>\n"
+" "
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist:0
+msgid "Products Fixed Price Search"
+msgstr "Products Fixed Price Search"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist.version:0
+msgid "Fixed Pricelist Version"
+msgstr "Fixed Pricelist Version"
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:85
+#, python-format
+msgid "Product required for fixed price item."
+msgstr "Product required for fixed price item."
+
+#. module: product_pricelist_fixed_price
+#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_item
+msgid "Pricelist item"
+msgstr "Pricelist item"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist.item:0
+msgid "Products Fixed Price Items"
+msgstr "Products Fixed Price Items"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist:0
+msgid "Products Price"
+msgstr "Products Price"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.actions.act_window,name:product_pricelist_fixed_price.product_fixedprice_action
+#: model:ir.ui.menu,name:product_pricelist_fixed_price.product_fixedprice_menu
+msgid "Fixed Pricelists"
+msgstr "Fixed Pricelists"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist:0
+msgid "Products Fixed Price List"
+msgstr "Products Fixed Price List"
#. module: product_pricelist_fixed_price
#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist
msgid "Pricelist"
-msgstr ""
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:97
-#, python-format
-msgid "Warning !"
-msgstr ""
-
-#. module: product_pricelist_fixed_price
-#: model:ir.model,name:product_pricelist_fixed_price.model_product_pricelist_item
-msgid "Pricelist item"
-msgstr ""
-
-#. module: product_pricelist_fixed_price
-#: code:addons/product_pricelist_fixed_price/pricelist.py:32
+msgstr "Pricelist"
+
+#. module: product_pricelist_fixed_price
+#: constraint:product.pricelist.item:0
+msgid "invalid values for fixed price"
+msgstr "invalid values for fixed price"
+
+#. module: product_pricelist_fixed_price
+#: model:ir.actions.act_window,name:product_pricelist_fixed_price.product_fixedprice_version_action
+#: model:ir.ui.menu,name:product_pricelist_fixed_price.product_fixedprice_version_menu
+msgid "Fixed Pricelist versions"
+msgstr "Fixed Pricelist versions"
+
+#. module: product_pricelist_fixed_price
+#: view:product.pricelist.item:0
+msgid "Price"
+msgstr "Price"
+
+#. module: product_pricelist_fixed_price
+#: field:product.pricelist,fixed_price:0
#: field:product.pricelist.item,fixed_price:0
+#: field:product.pricelist.version,fixed_price:0
+msgid "Fixed price"
+msgstr "Fixed price"
+
+#. module: product_pricelist_fixed_price
+#: code:addons/product_pricelist_fixed_price/model/product_pricelist_item.py:73
#, python-format
-msgid "Fixed Price"
-msgstr ""
+msgid "Fixed pricelist should have fixed price items."
+msgstr "Fixed pricelist should have fixed price items."
=== added directory 'product_pricelist_fixed_price/model'
=== added file 'product_pricelist_fixed_price/model/__init__.py'
--- product_pricelist_fixed_price/model/__init__.py 1970-01-01 00:00:00 +0000
+++ product_pricelist_fixed_price/model/__init__.py 2014-01-27 15:19:50 +0000
@@ -0,0 +1,5 @@
+# -*- encoding: utf-8 -*-
+from . import product_pricelist
+from . import product_pricelist_version
+from . import product_pricelist_item
+
=== added file 'product_pricelist_fixed_price/model/product_pricelist.py'
--- product_pricelist_fixed_price/model/product_pricelist.py 1970-01-01 00:00:00 +0000
+++ product_pricelist_fixed_price/model/product_pricelist.py 2014-01-27 15:19:50 +0000
@@ -0,0 +1,11 @@
+#-*- coding: utf-8 -*-
+from openerp.osv import orm, fields
+
+
+class ProductPricelist(orm.Model):
+ _inherit = 'product.pricelist'
+
+ _columns = {
+ 'fixed_price': fields.boolean('Fixed price'),
+ }
+
=== added file 'product_pricelist_fixed_price/model/product_pricelist_item.py'
--- product_pricelist_fixed_price/model/product_pricelist_item.py 1970-01-01 00:00:00 +0000
+++ product_pricelist_fixed_price/model/product_pricelist_item.py 2014-01-27 15:19:50 +0000
@@ -0,0 +1,97 @@
+#-*- coding: utf-8 -*-
+'''All functionality to enable fixed prices in pricelists.
+A fixed price cannot be changed in a computed price, or the other way
+around.'''
+
+from openerp.osv import orm, fields
+from openerp.tools.translate import _
+
+
+class ProductPricelistItem(orm.Model):
+ _inherit = 'product.pricelist.item'
+
+ def _compute_vals(self, cr, uid, vals, browse_obj=None, context=None):
+ '''Ensure consistent values for fixed pricelists.
+ The passed vals parameter is used for both input and output.'''
+ context = context or {}
+ # First determine wether a fixed price should apply
+ fixed_price = False
+ if browse_obj:
+ fixed_price = browse_obj.fixed_price
+ else:
+ # new record
+ fixed_price = (
+ ('fixed_price' in vals and vals['fixed_price']) or
+ ('default_fixed_price' in vals
+ and vals['default_fixed_price']) or
+ False
+ )
+ if not fixed_price:
+ return
+ # If we get here, we have a fixed price, because we need some
+ # reference to a price in product (even though its influence will be
+ # eliminated by our price_discount), we use the standard price
+ model_model = self.pool.get('ir.model.data')
+ standard_price_type = model_model.get_object_reference(
+ cr, uid, 'product', 'standard_price')[1]
+ vals['price_discount'] = -1.0
+ vals['price_round'] = 0.0
+ vals['base'] = standard_price_type
+
+ def create(self, cr, uid, vals, context=None):
+ '''Make sure fixed pricelist items have consistent values'''
+ self._compute_vals(cr, uid, vals, browse_obj=None, context=context)
+ return super(ProductPricelistItem, self).create(
+ cr, uid, vals, context)
+
+ def write(self, cr, uid, ids, vals, context=None):
+ '''Override write method. We have to take into account that
+ we only get one set of values, but that the change might effect
+ multiple ids. But because the computations we do might be different
+ depending on the current values in the database, we will setup a loop
+ and compute and update each record separately.
+ '''
+ for item_id in ids:
+ browse_records = self.browse(cr, uid, [item_id])
+ browse_obj = browse_records[0]
+ self._compute_vals(
+ cr, uid, vals, browse_obj=browse_obj, context=context)
+ super(ProductPricelistItem, self).write(
+ cr, uid, [item_id], vals, context=context)
+ return True
+
+ _columns = {
+ 'fixed_price': fields.boolean('Fixed price'),
+ }
+
+ def _check_fixed_price(self, cr, uid, ids):
+ '''Raise exception when error found, else return True'''
+ for this_obj in self.browse(cr, uid, ids):
+ if not this_obj.fixed_price:
+ if this_obj.price_version_id.fixed_price:
+ raise orm.except_orm(
+ _('Validation error!'),
+ _('Fixed pricelist should have fixed price items.')
+ )
+ return True
+ # Check values for fixed price item
+ if not this_obj.price_version_id.fixed_price:
+ raise orm.except_orm(
+ _('Validation error!'),
+ _('Fixed price item only valid on fixed pricelist.')
+ )
+ if not this_obj.product_id:
+ raise orm.except_orm(
+ _('Validation error!'),
+ _('Product required for fixed price item.')
+ )
+ # Values for price_discount and price_round will not be checked,
+ # because create and write will automagically set appropiate
+ # values.
+ return True
+
+ _constraints = [
+ (_check_fixed_price,
+ 'invalid values for fixed price', ['fixed_price']),
+ ]
+
=== added file 'product_pricelist_fixed_price/model/product_pricelist_version.py'
--- product_pricelist_fixed_price/model/product_pricelist_version.py 1970-01-01 00:00:00 +0000
+++ product_pricelist_fixed_price/model/product_pricelist_version.py 2014-01-27 15:19:50 +0000
@@ -0,0 +1,30 @@
+#-*- coding: utf-8 -*-
+from openerp.osv import orm, fields
+from openerp.tools.translate import _
+
+
+class ProductPricelistVersion(orm.Model):
+ _inherit = 'product.pricelist.version'
+
+ _columns = {
+ 'fixed_price': fields.boolean('Fixed price'),
+ }
+
+ def _check_fixed_price(self, cr, user, ids):
+ '''Raise exception when error found, else return True'''
+ for this_obj in self.browse(cr, user, ids):
+ if not this_obj.fixed_price:
+ if this_obj.pricelist_id.fixed_price:
+ raise orm.except_orm(
+ _('Validation error!'),
+ _('Fixed pricelist should have fixed price versions.')
+ )
+ return True
+ # Check values for fixed price item
+ if not this_obj.price_version_id.fixed_price:
+ raise orm.except_orm(
+ _('Validation error!'),
+ _('Fixed price version only valid on fixed pricelist.')
+ )
+ return True
+
=== removed file 'product_pricelist_fixed_price/pricelist.py'
--- product_pricelist_fixed_price/pricelist.py 2011-04-01 10:14:05 +0000
+++ product_pricelist_fixed_price/pricelist.py 1970-01-01 00:00:00 +0000
@@ -1,211 +0,0 @@
-# -*- encoding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2011 Domsense s.r.l. (<http://www.domsense.com>).
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-##############################################################################
-
-from osv import fields,osv
-from tools.translate import _
-import decimal_precision as dp
-import time
-from product._common import rounding
-
-class product_pricelist_item(osv.osv):
-
- def _price_field_get(self, cr, uid, context=None):
- result = super(product_pricelist_item, self)._price_field_get(cr, uid, context)
- result.append((-3, _('Fixed Price')))
- return result
-
- _inherit = "product.pricelist.item"
-
- _columns = {
- 'fixed_price': fields.float('Fixed Price',
- digits_compute= dp.get_precision('Sale Price')),
- 'base': fields.selection(_price_field_get, 'Based on', required=True, size=-1, help="The mode for computing the price for this rule."),
- }
-
-product_pricelist_item()
-
-class product_pricelist(osv.osv):
- _inherit = "product.pricelist"
-
- def price_get_multi(self, cr, uid, pricelist_ids, products_by_qty_by_partner, context=None):
-
- def _create_parent_category_list(id, lst):
- if not id:
- return []
- parent = product_category_tree.get(id)
- if parent:
- lst.append(parent)
- return _create_parent_category_list(parent, lst)
- else:
- return lst
- # _create_parent_category_list
-
- if context is None:
- context = {}
-
- date = time.strftime('%Y-%m-%d')
- if 'date' in context:
- date = context['date']
-
- currency_obj = self.pool.get('res.currency')
- product_obj = self.pool.get('product.product')
- product_category_obj = self.pool.get('product.category')
- product_uom_obj = self.pool.get('product.uom')
- supplierinfo_obj = self.pool.get('product.supplierinfo')
- price_type_obj = self.pool.get('product.price.type')
- product_pricelist_version_obj = self.pool.get('product.pricelist.version')
-
- # product.pricelist.version:
- if pricelist_ids:
- pricelist_version_ids = pricelist_ids
- else:
- # all pricelists:
- pricelist_version_ids = self.pool.get('product.pricelist').search(cr, uid, [], context=context)
-
- pricelist_version_ids = list(set(pricelist_version_ids))
- plversions_search_args = [
- ('pricelist_id', 'in', pricelist_version_ids),
- '|',
- ('date_start', '=', False),
- ('date_start', '<=', date),
- '|',
- ('date_end', '=', False),
- ('date_end', '>=', date),
- ]
-
- plversion_ids = product_pricelist_version_obj.search(cr, uid, plversions_search_args)
- if len(pricelist_version_ids) != len(plversion_ids):
- msg = "At least one pricelist has no active version !\nPlease create or activate one."
- raise osv.except_osv(_('Warning !'), _(msg))
-
- # product.product:
- product_ids = [i[0] for i in products_by_qty_by_partner]
- #products = dict([(item['id'], item) for item in product_obj.read(cr, uid, product_ids, ['categ_id', 'product_tmpl_id', 'uos_id', 'uom_id'])])
- products = product_obj.browse(cr, uid, product_ids, context=context)
- products_dict = dict([(item.id, item) for item in products])
-
- # product.category:
- product_category_ids = product_category_obj.search(cr, uid, [])
- product_categories = product_category_obj.read(cr, uid, product_category_ids, ['parent_id'])
- product_category_tree = dict([(item['id'], item['parent_id'][0]) for item in product_categories if item['parent_id']])
-
- results = {}
- for product_id, qty, partner in products_by_qty_by_partner:
- for pricelist_id in pricelist_version_ids:
- price = False
-
- tmpl_id = products_dict[product_id].product_tmpl_id and products_dict[product_id].product_tmpl_id.id or False
-
- categ_id = products_dict[product_id].categ_id and products_dict[product_id].categ_id.id or False
- categ_ids = _create_parent_category_list(categ_id, [categ_id])
- if categ_ids:
- categ_where = '(categ_id IN (' + ','.join(map(str, categ_ids)) + '))'
- else:
- categ_where = '(categ_id IS NULL)'
-
- cr.execute(
- 'SELECT i.*, pl.currency_id '
- 'FROM product_pricelist_item AS i, '
- 'product_pricelist_version AS v, product_pricelist AS pl '
- 'WHERE (product_tmpl_id IS NULL OR product_tmpl_id = %s) '
- 'AND (product_id IS NULL OR product_id = %s) '
- 'AND (' + categ_where + ' OR (categ_id IS NULL)) '
- 'AND price_version_id = %s '
- 'AND (min_quantity IS NULL OR min_quantity <= %s) '
- 'AND i.price_version_id = v.id AND v.pricelist_id = pl.id '
- 'ORDER BY sequence',
- (tmpl_id, product_id, plversion_ids[0], qty))
- res1 = cr.dictfetchall()
- uom_price_already_computed = False
- for res in res1:
- if res:
- if res['base'] == -1:
- if not res['base_pricelist_id']:
- price = 0.0
- else:
- price_tmp = self.price_get(cr, uid,
- [res['base_pricelist_id']], product_id,
- qty, context=context)[res['base_pricelist_id']]
- ptype_src = self.browse(cr, uid, res['base_pricelist_id']).currency_id.id
- price = currency_obj.compute(cr, uid, ptype_src, res['currency_id'], price_tmp, round=False)
- elif res['base'] == -2:
- # this section could be improved by moving the queries outside the loop:
- where = []
- if partner:
- where = [('name', '=', partner) ]
- sinfo = supplierinfo_obj.search(cr, uid,
- [('product_id', '=', tmpl_id)] + where)
- price = 0.0
- if sinfo:
- qty_in_product_uom = qty
- product_default_uom = product_obj.read(cr, uid, [tmpl_id], ['uom_id'])[0]['uom_id'][0]
- seller_uom = supplierinfo_obj.read(cr, uid, sinfo, ['product_uom'])[0]['product_uom'][0]
- if seller_uom and product_default_uom and product_default_uom != seller_uom:
- uom_price_already_computed = True
- qty_in_product_uom = product_uom_obj._compute_qty(cr, uid, product_default_uom, qty, to_uom_id=seller_uom)
- cr.execute('SELECT * ' \
- 'FROM pricelist_partnerinfo ' \
- 'WHERE suppinfo_id IN %s' \
- 'AND min_quantity <= %s ' \
- 'ORDER BY min_quantity DESC LIMIT 1', (tuple(sinfo),qty_in_product_uom,))
- res2 = cr.dictfetchone()
- if res2:
- price = res2['price']
- elif res['base'] == -3:
- price = res['fixed_price']
- else:
- price_type = price_type_obj.browse(cr, uid, int(res['base']))
- price = currency_obj.compute(cr, uid,
- price_type.currency_id.id, res['currency_id'],
- product_obj.price_get(cr, uid, [product_id],
- price_type.field,context=context)[product_id], round=False, context=context)
-
- if price:
- price_limit = price
-
- price = price * (1.0+(res['price_discount'] or 0.0))
- price = rounding(price, res['price_round'])
- price += (res['price_surcharge'] or 0.0)
- if res['price_min_margin']:
- price = max(price, price_limit+res['price_min_margin'])
- if res['price_max_margin']:
- price = min(price, price_limit+res['price_max_margin'])
- break
-
- else:
- # False means no valid line found ! But we may not raise an
- # exception here because it breaks the search
- price = False
-
- if price:
- if 'uom' in context and not uom_price_already_computed:
- product = products_dict[product_id]
- uom = product.uos_id or product.uom_id
- price = self.pool.get('product.uom')._compute_price(cr, uid, uom.id, price, context['uom'])
-
- if results.get(product_id):
- results[product_id][pricelist_id] = price
- else:
- results[product_id] = {pricelist_id: price}
-
- return results
-
-product_pricelist()
=== removed file 'product_pricelist_fixed_price/pricelist_view.xml'
--- product_pricelist_fixed_price/pricelist_view.xml 2011-04-01 10:14:05 +0000
+++ product_pricelist_fixed_price/pricelist_view.xml 1970-01-01 00:00:00 +0000
@@ -1,76 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<openerp>
- <data>
- <record model="ir.ui.view" id="product_pricelist_item_form_view_fixed">
- <field name="name">product.pricelist.item.form.fixed</field>
- <field name="model">product.pricelist.item</field>
- <field name="inherit_id" ref="product.product_pricelist_item_form_view"/>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <field name="price_max_margin" position="after">
- <field name="fixed_price" colspan="3" attrs="{'readonly': [('base','!=', -3)]}"/>
- </field>
- </field>
- </record>
-
- <record model="ir.ui.view" id="product_pricelist_item_form_view_price_discount">
- <field name="name">product.pricelist.item.form.price_discount</field>
- <field name="model">product.pricelist.item</field>
- <field name="inherit_id" ref="product.product_pricelist_item_form_view"/>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <field name="price_discount" position="replace">
- <field name="price_discount" nolabel="1" attrs="{'readonly': [('base','==', -3)]}"/>
- </field>
- </field>
- </record>
-
- <record model="ir.ui.view" id="product_pricelist_item_form_view_price_surcharge">
- <field name="name">product.pricelist.item.form.price_surcharge</field>
- <field name="model">product.pricelist.item</field>
- <field name="inherit_id" ref="product.product_pricelist_item_form_view"/>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <field name="price_surcharge" position="replace">
- <field name="price_surcharge" nolabel="1" attrs="{'readonly': [('base','==', -3)]}"/>
- </field>
- </field>
- </record>
-
- <record model="ir.ui.view" id="product_pricelist_item_form_view_price_round">
- <field name="name">product.pricelist.item.form.price_round</field>
- <field name="model">product.pricelist.item</field>
- <field name="inherit_id" ref="product.product_pricelist_item_form_view"/>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <field name="price_round" position="replace">
- <field name="price_round" string="Rounding Method" attrs="{'readonly': [('base','==', -3)]}"/>
- </field>
- </field>
- </record>
-
- <record model="ir.ui.view" id="product_pricelist_item_form_view_price_min_margin">
- <field name="name">product.pricelist.item.form.price_min_margin</field>
- <field name="model">product.pricelist.item</field>
- <field name="inherit_id" ref="product.product_pricelist_item_form_view"/>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <field name="price_min_margin" position="replace">
- <field name="price_min_margin" string="Min. Margin" attrs="{'readonly': [('base','==', -3)]}"/>
- </field>
- </field>
- </record>
-
- <record model="ir.ui.view" id="product_pricelist_item_form_view_price_max_margin">
- <field name="name">product.pricelist.item.form.price_max_margin</field>
- <field name="model">product.pricelist.item</field>
- <field name="inherit_id" ref="product.product_pricelist_item_form_view"/>
- <field name="type">form</field>
- <field name="arch" type="xml">
- <field name="price_max_margin" position="replace">
- <field name="price_max_margin" string="Max. Margin" attrs="{'readonly': [('base','==', -3)]}"/>
- </field>
- </field>
- </record>
- </data>
-</openerp>
=== added directory 'product_pricelist_fixed_price/view'
=== added file 'product_pricelist_fixed_price/view/pricelist_menu.xml'
--- product_pricelist_fixed_price/view/pricelist_menu.xml 1970-01-01 00:00:00 +0000
+++ product_pricelist_fixed_price/view/pricelist_menu.xml 2014-01-27 15:19:50 +0000
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <record id="product_fixedprice_action" model="ir.actions.act_window">
+ <field name="name">Fixed Pricelists</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">product.pricelist</field>
+ <field name="view_type">form</field>
+ <field name="domain">[('fixed_price', '=', True)]</field>
+ <field name="context">{'default_fixed_price': True}</field>
+ <field name="view_id" ref="product_fixedprice_tree"/>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click to add a pricelist.
+ </p><p>
+ There can be more than one version of a pricelist, each of
+ these must be valid during a certain period of time. Some
+ examples of versions: Main Prices, 2010, 2011, Summer Sales,
+ etc.
+ </p>
+ </field>
+ </record>
+
+ <record
+ id="product_fixedprice_action_tree"
+ model="ir.actions.act_window.view"
+ >
+ <field name="sequence" eval="99"/>
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="product_fixedprice_tree"/>
+ <field name="act_window_id" ref="product_fixedprice_action"/>
+ </record>
+
+ <record
+ id="product_fixedprice_action_form"
+ model="ir.actions.act_window.view"
+ >
+ <field name="sequence" eval="99"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="product_fixedprice_form"/>
+ <field name="act_window_id" ref="product_fixedprice_action"/>
+ </record>
+
+ <record
+ id="product_fixedprice_version_action"
+ model="ir.actions.act_window"
+ >
+ <field name="name">Fixed Pricelist versions</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">product.pricelist.version</field>
+ <field name="view_type">form</field>
+ <field name="domain">[('fixed_price', '=', True)]</field>
+ <field name="context">{'default_fixed_price': True}</field>
+ <field name="view_id" ref="product_fixedprice_version_tree"/>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click to add a pricelist version.
+ </p><p>
+ There can be more than one version of a pricelist, each of
+ these must be valid during a certain period of time. Some
+ examples of versions: Main Prices, 2010, 2011, Summer Sales,
+ etc.
+ </p>
+ </field>
+ </record>
+
+ <record
+ id="product_fixedprice_version_action_tree"
+ model="ir.actions.act_window.view"
+ >
+ <field name="sequence" eval="99"/>
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="product_fixedprice_version_tree"/>
+ <field
+ name="act_window_id"
+ ref="product_fixedprice_version_action"
+ />
+ </record>
+
+ <record
+ id="product_fixedprice_version_action_form"
+ model="ir.actions.act_window.view"
+ >
+ <field name="sequence" eval="99"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="product_fixedprice_version_form"/>
+ <field
+ name="act_window_id"
+ ref="product_fixedprice_version_action"
+ />
+ </record>
+
+ <menuitem
+ id="product_fixedprice_menu"
+ action="product_fixedprice_action"
+ parent="product.menu_product_pricelist_main"
+ sequence="22"
+ />
+
+ <menuitem
+ id="product_fixedprice_version_menu"
+ action="product_fixedprice_version_action"
+ parent="product.menu_product_pricelist_main"
+ sequence="24"
+ />
+
+ </data>
+</openerp>
=== added file 'product_pricelist_fixed_price/view/pricelist_view.xml'
--- product_pricelist_fixed_price/view/pricelist_view.xml 1970-01-01 00:00:00 +0000
+++ product_pricelist_fixed_price/view/pricelist_view.xml 2014-01-27 15:19:50 +0000
@@ -0,0 +1,220 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <!-- Basically this file contains simplified versions of the views
+ for pricelist items, pricelist versions and pricelists.
+ The views contain only the fields needed to add fixed prices.
+ Actually the surcharche field is used for the fixed price, while
+ the discount_factor is set to -1 to eliminate the role of the
+ base price.
+ For fixed prices product_id is (ofcourse?) required.
+ -->
+
+ <!-- Pricelist item -->
+
+ <record id="product_fixedprice_item_tree" model="ir.ui.view">
+ <field name="name">product.fixedprice.item.tree</field>
+ <field name="model">product.pricelist.item</field>
+ <field name="priority">99</field>
+ <field name="arch" type="xml">
+ <tree string="Products Fixed Price Items">
+ <field
+ name="name"
+ invisible="1"
+ />
+ <field
+ name="fixed_price"
+ invisible="1"
+ />
+ <field name="product_id"/>
+ <field
+ name="product_tmpl_id"
+ groups="product.group_product_variant"
+ />
+ <field name="min_quantity"/>
+ <field
+ name="price_surcharge"
+ string="Price"
+ />
+ </tree>
+ </field>
+ </record>
+
+ <record id="product_fixedprice_item_form" model="ir.ui.view">
+ <field name="name">product.fixedprice.item.form</field>
+ <field name="model">product.pricelist.item</field>
+ <field name="priority">99</field>
+ <field name="arch" type="xml">
+ <form string="Products Fixed Price Items" version="7.0">
+ <field
+ name="name"
+ invisible="1"
+ />
+ <field
+ name="fixed_price"
+ invisible="1"
+ />
+ <field
+ name="price_discount"
+ invisible="1"
+ />
+ <group col="4">
+ <field
+ name="product_id"
+ on_change="product_id_change(product_id)"
+ required="1"
+ />
+ <field
+ name="product_tmpl_id"
+ groups="product.group_product_variant"
+ />
+ <field
+ name="company_id"
+ groups="base.group_multi_company"
+ widget="selection"
+ />
+ <field name="min_quantity"/>
+ <field
+ name="price_surcharge"
+ string="Price"
+ />
+ </group>
+ </form>
+ </field>
+ </record>
+
+
+ <!-- Pricelist version -->
+
+ <record id="product_fixedprice_version_form" model="ir.ui.view">
+ <field name="name">product.fixedprice.version.form</field>
+ <field name="model">product.pricelist.version</field>
+ <field name="priority">99</field>
+ <field name="arch" type="xml">
+ <form string="Fixed Pricelist Version" version="7.0" >
+ <group col="4">
+ <field
+ name="fixed_price"
+ invisible="1"
+ />
+ <field name="name"/>
+ <field name="active"/>
+ <field
+ colspan="4"
+ name="pricelist_id"
+ domain="[('fixed_price', '=', True),]"
+ />
+ <field name="date_start"/>
+ <field name="date_end"/>
+ <field
+ name="company_id"
+ groups="base.group_multi_company"
+ widget="selection"
+ />
+ </group>
+ <p></p>
+ <field
+ name="items_id"
+ context="{
+ 'form_view_ref': 'product_pricelist_fixed_price.product_fixedprice_item_form',
+ 'tree_view_ref': 'product_pricelist_fixed_price.product_fixedprice_item_tree',
+ 'default_fixed_price': True,
+ 'default_price_discount': -1,
+ }"
+ />
+ </form>
+ </field>
+ </record>
+
+ <record id="product_fixedprice_version_tree" model="ir.ui.view">
+ <field name="name">product.fixedprice.version.tree</field>
+ <field name="model">product.pricelist.version</field>
+ <field name="priority">99</field>
+ <field name="arch" type="xml">
+ <tree string="Fixed Pricelist Version">
+ <field
+ name="fixed_price"
+ invisible="1"
+ />
+ <field name="name"/>
+ <field name="pricelist_id"/>
+ <field name="date_start"/>
+ <field name="date_end"/>
+ </tree>
+ </field>
+ </record>
+
+
+ <!-- Pricelist -->
+
+ <record model="ir.ui.view" id="product_fixedprice_search">
+ <field name="name">product.fixedprice.search</field>
+ <field name="model">product.pricelist</field>
+ <field name="priority">99</field>
+ <field name="arch" type="xml">
+ <search string="Products Fixed Price Search">
+ <field name="name" string="Products Price"/>
+ <field name="type"/>
+ <field name="active" />
+ <field
+ name="currency_id"
+ groups="base.group_multi_currency"
+ />
+ </search>
+ </field>
+ </record>
+
+ <record id="product_fixedprice_tree" model="ir.ui.view">
+ <field name="name">product.fixedprice.tree</field>
+ <field name="model">product.pricelist</field>
+ <field name="priority">99</field>
+ <field name="arch" type="xml">
+ <tree string="Products Fixed Price List">
+ <field name="name"/>
+ <field name="type"/>
+ <field
+ name="currency_id"
+ groups="base.group_multi_currency"
+ />
+ <field name="active" />
+ </tree>
+ </field>
+ </record>
+
+ <record id="product_fixedprice_form" model="ir.ui.view">
+ <field name="name">product.fixedprice.form</field>
+ <field name="model">product.pricelist</field>
+ <field name="priority">99</field>
+ <field name="arch" type="xml">
+ <form string="Products Fixed Price List" version="7.0" >
+ <field name="name"/>
+ <group col="4">
+ <field name="active"/>
+ <field name="type"/>
+ <field
+ name="currency_id"
+ groups="base.group_multi_currency"
+ />
+ <field
+ name="company_id"
+ groups="base.group_multi_company"
+ widget="selection"
+ />
+ </group>
+ <p></p>
+ <field
+ name="version_id"
+ context="{
+ 'form_view_ref': 'product_pricelist_fixed_price.product_fixedprice_version_form',
+ 'tree_view_ref': 'product_pricelist_fixed_price.product_fixedprice_version_tree',
+ 'default_pricelist_id': active_id,
+ 'default_fixed_price': True,
+ }"
+ />
+ </form>
+ </field>
+ </record>
+
+ </data>
+</openerp>
Follow ups
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Pedro Manuel Baeza, 2014-02-05
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Lionel Sausin - Numérigraphe, 2014-02-04
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Lionel Sausin - Numérigraphe, 2014-02-04
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Ronald Portier (Therp), 2014-02-03
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Pedro Manuel Baeza, 2014-02-03
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Leonardo Pistone @ camptocamp, 2014-02-03
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Ronald Portier (Therp), 2014-02-03
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Pedro Manuel Baeza, 2014-01-30
-
Re: [Merge] lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Lionel Sausin - Numérigraphe, 2014-01-30
-
Re: lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Lionel Sausin - Numérigraphe, 2014-01-27
-
Re: lp:~therp-nl/openerp-product-attributes/7.0_lp1272282_fixed_price into lp:openerp-product-attributes
From: Leonardo Pistone @ camptocamp, 2014-01-27