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 - - - 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 - - -