Atchuthan, Sodexis
9 years ago
commit
3177d4b823
20 changed files with 2134 additions and 0 deletions
-
41README.rst
-
6__init__.py
-
20__openerp__.py
-
212i18n/de.po
-
212i18n/es.po
-
211i18n/fi.po
-
212i18n/fr.po
-
212i18n/it.po
-
177i18n/sale_exceptions.pot
-
212i18n/sl.po
-
211i18n/zh_CN.po
-
188sale.py
-
19sale_exception_data.xml
-
114sale_view.xml
-
3security/ir.model.access.csv
-
5settings/sale.exception.csv
-
BINstatic/description/icon.png
-
5wizard/__init__.py
-
35wizard/sale_exception_confirm.py
-
39wizard/sale_exception_confirm_view.xml
@ -0,0 +1,41 @@ |
|||
.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg |
|||
:alt: License: AGPL-3 |
|||
|
|||
Sale Exceptions |
|||
=============== |
|||
|
|||
This module allows you attach several customizable exceptions to your |
|||
sale order in a way that you can filter orders by exceptions type and fix them. |
|||
|
|||
This is especially useful in an order importation scenario such as with |
|||
the base_sale_multi_channels module, because it's likely a few orders have |
|||
errors when you import them (like product not found in Odoo, wrong line |
|||
format etc...) |
|||
|
|||
Credits |
|||
======= |
|||
|
|||
Contributors |
|||
------------ |
|||
|
|||
* Raphaël Valyi <raphael.valyi@akretion.com> |
|||
* Renato Lima <renato.lima@akretion.com> |
|||
* Sébastien BEAU <sebastien.beau@akretion.com> |
|||
* Guewen Baconnier <guewen.baconnier@camptocamp.com> |
|||
* Yannick Vaucher <yannick.vaucher@camptocamp.com> |
|||
* SodexisTeam <dev@sodexis.com> |
|||
|
|||
Maintainer |
|||
---------- |
|||
|
|||
.. image:: http://odoo-community.org/logo.png |
|||
:alt: Odoo Community Association |
|||
:target: http://odoo-community.org |
|||
|
|||
This module is maintained by the OCA. |
|||
|
|||
OCA, or the Odoo Community Association, is a nonprofit organization whose |
|||
mission is to support the collaborative development of Odoo features and |
|||
promote its widespread use. |
|||
|
|||
To contribute to this module, please visit http://odoo-community.org. |
@ -0,0 +1,6 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2011 Raphaël Valyi, Renato Lima, Guewen Baconnier, Sodexis |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import sale |
|||
from . import wizard |
@ -0,0 +1,20 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2011 Raphaël Valyi, Renato Lima, Guewen Baconnier, Sodexis |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
{'name': 'Sale Exceptions', |
|||
'summary': 'Custom exceptions on sale order', |
|||
'version': '9.0.1.0.0', |
|||
'category': 'Generic Modules/Sale', |
|||
'author': "Akretion, Sodexis, Odoo Community Association (OCA)", |
|||
'website': 'http://www.akretion.com', |
|||
'depends': ['sale'], |
|||
'data': [ |
|||
'security/ir.model.access.csv', |
|||
'wizard/sale_exception_confirm_view.xml', |
|||
'settings/sale.exception.csv', |
|||
'sale_exception_data.xml', |
|||
'sale_view.xml', |
|||
], |
|||
'installable': True, |
|||
} |
@ -0,0 +1,212 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * sale_exceptions |
|||
# |
|||
# Translators: |
|||
# Rudolf Schnapka <rs@techno-flex.de>, 2015 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: sale-workflow (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-10-08 20:48+0000\n" |
|||
"PO-Revision-Date: 2015-10-09 13:41+0000\n" |
|||
"Last-Translator: Rudolf Schnapka <rs@techno-flex.de>\n" |
|||
"Language-Team: German (http://www.transifex.com/oca/OCA-sale-workflow-8-0/language/de/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: de\n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,active:0 |
|||
msgid "Active" |
|||
msgstr "Aktiv" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Affected Sales Orders" |
|||
msgstr "Betroffene Verkaufsaufträge" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,model:0 |
|||
msgid "Apply on" |
|||
msgstr "Anwenden auf" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_sales_order_filter |
|||
msgid "Blocked in draft" |
|||
msgstr "Im Entwurf gesperrt" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:114 |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_exception_confirm |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
#, python-format |
|||
msgid "Blocked in draft due to exceptions" |
|||
msgstr "Im Entwurf wegen Ausnahmen gesperrt" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_uid:0 field:sale.exception.confirm,create_uid:0 |
|||
msgid "Created by" |
|||
msgstr "Angelegt durch" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_date:0 |
|||
#: field:sale.exception.confirm,create_date:0 |
|||
msgid "Created on" |
|||
msgstr "Angelegt am" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,description:0 |
|||
msgid "Description" |
|||
msgstr "Beschreibung" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:192 |
|||
#, python-format |
|||
msgid "Error" |
|||
msgstr "Fehler" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:193 |
|||
#, python-format |
|||
msgid "" |
|||
"Error when evaluating the sale exception rule:\n" |
|||
" %s \n" |
|||
"(%s)" |
|||
msgstr "Fehler beim Auswerten des Verkaufs-Ausnahmenregel:\n%s\n(%s)" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Error:" |
|||
msgstr "Fehler:" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Exception" |
|||
msgstr "Ausnahme" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,name:0 |
|||
msgid "Exception Name" |
|||
msgstr "Ausnahmebezeichnung" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_test_tree |
|||
#: model:ir.ui.menu,name:sale_exceptions.menu_sale_test |
|||
msgid "Exception Rules" |
|||
msgstr "Ausnahmeregeln" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,exception_ids:0 |
|||
msgid "Exceptions" |
|||
msgstr "Ausnahmen" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,exception_ids:0 |
|||
msgid "Exceptions to resolve" |
|||
msgstr "Zu behebende Ausnahmen" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,sequence:0 |
|||
msgid "Gives the sequence order when applying the test" |
|||
msgstr "Liefert die Reihenfolge beim Anwenden des Tests" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,id:0 field:sale.exception.confirm,id:0 |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,ignore:0 field:sale.order,ignore_exceptions:0 |
|||
msgid "Ignore Exceptions" |
|||
msgstr "Ausnahmen ignorieren" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_uid:0 field:sale.exception.confirm,write_uid:0 |
|||
msgid "Last Updated by" |
|||
msgstr "Zuletzt akualisiert durch" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_date:0 field:sale.exception.confirm,write_date:0 |
|||
msgid "Last Updated on" |
|||
msgstr "Zuletzt akualisiert am" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,main_exception_id:0 |
|||
msgid "Main Exception" |
|||
msgstr "Haupt-Ausnahme" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_zip |
|||
msgid "No ZIP code on destination" |
|||
msgstr "Keine PLZ im Bestimmungsort" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_stock |
|||
msgid "Not Enough Virtual Stock" |
|||
msgstr "Unzureichender virtueller Bestand" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,code:0 |
|||
msgid "Python Code" |
|||
msgstr "Python Code" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,code:0 |
|||
msgid "" |
|||
"Python code executed to check if the exception apply or not. The code must " |
|||
"apply block = True to apply the exception." |
|||
msgstr "Python Code zum Prüfen, ob die Ausnahme eintritt oder nicht. Der Code muss block = True setzen zur Auslösung der Ausnahme." |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,sale_id:0 |
|||
msgid "Sale" |
|||
msgstr "Verkauf" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_tree |
|||
msgid "Sale Exception" |
|||
msgstr "Ausnahme im Verkauf" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Sale Exception Setup" |
|||
msgstr "Verkaufsausnahmen-Einstellungen" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "Sale Exceptions" |
|||
msgstr "Verkaufsausnahmen" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order" |
|||
msgstr "Verkaufsauftrag" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order Line" |
|||
msgstr "Auftragsposition" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sale_order_ids:0 |
|||
msgid "Sale Orders" |
|||
msgstr "Verkaufsaufträge" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_order |
|||
msgid "Sales Order" |
|||
msgstr "Verkaufsauftrag" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sequence:0 |
|||
msgid "Sequence" |
|||
msgstr "Reihenfolge" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "_Close" |
|||
msgstr "Schließen" |
@ -0,0 +1,212 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * sale_exceptions |
|||
# |
|||
# Translators: |
|||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2014 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: sale-workflow (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-09-09 12:27+0000\n" |
|||
"PO-Revision-Date: 2015-09-03 07:09+0000\n" |
|||
"Last-Translator: OCA Transbot <transbot@odoo-community.org>\n" |
|||
"Language-Team: Spanish (http://www.transifex.com/oca/OCA-sale-workflow-8-0/language/es/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: es\n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,active:0 |
|||
msgid "Active" |
|||
msgstr "Activo" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Affected Sales Orders" |
|||
msgstr "Pedidos de venta afectados" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,model:0 |
|||
msgid "Apply on" |
|||
msgstr "Aplicar en" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_sales_order_filter |
|||
msgid "Blocked in draft" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:114 |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_exception_confirm |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
#, python-format |
|||
msgid "Blocked in draft due to exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_uid:0 field:sale.exception.confirm,create_uid:0 |
|||
msgid "Created by" |
|||
msgstr "Creado por" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_date:0 |
|||
#: field:sale.exception.confirm,create_date:0 |
|||
msgid "Created on" |
|||
msgstr "Creado en" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,description:0 |
|||
msgid "Description" |
|||
msgstr "Descripción" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:192 |
|||
#, python-format |
|||
msgid "Error" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:193 |
|||
#, python-format |
|||
msgid "" |
|||
"Error when evaluating the sale exception rule:\n" |
|||
" %s \n" |
|||
"(%s)" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Error:" |
|||
msgstr "Error:" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Exception" |
|||
msgstr "Excepción" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,name:0 |
|||
msgid "Exception Name" |
|||
msgstr "Nombre Excepción" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_test_tree |
|||
#: model:ir.ui.menu,name:sale_exceptions.menu_sale_test |
|||
msgid "Exception Rules" |
|||
msgstr "Reglas Excepción" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,exception_ids:0 |
|||
msgid "Exceptions" |
|||
msgstr "Excepciones" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,exception_ids:0 |
|||
msgid "Exceptions to resolve" |
|||
msgstr "Excepciones a resolver" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,sequence:0 |
|||
msgid "Gives the sequence order when applying the test" |
|||
msgstr "Proporciona el orden de secuencia cuando el test es aplicado" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,id:0 field:sale.exception.confirm,id:0 |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,ignore:0 field:sale.order,ignore_exceptions:0 |
|||
msgid "Ignore Exceptions" |
|||
msgstr "Ignorar Excepciones" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_uid:0 field:sale.exception.confirm,write_uid:0 |
|||
msgid "Last Updated by" |
|||
msgstr "Última actualización de" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_date:0 field:sale.exception.confirm,write_date:0 |
|||
msgid "Last Updated on" |
|||
msgstr "Última actualización en" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,main_exception_id:0 |
|||
msgid "Main Exception" |
|||
msgstr "Excepción Principal" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_zip |
|||
msgid "No ZIP code on destination" |
|||
msgstr "No existe código postal en dirección de destino" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_stock |
|||
msgid "Not Enough Virtual Stock" |
|||
msgstr "No existe suficiente stock virtual" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,code:0 |
|||
msgid "Python Code" |
|||
msgstr "Código Python" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,code:0 |
|||
msgid "" |
|||
"Python code executed to check if the exception apply or not. The code must " |
|||
"apply block = True to apply the exception." |
|||
msgstr "Código python ejecutado para comprobar si hay que aplicar o no la excepción. El código debe dar como resultado True para aplicar la excepción" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,sale_id:0 |
|||
msgid "Sale" |
|||
msgstr "Venta" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_tree |
|||
msgid "Sale Exception" |
|||
msgstr "Excepción Venta" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Sale Exception Setup" |
|||
msgstr "Instalar Excepción Venta" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "Sale Exceptions" |
|||
msgstr "Excepciones Venta" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order" |
|||
msgstr "Pedido de venta" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order Line" |
|||
msgstr "Línea Pedido Venta" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sale_order_ids:0 |
|||
msgid "Sale Orders" |
|||
msgstr "Pedidos de Venta" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_order |
|||
msgid "Sales Order" |
|||
msgstr "Pedidos de venta" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sequence:0 |
|||
msgid "Sequence" |
|||
msgstr "Secuencia" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "_Close" |
|||
msgstr "" |
@ -0,0 +1,211 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * sale_exceptions |
|||
# |
|||
# Translators: |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: sale-workflow (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-09-09 12:27+0000\n" |
|||
"PO-Revision-Date: 2015-09-03 07:08+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: Finnish (http://www.transifex.com/oca/OCA-sale-workflow-8-0/language/fi/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: fi\n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,active:0 |
|||
msgid "Active" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Affected Sales Orders" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,model:0 |
|||
msgid "Apply on" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_sales_order_filter |
|||
msgid "Blocked in draft" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:114 |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_exception_confirm |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
#, python-format |
|||
msgid "Blocked in draft due to exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_uid:0 field:sale.exception.confirm,create_uid:0 |
|||
msgid "Created by" |
|||
msgstr "Luonut" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_date:0 |
|||
#: field:sale.exception.confirm,create_date:0 |
|||
msgid "Created on" |
|||
msgstr "Luotu" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,description:0 |
|||
msgid "Description" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:192 |
|||
#, python-format |
|||
msgid "Error" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:193 |
|||
#, python-format |
|||
msgid "" |
|||
"Error when evaluating the sale exception rule:\n" |
|||
" %s \n" |
|||
"(%s)" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Error:" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Exception" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,name:0 |
|||
msgid "Exception Name" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_test_tree |
|||
#: model:ir.ui.menu,name:sale_exceptions.menu_sale_test |
|||
msgid "Exception Rules" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,exception_ids:0 |
|||
msgid "Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,exception_ids:0 |
|||
msgid "Exceptions to resolve" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,sequence:0 |
|||
msgid "Gives the sequence order when applying the test" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,id:0 field:sale.exception.confirm,id:0 |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,ignore:0 field:sale.order,ignore_exceptions:0 |
|||
msgid "Ignore Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_uid:0 field:sale.exception.confirm,write_uid:0 |
|||
msgid "Last Updated by" |
|||
msgstr "Viimeksi päivittänyt" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_date:0 field:sale.exception.confirm,write_date:0 |
|||
msgid "Last Updated on" |
|||
msgstr "Viimeksi päivitetty" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,main_exception_id:0 |
|||
msgid "Main Exception" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_zip |
|||
msgid "No ZIP code on destination" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_stock |
|||
msgid "Not Enough Virtual Stock" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,code:0 |
|||
msgid "Python Code" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,code:0 |
|||
msgid "" |
|||
"Python code executed to check if the exception apply or not. The code must " |
|||
"apply block = True to apply the exception." |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,sale_id:0 |
|||
msgid "Sale" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_tree |
|||
msgid "Sale Exception" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Sale Exception Setup" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "Sale Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order Line" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sale_order_ids:0 |
|||
msgid "Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_order |
|||
msgid "Sales Order" |
|||
msgstr "Myyntitilaus" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sequence:0 |
|||
msgid "Sequence" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "_Close" |
|||
msgstr "" |
@ -0,0 +1,212 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * sale_exceptions |
|||
# |
|||
# Translators: |
|||
# Pierre Verkest <pverkest@anybox.fr>, 2015 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: sale-workflow (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-10-02 17:59+0000\n" |
|||
"PO-Revision-Date: 2015-09-24 21:25+0000\n" |
|||
"Last-Translator: Pierre Verkest <pverkest@anybox.fr>\n" |
|||
"Language-Team: French (http://www.transifex.com/oca/OCA-sale-workflow-8-0/language/fr/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: fr\n" |
|||
"Plural-Forms: nplurals=2; plural=(n > 1);\n" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,active:0 |
|||
msgid "Active" |
|||
msgstr "Actif" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Affected Sales Orders" |
|||
msgstr "Bons de commande affectés" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,model:0 |
|||
msgid "Apply on" |
|||
msgstr "Appliquer sur" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_sales_order_filter |
|||
msgid "Blocked in draft" |
|||
msgstr "Bloqué à l'état brouillon" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:114 |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_exception_confirm |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
#, python-format |
|||
msgid "Blocked in draft due to exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_uid:0 field:sale.exception.confirm,create_uid:0 |
|||
msgid "Created by" |
|||
msgstr "Créé par" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_date:0 |
|||
#: field:sale.exception.confirm,create_date:0 |
|||
msgid "Created on" |
|||
msgstr "Créé le" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,description:0 |
|||
msgid "Description" |
|||
msgstr "Description" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:192 |
|||
#, python-format |
|||
msgid "Error" |
|||
msgstr "Erreur" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:193 |
|||
#, python-format |
|||
msgid "" |
|||
"Error when evaluating the sale exception rule:\n" |
|||
" %s \n" |
|||
"(%s)" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Error:" |
|||
msgstr "Erreur :" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Exception" |
|||
msgstr "Restriction" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,name:0 |
|||
msgid "Exception Name" |
|||
msgstr "Nom de la restriction" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_test_tree |
|||
#: model:ir.ui.menu,name:sale_exceptions.menu_sale_test |
|||
msgid "Exception Rules" |
|||
msgstr "Règles de restriction" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,exception_ids:0 |
|||
msgid "Exceptions" |
|||
msgstr "Restrictions" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,exception_ids:0 |
|||
msgid "Exceptions to resolve" |
|||
msgstr "Restrictions à résoudre" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,sequence:0 |
|||
msgid "Gives the sequence order when applying the test" |
|||
msgstr "Définit l'ordre d'application des contrôles" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,id:0 field:sale.exception.confirm,id:0 |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,ignore:0 field:sale.order,ignore_exceptions:0 |
|||
msgid "Ignore Exceptions" |
|||
msgstr "Ignorer la restriction" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_uid:0 field:sale.exception.confirm,write_uid:0 |
|||
msgid "Last Updated by" |
|||
msgstr "Modifié par" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_date:0 field:sale.exception.confirm,write_date:0 |
|||
msgid "Last Updated on" |
|||
msgstr "Modifié le" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,main_exception_id:0 |
|||
msgid "Main Exception" |
|||
msgstr "Restriction principale" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_zip |
|||
msgid "No ZIP code on destination" |
|||
msgstr "Code postal manquant sur la destination" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_stock |
|||
msgid "Not Enough Virtual Stock" |
|||
msgstr "Pas assez de quantité de stock prévue" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,code:0 |
|||
msgid "Python Code" |
|||
msgstr "Code Python" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,code:0 |
|||
msgid "" |
|||
"Python code executed to check if the exception apply or not. The code must " |
|||
"apply block = True to apply the exception." |
|||
msgstr "Code Python exécuté pour déterminer si la restriction s'applique. The bloc de code doit retourner block = True pour appliquer la restriction." |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,sale_id:0 |
|||
msgid "Sale" |
|||
msgstr "Commande" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_tree |
|||
msgid "Sale Exception" |
|||
msgstr "Restriction de vente" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Sale Exception Setup" |
|||
msgstr "Configuration des restrictions de vente" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "Sale Exceptions" |
|||
msgstr "Restrictions de vente" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order" |
|||
msgstr "Bon de commande" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order Line" |
|||
msgstr "Ligne de commande" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sale_order_ids:0 |
|||
msgid "Sale Orders" |
|||
msgstr "Bons de commande" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_order |
|||
msgid "Sales Order" |
|||
msgstr "Bon de commande" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sequence:0 |
|||
msgid "Sequence" |
|||
msgstr "Séquence" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "_Close" |
|||
msgstr "" |
@ -0,0 +1,212 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * sale_exceptions |
|||
# |
|||
# Translators: |
|||
# Stefano <stefano.sforzi@agilebg.com>, 2015 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: sale-workflow (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-10-02 17:59+0000\n" |
|||
"PO-Revision-Date: 2015-09-23 14:23+0000\n" |
|||
"Last-Translator: Stefano <stefano.sforzi@agilebg.com>\n" |
|||
"Language-Team: Italian (http://www.transifex.com/oca/OCA-sale-workflow-8-0/language/it/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: it\n" |
|||
"Plural-Forms: nplurals=2; plural=(n != 1);\n" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,active:0 |
|||
msgid "Active" |
|||
msgstr "Attivo" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Affected Sales Orders" |
|||
msgstr "Ordine di vendita convolti" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,model:0 |
|||
msgid "Apply on" |
|||
msgstr "Applicato a" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_sales_order_filter |
|||
msgid "Blocked in draft" |
|||
msgstr "Bloccato in stato bozza" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:114 |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_exception_confirm |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
#, python-format |
|||
msgid "Blocked in draft due to exceptions" |
|||
msgstr "Bloccato in stato bozza dovuto alla eccezzioni" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_uid:0 field:sale.exception.confirm,create_uid:0 |
|||
msgid "Created by" |
|||
msgstr "Creato da" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_date:0 |
|||
#: field:sale.exception.confirm,create_date:0 |
|||
msgid "Created on" |
|||
msgstr "Creato il" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,description:0 |
|||
msgid "Description" |
|||
msgstr "Descrizione" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:192 |
|||
#, python-format |
|||
msgid "Error" |
|||
msgstr "Errore" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:193 |
|||
#, python-format |
|||
msgid "" |
|||
"Error when evaluating the sale exception rule:\n" |
|||
" %s \n" |
|||
"(%s)" |
|||
msgstr "Errore per l'applicazione di una regola di vendita:\n%s\n(%s)" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Error:" |
|||
msgstr "Errore" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Exception" |
|||
msgstr "Eccezione" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,name:0 |
|||
msgid "Exception Name" |
|||
msgstr "Nome eccezione " |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_test_tree |
|||
#: model:ir.ui.menu,name:sale_exceptions.menu_sale_test |
|||
msgid "Exception Rules" |
|||
msgstr "Regola eccezione" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,exception_ids:0 |
|||
msgid "Exceptions" |
|||
msgstr "Eccezioni" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,exception_ids:0 |
|||
msgid "Exceptions to resolve" |
|||
msgstr "Eccezioni da risolvere" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,sequence:0 |
|||
msgid "Gives the sequence order when applying the test" |
|||
msgstr "Indicare una sequenza quando applichi il test" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,id:0 field:sale.exception.confirm,id:0 |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,ignore:0 field:sale.order,ignore_exceptions:0 |
|||
msgid "Ignore Exceptions" |
|||
msgstr "Ignora eccezioni" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_uid:0 field:sale.exception.confirm,write_uid:0 |
|||
msgid "Last Updated by" |
|||
msgstr "Ultimo aggiornamento di" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_date:0 field:sale.exception.confirm,write_date:0 |
|||
msgid "Last Updated on" |
|||
msgstr "Ultimo aggiornamento il" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,main_exception_id:0 |
|||
msgid "Main Exception" |
|||
msgstr "Eccezione principale" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_zip |
|||
msgid "No ZIP code on destination" |
|||
msgstr "No ZIP sull'indirizzo di destinazione" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_stock |
|||
msgid "Not Enough Virtual Stock" |
|||
msgstr "Non abbastanza stock virtuale" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,code:0 |
|||
msgid "Python Code" |
|||
msgstr "Python Code" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,code:0 |
|||
msgid "" |
|||
"Python code executed to check if the exception apply or not. The code must " |
|||
"apply block = True to apply the exception." |
|||
msgstr "Python code executed to check if the exception apply or not. The code must apply block = True to apply the exception." |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,sale_id:0 |
|||
msgid "Sale" |
|||
msgstr "Vendite" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_tree |
|||
msgid "Sale Exception" |
|||
msgstr "Eccezione sulle vendite" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Sale Exception Setup" |
|||
msgstr "Setup eccezioni di vendita" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "Sale Exceptions" |
|||
msgstr "Eccezioni di vendita" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order" |
|||
msgstr "Ordine di vendita" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order Line" |
|||
msgstr "Riga ordine di vendita" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sale_order_ids:0 |
|||
msgid "Sale Orders" |
|||
msgstr "Ordine vendita" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_order |
|||
msgid "Sales Order" |
|||
msgstr "Ordini vendita" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sequence:0 |
|||
msgid "Sequence" |
|||
msgstr "Sequenza" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "_Close" |
|||
msgstr "_Chiuso" |
@ -0,0 +1,177 @@ |
|||
# Translation of OpenERP Server. |
|||
# This file contains the translation of the following modules: |
|||
# * sale_exceptions |
|||
# |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: OpenERP Server 7.0\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2013-05-02 06:57+0000\n" |
|||
"PO-Revision-Date: 2013-05-02 06:57+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_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception_confirm |
|||
msgid "sale.exception.confirm" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order Line" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,model:0 |
|||
msgid "Apply on" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_stock |
|||
msgid "Not Enough Virtual Stock" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,description:0 |
|||
msgid "Description" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,sequence:0 |
|||
msgid "Gives the sequence order when applying the test" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:0 |
|||
msgid "Sale Exceptions On Sale Order" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,exception_ids:0 |
|||
msgid "Exceptions to resolve" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:0 |
|||
msgid "_Ok" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:0 |
|||
#: view:sale.exception.confirm:0 |
|||
msgid "Sale Exception" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:0 |
|||
msgid "TO FIX" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,code:0 |
|||
msgid "Python code executed to check if the exception apply or not. The code must apply block = True to apply the exception." |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:0 |
|||
msgid "Exception" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:0 |
|||
msgid "Error:" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,sale_id:0 |
|||
msgid "Sale" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,active:0 |
|||
msgid "Active" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,name:0 |
|||
msgid "Exception Name" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,exception_ids:0 |
|||
msgid "Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_exception_confirm |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception |
|||
#: view:sale.exception.confirm:0 |
|||
msgid "Sale Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_test_tree |
|||
#: model:ir.ui.menu,name:sale_exceptions.menu_sale_test |
|||
msgid "Exception Rules" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_order |
|||
msgid "Sales Order" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sequence:0 |
|||
msgid "Sequence" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,code:0 |
|||
msgid "Python Code" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:0 |
|||
msgid "Sales" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_zip |
|||
msgid "No ZIP code on destination" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:0 |
|||
msgid "Sale Exception Setup" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:0 |
|||
msgid "Affected Sales Orders" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sale_order_ids:0 |
|||
msgid "Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,ignore:0 |
|||
#: field:sale.order,ignore_exceptions:0 |
|||
msgid "Ignore Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,main_exception_id:0 |
|||
msgid "Main Exception" |
|||
msgstr "" |
|||
|
@ -0,0 +1,212 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * sale_exceptions |
|||
# |
|||
# Translators: |
|||
# Matjaž Mozetič <m.mozetic@matmoz.si>, 2015 |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: sale-workflow (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-09-09 12:27+0000\n" |
|||
"PO-Revision-Date: 2015-09-07 14:31+0000\n" |
|||
"Last-Translator: Matjaž Mozetič <m.mozetic@matmoz.si>\n" |
|||
"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-sale-workflow-8-0/language/sl/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: sl\n" |
|||
"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,active:0 |
|||
msgid "Active" |
|||
msgstr "Aktivno" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Affected Sales Orders" |
|||
msgstr "Prizadeti prodajni nalogi" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,model:0 |
|||
msgid "Apply on" |
|||
msgstr "Uporabi pri" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_sales_order_filter |
|||
msgid "Blocked in draft" |
|||
msgstr "Blokirano v osnutku" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:114 |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_exception_confirm |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
#, python-format |
|||
msgid "Blocked in draft due to exceptions" |
|||
msgstr "Blokirano v osnutku zaradi izjem" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_uid:0 field:sale.exception.confirm,create_uid:0 |
|||
msgid "Created by" |
|||
msgstr "Ustvaril" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_date:0 |
|||
#: field:sale.exception.confirm,create_date:0 |
|||
msgid "Created on" |
|||
msgstr "Ustvarjeno" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,description:0 |
|||
msgid "Description" |
|||
msgstr "Opis" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:192 |
|||
#, python-format |
|||
msgid "Error" |
|||
msgstr "Napaka" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:193 |
|||
#, python-format |
|||
msgid "" |
|||
"Error when evaluating the sale exception rule:\n" |
|||
" %s \n" |
|||
"(%s)" |
|||
msgstr "Napaka ob vrednotenju pravila prodajnih izjem:\n %s \n(%s)" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Error:" |
|||
msgstr "Napaka:" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Exception" |
|||
msgstr "Izjema" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,name:0 |
|||
msgid "Exception Name" |
|||
msgstr "Naziv izjeme" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_test_tree |
|||
#: model:ir.ui.menu,name:sale_exceptions.menu_sale_test |
|||
msgid "Exception Rules" |
|||
msgstr "Pravila izjem" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,exception_ids:0 |
|||
msgid "Exceptions" |
|||
msgstr "Izjeme" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,exception_ids:0 |
|||
msgid "Exceptions to resolve" |
|||
msgstr "Izjeme za razrešitev" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,sequence:0 |
|||
msgid "Gives the sequence order when applying the test" |
|||
msgstr "Določa zaporedje pri uveljavitvi testiranja" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,id:0 field:sale.exception.confirm,id:0 |
|||
msgid "ID" |
|||
msgstr "ID" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,ignore:0 field:sale.order,ignore_exceptions:0 |
|||
msgid "Ignore Exceptions" |
|||
msgstr "Prezri izjeme" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_uid:0 field:sale.exception.confirm,write_uid:0 |
|||
msgid "Last Updated by" |
|||
msgstr "Zadnji posodobil" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_date:0 field:sale.exception.confirm,write_date:0 |
|||
msgid "Last Updated on" |
|||
msgstr "Zadnjič posodobljeno" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,main_exception_id:0 |
|||
msgid "Main Exception" |
|||
msgstr "Glavna izjema" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_zip |
|||
msgid "No ZIP code on destination" |
|||
msgstr "Destinacija nima poštne številke" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_stock |
|||
msgid "Not Enough Virtual Stock" |
|||
msgstr "Ni dovolj navidezne zaloge" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,code:0 |
|||
msgid "Python Code" |
|||
msgstr "Python koda" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,code:0 |
|||
msgid "" |
|||
"Python code executed to check if the exception apply or not. The code must " |
|||
"apply block = True to apply the exception." |
|||
msgstr "Python koda, ki se izvede, da preveri če je izjema ali ne. Koda mora uveljaviti blok = Pravilno za uveljavitev izjeme." |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,sale_id:0 |
|||
msgid "Sale" |
|||
msgstr "Prodaja" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_tree |
|||
msgid "Sale Exception" |
|||
msgstr "Prodajna izjema" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Sale Exception Setup" |
|||
msgstr "Nastavitev prodajne izjeme" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "Sale Exceptions" |
|||
msgstr "Prodajne izjeme" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order" |
|||
msgstr "Prodajni nalog" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order Line" |
|||
msgstr "Postavka nabavnega naloga" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sale_order_ids:0 |
|||
msgid "Sale Orders" |
|||
msgstr "Prodajni nalogi" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_order |
|||
msgid "Sales Order" |
|||
msgstr "Prodajni nalog" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sequence:0 |
|||
msgid "Sequence" |
|||
msgstr "Zaporedje" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "_Close" |
|||
msgstr "_Zaključi" |
@ -0,0 +1,211 @@ |
|||
# Translation of Odoo Server. |
|||
# This file contains the translation of the following modules: |
|||
# * sale_exceptions |
|||
# |
|||
# Translators: |
|||
msgid "" |
|||
msgstr "" |
|||
"Project-Id-Version: sale-workflow (8.0)\n" |
|||
"Report-Msgid-Bugs-To: \n" |
|||
"POT-Creation-Date: 2015-09-09 12:27+0000\n" |
|||
"PO-Revision-Date: 2015-09-03 07:08+0000\n" |
|||
"Last-Translator: <>\n" |
|||
"Language-Team: Chinese (China) (http://www.transifex.com/oca/OCA-sale-workflow-8-0/language/zh_CN/)\n" |
|||
"MIME-Version: 1.0\n" |
|||
"Content-Type: text/plain; charset=UTF-8\n" |
|||
"Content-Transfer-Encoding: \n" |
|||
"Language: zh_CN\n" |
|||
"Plural-Forms: nplurals=1; plural=0;\n" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,active:0 |
|||
msgid "Active" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Affected Sales Orders" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,model:0 |
|||
msgid "Apply on" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_sales_order_filter |
|||
msgid "Blocked in draft" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:114 |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_exception_confirm |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
#, python-format |
|||
msgid "Blocked in draft due to exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_uid:0 field:sale.exception.confirm,create_uid:0 |
|||
msgid "Created by" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,create_date:0 |
|||
#: field:sale.exception.confirm,create_date:0 |
|||
msgid "Created on" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,description:0 |
|||
msgid "Description" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:192 |
|||
#, python-format |
|||
msgid "Error" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: code:addons/sale_exceptions/sale.py:193 |
|||
#, python-format |
|||
msgid "" |
|||
"Error when evaluating the sale exception rule:\n" |
|||
" %s \n" |
|||
"(%s)" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Error:" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.order:sale_exceptions.view_order_form |
|||
msgid "Exception" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,name:0 |
|||
msgid "Exception Name" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.actions.act_window,name:sale_exceptions.action_sale_test_tree |
|||
#: model:ir.ui.menu,name:sale_exceptions.menu_sale_test |
|||
msgid "Exception Rules" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,exception_ids:0 |
|||
msgid "Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,exception_ids:0 |
|||
msgid "Exceptions to resolve" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,sequence:0 |
|||
msgid "Gives the sequence order when applying the test" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,id:0 field:sale.exception.confirm,id:0 |
|||
msgid "ID" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,ignore:0 field:sale.order,ignore_exceptions:0 |
|||
msgid "Ignore Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_uid:0 field:sale.exception.confirm,write_uid:0 |
|||
msgid "Last Updated by" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,write_date:0 field:sale.exception.confirm,write_date:0 |
|||
msgid "Last Updated on" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.order,main_exception_id:0 |
|||
msgid "Main Exception" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_zip |
|||
msgid "No ZIP code on destination" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:sale.exception,name:sale_exceptions.excep_no_stock |
|||
msgid "Not Enough Virtual Stock" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,code:0 |
|||
msgid "Python Code" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: help:sale.exception,code:0 |
|||
msgid "" |
|||
"Python code executed to check if the exception apply or not. The code must " |
|||
"apply block = True to apply the exception." |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception.confirm,sale_id:0 |
|||
msgid "Sale" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_tree |
|||
msgid "Sale Exception" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception:sale_exceptions.view_sale_exception_form |
|||
msgid "Sale Exception Setup" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_exception |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "Sale Exceptions" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: selection:sale.exception,model:0 |
|||
msgid "Sale Order Line" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sale_order_ids:0 |
|||
msgid "Sale Orders" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: model:ir.model,name:sale_exceptions.model_sale_order |
|||
msgid "Sales Order" |
|||
msgstr "销售订单" |
|||
|
|||
#. module: sale_exceptions |
|||
#: field:sale.exception,sequence:0 |
|||
msgid "Sequence" |
|||
msgstr "" |
|||
|
|||
#. module: sale_exceptions |
|||
#: view:sale.exception.confirm:sale_exceptions.view_sale_exception_confirm |
|||
msgid "_Close" |
|||
msgstr "" |
@ -0,0 +1,188 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2011 Raphaël Valyi, Renato Lima, Guewen Baconnier, Sodexis |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
import time |
|||
|
|||
from openerp import api, models, fields |
|||
from openerp.exceptions import Warning |
|||
from openerp.tools.safe_eval import safe_eval |
|||
from openerp.tools.translate import _ |
|||
|
|||
|
|||
class SaleException(models.Model): |
|||
_name = 'sale.exception' |
|||
_description = "Sale Exceptions" |
|||
_order = 'active desc, sequence asc' |
|||
|
|||
name = fields.Char('Exception Name', required=True, translate=True) |
|||
description = fields.Text('Description', translate=True) |
|||
sequence = fields.Integer( |
|||
string='Sequence', |
|||
help="Gives the sequence order when applying the test") |
|||
model = fields.Selection( |
|||
[('sale.order', 'Sale Order'), |
|||
('sale.order.line', 'Sale Order Line')], |
|||
string='Apply on', required=True) |
|||
active = fields.Boolean('Active') |
|||
code = fields.Text( |
|||
'Python Code', |
|||
help="Python code executed to check if the exception apply or " |
|||
"not. The code must apply block = True to apply the " |
|||
"exception.", |
|||
default=""" |
|||
# Python code. Use failed = True to block the sale order. |
|||
# You can use the following variables : |
|||
# - self: ORM model of the record which is checked |
|||
# - order or line: browse_record of the sale order or sale order line |
|||
# - object: same as order or line, browse_record of the sale order or |
|||
# sale order line |
|||
# - pool: ORM model pool (i.e. self.pool) |
|||
# - time: Python time module |
|||
# - cr: database cursor |
|||
# - uid: current user id |
|||
# - context: current context |
|||
""") |
|||
sale_order_ids = fields.Many2many( |
|||
'sale.order', |
|||
'sale_order_exception_rel', 'exception_id', 'sale_order_id', |
|||
string='Sale Orders', |
|||
readonly=True) |
|||
|
|||
|
|||
class SaleOrder(models.Model): |
|||
_inherit = 'sale.order' |
|||
|
|||
_order = 'main_exception_id asc, date_order desc, name desc' |
|||
|
|||
main_exception_id = fields.Many2one( |
|||
'sale.exception', |
|||
compute='_get_main_error', |
|||
string='Main Exception', |
|||
store=True) |
|||
exception_ids = fields.Many2many( |
|||
'sale.exception', |
|||
'sale_order_exception_rel', 'sale_order_id', 'exception_id', |
|||
string='Exceptions') |
|||
ignore_exceptions = fields.Boolean('Ignore Exceptions', copy=False) |
|||
|
|||
@api.one |
|||
@api.depends('state', 'exception_ids') |
|||
def _get_main_error(self): |
|||
if self.state == 'draft' and self.exception_ids: |
|||
self.main_exception_id = self.exception_ids[0] |
|||
else: |
|||
self.main_exception_id = False |
|||
|
|||
@api.model |
|||
def test_all_draft_orders(self): |
|||
order_set = self.search([('state', '=', 'draft')]) |
|||
order_set.test_exceptions() |
|||
return True |
|||
|
|||
@api.multi |
|||
def _popup_exceptions(self): |
|||
action = self.env.ref('sale_exception.action_sale_exception_confirm') |
|||
action = action.read()[0] |
|||
action.update({ |
|||
'context': { |
|||
'active_id': self.ids[0], |
|||
'active_ids': self.ids |
|||
} |
|||
}) |
|||
return action |
|||
|
|||
@api.multi |
|||
def action_confirm(self): |
|||
if self.detect_exceptions(): |
|||
return self._popup_exceptions() |
|||
else: |
|||
return super(SaleOrder, self).action_confirm() |
|||
|
|||
@api.multi |
|||
def action_cancel(self): |
|||
for order in self: |
|||
if order.ignore_exceptions: |
|||
order.ignore_exceptions = False |
|||
return super(SaleOrder, self).action_cancel() |
|||
|
|||
@api.multi |
|||
def test_exceptions(self): |
|||
""" |
|||
Condition method for the workflow from draft to confirm |
|||
""" |
|||
if self.detect_exceptions(): |
|||
return False |
|||
return True |
|||
|
|||
@api.multi |
|||
def detect_exceptions(self): |
|||
"""returns the list of exception_ids for all the considered sale orders |
|||
|
|||
as a side effect, the sale order's exception_ids column is updated with |
|||
the list of exceptions related to the SO |
|||
""" |
|||
exception_obj = self.env['sale.exception'] |
|||
order_exceptions = exception_obj.search( |
|||
[('model', '=', 'sale.order')]) |
|||
line_exceptions = exception_obj.search( |
|||
[('model', '=', 'sale.order.line')]) |
|||
|
|||
all_exception_ids = [] |
|||
for order in self: |
|||
if order.ignore_exceptions: |
|||
continue |
|||
exception_ids = order._detect_exceptions(order_exceptions, |
|||
line_exceptions) |
|||
order.exception_ids = [(6, 0, exception_ids)] |
|||
all_exception_ids += exception_ids |
|||
return all_exception_ids |
|||
|
|||
@api.model |
|||
def _exception_rule_eval_context(self, obj_name, rec): |
|||
user = self.env['res.users'].browse(self._uid) |
|||
return {obj_name: rec, |
|||
'self': self.pool.get(rec._name), |
|||
'object': rec, |
|||
'obj': rec, |
|||
'pool': self.pool, |
|||
'cr': self._cr, |
|||
'uid': self._uid, |
|||
'user': user, |
|||
'time': time, |
|||
# copy context to prevent side-effects of eval |
|||
'context': self._context.copy()} |
|||
|
|||
@api.model |
|||
def _rule_eval(self, rule, obj_name, rec): |
|||
expr = rule.code |
|||
space = self._exception_rule_eval_context(obj_name, rec) |
|||
try: |
|||
safe_eval(expr, |
|||
space, |
|||
mode='exec', |
|||
nocopy=True) # nocopy allows to return 'result' |
|||
except Exception, e: |
|||
raise Warning( |
|||
_('Error when evaluating the sale exception ' |
|||
'rule:\n %s \n(%s)') % (rule.name, e)) |
|||
return space.get('failed', False) |
|||
|
|||
@api.multi |
|||
def _detect_exceptions(self, order_exceptions, |
|||
line_exceptions): |
|||
self.ensure_one() |
|||
exception_ids = [] |
|||
for rule in order_exceptions: |
|||
if self._rule_eval(rule, 'order', self): |
|||
exception_ids.append(rule.id) |
|||
|
|||
for order_line in self.order_line: |
|||
for rule in line_exceptions: |
|||
if rule.id in exception_ids: |
|||
# we do not matter if the exception as already been |
|||
# found for an order line of this order |
|||
continue |
|||
if self._rule_eval(rule, 'line', order_line): |
|||
exception_ids.append(rule.id) |
|||
return exception_ids |
@ -0,0 +1,19 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<openerp> |
|||
<data noupdate="1"> |
|||
|
|||
<record forcecreate="True" id="ir_cron_test_orders" model="ir.cron"> |
|||
<field name="name">Test Draft Orders</field> |
|||
<field eval="False" name="active"/> |
|||
<field name="user_id" ref="base.user_root"/> |
|||
<field name="interval_number">20</field> |
|||
<field name="interval_type">minutes</field> |
|||
<field name="numbercall">-1</field> |
|||
<field eval="False" name="doall"/> |
|||
<field eval="'sale.order'" name="model"/> |
|||
<field eval="'test_all_draft_orders'" name="function"/> |
|||
<field eval="'()'" name="args"/> |
|||
</record> |
|||
|
|||
</data> |
|||
</openerp> |
@ -0,0 +1,114 @@ |
|||
<?xml version="1.0" ?> |
|||
<openerp> |
|||
<data> |
|||
|
|||
<record id="view_sale_exception_tree" model="ir.ui.view"> |
|||
<field name="name">sale.exception.tree</field> |
|||
<field name="model">sale.exception</field> |
|||
<field name="arch" type="xml"> |
|||
<tree string="Sale Exception"> |
|||
<field name="active"/> |
|||
<field name="name"/> |
|||
<field name="description"/> |
|||
<field name="model"/> |
|||
<field name="sequence"/> |
|||
</tree> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_sale_exception_form" model="ir.ui.view"> |
|||
<field name="name">sale.exception.form</field> |
|||
<field name="model">sale.exception</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Sale Exception Setup" name="sale_exception"> |
|||
<group colspan="4" col="2"> |
|||
<field name="name"/> |
|||
<field name="description"/> |
|||
</group> |
|||
<group colspan="4" groups="base.group_sale_manager"> |
|||
<field name="active"/> |
|||
<field name="sequence"/> |
|||
</group> |
|||
<group colspan="4" col="2" groups="base.group_system"> |
|||
<field name="model"/> |
|||
<field name="code"/> |
|||
</group> |
|||
<group colspan="4" col="2"> |
|||
<separator string="Affected Sales Orders"/> |
|||
<newline/> |
|||
<field name="sale_order_ids" nolabel="1" domain="[('state', '=', 'draft')]"/> |
|||
</group> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="action_sale_test_tree" model="ir.actions.act_window"> |
|||
<field name="name">Exception Rules</field> |
|||
<field name="res_model">sale.exception</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">tree,form</field> |
|||
<field name="view_id" ref="view_sale_exception_tree"/> |
|||
<field name="context">{'active_test': False}</field> |
|||
</record> |
|||
|
|||
<menuitem action="action_sale_test_tree" id="menu_sale_test" parent="base.menu_sale_config_sales" /> |
|||
|
|||
|
|||
<record id="view_order_form" model="ir.ui.view"> |
|||
<field name="name">sale_exception.view_order_form</field> |
|||
<field name="model">sale.order</field> |
|||
<field name="inherit_id" ref="sale.view_order_form"/> |
|||
<field name="arch" type="xml"> |
|||
<field name="name" position="after"> |
|||
<group> |
|||
<field name="main_exception_id" options='{"no_open": True}' |
|||
class="oe_inline" string="Error:" |
|||
attrs="{'invisible':[('main_exception_id','=', False)]}"/> |
|||
</group> |
|||
</field> |
|||
<xpath expr="//group[@name='sales_person']/.." |
|||
position="inside"> |
|||
<newline /> |
|||
<group name="exception" colspan="2" col="2"> |
|||
<separator string="Exception" colspan="2"/> |
|||
<field name="exception_ids" colspan="2" nolabel="1"/> |
|||
</group> |
|||
</xpath> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_order_tree" model="ir.ui.view"> |
|||
<field name="name">sale_exception.view_order_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="main_exception_id"/> |
|||
</field> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_quotation_tree" model="ir.ui.view"> |
|||
<field name="name">sale_exception.view_order_tree</field> |
|||
<field name="model">sale.order</field> |
|||
<field name="inherit_id" ref="sale.view_quotation_tree"/> |
|||
<field name="arch" type="xml"> |
|||
<field name="state" position="after"> |
|||
<field name="main_exception_id"/> |
|||
</field> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="view_sales_order_filter" model="ir.ui.view"> |
|||
<field name="name">sale_exception.view_sales_order_filter</field> |
|||
<field name="model">sale.order</field> |
|||
<field name="inherit_id" ref="sale.view_sales_order_filter" /> |
|||
<field name="arch" type="xml"> |
|||
<filter name="sales" position="after"> |
|||
<separator orientation="vertical"/> |
|||
<filter icon="terp-emblem-important" name="tofix" string="Blocked in draft" domain="[('main_exception_id','!=',False)]"/> |
|||
</filter> |
|||
</field> |
|||
</record> |
|||
</data> |
|||
</openerp> |
@ -0,0 +1,3 @@ |
|||
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink" |
|||
"access_sale_exception","sale.exception","model_sale_exception","base.group_user",1,0,0,0 |
|||
"access_sale_exception_manager","sale.exception","model_sale_exception","base.group_sale_manager",1,1,1,1 |
@ -0,0 +1,5 @@ |
|||
"id","name","description","sequence","model","code","active" |
|||
"excep_no_zip","No ZIP code on destination",,50,"sale.order","if not order.partner_shipping_id.zip: |
|||
failed=True",False |
|||
"excep_no_stock","Not Enough Virtual Stock",,50,"sale.order.line","if line.product_id and line.product_id.type == 'product' and line.product_id.virtual_available < line.product_uom_qty: |
|||
failed=True",False |
After Width: 128 | Height: 128 | Size: 9.2 KiB |
@ -0,0 +1,5 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2011 Raphaël Valyi, Renato Lima, Guewen Baconnier, Sodexis |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from . import sale_exception_confirm |
@ -0,0 +1,35 @@ |
|||
# -*- coding: utf-8 -*- |
|||
# © 2011 Raphaël Valyi, Renato Lima, Guewen Baconnier, Sodexis |
|||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). |
|||
|
|||
from openerp import models, fields, api |
|||
|
|||
|
|||
class SaleExceptionConfirm(models.TransientModel): |
|||
|
|||
_name = 'sale.exception.confirm' |
|||
|
|||
sale_id = fields.Many2one('sale.order', 'Sale') |
|||
exception_ids = fields.Many2many('sale.exception', |
|||
string='Exceptions to resolve', |
|||
readonly=True) |
|||
ignore = fields.Boolean('Ignore Exceptions') |
|||
|
|||
@api.model |
|||
def default_get(self, field_list): |
|||
res = super(SaleExceptionConfirm, self).default_get(field_list) |
|||
order_obj = self.env['sale.order'] |
|||
sale_id = self._context.get('active_ids') |
|||
assert len(sale_id) == 1, "Only 1 ID accepted, got %r" % sale_id |
|||
sale_id = sale_id[0] |
|||
sale = order_obj.browse(sale_id) |
|||
exception_ids = [e.id for e in sale.exception_ids] |
|||
res.update({'exception_ids': [(6, 0, exception_ids)]}) |
|||
res.update({'sale_id': sale_id}) |
|||
return res |
|||
|
|||
@api.one |
|||
def action_confirm(self): |
|||
if self.ignore: |
|||
self.sale_id.ignore_exceptions = True |
|||
return {'type': 'ir.actions.act_window_close'} |
@ -0,0 +1,39 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<openerp> |
|||
<data> |
|||
|
|||
<record id="view_sale_exception_confirm" model="ir.ui.view"> |
|||
<field name="name">Sale Exceptions</field> |
|||
<field name="model">sale.exception.confirm</field> |
|||
<field name="arch" type="xml"> |
|||
<form string="Blocked in draft due to exceptions" version="7.0"> |
|||
<group> |
|||
<field name="exception_ids" nolabel="1" colspan="4"> |
|||
<tree string="Sale Exceptions"> |
|||
<field name="name"/> |
|||
<field name="description"/> |
|||
</tree> |
|||
</field> |
|||
<newline/> |
|||
<field name="ignore" groups='base.group_sale_manager'/> |
|||
</group> |
|||
<footer> |
|||
<button name="action_confirm" string="_Close" |
|||
colspan="1" type="object" icon="gtk-ok" /> |
|||
</footer> |
|||
</form> |
|||
</field> |
|||
</record> |
|||
|
|||
<record id="action_sale_exception_confirm" model="ir.actions.act_window"> |
|||
<field name="name">Blocked in draft due to exceptions</field> |
|||
<field name="type">ir.actions.act_window</field> |
|||
<field name="res_model">sale.exception.confirm</field> |
|||
<field name="view_type">form</field> |
|||
<field name="view_mode">form</field> |
|||
<field name="view_id" ref="view_sale_exception_confirm"/> |
|||
<field name="target">new</field> |
|||
</record> |
|||
|
|||
</data> |
|||
</openerp> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue