diff -Nru tryton-modules-sale-2.2.2/CHANGELOG tryton-modules-sale-2.8.0/CHANGELOG
--- tryton-modules-sale-2.2.2/CHANGELOG 2012-05-07 09:10:04.000000000 +0000
+++ tryton-modules-sale-2.8.0/CHANGELOG 2013-04-22 09:08:14.000000000 +0000
@@ -1,9 +1,19 @@
-Version 2.2.2 - 2012-05-07
+Version 2.8.0 - 2013-04-22
* Bug fixes (see mercurial logs for details)
+* Use origin Reference on Invoice Line and Stock Move
-Version 2.2.1 - 2011-12-26
+Version 2.6.0 - 2012-10-22
* Bug fixes (see mercurial logs for details)
+Version 2.4.0 - 2012-04-24
+* Bug fixes (see mercurial logs for details)
+* Manage negative amounts in sale
+* Add cache on amount fields in readonly states
+* Confirmed state split into Confirmed and Processing
+* Add a Function field delivery_date to sale line
+* Sale date is required only at confirmation
+* warehouse is not always required
+
Version 2.2.0 - 2011-10-25
* Bug fixes (see mercurial logs for details)
* Add delivery time on product
diff -Nru tryton-modules-sale-2.2.2/COPYRIGHT tryton-modules-sale-2.8.0/COPYRIGHT
--- tryton-modules-sale-2.2.2/COPYRIGHT 2012-05-06 10:56:10.000000000 +0000
+++ tryton-modules-sale-2.8.0/COPYRIGHT 2013-04-22 09:08:13.000000000 +0000
@@ -1,6 +1,6 @@
-Copyright (C) 2008-2012 Cédric Krier.
-Copyright (C) 2008-2011 Bertrand Chenal.
-Copyright (C) 2008-2012 B2CK SPRL.
+Copyright (C) 2008-2013 Cédric Krier.
+Copyright (C) 2008-2013 Bertrand Chenal.
+Copyright (C) 2008-2013 B2CK SPRL.
Copyright (C) 2004-2008 Tiny SPRL.
This program is free software: you can redistribute it and/or modify
diff -Nru tryton-modules-sale-2.2.2/INSTALL tryton-modules-sale-2.8.0/INSTALL
--- tryton-modules-sale-2.2.2/INSTALL 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/INSTALL 2012-03-25 17:25:13.000000000 +0000
@@ -4,7 +4,7 @@
Prerequisites
-------------
- * Python 2.5 or later (http://www.python.org/)
+ * Python 2.6 or later (http://www.python.org/)
* trytond (http://www.tryton.org/)
* trytond_company (http://www.tryton.org/)
* trytond_party (http://www.tryton.org/)
diff -Nru tryton-modules-sale-2.2.2/MANIFEST.in tryton-modules-sale-2.8.0/MANIFEST.in
--- tryton-modules-sale-2.2.2/MANIFEST.in 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/MANIFEST.in 2013-03-11 18:08:44.000000000 +0000
@@ -4,7 +4,10 @@
include COPYRIGHT
include CHANGELOG
include LICENSE
+include tryton.cfg
include *.xml
+include view/*.xml
include *.odt
include locale/*.po
include doc/*
+include tests/*.rst
diff -Nru tryton-modules-sale-2.2.2/PKG-INFO tryton-modules-sale-2.8.0/PKG-INFO
--- tryton-modules-sale-2.2.2/PKG-INFO 2012-05-07 09:10:07.000000000 +0000
+++ tryton-modules-sale-2.8.0/PKG-INFO 2013-04-22 09:08:18.000000000 +0000
@@ -1,27 +1,48 @@
Metadata-Version: 1.1
Name: trytond_sale
-Version: 2.2.2
-Summary: Define sale order.
-Add to product sale informations.
-Define the sale price as the list price.
-
-With the possibilities:
- - to follow invoice and shipment states from the sale order.
- - to define invoice method:
- - Manual
- - On Order Confirmed
- - On shipment Sent
- - to define shipment method:
- - Manual
- - On Order Confirmed
- - On Invoice Paid
-
+Version: 2.8.0
+Summary: Tryton module for sale
Home-page: http://www.tryton.org/
-Author: B2CK
-Author-email: info@b2ck.com
+Author: Tryton
+Author-email: UNKNOWN
License: GPL-3
-Download-URL: http://downloads.tryton.org/2.2/
-Description: UNKNOWN
+Download-URL: http://downloads.tryton.org/2.8/
+Description: trytond_sale
+ ============
+
+ The sale module of the Tryton application platform.
+
+ Installing
+ ----------
+
+ See INSTALL
+
+ Support
+ -------
+
+ If you encounter any problems with Tryton, please don't hesitate to ask
+ questions on the Tryton bug tracker, mailing list, wiki or IRC channel:
+
+ http://bugs.tryton.org/
+ http://groups.tryton.org/
+ http://wiki.tryton.org/
+ irc://irc.freenode.net/tryton
+
+ License
+ -------
+
+ See LICENSE
+
+ Copyright
+ ---------
+
+ See COPYRIGHT
+
+
+ For more information please visit the Tryton web site:
+
+ http://www.tryton.org/
+
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
@@ -31,6 +52,7 @@
Classifier: Intended Audience :: Legal Industry
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Natural Language :: Bulgarian
+Classifier: Natural Language :: Catalan
Classifier: Natural Language :: Czech
Classifier: Natural Language :: Dutch
Classifier: Natural Language :: English
diff -Nru tryton-modules-sale-2.2.2/README tryton-modules-sale-2.8.0/README
--- tryton-modules-sale-2.2.2/README 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/README 2012-06-08 17:35:33.000000000 +0000
@@ -2,7 +2,6 @@
============
The sale module of the Tryton application platform.
-See __tryton__.py
Installing
----------
diff -Nru tryton-modules-sale-2.2.2/__init__.py tryton-modules-sale-2.8.0/__init__.py
--- tryton-modules-sale-2.2.2/__init__.py 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/__init__.py 2013-03-23 14:45:38.000000000 +0000
@@ -1,6 +1,39 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
-from sale import *
-from configuration import *
-from invoice import *
+from trytond.pool import Pool
+from .sale import *
+from .configuration import *
+from .invoice import *
+
+
+def register():
+ Pool.register(
+ Move,
+ Sale,
+ SaleInvoice,
+ SaleIgnoredInvoice,
+ SaleRecreatedInvoice,
+ SaleLine,
+ SaleLineTax,
+ SaleLineIgnoredMove,
+ SaleLineRecreatedMove,
+ Template,
+ Product,
+ ShipmentOut,
+ ShipmentOutReturn,
+ HandleShipmentExceptionAsk,
+ HandleInvoiceExceptionAsk,
+ Configuration,
+ Invoice,
+ InvoiceLine,
+ module='sale', type_='model')
+ Pool.register(
+ OpenCustomer,
+ HandleShipmentException,
+ HandleInvoiceException,
+ ReturnSale,
+ module='sale', type_='wizard')
+ Pool.register(
+ SaleReport,
+ module='sale', type_='report')
diff -Nru tryton-modules-sale-2.2.2/__tryton__.py tryton-modules-sale-2.8.0/__tryton__.py
--- tryton-modules-sale-2.2.2/__tryton__.py 2011-12-26 09:41:02.000000000 +0000
+++ tryton-modules-sale-2.8.0/__tryton__.py 1970-01-01 00:00:00.000000000 +0000
@@ -1,148 +0,0 @@
-#This file is part of Tryton. The COPYRIGHT file at the top level of
-#this repository contains the full copyright notices and license terms.
-{
- 'name': 'Sale',
- 'name_bg_BG': 'Продажби',
- 'name_de_DE': 'Verkauf',
- 'name_es_CO': 'Ventas',
- 'name_es_ES': 'Venta',
- 'name_fr_FR': 'Vente',
- 'name_nl_NL': 'Verkoop',
- 'version': '2.2.2',
- 'author': 'B2CK',
- 'email': 'info@b2ck.com',
- 'website': 'http://www.tryton.org/',
- 'description': '''Define sale order.
-Add to product sale informations.
-Define the sale price as the list price.
-
-With the possibilities:
- - to follow invoice and shipment states from the sale order.
- - to define invoice method:
- - Manual
- - On Order Confirmed
- - On shipment Sent
- - to define shipment method:
- - Manual
- - On Order Confirmed
- - On Invoice Paid
-''',
- 'description_bg_BG': ''' Задаване на поръчка за продажба.
- - Добавяне на информация за продажба на продукт.
- - Задаване на продажна цена като ценова листа.
-
-Със следните възможности:
- - проследяване на състоянията на фактура и доставка от поръчката за продажба
- - задаване на начини на фактуриране:
- - Ръчно
- - При потвърждаване на поръчката
- - При изпращане
- - задаване на начина на доставка:
- - Ръчно
- - При потвърждаване на поръчката
- - При плащане на фактурата
-''',
- 'description_de_DE': ''' - Dient der Erstellung von Verkaufsvorgängen (Entwurf, Angebot, Auftrag).
- - Fügt den Artikeln Einkaufsinformationen hinzu.
- - Erlaubt die Definition des Einkaufspreises als Listenpreis.
-
-Ermöglicht:
- - die Verfolgung des Status von Rechnungsstellung und Versand für Verkäufe
- - die Festlegung der Methode für die Rechnungsstellung:
- - Manuell
- - Nach Auftragsbestätigung
- - Nach Versand
- - die Festlegung der Methode für den Versand:
- - Manuell
- - Nach Auftragsbestätigung
- - Nach Bezahlung
-''',
- 'description_es_CO': ''' - Define la orden de Ventas.
- - Se añade al producto la información de ventas.
- - Definición del precio de venta y el precio de lista.
-
- - Con las posibilidades de:
- - seguir los estados de facturación y empaque desde la orden de venta.
- - definir el método de facturación:
- - Manual
- - Al Confirmar la Orden
- - Al Envío del Paquete
- - definir el método de empaque:
- - Manual
- - Al Confirmar la Orden
- - Contra el Pago de la Factura
-''',
- 'description_es_ES': '''Define orden de venta.
- - Añade a los productos información de ventas.
- - Define el precio de venta como el precio de lista.
-
- - Con la posibilidad de:
- - seguir los estados de facturación y envio desde la orden de venta.
- - definir el método de facturación:
- - Manual
- - A la confirmación de la orden
- - Al enviarlo
- - definir el método de envio:
- - Manual
- - Al confirmar la orden
- - Al pagar la factura
-''',
- 'description_fr_FR': '''Défini l'ordre de vente.
-Ajoute au produit les informations de vente.
-
-Avec la possibilité:
- - de suivre l'état de la facture et du colisage depuis l'ordre de vente
- - de choisir entre plusieurs méthodes de facturation:
- - Manuelle
- - Sur confirmation de la commande
- - À la livraison
- - de choisir entre plusieurs méthodes de colisage:
- - Manuelle
- - Sur confirmation de la commande
- - Au paiement de la facture
-''',
- 'description_nl_NL': '''Verkoopmodule.
-Voegt verkoopinformatie toe aan producten.
-Zet de catalogusprijs als verkoopprijs.
-
-Biedt mogelijkheden tot:
- - het volgen van de factuur en de aflevering vanuit de offerte.
- - het instellen van de factuurafhandeling:
- - Handmatig
- - Bij opdrachtbevestiging
- - Bij aflevering
- - het instellen van de aflevering:
- - Handmatig
- - Bij opdrachtbevestiging
- - Na betaling
-''',
- 'depends': [
- 'company',
- 'party',
- 'stock',
- 'account',
- 'product',
- 'account_invoice',
- 'workflow',
- 'res',
- 'ir',
- 'currency',
- 'account_product',
- ],
- 'xml': [
- 'sale.xml',
- 'configuration.xml',
- 'party.xml',
- ],
- 'translation': [
- 'locale/bg_BG.po',
- 'locale/cs_CZ.po',
- 'locale/de_DE.po',
- 'locale/es_CO.po',
- 'locale/es_ES.po',
- 'locale/fr_FR.po',
- 'locale/nl_NL.po',
- 'locale/fr_FR.po',
- 'locale/ru_RU.po',
- ],
-}
diff -Nru tryton-modules-sale-2.2.2/configuration.py tryton-modules-sale-2.8.0/configuration.py
--- tryton-modules-sale-2.2.2/configuration.py 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/configuration.py 2012-09-24 20:22:04.000000000 +0000
@@ -3,12 +3,12 @@
from trytond.model import ModelView, ModelSQL, ModelSingleton, fields
from trytond.pyson import Eval, Bool
+__all__ = ['Configuration']
+
class Configuration(ModelSingleton, ModelSQL, ModelView):
'Sale Configuration'
- _name = 'sale.configuration'
- _description = __doc__
-
+ __name__ = 'sale.configuration'
sale_sequence = fields.Property(fields.Many2One('ir.sequence',
'Sale Reference Sequence', domain=[
('company', 'in', [Eval('context', {}).get('company', 0),
@@ -17,17 +17,15 @@
], required=True))
sale_invoice_method = fields.Property(fields.Selection([
('manual', 'Manual'),
- ('order', 'On Order Confirmed'),
+ ('order', 'On Order Processed'),
('shipment', 'On Shipment Sent')
], 'Sale Invoice Method', states={
'required': Bool(Eval('context', {}).get('company', 0)),
}))
sale_shipment_method = fields.Property(fields.Selection([
('manual', 'Manual'),
- ('order', 'On Order Confirmed'),
+ ('order', 'On Order Processed'),
('invoice', 'On Invoice Paid'),
], 'Sale Shipment Method', states={
'required': Bool(Eval('context', {}).get('company', 0)),
}))
-
-Configuration()
diff -Nru tryton-modules-sale-2.2.2/configuration.xml tryton-modules-sale-2.8.0/configuration.xml
--- tryton-modules-sale-2.2.2/configuration.xml 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/configuration.xml 2013-03-11 18:08:44.000000000 +0000
@@ -14,19 +14,7 @@
sale.configuration
form
-
-
-
-
-
-
-
-
-
-
- ]]>
-
+ configuration_form
Sales Configuration
@@ -43,19 +31,16 @@
id="menu_sale_configuration" icon="tryton-list"/>
- sale_sequence
- sale_invoice_method
,order
- sale_shipment_method
,order
diff -Nru tryton-modules-sale-2.2.2/debian/changelog tryton-modules-sale-2.8.0/debian/changelog
--- tryton-modules-sale-2.2.2/debian/changelog 2012-06-30 16:29:36.000000000 +0000
+++ tryton-modules-sale-2.8.0/debian/changelog 2013-05-31 15:40:15.000000000 +0000
@@ -1,23 +1,79 @@
-tryton-modules-sale (2.2.2-2) unstable; urgency=low
+tryton-modules-sale (2.8.0-2) unstable; urgency=low
+ * Adding doc/ to docs file.
+ * Simplifying package layout by renaming .docs to docs.
+ * Removing needless empty line in rules.
+
+ -- Mathias Behrle Fri, 31 May 2013 17:27:09 +0200
+
+tryton-modules-sale (2.8.0-1) experimental; urgency=low
+
+ * Merging upstream version 2.8.0.
+ * Updating copyright.
+
+ -- Mathias Behrle Thu, 02 May 2013 15:20:46 +0200
+
+tryton-modules-sale (2.6.1-3) experimental; urgency=low
+
+ * Removing Daniel from Uploaders. Thanks for your work! (Closes: #704397).
+ * Improving update of major version in Depends.
+
+ -- Mathias Behrle Sat, 27 Apr 2013 15:08:40 +0200
+
+tryton-modules-sale (2.6.1-2) experimental; urgency=low
+
+ * Updating Vcs-Git to correct address.
+ * Adding watch file. Thanks to Bart Martens .
+
+ -- Mathias Behrle Sat, 23 Mar 2013 14:01:11 +0100
+
+tryton-modules-sale (2.6.1-1) experimental; urgency=low
+
+ * Removing obsolete Dm-Upload-Allowed
+ * Updating to Standards-Version: 3.9.4, no changes needed.
+ * Merging upstream version 2.6.1.
+ * Updating copyright.
+
+ -- Mathias Behrle Sat, 16 Feb 2013 21:42:48 +0100
+
+tryton-modules-sale (2.6.0-1) experimental; urgency=low
+
+ * Merging upstream version 2.6.0.
+ * Bumping versioned tryton depends to 2.6.
+
+ -- Mathias Behrle Wed, 24 Oct 2012 14:25:02 +0200
+
+tryton-modules-sale (2.4.1-2) experimental; urgency=low
+
+ [ Daniel Baumann ]
* Updating maintainers field.
* Updating vcs fields.
* Correcting copyright file to match format version 1.0.
* Switching to xz compression.
* Updating to debhelper version 9.
- -- Daniel Baumann Sat, 30 Jun 2012 18:28:32 +0200
+ [ Mathias Behrle ]
+ * Merging branch debian-wheezy-2.2 (Closes: #687757).
+
+ -- Mathias Behrle Tue, 18 Sep 2012 13:43:00 +0200
+
+tryton-modules-sale (2.4.1-1) experimental; urgency=low
-tryton-modules-sale (2.2.2-1) unstable; urgency=low
+ * Merging upstream version 2.4.1.
+
+ -- Mathias Behrle Tue, 11 Sep 2012 13:19:44 +0200
+
+tryton-modules-sale (2.4.0-1) experimental; urgency=low
* Updating to Standards-Version: 3.9.3, no changes needed.
* Updating year in copyright.
* Adding myself to copyright.
* Adding Format header for DEP5.
- * Merging upstream version 2.2.2.
- * Updating years in copyright.
+ * Merging upstream version 2.4.0.
+ * Updating Copyright.
+ * Bumping versioned tryton depends to 2.4.
- -- Mathias Behrle Wed, 09 May 2012 11:56:20 +0200
+ -- Mathias Behrle Thu, 26 Apr 2012 19:32:28 +0200
tryton-modules-sale (2.2.1-1) unstable; urgency=low
diff -Nru tryton-modules-sale-2.2.2/debian/control tryton-modules-sale-2.8.0/debian/control
--- tryton-modules-sale-2.2.2/debian/control 2012-06-30 16:02:08.000000000 +0000
+++ tryton-modules-sale-2.8.0/debian/control 2013-05-04 15:26:19.000000000 +0000
@@ -2,24 +2,26 @@
Section: python
Priority: optional
Maintainer: Debian Tryton Maintainers
-Uploaders: Daniel Baumann , Mathias Behrle
-Dm-Upload-Allowed: yes
+Uploaders: Mathias Behrle
Build-Depends: debhelper (>= 9), python (>= 2.6.6-3~), python-setuptools
-Standards-Version: 3.9.3
+Standards-Version: 3.9.4
Homepage: http://www.tryton.org/
Vcs-Browser: http://debian.tryton.org/gitweb/?p=packages/tryton-modules-sale.git
-Vcs-Git: git://debian.tryton.org/git/packages/tryton-modules-sale.git
+Vcs-Git: git://debian.tryton.org/packages/tryton-modules-sale.git
X-Python-Version: >= 2.6
Package: tryton-modules-sale
Architecture: all
Depends:
- ${misc:Depends}, ${python:Depends}, tryton-server (>= 2.2),
- tryton-modules-account (>= 2.2), tryton-modules-account-invoice (>= 2.2),
- tryton-modules-account-product (>= 2.2), tryton-modules-company (>= 2.2),
- tryton-modules-currency (>= 2.2), tryton-modules-party (>= 2.2),
- tryton-modules-product (>= 2.2), tryton-modules-stock (>= 2.2),
- python-pkg-resources
+ ${misc:Depends}, ${python:Depends}, tryton-server (>= ${version:major}),
+ tryton-modules-account (>= ${version:major}),
+ tryton-modules-account-invoice (>= ${version:major}),
+ tryton-modules-account-product (>= ${version:major}),
+ tryton-modules-company (>= ${version:major}),
+ tryton-modules-currency (>= ${version:major}),
+ tryton-modules-party (>= ${version:major}),
+ tryton-modules-product (>= ${version:major}),
+ tryton-modules-stock (>= ${version:major}), python-pkg-resources
Description: Tryton Application Platform (Sale Module)
Tryton is a high-level general purpose application platform written in Python
and using PostgreSQL as database engine. It is the core base of a complete
diff -Nru tryton-modules-sale-2.2.2/debian/copyright tryton-modules-sale-2.8.0/debian/copyright
--- tryton-modules-sale-2.2.2/debian/copyright 2012-06-30 15:49:16.000000000 +0000
+++ tryton-modules-sale-2.8.0/debian/copyright 2013-05-04 15:26:19.000000000 +0000
@@ -1,17 +1,16 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Files: *
-Copyright:
+Copyright: 2008-2013 Cédric Krier
+ 2008-2013 Bertrand Chenal
+ 2008-2013 B2CK SPRL
2004-2008 Tiny SPRL
- 2008-2012 Cedric Krier
- 2008-2011 Bertrand Chenal
- 2008-2012 B2CK SPRL
License: GPL-3+
Files: debian/*
Copyright:
2009-2012 Daniel Baumann
- 2012 Mathias Behrle
+ 2012-2013 Mathias Behrle
License: GPL-3+
License: GPL-3+
diff -Nru tryton-modules-sale-2.2.2/debian/docs tryton-modules-sale-2.8.0/debian/docs
--- tryton-modules-sale-2.2.2/debian/docs 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/debian/docs 2013-05-29 15:06:22.000000000 +0000
@@ -0,0 +1,2 @@
+TODO
+doc/
diff -Nru tryton-modules-sale-2.2.2/debian/rules tryton-modules-sale-2.8.0/debian/rules
--- tryton-modules-sale-2.2.2/debian/rules 2012-06-30 15:59:53.000000000 +0000
+++ tryton-modules-sale-2.8.0/debian/rules 2013-05-29 15:16:07.000000000 +0000
@@ -1,12 +1,16 @@
#!/usr/bin/make -f
+MAJOR := $(shell python setup.py --version | awk -F "." '{print $$1 "." $$2}')
+
%:
dh ${@} --with python2
override_dh_auto_clean:
dh_auto_clean
-
rm -rf *.egg-info
+override_dh_gencontrol:
+ dh_gencontrol -- -Vversion:major="$(MAJOR)"
+
override_dh_builddeb:
dh_builddeb -- -Zxz -z9
diff -Nru tryton-modules-sale-2.2.2/debian/tryton-modules-sale.docs tryton-modules-sale-2.8.0/debian/tryton-modules-sale.docs
--- tryton-modules-sale-2.2.2/debian/tryton-modules-sale.docs 2012-06-30 14:44:55.000000000 +0000
+++ tryton-modules-sale-2.8.0/debian/tryton-modules-sale.docs 1970-01-01 00:00:00.000000000 +0000
@@ -1 +0,0 @@
-TODO
diff -Nru tryton-modules-sale-2.2.2/debian/watch tryton-modules-sale-2.8.0/debian/watch
--- tryton-modules-sale-2.2.2/debian/watch 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/debian/watch 2013-05-04 15:26:19.000000000 +0000
@@ -0,0 +1,2 @@
+version=3
+http://downloads.tryton.org/current/ .*trytond_sale-(\d.*)\.(?:tgz|tbz2|txz|tar\.(?:gz|bz2|xz))
diff -Nru tryton-modules-sale-2.2.2/doc/index.rst tryton-modules-sale-2.8.0/doc/index.rst
--- tryton-modules-sale-2.2.2/doc/index.rst 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/doc/index.rst 2012-04-03 08:28:35.000000000 +0000
@@ -49,12 +49,12 @@
- Tax: The tax amount.
- Total: The total amount.
- State: The state of the sale. May take one of the following
- values: Draft, Quotation, Confirmed, Cancelled.
+ values: Draft, Quotation, Confirmed, Processing, Cancelled.
- Company: The company which issue the sale order.
- Invoice Method: May take one of the following values:
- - On Order Confirmed: The invoice is created when the sale order is
- confirmed.
+ - On Order Processed: The invoice is created when the sale order is
+ processed.
- On Shipment Sent: The invoice is created when the shipment is sent
and will contains the shipped quantities. If there are several
shipments for the same sale, several invoices will be created.
@@ -62,8 +62,8 @@
- Shipment Method: May take one of the following values:
- - On Order Confirmed: The customer shipment is created when the sale
- order is confirmed.
+ - On Order Processed: The customer shipment is created when the sale
+ order is processed.
- On Invoice Paid: The customer shipment is created when the invoice
is paid.
- Manual: Tryton doesn't create any shipment automatically.
@@ -76,6 +76,7 @@
- Invoices: The list of related invoices.
- Moves: The list of related stock moves.
- Shipments: The list of related shipments.
+- Return Shipments: The list of related shipments return.
The *Sale* report allow to print the sale orders or to send
them by mail.
diff -Nru tryton-modules-sale-2.2.2/invoice.py tryton-modules-sale-2.8.0/invoice.py
--- tryton-modules-sale-2.2.2/invoice.py 2012-04-24 12:20:18.000000000 +0000
+++ tryton-modules-sale-2.8.0/invoice.py 2013-03-23 14:45:38.000000000 +0000
@@ -1,35 +1,126 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
-from trytond.model import ModelView, ModelSQL, fields
+from trytond.model import Workflow, fields
+from trytond.pool import Pool, PoolMeta
+from trytond.transaction import Transaction
+from trytond.backend import TableHandler
+__all__ = ['Invoice', 'InvoiceLine']
+__metaclass__ = PoolMeta
-class Invoice(ModelSQL, ModelView):
- _name = 'account.invoice'
+class Invoice:
+ __name__ = 'account.invoice'
sales = fields.Many2Many('sale.sale-account.invoice',
'invoice', 'sale', 'Sales', readonly=True)
+ sale_exception_state = fields.Function(fields.Selection([
+ ('', ''),
+ ('ignored', 'Ignored'),
+ ('recreated', 'Recreated'),
+ ], 'Exception State'), 'get_sale_exception_state')
+
+ @classmethod
+ def __setup__(cls):
+ super(Invoice, cls).__setup__()
+ cls._error_messages.update({
+ 'delete_sale_invoice': ('You can not delete invoices '
+ 'that come from a sale.'),
+ 'reset_invoice_sale': ('You cannot reset to draft '
+ 'an invoice generated by a sale.'),
+ })
+
+ @classmethod
+ def get_sale_exception_state(cls, invoices, name):
+ Sale = Pool().get('sale.sale')
+ with Transaction().set_user(0, set_context=True):
+ sales = Sale.search([
+ ('invoices', 'in', [i.id for i in invoices]),
+ ])
+
+ recreated = tuple(i for p in sales for i in p.invoices_recreated)
+ ignored = tuple(i for p in sales for i in p.invoices_ignored)
+
+ states = {}
+ for invoice in invoices:
+ states[invoice.id] = ''
+ if invoice in recreated:
+ states[invoice.id] = 'recreated'
+ elif invoice.id in ignored:
+ states[invoice.id] = 'ignored'
+ return states
- def copy(self, ids, default=None):
+ @classmethod
+ def copy(cls, invoices, default=None):
if default is None:
default = {}
default = default.copy()
- default.setdefault('sales', False)
- return super(Invoice, self).copy(ids, default=default)
+ default.setdefault('sales', None)
+ return super(Invoice, cls).copy(invoices, default=default)
-Invoice()
-
-
-class InvoiceLine(ModelSQL, ModelView):
- _name = 'account.invoice.line'
-
- sale_lines = fields.Many2Many('sale.line-account.invoice.line',
- 'invoice_line', 'sale_line', 'Sale Lines', readonly=True)
-
- def copy(self, ids, default=None):
- if default is None:
- default = {}
- default = default.copy()
- default.setdefault('sale_lines', False)
- return super(InvoiceLine, self).copy(ids, default=default)
-
-InvoiceLine()
+ @classmethod
+ def delete(cls, invoices):
+ if invoices:
+ Transaction().cursor.execute('SELECT id FROM sale_invoices_rel '
+ 'WHERE invoice IN (' + ','.join(('%s',) * len(invoices)) + ')',
+ [i.id for i in invoices])
+ if Transaction().cursor.fetchone():
+ cls.raise_user_error('delete_sale_invoice')
+ super(Invoice, cls).delete(invoices)
+
+ @classmethod
+ def paid(cls, invoices):
+ pool = Pool()
+ Sale = pool.get('sale.sale')
+ super(Invoice, cls).paid(invoices)
+ with Transaction().set_user(0, set_context=True):
+ Sale.process([s for i in cls.browse(invoices) for s in i.sales])
+
+ @classmethod
+ def cancel(cls, invoices):
+ pool = Pool()
+ Sale = pool.get('sale.sale')
+ super(Invoice, cls).cancel(invoices)
+ with Transaction().set_user(0, set_context=True):
+ Sale.process([s for i in cls.browse(invoices) for s in i.sales])
+
+ @classmethod
+ @Workflow.transition('draft')
+ def draft(cls, invoices):
+ Sale = Pool().get('sale.sale')
+ with Transaction().set_user(0, set_context=True):
+ sales = Sale.search([
+ ('invoices', 'in', [i.id for i in invoices]),
+ ])
+ if sales and any(i.state == 'cancel' for i in invoices):
+ cls.raise_user_error('reset_invoice_sale')
+
+ return super(Invoice, cls).draft(invoices)
+
+
+class InvoiceLine:
+ __name__ = 'account.invoice.line'
+
+ @classmethod
+ def __register__(cls, module_name):
+ cursor = Transaction().cursor
+
+ super(InvoiceLine, cls).__register__(module_name)
+
+ # Migration from 2.6: remove sale_lines
+ rel_table = 'sale_line_invoice_lines_rel'
+ if TableHandler.table_exist(cursor, rel_table):
+ cursor.execute('SELECT sale_line, invoice_line '
+ 'FROM "' + rel_table + '"')
+ for sale_line, invoice_line in cursor.fetchall():
+ cursor.execute('UPDATE "' + cls._table + '" '
+ 'SET origin = %s '
+ 'WHERE id = %s',
+ ('sale.line,%s' % sale_line, invoice_line))
+ TableHandler.drop_table(cursor,
+ 'sale.line-account.invoice.line', rel_table)
+
+ @classmethod
+ def _get_origin(cls):
+ models = super(InvoiceLine, cls)._get_origin()
+ models.append('sale.line')
+ return models
diff -Nru tryton-modules-sale-2.2.2/locale/bg_BG.po tryton-modules-sale-2.8.0/locale/bg_BG.po
--- tryton-modules-sale-2.2.2/locale/bg_BG.po 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/bg_BG.po 2013-04-21 13:33:45.000000000 +0000
@@ -2,405 +2,605 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:account.invoice:0"
-msgid "You can not delete invoices that come from a sale!"
-msgstr "Не може да изтриете фактура която идва от продажба!"
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr ""
-msgctxt "error:account.invoice:0"
+msgctxt "error:account.invoice:"
msgid "You cannot reset to draft an invoice generated by a sale."
msgstr "Не може да прехвърляте в проект фактура генерирана при продажба."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"Account Revenue\" on product \"%s\"!"
-msgstr "Не е зададена \"Сметка за приходи\" за продукт \"%s\"!"
-
-msgctxt "error:sale.line:0"
-msgid "It misses an \"account Revenue\" default property!"
-msgstr "Няма е зададено свойство по подразбиране \"Сметка за приходи\"!"
-
-msgctxt "error:sale.line:0"
-msgid "The customer location is required!"
-msgstr "Местонахождението на клиента е задължително!"
-
-msgctxt "error:sale.sale:0"
-msgid "Invoice and Shipment addresses must be defined for the quotation."
-msgstr "Адрес за фактура и за доставка трябва да са зададени при запитване"
-
-msgctxt "error:sale.sale:0"
-msgid "It misses an \"Account Receivable\" on the party \"%s\"!"
-msgstr "Липсва \"Приходна сметка\" за партньор \"%s\"!"
-
-msgctxt "error:sale.sale:0"
-msgid "Wrong combination of method!"
-msgstr "Грешна комбинация от методи!"
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr ""
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
+msgstr ""
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
+msgstr ""
-msgctxt "error:stock.shipment.out:0"
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr ""
+
+msgctxt "error:stock.shipment.out.return:"
msgid "You cannot reset to draft a move generated by a sale."
msgstr "Не може да прехвърляте в проект движение генерирано при продажба."
-msgctxt "field:account.invoice,sale_exception_state:0"
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "Не може да прехвърляте в проект движение генерирано при продажба."
+
+msgctxt "field:account.invoice,sale_exception_state:"
msgid "Exception State"
msgstr "Състояние на грешка"
-msgctxt "field:account.invoice,sales:0"
+msgctxt "field:account.invoice,sales:"
msgid "Sales"
msgstr "Продажби"
-msgctxt "field:account.invoice.line,sale_lines:0"
-msgid "Sale Lines"
-msgstr "Редове от продажба"
-
-#, fuzzy
-msgctxt "field:product.template,delivery_time:0"
+msgctxt "field:product.template,delivery_time:"
msgid "Delivery Time"
msgstr "Време за доставка"
-msgctxt "field:product.template,salable:0"
+msgctxt "field:product.template,salable:"
msgid "Salable"
msgstr "Продажен"
-msgctxt "field:product.template,sale_uom:0"
+msgctxt "field:product.template,sale_uom:"
msgid "Sale UOM"
msgstr "Мер. ед. на продажба"
-msgctxt "field:sale.configuration,rec_name:0"
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr "Създаден от"
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.configuration,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.configuration,sale_invoice_method:0"
+msgctxt "field:sale.configuration,sale_invoice_method:"
msgid "Sale Invoice Method"
msgstr "Начин на фактурине на продажба"
-msgctxt "field:sale.configuration,sale_sequence:0"
+msgctxt "field:sale.configuration,sale_sequence:"
msgid "Sale Reference Sequence"
msgstr "Последователност за отпратка на продажба"
-msgctxt "field:sale.configuration,sale_shipment_method:0"
+msgctxt "field:sale.configuration,sale_shipment_method:"
msgid "Sale Shipment Method"
msgstr "Начин на фактуриране на продажба"
-msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:0"
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
msgid "Domain Invoices"
msgstr "Фактури на домейн"
-msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid "Recreate Invoices"
msgstr "Наново създаване на фактури"
-msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
msgid "Domain Moves"
msgstr "Движение на домейн"
-msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
msgid "Recreate Moves"
msgstr "Наново създаване на движения"
-msgctxt "field:sale.line,amount:0"
+msgctxt "field:sale.line,amount:"
msgid "Amount"
msgstr "Сума"
-msgctxt "field:sale.line,description:0"
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr "Дата на доставка"
+
+msgctxt "field:sale.line,description:"
msgid "Description"
msgstr "Описание"
-msgctxt "field:sale.line,invoice_lines:0"
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr "От местонахождение"
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line,invoice_lines:"
msgid "Invoice Lines"
msgstr "Редове от фактура"
-msgctxt "field:sale.line,move_done:0"
+msgctxt "field:sale.line,move_done:"
msgid "Moves Done"
msgstr "Направени движения"
-msgctxt "field:sale.line,move_exception:0"
+msgctxt "field:sale.line,move_exception:"
msgid "Moves Exception"
msgstr "Грешка при движение"
-msgctxt "field:sale.line,moves:0"
+msgctxt "field:sale.line,moves:"
msgid "Moves"
msgstr "Движения"
-msgctxt "field:sale.line,moves_ignored:0"
+msgctxt "field:sale.line,moves_ignored:"
msgid "Ignored Moves"
msgstr "Игнорирани движения"
-msgctxt "field:sale.line,moves_recreated:0"
+msgctxt "field:sale.line,moves_recreated:"
msgid "Recreated Moves"
msgstr "Наново създаване на движения"
-msgctxt "field:sale.line,note:0"
+msgctxt "field:sale.line,note:"
msgid "Note"
msgstr "Бележка"
-msgctxt "field:sale.line,product:0"
+msgctxt "field:sale.line,product:"
msgid "Product"
msgstr "Продукт"
-msgctxt "field:sale.line,quantity:0"
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr "Категория мер. ед. на продукт"
+
+msgctxt "field:sale.line,quantity:"
msgid "Quantity"
msgstr "Количество"
-msgctxt "field:sale.line,rec_name:0"
+msgctxt "field:sale.line,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.line,sale:0"
+msgctxt "field:sale.line,sale:"
msgid "Sale"
msgstr "Продажба"
-msgctxt "field:sale.line,sequence:0"
+msgctxt "field:sale.line,sequence:"
msgid "Sequence"
msgstr "Последователност"
-msgctxt "field:sale.line,taxes:0"
+msgctxt "field:sale.line,taxes:"
msgid "Taxes"
msgstr "Данъци"
-msgctxt "field:sale.line,type:0"
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr "Към местонахождение"
+
+msgctxt "field:sale.line,type:"
msgid "Type"
msgstr "Вид"
-msgctxt "field:sale.line,unit:0"
+msgctxt "field:sale.line,unit:"
msgid "Unit"
msgstr "Единица"
-msgctxt "field:sale.line,unit_digits:0"
+msgctxt "field:sale.line,unit_digits:"
msgid "Unit Digits"
msgstr "Десетични единици"
-msgctxt "field:sale.line,unit_price:0"
+msgctxt "field:sale.line,unit_price:"
msgid "Unit Price"
msgstr "Единична цена"
-msgctxt "field:sale.line-account.invoice.line,invoice_line:0"
-msgid "Invoice Line"
-msgstr "Ред от фактура"
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Склад"
-msgctxt "field:sale.line-account.invoice.line,rec_name:0"
-msgid "Name"
-msgstr "Име"
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.line-account.invoice.line,sale_line:0"
+msgctxt "field:sale.line-account.tax,line:"
msgid "Sale Line"
msgstr "Ред от продажба"
-msgctxt "field:sale.line-account.tax,line:0"
-msgid "Sale Line"
-msgstr "Ред от продажба"
-
-msgctxt "field:sale.line-account.tax,rec_name:0"
+msgctxt "field:sale.line-account.tax,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.line-account.tax,tax:0"
+msgctxt "field:sale.line-account.tax,tax:"
msgid "Tax"
msgstr "Данък"
-msgctxt "field:sale.line-ignored-stock.move,move:0"
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
msgid "Move"
msgstr "Движение"
-msgctxt "field:sale.line-ignored-stock.move,rec_name:0"
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.line-ignored-stock.move,sale_line:0"
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Ред от продажба"
-msgctxt "field:sale.line-recreated-stock.move,move:0"
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
msgid "Move"
msgstr "Движение"
-msgctxt "field:sale.line-recreated-stock.move,rec_name:0"
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.line-recreated-stock.move,sale_line:0"
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Ред от продажба"
-msgctxt "field:sale.sale,comment:0"
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:sale.sale,comment:"
msgid "Comment"
msgstr "Коментар"
-msgctxt "field:sale.sale,company:0"
+msgctxt "field:sale.sale,company:"
msgid "Company"
msgstr "Фирма"
-msgctxt "field:sale.sale,currency:0"
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:sale.sale,currency:"
msgid "Currency"
msgstr "Валута"
-msgctxt "field:sale.sale,currency_digits:0"
+msgctxt "field:sale.sale,currency_digits:"
msgid "Currency Digits"
msgstr "Цифри за валута"
-msgctxt "field:sale.sale,description:0"
+msgctxt "field:sale.sale,description:"
msgid "Description"
msgstr "Описание"
-msgctxt "field:sale.sale,invoice_address:0"
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale,invoice_address:"
msgid "Invoice Address"
msgstr "Адрес за фактура"
-msgctxt "field:sale.sale,invoice_exception:0"
-msgid "Invoices Exception"
-msgstr "Грешка при фактури"
-
-msgctxt "field:sale.sale,invoice_method:0"
+msgctxt "field:sale.sale,invoice_method:"
msgid "Invoice Method"
msgstr "Начин на фактуриране"
-msgctxt "field:sale.sale,invoice_paid:0"
-msgid "Invoices Paid"
-msgstr "Платени фактури"
-
-msgctxt "field:sale.sale,invoice_state:0"
+msgctxt "field:sale.sale,invoice_state:"
msgid "Invoice State"
msgstr "Състояние на фактура"
-msgctxt "field:sale.sale,invoices:0"
+msgctxt "field:sale.sale,invoices:"
msgid "Invoices"
msgstr "Фактури"
-msgctxt "field:sale.sale,invoices_ignored:0"
+msgctxt "field:sale.sale,invoices_ignored:"
msgid "Ignored Invoices"
msgstr "Игнорирани фактури"
-msgctxt "field:sale.sale,invoices_recreated:0"
+msgctxt "field:sale.sale,invoices_recreated:"
msgid "Recreated Invoices"
msgstr "Наново създадени на фактури"
-msgctxt "field:sale.sale,lines:0"
+msgctxt "field:sale.sale,lines:"
msgid "Lines"
msgstr "Редове"
-msgctxt "field:sale.sale,moves:0"
+msgctxt "field:sale.sale,moves:"
msgid "Moves"
msgstr "Движения"
-msgctxt "field:sale.sale,party:0"
+msgctxt "field:sale.sale,party:"
msgid "Party"
msgstr "Партньор"
-msgctxt "field:sale.sale,party_lang:0"
+msgctxt "field:sale.sale,party_lang:"
msgid "Party Language"
msgstr "Език на партньор"
-msgctxt "field:sale.sale,payment_term:0"
+msgctxt "field:sale.sale,payment_term:"
msgid "Payment Term"
msgstr "Условие за плащане"
-msgctxt "field:sale.sale,rec_name:0"
+msgctxt "field:sale.sale,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.sale,reference:0"
+msgctxt "field:sale.sale,reference:"
msgid "Reference"
msgstr "Отпратка"
-msgctxt "field:sale.sale,sale_date:0"
+msgctxt "field:sale.sale,sale_date:"
msgid "Sale Date"
msgstr "Дата на продажба"
-msgctxt "field:sale.sale,shipment_address:0"
+msgctxt "field:sale.sale,shipment_address:"
msgid "Shipment Address"
msgstr "Адрес за доставка"
-msgctxt "field:sale.sale,shipment_done:0"
-msgid "Shipment Done"
-msgstr "Направена пратка"
-
-msgctxt "field:sale.sale,shipment_exception:0"
-msgid "Shipments Exception"
-msgstr "Грешки при пратка"
-
-msgctxt "field:sale.sale,shipment_method:0"
+msgctxt "field:sale.sale,shipment_method:"
msgid "Shipment Method"
msgstr "Начин на изпращане"
-msgctxt "field:sale.sale,shipment_state:0"
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr "Върнати доставки"
+
+msgctxt "field:sale.sale,shipment_state:"
msgid "Shipment State"
msgstr "Състояние на пратка"
-msgctxt "field:sale.sale,shipments:0"
+msgctxt "field:sale.sale,shipments:"
msgid "Shipments"
msgstr "Изпращания"
-msgctxt "field:sale.sale,state:0"
+msgctxt "field:sale.sale,state:"
msgid "State"
msgstr "Състояние"
-msgctxt "field:sale.sale,tax_amount:0"
+msgctxt "field:sale.sale,tax_amount:"
msgid "Tax"
msgstr "Данък"
-msgctxt "field:sale.sale,total_amount:0"
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr "Данък в брой"
+
+msgctxt "field:sale.sale,total_amount:"
msgid "Total"
msgstr "Общо"
-msgctxt "field:sale.sale,untaxed_amount:0"
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr "Общо данъци"
+
+msgctxt "field:sale.sale,untaxed_amount:"
msgid "Untaxed"
msgstr "Необложен с данък"
-msgctxt "field:sale.sale,warehouse:0"
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr "Наличност преди данъци"
+
+msgctxt "field:sale.sale,warehouse:"
msgid "Warehouse"
msgstr "Склад"
-msgctxt "field:sale.sale-account.invoice,invoice:0"
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
msgid "Invoice"
msgstr "Фактура"
-msgctxt "field:sale.sale-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-account.invoice,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.sale-account.invoice,sale:0"
+msgctxt "field:sale.sale-account.invoice,sale:"
msgid "Sale"
msgstr "Продажба"
-msgctxt "field:sale.sale-ignored-account.invoice,invoice:0"
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
msgid "Invoice"
msgstr "Фактура"
-msgctxt "field:sale.sale-ignored-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.sale-ignored-account.invoice,sale:0"
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
msgid "Sale"
msgstr "Продажба"
-msgctxt "field:sale.sale-recreated-account.invoice,invoice:0"
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Създадено на"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Създадено от"
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
msgid "Invoice"
msgstr "Фактура"
-msgctxt "field:sale.sale-recreated-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
msgid "Name"
msgstr "Име"
-msgctxt "field:sale.sale-recreated-account.invoice,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
msgid "Sale"
msgstr "Продажба"
-msgctxt "field:stock.move,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Променено на"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Променено от"
+
+msgctxt "field:stock.move,sale:"
msgid "Sale"
msgstr "Продажба"
-msgctxt "field:stock.move,sale_exception_state:0"
+msgctxt "field:stock.move,sale_exception_state:"
msgid "Exception State"
msgstr "Състояние на грешка"
-msgctxt "field:stock.move,sale_line:0"
-msgid "Sale Line"
-msgstr "Ред от продажба"
-
-#, fuzzy
-msgctxt "help:product.template,delivery_time:0"
+msgctxt "help:product.template,delivery_time:"
msgid "In number of days"
msgstr "В брой дни"
-msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid ""
"The selected invoices will be recreated. The other ones will be ignored."
msgstr ""
@@ -414,7 +614,10 @@
msgid "Parties associated to Sales"
msgstr "Партньори свързани с продажби"
-#, fuzzy
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr "Връщане"
+
msgctxt "model:ir.action,name:act_sale_configuration_form"
msgid "Sales Configuration"
msgstr "Конфигурация на продажба"
@@ -427,18 +630,6 @@
msgid "Sales"
msgstr "Продажби"
-msgctxt "model:ir.action,name:act_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Потвърдени продажби"
-
-msgctxt "model:ir.action,name:act_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Проект на продажби"
-
-msgctxt "model:ir.action,name:act_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Продажби (запитвания) "
-
msgctxt "model:ir.action,name:act_shipment_form"
msgid "Shipments"
msgstr "Изпращания"
@@ -451,10 +642,41 @@
msgid "Handle Invoice Exception"
msgstr "Обработка на грешка към фактура"
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr "Създаване на меню Продажби"
+
msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
msgid "Handle Shipment Exception"
msgstr "Обработка на грешки при изпращане"
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr ""
+
+#, fuzzy
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Потвърден"
+
+#, fuzzy
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Проект"
+
+#, fuzzy
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "Обработване"
+
+#, fuzzy
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Запитване"
+
msgctxt "model:ir.sequence,name:sequence_sale"
msgid "Sale"
msgstr "Продажба"
@@ -471,12 +693,10 @@
msgid "Parties associated to Sales"
msgstr "Партньори свързани с продажби"
-#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_sale"
msgid "Sales"
msgstr "Управление на продажби"
-#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_sale_configuration"
msgid "Sales Configuration"
msgstr "Конфигурация на продажба"
@@ -485,512 +705,378 @@
msgid "Sales"
msgstr "Продажби"
-msgctxt "model:ir.ui.menu,name:menu_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Потвърдени продажби"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Проект на продажби"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Продажби (запитвания) "
-
-#, fuzzy
msgctxt "model:res.group,name:group_sale"
msgid "Sales"
msgstr "Продажба"
-#, fuzzy
msgctxt "model:res.group,name:group_sale_admin"
msgid "Sales Administrator"
msgstr "Отговорник продажби"
-msgctxt "model:sale.configuration,name:0"
+msgctxt "model:sale.configuration,name:"
msgid "Sale Configuration"
msgstr "Конфигурация на продажба"
-msgctxt "model:sale.handle.invoice.exception.ask,name:0"
-msgid "Invoice Exception Ask"
-msgstr "Запитване за грешка в фактура"
-
-msgctxt "model:sale.handle.shipment.exception.ask,name:0"
-msgid "Shipment Exception Ask"
-msgstr "Запитване за грешка при пратка"
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
+msgstr "Обработване за грешка в фактура"
-msgctxt "model:sale.line,name:0"
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
+msgstr "Обработване на грешка при пратка"
+
+msgctxt "model:sale.line,name:"
msgid "Sale Line"
msgstr "Ред от продажба"
-msgctxt "model:sale.line-account.invoice.line,name:0"
-msgid "Sale Line - Invoice Line"
-msgstr "Ред от продажба - Ред от фактура"
-
-msgctxt "model:sale.line-account.tax,name:0"
+msgctxt "model:sale.line-account.tax,name:"
msgid "Sale Line - Tax"
msgstr "Ред от продажба - Данък"
-msgctxt "model:sale.line-ignored-stock.move,name:0"
+msgctxt "model:sale.line-ignored-stock.move,name:"
msgid "Sale Line - Ignored Move"
msgstr "Ред от продажба - Игнорирано движение"
-msgctxt "model:sale.line-recreated-stock.move,name:0"
+msgctxt "model:sale.line-recreated-stock.move,name:"
msgid "Sale Line - Recreated Move"
msgstr "Ред от продажба - Нановосъздадено движение"
-msgctxt "model:sale.sale,name:0"
+msgctxt "model:sale.sale,name:"
msgid "Sale"
msgstr "Продажба"
-msgctxt "model:sale.sale-account.invoice,name:0"
+msgctxt "model:sale.sale-account.invoice,name:"
msgid "Sale - Invoice"
msgstr "Продажба - фактура"
-msgctxt "model:sale.sale-ignored-account.invoice,name:0"
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
msgid "Sale - Ignored Invoice"
msgstr "Продажба - Игнорирани фактури"
-msgctxt "model:sale.sale-recreated-account.invoice,name:0"
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
msgid "Sale - Recreated Invoice"
msgstr "Продажба - Наново създадена фактура"
-msgctxt "model:workflow,name:sale_workflow"
-msgid "Sale workflow"
-msgstr "Работен процес на продажба"
-
-msgctxt "model:workflow.activity,name:sale_activity_cancel"
-msgid "Canceled"
-msgstr "Отказан"
-
-msgctxt "model:workflow.activity,name:sale_activity_confirmed"
-msgid "Confirmed"
-msgstr "Потвърден"
-
-msgctxt "model:workflow.activity,name:sale_activity_done"
-msgid "Done"
-msgstr "Приключен"
-
-msgctxt "model:workflow.activity,name:sale_activity_draft"
-msgid "Draft"
-msgstr "Проект"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method"
-msgid "Invoice Method"
-msgstr "Начин на фактуриране"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method_done"
-msgid "Invoice Method Done"
-msgstr "Направен начин на фактуриране"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_done"
-msgid "Invoice Done"
-msgstr "Направени фактури"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_exception"
-msgid "Invoice Exception"
-msgstr "Грешка при фактура"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment"
-msgid "Invoice Shipment"
-msgstr "Фактура за изпращане"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_done"
-msgid "Invoice Shipment Done"
-msgstr "Направено фактуриране на пратка"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_exception"
-msgid "Invoice Shipment Exception"
-msgstr "Грешка при фактуриране на пратка"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_method"
-msgid "Invoice Shipment Method"
-msgstr "Начин на фактуриране на пратка"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_method_done"
-msgid "Invoice Shipment Method Done"
-msgstr "Направено фактуриране на начина на изпращане"
-
-msgctxt "model:workflow.activity,name:sale_activity_quotation"
-msgid "Quotation"
-msgstr "Запитване"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment"
-msgid "Shipment"
-msgstr "Пратка"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_exception"
-msgid "Shipment Exception"
-msgstr "Грешка при пратка"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice"
-msgid "Shipment Invoice"
-msgstr "Пратка с грешка"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_done"
-msgid "Shipment Invoice Done"
-msgstr "Направено фактуриране на пратка"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_exception"
-msgid "Shipment Invoice Exception"
-msgstr "Грешка при фактуриране на пратка"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_method"
-msgid "Shipment Invoice Method"
-msgstr "Начин на фактуриране на пратка"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_method_done"
-msgid "Shipment Invoice Method Done"
-msgstr "Направен начин на фактуриране на пратка"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method"
-msgid "Shipment Method"
-msgstr "Начин на изпращане"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method_done"
-msgid "Shipment Method Done"
-msgstr "Направен начин на изпращане"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_sale"
-msgid "Waiting Invoice"
-msgstr "Очакващи фактура"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_shipment"
-msgid "Waiting Invoice Shipment"
-msgstr "Изчакващи фактури за пратки"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment"
-msgid "Waiting Shipment"
-msgstr "Очаква изпращане"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment_invoice"
-msgid "Waiting Shipment Invoice"
-msgstr "Изчакващи фактури за пратки"
-
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Amount"
msgstr "Сума"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Date:"
msgstr "Дата:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description"
msgstr "Описание"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description:"
msgstr "Описание:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Draft Sale Order"
msgstr "Проект на поръчка за продажба"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "E-Mail:"
msgstr "E-Mail:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Phone:"
msgstr "Телефон:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quantity"
msgstr "Количество"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quotation N°:"
msgstr "Запитване N°:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Sale Order N°:"
msgstr "Поръчка за продажба N°:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes"
msgstr "Данъци"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes:"
msgstr "Данъци:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total (excl. taxes):"
msgstr "Общо (без данъци):"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total:"
msgstr "Общо:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Unit Price"
msgstr "Единична цена"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT Number:"
-msgstr ""
+msgstr "ДДС номер:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT:"
msgstr "ДДС:"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Ignored"
msgstr "Игнорирано"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Recreated"
msgstr "Създаден наново"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "Manual"
msgstr "Ръчно"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "При потвърждаване на поръчка"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr "При обработена поръчка"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "On Shipment Sent"
msgstr "При изпращане на пратка"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "Manual"
msgstr "Ръчно"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "On Invoice Paid"
msgstr "При плащане на фактура"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "При потвърждаване на поръчка"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr "При обработена поръчка"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Comment"
msgstr "Коментар"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Line"
msgstr "Ред"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Subtotal"
msgstr "Междинна сума"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Title"
msgstr "Заглавие"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "Manual"
msgstr "Ръчно"
-msgctxt "selection:sale.sale,invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "При потвърждаване на поръчка"
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr "При обработена поръчка"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "On Shipment Sent"
msgstr "При изпращане на пратка"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Exception"
msgstr "Грешка"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "None"
msgstr "Няма"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Paid"
msgstr "Платен"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Waiting"
msgstr "Изчакващ"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "Manual"
msgstr "Ръчно"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "On Invoice Paid"
msgstr "При плащане на фактура"
-msgctxt "selection:sale.sale,shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "При потвърждаване на поръчка"
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr "При обработена поръчка"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Exception"
msgstr "Грешка"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "None"
msgstr "Няма"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Sent"
msgstr "Изпратен"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Waiting"
msgstr "Изчакващ"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Canceled"
msgstr "Отказан"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Confirmed"
msgstr "Потвърден"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Done"
msgstr "Приключен"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Draft"
msgstr "Проект"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "Обработване"
+
+msgctxt "selection:sale.sale,state:"
msgid "Quotation"
msgstr "Запитване"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Ignored"
msgstr "Игнорирано"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Recreated"
msgstr "Създаден наново"
-msgctxt "view:product.template:0"
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "Продукти"
+
+msgctxt "view:product.template:"
msgid "Customers"
msgstr "Клиенти"
-msgctxt "view:sale.configuration:0"
+msgctxt "view:sale.configuration:"
msgid "Sale Configuration"
msgstr "Конфигурация на продажба"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Choose invoices to recreate"
msgstr "Избор на фактури за ново създаване"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Handle Invoice Exception"
msgstr "Обработка на грешка към фактура"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Choose move to recreate"
msgstr "Избор на движение за ново създаване"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Handle shipment Exception"
msgstr "Обработване на грешка при изпращане"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Recreate Moves"
-msgstr "Наново създаване на движения"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "General"
msgstr "Основен"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Notes"
msgstr "Бележки"
-msgctxt "view:sale.line:0"
-msgid "Products"
-msgstr "Продукти"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Line"
msgstr "Ред от продажба"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Lines"
msgstr "Редове от продажба"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Cancel"
msgstr "Отказ"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Confirm"
msgstr "Потвърждаване"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Draft"
msgstr "Проект"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Invoice Exception"
msgstr "Обработка на грешка към фактура"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Shipment Exception"
msgstr "Обработване на грешка при изпращане"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Invoices"
msgstr "Фактури"
-msgctxt "view:sale.sale:0"
-msgid "Lines"
-msgstr "Редове"
-
-msgctxt "view:sale.sale:0"
-msgid "Moves"
-msgstr "Движения"
-
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Other Info"
msgstr "Друга информация"
-msgctxt "view:sale.sale:0"
-msgid "Quotation"
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr "Обработване"
+
+msgctxt "view:sale.sale:"
+msgid "Quote"
msgstr "Запитване"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sale"
msgstr "Продажба"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sales"
msgstr "Продажби"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Shipments"
msgstr "Изпращания"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,end:0"
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Движения"
+
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
msgid "Cancel"
msgstr "Отказ"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
msgid "Ok"
msgstr "Добре"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
msgid "Cancel"
msgstr "Отказ"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
msgid "Ok"
msgstr "Добре"
diff -Nru tryton-modules-sale-2.2.2/locale/ca_ES.po tryton-modules-sale-2.8.0/locale/ca_ES.po
--- tryton-modules-sale-2.2.2/locale/ca_ES.po 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/ca_ES.po 2013-04-21 13:39:08.000000000 +0000
@@ -0,0 +1,1084 @@
+#
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr "No podeu esborrar factures generades des de vendes."
+
+msgctxt "error:account.invoice:"
+msgid "You cannot reset to draft an invoice generated by a sale."
+msgstr "No podeu restaurar a esborrany una factura generada per una venda."
+
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr ""
+"Falta el compte a cobrar del producte \"%(product)s\" de la venda %(sale)s."
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
+msgstr ""
+"No es troba la localizació del client a la línia \"%(line)s\" de la venda "
+"\"%(sale)\"."
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr "Falta la propietat \"Compte a cobrar\" per defecte de les vendes."
+
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
+msgstr ""
+"Combinació de mètodes d'enviament i facturació a la venda \"%s\" incorrecta."
+
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
+msgstr ""
+"L'adreça d'enviament i facturació s'han de definir per al pressupost de la "
+"venda \"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr "Falta un \"Compte a cobrar\" al tercer \"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr "Heu de cancel·lar la venda \"%s\" abans de ser eliminat."
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr "S'ha de definir el magatzem per al pressupost de la venda \"%s\"."
+
+msgctxt "error:stock.shipment.out.return:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "No podeu restaurar a esborrany un moviment generat per una venda."
+
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "No podeu restaurar a esborrany un moviment generat per una venda."
+
+msgctxt "field:account.invoice,sale_exception_state:"
+msgid "Exception State"
+msgstr "Estat d'excepció"
+
+msgctxt "field:account.invoice,sales:"
+msgid "Sales"
+msgstr "Vendes"
+
+msgctxt "field:product.template,delivery_time:"
+msgid "Delivery Time"
+msgstr "Temps d'enviament"
+
+msgctxt "field:product.template,salable:"
+msgid "Salable"
+msgstr "Pot ser venut"
+
+msgctxt "field:product.template,sale_uom:"
+msgid "Sale UOM"
+msgstr "UdM de venda"
+
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.configuration,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.configuration,sale_invoice_method:"
+msgid "Sale Invoice Method"
+msgstr "Mètode de facturació"
+
+msgctxt "field:sale.configuration,sale_sequence:"
+msgid "Sale Reference Sequence"
+msgstr "Seqüència de numeració vendes"
+
+msgctxt "field:sale.configuration,sale_shipment_method:"
+msgid "Sale Shipment Method"
+msgstr "Mètode d'enviament"
+
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
+msgid "Domain Invoices"
+msgstr "Domini factures"
+
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
+msgid "Recreate Invoices"
+msgstr "Recrea factures"
+
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
+msgid "Domain Moves"
+msgstr "Domini moviments"
+
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
+msgid "Recreate Moves"
+msgstr "Recrea moviments"
+
+msgctxt "field:sale.line,amount:"
+msgid "Amount"
+msgstr "Import"
+
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr "Data de lliurament"
+
+msgctxt "field:sale.line,description:"
+msgid "Description"
+msgstr "Descripció"
+
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr "Des de la ubicació"
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line,invoice_lines:"
+msgid "Invoice Lines"
+msgstr "Línies de factura"
+
+msgctxt "field:sale.line,move_done:"
+msgid "Moves Done"
+msgstr "Moviments finalitzats"
+
+msgctxt "field:sale.line,move_exception:"
+msgid "Moves Exception"
+msgstr "Excepció de moviments"
+
+msgctxt "field:sale.line,moves:"
+msgid "Moves"
+msgstr "Moviments"
+
+msgctxt "field:sale.line,moves_ignored:"
+msgid "Ignored Moves"
+msgstr "Moviments ignorats"
+
+msgctxt "field:sale.line,moves_recreated:"
+msgid "Recreated Moves"
+msgstr "Moviments recreats"
+
+msgctxt "field:sale.line,note:"
+msgid "Note"
+msgstr "Nota"
+
+msgctxt "field:sale.line,product:"
+msgid "Product"
+msgstr "Producte"
+
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr "Categoria UdM del producte"
+
+msgctxt "field:sale.line,quantity:"
+msgid "Quantity"
+msgstr "Quantitat"
+
+msgctxt "field:sale.line,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.line,sale:"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "field:sale.line,sequence:"
+msgid "Sequence"
+msgstr "Seqüència"
+
+msgctxt "field:sale.line,taxes:"
+msgid "Taxes"
+msgstr "Impostos"
+
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr "A la ubicació"
+
+msgctxt "field:sale.line,type:"
+msgid "Type"
+msgstr "Tipus"
+
+msgctxt "field:sale.line,unit:"
+msgid "Unit"
+msgstr "Unitat"
+
+msgctxt "field:sale.line,unit_digits:"
+msgid "Unit Digits"
+msgstr "Decimals de la unitat"
+
+msgctxt "field:sale.line,unit_price:"
+msgid "Unit Price"
+msgstr "Preu unitari"
+
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Magatzem"
+
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-account.tax,line:"
+msgid "Sale Line"
+msgstr "Línia de venta"
+
+msgctxt "field:sale.line-account.tax,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.line-account.tax,tax:"
+msgid "Tax"
+msgstr "Impost"
+
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
+msgid "Move"
+msgstr "Moviment"
+
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
+msgid "Sale Line"
+msgstr "Línia de venda"
+
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
+msgid "Move"
+msgstr "Moviment"
+
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
+msgid "Sale Line"
+msgstr "Línia de venta"
+
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:sale.sale,comment:"
+msgid "Comment"
+msgstr "Comentari"
+
+msgctxt "field:sale.sale,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.sale,currency:"
+msgid "Currency"
+msgstr "Moneda"
+
+msgctxt "field:sale.sale,currency_digits:"
+msgid "Currency Digits"
+msgstr "Decimals de la moneda"
+
+msgctxt "field:sale.sale,description:"
+msgid "Description"
+msgstr "Descripció"
+
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale,invoice_address:"
+msgid "Invoice Address"
+msgstr "Adreça de facturació"
+
+msgctxt "field:sale.sale,invoice_method:"
+msgid "Invoice Method"
+msgstr "Mètode de facturació"
+
+msgctxt "field:sale.sale,invoice_state:"
+msgid "Invoice State"
+msgstr "Estat factura"
+
+msgctxt "field:sale.sale,invoices:"
+msgid "Invoices"
+msgstr "Factures"
+
+msgctxt "field:sale.sale,invoices_ignored:"
+msgid "Ignored Invoices"
+msgstr "Factures ignorades"
+
+msgctxt "field:sale.sale,invoices_recreated:"
+msgid "Recreated Invoices"
+msgstr "Factures recreades"
+
+msgctxt "field:sale.sale,lines:"
+msgid "Lines"
+msgstr "Línies"
+
+msgctxt "field:sale.sale,moves:"
+msgid "Moves"
+msgstr "Moviments"
+
+msgctxt "field:sale.sale,party:"
+msgid "Party"
+msgstr "Tercer"
+
+msgctxt "field:sale.sale,party_lang:"
+msgid "Party Language"
+msgstr "Idioma del tercer"
+
+msgctxt "field:sale.sale,payment_term:"
+msgid "Payment Term"
+msgstr "Termini de pagament"
+
+msgctxt "field:sale.sale,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.sale,reference:"
+msgid "Reference"
+msgstr "Referència"
+
+msgctxt "field:sale.sale,sale_date:"
+msgid "Sale Date"
+msgstr "Data de venda"
+
+msgctxt "field:sale.sale,shipment_address:"
+msgid "Shipment Address"
+msgstr "Adreça enviament"
+
+msgctxt "field:sale.sale,shipment_method:"
+msgid "Shipment Method"
+msgstr "Mètode d'enviament"
+
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr "Albarans de devolució"
+
+msgctxt "field:sale.sale,shipment_state:"
+msgid "Shipment State"
+msgstr "Estat enviament"
+
+msgctxt "field:sale.sale,shipments:"
+msgid "Shipments"
+msgstr "Enviaments"
+
+msgctxt "field:sale.sale,state:"
+msgid "State"
+msgstr "Estat"
+
+msgctxt "field:sale.sale,tax_amount:"
+msgid "Tax"
+msgstr "Impost"
+
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr "Impostos precalculats"
+
+msgctxt "field:sale.sale,total_amount:"
+msgid "Total"
+msgstr "Total"
+
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr "Total impostos"
+
+msgctxt "field:sale.sale,untaxed_amount:"
+msgid "Untaxed"
+msgstr "Base imposable"
+
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr "Base imposable precalculada"
+
+msgctxt "field:sale.sale,warehouse:"
+msgid "Warehouse"
+msgstr "Magatzem"
+
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
+msgid "Invoice"
+msgstr "Factura"
+
+msgctxt "field:sale.sale-account.invoice,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.sale-account.invoice,sale:"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
+msgid "Invoice"
+msgstr "Factura"
+
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Data creació"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuari creació"
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
+msgid "Invoice"
+msgstr "Factura"
+
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
+msgid "Name"
+msgstr "Nom"
+
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Data modificació"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuari modificació"
+
+msgctxt "field:stock.move,sale:"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "field:stock.move,sale_exception_state:"
+msgid "Exception State"
+msgstr "Estat excepció"
+
+msgctxt "help:product.template,delivery_time:"
+msgid "In number of days"
+msgstr "En nombre de dies"
+
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
+msgid ""
+"The selected invoices will be recreated. The other ones will be ignored."
+msgstr ""
+"Les factures seleccionades seran recreades. Les altres seran ignorades."
+
+msgctxt "model:ir.action,name:act_invoice_form"
+msgid "Invoices"
+msgstr "Factures"
+
+msgctxt "model:ir.action,name:act_open_customer"
+msgid "Parties associated to Sales"
+msgstr "Tercers amb vendes"
+
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr "Retorna"
+
+msgctxt "model:ir.action,name:act_sale_configuration_form"
+msgid "Sales Configuration"
+msgstr "Configuració de les vendes"
+
+msgctxt "model:ir.action,name:act_sale_form"
+msgid "Sales"
+msgstr "Vendes"
+
+msgctxt "model:ir.action,name:act_sale_form2"
+msgid "Sales"
+msgstr "Vendes"
+
+msgctxt "model:ir.action,name:act_shipment_form"
+msgid "Shipments"
+msgstr "Albarans"
+
+msgctxt "model:ir.action,name:report_sale"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "model:ir.action,name:wizard_invoice_handle_exception"
+msgid "Handle Invoice Exception"
+msgstr "Gestiona excepció de factura"
+
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr "Crea comanda d'abonament"
+
+msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
+msgid "Handle Shipment Exception"
+msgstr "Gestiona excepció d'enviament"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr "Tot"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Confirmat"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Esborrany"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "En procés"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Pressupost"
+
+msgctxt "model:ir.sequence,name:sequence_sale"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_sale"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Configuració"
+
+msgctxt "model:ir.ui.menu,name:menu_customer"
+msgid "Parties associated to Sales"
+msgstr "Tercers amb vendes"
+
+msgctxt "model:ir.ui.menu,name:menu_sale"
+msgid "Sales"
+msgstr "Vendes"
+
+msgctxt "model:ir.ui.menu,name:menu_sale_configuration"
+msgid "Sales Configuration"
+msgstr "Vendes"
+
+msgctxt "model:ir.ui.menu,name:menu_sale_form"
+msgid "Sales"
+msgstr "Vendes"
+
+msgctxt "model:res.group,name:group_sale"
+msgid "Sales"
+msgstr "Vendes"
+
+msgctxt "model:res.group,name:group_sale_admin"
+msgid "Sales Administrator"
+msgstr "Administració de vendes"
+
+msgctxt "model:sale.configuration,name:"
+msgid "Sale Configuration"
+msgstr "Configuració de les vendes"
+
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
+msgstr "Gestiona excepció de factura"
+
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
+msgstr "Gestiona excepció d'enviament"
+
+msgctxt "model:sale.line,name:"
+msgid "Sale Line"
+msgstr "Línia de venda"
+
+msgctxt "model:sale.line-account.tax,name:"
+msgid "Sale Line - Tax"
+msgstr "Línia de venda - Impost"
+
+msgctxt "model:sale.line-ignored-stock.move,name:"
+msgid "Sale Line - Ignored Move"
+msgstr "Línia de venda - Moviment ignorat"
+
+msgctxt "model:sale.line-recreated-stock.move,name:"
+msgid "Sale Line - Recreated Move"
+msgstr "Línia de venda - Moviment recreat"
+
+msgctxt "model:sale.sale,name:"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "model:sale.sale-account.invoice,name:"
+msgid "Sale - Invoice"
+msgstr "Venda - Factura"
+
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
+msgid "Sale - Ignored Invoice"
+msgstr "Venda - Factura ignorada"
+
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
+msgid "Sale - Recreated Invoice"
+msgstr "Venda - Factura recreada"
+
+msgctxt "odt:sale.sale:"
+msgid "Amount"
+msgstr "Import"
+
+msgctxt "odt:sale.sale:"
+msgid "Date:"
+msgstr "Data:"
+
+msgctxt "odt:sale.sale:"
+msgid "Description"
+msgstr "Descripció"
+
+msgctxt "odt:sale.sale:"
+msgid "Description:"
+msgstr "Descripció:"
+
+msgctxt "odt:sale.sale:"
+msgid "Draft Sale Order"
+msgstr "Comanda de Venda Esborrany"
+
+msgctxt "odt:sale.sale:"
+msgid "E-Mail:"
+msgstr "Email:"
+
+msgctxt "odt:sale.sale:"
+msgid "Phone:"
+msgstr "Telèfon:"
+
+msgctxt "odt:sale.sale:"
+msgid "Quantity"
+msgstr "Quantitat"
+
+msgctxt "odt:sale.sale:"
+msgid "Quotation N°:"
+msgstr "Pressupost Nº:"
+
+msgctxt "odt:sale.sale:"
+msgid "Sale Order N°:"
+msgstr "Venta Nº:"
+
+msgctxt "odt:sale.sale:"
+msgid "Taxes"
+msgstr "Impostos"
+
+msgctxt "odt:sale.sale:"
+msgid "Taxes:"
+msgstr "Impostos:"
+
+msgctxt "odt:sale.sale:"
+msgid "Total (excl. taxes):"
+msgstr "Base imposable:"
+
+msgctxt "odt:sale.sale:"
+msgid "Total:"
+msgstr "Total:"
+
+msgctxt "odt:sale.sale:"
+msgid "Unit Price"
+msgstr "Preu unitari"
+
+msgctxt "odt:sale.sale:"
+msgid "VAT Number:"
+msgstr "CIF/NIF:"
+
+msgctxt "odt:sale.sale:"
+msgid "VAT:"
+msgstr "CIF/NIF:"
+
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid ""
+msgstr " "
+
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid "Ignored"
+msgstr "Ignorat"
+
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid "Recreated"
+msgstr "Recreat"
+
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "Manual"
+msgstr "Manual"
+
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr "Al processar la comanda"
+
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Shipment Sent"
+msgstr "Al enviar-ho"
+
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "Manual"
+msgstr "Manual"
+
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Invoice Paid"
+msgstr "Al pagar la factura"
+
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr "Al processar la comanda"
+
+msgctxt "selection:sale.line,type:"
+msgid "Comment"
+msgstr "Comentari"
+
+msgctxt "selection:sale.line,type:"
+msgid "Line"
+msgstr "Línia"
+
+msgctxt "selection:sale.line,type:"
+msgid "Subtotal"
+msgstr "Subtotal"
+
+msgctxt "selection:sale.line,type:"
+msgid "Title"
+msgstr "Títol"
+
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "Manual"
+msgstr "Manual"
+
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr "Al processar la comanda"
+
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Shipment Sent"
+msgstr "Al enviar-ho"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Exception"
+msgstr "Excepció"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "None"
+msgstr "Cap"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Paid"
+msgstr "Pagat"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Waiting"
+msgstr "En espera"
+
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "Manual"
+msgstr "Manual"
+
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Invoice Paid"
+msgstr "Al pagar la factura"
+
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr "Al processar la comanda"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Exception"
+msgstr "Excepció"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "None"
+msgstr "Cap"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Sent"
+msgstr "Enviat"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Waiting"
+msgstr "En espera"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Canceled"
+msgstr "Cancel·lat"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Confirmed"
+msgstr "Confirmat"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Done"
+msgstr "Finalitzat"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Draft"
+msgstr "Esborrany"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "En procés"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Quotation"
+msgstr "Pressupost"
+
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid ""
+msgstr " "
+
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid "Ignored"
+msgstr "Ignorat"
+
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid "Recreated"
+msgstr "Recreat"
+
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "Productes"
+
+msgctxt "view:product.template:"
+msgid "Customers"
+msgstr "Clients"
+
+msgctxt "view:sale.configuration:"
+msgid "Sale Configuration"
+msgstr "Configuració comades de venda"
+
+msgctxt "view:sale.handle.invoice.exception.ask:"
+msgid "Choose invoices to recreate"
+msgstr "Tria una factura a refer"
+
+msgctxt "view:sale.handle.invoice.exception.ask:"
+msgid "Handle Invoice Exception"
+msgstr "Gestiona excepció de factura"
+
+msgctxt "view:sale.handle.shipment.exception.ask:"
+msgid "Choose move to recreate"
+msgstr "Tria un moviment a refer"
+
+msgctxt "view:sale.handle.shipment.exception.ask:"
+msgid "Handle shipment Exception"
+msgstr "Gestiona excepció d'enviament"
+
+msgctxt "view:sale.line:"
+msgid "General"
+msgstr "General"
+
+msgctxt "view:sale.line:"
+msgid "Notes"
+msgstr "Notes"
+
+msgctxt "view:sale.line:"
+msgid "Sale Line"
+msgstr "Línia de venda"
+
+msgctxt "view:sale.line:"
+msgid "Sale Lines"
+msgstr "Línies de venda"
+
+msgctxt "view:sale.sale:"
+msgid "Cancel"
+msgstr "Cancel·la"
+
+msgctxt "view:sale.sale:"
+msgid "Confirm"
+msgstr "Confirma"
+
+msgctxt "view:sale.sale:"
+msgid "Draft"
+msgstr "Esborrany"
+
+msgctxt "view:sale.sale:"
+msgid "Handle Invoice Exception"
+msgstr "Gestiona excepció de factura"
+
+msgctxt "view:sale.sale:"
+msgid "Handle Shipment Exception"
+msgstr "Gestiona excepció d'enviament"
+
+msgctxt "view:sale.sale:"
+msgid "Invoices"
+msgstr "Factures"
+
+msgctxt "view:sale.sale:"
+msgid "Other Info"
+msgstr "Informació addicional"
+
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr "Processa"
+
+msgctxt "view:sale.sale:"
+msgid "Quote"
+msgstr "Pressupost"
+
+msgctxt "view:sale.sale:"
+msgid "Sale"
+msgstr "Venda"
+
+msgctxt "view:sale.sale:"
+msgid "Sales"
+msgstr "Vendes"
+
+msgctxt "view:sale.sale:"
+msgid "Shipments"
+msgstr "Enviaments"
+
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Moviments"
+
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
+msgid "Cancel"
+msgstr "Cancel·la"
+
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
+msgid "Ok"
+msgstr "Accepta"
+
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
+msgid "Cancel"
+msgstr "Cancel·la"
+
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
+msgid "Ok"
+msgstr "Accepta"
diff -Nru tryton-modules-sale-2.2.2/locale/cs_CZ.po tryton-modules-sale-2.8.0/locale/cs_CZ.po
--- tryton-modules-sale-2.2.2/locale/cs_CZ.po 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/cs_CZ.po 2013-04-21 13:46:25.000000000 +0000
@@ -2,403 +2,605 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:account.invoice:0"
-msgid "You can not delete invoices that come from a sale!"
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
msgstr ""
-msgctxt "error:account.invoice:0"
+msgctxt "error:account.invoice:"
msgid "You cannot reset to draft an invoice generated by a sale."
msgstr ""
-msgctxt "error:sale.line:0"
-msgid "It misses an \"Account Revenue\" on product \"%s\"!"
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
msgstr ""
-msgctxt "error:sale.line:0"
-msgid "It misses an \"account Revenue\" default property!"
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
msgstr ""
-msgctxt "error:sale.line:0"
-msgid "The customer location is required!"
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
msgstr ""
-msgctxt "error:sale.sale:0"
-msgid "Invoice and Shipment addresses must be defined for the quotation."
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
msgstr ""
-msgctxt "error:sale.sale:0"
-msgid "It misses an \"Account Receivable\" on the party \"%s\"!"
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
msgstr ""
-msgctxt "error:sale.sale:0"
-msgid "Wrong combination of method!"
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
msgstr ""
-msgctxt "error:stock.shipment.out:0"
+msgctxt "error:stock.shipment.out.return:"
msgid "You cannot reset to draft a move generated by a sale."
msgstr ""
-msgctxt "field:account.invoice,sale_exception_state:0"
-msgid "Exception State"
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
msgstr ""
-msgctxt "field:account.invoice,sales:0"
-msgid "Sales"
+msgctxt "field:account.invoice,sale_exception_state:"
+msgid "Exception State"
msgstr ""
-msgctxt "field:account.invoice.line,sale_lines:0"
-msgid "Sale Lines"
+msgctxt "field:account.invoice,sales:"
+msgid "Sales"
msgstr ""
-msgctxt "field:product.template,delivery_time:0"
+msgctxt "field:product.template,delivery_time:"
msgid "Delivery Time"
msgstr ""
-msgctxt "field:product.template,salable:0"
+msgctxt "field:product.template,salable:"
msgid "Salable"
msgstr ""
-msgctxt "field:product.template,sale_uom:0"
+msgctxt "field:product.template,sale_uom:"
msgid "Sale UOM"
msgstr ""
-msgctxt "field:sale.configuration,rec_name:0"
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.configuration,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.configuration,sale_invoice_method:0"
+msgctxt "field:sale.configuration,sale_invoice_method:"
msgid "Sale Invoice Method"
msgstr ""
-msgctxt "field:sale.configuration,sale_sequence:0"
+msgctxt "field:sale.configuration,sale_sequence:"
msgid "Sale Reference Sequence"
msgstr ""
-msgctxt "field:sale.configuration,sale_shipment_method:0"
+msgctxt "field:sale.configuration,sale_shipment_method:"
msgid "Sale Shipment Method"
msgstr ""
-msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:0"
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
msgid "Domain Invoices"
msgstr ""
-msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid "Recreate Invoices"
msgstr ""
-msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
msgid "Domain Moves"
msgstr ""
-msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
msgid "Recreate Moves"
msgstr ""
-msgctxt "field:sale.line,amount:0"
+msgctxt "field:sale.line,amount:"
msgid "Amount"
msgstr ""
-msgctxt "field:sale.line,description:0"
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
+msgctxt "field:sale.line,description:"
msgid "Description"
msgstr ""
-msgctxt "field:sale.line,invoice_lines:0"
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr ""
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.line,invoice_lines:"
msgid "Invoice Lines"
msgstr ""
-msgctxt "field:sale.line,move_done:0"
+msgctxt "field:sale.line,move_done:"
msgid "Moves Done"
msgstr ""
-msgctxt "field:sale.line,move_exception:0"
+msgctxt "field:sale.line,move_exception:"
msgid "Moves Exception"
msgstr ""
-msgctxt "field:sale.line,moves:0"
+msgctxt "field:sale.line,moves:"
msgid "Moves"
msgstr ""
-msgctxt "field:sale.line,moves_ignored:0"
+msgctxt "field:sale.line,moves_ignored:"
msgid "Ignored Moves"
msgstr ""
-msgctxt "field:sale.line,moves_recreated:0"
+msgctxt "field:sale.line,moves_recreated:"
msgid "Recreated Moves"
msgstr ""
-msgctxt "field:sale.line,note:0"
+msgctxt "field:sale.line,note:"
msgid "Note"
msgstr ""
-msgctxt "field:sale.line,product:0"
+msgctxt "field:sale.line,product:"
msgid "Product"
msgstr ""
-msgctxt "field:sale.line,quantity:0"
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr ""
+
+msgctxt "field:sale.line,quantity:"
msgid "Quantity"
msgstr ""
-msgctxt "field:sale.line,rec_name:0"
+msgctxt "field:sale.line,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.line,sale:0"
+msgctxt "field:sale.line,sale:"
msgid "Sale"
msgstr ""
-msgctxt "field:sale.line,sequence:0"
+msgctxt "field:sale.line,sequence:"
msgid "Sequence"
msgstr ""
-msgctxt "field:sale.line,taxes:0"
+msgctxt "field:sale.line,taxes:"
msgid "Taxes"
msgstr ""
-msgctxt "field:sale.line,type:0"
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr ""
+
+msgctxt "field:sale.line,type:"
msgid "Type"
msgstr ""
-msgctxt "field:sale.line,unit:0"
+msgctxt "field:sale.line,unit:"
msgid "Unit"
msgstr ""
-msgctxt "field:sale.line,unit_digits:0"
+msgctxt "field:sale.line,unit_digits:"
msgid "Unit Digits"
msgstr ""
-msgctxt "field:sale.line,unit_price:0"
+msgctxt "field:sale.line,unit_price:"
msgid "Unit Price"
msgstr ""
-msgctxt "field:sale.line-account.invoice.line,invoice_line:0"
-msgid "Invoice Line"
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr ""
+
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
msgstr ""
-msgctxt "field:sale.line-account.invoice.line,rec_name:0"
-msgid "Name"
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
msgstr ""
-msgctxt "field:sale.line-account.invoice.line,sale_line:0"
-msgid "Sale Line"
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
msgstr ""
-msgctxt "field:sale.line-account.tax,line:0"
+msgctxt "field:sale.line-account.tax,line:"
msgid "Sale Line"
msgstr ""
-msgctxt "field:sale.line-account.tax,rec_name:0"
+msgctxt "field:sale.line-account.tax,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.line-account.tax,tax:0"
+msgctxt "field:sale.line-account.tax,tax:"
msgid "Tax"
msgstr ""
-msgctxt "field:sale.line-ignored-stock.move,move:0"
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
msgid "Move"
msgstr ""
-msgctxt "field:sale.line-ignored-stock.move,rec_name:0"
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.line-ignored-stock.move,sale_line:0"
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
msgid "Sale Line"
msgstr ""
-msgctxt "field:sale.line-recreated-stock.move,move:0"
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
msgid "Move"
msgstr ""
-msgctxt "field:sale.line-recreated-stock.move,rec_name:0"
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.line-recreated-stock.move,sale_line:0"
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
msgid "Sale Line"
msgstr ""
-msgctxt "field:sale.sale,comment:0"
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.sale,comment:"
msgid "Comment"
msgstr ""
-msgctxt "field:sale.sale,company:0"
+msgctxt "field:sale.sale,company:"
msgid "Company"
msgstr ""
-msgctxt "field:sale.sale,currency:0"
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.sale,currency:"
msgid "Currency"
msgstr ""
-msgctxt "field:sale.sale,currency_digits:0"
+msgctxt "field:sale.sale,currency_digits:"
msgid "Currency Digits"
msgstr ""
-msgctxt "field:sale.sale,description:0"
+msgctxt "field:sale.sale,description:"
msgid "Description"
msgstr ""
-msgctxt "field:sale.sale,invoice_address:0"
-msgid "Invoice Address"
+msgctxt "field:sale.sale,id:"
+msgid "ID"
msgstr ""
-msgctxt "field:sale.sale,invoice_exception:0"
-msgid "Invoices Exception"
+msgctxt "field:sale.sale,invoice_address:"
+msgid "Invoice Address"
msgstr ""
-msgctxt "field:sale.sale,invoice_method:0"
+msgctxt "field:sale.sale,invoice_method:"
msgid "Invoice Method"
msgstr ""
-msgctxt "field:sale.sale,invoice_paid:0"
-msgid "Invoices Paid"
-msgstr ""
-
-msgctxt "field:sale.sale,invoice_state:0"
+msgctxt "field:sale.sale,invoice_state:"
msgid "Invoice State"
msgstr ""
-msgctxt "field:sale.sale,invoices:0"
+msgctxt "field:sale.sale,invoices:"
msgid "Invoices"
msgstr ""
-msgctxt "field:sale.sale,invoices_ignored:0"
+msgctxt "field:sale.sale,invoices_ignored:"
msgid "Ignored Invoices"
msgstr ""
-msgctxt "field:sale.sale,invoices_recreated:0"
+msgctxt "field:sale.sale,invoices_recreated:"
msgid "Recreated Invoices"
msgstr ""
-msgctxt "field:sale.sale,lines:0"
+msgctxt "field:sale.sale,lines:"
msgid "Lines"
msgstr ""
-msgctxt "field:sale.sale,moves:0"
+msgctxt "field:sale.sale,moves:"
msgid "Moves"
msgstr ""
-msgctxt "field:sale.sale,party:0"
+msgctxt "field:sale.sale,party:"
msgid "Party"
msgstr ""
-msgctxt "field:sale.sale,party_lang:0"
+msgctxt "field:sale.sale,party_lang:"
msgid "Party Language"
msgstr ""
-msgctxt "field:sale.sale,payment_term:0"
+msgctxt "field:sale.sale,payment_term:"
msgid "Payment Term"
msgstr ""
-msgctxt "field:sale.sale,rec_name:0"
+msgctxt "field:sale.sale,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.sale,reference:0"
+msgctxt "field:sale.sale,reference:"
msgid "Reference"
msgstr ""
-msgctxt "field:sale.sale,sale_date:0"
+msgctxt "field:sale.sale,sale_date:"
msgid "Sale Date"
msgstr ""
-msgctxt "field:sale.sale,shipment_address:0"
+msgctxt "field:sale.sale,shipment_address:"
msgid "Shipment Address"
msgstr ""
-msgctxt "field:sale.sale,shipment_done:0"
-msgid "Shipment Done"
-msgstr ""
-
-msgctxt "field:sale.sale,shipment_exception:0"
-msgid "Shipments Exception"
+msgctxt "field:sale.sale,shipment_method:"
+msgid "Shipment Method"
msgstr ""
-msgctxt "field:sale.sale,shipment_method:0"
-msgid "Shipment Method"
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
msgstr ""
-msgctxt "field:sale.sale,shipment_state:0"
+msgctxt "field:sale.sale,shipment_state:"
msgid "Shipment State"
msgstr ""
-msgctxt "field:sale.sale,shipments:0"
+msgctxt "field:sale.sale,shipments:"
msgid "Shipments"
msgstr ""
-msgctxt "field:sale.sale,state:0"
+msgctxt "field:sale.sale,state:"
msgid "State"
msgstr ""
-msgctxt "field:sale.sale,tax_amount:0"
+msgctxt "field:sale.sale,tax_amount:"
msgid "Tax"
msgstr ""
-msgctxt "field:sale.sale,total_amount:0"
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr ""
+
+msgctxt "field:sale.sale,total_amount:"
msgid "Total"
msgstr ""
-msgctxt "field:sale.sale,untaxed_amount:0"
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr ""
+
+msgctxt "field:sale.sale,untaxed_amount:"
msgid "Untaxed"
msgstr ""
-msgctxt "field:sale.sale,warehouse:0"
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr ""
+
+msgctxt "field:sale.sale,warehouse:"
msgid "Warehouse"
msgstr ""
-msgctxt "field:sale.sale-account.invoice,invoice:0"
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
msgid "Invoice"
msgstr ""
-msgctxt "field:sale.sale-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-account.invoice,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.sale-account.invoice,sale:0"
+msgctxt "field:sale.sale-account.invoice,sale:"
msgid "Sale"
msgstr ""
-msgctxt "field:sale.sale-ignored-account.invoice,invoice:0"
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
msgid "Invoice"
msgstr ""
-msgctxt "field:sale.sale-ignored-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.sale-ignored-account.invoice,sale:0"
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
msgid "Sale"
msgstr ""
-msgctxt "field:sale.sale-recreated-account.invoice,invoice:0"
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
msgid "Invoice"
msgstr ""
-msgctxt "field:sale.sale-recreated-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
msgid "Name"
msgstr ""
-msgctxt "field:sale.sale-recreated-account.invoice,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
msgid "Sale"
msgstr ""
-msgctxt "field:stock.move,sale:0"
-msgid "Sale"
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
msgstr ""
-msgctxt "field:stock.move,sale_exception_state:0"
-msgid "Exception State"
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
msgstr ""
-msgctxt "field:stock.move,sale_line:0"
-msgid "Sale Line"
+msgctxt "field:stock.move,sale:"
+msgid "Sale"
msgstr ""
-msgctxt "help:product.template,delivery_time:0"
+msgctxt "field:stock.move,sale_exception_state:"
+msgid "Exception State"
+msgstr ""
+
+msgctxt "help:product.template,delivery_time:"
msgid "In number of days"
msgstr ""
-msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid ""
"The selected invoices will be recreated. The other ones will be ignored."
msgstr ""
@@ -411,6 +613,10 @@
msgid "Parties associated to Sales"
msgstr ""
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr ""
+
msgctxt "model:ir.action,name:act_sale_configuration_form"
msgid "Sales Configuration"
msgstr ""
@@ -423,18 +629,6 @@
msgid "Sales"
msgstr ""
-msgctxt "model:ir.action,name:act_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr ""
-
-msgctxt "model:ir.action,name:act_sale_form_draft"
-msgid "Draft Sales"
-msgstr ""
-
-msgctxt "model:ir.action,name:act_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr ""
-
msgctxt "model:ir.action,name:act_shipment_form"
msgid "Shipments"
msgstr ""
@@ -447,10 +641,37 @@
msgid "Handle Invoice Exception"
msgstr ""
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr ""
+
msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
msgid "Handle Shipment Exception"
msgstr ""
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr ""
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr ""
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr ""
+
msgctxt "model:ir.sequence,name:sequence_sale"
msgid "Sale"
msgstr ""
@@ -479,18 +700,6 @@
msgid "Sales"
msgstr ""
-msgctxt "model:ir.ui.menu,name:menu_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr ""
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_draft"
-msgid "Draft Sales"
-msgstr ""
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr ""
-
msgctxt "model:res.group,name:group_sale"
msgid "Sales"
msgstr ""
@@ -499,490 +708,370 @@
msgid "Sales Administrator"
msgstr ""
-msgctxt "model:sale.configuration,name:0"
+msgctxt "model:sale.configuration,name:"
msgid "Sale Configuration"
msgstr ""
-msgctxt "model:sale.handle.invoice.exception.ask,name:0"
-msgid "Invoice Exception Ask"
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
msgstr ""
-msgctxt "model:sale.handle.shipment.exception.ask,name:0"
-msgid "Shipment Exception Ask"
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
msgstr ""
-msgctxt "model:sale.line,name:0"
+msgctxt "model:sale.line,name:"
msgid "Sale Line"
msgstr ""
-msgctxt "model:sale.line-account.invoice.line,name:0"
-msgid "Sale Line - Invoice Line"
-msgstr ""
-
-msgctxt "model:sale.line-account.tax,name:0"
+msgctxt "model:sale.line-account.tax,name:"
msgid "Sale Line - Tax"
msgstr ""
-msgctxt "model:sale.line-ignored-stock.move,name:0"
+msgctxt "model:sale.line-ignored-stock.move,name:"
msgid "Sale Line - Ignored Move"
msgstr ""
-msgctxt "model:sale.line-recreated-stock.move,name:0"
+msgctxt "model:sale.line-recreated-stock.move,name:"
msgid "Sale Line - Recreated Move"
msgstr ""
-msgctxt "model:sale.sale,name:0"
+msgctxt "model:sale.sale,name:"
msgid "Sale"
msgstr ""
-msgctxt "model:sale.sale-account.invoice,name:0"
+msgctxt "model:sale.sale-account.invoice,name:"
msgid "Sale - Invoice"
msgstr ""
-msgctxt "model:sale.sale-ignored-account.invoice,name:0"
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
msgid "Sale - Ignored Invoice"
msgstr ""
-msgctxt "model:sale.sale-recreated-account.invoice,name:0"
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
msgid "Sale - Recreated Invoice"
msgstr ""
-msgctxt "model:workflow,name:sale_workflow"
-msgid "Sale workflow"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_cancel"
-msgid "Canceled"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_confirmed"
-msgid "Confirmed"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_done"
-msgid "Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_draft"
-msgid "Draft"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method"
-msgid "Invoice Method"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method_done"
-msgid "Invoice Method Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_done"
-msgid "Invoice Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_exception"
-msgid "Invoice Exception"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment"
-msgid "Invoice Shipment"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_done"
-msgid "Invoice Shipment Done"
-msgstr ""
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_exception"
-msgid "Invoice Shipment Exception"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_method"
-msgid "Invoice Shipment Method"
-msgstr ""
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_method_done"
-msgid "Invoice Shipment Method Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_quotation"
-msgid "Quotation"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment"
-msgid "Shipment"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_exception"
-msgid "Shipment Exception"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice"
-msgid "Shipment Invoice"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_done"
-msgid "Shipment Invoice Done"
-msgstr ""
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_exception"
-msgid "Shipment Invoice Exception"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_method"
-msgid "Shipment Invoice Method"
-msgstr ""
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_method_done"
-msgid "Shipment Invoice Method Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method"
-msgid "Shipment Method"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method_done"
-msgid "Shipment Method Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_sale"
-msgid "Waiting Invoice"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_shipment"
-msgid "Waiting Invoice Shipment"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment"
-msgid "Waiting Shipment"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment_invoice"
-msgid "Waiting Shipment Invoice"
-msgstr ""
-
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Amount"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Date:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Draft Sale Order"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "E-Mail:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Phone:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quantity"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quotation N°:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Sale Order N°:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total (excl. taxes):"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Unit Price"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT Number:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT:"
msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Ignored"
msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Recreated"
msgstr ""
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "Manual"
msgstr ""
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
-msgid "On Order Confirmed"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
msgstr ""
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "On Shipment Sent"
msgstr ""
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "Manual"
msgstr ""
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "On Invoice Paid"
msgstr ""
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
-msgid "On Order Confirmed"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
msgstr ""
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Comment"
msgstr ""
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Line"
msgstr ""
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Subtotal"
msgstr ""
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Title"
msgstr ""
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "Manual"
msgstr ""
-msgctxt "selection:sale.sale,invoice_method:0"
-msgid "On Order Confirmed"
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
msgstr ""
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "On Shipment Sent"
msgstr ""
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Exception"
msgstr ""
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "None"
msgstr ""
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Paid"
msgstr ""
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Waiting"
msgstr ""
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "Manual"
msgstr ""
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "On Invoice Paid"
msgstr ""
-msgctxt "selection:sale.sale,shipment_method:0"
-msgid "On Order Confirmed"
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
msgstr ""
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Exception"
msgstr ""
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "None"
msgstr ""
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Sent"
msgstr ""
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Waiting"
msgstr ""
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Canceled"
msgstr ""
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Confirmed"
msgstr ""
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Done"
msgstr ""
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Draft"
msgstr ""
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr ""
+
+msgctxt "selection:sale.sale,state:"
msgid "Quotation"
msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Ignored"
msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Recreated"
msgstr ""
-msgctxt "view:product.template:0"
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr ""
+
+msgctxt "view:product.template:"
msgid "Customers"
msgstr ""
-msgctxt "view:sale.configuration:0"
+msgctxt "view:sale.configuration:"
msgid "Sale Configuration"
msgstr ""
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Choose invoices to recreate"
msgstr ""
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Handle Invoice Exception"
msgstr ""
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Choose move to recreate"
msgstr ""
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Handle shipment Exception"
msgstr ""
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Recreate Moves"
-msgstr ""
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "General"
msgstr ""
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Notes"
msgstr ""
-msgctxt "view:sale.line:0"
-msgid "Products"
-msgstr ""
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Line"
msgstr ""
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Lines"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Cancel"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Confirm"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Draft"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Invoice Exception"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Shipment Exception"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Invoices"
msgstr ""
-msgctxt "view:sale.sale:0"
-msgid "Lines"
-msgstr ""
-
-msgctxt "view:sale.sale:0"
-msgid "Moves"
+msgctxt "view:sale.sale:"
+msgid "Other Info"
msgstr ""
-msgctxt "view:sale.sale:0"
-msgid "Other Info"
+msgctxt "view:sale.sale:"
+msgid "Process"
msgstr ""
-msgctxt "view:sale.sale:0"
-msgid "Quotation"
+msgctxt "view:sale.sale:"
+msgid "Quote"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sale"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sales"
msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Shipments"
msgstr ""
-msgctxt "wizard_button:sale.handle.invoice.exception,init,end:0"
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr ""
+
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
msgid "Cancel"
msgstr ""
-msgctxt "wizard_button:sale.handle.invoice.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
msgid "Ok"
msgstr ""
-msgctxt "wizard_button:sale.handle.shipment.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
msgid "Cancel"
msgstr ""
-msgctxt "wizard_button:sale.handle.shipment.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
msgid "Ok"
msgstr ""
diff -Nru tryton-modules-sale-2.2.2/locale/de_DE.po tryton-modules-sale-2.8.0/locale/de_DE.po
--- tryton-modules-sale-2.2.2/locale/de_DE.po 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/de_DE.po 2013-04-21 13:53:25.000000000 +0000
@@ -2,408 +2,623 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:account.invoice:0"
-msgid "You can not delete invoices that come from a sale!"
-msgstr ""
-"Durch einen Verkauf generierte Rechnungen können nicht gelöscht werden!"
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr "Aus einem Verkauf stammende Rechnungen können nicht gelöscht werden."
-msgctxt "error:account.invoice:0"
+msgctxt "error:account.invoice:"
msgid "You cannot reset to draft an invoice generated by a sale."
msgstr ""
"Eine durch einen Verkauf generierte Rechnung kann nicht auf Entwurf "
"zurückgesetzt werden."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"Account Revenue\" on product \"%s\"!"
-msgstr "Es ist kein Ertragskonto für Artikel \"%s\" definiert!"
-
-msgctxt "error:sale.line:0"
-msgid "It misses an \"account Revenue\" default property!"
-msgstr "Es ist keine Standardeigenschaft für das Ertragskonto definiert!"
-
-msgctxt "error:sale.line:0"
-msgid "The customer location is required!"
-msgstr "Der Lagerort des Kunden muss eingegeben werden!"
-
-msgctxt "error:sale.sale:0"
-msgid "Invoice and Shipment addresses must be defined for the quotation."
-msgstr "Rechnungs- und Lieferadresse müssen für das Angebot eingetragen sein!"
-
-msgctxt "error:sale.sale:0"
-msgid "It misses an \"Account Receivable\" on the party \"%s\"!"
-msgstr "Es ist kein Forderungskonto für Partei \"%s\" definiert!"
-
-msgctxt "error:sale.sale:0"
-msgid "Wrong combination of method!"
-msgstr "Ungültige Kombination von Methoden!"
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr ""
+"Für Artikel \"%(product)s\" in Verkauf %(sale)s ist kein Ertragskonto "
+"eingetragen."
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
+msgstr ""
+"Für Verkauf \"%(sale)s\" Position \"%(line)s\" ist kein Lagerort Kunde "
+"eingetragen."
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr ""
+"Für Verkauf \"%(sale)s\" ist keine Standardeigenschaft für das Ertragskonto"
+" eingetragen."
+
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
+msgstr ""
+"Ungültige Kombination von Liefermethode und Rechnungsstellung in Verkauf "
+"\"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
+msgstr ""
+"Rechnungs- und Lieferadresse müssen angegeben werden für Angebotserstellung "
+"von Verkauf \"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr "Fehlendes \"Forderungskonto\" für Partei \"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr "Verkauf \"%s\" muss annulliert werden, bevor er gelöscht werden kann."
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr ""
+"Warenlager muss angegeben werden für die Angebotserstellung von Verkauf "
+"\"%s\"."
+
+msgctxt "error:stock.shipment.out.return:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr ""
+"Eine durch einen Verkauf generierte Lagerbewegung kann nicht auf Entwurf "
+"zurückgesetzt werden."
-msgctxt "error:stock.shipment.out:0"
+msgctxt "error:stock.shipment.out:"
msgid "You cannot reset to draft a move generated by a sale."
msgstr ""
"Eine durch einen Verkauf generierte Bewegung kann nicht auf Entwurf "
"zurückgesetzt werden."
-msgctxt "field:account.invoice,sale_exception_state:0"
+msgctxt "field:account.invoice,sale_exception_state:"
msgid "Exception State"
msgstr "Vorbehalt Status"
-msgctxt "field:account.invoice,sales:0"
+msgctxt "field:account.invoice,sales:"
msgid "Sales"
msgstr "Verkäufe"
-msgctxt "field:account.invoice.line,sale_lines:0"
-msgid "Sale Lines"
-msgstr "Positionen Verkauf"
-
-msgctxt "field:product.template,delivery_time:0"
+msgctxt "field:product.template,delivery_time:"
msgid "Delivery Time"
msgstr "Lieferfrist"
-msgctxt "field:product.template,salable:0"
+msgctxt "field:product.template,salable:"
msgid "Salable"
msgstr "Verkäuflich"
-msgctxt "field:product.template,sale_uom:0"
+msgctxt "field:product.template,sale_uom:"
msgid "Sale UOM"
msgstr "Einheit Verkauf"
-msgctxt "field:sale.configuration,rec_name:0"
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.configuration,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.configuration,sale_invoice_method:0"
+msgctxt "field:sale.configuration,sale_invoice_method:"
msgid "Sale Invoice Method"
msgstr "Rechnungsstellung Verkauf"
-msgctxt "field:sale.configuration,sale_sequence:0"
+msgctxt "field:sale.configuration,sale_sequence:"
msgid "Sale Reference Sequence"
msgstr "Nummernkreis Verkauf"
-msgctxt "field:sale.configuration,sale_shipment_method:0"
+msgctxt "field:sale.configuration,sale_shipment_method:"
msgid "Sale Shipment Method"
msgstr "Liefermethode Verkauf"
-msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:0"
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
msgid "Domain Invoices"
msgstr "Wertebereich Rechnungen (Domain)"
-msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid "Recreate Invoices"
msgstr "Rechnungen nachbilden"
-msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
msgid "Domain Moves"
msgstr "Wertebereich Bewegungen (Domain)"
-msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
msgid "Recreate Moves"
msgstr "Bewegungen nachbilden"
-msgctxt "field:sale.line,amount:0"
+msgctxt "field:sale.line,amount:"
msgid "Amount"
msgstr "Betrag"
-msgctxt "field:sale.line,description:0"
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr "Lieferdatum"
+
+msgctxt "field:sale.line,description:"
msgid "Description"
msgstr "Bezeichnung"
-msgctxt "field:sale.line,invoice_lines:0"
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr "Von Lagerort"
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line,invoice_lines:"
msgid "Invoice Lines"
msgstr "Rechnungspositionen"
-msgctxt "field:sale.line,move_done:0"
+msgctxt "field:sale.line,move_done:"
msgid "Moves Done"
msgstr "Bewegungen erledigt"
-msgctxt "field:sale.line,move_exception:0"
+msgctxt "field:sale.line,move_exception:"
msgid "Moves Exception"
msgstr "Bewegungsvorbehalt"
-msgctxt "field:sale.line,moves:0"
+msgctxt "field:sale.line,moves:"
msgid "Moves"
msgstr "Bewegungen"
-msgctxt "field:sale.line,moves_ignored:0"
+msgctxt "field:sale.line,moves_ignored:"
msgid "Ignored Moves"
msgstr "Ignorierte Bewegungen"
-msgctxt "field:sale.line,moves_recreated:0"
+msgctxt "field:sale.line,moves_recreated:"
msgid "Recreated Moves"
msgstr "Nachgebildete Bewegungen"
-msgctxt "field:sale.line,note:0"
+msgctxt "field:sale.line,note:"
msgid "Note"
msgstr "Notiz"
-msgctxt "field:sale.line,product:0"
+msgctxt "field:sale.line,product:"
msgid "Product"
msgstr "Artikel"
-msgctxt "field:sale.line,quantity:0"
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr "Artikel Maßeinheit Kategorie"
+
+msgctxt "field:sale.line,quantity:"
msgid "Quantity"
msgstr "Anzahl"
-msgctxt "field:sale.line,rec_name:0"
+msgctxt "field:sale.line,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.line,sale:0"
+msgctxt "field:sale.line,sale:"
msgid "Sale"
msgstr "Verkauf"
-msgctxt "field:sale.line,sequence:0"
+msgctxt "field:sale.line,sequence:"
msgid "Sequence"
msgstr "Reihenfolge"
-msgctxt "field:sale.line,taxes:0"
+msgctxt "field:sale.line,taxes:"
msgid "Taxes"
msgstr "Steuern"
-msgctxt "field:sale.line,type:0"
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr "Zu Lagerort"
+
+msgctxt "field:sale.line,type:"
msgid "Type"
msgstr "Typ"
-msgctxt "field:sale.line,unit:0"
+msgctxt "field:sale.line,unit:"
msgid "Unit"
msgstr "Einheit"
-msgctxt "field:sale.line,unit_digits:0"
+msgctxt "field:sale.line,unit_digits:"
msgid "Unit Digits"
msgstr "Anzahl Stellen"
-msgctxt "field:sale.line,unit_price:0"
+msgctxt "field:sale.line,unit_price:"
msgid "Unit Price"
msgstr "Einzelpreis"
-msgctxt "field:sale.line-account.invoice.line,invoice_line:0"
-msgid "Invoice Line"
-msgstr "Rechnungsposition"
-
-msgctxt "field:sale.line-account.invoice.line,rec_name:0"
-msgid "Name"
-msgstr "Name"
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Warenlager"
-msgctxt "field:sale.line-account.invoice.line,sale_line:0"
-msgid "Sale Line"
-msgstr "Position Verkauf"
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.line-account.tax,line:0"
+msgctxt "field:sale.line-account.tax,line:"
msgid "Sale Line"
msgstr "Position Verkauf"
-msgctxt "field:sale.line-account.tax,rec_name:0"
+msgctxt "field:sale.line-account.tax,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.line-account.tax,tax:0"
+msgctxt "field:sale.line-account.tax,tax:"
msgid "Tax"
msgstr "Steuer"
-msgctxt "field:sale.line-ignored-stock.move,move:0"
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
msgid "Move"
msgstr "Bewegung"
-msgctxt "field:sale.line-ignored-stock.move,rec_name:0"
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.line-ignored-stock.move,sale_line:0"
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Position Verkauf"
-msgctxt "field:sale.line-recreated-stock.move,move:0"
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
msgid "Move"
msgstr "Bewegung"
-msgctxt "field:sale.line-recreated-stock.move,rec_name:0"
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.line-recreated-stock.move,sale_line:0"
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Position Verkauf"
-msgctxt "field:sale.sale,comment:0"
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:sale.sale,comment:"
msgid "Comment"
msgstr "Kommentar"
-msgctxt "field:sale.sale,company:0"
+msgctxt "field:sale.sale,company:"
msgid "Company"
msgstr "Unternehmen"
-msgctxt "field:sale.sale,currency:0"
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.sale,currency:"
msgid "Currency"
msgstr "Währung"
-msgctxt "field:sale.sale,currency_digits:0"
+msgctxt "field:sale.sale,currency_digits:"
msgid "Currency Digits"
msgstr "Währung (signifikante Stellen)"
-msgctxt "field:sale.sale,description:0"
+msgctxt "field:sale.sale,description:"
msgid "Description"
msgstr "Beschreibung"
-msgctxt "field:sale.sale,invoice_address:0"
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale,invoice_address:"
msgid "Invoice Address"
msgstr "Rechnungsadresse"
-msgctxt "field:sale.sale,invoice_exception:0"
-msgid "Invoices Exception"
-msgstr "Rechnungsvorbehalt"
-
-msgctxt "field:sale.sale,invoice_method:0"
+msgctxt "field:sale.sale,invoice_method:"
msgid "Invoice Method"
msgstr "Rechnungsstellung"
-msgctxt "field:sale.sale,invoice_paid:0"
-msgid "Invoices Paid"
-msgstr "Bezahlte Rechnungen"
-
-msgctxt "field:sale.sale,invoice_state:0"
+msgctxt "field:sale.sale,invoice_state:"
msgid "Invoice State"
msgstr "Rechnungsstatus"
-msgctxt "field:sale.sale,invoices:0"
+msgctxt "field:sale.sale,invoices:"
msgid "Invoices"
msgstr "Rechnungen"
-msgctxt "field:sale.sale,invoices_ignored:0"
+msgctxt "field:sale.sale,invoices_ignored:"
msgid "Ignored Invoices"
msgstr "Ignorierte Rechnungen"
-msgctxt "field:sale.sale,invoices_recreated:0"
+msgctxt "field:sale.sale,invoices_recreated:"
msgid "Recreated Invoices"
msgstr "Nachgebildete Rechnungen"
-msgctxt "field:sale.sale,lines:0"
+msgctxt "field:sale.sale,lines:"
msgid "Lines"
msgstr "Positionen"
-msgctxt "field:sale.sale,moves:0"
+msgctxt "field:sale.sale,moves:"
msgid "Moves"
msgstr "Bewegungen"
-msgctxt "field:sale.sale,party:0"
+msgctxt "field:sale.sale,party:"
msgid "Party"
msgstr "Partei"
-msgctxt "field:sale.sale,party_lang:0"
+msgctxt "field:sale.sale,party_lang:"
msgid "Party Language"
msgstr "Sprache Partei"
-msgctxt "field:sale.sale,payment_term:0"
+msgctxt "field:sale.sale,payment_term:"
msgid "Payment Term"
msgstr "Zahlungsbedingung"
-msgctxt "field:sale.sale,rec_name:0"
+msgctxt "field:sale.sale,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.sale,reference:0"
+msgctxt "field:sale.sale,reference:"
msgid "Reference"
msgstr "Beleg-Nr."
-msgctxt "field:sale.sale,sale_date:0"
+msgctxt "field:sale.sale,sale_date:"
msgid "Sale Date"
msgstr "Verkaufsdatum"
-msgctxt "field:sale.sale,shipment_address:0"
+msgctxt "field:sale.sale,shipment_address:"
msgid "Shipment Address"
msgstr "Lieferadresse"
-msgctxt "field:sale.sale,shipment_done:0"
-msgid "Shipment Done"
-msgstr "Gepackt"
-
-msgctxt "field:sale.sale,shipment_exception:0"
-msgid "Shipments Exception"
-msgstr "Lieferungsvorbehalt"
-
-msgctxt "field:sale.sale,shipment_method:0"
+msgctxt "field:sale.sale,shipment_method:"
msgid "Shipment Method"
msgstr "Liefermethode"
-msgctxt "field:sale.sale,shipment_state:0"
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr "Lieferposten Rücknahmen"
+
+msgctxt "field:sale.sale,shipment_state:"
msgid "Shipment State"
msgstr "Lieferstatus"
-msgctxt "field:sale.sale,shipments:0"
+msgctxt "field:sale.sale,shipments:"
msgid "Shipments"
msgstr "Lieferposten"
-msgctxt "field:sale.sale,state:0"
+msgctxt "field:sale.sale,state:"
msgid "State"
msgstr "Status"
-msgctxt "field:sale.sale,tax_amount:0"
+msgctxt "field:sale.sale,tax_amount:"
msgid "Tax"
msgstr "Steuer"
-msgctxt "field:sale.sale,total_amount:0"
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr "Steuer Cache"
+
+msgctxt "field:sale.sale,total_amount:"
msgid "Total"
msgstr "Gesamt"
-msgctxt "field:sale.sale,untaxed_amount:0"
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr "Gesamt Steuer"
+
+msgctxt "field:sale.sale,untaxed_amount:"
msgid "Untaxed"
msgstr "Netto"
-msgctxt "field:sale.sale,warehouse:0"
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr "Netto Cache"
+
+msgctxt "field:sale.sale,warehouse:"
msgid "Warehouse"
msgstr "Warenlager"
-msgctxt "field:sale.sale-account.invoice,invoice:0"
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
msgid "Invoice"
msgstr "Rechnung"
-msgctxt "field:sale.sale-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-account.invoice,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.sale-account.invoice,sale:0"
+msgctxt "field:sale.sale-account.invoice,sale:"
msgid "Sale"
msgstr "Verkauf"
-msgctxt "field:sale.sale-ignored-account.invoice,invoice:0"
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
msgid "Invoice"
msgstr "Rechnung"
-msgctxt "field:sale.sale-ignored-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.sale-ignored-account.invoice,sale:0"
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
msgid "Sale"
msgstr "Verkauf"
-msgctxt "field:sale.sale-recreated-account.invoice,invoice:0"
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Erstellungsdatum"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Erstellt durch"
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
msgid "Invoice"
msgstr "Rechnung"
-msgctxt "field:sale.sale-recreated-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
msgid "Name"
msgstr "Name"
-msgctxt "field:sale.sale-recreated-account.invoice,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
msgid "Sale"
msgstr "Verkauf"
-msgctxt "field:stock.move,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Zuletzt geändert"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Letzte Änderung durch"
+
+msgctxt "field:stock.move,sale:"
msgid "Sale"
msgstr "Verkauf"
-msgctxt "field:stock.move,sale_exception_state:0"
+msgctxt "field:stock.move,sale_exception_state:"
msgid "Exception State"
msgstr "Status Vorbehalt"
-msgctxt "field:stock.move,sale_line:0"
-msgid "Sale Line"
-msgstr "Verkauf Position"
-
-msgctxt "help:product.template,delivery_time:0"
+msgctxt "help:product.template,delivery_time:"
msgid "In number of days"
msgstr "In Anzahl von Tagen"
-msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid ""
"The selected invoices will be recreated. The other ones will be ignored."
msgstr ""
@@ -418,9 +633,13 @@
msgid "Parties associated to Sales"
msgstr "Parteien: Verkäufen zugeordnet"
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr "Rücknahmen"
+
msgctxt "model:ir.action,name:act_sale_configuration_form"
msgid "Sales Configuration"
-msgstr "Einstellungen Verkauf"
+msgstr "Verkauf"
msgctxt "model:ir.action,name:act_sale_form"
msgid "Sales"
@@ -430,18 +649,6 @@
msgid "Sales"
msgstr "Verkäufe"
-msgctxt "model:ir.action,name:act_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Aufträge Verkäufe"
-
-msgctxt "model:ir.action,name:act_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Entwürfe Verkäufe"
-
-msgctxt "model:ir.action,name:act_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Angebote Verkäufe"
-
msgctxt "model:ir.action,name:act_shipment_form"
msgid "Shipments"
msgstr "Lieferposten"
@@ -454,9 +661,36 @@
msgid "Handle Invoice Exception"
msgstr "Rechnungsvorbehalt bearbeiten"
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr "Rücknahme erstellen"
+
msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
msgid "Handle Shipment Exception"
-msgstr "Liefervorbehalt bearbeiten"
+msgstr "Nachfrage Liefervorbehalt"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr "Alle"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Bestätigt"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Entwurf"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "In Ausführung"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Angebot"
msgctxt "model:ir.sequence,name:sequence_sale"
msgid "Sale"
@@ -480,24 +714,12 @@
msgctxt "model:ir.ui.menu,name:menu_sale_configuration"
msgid "Sales Configuration"
-msgstr "Einstellungen Verkauf"
+msgstr "Verkauf"
msgctxt "model:ir.ui.menu,name:menu_sale_form"
msgid "Sales"
msgstr "Verkäufe"
-msgctxt "model:ir.ui.menu,name:menu_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Aufträge (Verkäufe)"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Entwürfe (Verkäufe)"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Angebote (Verkäufe)"
-
msgctxt "model:res.group,name:group_sale"
msgid "Sales"
msgstr "Verkauf"
@@ -506,510 +728,370 @@
msgid "Sales Administrator"
msgstr "Verkauf Administration"
-msgctxt "model:sale.configuration,name:0"
+msgctxt "model:sale.configuration,name:"
msgid "Sale Configuration"
msgstr "Einstellungen Verkauf"
-msgctxt "model:sale.handle.invoice.exception.ask,name:0"
-msgid "Invoice Exception Ask"
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
msgstr "Rechnungsvorbehalt Nachfrage"
-msgctxt "model:sale.handle.shipment.exception.ask,name:0"
-msgid "Shipment Exception Ask"
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
msgstr "Nachfrage Liefervorbehalt"
-msgctxt "model:sale.line,name:0"
+msgctxt "model:sale.line,name:"
msgid "Sale Line"
msgstr "Verkauf Position"
-msgctxt "model:sale.line-account.invoice.line,name:0"
-msgid "Sale Line - Invoice Line"
-msgstr "Verkauf Position - Rechnungsposition"
-
-msgctxt "model:sale.line-account.tax,name:0"
+msgctxt "model:sale.line-account.tax,name:"
msgid "Sale Line - Tax"
msgstr "Verkauf Position - Steuer"
-msgctxt "model:sale.line-ignored-stock.move,name:0"
+msgctxt "model:sale.line-ignored-stock.move,name:"
msgid "Sale Line - Ignored Move"
msgstr "Verkauf Position - Bewegung Ignoriert"
-msgctxt "model:sale.line-recreated-stock.move,name:0"
+msgctxt "model:sale.line-recreated-stock.move,name:"
msgid "Sale Line - Recreated Move"
msgstr "Verkauf Position - Bewegung Nachgebildet"
-msgctxt "model:sale.sale,name:0"
+msgctxt "model:sale.sale,name:"
msgid "Sale"
msgstr "Verkauf"
-msgctxt "model:sale.sale-account.invoice,name:0"
+msgctxt "model:sale.sale-account.invoice,name:"
msgid "Sale - Invoice"
msgstr "Verkauf - Rechnung"
-msgctxt "model:sale.sale-ignored-account.invoice,name:0"
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
msgid "Sale - Ignored Invoice"
msgstr "Verkauf - Rechnung Ignoriert"
-msgctxt "model:sale.sale-recreated-account.invoice,name:0"
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
msgid "Sale - Recreated Invoice"
msgstr "Verkauf - Rechnung Nachgebildet"
-msgctxt "model:workflow,name:sale_workflow"
-msgid "Sale workflow"
-msgstr "Workflow Verkauf"
-
-msgctxt "model:workflow.activity,name:sale_activity_cancel"
-msgid "Canceled"
-msgstr "Annulliert"
-
-msgctxt "model:workflow.activity,name:sale_activity_confirmed"
-msgid "Confirmed"
-msgstr "Beauftragt"
-
-msgctxt "model:workflow.activity,name:sale_activity_done"
-msgid "Done"
-msgstr "Erledigt"
-
-msgctxt "model:workflow.activity,name:sale_activity_draft"
-msgid "Draft"
-msgstr "Entwurf"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method"
-msgid "Invoice Method"
-msgstr "Rechnungsstellung"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method_done"
-msgid "Invoice Method Done"
-msgstr "Rechnungsstellung erledigt"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_done"
-msgid "Invoice Done"
-msgstr "Rechnung erledigt"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_exception"
-msgid "Invoice Exception"
-msgstr "Rechnungsvorbehalt"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment"
-msgid "Invoice Shipment"
-msgstr "Rechnung Lieferposten"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_done"
-msgid "Invoice Shipment Done"
-msgstr "Rechnung Lieferposten erledigt"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_exception"
-msgid "Invoice Shipment Exception"
-msgstr "Rechnung Lieferposten Vorbehalt"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_method"
-msgid "Invoice Shipment Method"
-msgstr "Rechnung Liefermethode"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_method_done"
-msgid "Invoice Shipment Method Done"
-msgstr "Rechnung Liefermethode erledigt"
-
-msgctxt "model:workflow.activity,name:sale_activity_quotation"
-msgid "Quotation"
-msgstr "Angebot"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment"
-msgid "Shipment"
-msgstr "Lieferposten"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_exception"
-msgid "Shipment Exception"
-msgstr "Lieferposten Vorbehalt"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice"
-msgid "Shipment Invoice"
-msgstr "Lieferposten Rechnung"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_done"
-msgid "Shipment Invoice Done"
-msgstr "Lieferposten Rechnung erledigt"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_exception"
-msgid "Shipment Invoice Exception"
-msgstr "Lieferposten Rechnung Vorbehalt"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_method"
-msgid "Shipment Invoice Method"
-msgstr "Lieferposten Rechnungsmethode"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_method_done"
-msgid "Shipment Invoice Method Done"
-msgstr "Lieferposten Rechnungsmethode erledigt"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method"
-msgid "Shipment Method"
-msgstr "Liefermethode"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method_done"
-msgid "Shipment Method Done"
-msgstr "Liefermethode erledigt"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_sale"
-msgid "Waiting Invoice"
-msgstr "Rechnung Wartend"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_shipment"
-msgid "Waiting Invoice Shipment"
-msgstr "Rechnung Lieferposten Wartend"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment"
-msgid "Waiting Shipment"
-msgstr "Lieferposten Wartend"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment_invoice"
-msgid "Waiting Shipment Invoice"
-msgstr "Lieferposten Rechnung Wartend"
-
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Amount"
msgstr "Betrag"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Date:"
msgstr "Datum:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description"
msgstr "Bezeichnung"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description:"
msgstr "Bezeichnung:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Draft Sale Order"
msgstr "Auftrag (Entwurf)"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "E-Mail:"
msgstr "E-Mail:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Phone:"
msgstr "Telefon:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quantity"
msgstr "Anzahl"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quotation N°:"
msgstr "Angebot Nr.:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Sale Order N°:"
msgstr "Auftrag Nr.:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes"
msgstr "Steuern"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes:"
msgstr "Steuern:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total (excl. taxes):"
msgstr "Netto:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total:"
msgstr "Gesamt:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Unit Price"
msgstr "Einzelpreis"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT Number:"
msgstr "USt-ID-Nr.:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT:"
msgstr "USt:"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Ignored"
msgstr "Ignoriert"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Recreated"
msgstr "Nachgebildet"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "Manual"
msgstr "Manuell"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "Bei Beauftragung"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr "Nach Auftragsausführung"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "On Shipment Sent"
msgstr "Bei Versand"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "Manual"
msgstr "Manuell"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "On Invoice Paid"
msgstr "Bei Bezahlung"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "Bei Beauftragung"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr "Nach Auftragsausführung"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Comment"
msgstr "Kommentar"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Line"
msgstr "Position"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Subtotal"
msgstr "Zwischensumme"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Title"
msgstr "Überschrift"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "Manual"
msgstr "Manuell"
-msgctxt "selection:sale.sale,invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "Bei Beauftragung"
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr "Nach Auftragsausführung"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "On Shipment Sent"
msgstr "Bei Versand"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Exception"
msgstr "Vorbehalt"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "None"
msgstr "Kein"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Paid"
msgstr "Bezahlt"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Waiting"
msgstr "Wartend"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "Manual"
msgstr "Manuell"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "On Invoice Paid"
msgstr "Bei Bezahlung"
-msgctxt "selection:sale.sale,shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "Bei Beauftragung"
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr "Nach Auftragsausführung"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Exception"
msgstr "Vorbehalt"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "None"
msgstr "Kein"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Sent"
msgstr "Gesendet"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Waiting"
msgstr "Wartend"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Canceled"
msgstr "Annulliert"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Confirmed"
msgstr "Beauftragt"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Done"
msgstr "Erledigt"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Draft"
msgstr "Entwurf"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "In Ausführung"
+
+msgctxt "selection:sale.sale,state:"
msgid "Quotation"
msgstr "Angebot"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Ignored"
msgstr "Ignoriert"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Recreated"
msgstr "Nachgebildet"
-msgctxt "view:product.product:0"
-msgid "Customers"
-msgstr "Kunden"
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "Artikel"
-msgctxt "view:product.template:0"
+msgctxt "view:product.template:"
msgid "Customers"
msgstr "Kunden"
-msgctxt "view:sale.configuration:0"
+msgctxt "view:sale.configuration:"
msgid "Sale Configuration"
msgstr "Einstellungen Verkauf"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
-msgid "Choose invoices to duplicate"
-msgstr "Auswahl Rechnungen für Duplizierung"
-
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Choose invoices to recreate"
msgstr "Rechnungen zum Nachbilden auswählen"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Handle Invoice Exception"
msgstr "Rechnungsvorbehalt bearbeiten"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Choose move to duplicate"
-msgstr "Auswahl Bewegungen für Duplizierung"
-
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Choose move to recreate"
msgstr "Bewegungen zum Nachbilden auswählen"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Duplicate Moves"
-msgstr "Bewegungen duplizieren"
-
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Handle shipment Exception"
msgstr "Liefervorbehalt bearbeiten"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Recreate Moves"
-msgstr "Bewegungen nachbilden"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "General"
msgstr "Allgemein"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Notes"
msgstr "Notizen"
-msgctxt "view:sale.line:0"
-msgid "Products"
-msgstr "Artikel"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Line"
msgstr "Position Verkauf"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Lines"
msgstr "Positionen Verkauf"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Cancel"
msgstr "Annullieren"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Confirm"
msgstr "Bestätigen"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Draft"
msgstr "Entwurf"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Invoice Exception"
msgstr "Rechnungsvorbehalt bearbeiten"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Shipment Exception"
msgstr "Liefervorbehalt bearbeiten"
-msgctxt "view:sale.sale:0"
-msgid "Ignore Invoice Exception"
-msgstr "Rechnungsvorbehalt ignorieren"
-
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Invoices"
msgstr "Rechnungen"
-msgctxt "view:sale.sale:0"
-msgid "Lines"
-msgstr "Positionen"
-
-msgctxt "view:sale.sale:0"
-msgid "Moves"
-msgstr "Bewegungen"
-
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Other Info"
msgstr "Sonstiges"
-msgctxt "view:sale.sale:0"
-msgid "Quotation"
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr "Ausführen"
+
+msgctxt "view:sale.sale:"
+msgid "Quote"
msgstr "Angebot"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sale"
msgstr "Verkauf"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sales"
msgstr "Verkäufe"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Shipments"
msgstr "Lieferposten"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,end:0"
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Lagerbewegungen"
+
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
msgid "Cancel"
msgstr "Abbrechen"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
msgid "Ok"
msgstr "OK"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
msgid "Cancel"
msgstr "Abbrechen"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
msgid "Ok"
msgstr "OK"
diff -Nru tryton-modules-sale-2.2.2/locale/es_AR.po tryton-modules-sale-2.8.0/locale/es_AR.po
--- tryton-modules-sale-2.2.2/locale/es_AR.po 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/es_AR.po 2013-04-21 13:57:05.000000000 +0000
@@ -0,0 +1,1084 @@
+#
+msgid ""
+msgstr "Content-Type: text/plain; charset=utf-8\n"
+
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr "No puede eliminar facturas generadas desde ventas."
+
+msgctxt "error:account.invoice:"
+msgid "You cannot reset to draft an invoice generated by a sale."
+msgstr "No puede restablecer a borrador una factura generada por una venta."
+
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr ""
+"Falta la cuenta a cobrar del producto «%(product)s» de la venta %(sale)s."
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
+msgstr ""
+"Falta la ubicación del cliente en la línea «%(line)s» de la venta «%(sale)»."
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr "Falta la propiedad «Cuenta a cobrar» por defecto de las ventas."
+
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
+msgstr ""
+"La combinación de métodos de envío y facturación en la venta «%s» no es "
+"correcta."
+
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
+msgstr ""
+"Las direcciones de envío y facturación se deben definir para el presupuesto "
+"de venta «%s»."
+
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr "Falta una «Cuenta a cobrar» en la entidad «%s»."
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr "Debe cancelar la venta «%s» antes de eliminar."
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr "Se debe definir el almacén para el presupuesto de la venta «%s»."
+
+msgctxt "error:stock.shipment.out.return:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "No puede restablecer a borrador un movimiento generado por una venta."
+
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "No puede restablecer a borrador un movimiento generado por una venta."
+
+msgctxt "field:account.invoice,sale_exception_state:"
+msgid "Exception State"
+msgstr "Estado excepción"
+
+msgctxt "field:account.invoice,sales:"
+msgid "Sales"
+msgstr "Ventas"
+
+msgctxt "field:product.template,delivery_time:"
+msgid "Delivery Time"
+msgstr "Tiempo de envío"
+
+msgctxt "field:product.template,salable:"
+msgid "Salable"
+msgstr "Vendible"
+
+msgctxt "field:product.template,sale_uom:"
+msgid "Sale UOM"
+msgstr "UdM de venta"
+
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.configuration,rec_name:"
+msgid "Name"
+msgstr "Nombre campo"
+
+msgctxt "field:sale.configuration,sale_invoice_method:"
+msgid "Sale Invoice Method"
+msgstr "Método de facturación de venta"
+
+msgctxt "field:sale.configuration,sale_sequence:"
+msgid "Sale Reference Sequence"
+msgstr "Secuencia de referencia de venta"
+
+msgctxt "field:sale.configuration,sale_shipment_method:"
+msgid "Sale Shipment Method"
+msgstr "Método de envío de venta"
+
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
+msgid "Domain Invoices"
+msgstr "Facturas del dominio"
+
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
+msgid "Recreate Invoices"
+msgstr "Recrear facturas"
+
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
+msgid "Domain Moves"
+msgstr "Movimientos de dominio"
+
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
+msgid "Recreate Moves"
+msgstr "Recrear movimientos"
+
+msgctxt "field:sale.line,amount:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr "Fecha de entrega"
+
+msgctxt "field:sale.line,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr "Desde ubicación"
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line,invoice_lines:"
+msgid "Invoice Lines"
+msgstr "Líneas de factura"
+
+msgctxt "field:sale.line,move_done:"
+msgid "Moves Done"
+msgstr "Movimientos realizados"
+
+msgctxt "field:sale.line,move_exception:"
+msgid "Moves Exception"
+msgstr "Excepción de movimientos"
+
+msgctxt "field:sale.line,moves:"
+msgid "Moves"
+msgstr "Movimientos"
+
+msgctxt "field:sale.line,moves_ignored:"
+msgid "Ignored Moves"
+msgstr "Movimientos ignorados"
+
+msgctxt "field:sale.line,moves_recreated:"
+msgid "Recreated Moves"
+msgstr "Movimientos recreados"
+
+msgctxt "field:sale.line,note:"
+msgid "Note"
+msgstr "Nota"
+
+msgctxt "field:sale.line,product:"
+msgid "Product"
+msgstr "Producto"
+
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr "Categoría UdM del producto"
+
+msgctxt "field:sale.line,quantity:"
+msgid "Quantity"
+msgstr "Cantidad"
+
+msgctxt "field:sale.line,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.line,sale:"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "field:sale.line,sequence:"
+msgid "Sequence"
+msgstr "Secuencia"
+
+msgctxt "field:sale.line,taxes:"
+msgid "Taxes"
+msgstr "Impuestos"
+
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr "A ubicación"
+
+msgctxt "field:sale.line,type:"
+msgid "Type"
+msgstr "Tipo"
+
+msgctxt "field:sale.line,unit:"
+msgid "Unit"
+msgstr "Unidad"
+
+msgctxt "field:sale.line,unit_digits:"
+msgid "Unit Digits"
+msgstr "Dígitos de unidad"
+
+msgctxt "field:sale.line,unit_price:"
+msgid "Unit Price"
+msgstr "Precio unitario"
+
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Depósito"
+
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-account.tax,line:"
+msgid "Sale Line"
+msgstr "Línea de venta"
+
+msgctxt "field:sale.line-account.tax,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.line-account.tax,tax:"
+msgid "Tax"
+msgstr "Impuesto"
+
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
+msgid "Move"
+msgstr "Movimiento"
+
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
+msgid "Sale Line"
+msgstr "Línea de venta"
+
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
+msgid "Move"
+msgstr "Movimiento"
+
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
+msgid "Sale Line"
+msgstr "Línea de venta"
+
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.sale,comment:"
+msgid "Comment"
+msgstr "Comentario"
+
+msgctxt "field:sale.sale,company:"
+msgid "Company"
+msgstr "Empresa"
+
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.sale,currency:"
+msgid "Currency"
+msgstr "Divisa"
+
+msgctxt "field:sale.sale,currency_digits:"
+msgid "Currency Digits"
+msgstr "Dígitos de divisa"
+
+msgctxt "field:sale.sale,description:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale,invoice_address:"
+msgid "Invoice Address"
+msgstr "Dirección de facturación"
+
+msgctxt "field:sale.sale,invoice_method:"
+msgid "Invoice Method"
+msgstr "Método de facturación"
+
+msgctxt "field:sale.sale,invoice_state:"
+msgid "Invoice State"
+msgstr "Estado de factura"
+
+msgctxt "field:sale.sale,invoices:"
+msgid "Invoices"
+msgstr "Facturas"
+
+msgctxt "field:sale.sale,invoices_ignored:"
+msgid "Ignored Invoices"
+msgstr "Facturas ignoradas"
+
+msgctxt "field:sale.sale,invoices_recreated:"
+msgid "Recreated Invoices"
+msgstr "Facturas recreadas"
+
+msgctxt "field:sale.sale,lines:"
+msgid "Lines"
+msgstr "Líneas"
+
+msgctxt "field:sale.sale,moves:"
+msgid "Moves"
+msgstr "Movimientos"
+
+msgctxt "field:sale.sale,party:"
+msgid "Party"
+msgstr "Entidad"
+
+msgctxt "field:sale.sale,party_lang:"
+msgid "Party Language"
+msgstr "Idioma de la entidad"
+
+msgctxt "field:sale.sale,payment_term:"
+msgid "Payment Term"
+msgstr "Término de pago"
+
+msgctxt "field:sale.sale,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.sale,reference:"
+msgid "Reference"
+msgstr "Referencia"
+
+msgctxt "field:sale.sale,sale_date:"
+msgid "Sale Date"
+msgstr "Fecha de venta"
+
+msgctxt "field:sale.sale,shipment_address:"
+msgid "Shipment Address"
+msgstr "Dirección de envío"
+
+msgctxt "field:sale.sale,shipment_method:"
+msgid "Shipment Method"
+msgstr "Método de envío"
+
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr "Devolución de envío"
+
+msgctxt "field:sale.sale,shipment_state:"
+msgid "Shipment State"
+msgstr "Estado de envío"
+
+msgctxt "field:sale.sale,shipments:"
+msgid "Shipments"
+msgstr "Envíos"
+
+msgctxt "field:sale.sale,state:"
+msgid "State"
+msgstr "Estado"
+
+msgctxt "field:sale.sale,tax_amount:"
+msgid "Tax"
+msgstr "Impuesto"
+
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr "Impuestos precalculado"
+
+msgctxt "field:sale.sale,total_amount:"
+msgid "Total"
+msgstr "Total"
+
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr "Total impuestos"
+
+msgctxt "field:sale.sale,untaxed_amount:"
+msgid "Untaxed"
+msgstr "Base imponible"
+
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr "Base imponible precalculado"
+
+msgctxt "field:sale.sale,warehouse:"
+msgid "Warehouse"
+msgstr "Almacén"
+
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
+msgid "Invoice"
+msgstr "Factura"
+
+msgctxt "field:sale.sale-account.invoice,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.sale-account.invoice,sale:"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
+msgid "Invoice"
+msgstr "Factura"
+
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
+msgid "Invoice"
+msgstr "Factura"
+
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
+msgid "Name"
+msgstr "Nombre"
+
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:stock.move,sale:"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "field:stock.move,sale_exception_state:"
+msgid "Exception State"
+msgstr "Estado excepción"
+
+msgctxt "help:product.template,delivery_time:"
+msgid "In number of days"
+msgstr "En número de días"
+
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
+msgid ""
+"The selected invoices will be recreated. The other ones will be ignored."
+msgstr ""
+"Las facturas seleccionadas seran recreadas. Las otras serán ignoradas."
+
+msgctxt "model:ir.action,name:act_invoice_form"
+msgid "Invoices"
+msgstr "Facturas"
+
+msgctxt "model:ir.action,name:act_open_customer"
+msgid "Parties associated to Sales"
+msgstr "Entidades asociadas a ventas"
+
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr "Devolución"
+
+msgctxt "model:ir.action,name:act_sale_configuration_form"
+msgid "Sales Configuration"
+msgstr "Configuración de venta"
+
+msgctxt "model:ir.action,name:act_sale_form"
+msgid "Sales"
+msgstr "Ventas"
+
+msgctxt "model:ir.action,name:act_sale_form2"
+msgid "Sales"
+msgstr "Ventas"
+
+msgctxt "model:ir.action,name:act_shipment_form"
+msgid "Shipments"
+msgstr "Envíos"
+
+msgctxt "model:ir.action,name:report_sale"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "model:ir.action,name:wizard_invoice_handle_exception"
+msgid "Handle Invoice Exception"
+msgstr "Gestionar excepción de factura"
+
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr "Crear devolución de venta"
+
+msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
+msgid "Handle Shipment Exception"
+msgstr "Gestionar excepción de envío"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr "Todo"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Confirmado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "En proceso"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Presupuesto"
+
+msgctxt "model:ir.sequence,name:sequence_sale"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "model:ir.sequence.type,name:sequence_type_sale"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "model:ir.ui.menu,name:menu_configuration"
+msgid "Configuration"
+msgstr "Configuración"
+
+msgctxt "model:ir.ui.menu,name:menu_customer"
+msgid "Parties associated to Sales"
+msgstr "Entidades asociadas a ventas"
+
+msgctxt "model:ir.ui.menu,name:menu_sale"
+msgid "Sales"
+msgstr "Ventas"
+
+msgctxt "model:ir.ui.menu,name:menu_sale_configuration"
+msgid "Sales Configuration"
+msgstr "Ventas"
+
+msgctxt "model:ir.ui.menu,name:menu_sale_form"
+msgid "Sales"
+msgstr "Ventas"
+
+msgctxt "model:res.group,name:group_sale"
+msgid "Sales"
+msgstr "Venta"
+
+msgctxt "model:res.group,name:group_sale_admin"
+msgid "Sales Administrator"
+msgstr "Administrador de ventas"
+
+msgctxt "model:sale.configuration,name:"
+msgid "Sale Configuration"
+msgstr "Configuración de venta"
+
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
+msgstr "Gestionar excepción de factura"
+
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
+msgstr "Gestionar excepción de envío"
+
+msgctxt "model:sale.line,name:"
+msgid "Sale Line"
+msgstr "Línea de venta"
+
+msgctxt "model:sale.line-account.tax,name:"
+msgid "Sale Line - Tax"
+msgstr "Línea de venta - Impuesto"
+
+msgctxt "model:sale.line-ignored-stock.move,name:"
+msgid "Sale Line - Ignored Move"
+msgstr "Línea de venta - Movimiento ignorado"
+
+msgctxt "model:sale.line-recreated-stock.move,name:"
+msgid "Sale Line - Recreated Move"
+msgstr "Línea de venta - Movimiento recreado"
+
+msgctxt "model:sale.sale,name:"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "model:sale.sale-account.invoice,name:"
+msgid "Sale - Invoice"
+msgstr "Venta - Factura"
+
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
+msgid "Sale - Ignored Invoice"
+msgstr "Venta - Factura ignorada"
+
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
+msgid "Sale - Recreated Invoice"
+msgstr "Venta - Factura recreada"
+
+msgctxt "odt:sale.sale:"
+msgid "Amount"
+msgstr "Importe"
+
+msgctxt "odt:sale.sale:"
+msgid "Date:"
+msgstr "Fecha:"
+
+msgctxt "odt:sale.sale:"
+msgid "Description"
+msgstr "Descripción"
+
+msgctxt "odt:sale.sale:"
+msgid "Description:"
+msgstr "Descripción:"
+
+msgctxt "odt:sale.sale:"
+msgid "Draft Sale Order"
+msgstr "Ordenes de venta en borrador"
+
+msgctxt "odt:sale.sale:"
+msgid "E-Mail:"
+msgstr "Correo electrónico:"
+
+msgctxt "odt:sale.sale:"
+msgid "Phone:"
+msgstr "Teléfono:"
+
+msgctxt "odt:sale.sale:"
+msgid "Quantity"
+msgstr "Cantidad"
+
+msgctxt "odt:sale.sale:"
+msgid "Quotation N°:"
+msgstr "Presupuesto Nº:"
+
+msgctxt "odt:sale.sale:"
+msgid "Sale Order N°:"
+msgstr "Orden de venta Nº:"
+
+msgctxt "odt:sale.sale:"
+msgid "Taxes"
+msgstr "Impuestos"
+
+msgctxt "odt:sale.sale:"
+msgid "Taxes:"
+msgstr "Impuestos:"
+
+msgctxt "odt:sale.sale:"
+msgid "Total (excl. taxes):"
+msgstr "Total (sin impuestos):"
+
+msgctxt "odt:sale.sale:"
+msgid "Total:"
+msgstr "Total:"
+
+msgctxt "odt:sale.sale:"
+msgid "Unit Price"
+msgstr "Precio unitario"
+
+msgctxt "odt:sale.sale:"
+msgid "VAT Number:"
+msgstr "CUIT:"
+
+msgctxt "odt:sale.sale:"
+msgid "VAT:"
+msgstr "CUIT:"
+
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid "Ignored"
+msgstr "Ignorado"
+
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid "Recreated"
+msgstr "Recreada"
+
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "Manual"
+msgstr "Manual"
+
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr "Al procesar la orden"
+
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Shipment Sent"
+msgstr "Al enviarlo"
+
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "Manual"
+msgstr "Manual"
+
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Invoice Paid"
+msgstr "Al pagar la factura"
+
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr "Al procesar la orden"
+
+msgctxt "selection:sale.line,type:"
+msgid "Comment"
+msgstr "Comentario"
+
+msgctxt "selection:sale.line,type:"
+msgid "Line"
+msgstr "Línea"
+
+msgctxt "selection:sale.line,type:"
+msgid "Subtotal"
+msgstr "Subtotal"
+
+msgctxt "selection:sale.line,type:"
+msgid "Title"
+msgstr "Título"
+
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "Manual"
+msgstr "Manual"
+
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr "Al procesar la orden"
+
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Shipment Sent"
+msgstr "Al enviarlo"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Exception"
+msgstr "Excepción"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "None"
+msgstr "Ninguno"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Paid"
+msgstr "Pagado"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Waiting"
+msgstr "En espera"
+
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "Manual"
+msgstr "Manual"
+
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Invoice Paid"
+msgstr "Al pagar la factura"
+
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr "Al procesar la orden"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Exception"
+msgstr "Excepción"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "None"
+msgstr "Ninguno"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Sent"
+msgstr "Enviado"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Waiting"
+msgstr "En espera"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Canceled"
+msgstr "Cancelado"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Confirmed"
+msgstr "Confirmado"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Done"
+msgstr "Realizado"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "En proceso"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Quotation"
+msgstr "Presupuesto"
+
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid "Ignored"
+msgstr "Ignorado"
+
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid "Recreated"
+msgstr "Recreado"
+
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "Productos"
+
+msgctxt "view:product.template:"
+msgid "Customers"
+msgstr "Clientes"
+
+msgctxt "view:sale.configuration:"
+msgid "Sale Configuration"
+msgstr "Configuración de venta"
+
+msgctxt "view:sale.handle.invoice.exception.ask:"
+msgid "Choose invoices to recreate"
+msgstr "Seleccione facturas a recrear"
+
+msgctxt "view:sale.handle.invoice.exception.ask:"
+msgid "Handle Invoice Exception"
+msgstr "Gestionar excepción de factura"
+
+msgctxt "view:sale.handle.shipment.exception.ask:"
+msgid "Choose move to recreate"
+msgstr "Seleccione movimientos a recrear"
+
+msgctxt "view:sale.handle.shipment.exception.ask:"
+msgid "Handle shipment Exception"
+msgstr "Gestionar excepción de envío"
+
+msgctxt "view:sale.line:"
+msgid "General"
+msgstr "General"
+
+msgctxt "view:sale.line:"
+msgid "Notes"
+msgstr "Notas"
+
+msgctxt "view:sale.line:"
+msgid "Sale Line"
+msgstr "Línea de venta"
+
+msgctxt "view:sale.line:"
+msgid "Sale Lines"
+msgstr "Líneas de venta"
+
+msgctxt "view:sale.sale:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "view:sale.sale:"
+msgid "Confirm"
+msgstr "Confirmar"
+
+msgctxt "view:sale.sale:"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt "view:sale.sale:"
+msgid "Handle Invoice Exception"
+msgstr "Gestionar excepción de factura"
+
+msgctxt "view:sale.sale:"
+msgid "Handle Shipment Exception"
+msgstr "Gestionar excepción de envío"
+
+msgctxt "view:sale.sale:"
+msgid "Invoices"
+msgstr "Facturas"
+
+msgctxt "view:sale.sale:"
+msgid "Other Info"
+msgstr "Información adicional"
+
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr "Procesar"
+
+msgctxt "view:sale.sale:"
+msgid "Quote"
+msgstr "Presupuestar"
+
+msgctxt "view:sale.sale:"
+msgid "Sale"
+msgstr "Venta"
+
+msgctxt "view:sale.sale:"
+msgid "Sales"
+msgstr "Ventas"
+
+msgctxt "view:sale.sale:"
+msgid "Shipments"
+msgstr "Envios"
+
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Movimientos"
+
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
+msgid "Ok"
+msgstr "Aceptar"
+
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
+msgid "Cancel"
+msgstr "Cancelar"
+
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
+msgid "Ok"
+msgstr "Aceptar"
diff -Nru tryton-modules-sale-2.2.2/locale/es_CO.po tryton-modules-sale-2.8.0/locale/es_CO.po
--- tryton-modules-sale-2.2.2/locale/es_CO.po 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/es_CO.po 2013-04-21 14:04:45.000000000 +0000
@@ -2,412 +2,618 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:account.invoice:0"
-msgid "You can not delete invoices that come from a sale!"
-msgstr "No puede borrar la factura proveniente de una venta!"
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr "No puede eliminar facturas que provienen de una venta."
-msgctxt "error:account.invoice:0"
+msgctxt "error:account.invoice:"
msgid "You cannot reset to draft an invoice generated by a sale."
-msgstr "No puede regresar a borrador una factura generada por una venta."
+msgstr "No puede restablecer un movimiento a borrador generado por una venta."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"Account Revenue\" on product \"%s\"!"
-msgstr "Falta un \"cuenta de ingresos\" para el producto \"%s\"!"
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr ""
+"Al producto \"%(product)s\" de la venta \"%(sale)s\" le falta definir una "
+"cuenta de ingresos."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"account Revenue\" default property!"
-msgstr "¡Hace falta una propiedad predeterminada de \"cuenta de ganancias\"!"
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
+msgstr ""
+"A la venta \"%(sale)s\" le falta la bodega del cliente en la línea "
+"\"%(line)s\"."
-msgctxt "error:sale.line:0"
-msgid "The customer location is required!"
-msgstr "Es indispensable el lugar del cliente!"
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr ""
+"A la venta \"%(sale)s\" le falta la propiedad por defecto \"Cuenta de "
+"Ingresos\"."
-msgctxt "error:sale.sale:0"
-msgid "Invoice and Shipment addresses must be defined for the quotation."
-msgstr "Factura y dirección de Envío debe ser definida por el presupuesto."
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
+msgstr ""
+"Inválida combinación de métodos de envío y facturación en la venta \"%s\"."
-msgctxt "error:sale.sale:0"
-msgid "It misses an \"Account Receivable\" on the party \"%s\"!"
-msgstr "Falta una \"cuenta de ingresos\" en la partida \"%s\"!"
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
+msgstr ""
+"La dirección de facturación y envío debe ser definida en la cotización de la"
+" venta \"%s\"."
-msgctxt "error:sale.sale:0"
-msgid "Wrong combination of method!"
-msgstr "Combinación o método erróneos!"
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr "Falta definir la \"Cuenta por Cobrar\" del tercero \"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr "La venta \"%s\" debe ser cancelada antes de ser eliminada."
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr "El depósito debe ser definido en la cotización para la venta \"%s\"."
-msgctxt "error:stock.shipment.out:0"
+msgctxt "error:stock.shipment.out.return:"
msgid "You cannot reset to draft a move generated by a sale."
-msgstr "No puede regresar a borrador un movimiento generado por una venta."
+msgstr "No puede restablecer un movimiento a borrador generado por una venta."
-msgctxt "field:account.invoice,sale_exception_state:0"
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "No puede restablecer un movimiento a borrador generado por una venta."
+
+msgctxt "field:account.invoice,sale_exception_state:"
msgid "Exception State"
-msgstr "Estado de Excepción"
+msgstr "Estado Excepción"
-#, fuzzy
-msgctxt "field:account.invoice,sales:0"
+msgctxt "field:account.invoice,sales:"
msgid "Sales"
msgstr "Ventas"
-#, fuzzy
-msgctxt "field:account.invoice.line,sale_lines:0"
-msgid "Sale Lines"
-msgstr "Líneas de Venta"
-
-#, fuzzy
-msgctxt "field:product.template,delivery_time:0"
+msgctxt "field:product.template,delivery_time:"
msgid "Delivery Time"
-msgstr "Tiempo de Envío"
+msgstr "Tiempo de Entrega"
-msgctxt "field:product.template,salable:0"
+msgctxt "field:product.template,salable:"
msgid "Salable"
-msgstr "De fácil venta"
+msgstr "Vendible"
-msgctxt "field:product.template,sale_uom:0"
+msgctxt "field:product.template,sale_uom:"
msgid "Sale UOM"
msgstr "UdM de Venta"
-#, fuzzy
-msgctxt "field:sale.configuration,rec_name:0"
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.configuration,rec_name:"
msgid "Name"
-msgstr "Nombre de Contacto"
+msgstr "Nombre"
-msgctxt "field:sale.configuration,sale_invoice_method:0"
+msgctxt "field:sale.configuration,sale_invoice_method:"
msgid "Sale Invoice Method"
-msgstr ""
+msgstr "Método de Facturación"
-msgctxt "field:sale.configuration,sale_sequence:0"
+msgctxt "field:sale.configuration,sale_sequence:"
msgid "Sale Reference Sequence"
-msgstr ""
+msgstr "Secuencia Pedidos de Venta"
-msgctxt "field:sale.configuration,sale_shipment_method:0"
+msgctxt "field:sale.configuration,sale_shipment_method:"
msgid "Sale Shipment Method"
-msgstr ""
+msgstr "Método de Envío"
+
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
-msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
msgid "Domain Invoices"
-msgstr "Rango de facturas"
+msgstr "Dominio de Facturas"
+
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid "Recreate Invoices"
-msgstr "Rehacer factura"
+msgstr "Recrear Facturas"
-msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
msgid "Domain Moves"
-msgstr "Rango de movimientos"
+msgstr "Dominio de Movimientos"
-msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
msgid "Recreate Moves"
-msgstr "Rehacer movimientos"
+msgstr "Recrear Movimientos"
-msgctxt "field:sale.line,amount:0"
+msgctxt "field:sale.line,amount:"
msgid "Amount"
msgstr "Cantidad"
-msgctxt "field:sale.line,description:0"
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr "Fecha de Entrega"
+
+msgctxt "field:sale.line,description:"
msgid "Description"
msgstr "Descripción"
-msgctxt "field:sale.line,invoice_lines:0"
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr "Desde Bodega"
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line,invoice_lines:"
msgid "Invoice Lines"
msgstr "Líneas de Factura"
-msgctxt "field:sale.line,move_done:0"
+msgctxt "field:sale.line,move_done:"
msgid "Moves Done"
msgstr "Movimientos Hechos"
-msgctxt "field:sale.line,move_exception:0"
+msgctxt "field:sale.line,move_exception:"
msgid "Moves Exception"
-msgstr "Exepción de Movimientos"
+msgstr "Excepción de Movimientos"
-msgctxt "field:sale.line,moves:0"
+msgctxt "field:sale.line,moves:"
msgid "Moves"
msgstr "Movimientos"
-msgctxt "field:sale.line,moves_ignored:0"
+msgctxt "field:sale.line,moves_ignored:"
msgid "Ignored Moves"
msgstr "Movimientos Ignorados"
-msgctxt "field:sale.line,moves_recreated:0"
+msgctxt "field:sale.line,moves_recreated:"
msgid "Recreated Moves"
-msgstr "Rehacer Movimientos"
+msgstr "Movimientos Recreados"
-msgctxt "field:sale.line,note:0"
+msgctxt "field:sale.line,note:"
msgid "Note"
msgstr "Nota"
-msgctxt "field:sale.line,product:0"
+msgctxt "field:sale.line,product:"
msgid "Product"
msgstr "Producto"
-msgctxt "field:sale.line,quantity:0"
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr "Categoría UdM de Producto"
+
+msgctxt "field:sale.line,quantity:"
msgid "Quantity"
msgstr "Cantidad"
-msgctxt "field:sale.line,rec_name:0"
+msgctxt "field:sale.line,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.line,sale:0"
+msgctxt "field:sale.line,sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "field:sale.line,sequence:0"
+msgctxt "field:sale.line,sequence:"
msgid "Sequence"
msgstr "Secuencia"
-msgctxt "field:sale.line,taxes:0"
+msgctxt "field:sale.line,taxes:"
msgid "Taxes"
msgstr "Impuestos"
-msgctxt "field:sale.line,type:0"
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr "A Bodega"
+
+msgctxt "field:sale.line,type:"
msgid "Type"
msgstr "Tipo"
-msgctxt "field:sale.line,unit:0"
+msgctxt "field:sale.line,unit:"
msgid "Unit"
msgstr "Unidad"
-msgctxt "field:sale.line,unit_digits:0"
+msgctxt "field:sale.line,unit_digits:"
msgid "Unit Digits"
-msgstr "Dígitos de Unidad"
+msgstr "Dígitos de la unidad"
-msgctxt "field:sale.line,unit_price:0"
+msgctxt "field:sale.line,unit_price:"
msgid "Unit Price"
msgstr "Precio Unitario"
-msgctxt "field:sale.line-account.invoice.line,invoice_line:0"
-msgid "Invoice Line"
-msgstr "Línea de Factura"
-
-msgctxt "field:sale.line-account.invoice.line,rec_name:0"
-msgid "Name"
-msgstr "Nombre"
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Depósito"
-msgctxt "field:sale.line-account.invoice.line,sale_line:0"
-msgid "Sale Line"
-msgstr "Línea de Venta"
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.line-account.tax,line:0"
+msgctxt "field:sale.line-account.tax,line:"
msgid "Sale Line"
msgstr "Línea de Venta"
-msgctxt "field:sale.line-account.tax,rec_name:0"
+msgctxt "field:sale.line-account.tax,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.line-account.tax,tax:0"
+msgctxt "field:sale.line-account.tax,tax:"
msgid "Tax"
msgstr "Impuesto"
-msgctxt "field:sale.line-ignored-stock.move,move:0"
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
msgid "Move"
msgstr "Movimiento"
-msgctxt "field:sale.line-ignored-stock.move,rec_name:0"
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.line-ignored-stock.move,sale_line:0"
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Línea de Venta"
-msgctxt "field:sale.line-recreated-stock.move,move:0"
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
msgid "Move"
msgstr "Movimiento"
-msgctxt "field:sale.line-recreated-stock.move,rec_name:0"
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.line-recreated-stock.move,sale_line:0"
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Línea de Venta"
-msgctxt "field:sale.sale,comment:0"
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:sale.sale,comment:"
msgid "Comment"
msgstr "Comentario"
-msgctxt "field:sale.sale,company:0"
+msgctxt "field:sale.sale,company:"
msgid "Company"
-msgstr "Compañía"
+msgstr "Compañia"
+
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
-msgctxt "field:sale.sale,currency:0"
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.sale,currency:"
msgid "Currency"
msgstr "Moneda"
-msgctxt "field:sale.sale,currency_digits:0"
+msgctxt "field:sale.sale,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de Moneda"
+msgstr "Decimales de la Moneda"
-msgctxt "field:sale.sale,description:0"
+msgctxt "field:sale.sale,description:"
msgid "Description"
msgstr "Descripción"
-msgctxt "field:sale.sale,invoice_address:0"
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale,invoice_address:"
msgid "Invoice Address"
msgstr "Dirección de Facturación"
-msgctxt "field:sale.sale,invoice_exception:0"
-msgid "Invoices Exception"
-msgstr "Excepción de Facturación"
-
-msgctxt "field:sale.sale,invoice_method:0"
+msgctxt "field:sale.sale,invoice_method:"
msgid "Invoice Method"
msgstr "Método de Facturación"
-msgctxt "field:sale.sale,invoice_paid:0"
-msgid "Invoices Paid"
-msgstr "Facturas Pagadas"
-
-msgctxt "field:sale.sale,invoice_state:0"
+msgctxt "field:sale.sale,invoice_state:"
msgid "Invoice State"
-msgstr "Estado de Factura"
+msgstr "Estado Factura"
-msgctxt "field:sale.sale,invoices:0"
+msgctxt "field:sale.sale,invoices:"
msgid "Invoices"
msgstr "Facturas"
-msgctxt "field:sale.sale,invoices_ignored:0"
+msgctxt "field:sale.sale,invoices_ignored:"
msgid "Ignored Invoices"
msgstr "Facturas Ignoradas"
-msgctxt "field:sale.sale,invoices_recreated:0"
+msgctxt "field:sale.sale,invoices_recreated:"
msgid "Recreated Invoices"
-msgstr "Rehacer facturas"
+msgstr "Facturas Recreadas"
-msgctxt "field:sale.sale,lines:0"
+msgctxt "field:sale.sale,lines:"
msgid "Lines"
msgstr "Líneas"
-msgctxt "field:sale.sale,moves:0"
+msgctxt "field:sale.sale,moves:"
msgid "Moves"
msgstr "Movimientos"
-msgctxt "field:sale.sale,party:0"
+msgctxt "field:sale.sale,party:"
msgid "Party"
msgstr "Tercero"
-msgctxt "field:sale.sale,party_lang:0"
+msgctxt "field:sale.sale,party_lang:"
msgid "Party Language"
msgstr "Idioma del Tercero"
-msgctxt "field:sale.sale,payment_term:0"
+msgctxt "field:sale.sale,payment_term:"
msgid "Payment Term"
-msgstr "Término de Pago"
+msgstr "Forma de Pago"
-msgctxt "field:sale.sale,rec_name:0"
+msgctxt "field:sale.sale,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.sale,reference:0"
+msgctxt "field:sale.sale,reference:"
msgid "Reference"
msgstr "Referencia"
-msgctxt "field:sale.sale,sale_date:0"
+msgctxt "field:sale.sale,sale_date:"
msgid "Sale Date"
msgstr "Fecha de Venta"
-msgctxt "field:sale.sale,shipment_address:0"
+msgctxt "field:sale.sale,shipment_address:"
msgid "Shipment Address"
-msgstr "Dirección de envío"
-
-msgctxt "field:sale.sale,shipment_done:0"
-msgid "Shipment Done"
-msgstr "Envío Finalizado"
+msgstr "Dirección de Envío"
-msgctxt "field:sale.sale,shipment_exception:0"
-msgid "Shipments Exception"
-msgstr "Excepción de Envíos"
-
-msgctxt "field:sale.sale,shipment_method:0"
+msgctxt "field:sale.sale,shipment_method:"
msgid "Shipment Method"
msgstr "Método de Envío"
-msgctxt "field:sale.sale,shipment_state:0"
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr "Devolución"
+
+msgctxt "field:sale.sale,shipment_state:"
msgid "Shipment State"
-msgstr "Estado de Envío"
+msgstr "Estado envío"
-msgctxt "field:sale.sale,shipments:0"
+msgctxt "field:sale.sale,shipments:"
msgid "Shipments"
-msgstr "Envíos"
+msgstr "Envios"
-msgctxt "field:sale.sale,state:0"
+msgctxt "field:sale.sale,state:"
msgid "State"
msgstr "Estado"
-msgctxt "field:sale.sale,tax_amount:0"
+msgctxt "field:sale.sale,tax_amount:"
msgid "Tax"
msgstr "Impuesto"
-msgctxt "field:sale.sale,total_amount:0"
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr "Impuestos Precalculado"
+
+msgctxt "field:sale.sale,total_amount:"
msgid "Total"
msgstr "Total"
-msgctxt "field:sale.sale,untaxed_amount:0"
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr "Total impuestos"
+
+msgctxt "field:sale.sale,untaxed_amount:"
msgid "Untaxed"
-msgstr "Sin Impuesto"
+msgstr "Base sin Impuesto"
+
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr "Base sin Impuesto Precalculada"
-msgctxt "field:sale.sale,warehouse:0"
+msgctxt "field:sale.sale,warehouse:"
msgid "Warehouse"
msgstr "Depósito"
-msgctxt "field:sale.sale-account.invoice,invoice:0"
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factura"
-msgctxt "field:sale.sale-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-account.invoice,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.sale-account.invoice,sale:0"
+msgctxt "field:sale.sale-account.invoice,sale:"
msgid "Sale"
-msgstr "Ventas"
+msgstr "Venta"
-msgctxt "field:sale.sale-ignored-account.invoice,invoice:0"
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factura"
-msgctxt "field:sale.sale-ignored-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.sale-ignored-account.invoice,sale:0"
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
msgid "Sale"
-msgstr "Ventas"
+msgstr "Venta"
-msgctxt "field:sale.sale-recreated-account.invoice,invoice:0"
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha de Creación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Creado por Usuario"
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factura"
-msgctxt "field:sale.sale-recreated-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.sale-recreated-account.invoice,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
msgid "Sale"
-msgstr "Ventas"
+msgstr "Venta"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha de Modificación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Modificado por Usuario"
-msgctxt "field:stock.move,sale:0"
+msgctxt "field:stock.move,sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "field:stock.move,sale_exception_state:0"
+msgctxt "field:stock.move,sale_exception_state:"
msgid "Exception State"
msgstr "Estado Excepción"
-#, fuzzy
-msgctxt "field:stock.move,sale_line:0"
-msgid "Sale Line"
-msgstr "Línea de Venta"
-
-#, fuzzy
-msgctxt "help:product.template,delivery_time:0"
+msgctxt "help:product.template,delivery_time:"
msgid "In number of days"
-msgstr "En número de días"
+msgstr "En número de días."
-msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid ""
"The selected invoices will be recreated. The other ones will be ignored."
-msgstr "La factura seleccionada será recreada. Las otras serán ignoradas."
+msgstr ""
+"Las facturas seleccionadas serán recreadas. Las otras serán ignoradas."
msgctxt "model:ir.action,name:act_invoice_form"
msgid "Invoices"
@@ -415,11 +621,15 @@
msgctxt "model:ir.action,name:act_open_customer"
msgid "Parties associated to Sales"
-msgstr "Terceros asociados a Ventas"
+msgstr "Clientes"
+
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr "Devolución"
msgctxt "model:ir.action,name:act_sale_configuration_form"
msgid "Sales Configuration"
-msgstr ""
+msgstr "Configuración de Ventas"
msgctxt "model:ir.action,name:act_sale_form"
msgid "Sales"
@@ -429,21 +639,9 @@
msgid "Sales"
msgstr "Ventas"
-msgctxt "model:ir.action,name:act_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Ventas Confirmadas"
-
-msgctxt "model:ir.action,name:act_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Ventas en Borrador"
-
-msgctxt "model:ir.action,name:act_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Ventas Cotizadas"
-
msgctxt "model:ir.action,name:act_shipment_form"
msgid "Shipments"
-msgstr "Envíos"
+msgstr "Envios"
msgctxt "model:ir.action,name:report_sale"
msgid "Sale"
@@ -451,11 +649,38 @@
msgctxt "model:ir.action,name:wizard_invoice_handle_exception"
msgid "Handle Invoice Exception"
-msgstr "Tratar Excepción de factura"
+msgstr "Gestionar Excepción de Factura"
+
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr "Crear Devolución de Venta"
msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
msgid "Handle Shipment Exception"
-msgstr "Tratar Excepción de Envío"
+msgstr "Gestionar Excepción de Envío"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr "Todo"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Confirmada"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "En Proceso"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Cotización"
msgctxt "model:ir.sequence,name:sequence_sale"
msgid "Sale"
@@ -465,547 +690,400 @@
msgid "Sale"
msgstr "Venta"
-#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_configuration"
msgid "Configuration"
msgstr "Configuración"
msgctxt "model:ir.ui.menu,name:menu_customer"
msgid "Parties associated to Sales"
-msgstr "Terceros asociados a Ventas"
+msgstr "Clientes"
-#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_sale"
msgid "Sales"
-msgstr "Gestión de Ventas"
+msgstr "Ventas"
msgctxt "model:ir.ui.menu,name:menu_sale_configuration"
msgid "Sales Configuration"
-msgstr ""
+msgstr "Configuración de Ventas"
msgctxt "model:ir.ui.menu,name:menu_sale_form"
msgid "Sales"
msgstr "Ventas"
-msgctxt "model:ir.ui.menu,name:menu_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Ventas Confirmadas"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Ventas en Borrador"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Ventas Cotizadas"
-
-#, fuzzy
msgctxt "model:res.group,name:group_sale"
msgid "Sales"
-msgstr "Venta"
+msgstr "Ventas"
msgctxt "model:res.group,name:group_sale_admin"
msgid "Sales Administrator"
-msgstr ""
+msgstr "Administrador de Ventas"
-msgctxt "model:sale.configuration,name:0"
+msgctxt "model:sale.configuration,name:"
msgid "Sale Configuration"
-msgstr ""
+msgstr "Configuración Ventas"
-msgctxt "model:sale.handle.invoice.exception.ask,name:0"
-msgid "Invoice Exception Ask"
-msgstr "Pregunta de Excepción de Factura"
-
-msgctxt "model:sale.handle.shipment.exception.ask,name:0"
-msgid "Shipment Exception Ask"
-msgstr "Pregunta de Excepción de Envío"
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
+msgstr "Gestionar Excepción de Factura"
+
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
+msgstr "Gestionar Excepción de Envío"
-msgctxt "model:sale.line,name:0"
+msgctxt "model:sale.line,name:"
msgid "Sale Line"
msgstr "Línea de Venta"
-msgctxt "model:sale.line-account.invoice.line,name:0"
-msgid "Sale Line - Invoice Line"
-msgstr "Línea de Venta - Línea de Factura"
-
-msgctxt "model:sale.line-account.tax,name:0"
+msgctxt "model:sale.line-account.tax,name:"
msgid "Sale Line - Tax"
msgstr "Línea de Venta - Impuesto"
-msgctxt "model:sale.line-ignored-stock.move,name:0"
+msgctxt "model:sale.line-ignored-stock.move,name:"
msgid "Sale Line - Ignored Move"
msgstr "Línea de Venta - Movimiento Ignorado"
-msgctxt "model:sale.line-recreated-stock.move,name:0"
+msgctxt "model:sale.line-recreated-stock.move,name:"
msgid "Sale Line - Recreated Move"
msgstr "Línea de Venta - Movimiento Recreado"
-msgctxt "model:sale.sale,name:0"
+msgctxt "model:sale.sale,name:"
msgid "Sale"
-msgstr "Ventas"
+msgstr "Venta"
-msgctxt "model:sale.sale-account.invoice,name:0"
+msgctxt "model:sale.sale-account.invoice,name:"
msgid "Sale - Invoice"
msgstr "Venta - Factura"
-msgctxt "model:sale.sale-ignored-account.invoice,name:0"
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
msgid "Sale - Ignored Invoice"
msgstr "Venta - Factura Ignorada"
-msgctxt "model:sale.sale-recreated-account.invoice,name:0"
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
msgid "Sale - Recreated Invoice"
msgstr "Venta - Factura Recreada"
-msgctxt "model:workflow,name:sale_workflow"
-msgid "Sale workflow"
-msgstr "Flujo de Trabajo de Ventas"
-
-msgctxt "model:workflow.activity,name:sale_activity_cancel"
-msgid "Canceled"
-msgstr "Cancelado"
-
-msgctxt "model:workflow.activity,name:sale_activity_confirmed"
-msgid "Confirmed"
-msgstr "Confirmado"
-
-msgctxt "model:workflow.activity,name:sale_activity_done"
-msgid "Done"
-msgstr "Hecho"
-
-msgctxt "model:workflow.activity,name:sale_activity_draft"
-msgid "Draft"
-msgstr "Borrador"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method"
-msgid "Invoice Method"
-msgstr "Método de Facturación"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method_done"
-msgid "Invoice Method Done"
-msgstr "Método de Factura Concluido"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_done"
-msgid "Invoice Done"
-msgstr "Factura Hecha"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_exception"
-msgid "Invoice Exception"
-msgstr "Excepción de Factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment"
-msgid "Invoice Shipment"
-msgstr "Envío de Factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_done"
-msgid "Invoice Shipment Done"
-msgstr "Envío de Factura Concluido"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_exception"
-msgid "Invoice Shipment Exception"
-msgstr "Excepción de Envío de Factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_method"
-msgid "Invoice Shipment Method"
-msgstr "Método de Envío de Factura"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_method_done"
-msgid "Invoice Shipment Method Done"
-msgstr "Método de Envío de Factura Concluido"
-
-msgctxt "model:workflow.activity,name:sale_activity_quotation"
-msgid "Quotation"
-msgstr "Cotización"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment"
-msgid "Shipment"
-msgstr "Envío"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_exception"
-msgid "Shipment Exception"
-msgstr "Excepción de Envío"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice"
-msgid "Shipment Invoice"
-msgstr "Envío de Factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_done"
-msgid "Shipment Invoice Done"
-msgstr "Envío de Factura Concluido"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_exception"
-msgid "Shipment Invoice Exception"
-msgstr "Excepción de Envío de Factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_method"
-msgid "Shipment Invoice Method"
-msgstr "Método Envío de Factura"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_method_done"
-msgid "Shipment Invoice Method Done"
-msgstr "Método de Envío de Factura Concluido"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method"
-msgid "Shipment Method"
-msgstr "Método de Envío"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method_done"
-msgid "Shipment Method Done"
-msgstr "Método de Envío Concluido"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_sale"
-msgid "Waiting Invoice"
-msgstr "Esperando Factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_shipment"
-msgid "Waiting Invoice Shipment"
-msgstr "Esperando Envío de Factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment"
-msgid "Waiting Shipment"
-msgstr "Esperando Envío"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment_invoice"
-msgid "Waiting Shipment Invoice"
-msgstr "Esperando Envío de Factura"
-
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Amount"
msgstr "Cantidad"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Date:"
msgstr "Fecha:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description"
msgstr "Descripción"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description:"
msgstr "Descripción:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Draft Sale Order"
-msgstr "Orden de Venta en Borrador"
+msgstr "Pedido en Borrador"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "E-Mail:"
msgstr "Correo electrónico:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Phone:"
msgstr "Teléfono:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quantity"
msgstr "Cantidad"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quotation N°:"
msgstr "Cotización Nº:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Sale Order N°:"
-msgstr "Orden de Venta Nº:"
+msgstr "Pedido de Venta Nº:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes"
msgstr "Impuestos"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes:"
msgstr "Impuestos:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total (excl. taxes):"
-msgstr "Total (sin impuestos):"
+msgstr "Base sin impuesto:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total:"
msgstr "Total:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Unit Price"
msgstr "Precio Unitario"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT Number:"
-msgstr ""
+msgstr "Número NIT:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT:"
msgstr "NIT:"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+#, fuzzy
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid ""
-msgstr ""
+msgstr "Punto de Orden"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Ignored"
msgstr "Ignorado"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Recreated"
-msgstr "Rehecho"
+msgstr "Recreada"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "Manual"
msgstr "Manual"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "Al Confirmar la Orden"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr "Al Procesar Pedido"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "On Shipment Sent"
-msgstr "Enviado"
+msgstr "Al Enviar"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "Manual"
msgstr "Manual"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "On Invoice Paid"
-msgstr "Al Pagar"
+msgstr "Al Pagar Factura"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "Al Confirmar la Orden"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr "Al Procesar Pedido"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Comment"
msgstr "Comentario"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Line"
msgstr "Línea"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Subtotal"
msgstr "Subtotal"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Title"
msgstr "Título"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "Manual"
msgstr "Manual"
-msgctxt "selection:sale.sale,invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "Al Confirmar la Orden"
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr "Al Procesar Pedido"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "On Shipment Sent"
-msgstr "Enviado"
+msgstr "Al Enviar"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Exception"
msgstr "Excepción"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "None"
msgstr "Ninguno"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Paid"
-msgstr "Pagado"
+msgstr "Pagada"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Waiting"
-msgstr "En Espera"
+msgstr "En espera"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "Manual"
msgstr "Manual"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "On Invoice Paid"
-msgstr "Al Pagar"
+msgstr "Al Pagar Factura"
-msgctxt "selection:sale.sale,shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "Al Confirmar la Orden"
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr "Al Procesar Pedido"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Exception"
msgstr "Excepción"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "None"
msgstr "Ninguno"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Sent"
-msgstr "Enviado"
+msgstr "Enviada"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Waiting"
-msgstr "En Espera"
+msgstr "En espera"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Canceled"
-msgstr "Cancelado"
+msgstr "Cancelada"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Confirmed"
-msgstr "Confirmado"
+msgstr "Confirmada"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Done"
msgstr "Hecho"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Draft"
msgstr "Borrador"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "En proceso"
+
+msgctxt "selection:sale.sale,state:"
msgid "Quotation"
msgstr "Cotización"
-msgctxt "selection:stock.move,sale_exception_state:0"
+#, fuzzy
+msgctxt "selection:stock.move,sale_exception_state:"
msgid ""
-msgstr ""
+msgstr "Punto de Orden"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Ignored"
-msgstr "Ignore"
+msgstr "Ignorado"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Recreated"
-msgstr "Rehacer"
+msgstr "Recreado"
-msgctxt "view:product.product:0"
-msgid "Customers"
-msgstr "Clientes"
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "Productos"
-msgctxt "view:product.template:0"
+msgctxt "view:product.template:"
msgid "Customers"
msgstr "Clientes"
-msgctxt "view:sale.configuration:0"
+msgctxt "view:sale.configuration:"
msgid "Sale Configuration"
-msgstr ""
+msgstr "Configuración Venta"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Choose invoices to recreate"
-msgstr "Escoja una factura a rehacer"
+msgstr "Seleccione facturas a recrear"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Handle Invoice Exception"
-msgstr "Tratar Excepción de factura"
+msgstr "Gestionar Excepción de Factura"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Choose move to recreate"
-msgstr "Escoja un movimiento a rehacer"
+msgstr "Seleccione movimientos a recrear"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Handle shipment Exception"
-msgstr "Maneje Excepciones de empaquetado"
+msgstr "Gestionar Excepción de Envío"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Recreate Moves"
-msgstr "Recrear movimientos"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "General"
msgstr "General"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Notes"
msgstr "Notas"
-msgctxt "view:sale.line:0"
-msgid "Products"
-msgstr "Productos"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Line"
msgstr "Línea de Venta"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Lines"
msgstr "Líneas de Venta"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Cancel"
msgstr "Cancelar"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Confirm"
msgstr "Confirmar"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Draft"
msgstr "Borrador"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Invoice Exception"
-msgstr "Excepción que maneja factura"
+msgstr "Gestionar Excepción de Factura"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Shipment Exception"
-msgstr "Excepción que maneja envío"
-
-msgctxt "view:sale.sale:0"
-msgid "Ignore Invoice Exception"
-msgstr "Ignorar excepción en Factura"
+msgstr "Gestionar Excepción de Envío"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Invoices"
msgstr "Facturas"
-msgctxt "view:sale.sale:0"
-msgid "Lines"
-msgstr "Líneas"
-
-msgctxt "view:sale.sale:0"
-msgid "Moves"
-msgstr "Movimientos"
-
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Other Info"
-msgstr "Información Adicional"
+msgstr "Info Adicional"
-msgctxt "view:sale.sale:0"
-msgid "Quotation"
-msgstr "Cotización"
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr "Procesar"
+
+msgctxt "view:sale.sale:"
+msgid "Quote"
+msgstr "Cotizar"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sales"
msgstr "Ventas"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Shipments"
-msgstr "Empaques"
+msgstr "Envios"
+
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Movimientos"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
msgid "Cancel"
msgstr "Cancelar"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
msgid "Ok"
msgstr "Aceptar"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
msgid "Cancel"
msgstr "Cancelar"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
msgid "Ok"
msgstr "Aceptar"
diff -Nru tryton-modules-sale-2.2.2/locale/es_ES.po tryton-modules-sale-2.8.0/locale/es_ES.po
--- tryton-modules-sale-2.2.2/locale/es_ES.po 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/es_ES.po 2013-04-21 14:00:21.000000000 +0000
@@ -2,415 +2,616 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:account.invoice:0"
-msgid "You can not delete invoices that come from a sale!"
-msgstr "No puede borrar facturas que provienen de una venta"
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr "No puede borrar facturas generadas desde ventas."
-msgctxt "error:account.invoice:0"
+msgctxt "error:account.invoice:"
msgid "You cannot reset to draft an invoice generated by a sale."
-msgstr "No puede restablecer a borrador una factura generada por una venta."
+msgstr "No puede restaurar a borrador una factura generada por una venta."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"Account Revenue\" on product \"%s\"!"
-msgstr "Falta una «cuenta de ingresos» en el producto «%s»"
-
-msgctxt "error:sale.line:0"
-msgid "It misses an \"account Revenue\" default property!"
-msgstr "Falta una propiedad predeterminada de «cuenta de ingresos»"
-
-msgctxt "error:sale.line:0"
-msgid "The customer location is required!"
-msgstr "Se necesita la ubicación del cliente"
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr ""
+"Falta la cuenta a cobrar del producto \"%(product)s\" de la venta %(sale)s."
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
+msgstr ""
+"Falta la ubicación del cliente en la línea \"%(line)s\" de la venta "
+"\"%(sale)\"."
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr "Falta la propiedad \"Cuenta a cobrar\" por defecto de las ventas."
+
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
+msgstr ""
+"Combinación de métodos de envío y facturación en la venta \"%s\" no es "
+"correcta."
-msgctxt "error:sale.sale:0"
-msgid "Invoice and Shipment addresses must be defined for the quotation."
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
msgstr ""
-"Las direcciones de facturación y de envío debe ser definida para el "
-"presupuesto."
+"Las direcciones de envío y facturación se deben definir para el presupuesto "
+"de venta \"%s\"."
-msgctxt "error:sale.sale:0"
-msgid "It misses an \"Account Receivable\" on the party \"%s\"!"
-msgstr "Falta una «cuenta de ingresos» en el tercero «%s»"
-
-msgctxt "error:sale.sale:0"
-msgid "Wrong combination of method!"
-msgstr "Combinación inválida de métodos"
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr "Falta una \"Cuenta a cobrar\" al tercero \"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr "Debe cancelar la venta \"%s\" antes de borrar."
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr "Se debe definir el almacén para el presupuesto de la venta \"%s\"."
-msgctxt "error:stock.shipment.out:0"
+msgctxt "error:stock.shipment.out.return:"
msgid "You cannot reset to draft a move generated by a sale."
-msgstr "No puede restablecer a borrador un movimiento generado por una venta."
+msgstr "No puede restaurar a borrador un movimiento generado por una venta."
-msgctxt "field:account.invoice,sale_exception_state:0"
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "No puede restaurar a borrador un movimiento generado por una venta."
+
+msgctxt "field:account.invoice,sale_exception_state:"
msgid "Exception State"
-msgstr "Estado de excepción"
+msgstr "Estado excepción"
-#, fuzzy
-msgctxt "field:account.invoice,sales:0"
+msgctxt "field:account.invoice,sales:"
msgid "Sales"
msgstr "Ventas"
-#, fuzzy
-msgctxt "field:account.invoice.line,sale_lines:0"
-msgid "Sale Lines"
-msgstr "Líneas de venta"
-
-#, fuzzy
-msgctxt "field:product.template,delivery_time:0"
+msgctxt "field:product.template,delivery_time:"
msgid "Delivery Time"
msgstr "Tiempo de envío"
-msgctxt "field:product.template,salable:0"
+msgctxt "field:product.template,salable:"
msgid "Salable"
-msgstr "Vendible"
+msgstr "Puede ser vendido"
-msgctxt "field:product.template,sale_uom:0"
+msgctxt "field:product.template,sale_uom:"
msgid "Sale UOM"
msgstr "UdM de venta"
-#, fuzzy
-msgctxt "field:sale.configuration,rec_name:0"
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.configuration,rec_name:"
msgid "Name"
-msgstr "Nombre del campo"
+msgstr "Nombre"
-msgctxt "field:sale.configuration,sale_invoice_method:0"
+msgctxt "field:sale.configuration,sale_invoice_method:"
msgid "Sale Invoice Method"
-msgstr ""
+msgstr "Método de facturación"
-msgctxt "field:sale.configuration,sale_sequence:0"
+msgctxt "field:sale.configuration,sale_sequence:"
msgid "Sale Reference Sequence"
-msgstr ""
+msgstr "Secuencia de pedidos de venta"
-msgctxt "field:sale.configuration,sale_shipment_method:0"
+msgctxt "field:sale.configuration,sale_shipment_method:"
msgid "Sale Shipment Method"
-msgstr ""
+msgstr "Método de envío"
+
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
-msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
msgid "Domain Invoices"
-msgstr "Facturas del dominio"
+msgstr "Dominio de facturas"
+
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid "Recreate Invoices"
-msgstr "Rehacer facturas"
+msgstr "Recrear facturas"
-msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
msgid "Domain Moves"
-msgstr "Movimientos de dominio"
+msgstr "Dominio de movimientos"
-msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
msgid "Recreate Moves"
-msgstr "Rehacer movimientos"
+msgstr "Recrear movimientos"
-msgctxt "field:sale.line,amount:0"
+msgctxt "field:sale.line,amount:"
msgid "Amount"
-msgstr "Cantidad"
+msgstr "Importe"
+
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr "Fecha de entrega"
-msgctxt "field:sale.line,description:0"
+msgctxt "field:sale.line,description:"
msgid "Description"
msgstr "Descripción"
-msgctxt "field:sale.line,invoice_lines:0"
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr "Desde ubicación"
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line,invoice_lines:"
msgid "Invoice Lines"
msgstr "Líneas de factura"
-msgctxt "field:sale.line,move_done:0"
+msgctxt "field:sale.line,move_done:"
msgid "Moves Done"
-msgstr "Movimientos terminados"
+msgstr "Movimientos realizados"
-msgctxt "field:sale.line,move_exception:0"
+msgctxt "field:sale.line,move_exception:"
msgid "Moves Exception"
msgstr "Exepción de movimientos"
-msgctxt "field:sale.line,moves:0"
+msgctxt "field:sale.line,moves:"
msgid "Moves"
msgstr "Movimientos"
-msgctxt "field:sale.line,moves_ignored:0"
+msgctxt "field:sale.line,moves_ignored:"
msgid "Ignored Moves"
msgstr "Movimientos ignorados"
-msgctxt "field:sale.line,moves_recreated:0"
+msgctxt "field:sale.line,moves_recreated:"
msgid "Recreated Moves"
-msgstr "Rehacer movimientos"
+msgstr "Movimientos recreados"
-msgctxt "field:sale.line,note:0"
+msgctxt "field:sale.line,note:"
msgid "Note"
msgstr "Nota"
-msgctxt "field:sale.line,product:0"
+msgctxt "field:sale.line,product:"
msgid "Product"
msgstr "Producto"
-msgctxt "field:sale.line,quantity:0"
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr "Categoría UdM del producto"
+
+msgctxt "field:sale.line,quantity:"
msgid "Quantity"
msgstr "Cantidad"
-msgctxt "field:sale.line,rec_name:0"
+msgctxt "field:sale.line,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.line,sale:0"
+msgctxt "field:sale.line,sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "field:sale.line,sequence:0"
+msgctxt "field:sale.line,sequence:"
msgid "Sequence"
msgstr "Secuencia"
-msgctxt "field:sale.line,taxes:0"
+msgctxt "field:sale.line,taxes:"
msgid "Taxes"
msgstr "Impuestos"
-msgctxt "field:sale.line,type:0"
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr "A ubicación"
+
+msgctxt "field:sale.line,type:"
msgid "Type"
msgstr "Tipo"
-msgctxt "field:sale.line,unit:0"
+msgctxt "field:sale.line,unit:"
msgid "Unit"
msgstr "Unidad"
-msgctxt "field:sale.line,unit_digits:0"
+msgctxt "field:sale.line,unit_digits:"
msgid "Unit Digits"
-msgstr "Dígitos de la unidad"
+msgstr "Decimales de la unidad"
-msgctxt "field:sale.line,unit_price:0"
+msgctxt "field:sale.line,unit_price:"
msgid "Unit Price"
-msgstr "Precio unitario"
+msgstr "Precio unidad"
-msgctxt "field:sale.line-account.invoice.line,invoice_line:0"
-msgid "Invoice Line"
-msgstr "Línea de factura"
-
-msgctxt "field:sale.line-account.invoice.line,rec_name:0"
-msgid "Name"
-msgstr "Nombre"
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Almacén"
-msgctxt "field:sale.line-account.invoice.line,sale_line:0"
-msgid "Sale Line"
-msgstr "Línea de venta"
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.line-account.tax,line:0"
+msgctxt "field:sale.line-account.tax,line:"
msgid "Sale Line"
msgstr "Línea de venta"
-msgctxt "field:sale.line-account.tax,rec_name:0"
+msgctxt "field:sale.line-account.tax,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.line-account.tax,tax:0"
+msgctxt "field:sale.line-account.tax,tax:"
msgid "Tax"
msgstr "Impuesto"
-msgctxt "field:sale.line-ignored-stock.move,move:0"
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
msgid "Move"
msgstr "Movimiento"
-msgctxt "field:sale.line-ignored-stock.move,rec_name:0"
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.line-ignored-stock.move,sale_line:0"
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Línea de venta"
-msgctxt "field:sale.line-recreated-stock.move,move:0"
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
msgid "Move"
msgstr "Movimiento"
-msgctxt "field:sale.line-recreated-stock.move,rec_name:0"
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.line-recreated-stock.move,sale_line:0"
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Línea de venta"
-msgctxt "field:sale.sale,comment:0"
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.sale,comment:"
msgid "Comment"
msgstr "Comentario"
-msgctxt "field:sale.sale,company:0"
+msgctxt "field:sale.sale,company:"
msgid "Company"
msgstr "Empresa"
-msgctxt "field:sale.sale,currency:0"
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.sale,currency:"
msgid "Currency"
-msgstr "Divisa"
+msgstr "Moneda"
-msgctxt "field:sale.sale,currency_digits:0"
+msgctxt "field:sale.sale,currency_digits:"
msgid "Currency Digits"
-msgstr "Dígitos de la divisa"
+msgstr "Decimales de la moneda"
-msgctxt "field:sale.sale,description:0"
+msgctxt "field:sale.sale,description:"
msgid "Description"
msgstr "Descripción"
-msgctxt "field:sale.sale,invoice_address:0"
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale,invoice_address:"
msgid "Invoice Address"
msgstr "Dirección de facturación"
-msgctxt "field:sale.sale,invoice_exception:0"
-msgid "Invoices Exception"
-msgstr "Excepción de facturación"
-
-msgctxt "field:sale.sale,invoice_method:0"
+msgctxt "field:sale.sale,invoice_method:"
msgid "Invoice Method"
msgstr "Método de facturación"
-msgctxt "field:sale.sale,invoice_paid:0"
-msgid "Invoices Paid"
-msgstr "Facturas pagadas"
-
-msgctxt "field:sale.sale,invoice_state:0"
+msgctxt "field:sale.sale,invoice_state:"
msgid "Invoice State"
-msgstr "Estado de factura"
+msgstr "Estado factura"
-msgctxt "field:sale.sale,invoices:0"
+msgctxt "field:sale.sale,invoices:"
msgid "Invoices"
msgstr "Facturas"
-msgctxt "field:sale.sale,invoices_ignored:0"
+msgctxt "field:sale.sale,invoices_ignored:"
msgid "Ignored Invoices"
msgstr "Facturas ignoradas"
-msgctxt "field:sale.sale,invoices_recreated:0"
+msgctxt "field:sale.sale,invoices_recreated:"
msgid "Recreated Invoices"
-msgstr "Rehacer facturas"
+msgstr "Facturas recreadas"
-msgctxt "field:sale.sale,lines:0"
+msgctxt "field:sale.sale,lines:"
msgid "Lines"
msgstr "Líneas"
-msgctxt "field:sale.sale,moves:0"
+msgctxt "field:sale.sale,moves:"
msgid "Moves"
msgstr "Movimientos"
-msgctxt "field:sale.sale,party:0"
+msgctxt "field:sale.sale,party:"
msgid "Party"
msgstr "Tercero"
-msgctxt "field:sale.sale,party_lang:0"
+msgctxt "field:sale.sale,party_lang:"
msgid "Party Language"
msgstr "Idioma del tercero"
-msgctxt "field:sale.sale,payment_term:0"
+msgctxt "field:sale.sale,payment_term:"
msgid "Payment Term"
-msgstr "Término de pago"
+msgstr "Plazo de pago"
-msgctxt "field:sale.sale,rec_name:0"
+msgctxt "field:sale.sale,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.sale,reference:0"
+msgctxt "field:sale.sale,reference:"
msgid "Reference"
msgstr "Referencia"
-msgctxt "field:sale.sale,sale_date:0"
+msgctxt "field:sale.sale,sale_date:"
msgid "Sale Date"
msgstr "Fecha de venta"
-msgctxt "field:sale.sale,shipment_address:0"
+msgctxt "field:sale.sale,shipment_address:"
msgid "Shipment Address"
msgstr "Dirección de envío"
-msgctxt "field:sale.sale,shipment_done:0"
-msgid "Shipment Done"
-msgstr "Envío terminado"
-
-msgctxt "field:sale.sale,shipment_exception:0"
-msgid "Shipments Exception"
-msgstr "Excepción de envíos"
-
-msgctxt "field:sale.sale,shipment_method:0"
+msgctxt "field:sale.sale,shipment_method:"
msgid "Shipment Method"
msgstr "Método de envío"
-msgctxt "field:sale.sale,shipment_state:0"
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr "Albaranes de devolución"
+
+msgctxt "field:sale.sale,shipment_state:"
msgid "Shipment State"
-msgstr "Estado de envío"
+msgstr "Estado envío"
-msgctxt "field:sale.sale,shipments:0"
+msgctxt "field:sale.sale,shipments:"
msgid "Shipments"
-msgstr "Envíos"
+msgstr "Albaranes"
-msgctxt "field:sale.sale,state:0"
+msgctxt "field:sale.sale,state:"
msgid "State"
msgstr "Estado"
-msgctxt "field:sale.sale,tax_amount:0"
+msgctxt "field:sale.sale,tax_amount:"
msgid "Tax"
msgstr "Impuesto"
-msgctxt "field:sale.sale,total_amount:0"
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr "Impuestos precalculado"
+
+msgctxt "field:sale.sale,total_amount:"
msgid "Total"
msgstr "Total"
-msgctxt "field:sale.sale,untaxed_amount:0"
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr "Total impuestos"
+
+msgctxt "field:sale.sale,untaxed_amount:"
msgid "Untaxed"
-msgstr "Sin impuesto"
+msgstr "Base imponible"
+
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr "Base imponible precalculada"
-msgctxt "field:sale.sale,warehouse:0"
+msgctxt "field:sale.sale,warehouse:"
msgid "Warehouse"
msgstr "Almacén"
-msgctxt "field:sale.sale-account.invoice,invoice:0"
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factura"
-msgctxt "field:sale.sale-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-account.invoice,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.sale-account.invoice,sale:0"
+msgctxt "field:sale.sale-account.invoice,sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "field:sale.sale-ignored-account.invoice,invoice:0"
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factura"
-msgctxt "field:sale.sale-ignored-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.sale-ignored-account.invoice,sale:0"
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "field:sale.sale-recreated-account.invoice,invoice:0"
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Fecha creación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Usuario creación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factura"
-msgctxt "field:sale.sale-recreated-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
msgid "Name"
msgstr "Nombre"
-msgctxt "field:sale.sale-recreated-account.invoice,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "field:stock.move,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Fecha modificación"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Usuario modificación"
+
+msgctxt "field:stock.move,sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "field:stock.move,sale_exception_state:0"
+msgctxt "field:stock.move,sale_exception_state:"
msgid "Exception State"
msgstr "Estado excepción"
-#, fuzzy
-msgctxt "field:stock.move,sale_line:0"
-msgid "Sale Line"
-msgstr "Línea de venta"
-
-#, fuzzy
-msgctxt "help:product.template,delivery_time:0"
+msgctxt "help:product.template,delivery_time:"
msgid "In number of days"
-msgstr "En número de días"
+msgstr "En número de días."
-msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid ""
"The selected invoices will be recreated. The other ones will be ignored."
msgstr ""
-"Las facturas seleccionadas seran recreadas. Las otras serán ignoradas."
+"Las facturas seleccionadas serán recreadas. Las otras serán ignoradas."
msgctxt "model:ir.action,name:act_invoice_form"
msgid "Invoices"
@@ -418,11 +619,15 @@
msgctxt "model:ir.action,name:act_open_customer"
msgid "Parties associated to Sales"
-msgstr "Terceros asociados a ventas"
+msgstr "Terceros con ventas"
+
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr "Devolver"
msgctxt "model:ir.action,name:act_sale_configuration_form"
msgid "Sales Configuration"
-msgstr ""
+msgstr "Configuración de ventas"
msgctxt "model:ir.action,name:act_sale_form"
msgid "Sales"
@@ -432,21 +637,9 @@
msgid "Sales"
msgstr "Ventas"
-msgctxt "model:ir.action,name:act_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Ventas confirmadas"
-
-msgctxt "model:ir.action,name:act_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Ventas en borrador"
-
-msgctxt "model:ir.action,name:act_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Ventas presupuestadas"
-
msgctxt "model:ir.action,name:act_shipment_form"
msgid "Shipments"
-msgstr "Envíos"
+msgstr "Albaranes"
msgctxt "model:ir.action,name:report_sale"
msgid "Sale"
@@ -456,9 +649,36 @@
msgid "Handle Invoice Exception"
msgstr "Gestionar excepción de factura"
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr "Crear devolución de venta"
+
msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
msgid "Handle Shipment Exception"
-msgstr "Gestionar excepción de envio"
+msgstr "Gestionar excepción de envío"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr "Todo"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Confirmado"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Borrador"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "En proceso"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Presupuesto"
msgctxt "model:ir.sequence,name:sequence_sale"
msgid "Sale"
@@ -468,547 +688,398 @@
msgid "Sale"
msgstr "Venta"
-#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_configuration"
msgid "Configuration"
msgstr "Configuración"
msgctxt "model:ir.ui.menu,name:menu_customer"
msgid "Parties associated to Sales"
-msgstr "Terceros asociados a ventas"
+msgstr "Terceros con ventas"
-#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_sale"
msgid "Sales"
-msgstr "Gestión de ventas"
+msgstr "Ventas"
msgctxt "model:ir.ui.menu,name:menu_sale_configuration"
msgid "Sales Configuration"
-msgstr ""
+msgstr "Ventas"
msgctxt "model:ir.ui.menu,name:menu_sale_form"
msgid "Sales"
msgstr "Ventas"
-msgctxt "model:ir.ui.menu,name:menu_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Ventas confirmadas"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Ventas en borrador"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Ventas presupuestadas"
-
-#, fuzzy
msgctxt "model:res.group,name:group_sale"
msgid "Sales"
-msgstr "Venta"
+msgstr "Ventas"
msgctxt "model:res.group,name:group_sale_admin"
msgid "Sales Administrator"
-msgstr ""
+msgstr "Administración de ventas"
-msgctxt "model:sale.configuration,name:0"
+msgctxt "model:sale.configuration,name:"
msgid "Sale Configuration"
-msgstr ""
+msgstr "Configuración ventas"
-msgctxt "model:sale.handle.invoice.exception.ask,name:0"
-msgid "Invoice Exception Ask"
-msgstr "Factura de excepcion - Petición"
-
-msgctxt "model:sale.handle.shipment.exception.ask,name:0"
-msgid "Shipment Exception Ask"
-msgstr "Envio de excepcion - Petición"
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
+msgstr "Gestionar excepción de factura"
+
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
+msgstr "Gestionar excepción de envío"
-msgctxt "model:sale.line,name:0"
+msgctxt "model:sale.line,name:"
msgid "Sale Line"
msgstr "Línea de venta"
-msgctxt "model:sale.line-account.invoice.line,name:0"
-msgid "Sale Line - Invoice Line"
-msgstr "Línea de venta - Línea de factura"
-
-msgctxt "model:sale.line-account.tax,name:0"
+msgctxt "model:sale.line-account.tax,name:"
msgid "Sale Line - Tax"
msgstr "Línea de venta - Impuesto"
-msgctxt "model:sale.line-ignored-stock.move,name:0"
+msgctxt "model:sale.line-ignored-stock.move,name:"
msgid "Sale Line - Ignored Move"
msgstr "Línea de venta - Movimiento ignorado"
-msgctxt "model:sale.line-recreated-stock.move,name:0"
+msgctxt "model:sale.line-recreated-stock.move,name:"
msgid "Sale Line - Recreated Move"
msgstr "Línea de venta - Movimiento recreado"
-msgctxt "model:sale.sale,name:0"
+msgctxt "model:sale.sale,name:"
msgid "Sale"
msgstr "Venta"
-msgctxt "model:sale.sale-account.invoice,name:0"
+msgctxt "model:sale.sale-account.invoice,name:"
msgid "Sale - Invoice"
msgstr "Venta - Factura"
-msgctxt "model:sale.sale-ignored-account.invoice,name:0"
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
msgid "Sale - Ignored Invoice"
msgstr "Venta - Factura ignorada"
-msgctxt "model:sale.sale-recreated-account.invoice,name:0"
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
msgid "Sale - Recreated Invoice"
msgstr "Venta - Factura recreada"
-msgctxt "model:workflow,name:sale_workflow"
-msgid "Sale workflow"
-msgstr "Flujo de Trabajo de Ventas"
-
-msgctxt "model:workflow.activity,name:sale_activity_cancel"
-msgid "Canceled"
-msgstr "Cancelado"
-
-msgctxt "model:workflow.activity,name:sale_activity_confirmed"
-msgid "Confirmed"
-msgstr "Confirmado"
-
-msgctxt "model:workflow.activity,name:sale_activity_done"
-msgid "Done"
-msgstr "Terminado"
-
-msgctxt "model:workflow.activity,name:sale_activity_draft"
-msgid "Draft"
-msgstr "Borrador"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method"
-msgid "Invoice Method"
-msgstr "Método de facturación"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method_done"
-msgid "Invoice Method Done"
-msgstr "Método de factura terminado"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_done"
-msgid "Invoice Done"
-msgstr "Factura terminada"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_exception"
-msgid "Invoice Exception"
-msgstr "Excepción de factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment"
-msgid "Invoice Shipment"
-msgstr "Envío de factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_done"
-msgid "Invoice Shipment Done"
-msgstr "Envío de factura terminado"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_exception"
-msgid "Invoice Shipment Exception"
-msgstr "Excepción de envío de factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_method"
-msgid "Invoice Shipment Method"
-msgstr "Método de envío de factura"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_method_done"
-msgid "Invoice Shipment Method Done"
-msgstr "Método de envío de factura terminado"
-
-msgctxt "model:workflow.activity,name:sale_activity_quotation"
-msgid "Quotation"
-msgstr "Presupuesto"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment"
-msgid "Shipment"
-msgstr "Envío"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_exception"
-msgid "Shipment Exception"
-msgstr "Excepción de envío"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice"
-msgid "Shipment Invoice"
-msgstr "Envío de factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_done"
-msgid "Shipment Invoice Done"
-msgstr "Envío de factura terminado"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_exception"
-msgid "Shipment Invoice Exception"
-msgstr "Excepción de envío de factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_method"
-msgid "Shipment Invoice Method"
-msgstr "Método de envío de factura"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_method_done"
-msgid "Shipment Invoice Method Done"
-msgstr "Método de envío de factura terminado"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method"
-msgid "Shipment Method"
-msgstr "Método de envío"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method_done"
-msgid "Shipment Method Done"
-msgstr "Método de envío terminado"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_sale"
-msgid "Waiting Invoice"
-msgstr "Esperando factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_shipment"
-msgid "Waiting Invoice Shipment"
-msgstr "Esperando Envío de Factura"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment"
-msgid "Waiting Shipment"
-msgstr "Esperando Envío"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment_invoice"
-msgid "Waiting Shipment Invoice"
-msgstr "Esperando Envío de Factura"
-
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Amount"
-msgstr "Cantidad"
+msgstr "Importe"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Date:"
msgstr "Fecha:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description"
msgstr "Descripción"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description:"
msgstr "Descripción:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Draft Sale Order"
-msgstr "Orden de venta en borrador"
+msgstr "Ventas borrador"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "E-Mail:"
msgstr "Correo electrónico:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Phone:"
msgstr "Teléfono:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quantity"
msgstr "Cantidad"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quotation N°:"
msgstr "Presupuesto Nº:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Sale Order N°:"
-msgstr "Orden de venta Nº:"
+msgstr "Venta Nº:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes"
msgstr "Impuestos"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes:"
msgstr "Impuestos:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total (excl. taxes):"
-msgstr "Total (sin impuestos):"
+msgstr "Base imponible:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total:"
msgstr "Total:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Unit Price"
-msgstr "Precio unitario"
+msgstr "Precio unidad"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT Number:"
-msgstr ""
+msgstr "Número CIF/NIF:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT:"
-msgstr "NIF:"
+msgstr "CIF/NIF:"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Ignored"
msgstr "Ignorado"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Recreated"
-msgstr "Rehecho"
+msgstr "Recreada"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "Manual"
msgstr "Manual"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "Al confirmar la orden"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr "Al procesar el pedido"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "On Shipment Sent"
-msgstr "Al Enviarlo"
+msgstr "Al enviar"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "Manual"
msgstr "Manual"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "On Invoice Paid"
msgstr "Al pagar la factura"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "Al confirmar la orden"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr "Al procesar el pedido"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Comment"
msgstr "Comentario"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Line"
msgstr "Línea"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Subtotal"
msgstr "Subtotal"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Title"
msgstr "Título"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "Manual"
msgstr "Manual"
-msgctxt "selection:sale.sale,invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "Al confirmar la orden"
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr "Al procesar el pedido"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "On Shipment Sent"
-msgstr "Al Enviarlo"
+msgstr "Al enviar"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Exception"
msgstr "Excepción"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "None"
msgstr "Ninguno"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Paid"
-msgstr "Pagado"
+msgstr "Pagada"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Waiting"
msgstr "En espera"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "Manual"
msgstr "Manual"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "On Invoice Paid"
msgstr "Al pagar la factura"
-msgctxt "selection:sale.sale,shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "Al confirmar la orden"
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr "Al procesar el pedido"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Exception"
msgstr "Excepción"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "None"
msgstr "Ninguno"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Sent"
-msgstr "Enviado"
+msgstr "Enviada"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Waiting"
msgstr "En espera"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Canceled"
-msgstr "Cancelado"
+msgstr "Cancelada"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Confirmed"
-msgstr "Confirmado"
+msgstr "Confirmada"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Done"
-msgstr "Terminada"
+msgstr "Realizado"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Draft"
msgstr "Borrador"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "En proceso"
+
+msgctxt "selection:sale.sale,state:"
msgid "Quotation"
msgstr "Presupuesto"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Ignored"
msgstr "Ignorado"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Recreated"
-msgstr "Rehacer"
+msgstr "Recreado"
-msgctxt "view:product.product:0"
-msgid "Customers"
-msgstr "Clientes"
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "Productos"
-msgctxt "view:product.template:0"
+msgctxt "view:product.template:"
msgid "Customers"
msgstr "Clientes"
-msgctxt "view:sale.configuration:0"
+msgctxt "view:sale.configuration:"
msgid "Sale Configuration"
-msgstr ""
+msgstr "Configuración de venta"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Choose invoices to recreate"
-msgstr "Escoja una factura a rehacer"
+msgstr "Seleccione facturas a recrear"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Handle Invoice Exception"
-msgstr "Excepción de manejo de factura"
+msgstr "Gestionar excepción de factura"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Choose move to recreate"
-msgstr "Escoja un movimiento a rehacer"
+msgstr "Seleccione movimientos a recrear"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Handle shipment Exception"
-msgstr "Manejar excepción de envio"
+msgstr "Gestionar excepción de envío"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Recreate Moves"
-msgstr "Recrear movimientos"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "General"
msgstr "General"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Notes"
msgstr "Notas"
-msgctxt "view:sale.line:0"
-msgid "Products"
-msgstr "Productos"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Line"
msgstr "Línea de venta"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Lines"
msgstr "Líneas de venta"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Cancel"
msgstr "Cancelar"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Confirm"
msgstr "Confirmar"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Draft"
msgstr "Borrador"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Invoice Exception"
-msgstr "Manejar excepción de factura"
+msgstr "Gestionar excepción de factura"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Shipment Exception"
-msgstr "Manejar excepción de envio"
-
-msgctxt "view:sale.sale:0"
-msgid "Ignore Invoice Exception"
-msgstr "Ignorar excepción de factura"
+msgstr "Gestionar excepción de envío"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Invoices"
msgstr "Facturas"
-msgctxt "view:sale.sale:0"
-msgid "Lines"
-msgstr "Líneas"
-
-msgctxt "view:sale.sale:0"
-msgid "Moves"
-msgstr "Movimientos"
-
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Other Info"
msgstr "Información adicional"
-msgctxt "view:sale.sale:0"
-msgid "Quotation"
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr "Procesar"
+
+msgctxt "view:sale.sale:"
+msgid "Quote"
msgstr "Presupuesto"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sale"
msgstr "Venta"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sales"
msgstr "Ventas"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Shipments"
-msgstr "Envios"
+msgstr "Albaranes"
+
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Movimientos"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
msgid "Cancel"
msgstr "Cancelar"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
msgid "Ok"
msgstr "Aceptar"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
msgid "Cancel"
msgstr "Cancelar"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
msgid "Ok"
msgstr "Aceptar"
diff -Nru tryton-modules-sale-2.2.2/locale/fr_FR.po tryton-modules-sale-2.8.0/locale/fr_FR.po
--- tryton-modules-sale-2.2.2/locale/fr_FR.po 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/fr_FR.po 2013-04-21 14:09:30.000000000 +0000
@@ -2,404 +2,622 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:account.invoice:0"
-msgid "You can not delete invoices that come from a sale!"
-msgstr "Vous ne pouvez pas supprimer une facture qui provient d'une vente"
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr "Vous ne pouvez supprimer une facture qui provient d'une vente."
-msgctxt "error:account.invoice:0"
+msgctxt "error:account.invoice:"
msgid "You cannot reset to draft an invoice generated by a sale."
msgstr "Vous ne pouvez pas réinitialiser une facture générée par une vente."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"Account Revenue\" on product \"%s\"!"
-msgstr "Il manque un compte de produits sur le produit \"%s\" !"
-
-msgctxt "error:sale.line:0"
-msgid "It misses an \"account Revenue\" default property!"
-msgstr "il manque une propriété par défaut \"compte de produits\" !"
-
-msgctxt "error:sale.line:0"
-msgid "The customer location is required!"
-msgstr "L'emplacement client est requis !"
+msgctxt "error:account.invoice:"
+msgid "You cannot reset to draft an invoice generated by a sale."
+msgstr "Vous ne pouvez pas réinitialiser une facture générée par une vente."
+
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr ""
+"Le produit \"%(product)s\" de la vente %(sale)s n'a pas de compte de revenu."
-msgctxt "error:sale.sale:0"
-msgid "Invoice and Shipment addresses must be defined for the quotation."
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
msgstr ""
-"Les adresses de facturation et d'expédition sont requises pour le devis."
+"L'emplacement client est manquant sur la ligne \"%(line)s\" de la vente "
+"\"%(sale)s\"."
-msgctxt "error:sale.sale:0"
-msgid "It misses an \"Account Receivable\" on the party \"%s\"!"
-msgstr "Il manque un compte à recevoir sur le tiers \"%s\" !"
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr ""
+"La propriété par défaut \"Compte de produit\" est absente de la vente "
+"\"%(sale)s\""
-msgctxt "error:sale.sale:0"
-msgid "Wrong combination of method!"
-msgstr "Mauvaise combinaison de méthodes !"
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
+msgstr ""
+"Combinaison de méthodes de livraison et de facturation invalide sur la vente"
+" \"%s\"."
-msgctxt "error:stock.shipment.out:0"
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
+msgstr ""
+"Les adresses de facturation et de livraison doivent être définies pour le "
+"devis \"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr "Le compte à recevoir est manquant sur le tiers \"%s\"."
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr "La vente \"%s\" doit être annulée avant de pouvoir être supprimée."
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr "Un entrepôt doit être défini pour le devis de la vente \"%s\"."
+
+msgctxt "error:stock.shipment.out.return:"
msgid "You cannot reset to draft a move generated by a sale."
msgstr "Vous ne pouvez pas réinitialiser un mouvement généré par une vente."
-msgctxt "field:account.invoice,sale_exception_state:0"
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "Vous ne pouvez pas réinitialiser un mouvement généré par une vente."
+
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "Vous ne pouvez pas réinitialiser un mouvement généré par une vente."
+
+msgctxt "field:account.invoice,sale_exception_state:"
msgid "Exception State"
msgstr "État d'exception"
-msgctxt "field:account.invoice,sales:0"
+msgctxt "field:account.invoice,sales:"
msgid "Sales"
msgstr "Ventes"
-msgctxt "field:account.invoice.line,sale_lines:0"
-msgid "Sale Lines"
-msgstr "Lignes de vente"
-
-msgctxt "field:product.template,delivery_time:0"
+msgctxt "field:product.template,delivery_time:"
msgid "Delivery Time"
msgstr "Délai de livraison"
-msgctxt "field:product.template,salable:0"
+msgctxt "field:product.template,salable:"
msgid "Salable"
msgstr "Vendable"
-msgctxt "field:product.template,sale_uom:0"
+msgctxt "field:product.template,sale_uom:"
msgid "Sale UOM"
msgstr "UDM de vente"
-msgctxt "field:sale.configuration,rec_name:0"
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.configuration,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.configuration,sale_invoice_method:0"
+msgctxt "field:sale.configuration,sale_invoice_method:"
msgid "Sale Invoice Method"
msgstr "Facturation"
-msgctxt "field:sale.configuration,sale_sequence:0"
+msgctxt "field:sale.configuration,sale_sequence:"
msgid "Sale Reference Sequence"
msgstr "Séquence de référence de vente"
-msgctxt "field:sale.configuration,sale_shipment_method:0"
+msgctxt "field:sale.configuration,sale_shipment_method:"
msgid "Sale Shipment Method"
msgstr "Expédition"
-msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:0"
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
msgid "Domain Invoices"
msgstr "Domaine des factures"
-msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid "Recreate Invoices"
msgstr "Recréer les factures"
-msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
msgid "Domain Moves"
msgstr "Domaine des mouvements"
-msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
msgid "Recreate Moves"
msgstr "Recréer les mouvements"
-msgctxt "field:sale.line,amount:0"
+msgctxt "field:sale.line,amount:"
msgid "Amount"
msgstr "Montant"
-msgctxt "field:sale.line,description:0"
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr "Date de livraison"
+
+msgctxt "field:sale.line,description:"
msgid "Description"
msgstr "Description"
-msgctxt "field:sale.line,invoice_lines:0"
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr "Emplacement d'origine"
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line,invoice_lines:"
msgid "Invoice Lines"
msgstr "Lignes de facture"
-msgctxt "field:sale.line,move_done:0"
+msgctxt "field:sale.line,move_done:"
msgid "Moves Done"
msgstr "Mouvements effectués"
-msgctxt "field:sale.line,move_exception:0"
+msgctxt "field:sale.line,move_exception:"
msgid "Moves Exception"
msgstr "Mouvements en exception"
-msgctxt "field:sale.line,moves:0"
+msgctxt "field:sale.line,moves:"
msgid "Moves"
msgstr "Mouvements"
-msgctxt "field:sale.line,moves_ignored:0"
+msgctxt "field:sale.line,moves_ignored:"
msgid "Ignored Moves"
msgstr "Mouvements ignorés"
-msgctxt "field:sale.line,moves_recreated:0"
+msgctxt "field:sale.line,moves_recreated:"
msgid "Recreated Moves"
msgstr "Mouvements recréés"
-msgctxt "field:sale.line,note:0"
+msgctxt "field:sale.line,note:"
msgid "Note"
msgstr "Note"
-msgctxt "field:sale.line,product:0"
+msgctxt "field:sale.line,product:"
msgid "Product"
msgstr "Produit"
-msgctxt "field:sale.line,quantity:0"
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr "Catégorie d'unité de mesure"
+
+msgctxt "field:sale.line,quantity:"
msgid "Quantity"
msgstr "Quantité"
-msgctxt "field:sale.line,rec_name:0"
+msgctxt "field:sale.line,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.line,sale:0"
+msgctxt "field:sale.line,sale:"
msgid "Sale"
msgstr "Vente"
-msgctxt "field:sale.line,sequence:0"
+msgctxt "field:sale.line,sequence:"
msgid "Sequence"
msgstr "Séquence"
-msgctxt "field:sale.line,taxes:0"
+msgctxt "field:sale.line,taxes:"
msgid "Taxes"
msgstr "Taxes"
-msgctxt "field:sale.line,type:0"
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr "Emplacement de destination"
+
+msgctxt "field:sale.line,type:"
msgid "Type"
msgstr "Type"
-msgctxt "field:sale.line,unit:0"
+msgctxt "field:sale.line,unit:"
msgid "Unit"
msgstr "Unité"
-msgctxt "field:sale.line,unit_digits:0"
+msgctxt "field:sale.line,unit_digits:"
msgid "Unit Digits"
msgstr "Décimales de l'unité"
-msgctxt "field:sale.line,unit_price:0"
+msgctxt "field:sale.line,unit_price:"
msgid "Unit Price"
msgstr "Prix unitaire"
-msgctxt "field:sale.line-account.invoice.line,invoice_line:0"
-msgid "Invoice Line"
-msgstr "Ligne de facture"
-
-msgctxt "field:sale.line-account.invoice.line,rec_name:0"
-msgid "Name"
-msgstr "Nom"
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Entrepôt"
-msgctxt "field:sale.line-account.invoice.line,sale_line:0"
-msgid "Sale Line"
-msgstr "Ligne de vente"
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.line-account.tax,line:0"
+msgctxt "field:sale.line-account.tax,line:"
msgid "Sale Line"
msgstr "Ligne de vente"
-msgctxt "field:sale.line-account.tax,rec_name:0"
+msgctxt "field:sale.line-account.tax,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.line-account.tax,tax:0"
+msgctxt "field:sale.line-account.tax,tax:"
msgid "Tax"
msgstr "Taxe"
-msgctxt "field:sale.line-ignored-stock.move,move:0"
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
msgid "Move"
msgstr "Mouvement"
-msgctxt "field:sale.line-ignored-stock.move,rec_name:0"
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.line-ignored-stock.move,sale_line:0"
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Ligne de vente"
-msgctxt "field:sale.line-recreated-stock.move,move:0"
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
msgid "Move"
msgstr "Mouvement"
-msgctxt "field:sale.line-recreated-stock.move,rec_name:0"
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.line-recreated-stock.move,sale_line:0"
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Ligne de vente"
-msgctxt "field:sale.sale,comment:0"
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:sale.sale,comment:"
msgid "Comment"
msgstr "Commentaire"
-msgctxt "field:sale.sale,company:0"
+msgctxt "field:sale.sale,company:"
msgid "Company"
msgstr "Companie"
-msgctxt "field:sale.sale,currency:0"
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.sale,currency:"
msgid "Currency"
msgstr "Devise"
-msgctxt "field:sale.sale,currency_digits:0"
+msgctxt "field:sale.sale,currency_digits:"
msgid "Currency Digits"
msgstr "Décimales de la devise"
-msgctxt "field:sale.sale,description:0"
+msgctxt "field:sale.sale,description:"
msgid "Description"
msgstr "Description"
-msgctxt "field:sale.sale,invoice_address:0"
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale,invoice_address:"
msgid "Invoice Address"
msgstr "Adresse de facturation"
-msgctxt "field:sale.sale,invoice_exception:0"
-msgid "Invoices Exception"
-msgstr "Factures en exception"
-
-msgctxt "field:sale.sale,invoice_method:0"
+msgctxt "field:sale.sale,invoice_method:"
msgid "Invoice Method"
msgstr "Méthode de facturation"
-msgctxt "field:sale.sale,invoice_paid:0"
-msgid "Invoices Paid"
-msgstr "Factures payées"
-
-msgctxt "field:sale.sale,invoice_state:0"
+msgctxt "field:sale.sale,invoice_state:"
msgid "Invoice State"
msgstr "État de la factutre"
-msgctxt "field:sale.sale,invoices:0"
+msgctxt "field:sale.sale,invoices:"
msgid "Invoices"
msgstr "Factures"
-msgctxt "field:sale.sale,invoices_ignored:0"
+msgctxt "field:sale.sale,invoices_ignored:"
msgid "Ignored Invoices"
msgstr "Factures ignorées"
-msgctxt "field:sale.sale,invoices_recreated:0"
+msgctxt "field:sale.sale,invoices_recreated:"
msgid "Recreated Invoices"
msgstr "Factures recréées"
-msgctxt "field:sale.sale,lines:0"
+msgctxt "field:sale.sale,lines:"
msgid "Lines"
msgstr "Lignes"
-msgctxt "field:sale.sale,moves:0"
+msgctxt "field:sale.sale,moves:"
msgid "Moves"
msgstr "Mouvements"
-msgctxt "field:sale.sale,party:0"
+msgctxt "field:sale.sale,party:"
msgid "Party"
msgstr "Tiers"
-msgctxt "field:sale.sale,party_lang:0"
+msgctxt "field:sale.sale,party_lang:"
msgid "Party Language"
msgstr "Langue du tiers"
-msgctxt "field:sale.sale,payment_term:0"
+msgctxt "field:sale.sale,payment_term:"
msgid "Payment Term"
msgstr "Conditions de paiement"
-msgctxt "field:sale.sale,rec_name:0"
+msgctxt "field:sale.sale,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.sale,reference:0"
+msgctxt "field:sale.sale,reference:"
msgid "Reference"
msgstr "Référence"
-msgctxt "field:sale.sale,sale_date:0"
+msgctxt "field:sale.sale,sale_date:"
msgid "Sale Date"
msgstr "Date de la vente"
-msgctxt "field:sale.sale,shipment_address:0"
+msgctxt "field:sale.sale,shipment_address:"
msgid "Shipment Address"
msgstr "Adresse de livraison"
-msgctxt "field:sale.sale,shipment_done:0"
-msgid "Shipment Done"
-msgstr "Expédition effectuée"
-
-msgctxt "field:sale.sale,shipment_exception:0"
-msgid "Shipments Exception"
-msgstr "Expéditions en exception"
-
-msgctxt "field:sale.sale,shipment_method:0"
+msgctxt "field:sale.sale,shipment_method:"
msgid "Shipment Method"
msgstr "Méthode de livraison"
-msgctxt "field:sale.sale,shipment_state:0"
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr "Retours d'expédition"
+
+msgctxt "field:sale.sale,shipment_state:"
msgid "Shipment State"
msgstr "État de l'expédition"
-msgctxt "field:sale.sale,shipments:0"
+msgctxt "field:sale.sale,shipments:"
msgid "Shipments"
msgstr "Expédition"
-msgctxt "field:sale.sale,state:0"
+msgctxt "field:sale.sale,state:"
msgid "State"
msgstr "État"
-msgctxt "field:sale.sale,tax_amount:0"
+msgctxt "field:sale.sale,tax_amount:"
msgid "Tax"
-msgstr "Taxe"
+msgstr "Taxes"
+
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr "Cache des taxes"
-msgctxt "field:sale.sale,total_amount:0"
+msgctxt "field:sale.sale,total_amount:"
msgid "Total"
msgstr "Total"
-msgctxt "field:sale.sale,untaxed_amount:0"
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr "Total des taxes"
+
+msgctxt "field:sale.sale,untaxed_amount:"
msgid "Untaxed"
msgstr "Non-taxé"
-msgctxt "field:sale.sale,warehouse:0"
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr "Cache hors taxe"
+
+msgctxt "field:sale.sale,warehouse:"
msgid "Warehouse"
msgstr "Entrepôt"
-msgctxt "field:sale.sale-account.invoice,invoice:0"
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
msgid "Invoice"
msgstr "Facture"
-msgctxt "field:sale.sale-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-account.invoice,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.sale-account.invoice,sale:0"
+msgctxt "field:sale.sale-account.invoice,sale:"
msgid "Sale"
msgstr "Vente"
-msgctxt "field:sale.sale-ignored-account.invoice,invoice:0"
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
msgid "Invoice"
msgstr "Facture"
-msgctxt "field:sale.sale-ignored-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.sale-ignored-account.invoice,sale:0"
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
msgid "Sale"
msgstr "Vente"
-msgctxt "field:sale.sale-recreated-account.invoice,invoice:0"
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Date de création"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Créé par"
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
msgid "Invoice"
msgstr "Facture"
-msgctxt "field:sale.sale-recreated-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
msgid "Name"
msgstr "Nom"
-msgctxt "field:sale.sale-recreated-account.invoice,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
msgid "Sale"
msgstr "Vente"
-msgctxt "field:stock.move,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Date de mise à jour"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Mis à jour par"
+
+msgctxt "field:stock.move,sale:"
msgid "Sale"
msgstr "Vente"
-msgctxt "field:stock.move,sale_exception_state:0"
+msgctxt "field:stock.move,sale_exception_state:"
msgid "Exception State"
msgstr "État d'exception"
-msgctxt "field:stock.move,sale_line:0"
-msgid "Sale Line"
-msgstr "Ligne de vente"
-
-msgctxt "help:product.template,delivery_time:0"
+msgctxt "help:product.template,delivery_time:"
msgid "In number of days"
msgstr "En nombre de jours"
-msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid ""
"The selected invoices will be recreated. The other ones will be ignored."
msgstr ""
@@ -413,6 +631,10 @@
msgid "Parties associated to Sales"
msgstr "Tiers associés à des ventes"
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr "Retours"
+
msgctxt "model:ir.action,name:act_sale_configuration_form"
msgid "Sales Configuration"
msgstr "Configuration des ventes"
@@ -425,18 +647,6 @@
msgid "Sales"
msgstr "Ventes"
-msgctxt "model:ir.action,name:act_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Ventes confirmées"
-
-msgctxt "model:ir.action,name:act_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Ventes brouillon"
-
-msgctxt "model:ir.action,name:act_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Devis"
-
msgctxt "model:ir.action,name:act_shipment_form"
msgid "Shipments"
msgstr "Expéditions"
@@ -449,10 +659,37 @@
msgid "Handle Invoice Exception"
msgstr "Gérer l'exception de facture"
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr "Créer le retour de vente"
+
msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
msgid "Handle Shipment Exception"
msgstr "Gérer l'exception d'expédition"
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr "Toutes"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Confirmée"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Brouillon"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "Traitement"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Devis"
+
msgctxt "model:ir.sequence,name:sequence_sale"
msgid "Sale"
msgstr "Vente"
@@ -481,18 +718,6 @@
msgid "Sales"
msgstr "Ventes"
-msgctxt "model:ir.ui.menu,name:menu_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Ventes confirmées"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Ventes brouillons"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Devis"
-
msgctxt "model:res.group,name:group_sale"
msgid "Sales"
msgstr "Vente"
@@ -501,502 +726,642 @@
msgid "Sales Administrator"
msgstr "Administrateur des ventes"
-msgctxt "model:sale.configuration,name:0"
+msgctxt "model:sale.configuration,name:"
msgid "Sale Configuration"
msgstr "Configuration des ventes"
-msgctxt "model:sale.handle.invoice.exception.ask,name:0"
-msgid "Invoice Exception Ask"
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
msgstr "Exception de facture - Demande"
-msgctxt "model:sale.handle.shipment.exception.ask,name:0"
-msgid "Shipment Exception Ask"
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
msgstr "Exception d'expédition - Demande"
-msgctxt "model:sale.line,name:0"
+msgctxt "model:sale.line,name:"
msgid "Sale Line"
msgstr "Ligne de vente"
-msgctxt "model:sale.line-account.invoice.line,name:0"
-msgid "Sale Line - Invoice Line"
-msgstr "Ligne de vente - Ligne de facture"
-
-msgctxt "model:sale.line-account.tax,name:0"
+msgctxt "model:sale.line-account.tax,name:"
msgid "Sale Line - Tax"
msgstr "Ligne de vente - Taxe"
-msgctxt "model:sale.line-ignored-stock.move,name:0"
+msgctxt "model:sale.line-ignored-stock.move,name:"
msgid "Sale Line - Ignored Move"
msgstr "Ligne de vente - Mouvement ignoré"
-msgctxt "model:sale.line-recreated-stock.move,name:0"
+msgctxt "model:sale.line-recreated-stock.move,name:"
msgid "Sale Line - Recreated Move"
msgstr "Ligne de vente - Mouvement recréé"
-msgctxt "model:sale.sale,name:0"
+msgctxt "model:sale.sale,name:"
msgid "Sale"
msgstr "Vente"
-msgctxt "model:sale.sale-account.invoice,name:0"
+msgctxt "model:sale.sale-account.invoice,name:"
msgid "Sale - Invoice"
msgstr "Vente - Facture"
-msgctxt "model:sale.sale-ignored-account.invoice,name:0"
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
msgid "Sale - Ignored Invoice"
msgstr "Vente - Facture Ignorée"
-msgctxt "model:sale.sale-recreated-account.invoice,name:0"
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
msgid "Sale - Recreated Invoice"
msgstr "Vente - Facture recréée"
-msgctxt "model:workflow,name:sale_workflow"
-msgid "Sale workflow"
-msgstr "Workflow de vente"
-
-msgctxt "model:workflow.activity,name:sale_activity_cancel"
-msgid "Canceled"
-msgstr "Annulé"
-
-msgctxt "model:workflow.activity,name:sale_activity_confirmed"
-msgid "Confirmed"
-msgstr "Confirmé"
-
-msgctxt "model:workflow.activity,name:sale_activity_done"
-msgid "Done"
-msgstr "Fait"
-
-msgctxt "model:workflow.activity,name:sale_activity_draft"
-msgid "Draft"
-msgstr "Brouillon"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method"
-msgid "Invoice Method"
-msgstr "Méthode de facturation"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method_done"
-msgid "Invoice Method Done"
-msgstr "Méthode de facture faite"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_done"
-msgid "Invoice Done"
-msgstr "Facture faite"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_exception"
-msgid "Invoice Exception"
-msgstr "Facture en exception"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment"
-msgid "Invoice Shipment"
-msgstr "Facture expédition"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_done"
-msgid "Invoice Shipment Done"
-msgstr "Facture expédition faite"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_exception"
-msgid "Invoice Shipment Exception"
-msgstr "Facture expédition en exception"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_method"
-msgid "Invoice Shipment Method"
-msgstr "Méthode facture expédition"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_method_done"
-msgid "Invoice Shipment Method Done"
-msgstr "Méthode facture expédition faite"
-
-msgctxt "model:workflow.activity,name:sale_activity_quotation"
-msgid "Quotation"
-msgstr "Devis"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment"
-msgid "Shipment"
-msgstr "Expédition"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_exception"
-msgid "Shipment Exception"
-msgstr "Expédition en exception"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice"
-msgid "Shipment Invoice"
-msgstr "Facture expédition"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_done"
-msgid "Shipment Invoice Done"
-msgstr "Facture expédition faite"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_exception"
-msgid "Shipment Invoice Exception"
-msgstr "Facture expédition en exception"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_method"
-msgid "Shipment Invoice Method"
-msgstr "Méthode facture expédition"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_method_done"
-msgid "Shipment Invoice Method Done"
-msgstr "Méthode facture expédition faite"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method"
-msgid "Shipment Method"
-msgstr "Méthode d'expédition"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method_done"
-msgid "Shipment Method Done"
-msgstr "Méthode d'expédition faite"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_sale"
-msgid "Waiting Invoice"
-msgstr "Facture en attente"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_shipment"
-msgid "Waiting Invoice Shipment"
-msgstr "Facture expédition en attente"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment"
-msgid "Waiting Shipment"
-msgstr "Expédition en attente"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment_invoice"
-msgid "Waiting Shipment Invoice"
-msgstr "Facture expédition en attente"
+msgctxt "odt:sale.sale:"
+msgid "Amount"
+msgstr "Montant"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Amount"
msgstr "Montant"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Date:"
msgstr "Date :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Date:"
+msgstr "Date :"
+
+msgctxt "odt:sale.sale:"
+msgid "Description"
+msgstr "Description"
+
+msgctxt "odt:sale.sale:"
msgid "Description"
msgstr "Description"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Description:"
+msgstr "Description :"
+
+msgctxt "odt:sale.sale:"
msgid "Description:"
msgstr "Description :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Draft Sale Order"
msgstr "Bon de commande brouillon"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Draft Sale Order"
+msgstr "Bon de commande brouillon"
+
+msgctxt "odt:sale.sale:"
msgid "E-Mail:"
msgstr "E-Mail :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "E-Mail:"
+msgstr "E-Mail :"
+
+msgctxt "odt:sale.sale:"
msgid "Phone:"
msgstr "Téléphone :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Phone:"
+msgstr "Téléphone :"
+
+msgctxt "odt:sale.sale:"
+msgid "Quantity"
+msgstr "Quantité"
+
+msgctxt "odt:sale.sale:"
msgid "Quantity"
msgstr "Quantité"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quotation N°:"
msgstr "Devis N° :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Quotation N°:"
+msgstr "Devis N° :"
+
+msgctxt "odt:sale.sale:"
msgid "Sale Order N°:"
msgstr "Bon de commande N° :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Sale Order N°:"
+msgstr "Bon de commande N° :"
+
+msgctxt "odt:sale.sale:"
msgid "Taxes"
msgstr "Taxes"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Taxes"
+msgstr "Taxes"
+
+msgctxt "odt:sale.sale:"
+msgid "Taxes:"
+msgstr "Taxes :"
+
+msgctxt "odt:sale.sale:"
msgid "Taxes:"
msgstr "Taxes :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Total (excl. taxes):"
+msgstr "Total (HT) :"
+
+msgctxt "odt:sale.sale:"
msgid "Total (excl. taxes):"
msgstr "Total (HT) :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total:"
msgstr "Total :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "Total:"
+msgstr "Total :"
+
+msgctxt "odt:sale.sale:"
+msgid "Unit Price"
+msgstr "Prix unitaire"
+
+msgctxt "odt:sale.sale:"
msgid "Unit Price"
msgstr "Prix unitaire"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT Number:"
msgstr "Numéro TVA :"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
+msgid "VAT Number:"
+msgstr "Numéro TVA :"
+
+msgctxt "odt:sale.sale:"
+msgid "VAT:"
+msgstr "TVA :"
+
+msgctxt "odt:sale.sale:"
msgid "VAT:"
msgstr "TVA :"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Ignored"
msgstr "Ignoré"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid "Ignored"
+msgstr "Ignoré"
+
+msgctxt "selection:account.invoice,sale_exception_state:"
+msgid "Recreated"
+msgstr "Recréé"
+
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Recreated"
msgstr "Recréé"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "Manual"
msgstr "Manuel"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "À la confirmation"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "Manual"
+msgstr "Manuel"
+
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr "Sur traitement de l'ordre"
+
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Shipment Sent"
+msgstr "À la livraison"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "On Shipment Sent"
msgstr "À la livraison"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "Manual"
msgstr "Manuel"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "Manual"
+msgstr "Manuel"
+
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "On Invoice Paid"
msgstr "Au paiement"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "À la confirmation"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Invoice Paid"
+msgstr "Au paiement"
+
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr "Sur traitement de l'ordre"
+
+msgctxt "selection:sale.line,type:"
+msgid "Comment"
+msgstr "Commentaire"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Comment"
msgstr "Commentaire"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Line"
msgstr "Ligne"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
+msgid "Line"
+msgstr "Ligne"
+
+msgctxt "selection:sale.line,type:"
+msgid "Subtotal"
+msgstr "Sous-total"
+
+msgctxt "selection:sale.line,type:"
msgid "Subtotal"
msgstr "Sous-total"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Title"
msgstr "Titre"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.line,type:"
+msgid "Title"
+msgstr "Titre"
+
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "Manual"
+msgstr "Manuel"
+
+msgctxt "selection:sale.sale,invoice_method:"
msgid "Manual"
msgstr "Manuel"
-msgctxt "selection:sale.sale,invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "A la confirmation"
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr "Sur traitement de l'ordre"
+
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Shipment Sent"
+msgstr "À la livraison"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "On Shipment Sent"
msgstr "À la livraison"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Exception"
msgstr "Exception"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Exception"
+msgstr "Exception"
+
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "None"
+msgstr "Aucun"
+
+msgctxt "selection:sale.sale,invoice_state:"
msgid "None"
msgstr "Aucun"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Paid"
msgstr "Payé"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Paid"
+msgstr "Payé"
+
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Waiting"
msgstr "En attente"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,invoice_state:"
+msgid "Waiting"
+msgstr "En attente"
+
+msgctxt "selection:sale.sale,shipment_method:"
msgid "Manual"
msgstr "Manuel"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "Manual"
+msgstr "Manuel"
+
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Invoice Paid"
+msgstr "Au paiement"
+
+msgctxt "selection:sale.sale,shipment_method:"
msgid "On Invoice Paid"
msgstr "Au paiement"
-msgctxt "selection:sale.sale,shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "À la confirmation"
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr "Sur traitement de l'ordre"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Exception"
+msgstr "Exception"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Exception"
msgstr "Exception"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "None"
msgstr "Aucun"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "None"
+msgstr "Aucun"
+
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Sent"
+msgstr "Envoyé"
+
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Sent"
msgstr "Envoyé"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Waiting"
msgstr "En attente"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,shipment_state:"
+msgid "Waiting"
+msgstr "En attente"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Canceled"
+msgstr "Annulé"
+
+msgctxt "selection:sale.sale,state:"
msgid "Canceled"
msgstr "Annulé"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Confirmed"
+msgstr "Confirmé"
+
+msgctxt "selection:sale.sale,state:"
msgid "Confirmed"
msgstr "Confirmé"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Done"
msgstr "Fait"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Done"
+msgstr "Fait"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Draft"
+msgstr "Brouillon"
+
+msgctxt "selection:sale.sale,state:"
msgid "Draft"
msgstr "Brouillon"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "Traitement"
+
+msgctxt "selection:sale.sale,state:"
+msgid "Quotation"
+msgstr "Devis"
+
+msgctxt "selection:sale.sale,state:"
msgid "Quotation"
msgstr "Devis"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid ""
+msgstr ""
+
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid "Ignored"
+msgstr "Ignoré"
+
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Ignored"
msgstr "Ignoré"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Recreated"
msgstr "Recréé"
-msgctxt "view:product.product:0"
+msgctxt "selection:stock.move,sale_exception_state:"
+msgid "Recreated"
+msgstr "Recréé"
+
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "produits"
+
+msgctxt "view:product.template:"
msgid "Customers"
msgstr "Clients"
-msgctxt "view:product.template:0"
+msgctxt "view:product.template:"
msgid "Customers"
msgstr "Clients"
-msgctxt "view:sale.configuration:0"
+msgctxt "view:sale.configuration:"
msgid "Sale Configuration"
msgstr "Configuration des ventes"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.configuration:"
+msgid "Sale Configuration"
+msgstr "Configuration des ventes"
+
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Choose invoices to recreate"
msgstr "Choisir les factures à recréer"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
+msgid "Choose invoices to recreate"
+msgstr "Choisir les factures à recréer"
+
+msgctxt "view:sale.handle.invoice.exception.ask:"
+msgid "Handle Invoice Exception"
+msgstr "Gérer l'exception de facture"
+
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Handle Invoice Exception"
msgstr "Gérer l'exception de facture"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Choose move to recreate"
msgstr "Choisir le mouvement à recréer"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
+msgid "Choose move to recreate"
+msgstr "Choisir le mouvement à recréer"
+
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Handle shipment Exception"
msgstr "Gérer l'exception d'expédition"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Recreate Moves"
-msgstr "Recréer les mouvements"
+msgctxt "view:sale.handle.shipment.exception.ask:"
+msgid "Handle shipment Exception"
+msgstr "Gérer l'exception d'expédition"
+
+msgctxt "view:sale.line:"
+msgid "General"
+msgstr "Général"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "General"
msgstr "Général"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Notes"
msgstr "Notes"
-msgctxt "view:sale.line:0"
-msgid "Products"
-msgstr "produits"
+msgctxt "view:sale.line:"
+msgid "Notes"
+msgstr "Notes"
+
+msgctxt "view:sale.line:"
+msgid "Sale Line"
+msgstr "Ligne de vente"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Line"
msgstr "Ligne de vente"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
+msgid "Sale Lines"
+msgstr "Lignes de vente"
+
+msgctxt "view:sale.line:"
msgid "Sale Lines"
msgstr "Lignes de vente"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Cancel"
msgstr "Annuler"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
+msgid "Cancel"
+msgstr "Annuler"
+
+msgctxt "view:sale.sale:"
+msgid "Confirm"
+msgstr "Confirmer"
+
+msgctxt "view:sale.sale:"
msgid "Confirm"
msgstr "Confirmer"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Draft"
msgstr "Brouillon"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
+msgid "Draft"
+msgstr "Brouillon"
+
+msgctxt "view:sale.sale:"
+msgid "Handle Invoice Exception"
+msgstr "Gérer l'exception de facture"
+
+msgctxt "view:sale.sale:"
msgid "Handle Invoice Exception"
msgstr "Gérer l'exception de facture"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Shipment Exception"
msgstr "Gérer l'exception d'expédition"
-msgctxt "view:sale.sale:0"
-msgid "Ignore Invoice Exception"
-msgstr "Ignorer l'exception de facturation "
-
-msgctxt "view:sale.sale:0"
-msgid "Ignore Shipment Exception"
-msgstr "Ignorer l'exception de livraison"
+msgctxt "view:sale.sale:"
+msgid "Handle Shipment Exception"
+msgstr "Gérer l'exception d'expédition"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Invoices"
msgstr "Factures"
-msgctxt "view:sale.sale:0"
-msgid "Lines"
-msgstr "Lignes"
+msgctxt "view:sale.sale:"
+msgid "Invoices"
+msgstr "Factures"
-msgctxt "view:sale.sale:0"
-msgid "Moves"
-msgstr "Mouvements"
+msgctxt "view:sale.sale:"
+msgid "Other Info"
+msgstr "Autre information"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Other Info"
msgstr "Autre information"
-msgctxt "view:sale.sale:0"
-msgid "Quotation"
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr "Traitement"
+
+msgctxt "view:sale.sale:"
+msgid "Quote"
msgstr "Devis"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
+msgid "Sale"
+msgstr "Vente"
+
+msgctxt "view:sale.sale:"
msgid "Sale"
msgstr "Vente"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sales"
msgstr "Ventes"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
+msgid "Sales"
+msgstr "Ventes"
+
+msgctxt "view:sale.sale:"
+msgid "Shipments"
+msgstr "Expéditions"
+
+msgctxt "view:sale.sale:"
msgid "Shipments"
msgstr "Expéditions"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,end:0"
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Mouvements"
+
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
msgid "Cancel"
msgstr "Annuler"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
msgid "Ok"
msgstr "Ok"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
msgid "Cancel"
msgstr "Annuler"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
msgid "Ok"
msgstr "Ok"
diff -Nru tryton-modules-sale-2.2.2/locale/nl_NL.po tryton-modules-sale-2.8.0/locale/nl_NL.po
--- tryton-modules-sale-2.2.2/locale/nl_NL.po 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/nl_NL.po 2013-04-21 14:18:11.000000000 +0000
@@ -2,407 +2,611 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:account.invoice:0"
-msgid "You can not delete invoices that come from a sale!"
-msgstr "U kunt geen facturen verwijderen die uit verkoop voortkomen!"
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr ""
-msgctxt "error:account.invoice:0"
+msgctxt "error:account.invoice:"
msgid "You cannot reset to draft an invoice generated by a sale."
msgstr ""
"U kunt een factuur die uit verkoop voortkomt niet terug zetten naar concept."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"Account Revenue\" on product \"%s\"!"
-msgstr "Grootboekrekening \"Opbrengst\" ontbreekt voor product \"%s\"!"
-
-msgctxt "error:sale.line:0"
-msgid "It misses an \"account Revenue\" default property!"
-msgstr "De standaard grootboekrekening \"Opbrengst\" ontbreekt!"
-
-msgctxt "error:sale.line:0"
-msgid "The customer location is required!"
-msgstr "De afleverlocatie is vereist!"
-
-msgctxt "error:sale.sale:0"
-msgid "Invoice and Shipment addresses must be defined for the quotation."
-msgstr "Factuur- en afleveradres moeten gedefinieerd zijn voor de offerte."
-
-msgctxt "error:sale.sale:0"
-msgid "It misses an \"Account Receivable\" on the party \"%s\"!"
-msgstr "Grootboekrekening \"Debiteuren\" ontbreekt voor relatie \"%s\"!"
-
-msgctxt "error:sale.sale:0"
-msgid "Wrong combination of method!"
-msgstr "Verkeerde combinatie van afhandeling!"
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr ""
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
+msgstr ""
+
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr ""
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr ""
+
+#, fuzzy
+msgctxt "error:stock.shipment.out.return:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr ""
+"U kunt een boeking die uit verkoop voortkomt niet terug zetten naar concept."
-msgctxt "error:stock.shipment.out:0"
+msgctxt "error:stock.shipment.out:"
msgid "You cannot reset to draft a move generated by a sale."
msgstr ""
"U kunt een boeking die uit verkoop voortkomt niet terug zetten naar concept."
-msgctxt "field:account.invoice,sale_exception_state:0"
+msgctxt "field:account.invoice,sale_exception_state:"
msgid "Exception State"
msgstr "Uitzonderingstoestand"
#, fuzzy
-msgctxt "field:account.invoice,sales:0"
+msgctxt "field:account.invoice,sales:"
msgid "Sales"
msgstr "Verkoopbeheer"
-#, fuzzy
-msgctxt "field:account.invoice.line,sale_lines:0"
-msgid "Sale Lines"
-msgstr "Offerteregels"
-
-msgctxt "field:product.template,delivery_time:0"
+msgctxt "field:product.template,delivery_time:"
msgid "Delivery Time"
msgstr ""
-msgctxt "field:product.template,salable:0"
+msgctxt "field:product.template,salable:"
msgid "Salable"
msgstr "Verkoopbaar"
-msgctxt "field:product.template,sale_uom:0"
+msgctxt "field:product.template,sale_uom:"
msgid "Sale UOM"
msgstr "Maateenheid verkoop"
-msgctxt "field:sale.configuration,rec_name:0"
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.configuration,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.configuration,sale_invoice_method:0"
+msgctxt "field:sale.configuration,sale_invoice_method:"
msgid "Sale Invoice Method"
msgstr ""
-msgctxt "field:sale.configuration,sale_sequence:0"
+msgctxt "field:sale.configuration,sale_sequence:"
msgid "Sale Reference Sequence"
msgstr "Verkoopkenmerkreeks"
-msgctxt "field:sale.configuration,sale_shipment_method:0"
+msgctxt "field:sale.configuration,sale_shipment_method:"
msgid "Sale Shipment Method"
msgstr ""
-msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:0"
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
msgid "Domain Invoices"
msgstr "Domein facturen"
-msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid "Recreate Invoices"
msgstr "Facturen opnieuw aanmaken"
-msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
msgid "Domain Moves"
msgstr "Domein boekingen"
-msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
msgid "Recreate Moves"
msgstr "Boekingen opnieuw aanmaken"
-msgctxt "field:sale.line,amount:0"
+msgctxt "field:sale.line,amount:"
msgid "Amount"
msgstr "Bedrag"
-msgctxt "field:sale.line,description:0"
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr ""
+
+msgctxt "field:sale.line,description:"
msgid "Description"
msgstr "Specificatie"
-msgctxt "field:sale.line,invoice_lines:0"
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr ""
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.line,invoice_lines:"
msgid "Invoice Lines"
msgstr "Factuurregels"
-msgctxt "field:sale.line,move_done:0"
+msgctxt "field:sale.line,move_done:"
msgid "Moves Done"
msgstr "Boekingen klaar"
-msgctxt "field:sale.line,move_exception:0"
+msgctxt "field:sale.line,move_exception:"
msgid "Moves Exception"
msgstr "Boekingen uitzondering"
-msgctxt "field:sale.line,moves:0"
+msgctxt "field:sale.line,moves:"
msgid "Moves"
msgstr "Boekingen"
-msgctxt "field:sale.line,moves_ignored:0"
+msgctxt "field:sale.line,moves_ignored:"
msgid "Ignored Moves"
msgstr "Genegeerde boekingen"
-msgctxt "field:sale.line,moves_recreated:0"
+msgctxt "field:sale.line,moves_recreated:"
msgid "Recreated Moves"
msgstr "Opnieuw aangemaakte boekingen"
-msgctxt "field:sale.line,note:0"
+msgctxt "field:sale.line,note:"
msgid "Note"
msgstr "Aantekening"
-msgctxt "field:sale.line,product:0"
+msgctxt "field:sale.line,product:"
msgid "Product"
msgstr "Product"
-msgctxt "field:sale.line,quantity:0"
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr ""
+
+msgctxt "field:sale.line,quantity:"
msgid "Quantity"
msgstr "Hoeveelheid"
-msgctxt "field:sale.line,rec_name:0"
+msgctxt "field:sale.line,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.line,sale:0"
+msgctxt "field:sale.line,sale:"
msgid "Sale"
msgstr "Verkoop"
-msgctxt "field:sale.line,sequence:0"
+msgctxt "field:sale.line,sequence:"
msgid "Sequence"
msgstr "Reeks"
-msgctxt "field:sale.line,taxes:0"
+msgctxt "field:sale.line,taxes:"
msgid "Taxes"
msgstr "Belastingen"
-msgctxt "field:sale.line,type:0"
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr ""
+
+msgctxt "field:sale.line,type:"
msgid "Type"
msgstr "Type"
-msgctxt "field:sale.line,unit:0"
+msgctxt "field:sale.line,unit:"
msgid "Unit"
msgstr "Eenheid"
-msgctxt "field:sale.line,unit_digits:0"
+msgctxt "field:sale.line,unit_digits:"
msgid "Unit Digits"
msgstr "Decimalen eenheid"
-msgctxt "field:sale.line,unit_price:0"
+msgctxt "field:sale.line,unit_price:"
msgid "Unit Price"
msgstr "Eenheidsprijs"
-msgctxt "field:sale.line-account.invoice.line,invoice_line:0"
-msgid "Invoice Line"
-msgstr "Factuurregel"
+#, fuzzy
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Magazijn"
-msgctxt "field:sale.line-account.invoice.line,rec_name:0"
-msgid "Name"
-msgstr "Naam"
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr ""
-msgctxt "field:sale.line-account.invoice.line,sale_line:0"
-msgid "Sale Line"
-msgstr "Offerteregel"
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr ""
-msgctxt "field:sale.line-account.tax,line:0"
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.line-account.tax,line:"
msgid "Sale Line"
msgstr "Offerteregel"
-msgctxt "field:sale.line-account.tax,rec_name:0"
+msgctxt "field:sale.line-account.tax,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.line-account.tax,tax:0"
+msgctxt "field:sale.line-account.tax,tax:"
msgid "Tax"
msgstr "Belasting"
-msgctxt "field:sale.line-ignored-stock.move,move:0"
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
msgid "Move"
msgstr "Boeking"
-msgctxt "field:sale.line-ignored-stock.move,rec_name:0"
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.line-ignored-stock.move,sale_line:0"
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Offerteregel"
-msgctxt "field:sale.line-recreated-stock.move,move:0"
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
msgid "Move"
msgstr "Boeking"
-msgctxt "field:sale.line-recreated-stock.move,rec_name:0"
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.line-recreated-stock.move,sale_line:0"
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
msgid "Sale Line"
msgstr "Offerteregel"
-msgctxt "field:sale.sale,comment:0"
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.sale,comment:"
msgid "Comment"
msgstr "Opmerking"
-msgctxt "field:sale.sale,company:0"
+msgctxt "field:sale.sale,company:"
msgid "Company"
msgstr "Bedrijf"
-msgctxt "field:sale.sale,currency:0"
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.sale,currency:"
msgid "Currency"
msgstr "Valuta"
-msgctxt "field:sale.sale,currency_digits:0"
+msgctxt "field:sale.sale,currency_digits:"
msgid "Currency Digits"
msgstr "Valuta decimalen"
-msgctxt "field:sale.sale,description:0"
+msgctxt "field:sale.sale,description:"
msgid "Description"
msgstr "Specificatie"
-msgctxt "field:sale.sale,invoice_address:0"
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.sale,invoice_address:"
msgid "Invoice Address"
msgstr "Factuuradres"
-msgctxt "field:sale.sale,invoice_exception:0"
-msgid "Invoices Exception"
-msgstr "Facturen uitzondering"
-
-msgctxt "field:sale.sale,invoice_method:0"
+msgctxt "field:sale.sale,invoice_method:"
msgid "Invoice Method"
msgstr "Factuur afhandeling"
-msgctxt "field:sale.sale,invoice_paid:0"
-msgid "Invoices Paid"
-msgstr "Facturen betaald"
-
-msgctxt "field:sale.sale,invoice_state:0"
+msgctxt "field:sale.sale,invoice_state:"
msgid "Invoice State"
msgstr "Factuur status"
-msgctxt "field:sale.sale,invoices:0"
+msgctxt "field:sale.sale,invoices:"
msgid "Invoices"
msgstr "Facturen"
-msgctxt "field:sale.sale,invoices_ignored:0"
+msgctxt "field:sale.sale,invoices_ignored:"
msgid "Ignored Invoices"
msgstr "Genegeerde facturen"
-msgctxt "field:sale.sale,invoices_recreated:0"
+msgctxt "field:sale.sale,invoices_recreated:"
msgid "Recreated Invoices"
msgstr "Opnieuw aangemaakte facturen"
-msgctxt "field:sale.sale,lines:0"
+msgctxt "field:sale.sale,lines:"
msgid "Lines"
msgstr "Regels"
-msgctxt "field:sale.sale,moves:0"
+msgctxt "field:sale.sale,moves:"
msgid "Moves"
msgstr "Boekingen"
-msgctxt "field:sale.sale,party:0"
+msgctxt "field:sale.sale,party:"
msgid "Party"
msgstr "Relatie"
-msgctxt "field:sale.sale,party_lang:0"
+msgctxt "field:sale.sale,party_lang:"
msgid "Party Language"
msgstr "Taal relatie"
-msgctxt "field:sale.sale,payment_term:0"
+msgctxt "field:sale.sale,payment_term:"
msgid "Payment Term"
msgstr "Betalingstermijn"
-msgctxt "field:sale.sale,rec_name:0"
+msgctxt "field:sale.sale,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.sale,reference:0"
+msgctxt "field:sale.sale,reference:"
msgid "Reference"
msgstr "Referentie"
-msgctxt "field:sale.sale,sale_date:0"
+msgctxt "field:sale.sale,sale_date:"
msgid "Sale Date"
msgstr "Verkoopdatum"
-msgctxt "field:sale.sale,shipment_address:0"
+msgctxt "field:sale.sale,shipment_address:"
msgid "Shipment Address"
msgstr "Afleveradres"
-msgctxt "field:sale.sale,shipment_done:0"
-msgid "Shipment Done"
-msgstr "Afgeleverd"
-
-msgctxt "field:sale.sale,shipment_exception:0"
-msgid "Shipments Exception"
-msgstr "Leveringen uitzonderingen"
-
-msgctxt "field:sale.sale,shipment_method:0"
+msgctxt "field:sale.sale,shipment_method:"
msgid "Shipment Method"
msgstr "Levering afhandeling"
-msgctxt "field:sale.sale,shipment_state:0"
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr ""
+
+msgctxt "field:sale.sale,shipment_state:"
msgid "Shipment State"
msgstr "Levering status"
-msgctxt "field:sale.sale,shipments:0"
+msgctxt "field:sale.sale,shipments:"
msgid "Shipments"
msgstr "Leveringen"
-msgctxt "field:sale.sale,state:0"
+msgctxt "field:sale.sale,state:"
msgid "State"
msgstr "Status"
-msgctxt "field:sale.sale,tax_amount:0"
+msgctxt "field:sale.sale,tax_amount:"
msgid "Tax"
msgstr "Belasting"
-msgctxt "field:sale.sale,total_amount:0"
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr ""
+
+msgctxt "field:sale.sale,total_amount:"
msgid "Total"
msgstr "Totaal"
-msgctxt "field:sale.sale,untaxed_amount:0"
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr ""
+
+msgctxt "field:sale.sale,untaxed_amount:"
msgid "Untaxed"
msgstr "Onbelast"
-msgctxt "field:sale.sale,warehouse:0"
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr ""
+
+msgctxt "field:sale.sale,warehouse:"
msgid "Warehouse"
msgstr "Magazijn"
-msgctxt "field:sale.sale-account.invoice,invoice:0"
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factuur"
-msgctxt "field:sale.sale-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-account.invoice,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.sale-account.invoice,sale:0"
+msgctxt "field:sale.sale-account.invoice,sale:"
msgid "Sale"
msgstr "Verkoop"
-msgctxt "field:sale.sale-ignored-account.invoice,invoice:0"
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factuur"
-msgctxt "field:sale.sale-ignored-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.sale-ignored-account.invoice,sale:0"
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
msgid "Sale"
msgstr "Verkoop"
-msgctxt "field:sale.sale-recreated-account.invoice,invoice:0"
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
msgid "Invoice"
msgstr "Factuur"
-msgctxt "field:sale.sale-recreated-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
msgid "Name"
msgstr "Naam"
-msgctxt "field:sale.sale-recreated-account.invoice,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
msgid "Sale"
msgstr "Verkoop"
-msgctxt "field:stock.move,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr ""
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr ""
+
+msgctxt "field:stock.move,sale:"
msgid "Sale"
msgstr "Verkoop"
-msgctxt "field:stock.move,sale_exception_state:0"
+msgctxt "field:stock.move,sale_exception_state:"
msgid "Exception State"
msgstr "Uitzonderingstoestand"
-msgctxt "field:stock.move,sale_line:0"
-msgid "Sale Line"
-msgstr "Offerteregel"
-
-msgctxt "help:product.template,delivery_time:0"
+msgctxt "help:product.template,delivery_time:"
msgid "In number of days"
msgstr ""
-msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid ""
"The selected invoices will be recreated. The other ones will be ignored."
msgstr ""
@@ -417,6 +621,10 @@
msgid "Parties associated to Sales"
msgstr "Klanten"
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr ""
+
#, fuzzy
msgctxt "model:ir.action,name:act_sale_configuration_form"
msgid "Sales Configuration"
@@ -430,18 +638,6 @@
msgid "Sales"
msgstr "Verkoop"
-msgctxt "model:ir.action,name:act_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Bevestigde offertes"
-
-msgctxt "model:ir.action,name:act_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Concept offertes"
-
-msgctxt "model:ir.action,name:act_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Uitstaande offertes"
-
msgctxt "model:ir.action,name:act_shipment_form"
msgid "Shipments"
msgstr "Leveringen"
@@ -454,10 +650,41 @@
msgid "Handle Invoice Exception"
msgstr "Factuuruitzondering afhandelen"
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr ""
+
msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
msgid "Handle Shipment Exception"
msgstr "Zendinguitzondering afhandelen"
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr ""
+
+#, fuzzy
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Bevestigd"
+
+#, fuzzy
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Concept"
+
+#, fuzzy
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "Verwerking"
+
+#, fuzzy
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Offerte"
+
msgctxt "model:ir.sequence,name:sequence_sale"
msgid "Sale"
msgstr "Verkoop"
@@ -488,18 +715,6 @@
msgid "Sales"
msgstr "Verkoop"
-msgctxt "model:ir.ui.menu,name:menu_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr "Bevestigde offertes"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_draft"
-msgid "Draft Sales"
-msgstr "Concept offertes"
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr "Uitstaande offertes"
-
#, fuzzy
msgctxt "model:res.group,name:group_sale"
msgid "Sales"
@@ -510,510 +725,397 @@
msgid "Sales Administrator"
msgstr "Verkoop beheerder"
-msgctxt "model:sale.configuration,name:0"
+msgctxt "model:sale.configuration,name:"
msgid "Sale Configuration"
msgstr "Verkoop instellingen"
-msgctxt "model:sale.handle.invoice.exception.ask,name:0"
-msgid "Invoice Exception Ask"
+#, fuzzy
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
msgstr "Factuur uitzondering vragen"
-msgctxt "model:sale.handle.shipment.exception.ask,name:0"
-msgid "Shipment Exception Ask"
+#, fuzzy
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
msgstr "Afleveren uitzondering vragen"
-msgctxt "model:sale.line,name:0"
+msgctxt "model:sale.line,name:"
msgid "Sale Line"
msgstr "Offerteregel"
-msgctxt "model:sale.line-account.invoice.line,name:0"
-msgid "Sale Line - Invoice Line"
-msgstr "Offerteregel - factuurregel"
-
-msgctxt "model:sale.line-account.tax,name:0"
+msgctxt "model:sale.line-account.tax,name:"
msgid "Sale Line - Tax"
msgstr "Offerteregel - belasting"
-msgctxt "model:sale.line-ignored-stock.move,name:0"
+msgctxt "model:sale.line-ignored-stock.move,name:"
msgid "Sale Line - Ignored Move"
msgstr "Offerteregel - genegeerde boeking"
-msgctxt "model:sale.line-recreated-stock.move,name:0"
+msgctxt "model:sale.line-recreated-stock.move,name:"
msgid "Sale Line - Recreated Move"
msgstr "Offerteregel - boeking opnieuw aanmaken"
-msgctxt "model:sale.sale,name:0"
+msgctxt "model:sale.sale,name:"
msgid "Sale"
msgstr "Verkoop"
-msgctxt "model:sale.sale-account.invoice,name:0"
+msgctxt "model:sale.sale-account.invoice,name:"
msgid "Sale - Invoice"
msgstr "Verkoop - factuur"
-msgctxt "model:sale.sale-ignored-account.invoice,name:0"
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
msgid "Sale - Ignored Invoice"
msgstr "Verkoop - genereerde factuur"
-msgctxt "model:sale.sale-recreated-account.invoice,name:0"
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
msgid "Sale - Recreated Invoice"
msgstr "Verkoop - factuur opnieuw aanmaken"
-msgctxt "model:workflow,name:sale_workflow"
-msgid "Sale workflow"
-msgstr "Sjaboon verkoop"
-
-msgctxt "model:workflow.activity,name:sale_activity_cancel"
-msgid "Canceled"
-msgstr "Geannuleerd"
-
-msgctxt "model:workflow.activity,name:sale_activity_confirmed"
-msgid "Confirmed"
-msgstr "Bevestigd"
-
-msgctxt "model:workflow.activity,name:sale_activity_done"
-msgid "Done"
-msgstr "Klaar"
-
-msgctxt "model:workflow.activity,name:sale_activity_draft"
-msgid "Draft"
-msgstr "Concept"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method"
-msgid "Invoice Method"
-msgstr "Factuur afhandeling"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method_done"
-msgid "Invoice Method Done"
-msgstr "Factuur afhandeling klaar"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_done"
-msgid "Invoice Done"
-msgstr "Factuur klaar"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_exception"
-msgid "Invoice Exception"
-msgstr "Factuur uitzondering"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment"
-msgid "Invoice Shipment"
-msgstr "Factuur zending"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_done"
-msgid "Invoice Shipment Done"
-msgstr "Factuur zending klaar"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_exception"
-msgid "Invoice Shipment Exception"
-msgstr "Factuur zending uitzondering"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_method"
-msgid "Invoice Shipment Method"
-msgstr "Factuur zending afhandeling"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_method_done"
-msgid "Invoice Shipment Method Done"
-msgstr "Factuur zending afhandeling klaar"
-
-msgctxt "model:workflow.activity,name:sale_activity_quotation"
-msgid "Quotation"
-msgstr "Offerte"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment"
-msgid "Shipment"
-msgstr "Afleveren"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_exception"
-msgid "Shipment Exception"
-msgstr "Afleveren uitzondering"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice"
-msgid "Shipment Invoice"
-msgstr "Afleverfactuur"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_done"
-msgid "Shipment Invoice Done"
-msgstr "Afleverfactuur klaar"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_exception"
-msgid "Shipment Invoice Exception"
-msgstr "Afleverfactuur uitzondering"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_method"
-msgid "Shipment Invoice Method"
-msgstr "Afleverfactuur afhandeling"
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_method_done"
-msgid "Shipment Invoice Method Done"
-msgstr "Afleverfactuur afhandeling klaar"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method"
-msgid "Shipment Method"
-msgstr "Levering afhandeling"
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method_done"
-msgid "Shipment Method Done"
-msgstr "Levering afhandeling klaar"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_sale"
-msgid "Waiting Invoice"
-msgstr "Wacht op factuur"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_shipment"
-msgid "Waiting Invoice Shipment"
-msgstr "Wacht op factuur levering"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment"
-msgid "Waiting Shipment"
-msgstr "Wacht op aflevering"
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment_invoice"
-msgid "Waiting Shipment Invoice"
-msgstr "Wacht op afleverfactuur"
-
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Amount"
msgstr "Bedrag"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Date:"
msgstr "Datum:"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description"
msgstr "Specificatie"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description:"
msgstr "Betreft:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Draft Sale Order"
msgstr ""
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "E-Mail:"
msgstr "E-mail:"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Phone:"
msgstr "Telefoon:"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quantity"
msgstr "Hoeveelheid"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quotation N°:"
msgstr ""
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Sale Order N°:"
msgstr ""
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes"
msgstr "Belastingen"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes:"
msgstr "Belastingen:"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total (excl. taxes):"
msgstr "Totaal (excl. belasting):"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total:"
msgstr "Totaal:"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Unit Price"
msgstr "Eenheidsprijs"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT Number:"
msgstr "BTW-nummer:"
#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT:"
msgstr "BTW:"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Ignored"
msgstr "Genegeerd"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Recreated"
msgstr "Opnieuw aangemaakt"
#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "Manual"
msgstr "Handmatig"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "Na opdrachtbevestiging"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr ""
#, fuzzy
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "On Shipment Sent"
msgstr "Na verzending"
#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "Manual"
msgstr "Handmatig"
#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "On Invoice Paid"
msgstr "Na factuur betaald"
-#, fuzzy
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "Na opdrachtbevestiging"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr ""
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Comment"
msgstr "Opmerking"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Line"
msgstr "Regel"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Subtotal"
msgstr "Subtotaal"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Title"
msgstr "Titel"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "Manual"
msgstr "Handmatig"
-msgctxt "selection:sale.sale,invoice_method:0"
-msgid "On Order Confirmed"
-msgstr "Na opdrachtbevestiging"
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr ""
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "On Shipment Sent"
msgstr "Na verzending"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Exception"
msgstr "Uitzondering"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "None"
msgstr "Geen"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Paid"
msgstr "Betaald"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Waiting"
msgstr "In afwachting"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "Manual"
msgstr "Handmatig"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "On Invoice Paid"
msgstr "Na factuur betaald"
-msgctxt "selection:sale.sale,shipment_method:0"
-msgid "On Order Confirmed"
-msgstr "Na opdrachtbevestiging"
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr ""
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Exception"
msgstr "Uitzondering"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "None"
msgstr "Geen"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Sent"
msgstr "Verzonden"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Waiting"
msgstr "In afwachting"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Canceled"
msgstr "Geannuleerd"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Confirmed"
msgstr "Bevestigd"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Done"
msgstr "Klaar"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Draft"
msgstr "Concept"
-msgctxt "selection:sale.sale,state:0"
+#, fuzzy
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "Verwerking"
+
+msgctxt "selection:sale.sale,state:"
msgid "Quotation"
msgstr "Offerte"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid ""
msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Ignored"
msgstr "Genegeerd"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Recreated"
msgstr "Opnieuw aangemaakt"
-msgctxt "view:product.template:0"
+#, fuzzy
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "Producten"
+
+msgctxt "view:product.template:"
msgid "Customers"
msgstr "Klanten"
-msgctxt "view:sale.configuration:0"
+msgctxt "view:sale.configuration:"
msgid "Sale Configuration"
msgstr "Verkoop instellingen"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Choose invoices to recreate"
msgstr "Kies facturen om opnieuw aan te maken"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Handle Invoice Exception"
msgstr "Factuuruitzondering afhandelen"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Choose move to recreate"
msgstr "Kies boeking om opnieuw aan te maken"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Handle shipment Exception"
msgstr "Zendinguitzondering afhandelen"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Recreate Moves"
-msgstr "Boekingen opnieuw aanmaken"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "General"
msgstr "Algemeen"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Notes"
msgstr "Aantekeningen"
-msgctxt "view:sale.line:0"
-msgid "Products"
-msgstr "Producten"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Line"
msgstr "Offerteregel"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Lines"
msgstr "Offerteregels"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Cancel"
msgstr "Annuleren"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Confirm"
msgstr "Bevestig"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Draft"
msgstr "Concept"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Invoice Exception"
msgstr "Factuuruitzondering afhandelen"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Shipment Exception"
msgstr "Zendinguitzondering afhandelen"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Invoices"
msgstr "Facturen"
-msgctxt "view:sale.sale:0"
-msgid "Lines"
-msgstr "Regels"
-
-msgctxt "view:sale.sale:0"
-msgid "Moves"
-msgstr "Boekingen"
-
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Other Info"
msgstr "Aanvullende informatie"
-msgctxt "view:sale.sale:0"
-msgid "Quotation"
-msgstr "Offerte"
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr ""
+
+msgctxt "view:sale.sale:"
+msgid "Quote"
+msgstr ""
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sale"
msgstr "Verkoop"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sales"
msgstr "Verkoop"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Shipments"
msgstr "Leveringen"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,end:0"
+#, fuzzy
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Boekingen"
+
+#, fuzzy
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
msgid "Cancel"
msgstr "Annuleren"
-msgctxt "wizard_button:sale.handle.invoice.exception,init,ok:0"
+#, fuzzy
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
msgid "Ok"
msgstr "Oké"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,end:0"
+#, fuzzy
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
msgid "Cancel"
msgstr "Annuleren"
-msgctxt "wizard_button:sale.handle.shipment.exception,init,ok:0"
+#, fuzzy
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
msgid "Ok"
msgstr "Oké"
diff -Nru tryton-modules-sale-2.2.2/locale/ru_RU.po tryton-modules-sale-2.8.0/locale/ru_RU.po
--- tryton-modules-sale-2.2.2/locale/ru_RU.po 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/locale/ru_RU.po 2013-04-21 14:22:02.000000000 +0000
@@ -2,1052 +2,1083 @@
msgid ""
msgstr "Content-Type: text/plain; charset=utf-8\n"
-msgctxt "error:account.invoice:0"
-msgid "You can not delete invoices that come from a sale!"
-msgstr ""
+msgctxt "error:account.invoice:"
+msgid "You can not delete invoices that come from a sale."
+msgstr "Вы не можете удалить инвойсы которые созданы от продажи."
-msgctxt "error:account.invoice:0"
+msgctxt "error:account.invoice:"
msgid "You cannot reset to draft an invoice generated by a sale."
-msgstr ""
+msgstr "Нельзя отметить как черновой инвойс, который создан продажей."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"Account Revenue\" on product \"%s\"!"
-msgstr ""
+msgctxt "error:sale.line:"
+msgid "Product \"%(product)s\" of sale %(sale)s misses a revenue account."
+msgstr "У продукта \"%(product)s\" продажи \"%(sale)s\" отсутствует счет доходов."
-msgctxt "error:sale.line:0"
-msgid "It misses an \"account Revenue\" default property!"
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" is missing the customer location in line \"%(line)s\"."
msgstr ""
+"У продажи \"%(sale)s\" отсутствует местоположение заказчика в строке "
+"\"%(line)s\"."
-msgctxt "error:sale.line:0"
-msgid "The customer location is required!"
-msgstr ""
+msgctxt "error:sale.line:"
+msgid "Sale \"%(sale)s\" misses an \"account revenue\" default property."
+msgstr "У продажи \"%(sale)s\" не заполнено поле \"Счет доходов\"."
-msgctxt "error:sale.sale:0"
-msgid "Invoice and Shipment addresses must be defined for the quotation."
+msgctxt "error:sale.sale:"
+msgid "Invalid combination of shipment and invoicing methods on sale \"%s\"."
msgstr ""
+"Недопустимая комбинация доставки метода выставления инвойса на продаже "
+"\"%s\"."
-msgctxt "error:sale.sale:0"
-msgid "It misses an \"Account Receivable\" on the party \"%s\"!"
+msgctxt "error:sale.sale:"
+msgid ""
+"Invoice and Shipment addresses must be defined for the quotation of sale "
+"\"%s\"."
msgstr ""
+"Для котировки продажи \"%s\" должны быть определены адреса инвойса и "
+"доставки."
-msgctxt "error:sale.sale:0"
-msgid "Wrong combination of method!"
-msgstr ""
+msgctxt "error:sale.sale:"
+msgid "It misses an \"Account Receivable\" on the party \"%s\"."
+msgstr "Отсутствует \"Счет дебиторов\" у контрагента \"%s\"."
-msgctxt "error:stock.shipment.out:0"
+msgctxt "error:sale.sale:"
+msgid "Sale \"%s\" must be cancelled before deletion."
+msgstr "Продажа \"%s\" должна быть отменена перед удалением."
+
+msgctxt "error:sale.sale:"
+msgid "Warehouse must be defined for the quotation of sale \"%s\"."
+msgstr "Должен быть указан склад для котировки продажи \"%s\"."
+
+msgctxt "error:stock.shipment.out.return:"
msgid "You cannot reset to draft a move generated by a sale."
-msgstr ""
+msgstr "Нельзя отметить как черновое перемещение, которое создано продажей."
+
+msgctxt "error:stock.shipment.out:"
+msgid "You cannot reset to draft a move generated by a sale."
+msgstr "Нельзя отметить как черновое перемещение, которое создано продажей."
-msgctxt "field:account.invoice,sale_exception_state:0"
+msgctxt "field:account.invoice,sale_exception_state:"
msgid "Exception State"
-msgstr ""
+msgstr "Состояние ситуации"
-msgctxt "field:account.invoice,sales:0"
+msgctxt "field:account.invoice,sales:"
msgid "Sales"
-msgstr ""
-
-msgctxt "field:account.invoice.line,sale_lines:0"
-msgid "Sale Lines"
-msgstr ""
+msgstr "Продажи"
-msgctxt "field:product.template,delivery_time:0"
+msgctxt "field:product.template,delivery_time:"
msgid "Delivery Time"
-msgstr ""
+msgstr "Время доставки"
-msgctxt "field:product.template,salable:0"
+msgctxt "field:product.template,salable:"
msgid "Salable"
-msgstr ""
+msgstr "Для продажи"
-msgctxt "field:product.template,sale_uom:0"
+msgctxt "field:product.template,sale_uom:"
msgid "Sale UOM"
-msgstr ""
+msgstr "Ед.измерения продажи"
+
+msgctxt "field:sale.configuration,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+msgctxt "field:sale.configuration,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
-#, fuzzy
-msgctxt "field:sale.configuration,rec_name:0"
+msgctxt "field:sale.configuration,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.configuration,rec_name:"
msgid "Name"
msgstr "Наименование"
-msgctxt "field:sale.configuration,sale_invoice_method:0"
+msgctxt "field:sale.configuration,sale_invoice_method:"
msgid "Sale Invoice Method"
-msgstr ""
+msgstr "Метод инвойса продажи"
-msgctxt "field:sale.configuration,sale_sequence:0"
+msgctxt "field:sale.configuration,sale_sequence:"
msgid "Sale Reference Sequence"
-msgstr ""
+msgstr "Ссылка на нумерация продаж"
-msgctxt "field:sale.configuration,sale_shipment_method:0"
+msgctxt "field:sale.configuration,sale_shipment_method:"
msgid "Sale Shipment Method"
-msgstr ""
+msgstr "Способ доставки продажи"
+
+msgctxt "field:sale.configuration,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
-msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:0"
+msgctxt "field:sale.configuration,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+msgctxt "field:sale.handle.invoice.exception.ask,domain_invoices:"
msgid "Domain Invoices"
-msgstr ""
+msgstr "Домен инвойсов"
+
+msgctxt "field:sale.handle.invoice.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "field:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid "Recreate Invoices"
-msgstr ""
+msgstr "Создать заново инвойсы"
-msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,domain_moves:"
msgid "Domain Moves"
-msgstr ""
+msgstr "Домен проводок"
-msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:0"
+msgctxt "field:sale.handle.shipment.exception.ask,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.handle.shipment.exception.ask,recreate_moves:"
msgid "Recreate Moves"
-msgstr ""
+msgstr "Создать заново проводки"
-msgctxt "field:sale.line,amount:0"
+msgctxt "field:sale.line,amount:"
msgid "Amount"
-msgstr ""
+msgstr "Сумма"
+
+msgctxt "field:sale.line,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+msgctxt "field:sale.line,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
-#, fuzzy
-msgctxt "field:sale.line,description:0"
+msgctxt "field:sale.line,delivery_date:"
+msgid "Delivery Date"
+msgstr "Дата доставки"
+
+msgctxt "field:sale.line,description:"
msgid "Description"
msgstr "Описание"
-msgctxt "field:sale.line,invoice_lines:0"
+msgctxt "field:sale.line,from_location:"
+msgid "From Location"
+msgstr "Из местоположения"
+
+msgctxt "field:sale.line,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line,invoice_lines:"
msgid "Invoice Lines"
-msgstr ""
+msgstr "Строки инвойса"
-msgctxt "field:sale.line,move_done:0"
+msgctxt "field:sale.line,move_done:"
msgid "Moves Done"
-msgstr ""
+msgstr "Перемещения выполнены"
-msgctxt "field:sale.line,move_exception:0"
+msgctxt "field:sale.line,move_exception:"
msgid "Moves Exception"
-msgstr ""
+msgstr "Особые ситуации перемещения"
-#, fuzzy
-msgctxt "field:sale.line,moves:0"
+msgctxt "field:sale.line,moves:"
msgid "Moves"
msgstr "Перемещения"
-msgctxt "field:sale.line,moves_ignored:0"
+msgctxt "field:sale.line,moves_ignored:"
msgid "Ignored Moves"
-msgstr ""
+msgstr "Игнорированные проводки"
-msgctxt "field:sale.line,moves_recreated:0"
+msgctxt "field:sale.line,moves_recreated:"
msgid "Recreated Moves"
-msgstr ""
+msgstr "Созданные заново проводки"
-msgctxt "field:sale.line,note:0"
+msgctxt "field:sale.line,note:"
msgid "Note"
-msgstr ""
+msgstr "Комментарий"
-#, fuzzy
-msgctxt "field:sale.line,product:0"
+msgctxt "field:sale.line,product:"
msgid "Product"
-msgstr "Товарно материальные ценности (ТМЦ)"
+msgstr "Продукт"
-#, fuzzy
-msgctxt "field:sale.line,quantity:0"
+msgctxt "field:sale.line,product_uom_category:"
+msgid "Product Uom Category"
+msgstr "Категория ед. измерения продукции"
+
+msgctxt "field:sale.line,quantity:"
msgid "Quantity"
msgstr "Кол-во"
-#, fuzzy
-msgctxt "field:sale.line,rec_name:0"
+msgctxt "field:sale.line,rec_name:"
msgid "Name"
msgstr "Наименование"
-msgctxt "field:sale.line,sale:0"
+msgctxt "field:sale.line,sale:"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
-#, fuzzy
-msgctxt "field:sale.line,sequence:0"
+msgctxt "field:sale.line,sequence:"
msgid "Sequence"
-msgstr "Последовательность"
+msgstr "Нумерация"
-msgctxt "field:sale.line,taxes:0"
+msgctxt "field:sale.line,taxes:"
msgid "Taxes"
-msgstr ""
+msgstr "Налоги"
-#, fuzzy
-msgctxt "field:sale.line,type:0"
+msgctxt "field:sale.line,to_location:"
+msgid "To Location"
+msgstr "В местоположение"
+
+msgctxt "field:sale.line,type:"
msgid "Type"
msgstr "Тип"
-#, fuzzy
-msgctxt "field:sale.line,unit:0"
+msgctxt "field:sale.line,unit:"
msgid "Unit"
-msgstr "Штука"
+msgstr "Единица измерения"
-#, fuzzy
-msgctxt "field:sale.line,unit_digits:0"
+msgctxt "field:sale.line,unit_digits:"
msgid "Unit Digits"
-msgstr "Группа цифр"
+msgstr "Кол-во цифр после запятой"
-#, fuzzy
-msgctxt "field:sale.line,unit_price:0"
+msgctxt "field:sale.line,unit_price:"
msgid "Unit Price"
msgstr "Цена за единицу"
-msgctxt "field:sale.line-account.invoice.line,invoice_line:0"
-msgid "Invoice Line"
-msgstr ""
-
-#, fuzzy
-msgctxt "field:sale.line-account.invoice.line,rec_name:0"
-msgid "Name"
-msgstr "Наименование"
+msgctxt "field:sale.line,warehouse:"
+msgid "Warehouse"
+msgstr "Товарный склад"
-msgctxt "field:sale.line-account.invoice.line,sale_line:0"
-msgid "Sale Line"
-msgstr ""
+msgctxt "field:sale.line,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+msgctxt "field:sale.line,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+msgctxt "field:sale.line-account.tax,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+msgctxt "field:sale.line-account.tax,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+msgctxt "field:sale.line-account.tax,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.line-account.tax,line:0"
+msgctxt "field:sale.line-account.tax,line:"
msgid "Sale Line"
-msgstr ""
+msgstr "Строка продажи"
-#, fuzzy
-msgctxt "field:sale.line-account.tax,rec_name:0"
+msgctxt "field:sale.line-account.tax,rec_name:"
msgid "Name"
msgstr "Наименование"
-msgctxt "field:sale.line-account.tax,tax:0"
+msgctxt "field:sale.line-account.tax,tax:"
msgid "Tax"
-msgstr ""
+msgstr "Налог"
+
+msgctxt "field:sale.line-account.tax,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+msgctxt "field:sale.line-account.tax,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+msgctxt "field:sale.line-ignored-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+msgctxt "field:sale.line-ignored-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
-#, fuzzy
-msgctxt "field:sale.line-ignored-stock.move,move:0"
+msgctxt "field:sale.line-ignored-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-ignored-stock.move,move:"
msgid "Move"
msgstr "Перемещение"
-#, fuzzy
-msgctxt "field:sale.line-ignored-stock.move,rec_name:0"
+msgctxt "field:sale.line-ignored-stock.move,rec_name:"
msgid "Name"
msgstr "Наименование"
-msgctxt "field:sale.line-ignored-stock.move,sale_line:0"
+msgctxt "field:sale.line-ignored-stock.move,sale_line:"
msgid "Sale Line"
-msgstr ""
+msgstr "Строка продажи"
+
+msgctxt "field:sale.line-ignored-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+msgctxt "field:sale.line-ignored-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+msgctxt "field:sale.line-recreated-stock.move,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
-#, fuzzy
-msgctxt "field:sale.line-recreated-stock.move,move:0"
+msgctxt "field:sale.line-recreated-stock.move,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+msgctxt "field:sale.line-recreated-stock.move,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.line-recreated-stock.move,move:"
msgid "Move"
msgstr "Перемещение"
-#, fuzzy
-msgctxt "field:sale.line-recreated-stock.move,rec_name:0"
+msgctxt "field:sale.line-recreated-stock.move,rec_name:"
msgid "Name"
msgstr "Наименование"
-msgctxt "field:sale.line-recreated-stock.move,sale_line:0"
+msgctxt "field:sale.line-recreated-stock.move,sale_line:"
msgid "Sale Line"
-msgstr ""
+msgstr "Строка продажи"
+
+msgctxt "field:sale.line-recreated-stock.move,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+msgctxt "field:sale.line-recreated-stock.move,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
-#, fuzzy
-msgctxt "field:sale.sale,comment:0"
+msgctxt "field:sale.sale,comment:"
msgid "Comment"
msgstr "Комментарии"
-#, fuzzy
-msgctxt "field:sale.sale,company:0"
+msgctxt "field:sale.sale,company:"
msgid "Company"
-msgstr "Учет.орг."
+msgstr "Организация"
-#, fuzzy
-msgctxt "field:sale.sale,currency:0"
+msgctxt "field:sale.sale,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+msgctxt "field:sale.sale,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+msgctxt "field:sale.sale,currency:"
msgid "Currency"
-msgstr "Валюты"
+msgstr "Валюта"
-msgctxt "field:sale.sale,currency_digits:0"
+msgctxt "field:sale.sale,currency_digits:"
msgid "Currency Digits"
-msgstr ""
+msgstr "Кол-во цифр валюты"
-#, fuzzy
-msgctxt "field:sale.sale,description:0"
+msgctxt "field:sale.sale,description:"
msgid "Description"
msgstr "Описание"
-msgctxt "field:sale.sale,invoice_address:0"
-msgid "Invoice Address"
-msgstr ""
+msgctxt "field:sale.sale,id:"
+msgid "ID"
+msgstr "ID"
-msgctxt "field:sale.sale,invoice_exception:0"
-msgid "Invoices Exception"
-msgstr ""
+msgctxt "field:sale.sale,invoice_address:"
+msgid "Invoice Address"
+msgstr "Адрес для инвойса"
-msgctxt "field:sale.sale,invoice_method:0"
+msgctxt "field:sale.sale,invoice_method:"
msgid "Invoice Method"
-msgstr ""
-
-msgctxt "field:sale.sale,invoice_paid:0"
-msgid "Invoices Paid"
-msgstr ""
+msgstr "Метод инвойса"
-msgctxt "field:sale.sale,invoice_state:0"
+msgctxt "field:sale.sale,invoice_state:"
msgid "Invoice State"
-msgstr ""
+msgstr "Состояние инвойса"
-msgctxt "field:sale.sale,invoices:0"
+msgctxt "field:sale.sale,invoices:"
msgid "Invoices"
-msgstr ""
+msgstr "Инвойсы"
-msgctxt "field:sale.sale,invoices_ignored:0"
+msgctxt "field:sale.sale,invoices_ignored:"
msgid "Ignored Invoices"
-msgstr ""
+msgstr "Игнорированные инвойсы"
-msgctxt "field:sale.sale,invoices_recreated:0"
+msgctxt "field:sale.sale,invoices_recreated:"
msgid "Recreated Invoices"
-msgstr ""
+msgstr "Созданные заново инвойсы"
-#, fuzzy
-msgctxt "field:sale.sale,lines:0"
+msgctxt "field:sale.sale,lines:"
msgid "Lines"
msgstr "Строки"
-#, fuzzy
-msgctxt "field:sale.sale,moves:0"
+msgctxt "field:sale.sale,moves:"
msgid "Moves"
msgstr "Перемещения"
-#, fuzzy
-msgctxt "field:sale.sale,party:0"
+msgctxt "field:sale.sale,party:"
msgid "Party"
-msgstr "Организации"
+msgstr "Контрагент"
-msgctxt "field:sale.sale,party_lang:0"
+msgctxt "field:sale.sale,party_lang:"
msgid "Party Language"
-msgstr ""
+msgstr "Язык контрагента"
-msgctxt "field:sale.sale,payment_term:0"
+msgctxt "field:sale.sale,payment_term:"
msgid "Payment Term"
-msgstr ""
+msgstr "Правило оплаты"
-#, fuzzy
-msgctxt "field:sale.sale,rec_name:0"
+msgctxt "field:sale.sale,rec_name:"
msgid "Name"
msgstr "Наименование"
-#, fuzzy
-msgctxt "field:sale.sale,reference:0"
+msgctxt "field:sale.sale,reference:"
msgid "Reference"
msgstr "Ссылка"
-msgctxt "field:sale.sale,sale_date:0"
+msgctxt "field:sale.sale,sale_date:"
msgid "Sale Date"
-msgstr ""
+msgstr "Дата продажи"
-msgctxt "field:sale.sale,shipment_address:0"
+msgctxt "field:sale.sale,shipment_address:"
msgid "Shipment Address"
-msgstr ""
+msgstr "Адрес доставки"
-msgctxt "field:sale.sale,shipment_done:0"
-msgid "Shipment Done"
-msgstr ""
-
-msgctxt "field:sale.sale,shipment_exception:0"
-msgid "Shipments Exception"
-msgstr ""
-
-msgctxt "field:sale.sale,shipment_method:0"
+msgctxt "field:sale.sale,shipment_method:"
msgid "Shipment Method"
-msgstr ""
+msgstr "Метод доставки"
+
+msgctxt "field:sale.sale,shipment_returns:"
+msgid "Shipment Returns"
+msgstr "Возврат"
-msgctxt "field:sale.sale,shipment_state:0"
+msgctxt "field:sale.sale,shipment_state:"
msgid "Shipment State"
-msgstr ""
+msgstr "Состояние доставки"
-msgctxt "field:sale.sale,shipments:0"
+msgctxt "field:sale.sale,shipments:"
msgid "Shipments"
-msgstr ""
+msgstr "Доставка"
-#, fuzzy
-msgctxt "field:sale.sale,state:0"
+msgctxt "field:sale.sale,state:"
msgid "State"
-msgstr "Статус"
+msgstr "Состояние"
-msgctxt "field:sale.sale,tax_amount:0"
+msgctxt "field:sale.sale,tax_amount:"
msgid "Tax"
-msgstr ""
+msgstr "Налог"
+
+msgctxt "field:sale.sale,tax_amount_cache:"
+msgid "Tax Cache"
+msgstr "Облагаемые налогом"
-msgctxt "field:sale.sale,total_amount:0"
+msgctxt "field:sale.sale,total_amount:"
msgid "Total"
-msgstr ""
+msgstr "Итого"
-msgctxt "field:sale.sale,untaxed_amount:0"
+msgctxt "field:sale.sale,total_amount_cache:"
+msgid "Total Tax"
+msgstr "Итого налог:"
+
+msgctxt "field:sale.sale,untaxed_amount:"
msgid "Untaxed"
-msgstr ""
+msgstr "Без налога"
-#, fuzzy
-msgctxt "field:sale.sale,warehouse:0"
+msgctxt "field:sale.sale,untaxed_amount_cache:"
+msgid "Untaxed Cache"
+msgstr "Необлагаемые налогом"
+
+msgctxt "field:sale.sale,warehouse:"
msgid "Warehouse"
msgstr "Товарный склад"
-msgctxt "field:sale.sale-account.invoice,invoice:0"
+msgctxt "field:sale.sale,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+msgctxt "field:sale.sale,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+msgctxt "field:sale.sale-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+msgctxt "field:sale.sale-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+msgctxt "field:sale.sale-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-account.invoice,invoice:"
msgid "Invoice"
-msgstr ""
+msgstr "Инвойс"
-#, fuzzy
-msgctxt "field:sale.sale-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-account.invoice,rec_name:"
msgid "Name"
msgstr "Наименование"
-msgctxt "field:sale.sale-account.invoice,sale:0"
+msgctxt "field:sale.sale-account.invoice,sale:"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
+
+msgctxt "field:sale.sale-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
-msgctxt "field:sale.sale-ignored-account.invoice,invoice:0"
+msgctxt "field:sale.sale-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+msgctxt "field:sale.sale-ignored-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
+
+msgctxt "field:sale.sale-ignored-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-ignored-account.invoice,invoice:"
msgid "Invoice"
-msgstr ""
+msgstr "Инвойс"
-#, fuzzy
-msgctxt "field:sale.sale-ignored-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-ignored-account.invoice,rec_name:"
msgid "Name"
msgstr "Наименование"
-msgctxt "field:sale.sale-ignored-account.invoice,sale:0"
+msgctxt "field:sale.sale-ignored-account.invoice,sale:"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+msgctxt "field:sale.sale-ignored-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_date:"
+msgid "Create Date"
+msgstr "Дата создания"
+
+msgctxt "field:sale.sale-recreated-account.invoice,create_uid:"
+msgid "Create User"
+msgstr "Создано пользователем"
-msgctxt "field:sale.sale-recreated-account.invoice,invoice:0"
+msgctxt "field:sale.sale-recreated-account.invoice,id:"
+msgid "ID"
+msgstr "ID"
+
+msgctxt "field:sale.sale-recreated-account.invoice,invoice:"
msgid "Invoice"
-msgstr ""
+msgstr "Инвойс"
-#, fuzzy
-msgctxt "field:sale.sale-recreated-account.invoice,rec_name:0"
+msgctxt "field:sale.sale-recreated-account.invoice,rec_name:"
msgid "Name"
msgstr "Наименование"
-msgctxt "field:sale.sale-recreated-account.invoice,sale:0"
+msgctxt "field:sale.sale-recreated-account.invoice,sale:"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_date:"
+msgid "Write Date"
+msgstr "Дата изменения"
+
+msgctxt "field:sale.sale-recreated-account.invoice,write_uid:"
+msgid "Write User"
+msgstr "Изменено пользователем"
-msgctxt "field:stock.move,sale:0"
+msgctxt "field:stock.move,sale:"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
-msgctxt "field:stock.move,sale_exception_state:0"
+msgctxt "field:stock.move,sale_exception_state:"
msgid "Exception State"
-msgstr ""
-
-msgctxt "field:stock.move,sale_line:0"
-msgid "Sale Line"
-msgstr ""
+msgstr "Состояние ситуации"
-msgctxt "help:product.template,delivery_time:0"
+msgctxt "help:product.template,delivery_time:"
msgid "In number of days"
-msgstr ""
+msgstr "После указанного количества дней"
-msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:0"
+msgctxt "help:sale.handle.invoice.exception.ask,recreate_invoices:"
msgid ""
"The selected invoices will be recreated. The other ones will be ignored."
msgstr ""
+"Выбранные инвойсы будут созданы заново. Остальные будут проигнорированы."
msgctxt "model:ir.action,name:act_invoice_form"
msgid "Invoices"
-msgstr ""
+msgstr "Инвойсы"
msgctxt "model:ir.action,name:act_open_customer"
msgid "Parties associated to Sales"
-msgstr ""
+msgstr "Контрагенты связанные с продажами"
+
+msgctxt "model:ir.action,name:act_return_form"
+msgid "Returns"
+msgstr "Возвраты"
msgctxt "model:ir.action,name:act_sale_configuration_form"
msgid "Sales Configuration"
-msgstr ""
+msgstr "Конфигурация продаж"
msgctxt "model:ir.action,name:act_sale_form"
msgid "Sales"
-msgstr ""
+msgstr "Продажи"
msgctxt "model:ir.action,name:act_sale_form2"
msgid "Sales"
-msgstr ""
-
-msgctxt "model:ir.action,name:act_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr ""
-
-msgctxt "model:ir.action,name:act_sale_form_draft"
-msgid "Draft Sales"
-msgstr ""
-
-msgctxt "model:ir.action,name:act_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr ""
+msgstr "Продажи"
msgctxt "model:ir.action,name:act_shipment_form"
msgid "Shipments"
-msgstr ""
+msgstr "Доставка"
msgctxt "model:ir.action,name:report_sale"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
msgctxt "model:ir.action,name:wizard_invoice_handle_exception"
msgid "Handle Invoice Exception"
-msgstr ""
+msgstr "Обработка особых ситуаций инвойса"
+
+msgctxt "model:ir.action,name:wizard_return_sale"
+msgid "Create Return Sale"
+msgstr "Создать возврат продажи"
msgctxt "model:ir.action,name:wizard_shipment_handle_exception"
msgid "Handle Shipment Exception"
-msgstr ""
+msgstr "Обработка особых ситуаций доставки"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_all"
+msgid "All"
+msgstr "Все"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_confirmed"
+msgid "Confirmed"
+msgstr "Подтвержденно"
+
+msgctxt "model:ir.action.act_window.domain,name:act_sale_form_domain_draft"
+msgid "Draft"
+msgstr "Черновик"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_processing"
+msgid "Processing"
+msgstr "Обработка"
+
+msgctxt ""
+"model:ir.action.act_window.domain,name:act_sale_form_domain_quotation"
+msgid "Quotation"
+msgstr "Котировка"
msgctxt "model:ir.sequence,name:sequence_sale"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
msgctxt "model:ir.sequence.type,name:sequence_type_sale"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
-#, fuzzy
msgctxt "model:ir.ui.menu,name:menu_configuration"
msgid "Configuration"
msgstr "Конфигурация"
msgctxt "model:ir.ui.menu,name:menu_customer"
msgid "Parties associated to Sales"
-msgstr ""
+msgstr "Контрагенты связанные с продажами"
msgctxt "model:ir.ui.menu,name:menu_sale"
msgid "Sales"
-msgstr ""
+msgstr "Продажи"
msgctxt "model:ir.ui.menu,name:menu_sale_configuration"
msgid "Sales Configuration"
-msgstr ""
+msgstr "Конфигурация продаж"
msgctxt "model:ir.ui.menu,name:menu_sale_form"
msgid "Sales"
-msgstr ""
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_confirmed"
-msgid "Confirmed Sales"
-msgstr ""
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_draft"
-msgid "Draft Sales"
-msgstr ""
-
-msgctxt "model:ir.ui.menu,name:menu_sale_form_quotation"
-msgid "Quotation Sales"
-msgstr ""
+msgstr "Продажи"
msgctxt "model:res.group,name:group_sale"
msgid "Sales"
-msgstr ""
+msgstr "Продажи"
msgctxt "model:res.group,name:group_sale_admin"
msgid "Sales Administrator"
-msgstr ""
+msgstr "Администрирование продаж"
-msgctxt "model:sale.configuration,name:0"
+msgctxt "model:sale.configuration,name:"
msgid "Sale Configuration"
-msgstr ""
+msgstr "Конфигурация продаж"
-msgctxt "model:sale.handle.invoice.exception.ask,name:0"
-msgid "Invoice Exception Ask"
-msgstr ""
+msgctxt "model:sale.handle.invoice.exception.ask,name:"
+msgid "Handle Invoice Exception"
+msgstr "Обработка особых ситуаций инвойса"
-msgctxt "model:sale.handle.shipment.exception.ask,name:0"
-msgid "Shipment Exception Ask"
-msgstr ""
+msgctxt "model:sale.handle.shipment.exception.ask,name:"
+msgid "Handle Shipment Exception"
+msgstr "Обработка особых ситуаций доставки"
-msgctxt "model:sale.line,name:0"
+msgctxt "model:sale.line,name:"
msgid "Sale Line"
-msgstr ""
-
-msgctxt "model:sale.line-account.invoice.line,name:0"
-msgid "Sale Line - Invoice Line"
-msgstr ""
+msgstr "Строка продажи"
-msgctxt "model:sale.line-account.tax,name:0"
+msgctxt "model:sale.line-account.tax,name:"
msgid "Sale Line - Tax"
-msgstr ""
+msgstr "Строка продажи - Налоги"
-msgctxt "model:sale.line-ignored-stock.move,name:0"
+msgctxt "model:sale.line-ignored-stock.move,name:"
msgid "Sale Line - Ignored Move"
-msgstr ""
+msgstr "Строка продажи - Игнорированные перемещения"
-msgctxt "model:sale.line-recreated-stock.move,name:0"
+msgctxt "model:sale.line-recreated-stock.move,name:"
msgid "Sale Line - Recreated Move"
-msgstr ""
+msgstr "Строка продажи - Созданные заново перемещения"
-msgctxt "model:sale.sale,name:0"
+msgctxt "model:sale.sale,name:"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
-msgctxt "model:sale.sale-account.invoice,name:0"
+msgctxt "model:sale.sale-account.invoice,name:"
msgid "Sale - Invoice"
-msgstr ""
+msgstr "Продажи - Инвойсы"
-msgctxt "model:sale.sale-ignored-account.invoice,name:0"
+msgctxt "model:sale.sale-ignored-account.invoice,name:"
msgid "Sale - Ignored Invoice"
-msgstr ""
+msgstr "Продажи - Игнорируемые инвойсы"
-msgctxt "model:sale.sale-recreated-account.invoice,name:0"
+msgctxt "model:sale.sale-recreated-account.invoice,name:"
msgid "Sale - Recreated Invoice"
-msgstr ""
-
-msgctxt "model:workflow,name:sale_workflow"
-msgid "Sale workflow"
-msgstr ""
-
-#, fuzzy
-msgctxt "model:workflow.activity,name:sale_activity_cancel"
-msgid "Canceled"
-msgstr "Отменено"
-
-#, fuzzy
-msgctxt "model:workflow.activity,name:sale_activity_confirmed"
-msgid "Confirmed"
-msgstr "Подтвержденно"
-
-#, fuzzy
-msgctxt "model:workflow.activity,name:sale_activity_done"
-msgid "Done"
-msgstr "Выполнено"
-
-#, fuzzy
-msgctxt "model:workflow.activity,name:sale_activity_draft"
-msgid "Draft"
-msgstr "Черновик"
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method"
-msgid "Invoice Method"
-msgstr ""
+msgstr "Продажи - Созданные заново инвойсы"
-msgctxt "model:workflow.activity,name:sale_activity_invoice_method_done"
-msgid "Invoice Method Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_done"
-msgid "Invoice Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_sale_exception"
-msgid "Invoice Exception"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment"
-msgid "Invoice Shipment"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_done"
-msgid "Invoice Shipment Done"
-msgstr ""
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_exception"
-msgid "Invoice Shipment Exception"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_invoice_shipment_method"
-msgid "Invoice Shipment Method"
-msgstr ""
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_invoice_shipment_method_done"
-msgid "Invoice Shipment Method Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_quotation"
-msgid "Quotation"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment"
-msgid "Shipment"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_exception"
-msgid "Shipment Exception"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice"
-msgid "Shipment Invoice"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_done"
-msgid "Shipment Invoice Done"
-msgstr ""
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_exception"
-msgid "Shipment Invoice Exception"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_invoice_method"
-msgid "Shipment Invoice Method"
-msgstr ""
-
-msgctxt ""
-"model:workflow.activity,name:sale_activity_shipment_invoice_method_done"
-msgid "Shipment Invoice Method Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method"
-msgid "Shipment Method"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_shipment_method_done"
-msgid "Shipment Method Done"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_sale"
-msgid "Waiting Invoice"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_invoice_shipment"
-msgid "Waiting Invoice Shipment"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment"
-msgid "Waiting Shipment"
-msgstr ""
-
-msgctxt "model:workflow.activity,name:sale_activity_waiting_shipment_invoice"
-msgid "Waiting Shipment Invoice"
-msgstr ""
-
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Amount"
-msgstr ""
+msgstr "Сумма"
-#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Date:"
msgstr "Дата:"
-#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description"
msgstr "Описание"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Description:"
-msgstr ""
+msgstr "Описание:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Draft Sale Order"
-msgstr ""
+msgstr "Черновой заказ на продажу"
-#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "E-Mail:"
-msgstr "E-Mail:"
+msgstr "Эл.почта:"
-#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Phone:"
msgstr "Телефон:"
-#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quantity"
msgstr "Кол-во"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Quotation N°:"
-msgstr ""
+msgstr "Котировка N°:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Sale Order N°:"
-msgstr ""
+msgstr "Заказ на продажу №:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes"
-msgstr ""
+msgstr "Налоги"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Taxes:"
-msgstr ""
+msgstr "Налоги:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total (excl. taxes):"
-msgstr ""
+msgstr "Итого (без налогов):"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Total:"
-msgstr ""
+msgstr "Итого:"
-#, fuzzy
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "Unit Price"
msgstr "Цена за единицу"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT Number:"
-msgstr ""
+msgstr "ИНН:"
-msgctxt "odt:sale.sale:0"
+msgctxt "odt:sale.sale:"
msgid "VAT:"
-msgstr ""
+msgstr "ИНН:"
-#, fuzzy
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid ""
-msgstr "Резервный счет"
+msgstr ""
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Ignored"
-msgstr ""
+msgstr "Игнорируется"
-msgctxt "selection:account.invoice,sale_exception_state:0"
+msgctxt "selection:account.invoice,sale_exception_state:"
msgid "Recreated"
-msgstr ""
+msgstr "Создано заново"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "Manual"
-msgstr ""
+msgstr "Ручной"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
-msgid "On Order Confirmed"
-msgstr ""
+msgctxt "selection:sale.configuration,sale_invoice_method:"
+msgid "On Order Processed"
+msgstr "При обработке заказа"
-msgctxt "selection:sale.configuration,sale_invoice_method:0"
+msgctxt "selection:sale.configuration,sale_invoice_method:"
msgid "On Shipment Sent"
-msgstr ""
+msgstr "При отправке груза"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "Manual"
-msgstr ""
+msgstr "Ручной"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
+msgctxt "selection:sale.configuration,sale_shipment_method:"
msgid "On Invoice Paid"
-msgstr ""
+msgstr "При оплате инвойса"
-msgctxt "selection:sale.configuration,sale_shipment_method:0"
-msgid "On Order Confirmed"
-msgstr ""
+msgctxt "selection:sale.configuration,sale_shipment_method:"
+msgid "On Order Processed"
+msgstr "При обработке заказа"
-#, fuzzy
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Comment"
msgstr "Комментарии"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Line"
-msgstr ""
+msgstr "Строка"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Subtotal"
-msgstr ""
+msgstr "Подитог"
-msgctxt "selection:sale.line,type:0"
+msgctxt "selection:sale.line,type:"
msgid "Title"
-msgstr ""
+msgstr "Заголовок"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "Manual"
-msgstr ""
+msgstr "Ручной"
-msgctxt "selection:sale.sale,invoice_method:0"
-msgid "On Order Confirmed"
-msgstr ""
+msgctxt "selection:sale.sale,invoice_method:"
+msgid "On Order Processed"
+msgstr "При обработке заказа"
-msgctxt "selection:sale.sale,invoice_method:0"
+msgctxt "selection:sale.sale,invoice_method:"
msgid "On Shipment Sent"
-msgstr ""
+msgstr "При отправке груза"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Exception"
-msgstr ""
+msgstr "Особая ситуация"
-#, fuzzy
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "None"
msgstr "Отсутствует"
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Paid"
-msgstr ""
+msgstr "Оплачен"
-#, fuzzy
-msgctxt "selection:sale.sale,invoice_state:0"
+msgctxt "selection:sale.sale,invoice_state:"
msgid "Waiting"
msgstr "Ожидание"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "Manual"
-msgstr ""
+msgstr "Ручной"
-msgctxt "selection:sale.sale,shipment_method:0"
+msgctxt "selection:sale.sale,shipment_method:"
msgid "On Invoice Paid"
-msgstr ""
+msgstr "При оплате инвойса"
-msgctxt "selection:sale.sale,shipment_method:0"
-msgid "On Order Confirmed"
-msgstr ""
+msgctxt "selection:sale.sale,shipment_method:"
+msgid "On Order Processed"
+msgstr "При обработке заказа"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Exception"
-msgstr ""
+msgstr "Особая ситуация"
-#, fuzzy
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "None"
msgstr "Отсутствует"
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Sent"
-msgstr ""
+msgstr "Отправлен"
-#, fuzzy
-msgctxt "selection:sale.sale,shipment_state:0"
+msgctxt "selection:sale.sale,shipment_state:"
msgid "Waiting"
msgstr "Ожидание"
-#, fuzzy
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Canceled"
msgstr "Отменено"
-#, fuzzy
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Confirmed"
msgstr "Подтвержденно"
-#, fuzzy
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Done"
msgstr "Выполнено"
-#, fuzzy
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
msgid "Draft"
msgstr "Черновик"
-msgctxt "selection:sale.sale,state:0"
+msgctxt "selection:sale.sale,state:"
+msgid "Processing"
+msgstr "Обработка"
+
+msgctxt "selection:sale.sale,state:"
msgid "Quotation"
-msgstr ""
+msgstr "Котировка"
-#, fuzzy
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid ""
-msgstr "Резервный счет"
+msgstr ""
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Ignored"
-msgstr ""
+msgstr "Игнорируется"
-msgctxt "selection:stock.move,sale_exception_state:0"
+msgctxt "selection:stock.move,sale_exception_state:"
msgid "Recreated"
-msgstr ""
+msgstr "Создано заново"
+
+msgctxt "view:product.product:"
+msgid "Products"
+msgstr "Продукция"
-msgctxt "view:product.template:0"
+msgctxt "view:product.template:"
msgid "Customers"
-msgstr ""
+msgstr "Заказчики"
-msgctxt "view:sale.configuration:0"
+msgctxt "view:sale.configuration:"
msgid "Sale Configuration"
-msgstr ""
+msgstr "Конфигурация продаж"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Choose invoices to recreate"
-msgstr ""
+msgstr "Выберите инвойсы для пересоздания"
-msgctxt "view:sale.handle.invoice.exception.ask:0"
+msgctxt "view:sale.handle.invoice.exception.ask:"
msgid "Handle Invoice Exception"
-msgstr ""
+msgstr "Обработка особых ситуаций инвойса"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Choose move to recreate"
-msgstr ""
+msgstr "Выберите проводки для пересоздания"
-msgctxt "view:sale.handle.shipment.exception.ask:0"
+msgctxt "view:sale.handle.shipment.exception.ask:"
msgid "Handle shipment Exception"
-msgstr ""
-
-msgctxt "view:sale.handle.shipment.exception.ask:0"
-msgid "Recreate Moves"
-msgstr ""
+msgstr "Обработка особых ситуаций доставки"
-#, fuzzy
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "General"
msgstr "Основной"
-#, fuzzy
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Notes"
msgstr "Комментарии"
-#, fuzzy
-msgctxt "view:sale.line:0"
-msgid "Products"
-msgstr "ТМЦ"
-
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Line"
-msgstr ""
+msgstr "Строка продажи"
-msgctxt "view:sale.line:0"
+msgctxt "view:sale.line:"
msgid "Sale Lines"
-msgstr ""
+msgstr "Строки продажи"
-#, fuzzy
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Cancel"
msgstr "Отменить"
-#, fuzzy
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Confirm"
-msgstr "Подтверждать"
+msgstr "Подтвердить"
-#, fuzzy
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Draft"
msgstr "Черновик"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Invoice Exception"
-msgstr ""
+msgstr "Обработка особых ситуаций инвойса"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Handle Shipment Exception"
-msgstr ""
+msgstr "Обработка особых ситуаций доставки"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Invoices"
-msgstr ""
-
-#, fuzzy
-msgctxt "view:sale.sale:0"
-msgid "Lines"
-msgstr "Строки"
-
-#, fuzzy
-msgctxt "view:sale.sale:0"
-msgid "Moves"
-msgstr "Перемещения"
+msgstr "Инвойсы"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Other Info"
-msgstr ""
+msgstr "Другая информация"
-msgctxt "view:sale.sale:0"
-msgid "Quotation"
-msgstr ""
+msgctxt "view:sale.sale:"
+msgid "Process"
+msgstr "Обработка"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
+msgid "Quote"
+msgstr "Котировать"
+
+msgctxt "view:sale.sale:"
msgid "Sale"
-msgstr ""
+msgstr "Продажа"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Sales"
-msgstr ""
+msgstr "Продажи"
-msgctxt "view:sale.sale:0"
+msgctxt "view:sale.sale:"
msgid "Shipments"
-msgstr ""
+msgstr "Доставка"
+
+msgctxt "view:stock.move:"
+msgid "Moves"
+msgstr "Перемещения"
-#, fuzzy
-msgctxt "wizard_button:sale.handle.invoice.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,end:"
msgid "Cancel"
msgstr "Отменить"
-#, fuzzy
-msgctxt "wizard_button:sale.handle.invoice.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.invoice.exception,ask,handle:"
msgid "Ok"
msgstr "Ок"
-#, fuzzy
-msgctxt "wizard_button:sale.handle.shipment.exception,init,end:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,end:"
msgid "Cancel"
msgstr "Отменить"
-#, fuzzy
-msgctxt "wizard_button:sale.handle.shipment.exception,init,ok:0"
+msgctxt "wizard_button:sale.handle.shipment.exception,ask,handle:"
msgid "Ok"
msgstr "Ок"
diff -Nru tryton-modules-sale-2.2.2/product.xml tryton-modules-sale-2.8.0/product.xml
--- tryton-modules-sale-2.2.2/product.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/product.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,13 @@
+
+
+
+
+
+ product.product
+ tree
+
+ product_list_sale_line
+
+
+
Binary files /tmp/WfmN9lxp7U/tryton-modules-sale-2.2.2/sale.odt and /tmp/NihE3Y7tB_/tryton-modules-sale-2.8.0/sale.odt differ
diff -Nru tryton-modules-sale-2.2.2/sale.py tryton-modules-sale-2.8.0/sale.py
--- tryton-modules-sale-2.2.2/sale.py 2012-04-24 12:20:18.000000000 +0000
+++ tryton-modules-sale-2.8.0/sale.py 2013-04-11 15:37:02.000000000 +0000
@@ -1,35 +1,42 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
-import copy
from decimal import Decimal
import datetime
-from itertools import groupby
+from itertools import groupby, chain
from functools import partial
-from trytond.model import ModelWorkflow, ModelView, ModelSQL, fields
+from trytond.model import Workflow, ModelView, ModelSQL, fields
from trytond.modules.company import CompanyReport
-from trytond.wizard import Wizard
+from trytond.wizard import Wizard, StateAction, StateView, StateTransition, \
+ Button
from trytond.backend import TableHandler
-from trytond.pyson import If, Eval, Bool, PYSONEncoder
+from trytond.pyson import If, Eval, Bool, PYSONEncoder, Id
from trytond.transaction import Transaction
-from trytond.pool import Pool
+from trytond.pool import Pool, PoolMeta
+__all__ = ['Sale', 'SaleInvoice', 'SaleIgnoredInvoice', 'SaleRecreatedInvoice',
+ 'SaleLine', 'SaleLineTax', 'SaleLineIgnoredMove',
+ 'SaleLineRecreatedMove', 'SaleReport', 'Template', 'Product',
+ 'ShipmentOut', 'ShipmentOutReturn', 'Move', 'OpenCustomer',
+ 'HandleShipmentExceptionAsk', 'HandleShipmentException',
+ 'HandleInvoiceExceptionAsk', 'HandleInvoiceException',
+ 'ReturnSale']
+__metaclass__ = PoolMeta
-class Sale(ModelWorkflow, ModelSQL, ModelView):
+
+class Sale(Workflow, ModelSQL, ModelView):
'Sale'
- _name = 'sale.sale'
+ __name__ = 'sale.sale'
_rec_name = 'reference'
- _description = __doc__
-
company = fields.Many2One('company.company', 'Company', required=True,
states={
- 'readonly': (Eval('state') != 'draft') | Eval('lines', []),
+ 'readonly': (Eval('state') != 'draft') | Eval('lines', [0]),
},
domain=[
('id', If(Eval('context', {}).contains('company'), '=', '!='),
Eval('context', {}).get('company', 0)),
],
- depends=['state', 'lines'])
- reference = fields.Char('Reference', readonly=True, select=1)
+ depends=['state'], select=True)
+ reference = fields.Char('Reference', readonly=True, select=True)
description = fields.Char('Description',
states={
'readonly': Eval('state') != 'draft',
@@ -39,12 +46,14 @@
('draft', 'Draft'),
('quotation', 'Quotation'),
('confirmed', 'Confirmed'),
+ ('processing', 'Processing'),
('done', 'Done'),
('cancel', 'Canceled'),
], 'State', readonly=True, required=True)
- sale_date = fields.Date('Sale Date', required=True,
+ sale_date = fields.Date('Sale Date',
states={
- 'readonly': Eval('state') != 'draft',
+ 'readonly': ~Eval('state').in_(['draft', 'quotation']),
+ 'required': ~Eval('state').in_(['draft', 'quotation', 'cancel']),
},
depends=['state'])
payment_term = fields.Many2One('account.invoice.payment_term',
@@ -52,13 +61,13 @@
'readonly': Eval('state') != 'draft',
},
depends=['state'])
- party = fields.Many2One('party.party', 'Party', change_default=True,
- required=True, select=1, states={
+ party = fields.Many2One('party.party', 'Party', required=True, select=True,
+ states={
'readonly': Eval('state') != 'draft',
}, on_change=['party', 'payment_term'],
depends=['state'])
party_lang = fields.Function(fields.Char('Party Language',
- on_change_with=['party']), 'get_function_fields')
+ on_change_with=['party']), 'on_change_with_party_lang')
invoice_address = fields.Many2One('party.address', 'Invoice Address',
domain=[('party', '=', Eval('party'))], states={
'readonly': Eval('state') != 'draft',
@@ -69,18 +78,18 @@
},
depends=['party', 'state'])
warehouse = fields.Many2One('stock.location', 'Warehouse',
- domain=[('type', '=', 'warehouse')], required=True, states={
+ domain=[('type', '=', 'warehouse')], states={
'readonly': Eval('state') != 'draft',
},
depends=['state'])
currency = fields.Many2One('currency.currency', 'Currency', required=True,
states={
'readonly': (Eval('state') != 'draft') |
- (Eval('lines', []) & Eval('currency', 0)),
+ (Eval('lines', [0]) & Eval('currency', 0)),
},
- depends=['state', 'lines'])
+ depends=['state'])
currency_digits = fields.Function(fields.Integer('Currency Digits',
- on_change_with=['currency']), 'get_function_fields')
+ on_change_with=['currency']), 'on_change_with_currency_digits')
lines = fields.One2Many('sale.line', 'sale', 'Lines', states={
'readonly': Eval('state') != 'draft',
}, on_change=['lines', 'currency', 'party'],
@@ -88,16 +97,28 @@
comment = fields.Text('Comment')
untaxed_amount = fields.Function(fields.Numeric('Untaxed',
digits=(16, Eval('currency_digits', 2)),
- depends=['currency_digits']), 'get_function_fields')
+ depends=['currency_digits']), 'get_untaxed_amount')
+ untaxed_amount_cache = fields.Numeric('Untaxed Cache',
+ digits=(16, Eval('currency_digits', 2)),
+ readonly=True,
+ depends=['currency_digits'])
tax_amount = fields.Function(fields.Numeric('Tax',
digits=(16, Eval('currency_digits', 2)),
- depends=['currency_digits']), 'get_function_fields')
+ depends=['currency_digits']), 'get_tax_amount')
+ tax_amount_cache = fields.Numeric('Tax Cache',
+ digits=(16, Eval('currency_digits', 2)),
+ readonly=True,
+ depends=['currency_digits'])
total_amount = fields.Function(fields.Numeric('Total',
digits=(16, Eval('currency_digits', 2)),
- depends=['currency_digits']), 'get_function_fields')
+ depends=['currency_digits']), 'get_total_amount')
+ total_amount_cache = fields.Numeric('Total Tax',
+ digits=(16, Eval('currency_digits', 2)),
+ readonly=True,
+ depends=['currency_digits'])
invoice_method = fields.Selection([
('manual', 'Manual'),
- ('order', 'On Order Confirmed'),
+ ('order', 'On Order Processed'),
('shipment', 'On Shipment Sent'),
],
'Invoice Method', required=True, states={
@@ -105,24 +126,21 @@
},
depends=['state'])
invoice_state = fields.Selection([
- ('none', 'None'),
- ('waiting', 'Waiting'),
- ('paid', 'Paid'),
- ('exception', 'Exception'),
- ], 'Invoice State', readonly=True, required=True)
+ ('none', 'None'),
+ ('waiting', 'Waiting'),
+ ('paid', 'Paid'),
+ ('exception', 'Exception'),
+ ], 'Invoice State', readonly=True, required=True)
invoices = fields.Many2Many('sale.sale-account.invoice',
'sale', 'invoice', 'Invoices', readonly=True)
invoices_ignored = fields.Many2Many('sale.sale-ignored-account.invoice',
'sale', 'invoice', 'Ignored Invoices', readonly=True)
- invoices_recreated = fields.Many2Many('sale.sale-recreated-account.invoice',
- 'sale', 'invoice', 'Recreated Invoices', readonly=True)
- invoice_paid = fields.Function(fields.Boolean('Invoices Paid'),
- 'get_function_fields')
- invoice_exception = fields.Function(fields.Boolean('Invoices Exception'),
- 'get_function_fields')
+ invoices_recreated = fields.Many2Many(
+ 'sale.sale-recreated-account.invoice', 'sale', 'invoice',
+ 'Recreated Invoices', readonly=True)
shipment_method = fields.Selection([
('manual', 'Manual'),
- ('order', 'On Order Confirmed'),
+ ('order', 'On Order Processed'),
('invoice', 'On Invoice Paid'),
], 'Shipment Method', required=True,
states={
@@ -130,36 +148,87 @@
},
depends=['state'])
shipment_state = fields.Selection([
- ('none', 'None'),
- ('waiting', 'Waiting'),
- ('sent', 'Sent'),
- ('exception', 'Exception'),
- ], 'Shipment State', readonly=True, required=True)
+ ('none', 'None'),
+ ('waiting', 'Waiting'),
+ ('sent', 'Sent'),
+ ('exception', 'Exception'),
+ ], 'Shipment State', readonly=True, required=True)
shipments = fields.Function(fields.One2Many('stock.shipment.out', None,
- 'Shipments'), 'get_function_fields')
+ 'Shipments'), 'get_shipments')
+ shipment_returns = fields.Function(
+ fields.One2Many('stock.shipment.out.return', None, 'Shipment Returns'),
+ 'get_shipment_returns')
moves = fields.Function(fields.One2Many('stock.move', None, 'Moves'),
- 'get_function_fields')
- shipment_done = fields.Function(fields.Boolean('Shipment Done'),
- 'get_function_fields')
- shipment_exception = fields.Function(fields.Boolean('Shipments Exception'),
- 'get_function_fields')
-
- def __init__(self):
- super(Sale, self).__init__()
- self._order[0] = ('sale_date', 'DESC')
- self._order[0] = ('id', 'DESC')
- self._constraints += [
- ('check_method', 'wrong_method')
- ]
- self._error_messages.update({
- 'wrong_method': 'Wrong combination of method!',
- 'addresses_required': 'Invoice and Shipment addresses must be '
- 'defined for the quotation.',
- 'missing_account_receivable': 'It misses '
- 'an "Account Receivable" on the party "%s"!',
- })
+ 'get_moves')
- def init(self, module_name):
+ @classmethod
+ def __setup__(cls):
+ super(Sale, cls).__setup__()
+ cls._order.insert(0, ('sale_date', 'DESC'))
+ cls._order.insert(1, ('id', 'DESC'))
+ cls._error_messages.update({
+ 'invalid_method': ('Invalid combination of shipment and '
+ 'invoicing methods on sale "%s".'),
+ 'addresses_required': ('Invoice and Shipment addresses must be '
+ 'defined for the quotation of sale "%s".'),
+ 'warehouse_required': ('Warehouse must be defined for the '
+ 'quotation of sale "%s".'),
+ 'missing_account_receivable': ('It misses '
+ 'an "Account Receivable" on the party "%s".'),
+ 'delete_cancel': ('Sale "%s" must be cancelled before '
+ 'deletion.'),
+ })
+ cls._transitions |= set((
+ ('draft', 'quotation'),
+ ('quotation', 'confirmed'),
+ ('confirmed', 'processing'),
+ ('processing', 'processing'),
+ ('draft', 'cancel'),
+ ('quotation', 'cancel'),
+ ('quotation', 'draft'),
+ ('cancel', 'draft'),
+ ))
+ cls._buttons.update({
+ 'cancel': {
+ 'invisible': ~Eval('state').in_(['draft', 'quotation']),
+ },
+ 'draft': {
+ 'invisible': ~Eval('state').in_(['cancel', 'quotation']),
+ 'icon': If(Eval('state') == 'cancel', 'tryton-clear',
+ 'tryton-go-previous'),
+ },
+ 'quote': {
+ 'invisible': Eval('state') != 'draft',
+ 'readonly': ~Eval('lines', []),
+ },
+ 'confirm': {
+ 'invisible': Eval('state') != 'quotation',
+ },
+ 'process': {
+ 'invisible': Eval('state') != 'confirmed',
+ },
+ 'handle_invoice_exception': {
+ 'invisible': ((Eval('invoice_state') != 'exception')
+ | (Eval('state') == 'cancel')),
+ 'readonly': ~Eval('groups', []).contains(
+ Id('sale', 'group_sale')),
+ },
+ 'handle_shipment_exception': {
+ 'invisible': ((Eval('shipment_state') != 'exception')
+ | (Eval('state') == 'cancel')),
+ 'readonly': ~Eval('groups', []).contains(
+ Id('sale', 'group_sale')),
+ },
+ })
+ # The states where amounts are cached
+ cls._states_cached = ['confirmed', 'processing', 'done', 'cancel']
+
+ @classmethod
+ def __register__(cls, module_name):
+ pool = Pool()
+ SaleLine = pool.get('sale.line')
+ sale_line_invoice_line_table = 'sale_line_invoice_lines_rel'
+ Move = pool.get('stock.move')
cursor = Transaction().cursor
# Migration from 1.2: packing renamed into shipment
cursor.execute("UPDATE ir_model_data "
@@ -172,618 +241,469 @@
"WHERE (relation like '%%packing%%' "
"OR name like '%%packing%%') AND module = %s",
(module_name,))
- table = TableHandler(cursor, self, module_name)
+ table = TableHandler(cursor, cls, module_name)
table.column_rename('packing_state', 'shipment_state')
table.column_rename('packing_method', 'shipment_method')
table.column_rename('packing_address', 'shipment_address')
- super(Sale, self).init(module_name)
+ super(Sale, cls).__register__(module_name)
# Migration from 1.2
- cursor.execute("UPDATE " + self._table + " "
+ cursor.execute("UPDATE " + cls._table + " "
"SET invoice_method = 'shipment' "
"WHERE invoice_method = 'packing'")
+ table = TableHandler(cursor, cls, module_name)
+ # Migration from 2.2
+ table.not_null_action('sale_date', 'remove')
+
+ # state confirmed splitted into confirmed and processing
+ if (TableHandler.table_exist(cursor, SaleLine._table)
+ and TableHandler.table_exist(cursor,
+ sale_line_invoice_line_table)
+ and TableHandler.table_exist(cursor, Move._table)):
+ # Wrap subquery inside an other inner subquery because MySQL syntax
+ # doesn't allow update a table and select from the same table in a
+ # subquery.
+ cursor.execute('UPDATE "%s" '
+ "SET state = 'processing' "
+ 'WHERE id IN ('
+ 'SELECT id '
+ 'FROM ('
+ 'SELECT s.id '
+ 'FROM "%s" AS s '
+ 'INNER JOIN "%s" AS l ON l.sale = s.id '
+ 'LEFT JOIN "%s" AS li ON li.sale_line = l.id '
+ 'LEFT JOIN "%s" AS m ON m.origin = \'%s,\' || l.id '
+ "WHERE s.state = 'confirmed' "
+ 'AND (li.id IS NOT NULL '
+ 'OR m.id IS NOT NULL)) AS foo)'
+ % (cls._table, cls._table, SaleLine._table,
+ sale_line_invoice_line_table, Move._table,
+ SaleLine.__name__))
+
# Add index on create_date
- table = TableHandler(cursor, self, module_name)
+ table = TableHandler(cursor, cls, module_name)
table.index_action('create_date', action='add')
- def default_payment_term(self):
- payment_term_obj = Pool().get('account.invoice.payment_term')
- payment_term_ids = payment_term_obj.search(self.payment_term.domain)
- if len(payment_term_ids) == 1:
- return payment_term_ids[0]
- return False
-
- def default_warehouse(self):
- location_obj = Pool().get('stock.location')
- location_ids = location_obj.search(self.warehouse.domain)
- if len(location_ids) == 1:
- return location_ids[0]
- return False
+ @classmethod
+ def default_payment_term(cls):
+ PaymentTerm = Pool().get('account.invoice.payment_term')
+ payment_terms = PaymentTerm.search(cls.payment_term.domain)
+ if len(payment_terms) == 1:
+ return payment_terms[0].id
+
+ @classmethod
+ def default_warehouse(cls):
+ Location = Pool().get('stock.location')
+ locations = Location.search(cls.warehouse.domain)
+ if len(locations) == 1:
+ return locations[0].id
+
+ @staticmethod
+ def default_company():
+ return Transaction().context.get('company')
- def default_company(self):
- return Transaction().context.get('company') or False
-
- def default_state(self):
+ @staticmethod
+ def default_state():
return 'draft'
- def default_sale_date(self):
- date_obj = Pool().get('ir.date')
- return date_obj.today()
-
- def default_currency(self):
- company_obj = Pool().get('company.company')
- currency_obj = Pool().get('currency.currency')
+ @staticmethod
+ def default_currency():
+ Company = Pool().get('company.company')
company = Transaction().context.get('company')
if company:
- return company_obj.browse(company).currency.id
- return False
+ return Company(company).currency.id
- def default_currency_digits(self):
- company_obj = Pool().get('company.company')
+ @staticmethod
+ def default_currency_digits():
+ Company = Pool().get('company.company')
company = Transaction().context.get('company')
if company:
- return company_obj.browse(company).currency.digits
+ return Company(company).currency.digits
return 2
- def default_invoice_method(self):
- config_obj = Pool().get('sale.configuration')
- config = config_obj.browse(1)
+ @staticmethod
+ def default_invoice_method():
+ Config = Pool().get('sale.configuration')
+ config = Config(1)
return config.sale_invoice_method
- def default_invoice_state(self):
+ @staticmethod
+ def default_invoice_state():
return 'none'
- def default_shipment_method(self):
- config_obj = Pool().get('sale.configuration')
- config = config_obj.browse(1)
+ @staticmethod
+ def default_shipment_method():
+ Config = Pool().get('sale.configuration')
+ config = Config(1)
return config.sale_shipment_method
- def default_shipment_state(self):
+ @staticmethod
+ def default_shipment_state():
return 'none'
- def on_change_party(self, vals):
- pool = Pool()
- party_obj = pool.get('party.party')
- address_obj = pool.get('party.address')
- payment_term_obj = pool.get('account.invoice.payment_term')
- res = {
- 'invoice_address': False,
- 'shipment_address': False,
- 'payment_term': False,
- }
- if vals.get('party'):
- party = party_obj.browse(vals['party'])
- res['invoice_address'] = party_obj.address_get(party.id,
- type='invoice')
- res['shipment_address'] = party_obj.address_get(party.id,
- type='delivery')
- if party.payment_term:
- res['payment_term'] = party.payment_term.id
-
- if res['invoice_address']:
- res['invoice_address.rec_name'] = address_obj.browse(
- res['invoice_address']).rec_name
- if res['shipment_address']:
- res['shipment_address.rec_name'] = address_obj.browse(
- res['shipment_address']).rec_name
- if not res['payment_term']:
- res['payment_term'] = self.default_payment_term()
- if res['payment_term']:
- res['payment_term.rec_name'] = payment_term_obj.browse(
- res['payment_term']).rec_name
- return res
-
- def on_change_with_currency_digits(self, vals):
- currency_obj = Pool().get('currency.currency')
- if vals.get('currency'):
- currency = currency_obj.browse(vals['currency'])
- return currency.digits
- return 2
-
- def get_currency_digits(self, sales):
- '''
- Return the number of digits of the currency of each sales
-
- :param sales: a BrowseRecordList of puchases
- :return: a dictionary with sale id as key and
- number of digits as value
- '''
- res = {}
- for sale in sales:
- res[sale.id] = sale.currency.digits
- return res
-
- def get_tax_context(self, sale):
- party_obj = Pool().get('party.party')
- res = {}
- if isinstance(sale, dict):
- if sale.get('party'):
- party = party_obj.browse(sale['party'])
- if party.lang:
- res['language'] = party.lang.code
+ def on_change_party(self):
+ invoice_address = None
+ shipment_address = None
+ payment_term = None
+ if self.party:
+ invoice_address = self.party.address_get(type='invoice')
+ shipment_address = self.party.address_get(type='delivery')
+ if self.party.customer_payment_term:
+ payment_term = self.party.customer_payment_term
+
+ changes = {}
+ if invoice_address:
+ changes['invoice_address'] = invoice_address.id
+ changes['invoice_address.rec_name'] = invoice_address.rec_name
else:
- if sale.party.lang:
- res['language'] = sale.party.lang.code
- return res
-
- def on_change_with_party_lang(self, vals):
- party_obj = Pool().get('party.party')
- if vals.get('party'):
- party = party_obj.browse(vals['party'])
- if party.lang:
- return party.lang.code
- return 'en_US'
+ changes['invoice_address'] = None
+ if shipment_address:
+ changes['shipment_address'] = shipment_address.id
+ changes['shipment_address.rec_name'] = shipment_address.rec_name
+ else:
+ changes['shipment_address'] = None
+ if payment_term:
+ changes['payment_term'] = payment_term.id
+ changes['payment_term.rec_name'] = payment_term.rec_name
+ else:
+ changes['payment_term'] = self.default_payment_term()
+ return changes
- def get_party_lang(self, sales):
- '''
- Return the code lang of the party for each sales
+ def on_change_with_currency_digits(self, name=None):
+ if self.currency:
+ return self.currency.digits
+ return 2
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- code lang as value
- '''
+ def get_tax_context(self):
res = {}
- for sale in sales:
- if sale.party.lang:
- res[sale.id] = sale.party.lang.code
- else:
- res[sale.id] = 'en_US'
+ if self.party and self.party.lang:
+ res['language'] = self.party.lang.code
return res
+ def on_change_with_party_lang(self, name=None):
+ Config = Pool().get('ir.configuration')
+ if self.party and self.party.lang:
+ return self.party.lang.code
+ return Config.get_language()
- def on_change_lines(self, vals):
+ def on_change_lines(self):
pool = Pool()
- currency_obj = pool.get('currency.currency')
- tax_obj = pool.get('account.tax')
- invoice_obj = pool.get('account.invoice')
+ Tax = pool.get('account.tax')
+ Invoice = pool.get('account.invoice')
res = {
'untaxed_amount': Decimal('0.0'),
'tax_amount': Decimal('0.0'),
'total_amount': Decimal('0.0'),
- }
-
- currency = None
- if vals.get('currency'):
- currency = currency_obj.browse(vals['currency'])
+ }
- if vals.get('lines'):
+ if self.lines:
taxes = {}
- for line in vals['lines']:
- if line.get('type', 'line') != 'line':
+ for line in self.lines:
+ if getattr(line, 'type', 'line') != 'line':
continue
- res['untaxed_amount'] += line.get('amount', Decimal('0.0'))
+ res['untaxed_amount'] += line.amount or Decimal(0)
tax_list = ()
- with Transaction().set_context(self.get_tax_context(vals)):
- tax_list = tax_obj.compute(line.get('taxes', []),
- line.get('unit_price', Decimal('0.0')),
- line.get('quantity', 0.0))
+ with Transaction().set_context(self.get_tax_context()):
+ tax_list = Tax.compute(getattr(line, 'taxes', []),
+ line.unit_price or Decimal('0.0'),
+ line.quantity or 0.0)
for tax in tax_list:
- key, val = invoice_obj._compute_tax(tax,'out_invoice')
+ key, val = Invoice._compute_tax(tax, 'out_invoice')
if not key in taxes:
taxes[key] = val['amount']
else:
taxes[key] += val['amount']
- if currency:
+ if self.currency:
for key in taxes:
- res['tax_amount'] += currency_obj.round(currency,
- taxes[key])
- if currency:
- res['untaxed_amount'] = currency_obj.round(currency,
- res['untaxed_amount'])
- res['tax_amount'] = currency_obj.round(currency,
- res['tax_amount'])
+ res['tax_amount'] += self.currency.round(taxes[key])
+ if self.currency:
+ res['untaxed_amount'] = self.currency.round(res['untaxed_amount'])
+ res['tax_amount'] = self.currency.round(res['tax_amount'])
res['total_amount'] = res['untaxed_amount'] + res['tax_amount']
- if currency:
- res['total_amount'] = currency_obj.round(currency,
- res['total_amount'])
- return res
-
- def get_function_fields(self, ids, names):
- '''
- Function to compute function fields for sale ids
-
- :param ids: the ids of the sales
- :param names: the list of field name to compute
- :return: a dictionary with all field names as key and
- a dictionary as value with id as key
- '''
- res = {}
- sales = self.browse(ids)
- if 'currency_digits' in names:
- res['currency_digits'] = self.get_currency_digits(sales)
- if 'party_lang' in names:
- res['party_lang'] = self.get_party_lang(sales)
- if 'untaxed_amount' in names:
- res['untaxed_amount'] = self.get_untaxed_amount(sales)
- if 'tax_amount' in names:
- res['tax_amount'] = self.get_tax_amount(sales)
- if 'total_amount' in names:
- res['total_amount'] = self.get_total_amount(sales)
- if 'invoice_paid' in names:
- res['invoice_paid'] = self.get_invoice_paid(sales)
- if 'invoice_exception' in names:
- res['invoice_exception'] = self.get_invoice_exception(sales)
- if 'shipments' in names:
- res['shipments'] = self.get_shipments(sales)
- if 'moves' in names:
- res['moves'] = self.get_moves(sales)
- if 'shipment_done' in names:
- res['shipment_done'] = self.get_shipment_done(sales)
- if 'shipment_exception' in names:
- res['shipment_exception'] = self.get_shipment_exception(sales)
- return res
-
- def get_untaxed_amount(self, sales):
- '''
- Compute the untaxed amount for each sales
-
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- untaxed amount as value
- '''
- currency_obj = Pool().get('currency.currency')
- res = {}
- for sale in sales:
- res.setdefault(sale.id, Decimal('0.0'))
- for line in sale.lines:
- if line.type != 'line':
- continue
- res[sale.id] += line.amount
- res[sale.id] = currency_obj.round(sale.currency, res[sale.id])
+ if self.currency:
+ res['total_amount'] = self.currency.round(res['total_amount'])
return res
- def get_tax_amount(self, sales):
- '''
- Compute tax amount for each sales
+ def get_untaxed_amount(self, name):
+ if (self.state in self._states_cached
+ and self.untaxed_amount_cache is not None):
+ return self.untaxed_amount_cache
+ amount = sum((l.amount for l in self.lines if l.type == 'line'),
+ Decimal(0))
+ return self.currency.round(amount)
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- tax amount as value
- '''
+ def get_tax_amount(self, name):
pool = Pool()
- currency_obj = pool.get('currency.currency')
- tax_obj = pool.get('account.tax')
- invoice_obj = pool.get('account.invoice')
-
- res = {}
- for sale in sales:
- res.setdefault(sale.id, Decimal('0.0'))
- taxes = {}
- for line in sale.lines:
- if line.type != 'line':
- continue
- # Don't round on each line to handle rounding error
- tax_list = ()
- with Transaction().set_context(self.get_tax_context(sale)):
- tax_list = tax_obj.compute(
- [t.id for t in line.taxes], line.unit_price,
- line.quantity)
- for tax in tax_list:
- key, val = invoice_obj._compute_tax(tax, 'out_invoice')
- if not key in taxes:
- taxes[key] = val['amount']
- else:
- taxes[key] += val['amount']
- for key in taxes:
- res[sale.id] += currency_obj.round(sale.currency, taxes[key])
- res[sale.id] = currency_obj.round(sale.currency, res[sale.id])
- return res
-
- def get_total_amount(self, sales):
- '''
- Return the total amount of each sales
-
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- total amount as value
- '''
- currency_obj = Pool().get('currency.currency')
- res = {}
- untaxed_amounts = self.get_untaxed_amount(sales)
- tax_amounts = self.get_tax_amount(sales)
- for sale in sales:
- res[sale.id] = currency_obj.round(sale.currency,
- untaxed_amounts[sale.id] + tax_amounts[sale.id])
- return res
+ Tax = pool.get('account.tax')
+ Invoice = pool.get('account.invoice')
- def get_invoice_paid(self, sales):
- '''
- Return if all invoices have been paid for each sales
-
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- a boolean as value
- '''
- res = {}
- for sale in sales:
- val = True
- skip_ids = set(x.id for x in sale.invoices_ignored)
- skip_ids.update(x.id for x in sale.invoices_recreated)
- for invoice in sale.invoices:
- if invoice.state != 'paid' \
- and invoice.id not in skip_ids:
- val = False
- break
- res[sale.id] = val
- return res
-
- def get_invoice_exception(self, sales):
- '''
- Return if there is an invoice exception for each sales
+ if (self.state in self._states_cached
+ and self.tax_amount_cache is not None):
+ return self.tax_amount_cache
+ context = self.get_tax_context()
+ taxes = {}
+ for line in self.lines:
+ if line.type != 'line':
+ continue
+ with Transaction().set_context(context):
+ tax_list = Tax.compute(line.taxes, line.unit_price,
+ line.quantity)
+ # Don't round on each line to handle rounding error
+ for tax in tax_list:
+ key, val = Invoice._compute_tax(tax, 'out_invoice')
+ if not key in taxes:
+ taxes[key] = val['amount']
+ else:
+ taxes[key] += val['amount']
+ amount = sum((self.currency.round(taxes[key]) for key in taxes),
+ Decimal(0))
+ return self.currency.round(amount)
+
+ def get_total_amount(self, name):
+ if (self.state in self._states_cached
+ and self.total_amount_cache is not None):
+ return self.total_amount_cache
+ return self.currency.round(self.untaxed_amount + self.tax_amount)
+
+ def get_invoice_state(self):
+ '''
+ Return the invoice state for the sale.
+ '''
+ skip_ids = set(x.id for x in self.invoices_ignored)
+ skip_ids.update(x.id for x in self.invoices_recreated)
+ invoices = [i for i in self.invoices if i.id not in skip_ids]
+ if invoices:
+ if any(i.state == 'cancel' for i in invoices):
+ return 'exception'
+ elif all(i.state == 'paid' for i in invoices):
+ return 'paid'
+ else:
+ return 'waiting'
+ return 'none'
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- a boolean as value
+ def set_invoice_state(self):
'''
- res = {}
- for sale in sales:
- val = False
- skip_ids = set(x.id for x in sale.invoices_ignored)
- skip_ids.update(x.id for x in sale.invoices_recreated)
- for invoice in sale.invoices:
- if invoice.state == 'cancel' \
- and invoice.id not in skip_ids:
- val = True
- break
- res[sale.id] = val
- return res
-
- def get_shipments(self, sales):
+ Set the invoice state.
'''
- Return shipment_out ids for each sales
+ state = self.get_invoice_state()
+ if self.invoice_state != state:
+ self.write([self], {
+ 'invoice_state': state,
+ })
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- a list of shipment_out id as value
- '''
- res = {}
- for sale in sales:
- res[sale.id] = []
- for line in sale.lines:
+ def get_shipments_returns(model_name):
+ "Computes the returns or shipments"
+ def method(self, name):
+ Model = Pool().get(model_name)
+ shipments = set()
+ for line in self.lines:
for move in line.moves:
- if move.shipment_out:
- if move.shipment_out.id not in res[sale.id]:
- res[sale.id].append(move.shipment_out.id)
- return res
-
- def get_moves(self, sales):
- '''
- Return move ids for each sales
-
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- a list of move ids as value
- '''
- res = {}
- for sale in sales:
- res[sale.id] = []
- for line in sale.lines:
- res[sale.id].extend([x.id for x in line.moves])
- return res
+ if isinstance(move.shipment, Model):
+ shipments.add(move.shipment.id)
+ return list(shipments)
+ return method
+
+ get_shipments = get_shipments_returns('stock.shipment.out')
+ get_shipment_returns = get_shipments_returns('stock.shipment.out.return')
+
+ def get_moves(self, name):
+ return [m.id for l in self.lines for m in l.moves]
+
+ def get_shipment_state(self):
+ '''
+ Return the shipment state for the sale.
+ '''
+ if self.moves:
+ if any(l.move_exception for l in self.lines):
+ return 'exception'
+ elif all(l.move_done for l in self.lines):
+ return 'sent'
+ else:
+ return 'waiting'
+ return 'none'
- def get_shipment_done(self, sales):
+ def set_shipment_state(self):
'''
- Return if all the shipments have been done for each sales
-
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- a boolean as value
+ Set the shipment state.
'''
- res = {}
- for sale in sales:
- val = True
- for line in sale.lines:
- if not line.move_done:
- val = False
- break
- res[sale.id] = val
- return res
-
- def get_shipment_exception(self, sales):
- '''
- Return if there is a shipment exception for each sales
+ state = self.get_shipment_state()
+ if self.shipment_state != state:
+ self.write([self], {
+ 'shipment_state': state,
+ })
- :param sales: a BrowseRecordList of sales
- :return: a dictionary with sale id as key and
- a boolean as value
- '''
- res = {}
+ @classmethod
+ def validate(cls, sales):
+ super(Sale, cls).validate(sales)
for sale in sales:
- val = False
- for line in sale.lines:
- if line.move_exception:
- val = True
- break
- res[sale.id] = val
- return res
+ sale.check_method()
- def check_method(self, ids):
+ def check_method(self):
'''
Check the methods.
'''
- for sale in self.browse(ids):
- if sale.invoice_method == 'shipment' \
- and sale.shipment_method in ('invoice', 'manual'):
- return False
- if sale.shipment_method == 'invoice' \
- and sale.invoice_method in ('shipment', 'manual'):
- return False
- return True
-
- def get_rec_name(self, ids, name):
- if not ids:
- return []
- res = {}
- for sale in self.browse(ids):
- res[sale.id] = sale.reference or str(sale.id) \
- + ' - ' + sale.party.rec_name
- return res
+ if (self.invoice_method == 'shipment'
+ and self.shipment_method in ('invoice', 'manual')):
+ self.raise_user_error('invalid_method', (self.rec_name,))
+ if (self.shipment_method == 'invoice'
+ and self.invoice_method in ('shipment', 'manual')):
+ self.raise_user_error('invalid_method', (self.rec_name,))
+
+ def get_rec_name(self, name):
+ return (self.reference or str(self.id)
+ + ' - ' + self.party.rec_name)
- def search_rec_name(self, name, clause):
+ @classmethod
+ def search_rec_name(cls, name, clause):
names = clause[2].split(' - ', 1)
res = [('reference', clause[1], names[0])]
if len(names) != 1 and names[1]:
res.append(('party', clause[1], names[1]))
return res
- def copy(self, ids, default=None):
+ @classmethod
+ def copy(cls, sales, default=None):
if default is None:
default = {}
default = default.copy()
default['state'] = 'draft'
- default['reference'] = False
+ default['reference'] = None
default['invoice_state'] = 'none'
- default['invoices'] = False
- default['invoices_ignored'] = False
+ default['invoices'] = None
+ default['invoices_ignored'] = None
default['shipment_state'] = 'none'
- return super(Sale, self).copy(ids, default=default)
+ default.setdefault('sale_date', None)
+ return super(Sale, cls).copy(sales, default=default)
- def check_for_quotation(self, sale_id):
- sale = self.browse(sale_id)
- if not sale.invoice_address or not sale.shipment_address:
- self.raise_user_error('addresses_required')
- return True
+ def check_for_quotation(self):
+ if not self.invoice_address or not self.shipment_address:
+ self.raise_user_error('addresses_required', (self.rec_name,))
+ for line in self.lines:
+ if line.quantity >= 0:
+ location = line.from_location
+ else:
+ location = line.to_location
+ if ((not location or not line.warehouse)
+ and line.product
+ and line.product.type in ('goods', 'assets')):
+ self.raise_user_error('warehouse_required',
+ (self.rec_name,))
- def set_reference(self, sale_id):
+ @classmethod
+ def set_reference(cls, sales):
'''
Fill the reference field with the sale sequence
-
- :param sale_id: the id of the sale
-
- :return: True if succeed
'''
- sequence_obj = Pool().get('ir.sequence')
- config_obj = Pool().get('sale.configuration')
-
- sale = self.browse(sale_id)
-
- if sale.reference:
- return True
+ pool = Pool()
+ Sequence = pool.get('ir.sequence')
+ Config = pool.get('sale.configuration')
- config = config_obj.browse(1)
- reference = sequence_obj.get_id(config.sale_sequence.id)
- self.write(sale_id, {
- 'reference': reference,
- })
- return True
+ config = Config(1)
+ for sale in sales:
+ if sale.reference:
+ continue
+ reference = Sequence.get_id(config.sale_sequence.id)
+ cls.write([sale], {
+ 'reference': reference,
+ })
- def set_sale_date(self, sale_id):
- date_obj = Pool().get('ir.date')
+ @classmethod
+ def set_sale_date(cls, sales):
+ Date = Pool().get('ir.date')
+ for sale in sales:
+ if not sale.sale_date:
+ cls.write([sale], {
+ 'sale_date': Date.today(),
+ })
- self.write(sale_id, {
- 'sale_date': date_obj.today(),
- })
- return True
+ @classmethod
+ def store_cache(cls, sales):
+ for sale in sales:
+ cls.write([sale], {
+ 'untaxed_amount_cache': sale.untaxed_amount,
+ 'tax_amount_cache': sale.tax_amount,
+ 'total_amount_cache': sale.total_amount,
+ })
- def _get_invoice_line_sale_line(self, sale):
+ def _get_invoice_line_sale_line(self, invoice_type):
'''
- Return invoice line values for each sale lines
-
- :param sale: the BrowseRecord of the sale
-
- :return: a dictionary with invoiced sale line id as key
- and a list of invoice lines values as value
+ Return invoice line for each sale lines according to invoice_type
'''
- line_obj = Pool().get('sale.line')
res = {}
- for line in sale.lines:
- val = line_obj.get_invoice_line(line)
+ for line in self.lines:
+ val = line.get_invoice_line(invoice_type)
if val:
res[line.id] = val
return res
- def _get_invoice_sale(self, sale):
+ def _get_invoice_sale(self, invoice_type):
'''
- Return invoice values for sale
-
- :param sale: the BrowseRecord of the sale
-
- :return: a dictionary with invoice fields as key and
- invoice values as value
+ Return invoice of type invoice_type
'''
- journal_obj = Pool().get('account.journal')
+ pool = Pool()
+ Invoice = pool.get('account.invoice')
+ Journal = pool.get('account.journal')
- journal_id = journal_obj.search([
- ('type', '=', 'revenue'),
- ], limit=1)
- if journal_id:
- journal_id = journal_id[0]
+ journals = Journal.search([
+ ('type', '=', 'revenue'),
+ ], limit=1)
+ if journals:
+ journal, = journals
+ else:
+ journal = None
- res = {
- 'company': sale.company.id,
- 'type': 'out_invoice',
- 'reference': sale.reference,
- 'journal': journal_id,
- 'party': sale.party.id,
- 'invoice_address': sale.invoice_address.id,
- 'currency': sale.currency.id,
- 'account': sale.party.account_receivable.id,
- 'payment_term': sale.payment_term.id,
- }
- return res
+ with Transaction().set_user(0, set_context=True):
+ return Invoice(
+ company=self.company,
+ type=invoice_type,
+ reference=self.reference,
+ journal=journal,
+ party=self.party,
+ invoice_address=self.invoice_address,
+ currency=self.currency,
+ account=self.party.account_receivable,
+ payment_term=self.payment_term,
+ )
- def create_invoice(self, sale_id):
+ def create_invoice(self, invoice_type):
'''
- Create an invoice for the sale
-
- :param sale_id: the sale id
-
- :return: the created invoice id or None
+ Create and return an invoice of type invoice_type
'''
pool = Pool()
- invoice_obj = pool.get('account.invoice')
- invoice_line_obj = pool.get('account.invoice.line')
- sale_line_obj = pool.get('sale.line')
-
- sale = self.browse(sale_id)
+ Invoice = pool.get('account.invoice')
+ if self.invoice_method == 'manual':
+ return
- if not sale.party.account_receivable:
+ if not self.party.account_receivable:
self.raise_user_error('missing_account_receivable',
- error_args=(sale.party.rec_name,))
+ (self.party.rec_name,))
- invoice_lines = self._get_invoice_line_sale_line(sale)
+ invoice_lines = self._get_invoice_line_sale_line(invoice_type)
if not invoice_lines:
return
+ invoice = self._get_invoice_sale(invoice_type)
+ invoice.lines = list(chain.from_iterable(invoice_lines.itervalues()))
+ invoice.save()
- vals = self._get_invoice_sale(sale)
with Transaction().set_user(0, set_context=True):
- invoice_id = invoice_obj.create(vals)
+ Invoice.update_taxes([invoice])
- for line in sale.lines:
- if line.id not in invoice_lines:
- continue
- for vals in invoice_lines[line.id]:
- vals['invoice'] = invoice_id
- with Transaction().set_user(0, set_context=True):
- invoice_line_id = invoice_line_obj.create(vals)
- sale_line_obj.write(line.id, {
- 'invoice_lines': [('add', invoice_line_id)],
- })
-
- with Transaction().set_user(0, set_context=True):
- invoice_obj.update_taxes([invoice_id])
-
- self.write(sale_id, {
- 'invoices': [('add', invoice_id)],
- })
- return invoice_id
+ self.write([self], {
+ 'invoices': [('add', [invoice.id])],
+ })
+ return invoice
- def _get_move_sale_line(self, sale):
+ def _get_move_sale_line(self, shipment_type):
'''
- Return a dictionary of move values for each sale lines
-
- :param sale: the BrowseRecord of the sale
-
- :return: a dictionary with move as key and move values as value
+ Return move for each sale lines of the right shipment_type
'''
- line_obj = Pool().get('sale.line')
res = {}
- for line in sale.lines:
- val = line_obj.get_move(line)
+ for line in self.lines:
+ val = line.get_move(shipment_type)
if val:
res[line.id] = val
return res
@@ -792,251 +712,179 @@
'''
The key to group moves by shipments
- :param moves: a list of moves values
- :param move: a tuple of line id and a dictionary of the move values
-
- :return: a list of key-value as tuples of the shipment
+ move is a tuple of line id and a move
'''
- planned_date = max(m['planned_date'] for m in moves)
- return (('planned_date', planned_date),)
+ SaleLine = Pool().get('sale.line')
+ line_id, move = move
+ line = SaleLine(line_id)
- def create_shipment(self, sale_id):
- '''
- Create a shipment for the sale
+ planned_date = max(m.planned_date for m in moves)
+ return (
+ ('planned_date', planned_date),
+ ('warehouse', line.warehouse.id),
+ )
- :param sale_id: the sale id
+ _group_return_key = _group_shipment_key
- :return: the list of created shipment id or None
+ def create_shipment(self, shipment_type):
+ '''
+ Create and return shipments of type shipment_type
'''
pool = Pool()
- shipment_obj = pool.get('stock.shipment.out')
- move_obj = pool.get('stock.move')
- sale_line_obj = pool.get('sale.line')
- sale = self.browse(sale_id)
+ if self.shipment_method == 'manual':
+ return
- moves = self._get_move_sale_line(sale)
+ moves = self._get_move_sale_line(shipment_type)
if not moves:
return
- keyfunc = partial(self._group_shipment_key, moves.values())
+ if shipment_type == 'out':
+ keyfunc = partial(self._group_shipment_key, moves.values())
+ Shipment = pool.get('stock.shipment.out')
+ elif shipment_type == 'return':
+ keyfunc = partial(self._group_return_key, moves.values())
+ Shipment = pool.get('stock.shipment.out.return')
moves = moves.items()
moves = sorted(moves, key=keyfunc)
shipments = []
- with Transaction().set_user(0, set_context=True):
- for key, grouped_moves in groupby(moves, key=keyfunc):
- values = {
- 'customer': sale.party.id,
- 'delivery_address': sale.shipment_address.id,
- 'reference': sale.reference,
- 'warehouse': sale.warehouse.id,
- 'company': sale.company.id,
- }
- values.update(dict(key))
- shipment_id = shipment_obj.create(values)
- shipments.append(shipment_id)
- for line_id, values in grouped_moves:
- values['shipment_out'] = shipment_id
- move_id = move_obj.create(values)
- sale_line_obj.write(line_id, {
- 'moves': [('add', move_id)],
- })
- shipment_obj.workflow_trigger_validate(shipment_id, 'waiting')
+ for key, grouped_moves in groupby(moves, key=keyfunc):
+ values = {
+ 'customer': self.party.id,
+ 'delivery_address': self.shipment_address.id,
+ 'reference': self.reference,
+ 'company': self.company.id,
+ }
+ values.update(dict(key))
+ with Transaction().set_user(0, set_context=True):
+ shipment = Shipment(**values)
+ shipment.moves = [x[1] for x in grouped_moves]
+ shipment.save()
+ shipments.append(shipment)
+ if shipment_type == 'out':
+ with Transaction().set_user(0, set_context=True):
+ Shipment.wait(shipments)
return shipments
- def wkf_draft(self, sale):
- self.write(sale.id, {'state': 'draft'})
-
- def wkf_quotation(self, sale):
- self.check_for_quotation(sale.id)
- self.set_reference(sale.id)
- self.write(sale.id, {'state': 'quotation'})
-
- def wkf_confirmed(self, sale):
- self.set_sale_date(sale.id)
- self.write(sale.id, {'state': 'confirmed'})
-
- def wkf_waiting_invoice_sale(self, sale):
- self.create_invoice(sale.id)
- self.write(sale.id, {'invoice_state': 'waiting'})
-
- def wkf_invoice_sale_exception(self, sale):
- self.write(sale.id, {'invoice_state': 'exception'})
-
- def wkf_invoice_sale_done(self, sale):
- self.write(sale.id, {'invoice_state': 'paid'})
-
- def wkf_shipment_invoice(self, sale):
- self.create_shipment(sale.id)
-
- def wkf_waiting_shipment_invoice(self, sale):
- self.write(sale.id, {'shipment_state': 'waiting'})
- self.create_shipment(sale.id)
-
- def wkf_shipment_invoice_exception(self, sale):
- self.write(sale.id, {'shipment_state': 'exception'})
-
- def wkf_shipment_invoice_done(self, sale):
- self.write(sale.id, {'shipment_state': 'sent'})
-
- def wkf_shipment(self, sale):
- self.create_shipment(sale.id)
-
- def wkf_waiting_shipment(self, sale):
- self.write(sale.id, {'shipment_state': 'waiting'})
- self.create_shipment(sale.id)
-
- def wkf_shipment_exception(self, sale):
- self.write(sale.id, {'shipment_state': 'exception'})
-
- def wkf_invoice_shipment(self, sale):
- self.create_invoice(sale.id)
- self.write(sale.id, {'invoice_state': 'waiting'})
-
- def wkf_waiting_invoice_shipment(self, sale):
- self.write(sale.id,
- {'invoice_state': 'waiting', 'shipment_state': 'sent'})
-
- def wkf_invoice_shipment_exception(self, sale):
- self.write(sale.id, {'invoice_state': 'exception'})
-
- def wkf_invoice_shipment_done(self, sale):
- self.write(sale.id, {'invoice_state': 'paid'})
-
- def wkf_invoice_shipment_method_done(self, sale):
- self.write(sale.id, {'shipment_state': 'sent'})
-
- def wkf_done(self, sale):
- self.write(sale.id, {'state': 'done'})
-
- def wkf_cancel(self, sale):
- self.write(sale.id, {'state': 'cancel'})
-
- def wkf_draft2quotation(self, sale):
- return bool(sale.lines)
-
- def wkf_invoice_method2waiting_invoice_sale(self, sale):
- return sale.invoice_method == 'order'
-
- def wkf_invoice_method2invoice_method_done(self, sale):
- return sale.invoice_method != 'order'
-
- def wkf_triggered_invoices(self, sale):
- return [x.id for x in sale.invoices]
-
- def wkf_waiting_invoice_sale2invoice_sale_exception(self, sale):
- return sale.invoice_exception
-
- def wkf_waiting_invoice_sale2invoice_sale_done(self, sale):
- return sale.invoice_paid
-
- def wkf_shipment_invoice_method2shipment_invoice_method_done(self, sale):
- return sale.shipment_method != 'invoice'
-
- def wkf_shipment_invoice_method2shipment_invoice(self, sale):
- return self.shipment_method == 'invoice'
-
- def wkf_triggered_shipments(self, sale):
- return [x.id for x in sale.shipments]
-
- def wkf_waiting_shipment_invoice2shipment_invoice_exception(self, sale):
- return sale.shipment_exception
-
- def wkf_waiting_shipment_invoice2shipment_invoice_done(self, sale):
- return sale.shipment_done
-
- def wkf_shipment_method2shipment_method_done(self, sale):
- return sale.shipment_method != 'order'
-
- def wkf_shipment_method2shipment(self, sale):
- return sale.shipment_method == 'order'
-
- def wkf_waiting_shipment2shipment_exception(self, sale):
- return sale.shipment_exception
-
- def wkf_waiting_shipment2invoice_shipment_method(self, sale):
- return not sale.shipment_exception
-
- def wkf_waiting_shipment2invoice_shipment_method_nosignal(self, sale):
- return sale.shipment_done
-
- def wkf_invoice_shipment_method2invoice_shipment(self, sale):
- return sale.invoice_method == 'shipment'
-
- def wkf_invoice_shipment_method2invoice_shipment_method_done(self, sale):
- return sale.invoice_method != 'shipment' and sale.shipment_done
-
- def wkf_invoice_shipment_method2waiting_shipment(self, sale):
- return sale.invoice_method != 'shipment' and not sale.shipment_done
-
- def wkf_invoice_shipment2waiting_shipment(self, sale):
- return not sale.shipment_done
-
- def wkf_invoice_shipment2waiting_invoice_shipment(self, sale):
- return sale.shipment_done
-
- def wkf_waiting_invoice_shipment2invoice_shipment_exception(self, sale):
- return sale.invoice_exception
-
- def wkf_waiting_invoice_shipment2invoice_shipment_done(self, sale):
- return sale.invoice_paid
+ def is_done(self):
+ return ((self.invoice_state == 'paid'
+ or self.invoice_method == 'manual')
+ and (self.shipment_state == 'sent'
+ or self.shipment_method == 'manual'))
+
+ @classmethod
+ def delete(cls, sales):
+ # Cancel before delete
+ cls.cancel(sales)
+ for sale in sales:
+ if sale.state != 'cancel':
+ cls.raise_user_error('delete_cancel', (sale.rec_name,))
+ super(Sale, cls).delete(sales)
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('cancel')
+ def cancel(cls, sales):
+ cls.store_cache(sales)
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('draft')
+ def draft(cls, sales):
+ pass
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('quotation')
+ def quote(cls, sales):
+ for sale in sales:
+ sale.check_for_quotation()
+ cls.set_reference(sales)
-Sale()
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('confirmed')
+ def confirm(cls, sales):
+ cls.set_sale_date(sales)
+ cls.store_cache(sales)
+
+ @classmethod
+ @ModelView.button_action('sale.wizard_invoice_handle_exception')
+ def handle_invoice_exception(cls, sales):
+ pass
+
+ @classmethod
+ @ModelView.button_action('sale.wizard_shipment_handle_exception')
+ def handle_shipment_exception(cls, sales):
+ pass
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('processing')
+ def process(cls, sales):
+ done = []
+ for sale in sales:
+ if sale.state in ('done', 'cancel'):
+ continue
+ sale.create_invoice('out_invoice')
+ sale.create_invoice('out_credit_note')
+ sale.set_invoice_state()
+ sale.create_shipment('out')
+ sale.create_shipment('return')
+ sale.set_shipment_state()
+ if sale.is_done():
+ done.append(sale)
+ if done:
+ cls.write(done, {
+ 'state': 'done',
+ })
class SaleInvoice(ModelSQL):
'Sale - Invoice'
- _name = 'sale.sale-account.invoice'
+ __name__ = 'sale.sale-account.invoice'
_table = 'sale_invoices_rel'
- _description = __doc__
- sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE', select=1,
- required=True)
+ sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE',
+ select=True, required=True)
invoice = fields.Many2One('account.invoice', 'Invoice',
- ondelete='RESTRICT', select=1, required=True)
-
-SaleInvoice()
+ ondelete='RESTRICT', select=True, required=True)
class SaleIgnoredInvoice(ModelSQL):
'Sale - Ignored Invoice'
- _name = 'sale.sale-ignored-account.invoice'
+ __name__ = 'sale.sale-ignored-account.invoice'
_table = 'sale_invoice_ignored_rel'
- _description = __doc__
- sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE', select=1,
- required=True)
+ sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE',
+ select=True, required=True)
invoice = fields.Many2One('account.invoice', 'Invoice',
- ondelete='RESTRICT', select=1, required=True)
-
-SaleIgnoredInvoice()
+ ondelete='RESTRICT', select=True, required=True)
class SaleRecreatedInvoice(ModelSQL):
'Sale - Recreated Invoice'
- _name = 'sale.sale-recreated-account.invoice'
+ __name__ = 'sale.sale-recreated-account.invoice'
_table = 'sale_invoice_recreated_rel'
- _description = __doc__
- sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE', select=1,
- required=True)
+ sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE',
+ select=True, required=True)
invoice = fields.Many2One('account.invoice', 'Invoice',
- ondelete='RESTRICT', select=1, required=True)
-
-SaleRecreatedInvoice()
+ ondelete='RESTRICT', select=True, required=True)
class SaleLine(ModelSQL, ModelView):
'Sale Line'
- _name = 'sale.line'
+ __name__ = 'sale.line'
_rec_name = 'description'
- _description = __doc__
-
- sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE', select=1)
- sequence = fields.Integer('Sequence')
+ sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE',
+ select=True)
+ sequence = fields.Integer('Sequence',
+ order_field='(%(table)s.sequence IS NULL) %(order)s, '
+ '%(table)s.sequence %(order)s')
type = fields.Selection([
('line', 'Line'),
('subtotal', 'Subtotal'),
('title', 'Title'),
('comment', 'Comment'),
- ], 'Type', select=1, required=True)
+ ], 'Type', select=True, required=True)
quantity = fields.Float('Quantity',
digits=(16, Eval('unit_digits', 2)),
states={
@@ -1044,25 +892,25 @@
'required': Eval('type') == 'line',
'readonly': ~Eval('_parent_sale', {}),
}, on_change=['product', 'quantity', 'unit',
- '_parent_sale.currency', '_parent_sale.party'],
+ '_parent_sale.currency', '_parent_sale.party',
+ '_parent_sale.sale_date'],
depends=['type', 'unit_digits'])
unit = fields.Many2One('product.uom', 'Unit',
states={
'required': Bool(Eval('product')),
'invisible': Eval('type') != 'line',
'readonly': ~Eval('_parent_sale', {}),
- }, domain=[
- ('category', '=',
- (Eval('product'), 'product.default_uom.category')),
- ],
- context={
- 'category': (Eval('product'), 'product.default_uom.category'),
},
- on_change=['product', 'quantity', 'unit', '_parent_sale.currency',
- '_parent_sale.party'],
- depends=['product', 'type'])
+ domain=[
+ If(Bool(Eval('product_uom_category')),
+ ('category', '=', Eval('product_uom_category')),
+ ('category', '!=', -1)),
+ ],
+ on_change=['product', 'quantity', 'unit', '_parent_sale.currency',
+ '_parent_sale.party'],
+ depends=['product', 'type', 'product_uom_category'])
unit_digits = fields.Function(fields.Integer('Unit Digits',
- on_change_with=['unit']), 'get_unit_digits')
+ on_change_with=['unit']), 'on_change_with_unit_digits')
product = fields.Many2One('product.product', 'Product',
domain=[('salable', '=', True)],
states={
@@ -1070,14 +918,19 @@
'readonly': ~Eval('_parent_sale', {}),
},
on_change=['product', 'unit', 'quantity', 'description',
- '_parent_sale.party', '_parent_sale.currency'],
+ '_parent_sale.party', '_parent_sale.currency',
+ '_parent_sale.sale_date'],
context={
- 'locations': If(Bool(Eval('_parent_sale', {}).get( 'warehouse')),
+ 'locations': If(Bool(Eval('_parent_sale', {}).get('warehouse')),
[Eval('_parent_sale', {}).get('warehouse', 0)], []),
'stock_date_end': Eval('_parent_sale', {}).get('sale_date'),
'salable': True,
'stock_skip_warehouse': True,
}, depends=['type'])
+ product_uom_category = fields.Function(
+ fields.Many2One('product.uom.category', 'Product Uom Category',
+ on_change_with=['product']),
+ 'on_change_with_product_uom_category')
unit_price = fields.Numeric('Unit Price', digits=(16, 4),
states={
'invisible': Eval('type') != 'line',
@@ -1094,13 +947,16 @@
description = fields.Text('Description', size=None, required=True)
note = fields.Text('Note')
taxes = fields.Many2Many('sale.line-account.tax', 'line', 'tax', 'Taxes',
- domain=[('parent', '=', False)], states={
+ domain=[('parent', '=', None), ['OR',
+ ('group', '=', None),
+ ('group.kind', 'in', ['sale', 'both'])],
+ ],
+ states={
'invisible': Eval('type') != 'line',
}, depends=['type'])
- invoice_lines = fields.Many2Many('sale.line-account.invoice.line',
- 'sale_line', 'invoice_line', 'Invoice Lines', readonly=True)
- moves = fields.One2Many('stock.move', 'sale_line', 'Moves',
- readonly=True)
+ invoice_lines = fields.One2Many('account.invoice.line', 'origin',
+ 'Invoice Lines', readonly=True)
+ moves = fields.One2Many('stock.move', 'origin', 'Moves', readonly=True)
moves_ignored = fields.Many2Many('sale.line-ignored-stock.move',
'sale_line', 'move', 'Ignored Moves', readonly=True)
moves_recreated = fields.Many2Many('sale.line-recreated-stock.move',
@@ -1108,412 +964,410 @@
move_done = fields.Function(fields.Boolean('Moves Done'), 'get_move_done')
move_exception = fields.Function(fields.Boolean('Moves Exception'),
'get_move_exception')
+ warehouse = fields.Function(fields.Many2One('stock.location',
+ 'Warehouse'), 'get_warehouse')
+ from_location = fields.Function(fields.Many2One('stock.location',
+ 'From Location'), 'get_from_location')
+ to_location = fields.Function(fields.Many2One('stock.location',
+ 'To Location'), 'get_to_location')
+ delivery_date = fields.Function(fields.Date('Delivery Date',
+ on_change_with=['product', 'quantity', '_parent_sale.sale_date'],
+ states={
+ 'invisible': ((Eval('type') != 'line')
+ | (If(Bool(Eval('quantity')), Eval('quantity', 0), 0)
+ <= 0)),
+ },
+ depends=['type', 'quantity']),
+ 'on_change_with_delivery_date')
+
+ @classmethod
+ def __setup__(cls):
+ super(SaleLine, cls).__setup__()
+ cls._order.insert(0, ('sequence', 'ASC'))
+ cls._error_messages.update({
+ 'customer_location_required': ('Sale "%(sale)s" is missing the '
+ 'customer location in line "%(line)s".'),
+ 'missing_account_revenue': ('Product "%(product)s" of sale '
+ '%(sale)s misses a revenue account.'),
+ 'missing_account_revenue_property': ('Sale "%(sale)s" '
+ 'misses an "account revenue" default property.'),
+ })
- def __init__(self):
- super(SaleLine, self).__init__()
- self._order.insert(0, ('sequence', 'ASC'))
- self._error_messages.update({
- 'customer_location_required': 'The customer location is required!',
- 'missing_account_revenue': 'It misses '
- 'an "Account Revenue" on product "%s"!',
- 'missing_account_revenue_property': 'It misses '
- 'an "account Revenue" default property!',
- })
-
- def init(self, module_name):
- super(SaleLine, self).init(module_name)
+ @classmethod
+ def __register__(cls, module_name):
+ super(SaleLine, cls).__register__(module_name)
cursor = Transaction().cursor
- table = TableHandler(cursor, self, module_name)
+ table = TableHandler(cursor, cls, module_name)
# Migration from 1.0 comment change into note
if table.column_exist('comment'):
- cursor.execute('UPDATE "' + self._table + '" SET note = comment')
+ cursor.execute('UPDATE "' + cls._table + '" SET note = comment')
table.drop_column('comment', exception=True)
- def default_type(self):
- return 'line'
-
- def default_quantity(self):
- return 0.0
+ # Migration from 2.4: drop required on sequence
+ table.not_null_action('sequence', action='remove')
- def default_unit_price(self):
- return Decimal('0.0')
+ @staticmethod
+ def default_type():
+ return 'line'
- def on_change_with_unit_digits(self, vals):
- uom_obj = Pool().get('product.uom')
- if vals.get('unit'):
- uom = uom_obj.browse(vals['unit'])
- return uom.digits
+ @staticmethod
+ def default_unit_digits():
return 2
- def get_unit_digits(self, ids, name):
- res = {}
- for line in self.browse(ids):
- if line.unit:
- res[line.id] = line.unit.digits
- else:
- res[line.id] = 2
- return res
-
- def get_move_done(self, ids, name):
- uom_obj = Pool().get('product.uom')
- res = {}
- for line in self.browse(ids):
- val = True
- if not line.product:
- res[line.id] = True
- continue
- if line.product.type == 'service':
- res[line.id] = True
- continue
- skip_ids = set(x.id for x in line.moves_ignored)
- skip_ids.update(x.id for x in line.moves_recreated)
- quantity = line.quantity
- for move in line.moves:
- if move.state != 'done' \
- and move.id not in skip_ids:
- val = False
- break
- quantity -= uom_obj.compute_qty(move.uom, move.quantity,
- line.unit)
- if val:
- if quantity > 0.0:
- val = False
- res[line.id] = val
- return res
+ def on_change_with_unit_digits(self, name=None):
+ if self.unit:
+ return self.unit.digits
+ return 2
- def get_move_exception(self, ids, name):
- res = {}
- for line in self.browse(ids):
- val = False
- skip_ids = set(x.id for x in line.moves_ignored)
- skip_ids.update(x.id for x in line.moves_recreated)
- for move in line.moves:
- if move.state == 'cancel' \
- and move.id not in skip_ids:
- val = True
- break
- res[line.id] = val
- return res
+ def get_move_done(self, name):
+ Uom = Pool().get('product.uom')
+ done = True
+ if not self.product:
+ return True
+ if self.product.type == 'service':
+ return True
+ skip_ids = set(x.id for x in self.moves_ignored)
+ skip_ids.update(x.id for x in self.moves_recreated)
+ quantity = self.quantity
+ for move in self.moves:
+ if move.state != 'done' \
+ and move.id not in skip_ids:
+ done = False
+ break
+ quantity -= Uom.compute_qty(move.uom, move.quantity, self.unit)
+ if done:
+ if quantity > 0.0:
+ done = False
+ return done
+
+ def get_move_exception(self, name):
+ skip_ids = set(x.id for x in self.moves_ignored)
+ skip_ids.update(x.id for x in self.moves_recreated)
+ for move in self.moves:
+ if move.state == 'cancel' \
+ and move.id not in skip_ids:
+ return True
+ return False
- def _get_tax_rule_pattern(self, party, vals):
+ def _get_tax_rule_pattern(self):
'''
Get tax rule pattern
-
- :param party: the BrowseRecord of the party
- :param vals: a dictionary with value from on_change
- :return: a dictionary to use as pattern for tax rule
'''
- res = {}
- return res
+ return {}
- def _get_context_sale_price(self, product, vals):
+ def _get_context_sale_price(self):
context = {}
- if vals.get('_parent_sale.currency'):
- context['currency'] = vals['_parent_sale.currency']
- if vals.get('_parent_sale.party'):
- context['customer'] = vals['_parent_sale.party']
- if vals.get('_parent_sale.sale_date'):
- context['sale_date'] = vals['_parent_sale.sale_date']
- if vals.get('unit'):
- context['uom'] = vals['unit']
+ if getattr(self, 'sale', None):
+ if getattr(self.sale, 'currency', None):
+ context['currency'] = self.sale.currency.id
+ if getattr(self.sale, 'party', None):
+ context['customer'] = self.sale.party.id
+ if getattr(self.sale, 'sale_date', None):
+ context['sale_date'] = self.sale.sale_date
+ if self.unit:
+ context['uom'] = self.unit.id
else:
- context['uom'] = product.sale_uom.id
+ context['uom'] = self.product.sale_uom.id
return context
- def on_change_product(self, vals):
- pool = Pool()
- party_obj = pool.get('party.party')
- product_obj = pool.get('product.product')
- uom_obj = pool.get('product.uom')
- tax_rule_obj = pool.get('account.tax.rule')
+ def on_change_product(self):
+ Product = Pool().get('product.product')
- if not vals.get('product'):
+ if not self.product:
return {}
res = {}
party = None
party_context = {}
- if vals.get('_parent_sale.party'):
- party = party_obj.browse(vals['_parent_sale.party'])
+ if self.sale and self.sale.party:
+ party = self.sale.party
if party.lang:
party_context['language'] = party.lang.code
- product = product_obj.browse(vals['product'])
-
- with Transaction().set_context(
- self._get_context_sale_price(product,vals)):
- res['unit_price'] = product_obj.get_sale_price([product.id],
- vals.get('quantity', 0))[product.id]
+ category = self.product.sale_uom.category
+ if not self.unit or self.unit not in category.uoms:
+ res['unit'] = self.product.sale_uom.id
+ self.unit = self.product.sale_uom
+ res['unit.rec_name'] = self.product.sale_uom.rec_name
+ res['unit_digits'] = self.product.sale_uom.digits
+
+ with Transaction().set_context(self._get_context_sale_price()):
+ res['unit_price'] = Product.get_sale_price([self.product],
+ self.quantity or 0)[self.product.id]
if res['unit_price']:
res['unit_price'] = res['unit_price'].quantize(
- Decimal(1) / 10 ** self.unit_price.digits[1])
+ Decimal(1) / 10 ** self.__class__.unit_price.digits[1])
res['taxes'] = []
- pattern = self._get_tax_rule_pattern(party, vals)
- for tax in product.customer_taxes_used:
+ pattern = self._get_tax_rule_pattern()
+ for tax in self.product.customer_taxes_used:
if party and party.customer_tax_rule:
- tax_ids = tax_rule_obj.apply(party.customer_tax_rule, tax,
- pattern)
+ tax_ids = party.customer_tax_rule.apply(tax, pattern)
if tax_ids:
res['taxes'].extend(tax_ids)
continue
res['taxes'].append(tax.id)
if party and party.customer_tax_rule:
- tax_ids = tax_rule_obj.apply(party.customer_tax_rule, False,
- pattern)
+ tax_ids = party.customer_tax_rule.apply(None, pattern)
if tax_ids:
res['taxes'].extend(tax_ids)
- if not vals.get('description'):
+ if not self.description:
with Transaction().set_context(party_context):
- res['description'] = product_obj.browse(product.id).rec_name
+ res['description'] = Product(self.product.id).rec_name
- category = product.sale_uom.category
- if not vals.get('unit') \
- or vals.get('unit') not in [x.id for x in category.uoms]:
- res['unit'] = product.sale_uom.id
- res['unit.rec_name'] = product.sale_uom.rec_name
- res['unit_digits'] = product.sale_uom.digits
-
- vals = vals.copy()
- vals['unit_price'] = res['unit_price']
- vals['type'] = 'line'
- res['amount'] = self.on_change_with_amount(vals)
+ self.unit_price = res['unit_price']
+ self.type = 'line'
+ res['amount'] = self.on_change_with_amount()
return res
- def on_change_quantity(self, vals):
- product_obj = Pool().get('product.product')
+ def on_change_with_product_uom_category(self, name=None):
+ if self.product:
+ return self.product.default_uom_category.id
+
+ def on_change_quantity(self):
+ Product = Pool().get('product.product')
- if not vals.get('product'):
+ if not self.product:
return {}
res = {}
- product = product_obj.browse(vals['product'])
-
with Transaction().set_context(
- self._get_context_sale_price(product, vals)):
- res['unit_price'] = product_obj.get_sale_price([vals['product']],
- vals.get('quantity', 0))[vals['product']]
+ self._get_context_sale_price()):
+ res['unit_price'] = Product.get_sale_price([self.product],
+ self.quantity or 0)[self.product.id]
if res['unit_price']:
res['unit_price'] = res['unit_price'].quantize(
- Decimal(1) / 10 ** self.unit_price.digits[1])
+ Decimal(1) / 10 ** self.__class__.unit_price.digits[1])
return res
- def on_change_unit(self, vals):
- return self.on_change_quantity(vals)
+ def on_change_unit(self):
+ return self.on_change_quantity()
- def on_change_with_amount(self, vals):
- currency_obj = Pool().get('currency.currency')
- if vals.get('type') == 'line':
- currency = vals.get('_parent_sale.currency')
- if currency and isinstance(currency, (int, long)):
- currency = currency_obj.browse(vals['_parent_sale.currency'])
- amount = Decimal(str(vals.get('quantity') or '0.0')) * \
- (vals.get('unit_price') or Decimal('0.0'))
+ def on_change_with_amount(self):
+ if self.type == 'line':
+ currency = self.sale.currency if self.sale else None
+ amount = Decimal(str(self.quantity or '0.0')) * \
+ (self.unit_price or Decimal('0.0'))
if currency:
- return currency_obj.round(currency, amount)
+ return currency.round(amount)
return amount
return Decimal('0.0')
- def get_amount(self, ids, name):
- currency_obj = Pool().get('currency.currency')
- res = {}
- for line in self.browse(ids):
- if line.type == 'line':
- res[line.id] = currency_obj.round(line.sale.currency,
- Decimal(str(line.quantity)) * line.unit_price)
- elif line.type == 'subtotal':
- res[line.id] = Decimal('0.0')
- for line2 in line.sale.lines:
- if line2.type == 'line':
- res[line.id] += currency_obj.round(line2.sale.currency,
- Decimal(str(line2.quantity)) *
- line2.unit_price)
- elif line2.type == 'subtotal':
- if line.id == line2.id:
- break
- res[line.id] = Decimal('0.0')
- else:
- res[line.id] = Decimal('0.0')
- return res
+ def get_amount(self, name):
+ if self.type == 'line':
+ return self.sale.currency.round(
+ Decimal(str(self.quantity)) * self.unit_price)
+ elif self.type == 'subtotal':
+ amount = Decimal('0.0')
+ for line2 in self.sale.lines:
+ if line2.type == 'line':
+ amount += line2.sale.currency.round(
+ Decimal(str(line2.quantity)) * line2.unit_price)
+ elif line2.type == 'subtotal':
+ if self == line2:
+ break
+ amount = Decimal('0.0')
+ return amount
+ return Decimal('0.0')
- def get_invoice_line(self, line):
- '''
- Return invoice line values for sale line
+ def get_warehouse(self, name):
+ return self.sale.warehouse.id if self.sale.warehouse else None
- :param line: the BrowseRecord of the line
+ def get_from_location(self, name):
+ if self.quantity >= 0:
+ if self.warehouse:
+ return self.warehouse.output_location.id
+ else:
+ return self.sale.party.customer_location.id
+
+ def get_to_location(self, name):
+ if self.quantity >= 0:
+ return self.sale.party.customer_location.id
+ else:
+ if self.warehouse:
+ return self.warehouse.input_location.id
- :return: a list of invoice line values
+ def on_change_with_delivery_date(self, name=None):
+ if self.product and self.quantity > 0:
+ date = self.sale.sale_date if self.sale else None
+ return self.product.compute_delivery_date(date=date)
+
+ def get_invoice_line(self, invoice_type):
+ '''
+ Return a list of invoice lines for sale line according to invoice_type
'''
- uom_obj = Pool().get('product.uom')
- property_obj = Pool().get('ir.property')
+ pool = Pool()
+ Uom = pool.get('product.uom')
+ Property = pool.get('ir.property')
+ InvoiceLine = pool.get('account.invoice.line')
- res = {}
- res['sequence'] = line.sequence
- res['type'] = line.type
- res['description'] = line.description
- res['note'] = line.note
- if line.type != 'line':
- return [res]
-
- if (line.sale.invoice_method == 'order'
- or not line.product
- or line.product.type == 'service'):
- quantity = line.quantity
+ with Transaction().set_user(0, set_context=True):
+ invoice_line = InvoiceLine()
+ invoice_line.type = self.type
+ invoice_line.description = self.description
+ invoice_line.note = self.note
+ if self.type != 'line':
+ if (self.sale.invoice_method == 'order'
+ and ((all(l.quantity >= 0 for l in self.sale.lines
+ if l.type == 'line')
+ and invoice_type == 'out_invoice')
+ or (all(l.quantity <= 0 for l in self.sale.lines
+ if l.type == 'line')
+ and invoice_type == 'out_credit_note'))):
+ return [invoice_line]
+ else:
+ return []
+
+ if (invoice_type == 'out_invoice') != (self.quantity >= 0):
+ return []
+
+ if (self.sale.invoice_method == 'order'
+ or not self.product
+ or self.product.type == 'service'):
+ quantity = abs(self.quantity)
else:
quantity = 0.0
- for move in line.moves:
+ for move in self.moves:
if move.state == 'done':
- quantity += uom_obj.compute_qty(move.uom, move.quantity,
- line.unit)
+ quantity += Uom.compute_qty(move.uom, move.quantity,
+ self.unit)
- ignored_ids = set(
- l.id for i in line.sale.invoices_ignored for l in i.lines)
- for invoice_line in line.invoice_lines:
- if invoice_line.type != 'line':
+ skip_ids = set(l.id for i in self.sale.invoices_recreated
+ for l in i.lines)
+ for old_invoice_line in self.invoice_lines:
+ if old_invoice_line.type != 'line':
continue
- if ((invoice_line.invoice and
- invoice_line.invoice.state != 'cancel') or
- invoice_line.id in ignored_ids):
- quantity -= uom_obj.compute_qty(invoice_line.unit,
- invoice_line.quantity, line.unit)
- res['quantity'] = quantity
+ if old_invoice_line.id not in skip_ids:
+ quantity -= Uom.compute_qty(old_invoice_line.unit,
+ old_invoice_line.quantity, self.unit)
+ invoice_line.quantity = quantity
- if res['quantity'] <= 0.0:
+ if invoice_line.quantity <= 0.0:
return []
- res['unit'] = line.unit.id
- res['product'] = line.product.id
- res['unit_price'] = line.unit_price
- res['taxes'] = [('set', [x.id for x in line.taxes])]
- if line.product:
- res['account'] = line.product.account_revenue_used.id
- if not res['account']:
- self.raise_user_error('missing_account_revenue',
- error_args=(line.product.rec_name,))
+ invoice_line.unit = self.unit
+ invoice_line.product = self.product
+ invoice_line.unit_price = self.unit_price
+ invoice_line.taxes = self.taxes
+ if self.product:
+ invoice_line.account = self.product.account_revenue_used
+ if not invoice_line.account:
+ self.raise_user_error('missing_account_revenue', {
+ 'sale': self.sale.rec_name,
+ 'product': self.product.rec_name,
+ })
else:
for model in ('product.template', 'product.category'):
- res['account'] = property_obj.get('account_revenue', model)
- if res['account']:
+ invoice_line.account = Property.get('account_revenue', model)
+ if invoice_line.account:
break
- if not res['account']:
- self.raise_user_error('missing_account_revenue_property')
- return [res]
+ if not invoice_line.account:
+ self.raise_user_error('missing_account_revenue_property',
+ (self.sale.rec_name,))
+ invoice_line.origin = self
+ return [invoice_line]
- def copy(self, ids, default=None):
+ @classmethod
+ def copy(cls, lines, default=None):
if default is None:
default = {}
default = default.copy()
- default['moves'] = False
- default['moves_ignored'] = False
- default['moves_recreated'] = False
- default['invoice_lines'] = False
- return super(SaleLine, self).copy(ids, default=default)
+ default['moves'] = None
+ default['moves_ignored'] = None
+ default['moves_recreated'] = None
+ default['invoice_lines'] = None
+ return super(SaleLine, cls).copy(lines, default=default)
- def get_move(self, line):
+ def get_move(self, shipment_type):
'''
- Return move values for the sale line
-
- :param line: the BrowseRecord of the line
-
- :return: a dictionary of values of move
+ Return moves for the sale line according ot shipment_type
'''
- uom_obj = Pool().get('product.uom')
- product_obj = Pool().get('product.product')
+ pool = Pool()
+ Uom = pool.get('product.uom')
+ Move = pool.get('stock.move')
- res = {}
- if line.type != 'line':
+ if self.type != 'line':
+ return
+ if not self.product:
return
- if not line.product:
+ if self.product.type == 'service':
return
- if line.product.type == 'service':
+ if (shipment_type == 'out') != (self.quantity >= 0):
return
- skip_ids = set(x.id for x in line.moves_recreated)
- quantity = line.quantity
- for move in line.moves:
+
+ if self.sale.shipment_method == 'order':
+ quantity = abs(self.quantity)
+ else:
+ quantity = 0.0
+ for invoice_line in self.invoice_lines:
+ if invoice_line.invoice.state in ('posted', 'paid'):
+ quantity += Uom.compute_qty(invoice_line.unit,
+ invoice_line.quantity, self.unit)
+
+ skip_ids = set(x.id for x in self.moves_recreated)
+ for move in self.moves:
if move.id not in skip_ids:
- quantity -= uom_obj.compute_qty(move.uom, move.quantity,
- line.unit)
+ quantity -= Uom.compute_qty(move.uom, move.quantity,
+ self.unit)
if quantity <= 0.0:
return
- if not line.sale.party.customer_location:
- self.raise_user_error('customer_location_required')
- res['quantity'] = quantity
- res['uom'] = line.unit.id
- res['product'] = line.product.id
- res['from_location'] = line.sale.warehouse.output_location.id
- res['to_location'] = line.sale.party.customer_location.id
- res['state'] = 'draft'
- res['company'] = line.sale.company.id
- res['unit_price'] = line.unit_price
- res['currency'] = line.sale.currency.id
- res['planned_date'] = product_obj.compute_delivery_date(
- line.product)
- return res
-
-SaleLine()
+ if not self.sale.party.customer_location:
+ self.raise_user_error('customer_location_required', {
+ 'sale': self.sale.rec_name,
+ 'line': self.rec_name,
+ })
+ with Transaction().set_user(0, set_context=True):
+ move = Move()
+ move.quantity = quantity
+ move.uom = self.unit
+ move.product = self.product
+ move.from_location = self.from_location
+ move.to_location = self.to_location
+ move.state = 'draft'
+ move.company = self.sale.company
+ move.unit_price = self.unit_price
+ move.currency = self.sale.currency
+ move.planned_date = self.delivery_date
+ move.origin = self
+ return move
class SaleLineTax(ModelSQL):
'Sale Line - Tax'
- _name = 'sale.line-account.tax'
+ __name__ = 'sale.line-account.tax'
_table = 'sale_line_account_tax'
- _description = __doc__
line = fields.Many2One('sale.line', 'Sale Line', ondelete='CASCADE',
- select=1, required=True)
+ select=True, required=True)
tax = fields.Many2One('account.tax', 'Tax', ondelete='RESTRICT',
- select=1, required=True)
-
-SaleLineTax()
-
-
-class SaleLineInvoiceLine(ModelSQL):
- 'Sale Line - Invoice Line'
- _name = 'sale.line-account.invoice.line'
- _table = 'sale_line_invoice_lines_rel'
- _description = __doc__
- sale_line = fields.Many2One('sale.line', 'Sale Line', ondelete='CASCADE',
- select=1, required=True)
- invoice_line = fields.Many2One('account.invoice.line', 'Invoice Line',
- ondelete='RESTRICT', select=1, required=True)
-
-SaleLineInvoiceLine()
+ select=True, required=True)
class SaleLineIgnoredMove(ModelSQL):
'Sale Line - Ignored Move'
- _name = 'sale.line-ignored-stock.move'
+ __name__ = 'sale.line-ignored-stock.move'
_table = 'sale_line_moves_ignored_rel'
- _description = __doc__
sale_line = fields.Many2One('sale.line', 'Sale Line', ondelete='CASCADE',
- select=1, required=True)
+ select=True, required=True)
move = fields.Many2One('stock.move', 'Move', ondelete='RESTRICT',
- select=1, required=True)
-
-SaleLineIgnoredMove()
+ select=True, required=True)
class SaleLineRecreatedMove(ModelSQL):
'Sale Line - Recreated Move'
- _name = 'sale.line-recreated-stock.move'
+ __name__ = 'sale.line-recreated-stock.move'
_table = 'sale_line_moves_recreated_rel'
- _description = __doc__
sale_line = fields.Many2One('sale.line', 'Sale Line', ondelete='CASCADE',
- select=1, required=True)
+ select=True, required=True)
move = fields.Many2One('stock.move', 'Move', ondelete='RESTRICT',
- select=1, required=True)
-
-SaleLineRecreatedMove()
+ select=True, required=True)
class SaleReport(CompanyReport):
- _name = 'sale.sale'
-
-SaleReport()
-
+ __name__ = 'sale.sale'
-class Template(ModelSQL, ModelView):
- _name = 'product.template'
+class Template:
+ __name__ = 'product.template'
salable = fields.Boolean('Salable', states={
'readonly': ~Eval('active', True),
}, depends=['active'])
@@ -1523,465 +1377,396 @@
'required': Eval('salable', False),
},
domain=[
- ('category', '=', (Eval('default_uom'), 'uom.category')),
+ ('category', '=', Eval('default_uom_category')),
],
- context={'category': (Eval('default_uom'), 'uom.category')},
on_change_with=['default_uom', 'sale_uom', 'salable'],
- depends=['active', 'salable', 'default_uom'])
+ depends=['active', 'salable', 'default_uom_category'])
delivery_time = fields.Integer('Delivery Time', states={
'readonly': ~Eval('active', True),
'invisible': ~Eval('salable', False),
+ 'required': Eval('salable', False),
},
depends=['active', 'salable'],
help='In number of days')
- def __init__(self):
- super(Template, self).__init__()
- self.account_revenue = copy.copy(self.account_revenue)
- self.account_revenue.states = copy.copy(self.account_revenue.states)
+ @classmethod
+ def __setup__(cls):
+ super(Template, cls).__setup__()
required = ~Eval('account_category', False) & Eval('salable', False)
- if not self.account_revenue.states.get('required'):
- self.account_revenue.states['required'] = required
+ if not cls.account_revenue.states.get('required'):
+ cls.account_revenue.states['required'] = required
else:
- self.account_revenue.states['required'] = (
- self.account_revenue.states['required'] | required)
- if 'account_category' not in self.account_revenue.depends:
- self.account_revenue = copy.copy(self.account_revenue)
- self.account_revenue.depends = \
- copy.copy(self.account_revenue.depends)
- self.account_revenue.depends.append('account_category')
- if 'salable' not in self.account_revenue.depends:
- self.account_revenue = copy.copy(self.account_revenue)
- self.account_revenue.depends = \
- copy.copy(self.account_revenue.depends)
- self.account_revenue.depends.append('salable')
- self._reset_columns()
+ cls.account_revenue.states['required'] = (
+ cls.account_revenue.states['required'] | required)
+ if 'account_category' not in cls.account_revenue.depends:
+ cls.account_revenue.depends.append('account_category')
+ if 'salable' not in cls.account_revenue.depends:
+ cls.account_revenue.depends.append('salable')
- def default_salable(self):
+ @staticmethod
+ def default_salable():
return True if Transaction().context.get('salable') else False
- def on_change_with_sale_uom(self, vals):
- uom_obj = Pool().get('product.uom')
- res = False
-
- if vals.get('default_uom'):
- default_uom = uom_obj.browse(vals['default_uom'])
- if vals.get('sale_uom'):
- sale_uom = uom_obj.browse(vals['sale_uom'])
- if default_uom.category.id == sale_uom.category.id:
- res = sale_uom.id
+ @staticmethod
+ def default_delivery_time():
+ return 0
+
+ def on_change_with_sale_uom(self):
+ if self.default_uom:
+ if self.sale_uom:
+ if self.default_uom.category == self.sale_uom.category:
+ return self.sale_uom.id
else:
- res = default_uom.id
+ return self.default_uom.id
else:
- res = default_uom.id
- return res
-
-Template()
+ return self.default_uom.id
-class Product(ModelSQL, ModelView):
- _name = 'product.product'
+class Product:
+ __name__ = 'product.product'
- def get_sale_price(self, ids, quantity=0):
+ @staticmethod
+ def get_sale_price(products, quantity=0):
'''
- Return the sale price for product ids.
-
- :param ids: the product ids
- :param quantity: the quantity of the products
+ Return the sale price for products and quantity.
+ It uses if exists from the context:
uom: the unit of measure
currency: the currency id for the returned price
- :return: a dictionary with for each product ids keys the computed price
'''
pool = Pool()
- uom_obj = pool.get('product.uom')
- user_obj = pool.get('res.user')
- currency_obj = pool.get('currency.currency')
- date_obj = pool.get('ir.date')
+ Uom = pool.get('product.uom')
+ User = pool.get('res.user')
+ Currency = pool.get('currency.currency')
+ Date = pool.get('ir.date')
- today = date_obj.today()
- res = {}
+ today = Date.today()
+ prices = {}
uom = None
if Transaction().context.get('uom'):
- uom = uom_obj.browse(Transaction().context.get('uom'))
+ uom = Uom(Transaction().context.get('uom'))
currency = None
if Transaction().context.get('currency'):
- currency = currency_obj.browse(
- Transaction().context.get('currency'))
+ currency = Currency(Transaction().context.get('currency'))
- user2 = user_obj.browse(Transaction().user)
+ user = User(Transaction().user)
- for product in self.browse(ids):
- res[product.id] = product.list_price
+ for product in products:
+ prices[product.id] = product.list_price
if uom:
- res[product.id] = uom_obj.compute_price(
- product.default_uom, res[product.id], uom)
- if currency and user2.company:
- if user2.company.currency.id != currency.id:
+ prices[product.id] = Uom.compute_price(
+ product.default_uom, prices[product.id], uom)
+ if currency and user.company:
+ if user.company.currency != currency:
date = Transaction().context.get('sale_date') or today
with Transaction().set_context(date=date):
- res[product.id] = currency_obj.compute(
- user2.company.currency.id, res[product.id],
- currency.id, round=False)
- return res
+ prices[product.id] = Currency.compute(
+ user.company.currency, prices[product.id],
+ currency, round=False)
+ return prices
- def compute_delivery_date(self, product, date=None):
+ def compute_delivery_date(self, date=None):
'''
- Compute the delivery date for the Product at a the given date
+ Compute the delivery date a the given date
'''
- date_obj = Pool().get('ir.date')
+ Date = Pool().get('ir.date')
if not date:
- date = date_obj.today()
- return date + datetime.timedelta(product.delivery_time)
+ date = Date.today()
+ return date + datetime.timedelta(self.delivery_time)
-Product()
+class ShipmentOut:
+ __name__ = 'stock.shipment.out'
-class ShipmentOut(ModelSQL, ModelView):
- _name = 'stock.shipment.out'
-
- def __init__(self):
- super(ShipmentOut, self).__init__()
- self._error_messages.update({
+ @classmethod
+ def __setup__(cls):
+ super(ShipmentOut, cls).__setup__()
+ cls._error_messages.update({
'reset_move': 'You cannot reset to draft a move generated '
'by a sale.',
})
- def write(self, ids, vals):
- sale_obj = Pool().get('sale.sale')
- sale_line_obj = Pool().get('sale.line')
+ @classmethod
+ def write(cls, shipments, vals):
+ pool = Pool()
+ Sale = pool.get('sale.sale')
+ SaleLine = pool.get('sale.line')
- res = super(ShipmentOut, self).write(ids, vals)
+ super(ShipmentOut, cls).write(shipments, vals)
if 'state' in vals and vals['state'] in ('done', 'cancel'):
- sale_ids = []
+ sales = []
move_ids = []
- if isinstance(ids, (int, long)):
- ids = [ids]
- for shipment in self.browse(ids):
+ for shipment in shipments:
move_ids.extend([x.id for x in shipment.outgoing_moves])
- sale_line_ids = sale_line_obj.search([
- ('moves', 'in', move_ids),
- ])
- if sale_line_ids:
- for sale_line in sale_line_obj.browse(sale_line_ids):
- if sale_line.sale.id not in sale_ids:
- sale_ids.append(sale_line.sale.id)
-
- sale_obj.workflow_trigger_validate(sale_ids, 'shipment_update')
- return res
-
- def button_draft(self, ids):
- for shipment in self.browse(ids):
+ with Transaction().set_user(0, set_context=True):
+ sale_lines = SaleLine.search([
+ ('moves', 'in', move_ids),
+ ])
+ if sale_lines:
+ sales = list(set(l.sale for l in sale_lines))
+ Sale.process(sales)
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('draft')
+ def draft(cls, shipments):
+ SaleLine = Pool().get('sale.line')
+ for shipment in shipments:
for move in shipment.outgoing_moves:
- if move.state == 'cancel' and move.sale_line:
- self.raise_user_error('reset_move')
-
- return super(ShipmentOut, self).button_draft(ids)
-
-ShipmentOut()
-
-
-class Move(ModelSQL, ModelView):
- _name = 'stock.move'
-
- sale_line = fields.Many2One('sale.line', 'Sale Line', select=1,
- states={
- 'readonly': Eval('state') != 'draft',
- },
- depends=['state'])
- sale = fields.Function(fields.Many2One('sale.sale', 'Sale', select=1),
- 'get_sale', searcher='search_sale')
- sale_exception_state = fields.Function(fields.Selection([
- ('', ''),
- ('ignored', 'Ignored'),
- ('recreated', 'Recreated'),
- ], 'Exception State'), 'get_sale_exception_state')
+ if (move.state == 'cancel'
+ and isinstance(move.origin, SaleLine)):
+ cls.raise_user_error('reset_move')
- def get_sale(self, ids, name):
- sale_obj = Pool().get('sale.sale')
-
- res = {}
- for move in self.browse(ids):
- res[move.id] = False
- if move.sale_line:
- res[move.id] = move.sale_line.sale.id
- return res
+ return super(ShipmentOut, cls).draft(shipments)
- def search_sale(self, name, clause):
- return [('sale_line.' + name,) + clause[1:]]
- def get_sale_exception_state(self, ids, name):
- res = {}.fromkeys(ids, '')
- for move in self.browse(ids):
- if not move.sale_line:
- continue
- if move.id in (x.id for x in move.sale_line.moves_recreated):
- res[move.id] = 'recreated'
- if move.id in (x.id for x in move.sale_line.moves_ignored):
- res[move.id] = 'ignored'
- return res
-
- def write(self, ids, vals):
- sale_obj = Pool().get('sale.sale')
- sale_line_obj = Pool().get('sale.line')
-
- res = super(Move, self).write(ids, vals)
- if 'state' in vals and vals['state'] in ('cancel',):
- if isinstance(ids, (int, long)):
- ids = [ids]
- sale_ids = set()
- sale_line_ids = sale_line_obj.search([
- ('moves', 'in', ids),
- ])
- if sale_line_ids:
- for sale_line in sale_line_obj.browse(sale_line_ids):
- sale_ids.add(sale_line.sale.id)
- if sale_ids:
- sale_obj.workflow_trigger_validate(list(sale_ids),
- 'shipment_update')
- return res
+class ShipmentOutReturn:
+ __name__ = 'stock.shipment.out.return'
- def delete(self, ids):
- sale_obj = Pool().get('sale.sale')
- sale_line_obj = Pool().get('sale.line')
-
- if isinstance(ids, (int, long)):
- ids = [ids]
-
- sale_ids = set()
- sale_line_ids = sale_line_obj.search([
- ('moves', 'in', ids),
- ])
-
- res = super(Move, self).delete(ids)
-
- if sale_line_ids:
- for sale_line in sale_line_obj.browse(sale_line_ids):
- sale_ids.add(sale_line.sale.id)
- if sale_ids:
- sale_obj.workflow_trigger_validate(list(sale_ids),
- 'shipment_update')
- return res
+ @classmethod
+ def __setup__(cls):
+ super(ShipmentOutReturn, cls).__setup__()
+ cls._error_messages.update({
+ 'reset_move': 'You cannot reset to draft a move generated '
+ 'by a sale.',
+ })
-Move()
+ @classmethod
+ def write(cls, shipments, vals):
+ pool = Pool()
+ Sale = pool.get('sale.sale')
+ SaleLine = pool.get('sale.line')
+ super(ShipmentOutReturn, cls).write(shipments, vals)
-class Invoice(ModelSQL, ModelView):
- _name = 'account.invoice'
+ if 'state' in vals and vals['state'] == 'received':
+ sales = []
+ move_ids = []
+ for shipment in shipments:
+ move_ids.extend([x.id for x in shipment.incoming_moves])
+ with Transaction().set_user(0, set_context=True):
+ sale_lines = SaleLine.search([
+ ('moves', 'in', move_ids),
+ ])
+ if sale_lines:
+ for sale_line in sale_lines:
+ if sale_line.sale not in sales:
+ sales.append(sale_line.sale)
+
+ sales = Sale.browse([s.id for s in sales])
+ Sale.process(sales)
+
+ @classmethod
+ @ModelView.button
+ @Workflow.transition('draft')
+ def draft(cls, shipments):
+ SaleLine = Pool().get('sale.line')
+ for shipment in shipments:
+ for move in shipment.incoming_moves:
+ if (move.state == 'cancel'
+ and isinstance(move.origin, SaleLine)):
+ cls.raise_user_error('reset_move')
+
+ return super(ShipmentOutReturn, cls).draft(shipments)
+
+
+class Move:
+ __name__ = 'stock.move'
+ sale = fields.Function(fields.Many2One('sale.sale', 'Sale', select=True),
+ 'get_sale', searcher='search_sale')
sale_exception_state = fields.Function(fields.Selection([
('', ''),
('ignored', 'Ignored'),
('recreated', 'Recreated'),
], 'Exception State'), 'get_sale_exception_state')
- def __init__(self):
- super(Invoice, self).__init__()
- self._error_messages.update({
- 'delete_sale_invoice': 'You can not delete invoices '
- 'that come from a sale!',
- 'reset_invoice_sale': 'You cannot reset to draft '
- 'an invoice generated by a sale.',
- })
-
- def button_draft(self, ids):
- sale_obj = Pool().get('sale.sale')
- sale_ids = sale_obj.search([
- ('invoices', 'in', ids),
- ])
-
- if sale_ids:
- self.raise_user_error('reset_invoice_sale')
-
- return super(Invoice, self).button_draft(ids)
+ @classmethod
+ def __register__(cls, module_name):
+ cursor = Transaction().cursor
- def get_sale_exception_state(self, ids, name):
- sale_obj = Pool().get('sale.sale')
- sale_ids = sale_obj.search([
- ('invoices', 'in', ids),
- ])
+ super(Move, cls).__register__(module_name)
- sales = sale_obj.browse(sale_ids)
+ table = TableHandler(cursor, cls, module_name)
- recreated_ids = tuple(i.id for p in sales for i in p.invoices_recreated)
- ignored_ids = tuple(i.id for p in sales for i in p.invoices_ignored)
+ # Migration from 2.6: remove sale_line
+ if table.column_exist('sale_line'):
+ cursor.execute('UPDATE "' + cls._table + '" '
+ 'SET origin = \'sale.line,\' || sale_line '
+ 'WHERE sale_line IS NOT NULL')
+ table.drop_column('sale_line')
+
+ @classmethod
+ def _get_origin(cls):
+ models = super(Move, cls)._get_origin()
+ models.append('sale.line')
+ return models
+
+ def get_sale(self, name):
+ SaleLine = Pool().get('sale.line')
+ if isinstance(self.origin, SaleLine):
+ return self.origin.sale.id
+
+ @classmethod
+ def search_sale(cls, name, clause):
+ return [('origin.' + name,) + tuple(clause[1:]) + ('sale.line',)]
+
+ def get_sale_exception_state(self, name):
+ SaleLine = Pool().get('sale.line')
+ if not isinstance(self.origin, SaleLine):
+ return ''
+ if self in self.origin.moves_recreated:
+ return 'recreated'
+ if self in self.origin.moves_ignored:
+ return 'ignored'
+ return ''
- res = {}.fromkeys(ids, '')
- for invoice in self.browse(ids):
- if invoice.id in recreated_ids:
- res[invoice.id] = 'recreated'
- elif invoice.id in ignored_ids:
- res[invoice.id] = 'ignored'
+ @classmethod
+ def write(cls, moves, vals):
+ pool = Pool()
+ Sale = pool.get('sale.sale')
+ SaleLine = pool.get('sale.line')
- return res
+ super(Move, cls).write(moves, vals)
+ if 'state' in vals and vals['state'] in ('cancel',):
+ with Transaction().set_user(0, set_context=True):
+ sale_lines = SaleLine.search([
+ ('moves', 'in', [m.id for m in moves]),
+ ])
+ if sale_lines:
+ sales = list(set(l.sale for l in sale_lines))
+ Sale.process(sales)
- def delete(self, ids):
- if not ids:
- return True
- if isinstance(ids, (int, long)):
- ids = [ids]
- Transaction().cursor.execute('SELECT id FROM sale_invoices_rel '
- 'WHERE invoice IN (' + ','.join(('%s',) * len(ids)) + ')',
- ids)
- if Transaction().cursor.fetchone():
- self.raise_user_error('delete_sale_invoice')
- return super(Invoice, self).delete(ids)
+ @classmethod
+ def delete(cls, moves):
+ pool = Pool()
+ Sale = pool.get('sale.sale')
+ SaleLine = pool.get('sale.line')
-Invoice()
+ with Transaction().set_user(0, set_context=True):
+ sale_lines = SaleLine.search([
+ ('moves', 'in', [m.id for m in moves]),
+ ])
+
+ super(Move, cls).delete(moves)
+
+ if sale_lines:
+ sales = list(set(l.sale for l in sale_lines))
+ with Transaction().set_user(0, set_context=True):
+ Sale.process(sales)
class OpenCustomer(Wizard):
'Open Customers'
- _name = 'sale.open_customer'
- states = {
- 'init': {
- 'result': {
- 'type': 'action',
- 'action': '_action_open',
- 'state': 'end',
- },
- },
- }
+ __name__ = 'sale.open_customer'
+ start_state = 'open_'
+ open_ = StateAction('party.act_party_form')
- def _action_open(self, datas):
+ def do_open_(self, action):
pool = Pool()
- model_data_obj = pool.get('ir.model.data')
- act_window_obj = pool.get('ir.action.act_window')
- wizard_obj = pool.get('ir.action.wizard')
- act_window_id = model_data_obj.get_id('party', 'act_party_form')
- res = act_window_obj.read(act_window_id)
- Transaction().cursor.execute("SELECT DISTINCT(party) FROM sale_sale")
+ ModelData = pool.get('ir.model.data')
+ Wizard = pool.get('ir.action.wizard')
+ cursor = Transaction().cursor
+ cursor.execute("SELECT DISTINCT(party) FROM sale_sale")
customer_ids = [line[0] for line in Transaction().cursor.fetchall()]
- res['pyson_domain'] = PYSONEncoder().encode(
- [('id', 'in', customer_ids)])
+ action['pyson_domain'] = PYSONEncoder().encode(
+ [('id', 'in', customer_ids)])
- model_data_ids = model_data_obj.search([
- ('fs_id', '=', 'act_open_customer'),
- ('module', '=', 'sale'),
- ('inherit', '=', False),
- ], limit=1)
- model_data = model_data_obj.browse(model_data_ids[0])
- wizard = wizard_obj.browse(model_data.db_id)
+ model_data, = ModelData.search([
+ ('fs_id', '=', 'act_open_customer'),
+ ('module', '=', 'sale'),
+ ], limit=1)
+ wizard = Wizard(model_data.db_id)
- res['name'] = wizard.name
- return res
+ action['name'] = wizard.name
+ return action, {}
-OpenCustomer()
+ def transition_open_(self):
+ return 'end'
class HandleShipmentExceptionAsk(ModelView):
- 'Shipment Exception Ask'
- _name = 'sale.handle.shipment.exception.ask'
- _description = __doc__
-
+ 'Handle Shipment Exception'
+ __name__ = 'sale.handle.shipment.exception.ask'
recreate_moves = fields.Many2Many(
'stock.move', None, None, 'Recreate Moves',
domain=[('id', 'in', Eval('domain_moves'))], depends=['domain_moves'])
domain_moves = fields.Many2Many(
'stock.move', None, None, 'Domain Moves')
- def init(self, module_name):
+ @classmethod
+ def __register__(cls, module_name):
cursor = Transaction().cursor
# Migration from 1.2: packing renamed into shipment
cursor.execute("UPDATE ir_model "
"SET model = REPLACE(model, 'packing', 'shipment') "
"WHERE model like '%%packing%%' AND module = %s",
(module_name,))
- super(HandleShipmentExceptionAsk, self).init(module_name)
-
- def default_recreate_moves(self):
- return self.default_domain_moves()
+ super(HandleShipmentExceptionAsk, cls).__register__(module_name)
- def default_domain_moves(self):
- sale_line_obj = Pool().get('sale.line')
- active_id = Transaction().context.get('active_id')
- if not active_id:
- return []
- line_ids = sale_line_obj.search([
- ('sale', '=', active_id),
+class HandleShipmentException(Wizard):
+ 'Handle Shipment Exception'
+ __name__ = 'sale.handle.shipment.exception'
+ start_state = 'ask'
+ ask = StateView('sale.handle.shipment.exception.ask',
+ 'sale.handle_shipment_exception_ask_view_form', [
+ Button('Cancel', 'end', 'tryton-cancel'),
+ Button('Ok', 'handle', 'tryton-ok', default=True),
])
- lines = sale_line_obj.browse(line_ids)
+ handle = StateTransition()
- domain_moves = []
- for line in lines:
- skip_ids = set(x.id for x in line.moves_ignored)
- skip_ids.update(x.id for x in line.moves_recreated)
- for move in line.moves:
- if move.state == 'cancel' and move.id not in skip_ids:
- domain_moves.append(move.id)
-
- return domain_moves
-
-HandleShipmentExceptionAsk()
+ def default_ask(self, fields):
+ Sale = Pool().get('sale.sale')
+ sale = Sale(Transaction().context.get('active_id'))
-class HandleShipmentException(Wizard):
- 'Handle Shipment Exception'
- _name = 'sale.handle.shipment.exception'
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'object': 'sale.handle.shipment.exception.ask',
- 'state': [
- ('end', 'Cancel', 'tryton-cancel'),
- ('ok', 'Ok', 'tryton-ok', True),
- ],
- },
- },
- 'ok': {
- 'result': {
- 'type': 'action',
- 'action': '_handle_moves',
- 'state': 'end',
- },
- },
- }
+ moves = []
+ for line in sale.lines:
+ skips = set(line.moves_ignored)
+ skips.update(line.moves_recreated)
+ for move in line.moves:
+ if move.state == 'cancel' and move not in skips:
+ moves.append(move.id)
+ return {
+ 'recreate_moves': moves,
+ 'domain_moves': moves,
+ }
- def _handle_moves(self, data):
+ def transition_handle(self):
pool = Pool()
- sale_obj = pool.get('sale.sale')
- sale_line_obj = pool.get('sale.line')
- move_obj = pool.get('stock.move')
- shipment_obj = pool.get('stock.shipment.out')
- to_recreate = data['form']['recreate_moves'][0][1]
- domain_moves = data['form']['domain_moves'][0][1]
+ Sale = pool.get('sale.sale')
+ SaleLine = pool.get('sale.line')
- sale = sale_obj.browse(data['id'])
+ sale = Sale(Transaction().context['active_id'])
for line in sale.lines:
moves_ignored = []
moves_recreated = []
- skip_ids = set(x.id for x in line.moves_ignored)
- skip_ids.update(x.id for x in line.moves_recreated)
+ skips = set(line.moves_ignored)
+ skips.update(line.moves_recreated)
for move in line.moves:
- if move.id not in domain_moves or move.id in skip_ids:
+ if move not in self.ask.domain_moves or move in skips:
continue
- if move.id in to_recreate:
+ if move in self.ask.recreate_moves:
moves_recreated.append(move.id)
else:
moves_ignored.append(move.id)
- sale_line_obj.write(line.id,{
- 'moves_ignored': [('add', moves_ignored)],
- 'moves_recreated': [('add', moves_recreated)],
- })
-
- sale_obj.workflow_trigger_validate(data['id'], 'shipment_ok')
-
-HandleShipmentException()
+ SaleLine.write([line], {
+ 'moves_ignored': [('add', moves_ignored)],
+ 'moves_recreated': [('add', moves_recreated)],
+ })
+ Sale.process([sale])
+ return 'end'
class HandleInvoiceExceptionAsk(ModelView):
- 'Invoice Exception Ask'
- _name = 'sale.handle.invoice.exception.ask'
- _description = __doc__
-
+ 'Handle Invoice Exception'
+ __name__ = 'sale.handle.invoice.exception.ask'
recreate_invoices = fields.Many2Many(
'account.invoice', None, None, 'Recreate Invoices',
domain=[('id', 'in', Eval('domain_invoices'))],
@@ -1991,77 +1776,69 @@
domain_invoices = fields.Many2Many(
'account.invoice', None, None, 'Domain Invoices')
- def default_recreate_invoices(self):
- return self.default_domain_invoices()
-
- def default_domain_invoices(self):
- sale_obj = Pool().get('sale.sale')
- active_id = Transaction().context.get('active_id')
- if not active_id:
- return []
-
- sale = sale_obj.browse(active_id)
- skip_ids = set(x.id for x in sale.invoices_ignored)
- skip_ids.update(x.id for x in sale.invoices_recreated)
- domain_invoices = []
- for invoice in sale.invoices:
- if invoice.state == 'cancel' and invoice.id not in skip_ids:
- domain_invoices.append(invoice.id)
-
- return domain_invoices
-
-HandleInvoiceExceptionAsk()
-
class HandleInvoiceException(Wizard):
'Handle Invoice Exception'
- _name = 'sale.handle.invoice.exception'
- states = {
- 'init': {
- 'actions': [],
- 'result': {
- 'type': 'form',
- 'object': 'sale.handle.invoice.exception.ask',
- 'state': [
- ('end', 'Cancel', 'tryton-cancel'),
- ('ok', 'Ok', 'tryton-ok', True),
- ],
- },
- },
- 'ok': {
- 'result': {
- 'type': 'action',
- 'action': '_handle_invoices',
- 'state': 'end',
- },
- },
- }
+ __name__ = 'sale.handle.invoice.exception'
+ start_state = 'ask'
+ ask = StateView('sale.handle.invoice.exception.ask',
+ 'sale.handle_invoice_exception_ask_view_form', [
+ Button('Cancel', 'end', 'tryton-cancel'),
+ Button('Ok', 'handle', 'tryton-ok', default=True),
+ ])
+ handle = StateTransition()
+
+ def default_ask(self, fields):
+ Sale = Pool().get('sale.sale')
+
+ sale = Sale(Transaction().context['active_id'])
+ skips = set(sale.invoices_ignored)
+ skips.update(sale.invoices_recreated)
+ invoices = []
+ for invoice in sale.invoices:
+ if invoice.state == 'cancel' and invoice not in skips:
+ invoices.append(invoice.id)
+ return {
+ 'recreate_invoices': invoices,
+ 'domain_invoices': invoices,
+ }
- def _handle_invoices(self, data):
- sale_obj = Pool().get('sale.sale')
- invoice_obj = Pool().get('account.invoice')
- to_recreate = data['form']['recreate_invoices'][0][1]
- domain_invoices = data['form']['domain_invoices'][0][1]
+ def transition_handle(self):
+ Sale = Pool().get('sale.sale')
- sale = sale_obj.browse(data['id'])
+ sale = Sale(Transaction().context['active_id'])
- skip_ids = set(x.id for x in sale.invoices_ignored)
- skip_ids.update(x.id for x in sale.invoices_recreated)
+ skips = set(sale.invoices_ignored)
+ skips.update(sale.invoices_recreated)
invoices_ignored = []
invoices_recreated = []
for invoice in sale.invoices:
- if invoice.id not in domain_invoices or invoice.id in skip_ids:
+ if invoice not in self.ask.domain_invoices or invoice in skips:
continue
- if invoice.id in to_recreate:
+ if invoice in self.ask.recreate_invoices:
invoices_recreated.append(invoice.id)
else:
invoices_ignored.append(invoice.id)
- sale_obj.write(sale.id,{
- 'invoices_ignored': [('add', invoices_ignored)],
- 'invoices_recreated': [('add', invoices_recreated)],
- })
+ Sale.write([sale], {
+ 'invoices_ignored': [('add', invoices_ignored)],
+ 'invoices_recreated': [('add', invoices_recreated)],
+ })
+ Sale.process([sale])
+ return 'end'
- sale_obj.workflow_trigger_validate(data['id'], 'invoice_ok')
-HandleInvoiceException()
+class ReturnSale(Wizard):
+ __name__ = 'sale.return_sale'
+ start_state = 'make_return'
+ make_return = StateTransition()
+
+ def transition_make_return(self):
+ Sale = Pool().get('sale.sale')
+
+ sale = Sale(Transaction().context['active_id'])
+ new_sale, = Sale.copy([sale])
+ for new_line in new_sale.lines:
+ new_line.quantity *= -1
+ new_line.save()
+ return 'end'
diff -Nru tryton-modules-sale-2.2.2/sale.xml tryton-modules-sale-2.8.0/sale.xml
--- tryton-modules-sale-2.2.2/sale.xml 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/sale.xml 2013-03-11 18:08:44.000000000 +0000
@@ -48,199 +48,24 @@
sale.sale
form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
+ sale_form
sale.sale
tree
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
+ sale_tree
-
+
sale.handle.shipment.exception.ask
form
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
+ handle_shipment_exception_ask_form
-
+
sale.handle.invoice.exception.ask
form
-
-
-
-
-
-
- ]]>
-
+ handle_invoice_exception_ask_form
@@ -254,6 +79,16 @@
sale.sale,-1
+
+ Returns
+ stock.shipment.out.return
+ [("id", "in", Eval('shipment_returns'))]
+
+
+ form_relate
+ sale.sale,-1
+
+
Invoices
account.invoice
@@ -269,7 +104,7 @@
Sales
sale.sale
- [('create_date', '>=', DateTime(hour=0, minute=0, second=0, microsecond=0, delta_years=-1))]
+
@@ -281,66 +116,43 @@
-
-
-
-
- Draft Sales
- sale.sale
- [('state', '=', 'draft')]
-
-
+
+ Draft
-
-
+ [('state', '=', 'draft')]
+
-
+
+ Quotation
-
-
-
-
-
-
- Quotation Sales
- sale.sale
[('state', '=', 'quotation')]
+
-
-
-
-
-
-
-
-
-
-
-
-
-
- Confirmed Sales
- sale.sale
+
+ Confirmed
+
[('state', '=', 'confirmed')]
+
-
-
-
-
+
+ Processing
+
+ [('state', '=', 'processing')]
+
-
-
-
-
+
+ All
+
+
+
+
+
+
+
-
@@ -358,6 +170,51 @@
+
+ cancel
+
+
+
+
+
+
+
+
+ draft
+
+
+
+
+
+
+
+
+ quote
+
+
+
+
+
+
+
+
+ confirm
+
+
+
+
+
+
+
+
+ process
+
+
+
+
+
+
+
Sale
sale.sale
@@ -378,400 +235,6 @@
sale.sale
-
- Sale workflow
- sale.sale
-
-
-
- Draft
-
- wkf_draft
-
-
-
- Quotation
-
- wkf_quotation
-
-
- Confirmed
-
- AND
- wkf_confirmed
-
-
- Invoice Method
-
- OR
-
-
- Waiting Invoice
-
- wkf_waiting_invoice_sale
-
-
- Invoice Exception
-
- wkf_invoice_sale_exception
-
-
- Invoice Done
-
- wkf_invoice_sale_done
-
-
- Shipment Invoice Method
-
- OR
-
-
- Shipment Invoice
-
- wkf_shipment_invoice
-
-
- Waiting Shipment Invoice
-
- wkf_waiting_shipment_invoice
-
-
- Shipment Invoice Exception
-
- wkf_shipment_invoice_exception
-
-
- Shipment Invoice Done
-
- wkf_shipment_invoice_done
-
-
- Shipment Invoice Method Done
-
-
-
- Invoice Method Done
-
-
-
- Shipment Method
-
-
-
- Shipment
-
- wkf_shipment
-
-
- Waiting Shipment
-
- wkf_waiting_shipment
-
-
- Shipment Exception
-
- wkf_shipment_exception
-
-
- Invoice Shipment Method
-
- OR
-
-
- Invoice Shipment
-
- wkf_invoice_shipment
-
-
- Waiting Invoice Shipment
-
- wkf_waiting_invoice_shipment
-
-
- Invoice Shipment Exception
-
- wkf_invoice_shipment_exception
-
-
- Invoice Shipment Done
-
- wkf_invoice_shipment_done
-
-
- Invoice Shipment Method Done
-
- wkf_invoice_shipment_method_done
-
-
- Shipment Method Done
-
-
-
- Done
-
- AND
- wkf_done
-
-
-
- Canceled
-
- wkf_cancel
-
-
-
-
-
-
- wkf_draft2quotation
- quotation
-
-
-
-
-
- cancel
-
-
-
-
-
- draft
-
-
-
-
-
- confirm
-
-
-
-
-
- cancel
-
-
-
-
-
-
-
-
-
-
- wkf_invoice_method2waiting_invoice_sale
-
-
-
-
- wkf_invoice_method2invoice_method_done
-
-
-
-
- account.invoice
- wkf_triggered_invoices
- wkf_waiting_invoice_sale2invoice_sale_exception
-
-
-
-
- invoice_ok
-
-
-
-
-
- cancel
-
-
-
-
-
- account.invoice
- wkf_triggered_invoices
- wkf_waiting_invoice_sale2invoice_sale_done
-
-
-
-
-
-
-
-
- wkf_shipment_invoice_method2shipment_invoice_method_done
-
-
-
-
- wkf_shipment_invoice_method2shipment_invoice
-
-
-
-
-
-
-
-
- stock.shipment.out
- wkf_triggered_shipments
- wkf_waiting_shipment_invoice2shipment_invoice_exception
-
-
-
-
- cancel
-
-
-
-
-
- shipment_ok
-
-
-
-
-
- stock.shipment.out
- wkf_triggered_shipments
- wkf_waiting_shipment_invoice2shipment_invoice_done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- wkf_shipment_method2shipment_method_done
-
-
-
-
- wkf_shipment_method2shipment
-
-
-
-
-
-
-
-
- shipment_update
- wkf_waiting_shipment2shipment_exception
-
-
-
-
- cancel
-
-
-
-
-
- shipment_ok
-
-
-
-
-
- shipment_update
- wkf_waiting_shipment2invoice_shipment_method
-
-
-
-
- wkf_waiting_shipment2invoice_shipment_method_nosignal
-
-
-
-
- wkf_invoice_shipment_method2invoice_shipment
-
-
-
-
- wkf_invoice_shipment_method2invoice_shipment_method_done
-
-
-
-
- wkf_invoice_shipment_method2waiting_shipment
-
-
-
-
- wkf_invoice_shipment2waiting_shipment
-
-
-
-
- wkf_invoice_shipment2waiting_invoice_shipment
-
-
-
-
- account.invoice
- wkf_triggered_invoices
- wkf_waiting_invoice_shipment2invoice_shipment_exception
-
-
-
-
- cancel
-
-
-
-
-
- invoice_ok
-
-
-
-
-
- account.invoice
- wkf_triggered_invoices
- wkf_waiting_invoice_shipment2invoice_shipment_done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Sale
sale.sale
@@ -788,74 +251,21 @@
sale.line
form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
+ sale_line_form
+
sale.line
tree
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
+
+ sale_line_tree
+
+
+
+ sale.line
+ tree
+
+ sale_line_tree_sequence
@@ -877,44 +287,12 @@
product.template
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ]]>
-
+ template_form
product.template
-
-
-
-
-
-
- ]]>
-
+ template_tree
@@ -927,14 +305,23 @@
icon="tryton-list"
id="menu_customer"/>
+
+ Create Return Sale
+ sale.return_sale
+ sale.sale
+
+
+ form_action
+ sale.sale,-1
+
+
+
-
- =
- User/Current Company
+ [('company', '=', user.company.id if user.company else None)]
@@ -974,5 +361,14 @@
+
+
+
+
+
+
+
+
+
diff -Nru tryton-modules-sale-2.2.2/setup.py tryton-modules-sale-2.8.0/setup.py
--- tryton-modules-sale-2.2.2/setup.py 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/setup.py 2013-04-20 09:16:20.000000000 +0000
@@ -4,39 +4,53 @@
from setuptools import setup
import re
+import os
+import ConfigParser
-info = eval(open('__tryton__.py').read())
+
+def read(fname):
+ return open(os.path.join(os.path.dirname(__file__), fname)).read()
+
+config = ConfigParser.ConfigParser()
+config.readfp(open('tryton.cfg'))
+info = dict(config.items('tryton'))
+for key in ('depends', 'extras_depend', 'xml'):
+ if key in info:
+ info[key] = info[key].strip().splitlines()
major_version, minor_version, _ = info.get('version', '0.0.1').split('.', 2)
major_version = int(major_version)
minor_version = int(minor_version)
requires = []
for dep in info.get('depends', []):
- if not re.match(r'(ir|res|workflow|webdav)(\W|$)', dep):
+ if not re.match(r'(ir|res|webdav)(\W|$)', dep):
requires.append('trytond_%s >= %s.%s, < %s.%s' %
- (dep, major_version, minor_version, major_version,
- minor_version + 1))
+ (dep, major_version, minor_version, major_version,
+ minor_version + 1))
requires.append('trytond >= %s.%s, < %s.%s' %
- (major_version, minor_version, major_version, minor_version + 1))
+ (major_version, minor_version, major_version, minor_version + 1))
+
+tests_require = ['proteus >= %s.%s, < %s.%s' %
+ (major_version, minor_version, major_version, minor_version + 1)]
setup(name='trytond_sale',
version=info.get('version', '0.0.1'),
- description=info.get('description', ''),
- author=info.get('author', ''),
- author_email=info.get('email', ''),
- url=info.get('website', ''),
- download_url="http://downloads.tryton.org/" + \
- info.get('version', '0.0.1').rsplit('.', 1)[0] + '/',
+ description='Tryton module for sale',
+ long_description=read('README'),
+ author='Tryton',
+ url='http://www.tryton.org/',
+ download_url=("http://downloads.tryton.org/" +
+ info.get('version', '0.0.1').rsplit('.', 1)[0] + '/'),
package_dir={'trytond.modules.sale': '.'},
packages=[
'trytond.modules.sale',
'trytond.modules.sale.tests',
- ],
+ ],
package_data={
- 'trytond.modules.sale': info.get('xml', []) \
- + info.get('translation', []) \
- + ['sale.odt'],
- },
+ 'trytond.modules.sale': (info.get('xml', [])
+ + ['tryton.cfg', 'view/*.xml', 'locale/*.po', 'sale.odt',
+ 'tests/*.rst']),
+ },
classifiers=[
'Development Status :: 5 - Production/Stable',
'Environment :: Plugins',
@@ -46,6 +60,7 @@
'Intended Audience :: Legal Industry',
'License :: OSI Approved :: GNU General Public License (GPL)',
'Natural Language :: Bulgarian',
+ 'Natural Language :: Catalan',
'Natural Language :: Czech',
'Natural Language :: Dutch',
'Natural Language :: English',
@@ -58,7 +73,7 @@
'Programming Language :: Python :: 2.7',
'Topic :: Office/Business',
'Topic :: Office/Business :: Financial :: Accounting',
- ],
+ ],
license='GPL-3',
install_requires=requires,
zip_safe=False,
@@ -68,4 +83,5 @@
""",
test_suite='tests',
test_loader='trytond.test_loader:Loader',
-)
+ tests_require=tests_require,
+ )
diff -Nru tryton-modules-sale-2.2.2/stock.xml tryton-modules-sale-2.8.0/stock.xml
--- tryton-modules-sale-2.2.2/stock.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/stock.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,13 @@
+
+
+
+
+
+ stock.move
+ tree
+
+ move_list_shipment
+
+
+
diff -Nru tryton-modules-sale-2.2.2/tests/__init__.py tryton-modules-sale-2.8.0/tests/__init__.py
--- tryton-modules-sale-2.2.2/tests/__init__.py 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/tests/__init__.py 2011-12-14 21:27:57.000000000 +0000
@@ -1,4 +1,4 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
-from test_sale import suite
+from .test_sale import suite
diff -Nru tryton-modules-sale-2.2.2/tests/scenario_sale.rst tryton-modules-sale-2.8.0/tests/scenario_sale.rst
--- tryton-modules-sale-2.2.2/tests/scenario_sale.rst 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/tests/scenario_sale.rst 2013-03-20 21:54:06.000000000 +0000
@@ -0,0 +1,489 @@
+=============
+Sale Scenario
+=============
+
+Imports::
+
+ >>> import datetime
+ >>> from dateutil.relativedelta import relativedelta
+ >>> from decimal import Decimal
+ >>> from operator import attrgetter
+ >>> from proteus import config, Model, Wizard
+ >>> today = datetime.date.today()
+
+Create database::
+
+ >>> config = config.set_trytond()
+ >>> config.pool.test = True
+
+Install sale::
+
+ >>> Module = Model.get('ir.module.module')
+ >>> sale_module, = Module.find([('name', '=', 'sale')])
+ >>> Module.install([sale_module.id], config.context)
+ >>> Wizard('ir.module.module.install_upgrade').execute('upgrade')
+
+Create company::
+
+ >>> Currency = Model.get('currency.currency')
+ >>> CurrencyRate = Model.get('currency.currency.rate')
+ >>> currencies = Currency.find([('code', '=', 'EUR')])
+ >>> if not currencies:
+ ... currency = Currency(name='Euro', symbol=u'€', code='EUR',
+ ... rounding=Decimal('0.01'), mon_grouping='[3, 3, 0]',
+ ... mon_decimal_point=',')
+ ... currency.save()
+ ... CurrencyRate(date=today + relativedelta(month=1, day=1),
+ ... rate=Decimal('1.0'), currency=currency).save()
+ ... else:
+ ... currency, = currencies
+ >>> Company = Model.get('company.company')
+ >>> Party = Model.get('party.party')
+ >>> company_config = Wizard('company.company.config')
+ >>> company_config.execute('company')
+ >>> company = company_config.form
+ >>> party = Party(name='B2CK')
+ >>> party.save()
+ >>> company.party = party
+ >>> company.currency = currency
+ >>> company_config.execute('add')
+ >>> company, = Company.find([])
+
+Reload the context::
+
+ >>> User = Model.get('res.user')
+ >>> Group = Model.get('res.group')
+ >>> config._context = User.get_preferences(True, config.context)
+
+Create sale user::
+
+ >>> sale_user = User()
+ >>> sale_user.name = 'Sale'
+ >>> sale_user.login = 'sale'
+ >>> sale_user.main_company = company
+ >>> sale_group, = Group.find([('name', '=', 'Sales')])
+ >>> sale_user.groups.append(sale_group)
+ >>> sale_user.save()
+
+Create stock user::
+
+ >>> stock_user = User()
+ >>> stock_user.name = 'Stock'
+ >>> stock_user.login = 'stock'
+ >>> stock_user.main_company = company
+ >>> stock_group, = Group.find([('name', '=', 'Stock')])
+ >>> stock_user.groups.append(stock_group)
+ >>> stock_user.save()
+
+Create account user::
+
+ >>> account_user = User()
+ >>> account_user.name = 'Account'
+ >>> account_user.login = 'account'
+ >>> account_user.main_company = company
+ >>> account_group, = Group.find([('name', '=', 'Account')])
+ >>> account_user.groups.append(account_group)
+ >>> account_user.save()
+
+Create fiscal year::
+
+ >>> FiscalYear = Model.get('account.fiscalyear')
+ >>> Sequence = Model.get('ir.sequence')
+ >>> SequenceStrict = Model.get('ir.sequence.strict')
+ >>> fiscalyear = FiscalYear(name=str(today.year))
+ >>> fiscalyear.start_date = today + relativedelta(month=1, day=1)
+ >>> fiscalyear.end_date = today + relativedelta(month=12, day=31)
+ >>> fiscalyear.company = company
+ >>> post_move_seq = Sequence(name=str(today.year), code='account.move',
+ ... company=company)
+ >>> post_move_seq.save()
+ >>> fiscalyear.post_move_sequence = post_move_seq
+ >>> invoice_seq = SequenceStrict(name=str(today.year),
+ ... code='account.invoice', company=company)
+ >>> invoice_seq.save()
+ >>> fiscalyear.out_invoice_sequence = invoice_seq
+ >>> fiscalyear.in_invoice_sequence = invoice_seq
+ >>> fiscalyear.out_credit_note_sequence = invoice_seq
+ >>> fiscalyear.in_credit_note_sequence = invoice_seq
+ >>> fiscalyear.save()
+ >>> FiscalYear.create_period([fiscalyear.id], config.context)
+
+Create chart of accounts::
+
+ >>> AccountTemplate = Model.get('account.account.template')
+ >>> Account = Model.get('account.account')
+ >>> account_template, = AccountTemplate.find([('parent', '=', False)])
+ >>> create_chart = Wizard('account.create_chart')
+ >>> create_chart.execute('account')
+ >>> create_chart.form.account_template = account_template
+ >>> create_chart.form.company = company
+ >>> create_chart.execute('create_account')
+ >>> receivable, = Account.find([
+ ... ('kind', '=', 'receivable'),
+ ... ('company', '=', company.id),
+ ... ])
+ >>> payable, = Account.find([
+ ... ('kind', '=', 'payable'),
+ ... ('company', '=', company.id),
+ ... ])
+ >>> revenue, = Account.find([
+ ... ('kind', '=', 'revenue'),
+ ... ('company', '=', company.id),
+ ... ])
+ >>> expense, = Account.find([
+ ... ('kind', '=', 'expense'),
+ ... ('company', '=', company.id),
+ ... ])
+ >>> create_chart.form.account_receivable = receivable
+ >>> create_chart.form.account_payable = payable
+ >>> create_chart.execute('create_properties')
+
+Create parties::
+
+ >>> Party = Model.get('party.party')
+ >>> supplier = Party(name='Supplier')
+ >>> supplier.save()
+ >>> customer = Party(name='Customer')
+ >>> customer.save()
+
+Create category::
+
+ >>> ProductCategory = Model.get('product.category')
+ >>> category = ProductCategory(name='Category')
+ >>> category.save()
+
+Create product::
+
+ >>> ProductUom = Model.get('product.uom')
+ >>> unit, = ProductUom.find([('name', '=', 'Unit')])
+ >>> ProductTemplate = Model.get('product.template')
+ >>> Product = Model.get('product.product')
+ >>> product = Product()
+ >>> template = ProductTemplate()
+ >>> template.name = 'product'
+ >>> template.category = category
+ >>> template.default_uom = unit
+ >>> template.type = 'goods'
+ >>> template.purchasable = True
+ >>> template.salable = True
+ >>> template.list_price = Decimal('10')
+ >>> template.cost_price = Decimal('5')
+ >>> template.cost_price_method = 'fixed'
+ >>> template.account_expense = expense
+ >>> template.account_revenue = revenue
+ >>> template.save()
+ >>> product.template = template
+ >>> product.save()
+
+Create payment term::
+
+ >>> PaymentTerm = Model.get('account.invoice.payment_term')
+ >>> PaymentTermLine = Model.get('account.invoice.payment_term.line')
+ >>> payment_term = PaymentTerm(name='Direct')
+ >>> payment_term_line = PaymentTermLine(type='remainder', days=0)
+ >>> payment_term.lines.append(payment_term_line)
+ >>> payment_term.save()
+
+Create an Inventory::
+
+ >>> config.user = stock_user.id
+ >>> Inventory = Model.get('stock.inventory')
+ >>> InventoryLine = Model.get('stock.inventory.line')
+ >>> Location = Model.get('stock.location')
+ >>> storage, = Location.find([
+ ... ('code', '=', 'STO'),
+ ... ])
+ >>> inventory = Inventory()
+ >>> inventory.location = storage
+ >>> inventory.save()
+ >>> inventory_line = InventoryLine(product=product, inventory=inventory)
+ >>> inventory_line.quantity = 100.0
+ >>> inventory_line.expected_quantity = 0.0
+ >>> inventory.save()
+ >>> inventory_line.save()
+ >>> Inventory.confirm([inventory.id], config.context)
+ >>> inventory.state
+ u'done'
+
+Sale 5 products::
+
+ >>> config.user = sale_user.id
+ >>> Sale = Model.get('sale.sale')
+ >>> SaleLine = Model.get('sale.line')
+ >>> sale = Sale()
+ >>> sale.party = customer
+ >>> sale.payment_term = payment_term
+ >>> sale.invoice_method = 'order'
+ >>> sale_line = SaleLine()
+ >>> sale.lines.append(sale_line)
+ >>> sale_line.product = product
+ >>> sale_line.quantity = 2.0
+ >>> sale_line = SaleLine()
+ >>> sale.lines.append(sale_line)
+ >>> sale_line.type = 'comment'
+ >>> sale_line.description = 'Comment'
+ >>> sale_line = SaleLine()
+ >>> sale.lines.append(sale_line)
+ >>> sale_line.product = product
+ >>> sale_line.quantity = 3.0
+ >>> sale.save()
+ >>> Sale.quote([sale.id], config.context)
+ >>> Sale.confirm([sale.id], config.context)
+ >>> Sale.process([sale.id], config.context)
+ >>> sale.state
+ u'processing'
+ >>> sale.reload()
+ >>> len(sale.shipments), len(sale.shipment_returns), len(sale.invoices)
+ (1, 0, 1)
+
+Sale 5 products with an invoice method 'on shipment'::
+
+ >>> config.user = sale_user.id
+ >>> Sale = Model.get('sale.sale')
+ >>> SaleLine = Model.get('sale.line')
+ >>> sale = Sale()
+ >>> sale.party = customer
+ >>> sale.payment_term = payment_term
+ >>> sale.invoice_method = 'shipment'
+ >>> sale_line = SaleLine()
+ >>> sale.lines.append(sale_line)
+ >>> sale_line.product = product
+ >>> sale_line.quantity = 2.0
+ >>> sale_line = SaleLine()
+ >>> sale.lines.append(sale_line)
+ >>> sale_line.type = 'comment'
+ >>> sale_line.description = 'Comment'
+ >>> sale_line = SaleLine()
+ >>> sale.lines.append(sale_line)
+ >>> sale_line.product = product
+ >>> sale_line.quantity = 3.0
+ >>> sale.save()
+ >>> Sale.quote([sale.id], config.context)
+ >>> Sale.confirm([sale.id], config.context)
+ >>> Sale.process([sale.id], config.context)
+ >>> sale.state
+ u'processing'
+ >>> sale.reload()
+ >>> len(sale.shipments), len(sale.shipment_returns), len(sale.invoices)
+ (1, 0, 0)
+
+Validate Shipments::
+
+ >>> shipment, = sale.shipments
+ >>> config.user = stock_user.id
+ >>> ShipmentOut = Model.get('stock.shipment.out')
+ >>> ShipmentOut.assign_try([shipment.id], config.context)
+ True
+ >>> ShipmentOut.pack([shipment.id], config.context)
+ >>> ShipmentOut.done([shipment.id], config.context)
+
+Open customer invoice::
+
+ >>> config.user = sale_user.id
+ >>> sale.reload()
+ >>> Invoice = Model.get('account.invoice')
+ >>> invoice, = sale.invoices
+ >>> config.user = account_user.id
+ >>> invoice.type
+ u'out_invoice'
+ >>> len(invoice.lines)
+ 2
+ >>> Invoice.post([invoice.id], config.context)
+ >>> invoice.reload()
+ >>> invoice.state
+ u'posted'
+ >>> receivable.reload()
+ >>> (receivable.debit, receivable.credit) == \
+ ... (Decimal('50.00'), Decimal('0.00'))
+ True
+ >>> revenue.reload()
+ >>> (revenue.debit, revenue.credit) == \
+ ... (Decimal('0.00'), Decimal('50.00'))
+ True
+
+Create a Return::
+
+ >>> config.user = sale_user.id
+ >>> return_ = Sale()
+ >>> return_.party = customer
+ >>> return_.payment_term = payment_term
+ >>> return_.invoice_method = 'shipment'
+ >>> return_line = SaleLine()
+ >>> return_.lines.append(return_line)
+ >>> return_line.product = product
+ >>> return_line.quantity = -4.
+ >>> return_line = SaleLine()
+ >>> return_.lines.append(return_line)
+ >>> return_line.type = 'comment'
+ >>> return_line.description = 'Comment'
+ >>> return_.save()
+ >>> Sale.quote([return_.id], config.context)
+ >>> Sale.confirm([return_.id], config.context)
+ >>> Sale.process([return_.id], config.context)
+ >>> return_.state
+ u'processing'
+ >>> return_.reload()
+ >>> (len(return_.shipments), len(return_.shipment_returns),
+ ... len(return_.invoices))
+ (0, 1, 0)
+
+Check Return Shipments::
+
+ >>> config.user = sale_user.id
+ >>> ship_return, = return_.shipment_returns
+ >>> config.user = stock_user.id
+ >>> ShipmentReturn = Model.get('stock.shipment.out.return')
+ >>> ShipmentReturn.receive([ship_return.id], config.context)
+ >>> move_return, = ship_return.incoming_moves
+ >>> move_return.product.rec_name
+ u'product'
+ >>> move_return.quantity
+ 4.0
+
+Open customer credit note::
+
+ >>> config.user = sale_user.id
+ >>> return_.reload()
+ >>> credit_note, = return_.invoices
+ >>> config.user = account_user.id
+ >>> credit_note.type
+ u'out_credit_note'
+ >>> len(credit_note.lines)
+ 1
+ >>> Invoice.post([credit_note.id], config.context)
+ >>> credit_note.reload()
+ >>> credit_note.state
+ u'posted'
+ >>> receivable.reload()
+ >>> (receivable.debit, receivable.credit) == (Decimal(50), Decimal(40))
+ True
+ >>> revenue.reload()
+ >>> (revenue.debit, revenue.credit) == (Decimal(40), Decimal(50))
+ True
+
+Mixing return and sale::
+
+ >>> config.user = sale_user.id
+ >>> mix = Sale()
+ >>> mix.party = customer
+ >>> mix.payment_term = payment_term
+ >>> mix.invoice_method = 'order'
+ >>> mixline = SaleLine()
+ >>> mix.lines.append(mixline)
+ >>> mixline.product = product
+ >>> mixline.quantity = 7.
+ >>> mixline_comment = SaleLine()
+ >>> mix.lines.append(mixline_comment)
+ >>> mixline_comment.type = 'comment'
+ >>> mixline_comment.description = 'Comment'
+ >>> mixline2 = SaleLine()
+ >>> mix.lines.append(mixline2)
+ >>> mixline2.product = product
+ >>> mixline2.quantity = -2.
+ >>> mix.save()
+ >>> Sale.quote([mix.id], config.context)
+ >>> Sale.confirm([mix.id], config.context)
+ >>> Sale.process([mix.id], config.context)
+ >>> mix.state
+ u'processing'
+ >>> mix.reload()
+ >>> len(mix.shipments), len(mix.shipment_returns), len(mix.invoices)
+ (1, 1, 2)
+
+Checking Shipments::
+
+ >>> config.user = sale_user.id
+ >>> mix_returns, = mix.shipment_returns
+ >>> mix_shipments, = mix.shipments
+ >>> config.user = stock_user.id
+ >>> ShipmentReturn.receive([mix_returns.id], config.context)
+ >>> move_return, = mix_returns.incoming_moves
+ >>> move_return.product.rec_name
+ u'product'
+ >>> move_return.quantity
+ 2.0
+ >>> ShipmentOut.assign_try([mix_shipments.id], config.context)
+ True
+ >>> ShipmentOut.pack([mix_shipments.id], config.context)
+ >>> ShipmentOut.done([mix_shipments.id], config.context)
+ >>> move_shipment, = mix_shipments.outgoing_moves
+ >>> move_shipment.product.rec_name
+ u'product'
+ >>> move_shipment.quantity
+ 7.0
+
+Checking the invoice::
+
+ >>> config.user = sale_user.id
+ >>> mix.reload()
+ >>> mix_invoice, mix_credit_note = sorted(mix.invoices,
+ ... key=attrgetter('type'), reverse=True)
+ >>> config.user = account_user.id
+ >>> mix_invoice.type, mix_credit_note.type
+ (u'out_invoice', u'out_credit_note')
+ >>> len(mix_invoice.lines), len(mix_credit_note.lines)
+ (1, 1)
+ >>> Invoice.post([mix_invoice.id], config.context)
+ >>> mix_invoice.reload()
+ >>> mix_invoice.state
+ u'posted'
+ >>> Invoice.post([mix_credit_note.id], config.context)
+ >>> mix_credit_note.reload()
+ >>> mix_credit_note.state
+ u'posted'
+ >>> receivable.reload()
+ >>> (receivable.debit, receivable.credit) == (Decimal(120), Decimal(60))
+ True
+ >>> revenue.reload()
+ >>> (revenue.debit, revenue.credit) == (Decimal(60), Decimal(120))
+ True
+
+Mixing stuff with an invoice method 'on shipment'::
+
+ >>> config.user = sale_user.id
+ >>> mix = Sale()
+ >>> mix.party = customer
+ >>> mix.payment_term = payment_term
+ >>> mix.invoice_method = 'shipment'
+ >>> mixline = SaleLine()
+ >>> mix.lines.append(mixline)
+ >>> mixline.product = product
+ >>> mixline.quantity = 6.
+ >>> mixline_comment = SaleLine()
+ >>> mix.lines.append(mixline_comment)
+ >>> mixline_comment.type = 'comment'
+ >>> mixline_comment.description = 'Comment'
+ >>> mixline2 = SaleLine()
+ >>> mix.lines.append(mixline2)
+ >>> mixline2.product = product
+ >>> mixline2.quantity = -3.
+ >>> mix.save()
+ >>> Sale.quote([mix.id], config.context)
+ >>> Sale.confirm([mix.id], config.context)
+ >>> Sale.process([mix.id], config.context)
+ >>> mix.state
+ u'processing'
+ >>> mix.reload()
+ >>> len(mix.shipments), len(mix.shipment_returns), len(mix.invoices)
+ (1, 1, 0)
+
+Checking Shipments::
+
+ >>> config.user = sale_user.id
+ >>> mix_returns, = mix.shipment_returns
+ >>> mix_shipments, = mix.shipments
+ >>> config.user = stock_user.id
+ >>> ShipmentReturn.receive([mix_returns.id], config.context)
+ >>> move_return, = mix_returns.incoming_moves
+ >>> move_return.product.rec_name
+ u'product'
+ >>> move_return.quantity
+ 3.0
+ >>> ShipmentOut.assign_try([mix_shipments.id], config.context)
+ True
+ >>> ShipmentOut.pack([mix_shipments.id], config.context)
+ >>> move_shipment, = mix_shipments.outgoing_moves
+ >>> move_shipment.product.rec_name
+ u'product'
+ >>> move_shipment.quantity
+ 6.0
diff -Nru tryton-modules-sale-2.2.2/tests/test_sale.py tryton-modules-sale-2.8.0/tests/test_sale.py
--- tryton-modules-sale-2.2.2/tests/test_sale.py 2011-11-22 12:29:57.000000000 +0000
+++ tryton-modules-sale-2.8.0/tests/test_sale.py 2013-03-06 15:55:38.000000000 +0000
@@ -2,15 +2,18 @@
#This file is part of Tryton. The COPYRIGHT file at the top level of
#this repository contains the full copyright notices and license terms.
-import sys, os
+import sys
+import os
DIR = os.path.abspath(os.path.normpath(os.path.join(__file__,
'..', '..', '..', '..', '..', 'trytond')))
if os.path.isdir(DIR):
sys.path.insert(0, os.path.dirname(DIR))
import unittest
+import doctest
import trytond.tests.test_tryton
from trytond.tests.test_tryton import test_view, test_depends
+from trytond.backend.sqlite.database import Database as SQLiteDatabase
class SaleTestCase(unittest.TestCase):
@@ -33,9 +36,23 @@
'''
test_depends()
+
+def doctest_dropdb(test):
+ database = SQLiteDatabase().connect()
+ cursor = database.cursor(autocommit=True)
+ try:
+ database.drop(cursor, ':memory:')
+ cursor.commit()
+ finally:
+ cursor.close()
+
+
def suite():
suite = trytond.tests.test_tryton.suite()
suite.addTests(unittest.TestLoader().loadTestsFromTestCase(SaleTestCase))
+ suite.addTests(doctest.DocFileSuite('scenario_sale.rst',
+ setUp=doctest_dropdb, tearDown=doctest_dropdb, encoding='utf-8',
+ optionflags=doctest.REPORT_ONLY_FIRST_FAILURE))
return suite
if __name__ == '__main__':
diff -Nru tryton-modules-sale-2.2.2/tryton.cfg tryton-modules-sale-2.8.0/tryton.cfg
--- tryton-modules-sale-2.2.2/tryton.cfg 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/tryton.cfg 2013-04-22 09:08:10.000000000 +0000
@@ -0,0 +1,19 @@
+[tryton]
+version=2.8.0
+depends:
+ account
+ account_invoice
+ account_product
+ company
+ currency
+ ir
+ party
+ product
+ res
+ stock
+xml:
+ sale.xml
+ configuration.xml
+ party.xml
+ stock.xml
+ product.xml
diff -Nru tryton-modules-sale-2.2.2/trytond_sale.egg-info/PKG-INFO tryton-modules-sale-2.8.0/trytond_sale.egg-info/PKG-INFO
--- tryton-modules-sale-2.2.2/trytond_sale.egg-info/PKG-INFO 2012-05-07 09:10:05.000000000 +0000
+++ tryton-modules-sale-2.8.0/trytond_sale.egg-info/PKG-INFO 2013-04-22 09:08:17.000000000 +0000
@@ -1,27 +1,48 @@
Metadata-Version: 1.1
Name: trytond-sale
-Version: 2.2.2
-Summary: Define sale order.
-Add to product sale informations.
-Define the sale price as the list price.
-
-With the possibilities:
- - to follow invoice and shipment states from the sale order.
- - to define invoice method:
- - Manual
- - On Order Confirmed
- - On shipment Sent
- - to define shipment method:
- - Manual
- - On Order Confirmed
- - On Invoice Paid
-
+Version: 2.8.0
+Summary: Tryton module for sale
Home-page: http://www.tryton.org/
-Author: B2CK
-Author-email: info@b2ck.com
+Author: Tryton
+Author-email: UNKNOWN
License: GPL-3
-Download-URL: http://downloads.tryton.org/2.2/
-Description: UNKNOWN
+Download-URL: http://downloads.tryton.org/2.8/
+Description: trytond_sale
+ ============
+
+ The sale module of the Tryton application platform.
+
+ Installing
+ ----------
+
+ See INSTALL
+
+ Support
+ -------
+
+ If you encounter any problems with Tryton, please don't hesitate to ask
+ questions on the Tryton bug tracker, mailing list, wiki or IRC channel:
+
+ http://bugs.tryton.org/
+ http://groups.tryton.org/
+ http://wiki.tryton.org/
+ irc://irc.freenode.net/tryton
+
+ License
+ -------
+
+ See LICENSE
+
+ Copyright
+ ---------
+
+ See COPYRIGHT
+
+
+ For more information please visit the Tryton web site:
+
+ http://www.tryton.org/
+
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Plugins
@@ -31,6 +52,7 @@
Classifier: Intended Audience :: Legal Industry
Classifier: License :: OSI Approved :: GNU General Public License (GPL)
Classifier: Natural Language :: Bulgarian
+Classifier: Natural Language :: Catalan
Classifier: Natural Language :: Czech
Classifier: Natural Language :: Dutch
Classifier: Natural Language :: English
diff -Nru tryton-modules-sale-2.2.2/trytond_sale.egg-info/SOURCES.txt tryton-modules-sale-2.8.0/trytond_sale.egg-info/SOURCES.txt
--- tryton-modules-sale-2.2.2/trytond_sale.egg-info/SOURCES.txt 2012-05-07 09:10:05.000000000 +0000
+++ tryton-modules-sale-2.8.0/trytond_sale.egg-info/SOURCES.txt 2013-04-22 09:08:18.000000000 +0000
@@ -7,11 +7,13 @@
TODO
configuration.xml
party.xml
+product.xml
sale.odt
sale.xml
setup.py
+stock.xml
+tryton.cfg
./__init__.py
-./__tryton__.py
./configuration.py
./invoice.py
./sale.py
@@ -19,17 +21,32 @@
./tests/test_sale.py
doc/index.rst
locale/bg_BG.po
+locale/ca_ES.po
locale/cs_CZ.po
locale/de_DE.po
+locale/es_AR.po
locale/es_CO.po
locale/es_ES.po
locale/fr_FR.po
locale/nl_NL.po
locale/ru_RU.po
+tests/scenario_sale.rst
trytond_sale.egg-info/PKG-INFO
trytond_sale.egg-info/SOURCES.txt
trytond_sale.egg-info/dependency_links.txt
trytond_sale.egg-info/entry_points.txt
trytond_sale.egg-info/not-zip-safe
trytond_sale.egg-info/requires.txt
-trytond_sale.egg-info/top_level.txt
\ No newline at end of file
+trytond_sale.egg-info/top_level.txt
+view/configuration_form.xml
+view/handle_invoice_exception_ask_form.xml
+view/handle_shipment_exception_ask_form.xml
+view/move_list_shipment.xml
+view/product_list_sale_line.xml
+view/sale_form.xml
+view/sale_line_form.xml
+view/sale_line_tree.xml
+view/sale_line_tree_sequence.xml
+view/sale_tree.xml
+view/template_form.xml
+view/template_tree.xml
\ No newline at end of file
diff -Nru tryton-modules-sale-2.2.2/trytond_sale.egg-info/requires.txt tryton-modules-sale-2.8.0/trytond_sale.egg-info/requires.txt
--- tryton-modules-sale-2.2.2/trytond_sale.egg-info/requires.txt 2012-05-07 09:10:05.000000000 +0000
+++ tryton-modules-sale-2.8.0/trytond_sale.egg-info/requires.txt 2013-04-22 09:08:17.000000000 +0000
@@ -1,9 +1,9 @@
-trytond_company >= 2.2, < 2.3
-trytond_party >= 2.2, < 2.3
-trytond_stock >= 2.2, < 2.3
-trytond_account >= 2.2, < 2.3
-trytond_product >= 2.2, < 2.3
-trytond_account_invoice >= 2.2, < 2.3
-trytond_currency >= 2.2, < 2.3
-trytond_account_product >= 2.2, < 2.3
-trytond >= 2.2, < 2.3
\ No newline at end of file
+trytond_account >= 2.8, < 2.9
+trytond_account_invoice >= 2.8, < 2.9
+trytond_account_product >= 2.8, < 2.9
+trytond_company >= 2.8, < 2.9
+trytond_currency >= 2.8, < 2.9
+trytond_party >= 2.8, < 2.9
+trytond_product >= 2.8, < 2.9
+trytond_stock >= 2.8, < 2.9
+trytond >= 2.8, < 2.9
\ No newline at end of file
diff -Nru tryton-modules-sale-2.2.2/view/configuration_form.xml tryton-modules-sale-2.8.0/view/configuration_form.xml
--- tryton-modules-sale-2.2.2/view/configuration_form.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/configuration_form.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,12 @@
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/handle_invoice_exception_ask_form.xml tryton-modules-sale-2.8.0/view/handle_invoice_exception_ask_form.xml
--- tryton-modules-sale-2.2.2/view/handle_invoice_exception_ask_form.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/handle_invoice_exception_ask_form.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,10 @@
+
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/handle_shipment_exception_ask_form.xml tryton-modules-sale-2.8.0/view/handle_shipment_exception_ask_form.xml
--- tryton-modules-sale-2.2.2/view/handle_shipment_exception_ask_form.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/handle_shipment_exception_ask_form.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,9 @@
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/move_list_shipment.xml tryton-modules-sale-2.8.0/view/move_list_shipment.xml
--- tryton-modules-sale-2.2.2/view/move_list_shipment.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/move_list_shipment.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/product_list_sale_line.xml tryton-modules-sale-2.8.0/view/product_list_sale_line.xml
--- tryton-modules-sale-2.2.2/view/product_list_sale_line.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/product_list_sale_line.xml 2013-03-20 21:54:06.000000000 +0000
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/sale_form.xml tryton-modules-sale-2.8.0/view/sale_form.xml
--- tryton-modules-sale-2.2.2/view/sale_form.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/sale_form.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,84 @@
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/sale_line_form.xml tryton-modules-sale-2.8.0/view/sale_line_form.xml
--- tryton-modules-sale-2.2.2/view/sale_line_form.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/sale_line_form.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,39 @@
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/sale_line_tree.xml tryton-modules-sale-2.8.0/view/sale_line_tree.xml
--- tryton-modules-sale-2.2.2/view/sale_line_tree.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/sale_line_tree.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/sale_line_tree_sequence.xml tryton-modules-sale-2.8.0/view/sale_line_tree_sequence.xml
--- tryton-modules-sale-2.2.2/view/sale_line_tree_sequence.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/sale_line_tree_sequence.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/sale_tree.xml tryton-modules-sale-2.8.0/view/sale_tree.xml
--- tryton-modules-sale-2.2.2/view/sale_tree.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/sale_tree.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/template_form.xml tryton-modules-sale-2.8.0/view/template_form.xml
--- tryton-modules-sale-2.2.2/view/template_form.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/template_form.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff -Nru tryton-modules-sale-2.2.2/view/template_tree.xml tryton-modules-sale-2.8.0/view/template_tree.xml
--- tryton-modules-sale-2.2.2/view/template_tree.xml 1970-01-01 00:00:00.000000000 +0000
+++ tryton-modules-sale-2.8.0/view/template_tree.xml 2013-03-11 18:08:44.000000000 +0000
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+