From b10f97d7912116920bf7d6802c71476772287b7f Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 19 Sep 2013 14:03:15 +0200 Subject: [PATCH 01/28] Initial check-in of the module "account_fiscal_position_vat_check" This module checks that the customer has a VAT number on invoice validation if it has a fiscal position flagged "Customer must have VAT". --- account_fiscal_position_vat_check/__init__.py | 23 +++++++ .../__openerp__.py | 53 +++++++++++++++ .../account_fiscal_position_view.xml | 37 +++++++++++ .../account_invoice.py | 48 ++++++++++++++ .../i18n/account_fiscal_position_vat_check.po | 61 ++++++++++++++++++ account_fiscal_position_vat_check/i18n/fr.po | 61 ++++++++++++++++++ .../images/fiscal_position_form.jpg | Bin 0 -> 25175 bytes .../images/vat_check_invoice_validation.jpg | Bin 0 -> 68015 bytes 8 files changed, 283 insertions(+) create mode 100644 account_fiscal_position_vat_check/__init__.py create mode 100644 account_fiscal_position_vat_check/__openerp__.py create mode 100644 account_fiscal_position_vat_check/account_fiscal_position_view.xml create mode 100644 account_fiscal_position_vat_check/account_invoice.py create mode 100644 account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.po create mode 100644 account_fiscal_position_vat_check/i18n/fr.po create mode 100644 account_fiscal_position_vat_check/images/fiscal_position_form.jpg create mode 100644 account_fiscal_position_vat_check/images/vat_check_invoice_validation.jpg diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py new file mode 100644 index 000000000..3ac42a65f --- /dev/null +++ b/account_fiscal_position_vat_check/__init__.py @@ -0,0 +1,23 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +import account_invoice diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py new file mode 100644 index 000000000..20bb368a2 --- /dev/null +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -0,0 +1,53 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +{ + 'name': 'Account Fiscal Position VAT Check', + 'version': '0.1', + 'category': 'Accounting & Finance', + 'license': 'AGPL-3', + 'summary': 'Check VAT on invoice validation', + 'description': """ +Check that the Customer has a VAT number on invoice validation +============================================================== + +This module adds an option **Customer must have VAT** on fiscal positions. When a user tries to validate a customer invoice or refund with a fiscal position that have this option, OpenERP will check that the customer has a VAT number. If it doesn't, OpenERP will block the validation of the invoice and display an error message. + +In the European Union (EU), when an EU company sends an invoice to another EU company in another country, it can invoice without VAT (most of the time) but the VAT number of the customer must be displayed on the invoice. + +Please contact Alexis de Lattre from Akretion for any help or question about this module. + """, + 'author': 'Akretion', + 'website': 'http://www.akretion.com', + 'depends': ['account'], + 'data': [ + 'account_fiscal_position_view.xml', + ], + 'images': [ + 'fiscal_position_form.jpg', + 'vat_check_invoice_validation.jpg', + ], + 'installable': True, + 'active': False, + 'application': True, +} diff --git a/account_fiscal_position_vat_check/account_fiscal_position_view.xml b/account_fiscal_position_vat_check/account_fiscal_position_view.xml new file mode 100644 index 000000000..d29e2b14b --- /dev/null +++ b/account_fiscal_position_vat_check/account_fiscal_position_view.xml @@ -0,0 +1,37 @@ + + + + + + + + + + customer.must.have.vat.fiscal_position_form + account.fiscal.position + + + + + + + + + + + customer.must.have.vat.fiscal_position_tree + account.fiscal.position + + + + + + + + + + diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py new file mode 100644 index 000000000..c3f5d9003 --- /dev/null +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -0,0 +1,48 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import osv, orm, fields +from openerp.tools.translate import _ + + +class account_fiscal_position(osv.Model): + _inherit = 'account.fiscal.position' + + _columns = { + 'customer_must_have_vat': fields.boolean('Customer Must Have VAT number', + help="If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund."), + } + + +class account_invoice(osv.Model): + _inherit = 'account.invoice' + + def action_move_create(self, cr, uid, ids, context=None): + '''Check that the customer has VAT set if the fiscal position require it''' + for invoice in self.browse(cr, uid, ids, context=context): + if invoice.type in ('out_invoice', 'out_refund') and invoice.fiscal_position and invoice.fiscal_position.customer_must_have_vat and not invoice.partner_id.vat: + if invoice.type == 'out_invoice': + type_label = _('a Customer Invoice') + else: + type_label = _('a Customer Refund') + raise orm.except_orm(_('Missing VAT number:'), _("You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again.") %(type_label, invoice.fiscal_position.name, invoice.partner_id.name)) + return super(account_invoice, self).action_move_create(cr, uid, ids, context=context) diff --git a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.po b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.po new file mode 100644 index 000000000..646d2cd25 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.po @@ -0,0 +1,61 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-13 15:46+0000\n" +"PO-Revision-Date: 2013-09-13 15:46+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:47 +#, python-format +msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:46 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:44 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:47 +#, python-format +msgid "Missing VAT number:" +msgstr "" + diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po new file mode 100644 index 000000000..cd5d662c8 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/fr.po @@ -0,0 +1,61 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-09-13 15:45+0000\n" +"PO-Revision-Date: 2013-09-13 15:45+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:47 +#, python-format +msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." +msgstr "Vous essayez de valider %s avec la position fiscale '%s' qui oblige à connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans OpenERP et essayer de valider à nouveau." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:46 +#, python-format +msgid "a Customer Refund" +msgstr "un avoir client" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "Numéro de TVA obligatoire pour le client" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund." +msgstr "Si activé, OpenERP vérifiera que le client a un numéro de TVA quand l'utilisasteur valide la facture/avoir client." + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Position fiscale" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Facture" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:44 +#, python-format +msgid "a Customer Invoice" +msgstr "une facture client" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:47 +#, python-format +msgid "Missing VAT number:" +msgstr "Numéro de TVA manquant :" + diff --git a/account_fiscal_position_vat_check/images/fiscal_position_form.jpg b/account_fiscal_position_vat_check/images/fiscal_position_form.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1868f8b4aa98f005a031cb2c43cbf89d63ebeb22 GIT binary patch literal 25175 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 E8`+W|IsgCw literal 0 HcmV?d00001 From b9e7e723278580a4a9a2e241a228adcdd889add7 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Sat, 28 Sep 2013 18:10:52 +0200 Subject: [PATCH 02/28] Coding style enhancements suggested by the reviewers. --- account_fiscal_position_vat_check/__init__.py | 2 +- account_fiscal_position_vat_check/account_invoice.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py index 3ac42a65f..b234380bc 100644 --- a/account_fiscal_position_vat_check/__init__.py +++ b/account_fiscal_position_vat_check/__init__.py @@ -20,4 +20,4 @@ # ############################################################################## -import account_invoice +from . import account_invoice diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py index c3f5d9003..e9039ac84 100644 --- a/account_fiscal_position_vat_check/account_invoice.py +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -20,11 +20,11 @@ # ############################################################################## -from openerp.osv import osv, orm, fields +from openerp.osv import orm, fields from openerp.tools.translate import _ -class account_fiscal_position(osv.Model): +class account_fiscal_position(orm.Model): _inherit = 'account.fiscal.position' _columns = { @@ -33,7 +33,7 @@ class account_fiscal_position(osv.Model): } -class account_invoice(osv.Model): +class account_invoice(orm.Model): _inherit = 'account.invoice' def action_move_create(self, cr, uid, ids, context=None): From 44317d79022d89255814935f78902fce597c456c Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 14 Oct 2013 00:48:40 +0200 Subject: [PATCH 03/28] Should be PEP8 compliant now. --- .../__openerp__.py | 4 +-- .../account_invoice.py | 27 ++++++++++++++----- 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 20bb368a2..2fa13e41c 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -42,11 +42,11 @@ Please contact Alexis de Lattre from Akretion for 'depends': ['account'], 'data': [ 'account_fiscal_position_view.xml', - ], + ], 'images': [ 'fiscal_position_form.jpg', 'vat_check_invoice_validation.jpg', - ], + ], 'installable': True, 'active': False, 'application': True, diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py index e9039ac84..35b978ef9 100644 --- a/account_fiscal_position_vat_check/account_invoice.py +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -28,8 +28,10 @@ class account_fiscal_position(orm.Model): _inherit = 'account.fiscal.position' _columns = { - 'customer_must_have_vat': fields.boolean('Customer Must Have VAT number', - help="If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund."), + 'customer_must_have_vat': fields.boolean( + 'Customer Must Have VAT number', + help="If enabled, OpenERP will check that the customer has\ + a VAT number when the user validates a customer invoice/refund."), } @@ -37,12 +39,25 @@ class account_invoice(orm.Model): _inherit = 'account.invoice' def action_move_create(self, cr, uid, ids, context=None): - '''Check that the customer has VAT set if the fiscal position require it''' + '''Check that the customer has VAT set + if required by the fiscal position''' for invoice in self.browse(cr, uid, ids, context=context): - if invoice.type in ('out_invoice', 'out_refund') and invoice.fiscal_position and invoice.fiscal_position.customer_must_have_vat and not invoice.partner_id.vat: + if invoice.type in ('out_invoice', 'out_refund') \ + and invoice.fiscal_position \ + and invoice.fiscal_position.customer_must_have_vat \ + and not invoice.partner_id.vat: if invoice.type == 'out_invoice': type_label = _('a Customer Invoice') else: type_label = _('a Customer Refund') - raise orm.except_orm(_('Missing VAT number:'), _("You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again.") %(type_label, invoice.fiscal_position.name, invoice.partner_id.name)) - return super(account_invoice, self).action_move_create(cr, uid, ids, context=context) + raise orm.except_orm( + _('Missing VAT number:'), + _("You are trying to validate %s with the fiscal position\ + '%s' that require the customer to have a VAT number. But\ + the Customer '%s' doesn't have a VAT number in OpenERP.\ + Please add the VAT number of this Customer in OpenERP\ + and try to validate again.") + % (type_label, invoice.fiscal_position.name, + invoice.partner_id.name)) + return super(account_invoice, self).action_move_create( + cr, uid, ids, context=context) From 5186560954563ac05d29e5a24d9b0db1ca6a38f9 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Mon, 14 Oct 2013 17:12:51 +0200 Subject: [PATCH 04/28] Translation template file is .pot (it's a trap, because OpenERP generate the file with .po extension !) --- ...osition_vat_check.po => account_fiscal_position_vat_check.pot} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename account_fiscal_position_vat_check/i18n/{account_fiscal_position_vat_check.po => account_fiscal_position_vat_check.pot} (100%) diff --git a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.po b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot similarity index 100% rename from account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.po rename to account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot From e5393e6497ac0e40952cb027ba580542d8ba5302 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Sat, 19 Oct 2013 21:56:42 +0200 Subject: [PATCH 05/28] Add warning when the user sets a fiscal position "must have vat" on a partner and this partner doesn't have a VAT number in openerp yet. Remove the cut at 80 lines on some messages as it doesn't work with translation files. Update FR translation. --- account_fiscal_position_vat_check/__init__.py | 1 + .../__openerp__.py | 3 ++ .../account_invoice.py | 11 ++--- .../account_fiscal_position_vat_check.pot | 29 +++++++++++--- account_fiscal_position_vat_check/i18n/fr.po | 29 +++++++++++--- account_fiscal_position_vat_check/partner.py | 40 +++++++++++++++++++ .../partner_view.xml | 26 ++++++++++++ 7 files changed, 119 insertions(+), 20 deletions(-) create mode 100644 account_fiscal_position_vat_check/partner.py create mode 100644 account_fiscal_position_vat_check/partner_view.xml diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py index b234380bc..299cab6fa 100644 --- a/account_fiscal_position_vat_check/__init__.py +++ b/account_fiscal_position_vat_check/__init__.py @@ -21,3 +21,4 @@ ############################################################################## from . import account_invoice +from . import partner diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 2fa13e41c..6b010f9da 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -35,6 +35,8 @@ This module adds an option **Customer must have VAT** on fiscal positions. When In the European Union (EU), when an EU company sends an invoice to another EU company in another country, it can invoice without VAT (most of the time) but the VAT number of the customer must be displayed on the invoice. +This module also displays a warning when a user sets a fiscal position with the option **Customer must have VAT** on a partner and this partner doesn't have a VAT number in OpenERP yet. + Please contact Alexis de Lattre from Akretion for any help or question about this module. """, 'author': 'Akretion', @@ -42,6 +44,7 @@ Please contact Alexis de Lattre from Akretion for 'depends': ['account'], 'data': [ 'account_fiscal_position_view.xml', + 'partner_view.xml', ], 'images': [ 'fiscal_position_form.jpg', diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py index 35b978ef9..543dd80a3 100644 --- a/account_fiscal_position_vat_check/account_invoice.py +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -30,8 +30,7 @@ class account_fiscal_position(orm.Model): _columns = { 'customer_must_have_vat': fields.boolean( 'Customer Must Have VAT number', - help="If enabled, OpenERP will check that the customer has\ - a VAT number when the user validates a customer invoice/refund."), + help="If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund."), } @@ -52,12 +51,8 @@ class account_invoice(orm.Model): type_label = _('a Customer Refund') raise orm.except_orm( _('Missing VAT number:'), - _("You are trying to validate %s with the fiscal position\ - '%s' that require the customer to have a VAT number. But\ - the Customer '%s' doesn't have a VAT number in OpenERP.\ - Please add the VAT number of this Customer in OpenERP\ - and try to validate again.") + _("You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again.") % (type_label, invoice.fiscal_position.name, - invoice.partner_id.name)) + invoice.partner_id.name)) return super(account_invoice, self).action_move_create( cr, uid, ids, context=context) diff --git a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot index 646d2cd25..077278974 100644 --- a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot +++ b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-09-13 15:46+0000\n" -"PO-Revision-Date: 2013-09-13 15:46+0000\n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2013-10-19 19:46+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,13 +16,18 @@ msgstr "" "Plural-Forms: \n" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:47 +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 #, python-format msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." msgstr "" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:46 +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 #, python-format msgid "a Customer Refund" msgstr "" @@ -48,14 +53,26 @@ msgid "Invoice" msgstr "" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:44 +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 #, python-format msgid "a Customer Invoice" msgstr "" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:47 +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 #, python-format msgid "Missing VAT number:" msgstr "" +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" + diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po index cd5d662c8..50d547450 100644 --- a/account_fiscal_position_vat_check/i18n/fr.po +++ b/account_fiscal_position_vat_check/i18n/fr.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-09-13 15:45+0000\n" -"PO-Revision-Date: 2013-09-13 15:45+0000\n" +"POT-Creation-Date: 2013-10-19 19:47+0000\n" +"PO-Revision-Date: 2013-10-19 19:47+0000\n" "Last-Translator: <>\n" "Language-Team: \n" "MIME-Version: 1.0\n" @@ -16,13 +16,18 @@ msgstr "" "Plural-Forms: \n" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:47 +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "fiscal_position_change(property_account_position, vat)" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 #, python-format msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." msgstr "Vous essayez de valider %s avec la position fiscale '%s' qui oblige à connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans OpenERP et essayer de valider à nouveau." #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:46 +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 #, python-format msgid "a Customer Refund" msgstr "un avoir client" @@ -48,14 +53,26 @@ msgid "Invoice" msgstr "Facture" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:44 +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partenaire" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 #, python-format msgid "a Customer Invoice" msgstr "une facture client" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:47 +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 #, python-format msgid "Missing VAT number:" msgstr "Numéro de TVA manquant :" +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "Vous avez sélectionné la position fiscale '%s' qui exige que le client ait un numéro de TVA. Vous devez ajouter le numéro de TVA de ce client dans OpenERP." + diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py new file mode 100644 index 000000000..4b0716522 --- /dev/null +++ b/account_fiscal_position_vat_check/partner.py @@ -0,0 +1,40 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm +from openerp.tools.translate import _ + + +class res_partner(orm.Model): + _inherit = 'res.partner' + + def fiscal_position_change(self, cr, uid, ids, account_position, vat): + '''Warning is the fiscal position requires a vat number and the partner + doesn't have one yet''' + if account_position and not vat: + fp = self.pool['account.fiscal.position'].read( + cr, uid, account_position, ['customer_must_have_vat', 'name']) + if fp['customer_must_have_vat']: + return {'warning': { + 'title': _('Missing VAT number:'), + 'message': _("You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP.") % fp['name']}} + return True diff --git a/account_fiscal_position_vat_check/partner_view.xml b/account_fiscal_position_vat_check/partner_view.xml new file mode 100644 index 000000000..773aa9ee7 --- /dev/null +++ b/account_fiscal_position_vat_check/partner_view.xml @@ -0,0 +1,26 @@ + + + + + + + + + + customer.must.have.vat.fiscal_position_form + res.partner + + + + fiscal_position_change(property_account_position, vat) + + + + + + + From 1be05415becb01eead2983f630484c101a87ff42 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 24 Oct 2013 18:18:25 +0200 Subject: [PATCH 06/28] Only display a warning when the partner is a customer. I promise, it's my last commit on this merge proposal :) --- account_fiscal_position_vat_check/__openerp__.py | 2 +- account_fiscal_position_vat_check/partner.py | 4 ++-- account_fiscal_position_vat_check/partner_view.xml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 6b010f9da..a0a66ccc2 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -35,7 +35,7 @@ This module adds an option **Customer must have VAT** on fiscal positions. When In the European Union (EU), when an EU company sends an invoice to another EU company in another country, it can invoice without VAT (most of the time) but the VAT number of the customer must be displayed on the invoice. -This module also displays a warning when a user sets a fiscal position with the option **Customer must have VAT** on a partner and this partner doesn't have a VAT number in OpenERP yet. +This module also displays a warning when a user sets a fiscal position with the option **Customer must have VAT** on a customer and this customer doesn't have a VAT number in OpenERP yet. Please contact Alexis de Lattre from Akretion for any help or question about this module. """, diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py index 4b0716522..c3daa2dff 100644 --- a/account_fiscal_position_vat_check/partner.py +++ b/account_fiscal_position_vat_check/partner.py @@ -27,10 +27,10 @@ from openerp.tools.translate import _ class res_partner(orm.Model): _inherit = 'res.partner' - def fiscal_position_change(self, cr, uid, ids, account_position, vat): + def fiscal_position_change(self, cr, uid, ids, account_position, vat, customer): '''Warning is the fiscal position requires a vat number and the partner doesn't have one yet''' - if account_position and not vat: + if account_position and customer and not vat: fp = self.pool['account.fiscal.position'].read( cr, uid, account_position, ['customer_must_have_vat', 'name']) if fp['customer_must_have_vat']: diff --git a/account_fiscal_position_vat_check/partner_view.xml b/account_fiscal_position_vat_check/partner_view.xml index 773aa9ee7..c7b6abee7 100644 --- a/account_fiscal_position_vat_check/partner_view.xml +++ b/account_fiscal_position_vat_check/partner_view.xml @@ -16,7 +16,7 @@ - fiscal_position_change(property_account_position, vat) + fiscal_position_change(property_account_position, vat, customer) From d68045d5731d6fdbe27c6c339e11d2b5e5a807ca Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Fri, 3 Jan 2014 00:14:33 +0100 Subject: [PATCH 07/28] Add 'images/' in image path. --- account_fiscal_position_vat_check/__openerp__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index a0a66ccc2..922468e80 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -47,8 +47,8 @@ Please contact Alexis de Lattre from Akretion for 'partner_view.xml', ], 'images': [ - 'fiscal_position_form.jpg', - 'vat_check_invoice_validation.jpg', + 'images/fiscal_position_form.jpg', + 'images/vat_check_invoice_validation.jpg', ], 'installable': True, 'active': False, From 776294015c4490bf12bb5f7101512faba04bdece Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of account-core-editors Date: Fri, 3 Jan 2014 06:23:27 +0000 Subject: [PATCH 08/28] Launchpad automatic translations update. --- account_fiscal_position_vat_check/i18n/fr.po | 41 ++++++--- .../i18n/pt_BR.po | 87 +++++++++++++++++++ 2 files changed, 116 insertions(+), 12 deletions(-) create mode 100644 account_fiscal_position_vat_check/i18n/pt_BR.po diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po index 50d547450..032bfb0a1 100644 --- a/account_fiscal_position_vat_check/i18n/fr.po +++ b/account_fiscal_position_vat_check/i18n/fr.po @@ -6,14 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: OpenERP Server 7.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-19 19:47+0000\n" -"PO-Revision-Date: 2013-10-19 19:47+0000\n" -"Last-Translator: <>\n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2014-01-03 01:31+0000\n" +"Last-Translator: Alexis de Lattre \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" +"X-Generator: Launchpad (build 17041)\n" #. module: account_fiscal_position_vat_check #: view:res.partner:0 @@ -23,8 +24,16 @@ msgstr "fiscal_position_change(property_account_position, vat)" #. module: account_fiscal_position_vat_check #: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 #, python-format -msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." -msgstr "Vous essayez de valider %s avec la position fiscale '%s' qui oblige à connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans OpenERP et essayer de valider à nouveau." +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the " +"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " +"try to validate again." +msgstr "" +"Vous essayez de valider %s avec la position fiscale '%s' qui oblige à " +"connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro " +"de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans " +"OpenERP et essayer de valider à nouveau." #. module: account_fiscal_position_vat_check #: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 @@ -39,8 +48,12 @@ msgstr "Numéro de TVA obligatoire pour le client" #. module: account_fiscal_position_vat_check #: help:account.fiscal.position,customer_must_have_vat:0 -msgid "If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund." -msgstr "Si activé, OpenERP vérifiera que le client a un numéro de TVA quand l'utilisasteur valide la facture/avoir client." +msgid "" +"If enabled, OpenERP will check that the customer has a VAT number when the " +"user validates a customer invoice/refund." +msgstr "" +"Si activé, OpenERP vérifiera que le client a un numéro de TVA quand " +"l'utilisasteur valide la facture/avoir client." #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position @@ -73,6 +86,10 @@ msgstr "Numéro de TVA manquant :" #. module: account_fiscal_position_vat_check #: code:addons/account_fiscal_position_vat_check/partner.py:39 #, python-format -msgid "You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP." -msgstr "Vous avez sélectionné la position fiscale '%s' qui exige que le client ait un numéro de TVA. Vous devez ajouter le numéro de TVA de ce client dans OpenERP." - +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" +"Vous avez sélectionné la position fiscale '%s' qui exige que le client ait " +"un numéro de TVA. Vous devez ajouter le numéro de TVA de ce client dans " +"OpenERP." diff --git a/account_fiscal_position_vat_check/i18n/pt_BR.po b/account_fiscal_position_vat_check/i18n/pt_BR.po new file mode 100644 index 000000000..f45d0fbb3 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/pt_BR.po @@ -0,0 +1,87 @@ +# Brazilian Portuguese translation for account-financial-tools +# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 +# This file is distributed under the same license as the account-financial-tools package. +# FIRST AUTHOR , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2014-01-10 11:39+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" +"X-Generator: Launchpad (build 17041)\n" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the " +"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, OpenERP will check that the customer has a VAT number when the " +"user validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" From b56a0db34aa9b118f4a1a654dc07014a6abc18d6 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Mon, 30 Jun 2014 11:12:36 +0200 Subject: [PATCH 09/28] Set all addons to uninstallable --- account_fiscal_position_vat_check/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 922468e80..dd0506f5b 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -50,7 +50,7 @@ Please contact Alexis de Lattre from Akretion for 'images/fiscal_position_form.jpg', 'images/vat_check_invoice_validation.jpg', ], - 'installable': True, + 'installable': False, 'active': False, 'application': True, } From a8cb8f4fa64fd626bde3ee4ccd818fb318ec389d Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Mon, 30 Jun 2014 11:14:16 +0200 Subject: [PATCH 10/28] Rename all addons to xxx_unported to be travis compliant --- account_fiscal_position_vat_check/__init__.py | 24 ----- .../__openerp__.py | 56 ----------- .../account_fiscal_position_view.xml | 37 ------- .../account_invoice.py | 58 ----------- .../account_fiscal_position_vat_check.pot | 78 -------------- account_fiscal_position_vat_check/i18n/fr.po | 95 ------------------ .../i18n/pt_BR.po | 87 ---------------- .../images/fiscal_position_form.jpg | Bin 25175 -> 0 bytes .../images/vat_check_invoice_validation.jpg | Bin 68015 -> 0 bytes account_fiscal_position_vat_check/partner.py | 40 -------- .../partner_view.xml | 26 ----- 11 files changed, 501 deletions(-) delete mode 100644 account_fiscal_position_vat_check/__init__.py delete mode 100644 account_fiscal_position_vat_check/__openerp__.py delete mode 100644 account_fiscal_position_vat_check/account_fiscal_position_view.xml delete mode 100644 account_fiscal_position_vat_check/account_invoice.py delete mode 100644 account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot delete mode 100644 account_fiscal_position_vat_check/i18n/fr.po delete mode 100644 account_fiscal_position_vat_check/i18n/pt_BR.po delete mode 100644 account_fiscal_position_vat_check/images/fiscal_position_form.jpg delete mode 100644 account_fiscal_position_vat_check/images/vat_check_invoice_validation.jpg delete mode 100644 account_fiscal_position_vat_check/partner.py delete mode 100644 account_fiscal_position_vat_check/partner_view.xml diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py deleted file mode 100644 index 299cab6fa..000000000 --- a/account_fiscal_position_vat_check/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from . import account_invoice -from . import partner diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py deleted file mode 100644 index dd0506f5b..000000000 --- a/account_fiscal_position_vat_check/__openerp__.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - - -{ - 'name': 'Account Fiscal Position VAT Check', - 'version': '0.1', - 'category': 'Accounting & Finance', - 'license': 'AGPL-3', - 'summary': 'Check VAT on invoice validation', - 'description': """ -Check that the Customer has a VAT number on invoice validation -============================================================== - -This module adds an option **Customer must have VAT** on fiscal positions. When a user tries to validate a customer invoice or refund with a fiscal position that have this option, OpenERP will check that the customer has a VAT number. If it doesn't, OpenERP will block the validation of the invoice and display an error message. - -In the European Union (EU), when an EU company sends an invoice to another EU company in another country, it can invoice without VAT (most of the time) but the VAT number of the customer must be displayed on the invoice. - -This module also displays a warning when a user sets a fiscal position with the option **Customer must have VAT** on a customer and this customer doesn't have a VAT number in OpenERP yet. - -Please contact Alexis de Lattre from Akretion for any help or question about this module. - """, - 'author': 'Akretion', - 'website': 'http://www.akretion.com', - 'depends': ['account'], - 'data': [ - 'account_fiscal_position_view.xml', - 'partner_view.xml', - ], - 'images': [ - 'images/fiscal_position_form.jpg', - 'images/vat_check_invoice_validation.jpg', - ], - 'installable': False, - 'active': False, - 'application': True, -} diff --git a/account_fiscal_position_vat_check/account_fiscal_position_view.xml b/account_fiscal_position_vat_check/account_fiscal_position_view.xml deleted file mode 100644 index d29e2b14b..000000000 --- a/account_fiscal_position_vat_check/account_fiscal_position_view.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - customer.must.have.vat.fiscal_position_form - account.fiscal.position - - - - - - - - - - - customer.must.have.vat.fiscal_position_tree - account.fiscal.position - - - - - - - - - - diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py deleted file mode 100644 index 543dd80a3..000000000 --- a/account_fiscal_position_vat_check/account_invoice.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp.osv import orm, fields -from openerp.tools.translate import _ - - -class account_fiscal_position(orm.Model): - _inherit = 'account.fiscal.position' - - _columns = { - 'customer_must_have_vat': fields.boolean( - 'Customer Must Have VAT number', - help="If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund."), - } - - -class account_invoice(orm.Model): - _inherit = 'account.invoice' - - def action_move_create(self, cr, uid, ids, context=None): - '''Check that the customer has VAT set - if required by the fiscal position''' - for invoice in self.browse(cr, uid, ids, context=context): - if invoice.type in ('out_invoice', 'out_refund') \ - and invoice.fiscal_position \ - and invoice.fiscal_position.customer_must_have_vat \ - and not invoice.partner_id.vat: - if invoice.type == 'out_invoice': - type_label = _('a Customer Invoice') - else: - type_label = _('a Customer Refund') - raise orm.except_orm( - _('Missing VAT number:'), - _("You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again.") - % (type_label, invoice.fiscal_position.name, - invoice.partner_id.name)) - return super(account_invoice, self).action_move_create( - cr, uid, ids, context=context) diff --git a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot deleted file mode 100644 index 077278974..000000000 --- a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot +++ /dev/null @@ -1,78 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_fiscal_position_vat_check -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2013-10-19 19:46+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice -msgid "Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 -#, python-format -msgid "Missing VAT number:" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 -#, python-format -msgid "You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP." -msgstr "" - diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po deleted file mode 100644 index 032bfb0a1..000000000 --- a/account_fiscal_position_vat_check/i18n/fr.po +++ /dev/null @@ -1,95 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_fiscal_position_vat_check -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2014-01-03 01:31+0000\n" -"Last-Translator: Alexis de Lattre \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" -"X-Generator: Launchpad (build 17041)\n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "fiscal_position_change(property_account_position, vat)" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the " -"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " -"try to validate again." -msgstr "" -"Vous essayez de valider %s avec la position fiscale '%s' qui oblige à " -"connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro " -"de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans " -"OpenERP et essayer de valider à nouveau." - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "un avoir client" - -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "Numéro de TVA obligatoire pour le client" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, OpenERP will check that the customer has a VAT number when the " -"user validates a customer invoice/refund." -msgstr "" -"Si activé, OpenERP vérifiera que le client a un numéro de TVA quand " -"l'utilisasteur valide la facture/avoir client." - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "Position fiscale" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice -msgid "Invoice" -msgstr "Facture" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "Partenaire" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "une facture client" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 -#, python-format -msgid "Missing VAT number:" -msgstr "Numéro de TVA manquant :" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 -#, python-format -msgid "" -"You have set the fiscal position '%s' that require the customer to have a " -"VAT number. You should add the VAT number of this customer in OpenERP." -msgstr "" -"Vous avez sélectionné la position fiscale '%s' qui exige que le client ait " -"un numéro de TVA. Vous devez ajouter le numéro de TVA de ce client dans " -"OpenERP." diff --git a/account_fiscal_position_vat_check/i18n/pt_BR.po b/account_fiscal_position_vat_check/i18n/pt_BR.po deleted file mode 100644 index f45d0fbb3..000000000 --- a/account_fiscal_position_vat_check/i18n/pt_BR.po +++ /dev/null @@ -1,87 +0,0 @@ -# Brazilian Portuguese translation for account-financial-tools -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the account-financial-tools package. -# FIRST AUTHOR , 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: account-financial-tools\n" -"Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2014-01-10 11:39+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Brazilian Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" -"X-Generator: Launchpad (build 17041)\n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the " -"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " -"try to validate again." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, OpenERP will check that the customer has a VAT number when the " -"user validates a customer invoice/refund." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice -msgid "Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 -#, python-format -msgid "Missing VAT number:" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 -#, python-format -msgid "" -"You have set the fiscal position '%s' that require the customer to have a " -"VAT number. You should add the VAT number of this customer in OpenERP." -msgstr "" diff --git a/account_fiscal_position_vat_check/images/fiscal_position_form.jpg b/account_fiscal_position_vat_check/images/fiscal_position_form.jpg deleted file mode 100644 index 1868f8b4aa98f005a031cb2c43cbf89d63ebeb22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25175 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 E8`+W|IsgCw diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py deleted file mode 100644 index c3daa2dff..000000000 --- a/account_fiscal_position_vat_check/partner.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp.osv import orm -from openerp.tools.translate import _ - - -class res_partner(orm.Model): - _inherit = 'res.partner' - - def fiscal_position_change(self, cr, uid, ids, account_position, vat, customer): - '''Warning is the fiscal position requires a vat number and the partner - doesn't have one yet''' - if account_position and customer and not vat: - fp = self.pool['account.fiscal.position'].read( - cr, uid, account_position, ['customer_must_have_vat', 'name']) - if fp['customer_must_have_vat']: - return {'warning': { - 'title': _('Missing VAT number:'), - 'message': _("You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP.") % fp['name']}} - return True diff --git a/account_fiscal_position_vat_check/partner_view.xml b/account_fiscal_position_vat_check/partner_view.xml deleted file mode 100644 index c7b6abee7..000000000 --- a/account_fiscal_position_vat_check/partner_view.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - customer.must.have.vat.fiscal_position_form - res.partner - - - - fiscal_position_change(property_account_position, vat, customer) - - - - - - - From 4b1d5d8d86975698a8fa07e46e5ceba24bdadca3 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Wed, 2 Jul 2014 14:44:45 +0200 Subject: [PATCH 11/28] Revert "Rename all addons to xxx_unported to be travis compliant" This reverts commit 7eb182744f3057dd5cb9e35faf230412aa7a2331. --- account_fiscal_position_vat_check/__init__.py | 24 +++++ .../__openerp__.py | 56 +++++++++++ .../account_fiscal_position_view.xml | 37 +++++++ .../account_invoice.py | 58 +++++++++++ .../account_fiscal_position_vat_check.pot | 78 ++++++++++++++ account_fiscal_position_vat_check/i18n/fr.po | 95 ++++++++++++++++++ .../i18n/pt_BR.po | 87 ++++++++++++++++ .../images/fiscal_position_form.jpg | Bin 0 -> 25175 bytes .../images/vat_check_invoice_validation.jpg | Bin 0 -> 68015 bytes account_fiscal_position_vat_check/partner.py | 40 ++++++++ .../partner_view.xml | 26 +++++ 11 files changed, 501 insertions(+) create mode 100644 account_fiscal_position_vat_check/__init__.py create mode 100644 account_fiscal_position_vat_check/__openerp__.py create mode 100644 account_fiscal_position_vat_check/account_fiscal_position_view.xml create mode 100644 account_fiscal_position_vat_check/account_invoice.py create mode 100644 account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot create mode 100644 account_fiscal_position_vat_check/i18n/fr.po create mode 100644 account_fiscal_position_vat_check/i18n/pt_BR.po create mode 100644 account_fiscal_position_vat_check/images/fiscal_position_form.jpg create mode 100644 account_fiscal_position_vat_check/images/vat_check_invoice_validation.jpg create mode 100644 account_fiscal_position_vat_check/partner.py create mode 100644 account_fiscal_position_vat_check/partner_view.xml diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py new file mode 100644 index 000000000..299cab6fa --- /dev/null +++ b/account_fiscal_position_vat_check/__init__.py @@ -0,0 +1,24 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from . import account_invoice +from . import partner diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py new file mode 100644 index 000000000..dd0506f5b --- /dev/null +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -0,0 +1,56 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +{ + 'name': 'Account Fiscal Position VAT Check', + 'version': '0.1', + 'category': 'Accounting & Finance', + 'license': 'AGPL-3', + 'summary': 'Check VAT on invoice validation', + 'description': """ +Check that the Customer has a VAT number on invoice validation +============================================================== + +This module adds an option **Customer must have VAT** on fiscal positions. When a user tries to validate a customer invoice or refund with a fiscal position that have this option, OpenERP will check that the customer has a VAT number. If it doesn't, OpenERP will block the validation of the invoice and display an error message. + +In the European Union (EU), when an EU company sends an invoice to another EU company in another country, it can invoice without VAT (most of the time) but the VAT number of the customer must be displayed on the invoice. + +This module also displays a warning when a user sets a fiscal position with the option **Customer must have VAT** on a customer and this customer doesn't have a VAT number in OpenERP yet. + +Please contact Alexis de Lattre from Akretion for any help or question about this module. + """, + 'author': 'Akretion', + 'website': 'http://www.akretion.com', + 'depends': ['account'], + 'data': [ + 'account_fiscal_position_view.xml', + 'partner_view.xml', + ], + 'images': [ + 'images/fiscal_position_form.jpg', + 'images/vat_check_invoice_validation.jpg', + ], + 'installable': False, + 'active': False, + 'application': True, +} diff --git a/account_fiscal_position_vat_check/account_fiscal_position_view.xml b/account_fiscal_position_vat_check/account_fiscal_position_view.xml new file mode 100644 index 000000000..d29e2b14b --- /dev/null +++ b/account_fiscal_position_vat_check/account_fiscal_position_view.xml @@ -0,0 +1,37 @@ + + + + + + + + + + customer.must.have.vat.fiscal_position_form + account.fiscal.position + + + + + + + + + + + customer.must.have.vat.fiscal_position_tree + account.fiscal.position + + + + + + + + + + diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py new file mode 100644 index 000000000..543dd80a3 --- /dev/null +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -0,0 +1,58 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm, fields +from openerp.tools.translate import _ + + +class account_fiscal_position(orm.Model): + _inherit = 'account.fiscal.position' + + _columns = { + 'customer_must_have_vat': fields.boolean( + 'Customer Must Have VAT number', + help="If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund."), + } + + +class account_invoice(orm.Model): + _inherit = 'account.invoice' + + def action_move_create(self, cr, uid, ids, context=None): + '''Check that the customer has VAT set + if required by the fiscal position''' + for invoice in self.browse(cr, uid, ids, context=context): + if invoice.type in ('out_invoice', 'out_refund') \ + and invoice.fiscal_position \ + and invoice.fiscal_position.customer_must_have_vat \ + and not invoice.partner_id.vat: + if invoice.type == 'out_invoice': + type_label = _('a Customer Invoice') + else: + type_label = _('a Customer Refund') + raise orm.except_orm( + _('Missing VAT number:'), + _("You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again.") + % (type_label, invoice.fiscal_position.name, + invoice.partner_id.name)) + return super(account_invoice, self).action_move_create( + cr, uid, ids, context=context) diff --git a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot new file mode 100644 index 000000000..077278974 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot @@ -0,0 +1,78 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2013-10-19 19:46+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#, python-format +msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" + diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po new file mode 100644 index 000000000..032bfb0a1 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/fr.po @@ -0,0 +1,95 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2014-01-03 01:31+0000\n" +"Last-Translator: Alexis de Lattre \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" +"X-Generator: Launchpad (build 17041)\n" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "fiscal_position_change(property_account_position, vat)" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the " +"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " +"try to validate again." +msgstr "" +"Vous essayez de valider %s avec la position fiscale '%s' qui oblige à " +"connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro " +"de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans " +"OpenERP et essayer de valider à nouveau." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 +#, python-format +msgid "a Customer Refund" +msgstr "un avoir client" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "Numéro de TVA obligatoire pour le client" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, OpenERP will check that the customer has a VAT number when the " +"user validates a customer invoice/refund." +msgstr "" +"Si activé, OpenERP vérifiera que le client a un numéro de TVA quand " +"l'utilisasteur valide la facture/avoir client." + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Position fiscale" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Facture" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partenaire" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 +#, python-format +msgid "a Customer Invoice" +msgstr "une facture client" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#, python-format +msgid "Missing VAT number:" +msgstr "Numéro de TVA manquant :" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" +"Vous avez sélectionné la position fiscale '%s' qui exige que le client ait " +"un numéro de TVA. Vous devez ajouter le numéro de TVA de ce client dans " +"OpenERP." diff --git a/account_fiscal_position_vat_check/i18n/pt_BR.po b/account_fiscal_position_vat_check/i18n/pt_BR.po new file mode 100644 index 000000000..f45d0fbb3 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/pt_BR.po @@ -0,0 +1,87 @@ +# Brazilian Portuguese translation for account-financial-tools +# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 +# This file is distributed under the same license as the account-financial-tools package. +# FIRST AUTHOR , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2014-01-10 11:39+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" +"X-Generator: Launchpad (build 17041)\n" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the " +"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, OpenERP will check that the customer has a VAT number when the " +"user validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" diff --git a/account_fiscal_position_vat_check/images/fiscal_position_form.jpg b/account_fiscal_position_vat_check/images/fiscal_position_form.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1868f8b4aa98f005a031cb2c43cbf89d63ebeb22 GIT binary patch literal 25175 zcmeIa2UwHI+Athf(Onf?1Vlk(mnuO(gn)p+x-{vA5F!v@r3eH<2@sG_j_!hj6e$7e z(gFz(q$EH>U=`^dLT}PU0)!q)C?8wSd-lBF_kQO+*Z-gY{lD+s$#p%MnS17*nfsZ! z+sr&iLq{J0U+e4W=>SfgI05+K_y;&T1aNDj93S~OI(*~j;^X{{uAb3@qfvk+faBz; zQ>RXH96vZXI8L8A|K*wEaPi!^ug-H_ymX1{A{Q6;;H5(`We9W<%z_TX(vwz1HRxoagyuA z(Fee_eZ%o%jVm$7zmJUwm=mxUpYgT;SN%lb3kDl{K~~)=q!V-TR(b-VRlEGy*t(^2G6&PI3V>0EhL>Eq7BGi(7GFSuTquml+nZ zT;|GzhfTt=ejM;bVW&4Evkr85XE)h=Urkwb)Axfpg2GTa%V?WfXy@%Jo6}tnQXZ>B zI5=eJ+?R}v3y4wU4B`zmP7EVv5EQE)&esd8akWe&o5Xy)sg`^d1RY!yk64Cm5Hx})) z;)v;3Q;_ww3$d4Uv;7E4G|02vD~U7rcoj&d1AVu@OuD4MU>Rw*kM;gZIv0bw{r%OP z6mg^Tk#S0-YfU6nv^LYsHbSW87^CR=qb^rVA}Sli4J=&!qWbDx7wh}v*(yr*orTM? zfo07U{sDWHq&x5JW3JC!UJT`IjaC`;byRb_ncSmrDK`?$cka0`L6*ntP-8oml*wULMm z*UCm^%zWF!w4-5=&S9E(}M$Gx37fme>07$6*9zRE9pbu zUvGmx@D(^8nUW&-rW6Ki@yMoGAqs`NYVyPIF|n^#+Q6viiBvbV{xhP!$}+yRm;Qm` z5Qf-!&5~`gB(~lVJgs9Q$l)va9*gzi^@R4dG{haxi0H$!X*`<_XMdSB-{ExhX8&)E zCg#kh8aK5p2b5kd_gemfdDD78kN<4W`h-aCFF;ahJMdo+atlO~cW?-Ip0(sfUk)nbVamo*r1Yg3*ZClQ1dF%)-jP%F}OoTX- z)&28GTZuR-LbjhLRn@I>z{+$64a>#84ap0Sata{v&Fsjcva?o#%!h`TD&6UYWW&!~ zg}PqJR@~Pks;u2SQ2FoV8vMO9E)JbNZGo&XQ#wmfp}IvUW{`??RUt_-Z5S-y^NaO6 z^OxLsK;{^%bn6Dp%F5GQP|W^yRBsWS#NR%}{V91}w7+b%>7s_mg77|(zLeNMVN2$@ zOi1nXP{4L8A8vbD`q;-3s_dpf`4^4=ABNbM;BGXJLr2-!Ue-Zm(T~o>gRSGZj480T zKz5%r5Ja@g&KB`pp-#|tTPlWVnMNsOBQ5Mp*b2f{z0Nm>KlYBj)cT6dpi9~K>-&ODZeF22cYzvz)f6)weA5@2DtoVj4K{Gh z7`-Q-gX9!6fYv>+j?$ml7xzBAqy5qE)zZ2)c>}2e0~S@_O{i=lbA?u@@f^(=dN{0y zsW7u#>{&duT#qe$4g#YhG9!S(@rMC+DK3kx!rlnGE$?;qone_#+wy+2eqn!a;*73$ z@~gIUlB4{6)dwT+Oj1nBe%*(G<Ux4vl1%e$}1O&$|g{+m?Zh_oFg~F1}J4;qRS`(zOMa! zrbZ{78ZkXFs5$(4lUG5BJ*{&>{i?t3o*b9rd~wiqmDUkTi8ED|-$17Yh%^c4IB$sM z-*P?NxQ@rV`_J5gye`c{N|cY6;C)@4T&3V$zG4dQt{Ksf9n8#ZHf@-*?Yv$d|OKQUMe%! z7Q;%ecx##6={n^uv#1ekJprs}5ymB@pax<&)pp29ulpE`Mm;MVbVZ8! z4p`+j&jacAJAeg+@8qz|LotSnX~3R-lHRrpsk(Gw1rx8Ys_{&!?r`#HXTgh9n^n4D zjX*%uy+u`5j#x26Yr|=5WfgVQyqo4W{ zpjt)-Y+ytX^9Z0hG5};-b};=~UB1~)@pT^PclS!@lpjyHqjJ#^nfqpF#AXt9@R|^p zC0IT4q+eLW7GBB~_clY}L}dEM)MLMC{E1ya94w4k+IHDVqXxY)VO@}Z74JHm7?(0V z(h8%DjeVfg3$Js1Cbm|?OiOkyMc3??Y!X5)11q0r7OSsx4%whLoZQf#JyackAVUYC z%?pHK!?M~dtK)K-7eXy=5vrkvYsPm?B+8Efh>c!La)fm`F|jP82gW03UiS2dM6-Bv zkaoSv(tNdQXZ^_OdcBIlRPFWg3f{}A#dw=nX1d11v6jru-Z`zVnVoIP7$?Vg-(l2KSCC*4CFM zVL;cCR4im=qAL27#*3Kl2@eOA->XtJ!Ux$Z*|AjcdF=H@XR?Ke{n+SBV0LUf++JVg z;mZbINXfbx&B$ue&t0vD zZ(6^%u;Q2Sn{11PJooeau!#{PiJ8-p{mH9srTtr*$f(5Eu{H^7gjYgH>(xe( z=f0|R5z7lrLC&VyI*#hOfjsh%w@Hbg+9{B_2pV@Z_s8I(;C6=eVqjJOvM;jUnMill z8;OJD_@RNqLCrnm``iZ(OhfxV(GEWF}?@{VqPOm zHG0urEfFcxT9%PAye$6kvq-vlVsheRrAaSsloV~cgvZb+`kXoYR-L@-imLV_){h|U zwguOQwqSAD6n8b~W?HbusTI&+kH+0k6KTmu0E-vvt+I^u5S_=GMjj*j&_V5oqp9g? zSd z@sQ$5D>OQzj9+ikxZDhG&Vd=4b6ur}?{hWd)7F~2ww}w5Lv}V?CHhF)v%A)dA$#E$ zn?@D;-SFXgo3=9{xFyx#34-EUtMFk-(GkEV$(9*ad8lv%*n4ykU>!nHoZRU<0xZNt zcxZ(8RXQwMmA{=JFcT@_^zRrE0WNbPwaG6C$p}ycy_E#MJ=?M)LPma)y;w355*3Us zBkvp9cG_wk(q!t!1w8g$jsTnWdz+LafDf{6E&mA6CnO$}z2B;jXc~4m!WDX37~Srr zU6oHCi$vd=vkki_k6#>V$zT9+hTt&yRDxHGDA~yWCNuO`D~Ma(iZ* z$B5Z{TMNF2pGQMxOpX9Jp~1XCb`J6g5T$YWdY5w`Y|$mqjWR0bEGXsMh`psEh6#4T zbKmf<%>0ms9^ud5x7ws+Z+>VGoI8+TY8$Z~VOOvSR4p_E_Z^9gO(3Pm*eMtL@!Iq9 z@-9z>uB@p47{6P-r)*F%Vi>+&K@Zu$cYS^$^?9byQ55U5R1n}8tD>b#-H`~$C~+Kt zRtz^leFKFSX)%sNRHT)35?Y#txqbV|qoTYF-6l@M+iIB=18Tfh4Uh;4KOVCq0Efb* z<@9SPbE#rKM_f*U4==A#zOJ@FN);5U>m)dNF?!z+Te}l1x1n`&w3tLUfRBa>_mVuzb33+=-@tn3sU9=mXWN+d+pcp|%c;C* zf))0f&-xL-Nh%*9cLaFn9jakmZ8a+Yt*U5;hv|v*6L{zOKSe3)8fh1FOskR!uew3{`*En=Y#q+ zUZMwrR9!2+$~;)HIs(w|hd2ROA-f(PY6-}8s=Z%frR5AUx3D+`Cuso@@YfT`4ArgX zM&=kg88Ds#`1eOR?NYe?RK-qyimVVMF?~H2vB?P2%tO< zE*t3!8SQ7O6;`sY_ZVs|FT6C`Ys~q)C;k2iP=+pXg3<@9qNH$%8L{0Y+XoD6a*Ta? zvEX4i*R3UIIrL~pBCdAn0Ljn(j9|LeSPw-uQBw`9vg9Z8z)X|plj?p45RC32QTVy3E2_5u+j{u$d>RVRsB>{uIx;iaat;||R zAC}3f^@>MtLi_O)*cEMKwS^D6N}GYKAd-MG$ro0*CF%oqH^D_~1P)){!pxvb#-UnT z+aVg^+whD^`)udohN)GJS=FFS=jDD_Ibp3WEil7CP^19=*x^-~vM3=127Gj^K3^+_ z9xwU#1*n7MiZxT)WlxJ7ADDj2L@QoOMCZ2htz`4;LTdb-cf+#|2Ng)AyE1DUmHf+z z#g1Z(DCb_{SEKhwLJsmuRm{R)L=@Ec5P+Wa*QPvd<&gWs5D+EB!^_iA(>X6tIu0$u zODOS{4+iWrEp;>dnab7lnT4k$EP0 zKFA+)=cRa;jikGk#)_L+LeJ=B^DYaXH9}`JB3t#VZLIvp%m?NccXLY=aR43vMEE8y zs~|(iSpV0*@BV!LM-)iZfy{=j4IpHHGWE@51Y`JP7Br3p_XCAA_4{`MUyZXsLcJjt zhdHGMhw*z|TPOAEXMcR&!Z~RVK9JbTWT^h5^7;`kZo5-|F9jZ=hv*$R?LEzFZlNq8 zG;$Bi4|IRWbUH~yeDU{I1fz5}GY3Kn_~DVM#KxRGlSK_W`nQg}aY6lw?@#(=GX9(| z|Cg_inJ*QR0rvNM9Zp1v=)F3v5GDTImEM1xB|48uz4>MTdv$HyV9C6;Bf#)Q`g+qT znM7F56?z*s7!X_$B~GnG2G&z#HwCG#p9FhCvWi>Z$_y>=8~M49>^}Fg{j7=}Y*)=b z0^F-M=NJ_f(IYO8+TLQmJUH_^TnYFy)jrn+H2z!tH@|~V&pqUG^ZB39zZon1VmUfC zcM!c?^4d@P@WEI8Z|}nIV0Y+K zbkqG_SL$Co_dA^P&(0tGccA=pVnkU=X>^c6!6stL9|#P2wkFyqH^6Z`pYQ#rmxs6> znAU5mDKaSIgM`|q5Kb8VZx+|dH4WCKkg~d1_SqNsP{ZuFf*Qk{MtS=SOWbyk@uimN zIAq3fvZUqitp1>h`hK))MwIoH?Z9g<(hnxXQ;q3JP~~uNqqaT8w7bkQ0FM|xDH)g7 z;YRE&ZBk5B#y8!VtO@yUw0QF}<8t@tXP1J7tLeAyaoa~#!-@Ri(Lh4ov_C@8_Ax@b z+X|tG?g4SC5Z)Q?-5BT5FU0ot8;Zkb5qR44-8%Kd@R=up&n`MAwarZ5M-NPvS8TEr zVR=xalU!1HuxetP4WSqzFnbc%w3e}8DYX6LLc(lO z@$jONkzoNn&ZQs+Gns#OtQsN}DX#vIOO6(D?$CoZ+x~$$+P1dR(ab)31gJvV9swv) zb?tq#6;^ycBZb64mSRWGN=rpQXT%Xetffa!H=GM9AOMkh@93SmMXeI*rStG8vRX&Z z0ueeLQaJ3l;YGU5DuH#YQgwLIc9|-T`Q8h)5A}aB zCwE6n$DHN9pWo@Ry&Y)phMsp>-eN-)R3Vyf)~SJ9kdgVksLm>eD-=HGH_2`#gy&q5 zAYJb!<3`DGMxak;4HO`Kx>QI#hb|SC<6DN7ibGSS-dQB<^RUH`5iM3;VKY`vm1YC) zVtm0Md7+#B%-%V}{2if`;>@@G*7lTs3+ebV5i@hBo_>?znBOBtvSG+2NUNQb?F9H^ z2e{P^bYMRaXxp`I5(0S~W>!TBjbvd(1F|E;b5P7nGFEJ(_uH%RwXTyMt|L|?LO)E` zqsnx|be_EB1A))xM_Czmo=XFYKsy_`tmBut-L{?~lnZdBqoR2kz6FVVrg9ddgldax zV~?yex01s5e8U=kKlVDIS50vG)(EPU%?PEJ0~*RW8586jTk7>k)$l9=#2HC>~H8ax8nx^yHDmee?G0=|6n z>nW2jk8M4q(SH9CKqN-I?{GHr02h*;Pt0c{JU*4|UVEaLxh;AGSeD;k2I&TT6*%Zh z{&8u~66Q03`F@`B3@b%#vZia237-)hli#@OQppyrY$%uRSuWJi%W1=lyV)E8?raBd zSunSp!azcq&I2z)hpBfH_d}B^CuZeUfFu4)(%uAWjkx-{sTFE&5;4z^P zacRo9E3k`pdW(B&-kh6BY73pIr%F({p`Y#^XgJXzo9ifI4_}lYEk|+V@xdD_B4pwR zVnl$%2!oIl%P#7CKK^|btcarE^i{e_8D>Fo(h0FtW+VBjN>5v0q#?kPK~jb%BS;x5 zke*y@}nYQvv^MPfx=>_kw{xb5yjpA*| z8$w{vR1dAS-Ld(@)8KRC1p{u^>**R!h=r2yV3LXfO&iYD^d!K9IhlW*bwAhIwSIaI zq!^T((NE$_4Gk%qw;|-w3@mg}Zgj+_Mnb<`b_-DL*mH=f70)JA;_LKY9)x%#rLp6M z$X<2%8dKxLOI>k46&&QpVzZezCvqtGWR(c+pn5gyIZM7vea-aMN*L&YrQ@1 zOcR2S0M{J*!WR2h`zQ0K#=O@@$*s*D1?84xWRgCnAHHQqYO%g%_|yp@k}3tK)H3FR zr&T4_6;&O}{LZks(aob-2B8i-Je%#0ai!u9`;({VvHgg5t1VD; z3k%K?Zgdye7t);qY$mxsQbdCxuENlJp5 zIGP)s=j+MoK}~5;3lOT&!*0Ld5EVi1TQkg-JxNoSE3@MB&aZMSUuK`X-r8?v4yqp8 zE&xI0N~iBvd_V6xuq0y}X|Fav+|^?e(}@~PP}V*GoUr_LW&bB1oUEo0SBt~;kVBoH zCf)p4q|BwJBfxC1@#wM7t6$AB#@%mtDY$dd;`?ETsxd5i@6I%WqN^v%(Hq_X6~KeJ zr(Xo-J1SDBc4#SQMZ~C}FKrY0R{fb3O&~iiBQfjqVC(1c$Q+@<7&QF(Cdje&SsCI< z;SD@NEH8cnQu{Dv`}@OXBd7_bF5(iQd<4PBEhLb-yTGF7jCURKT{AvoQKbZeqg93q zCWilYMf(ivaAh;eVxH^D@k`CGN3Rp-EO;{#^F8n-H?u|v;$qg)3Wh%VEJAimSP|mW z6jWh#niA`Oohs99O%8ElV(uB4H5bz{NU&gkRDR4QQ`)j!HB=zMoIpaohVIO=zi=Dq z6e}!)I4w)M53VR_<;09J)|?yD4(|XH4S)}z55%%360jaV*jw)H+uq8P74wx>P(*GZ z?Nc@q<4Qf|v1S?Q@IlP@DkIZb0L5@ss;Q!b%QkqeTd!v4<-*E%g1-$_+j!k^V@$b~ zP-2D(;a)uK@Zb|TthXc%I%h?bv#+(jq7m(}ybuVKfDdi-2X3eGvpFNCG&wke631bB zCO1u_SpKN`^%n3O{C*j&!fc?PV0L_APPPYKyTzPQYj&YvI{?Vh@?TvV_3paIWb1aXC@%_z8lXfBurVH}+%t znTpKEO32(gI1oSXR*+TVgQBRUJg*nMeOs|9QOZ8#njGI<)qY;yi-YAckNtwu>qZfT zOk{pmC8nu~7o_>&Lc9#h58@z5_2hW74m6v;ltgS$T z#*`<<<=29K0ANZI|2EPS&G{7_KUuBViT9cod(>`U={@$ruH3!8!4C@NkFN5Euf6?( zAPg))@h_**MinD^I7hl5H9dyJ`*YjwkD)~Kk~6}x0YJYKrN=ny#|GrOP*cT*gu^c$ z*MBqXqL$}oWZpV})Z%Nb?a{ui307YLN?oUTrtngdSgB(#C-;rxy1a6zBY5}31=^ON znNiABg+gDsmIOFZIR9eGxr+}@Q^Iy#i8Qzyon*6KI}%$Aw^?ps9!w*gcnxL1>Sya- z2z-selcPHzD5_OfQ9sn#RS@3gv$=i$Q(Y@adwTv>MZ6xcO;>Ueul(F{t5mfp5hX$^Qii>Qu{Fbh!T@+3sOY>@wX z!30UbSHRGVLoh8H!ejL)*hwB`~$jU6CV@cA#( z=sGUy1;5|ZLBEYg@at>FgVRd?)9A8K9(P7(NqO?O(Pps_#zC};bf53MRBd03KUe)d zt^QkAqhDN*a9tDlv+MsCP+h0B!_C0k5t{56__}qW_qE~7bD@+}z~f?)Zv!E&8*oAY zZ;b7?*dH1BU;YR@RVeI3_x`@A$Rkb(L^RogLaqY8GSddjNpZVSrv<(h8|ipkVbkTR zmOKb&-ZJ|f+t1Ts3l#}4?6;!p$=EN0{9}mM$SLR~^0*(N38ez!R9wJ02X``dgNv4QJScrdI!rM_)-BH`&nH#6! zcd`fUWja^{(GHywNX>luahR4&$bP#tr{3-6$Rf1pfxKmWc<3nCAbsiqPp7?SS-B2> zv|;uShuG70(p>z5^QjP}7jM zj>cR4w$CK$&&>ZohB!;dFF7_w45M?XP%D{RV+5dp(ijS4nqJ2E_`y&~Uq&_l%;pW* zP}0oG=h%V0RaS`XFxtvB6;Tb6=0gNjln!WmBdi{~AIQI^fP2-QL|6J71O-%Ut((RU z(%cRdyVz!nXW0RYMrOkq+xHg+#B<8=P_VzS%T%QO8A}fMLW3d|QVb<0;FLG_+}e(3sA z-d;(CBEPEZrNpSNhXgLc#QSNy=|=#e)z-}Jk5G2W{IVP?Q#-uk!_*4*b_{Goz2B{W zVIV3c869u{gBg_5yS4S%K4m`-gSl@+M=b~4Eub-G)kBvW+rUUxaRrvdR#rPtqVu2{ zAWZ054s8U(!Yn<4m%J~zM!l+D#HnqboaVvksJ5D0@NjB$93qT1RoFW7_VWrDxjkLV z9~aaFODp&yUIBrghI*k|hF*E;qc?STRCm zWawHNA8=54@)T2}=-x|I#ghQ7rn$n6+8VXYGu2C^!$Q}En~~%}^@fU)H`Ue>figOp zqUWJ0%DfO}HDhQ;hEL+T1KGn(m=&w1=Exh!cZay%Vd06aHRA3AmW=so;Z+$u~!~=;4nZzSN0io{X z(#LjP$w()5Ou{gABfK7rom($)Ko{o@2jNG~aZL1?m}puyj=9*nyOrcbF;YaMuCs90 zs$46M0Nfr2LZ79IGuosp{D8oeV+Hd8F)Uj`hn3yAWk_m{NY>UqE>wHEq$FN(&O2d`(~Bs8VuqYP0% z;1l3$Vmjlopd!>A#`{S2lm0<*M8p)tBaXkBVIM1?Ys6nz*+`gr$)Ej*EBFR&GGf&P z&;BAy`%R7YB8@)iA{F$Zw=ol?C<>+tJ00@Ch%j1P11bPA%!}nEjLxm`CT}CC<>~yu zM?Te$poaM&*Cnh<*-9S67)UW|yGz6t*m1MG`r7XGf^h76VLuT59oMbr*dglWKKqIZ zg0OlCW=odNvd*zrfS9#UCP|?-Hr&5EL)`uNN51wikDr;ozf~*YbbWb*O5Fj5Y-{}R zuWb_Rc-Pm*+q6BRv_l{#nD1Pu;f-$}1WLK1FV{Pda;A`a%CaPx@}CQI4X|c(`p3Ep zTdI`jqiU&E-;jr;L4#MByk|e-NA?L+PHiaqj)dRO2l8+8(c;OpJybm-DRp@KWaKc7 zjHeEa6>~on%c6lbSK{IMx?`EmO%{)4nbDYL3eb4~baY zmB_VS26lEt2X{+L>)&tLhJlHfbUGpzpv*=tn8u#dQ;|pT4~E}QrlxpOvIE)56odarFwJA zK6vxPj0(H<^To6fi;efkhUP(hNlt}X2Q#NAuz*0@_px8Kjj5l;cvyu%w8#durX(>fKWIgV=-$n94ySF}DILWl>vHFzcFB$D9F<&BvV2_B45FU%o8y zbB%iBg$vPyp(B7>zntzparSWYT;T+&NuG0xxp@S*pbY9}LyGZPMTDH8z1BqV{n-Kx zP+s6l=Au-E-}Y+LDZ|;=w*;h{3}utL@MfB6(<7ZQDvPY?1Jj{K-slKR#nsp@?fO^@ zJL&oP?W}XM6=ze%i?fF*(%vZ>kP{9Rkd0b-J3mH_$W)S z1e?P<#GQ6=mgsmoCY#&&FoisQ(&5D+za?|5y1 z01Szl+R6CL3dSY&Ew~yloDj1w&~)zbO#jmi@#3NUbM_y} z^L|a_OQTPIM7jvsk&&F)&2-ejJrpX}^_{<5;bhY_fBXd71cxsgk|Ke`?vl7$E{TYQ zN6ahxN}wcoRlc)#A*V3HE4A}k{eJICtUwj#?v=0hj4Z~=C^i?k#!61U_Guk-+*e>?u22opFFDEhxS&SBhrhI6yxE}mB2s#R zdFWSTQG#Ww87?S7oN-ib6%SvMOdK@8>tmyAfS;GvRP>>Q0nEFE#CE9~?6w5T1R&Sg zpM?$eBh7Uiifw=e6#ruf)li3+VtY4aInbPGdZR@Yp6ig_&OnO`3{nR?pyPySNX#c zueX}MD8|&ieHhDSIg7saGSX2#<6M3CR!3fWpY0M>F`}vC8t<1cwzUeP4S}*8W@bBq zFGp@XB3t5-bS5S{FZ6AxO~J9l?veaY#&^FG#3=>%ysik$iEH=Y+1M)ov3x`duU6Wk zK5tebH)3%TVJ?BGRObKCSY&@!HAbj>(YiBf_^`jvY_#y3j3)^5E4fcQ0$-F0izk@1 z&IRkzpSGem6= zogySxa1^-A;Ybk_JMd)renp(-dj1N3b zPNj&3kKG}Kyt^Bt*yZL(?DF+JzJI|d^)i{+OQ_A6Xdc*)fA;N!s*yZ5$oF8P$mnh{ z|EC4OnJKq_@q+#@K(E0oG^BUfdZ@d!Zx-@Mf-SXsqSM+vvCZf<)Y@Gk;cKbbaB0Ji z@Q694VKrF(oe3z%nH;?GfPpb$4SFUQ4}4xg%wU_xW`I#pxR8nsQFXZD-bykc; zcUY8v?b5~h2MhkV&E_=%Ot4P@o<-JZ9+qI4WA+5T~QU2|&J3c;@ zY+maI7Q?Ea95CQ0WFiO=l=7NP%%0@? zb_f3gI%BKktIS-WA9cm%PibE zLxXavQE=7LC^5QQi1CN1?RY)a zv2Ep5Cnf_k)DWqf`IwzlGd2*9mVteY}H#Qc>ei0Y4a6UA%SXJ=Id*in>X@O zbnB9;rf_tvgj(mWut*uf-Qlof@}0>iD=3+!mh{kd5$~qp1yHXihi|d+?9nM!Mr2DlUwN> z^|7exrjL)e^8-L7m!24riqvCjy3N63k|ITK2+xQqhK1tKv@n99@26Vc`DZ6-r2SB1 z*2BItv>2!)g{6t-6vmd_gNZ44#EPL43v=uy{&sk(*44c^`Zj zYCP(DmvrgFaF%%`u%aluBi`H^-#Xh{bH_f0q3l88Rp`%jRSc6bM@F)e8e99f-SVL} zoQUkHmQ~y5^yH^LH-9j z392iDe^9xAP?%&tn|2%KL{N<0^&K{V*1Nc`f(N9VwCKL5+j?*8ElU}g*Zl$6b6k7= z`8+G4-U~#S#R1K?(|(m5xK;50+Sh9WGvPHdF7Y}yt5a(&ndE|4Lvu&WRIOXHUOFvp zl$|57hCQ&$0|QWK6L;FgQnoVWMxgmS2*|f>xVU#0Rg%11T#{><475o}Ym&0l1PQnigcBGf*b)@FEEwg#F>8C_*cD;YRW zBqNY8ew7{mIlC4kRY!#CTp|JIpMUWKOGt=Cvm8|*W1wXL)Z=}2qubIv%$zViF#acK zgp%6IuKY9E24m9|5-fZv6$CS=sEomY5%%OzdYN*Ik#Rhz_JE7;d=iZpd>fDD>U?7F zQAak^+T68WUP;}%`Sly03t9QT3T+DKxXqO>YX{J(K2nlimSqZsquMR+r#AfjpIA~S zsDES28)J2T$L?RTBS2iD@W!Jed2FZmhfgHc54HA?8iP;4%rA-_PWn*NHy~#Tw0R}` zgxCgu`n0Xw&(QGN1!!BOqYms!O9#R)Jg_m}KdIf5*Up1tZQOV}M=EXhZ)onEEmazq z$?HVnc)cgQ1Aam93#Mxv4^x@1u1)+>^A{9NC(Om!xo7@eDy4&t+gTnT*WYx^+nR z6J`jN5E6F;XfXm$JcIMXy$uX^76_LzoW!pJn@aTeH|K79@yOJeFCm{Y@x??~m-t>Y zaMT21O5c9nz2)r{ss+_T$#6e!Ug548X!)VM#Wie*0n&dcM7&()!oM?)wKfV+zV@=g zKYJf~(c49@I<;w6LoI~O}#2MEHobWPIoy=9nUFmx-m8%zOjWO z28Sfsp5e5gkm0kcXDnO!qRedwc8=PdYu$ZvQSqDz`GCh<_*I=J=^7R1*s0%>Qv)ki zfXS|S7jc5Va<;2T;$ykCYn^s-*3TdD5}}6kAKirBj;fQOymBm>D&w)wIyq&_;+&vJ zk_5`s;*p7g+~77J5!~0dEJ4Z=O{7tBB$&MhRyS@oD2|8-*BgvF5a7}?Cn!|mfndA?R=O*AbfyA-}C(@9{hQ?^G5hi z{U#+ie-&V1+V6gg{OFxK_rt=QzlZ(>{`KDp7EjIJO8u6}@n_ZFX!j4u)TP$7?Q61b zyDRzm-xedTVC9}{0&;Wf*3x25cFIEn0r>4RA@nkEUPT9&Zp#qHf#GQoWy9k`zHbYy zIE*HSJriw%j2<-I=7Xx|mFlpBD-FBqCn5^w*v%2?<3o@)RbW&2jY(bWlTObJ5q5-p z9(Z-4;%TSocnDgH8tj9vAvzSdjHWWjL`V_z}z&=Qy|rRFNqOK^A#FtUE-I?iKT`t+oS)zIUG*GLo1XHmQ786S!o(aI zIB~NFlY*S`SB7s5SE-+E?lwA! z&xEStV#7u6&+C++3e!UkaZuPw$jM?5OG=v3VkCO`^Yssj+KI3h`MEe4K^TFVAk52f z9e--<9T(?Q2f(R6QuQCjPj-19j6?R54)p^rsVq!hd`G0di{XOq@_){{x`BzK9jj?0*)$dMtR=OZT$mRPIQ9Z}IJe3gWEqucJ{EM+Wi4n(FX-j*m z1q@lWJPy$akmYN`DTrh!6P~r=ez?5+K$Ha2Mq?*D@ z#aokcsm9g1+gp~nEgMj$?r;;nV!PQjD!M4 zX7EbDoMjjYwKRu{D5%x#S+4s{W8xIG;w)Q(3s|rld(U7()7NWc(aArxds~DtP%kq!e-r8Wc&^^pndgE6 zf(9^scg8!H6>HM@-BAWMhGSrr~f1zSJb^9YXD>~ogd*idb6U7OH zQeLQM==QIkr|TR+3+T|lGYhg}|6XwXX*8t#r;LWbBjP_W%e?40+X%_oH>H|7 z+lFmXjh4w0ZhiFoEUEe4@f%H#UeN6%-W5!?ZzIhQ_OIpV+(TB4Uk&Mhg0C}$ba*D7 zeK@ISJOabziz55;Cvf1~5rh|oYpR+?*E@O@DJn^W@cgi=1KIq_k6p8(wYw%vsKuTH z!V99A$umz)l%gC|!7`h;^${TWPw}ch@ULTk6flpN4xxSHvHM^O;v#EHr=9Lzsbi%T z<6vFPE1nHKF%zKA%pu()z4LI_T1Baitik6?DEm`~q5j1FGc5))r&-vVC3ibd=jM4pAcxQA;T07{vayXf3lH zPo}(}WF7WEcK7fyrf;iqDu1YTG1G0*O-X+nZi`IhjVN9#jfqpXr@z>=6Y&+!iN6tE zf9=8>`qErPMk^MjNFb1jWoC&u0=~mS39h5B9)E!eG#2?BGwYDRk`X!6%>o%jE8^1DAU{(mNVvhoeoz*;3g;JeB7toOKHn>u^|XVzrMva*$7 zN#?kGboJ0+(3s0~zZp}N>LGx<9kOb%`)#}S+sgx@W`)OIrJnN(chUKV9m7Q3MMQ8@ zjd{-7g8qQYXP)mi`u%?OKY3ps&nhaWj@uDO4hXq{d@c*w&%)jhe{@5}bDH=klUKUZutpIJco%EeG8^O~CdgV%BuCFeG@+JdUh3fUr0WzKA{qHHS3m$HrtOe8UNUm_ zO9CU85Xhw%+wMBCY}{CNZOQ2q!F`1lVKAP@Vhrj>dcS712voEP49$99@840r_5!~; zHTGBq5+b!{yRmm)M0QKfP{nu zaG&@GI6DQ->d_q?gW- zTqd?!T>}6vo;!E`%Ec>}FOihJyoD-~K^em_PvWSxP(^q1)1Z5lVCw1LRT-muQV@x&e zSLns-igffKQei#o*Jm>Tit|K7>hsh9dBBOhyP2IL#q|PxWM7o}`}9%lt*?mg#v5mV ztK&J#6grkTQ`>?{z9Ukz2V=Z6u-xgrkmAj!6xPj|H#2hH0E3EVG|HvI&5i0R$idXd zFhz|R@&aHvM7dI4p(Kp~SD)xqV0U9gS=Czl6KG|FzH~n=(R)b`sjZi_Ov^nC{{Z4# zj5ZpdwkrPEy0{`4U}oX8vO2dT1Nn|!Hq$TGh<^Wk!bUzKT%z1sYK5+(T;4zhC?J{4 zcdJWOoLzjz)nvHp?I34ap;wzrST=9ewZY(Hx#M%6|Vv5g-{ z>%0VOLO3`SFPqJk))GoS-igun))K?x!0Ch9bG-p_uDXWDx~ADzDO+{?isJ~Z=C{CF z*mxvNCCI>P7sfMZDEoLG`AWwSxD*^+Y=9fF1 z;-Er_2M`gFo#gkOvV8ix-$-}R*gU?1ivhSP`KQ+>wD$$@t_(LO7%MBWgu#RWjK@OL(;Hpc)`Ejl}V~Xj8Hs$=NYUHr8cHiZW1z-iU)?l?~_fA%~LArb;oE zqGj$a_XVpy_?4LFaHb)lq!DFvZ+G(ulr&jtWaMPqz)&##=E0SS0b`EaO@|ZUZarI3 zCTT3&Jy<%tM7=sQqJ#bW3bToqFw}yacfS)dAC$KZXLrh7%Ne|fY z)s*W~10=05kBdaD-?OGf+|8Ye6yX~6o&ZY+m~RKIT(qRh=Wt`2CWQOcj|3*kaQA1R zl7=-Ksy21y-n{2^BbY2}5hj;c@T^x!;b>mNHr?>Nal4J@Ec{!doH=!6qJ!PhIABtu z(S%D*@@dLOf_o>^zSnHjsKI@4$UIcYcnsu|#jUjAZI*%US&j_hp z%inF*gnqi+Rv1L(-L@=ifn0JQ;1LbsnZhO=8meVp@+^fHq(P_QG_zon;dxoxfQLUr z5n6G)qt^Zff}-ASG7~~%>X$dSl1l_<){}so17x6ykp1O^NV08arE;KZac`e{NmQCzI{ZOX?2jApeDqHlq(TC z3?%F4sFNIbO0IrERA%_~rS!*Du-Dg^^2eTh zOIdBdTiu_$bhvKo3*uM>y|dEIV7{4;UrdU~PHC?MYl$_j!Uv7^G)4*j4Vk^u51QtD zrj}jtd9Zrj*W=(Dg=XE@w5I~FB94{;S*K5&C8}O2-Qc9qS@Gh}cZwy+yz)2RAg3iW zxr_UE>}+KHk6^DJG+|~|qPPSqG+%2N48-a4c|a<3geCdeYfO2@9P@Wf-Q1xs@(oz1 zg*Z#X9I2S_p&-c?q^-SYv&jx3!$$r=Q#BEPIJJSLltf&wd~`l6U}IW5L1m*n{ocX5 zQ^n|q3Ih6&a@A6)?k&giskB*@BN)=wL0CGuL$?+o$mx@s2cP4!44{@dcnZxOE z+l_$<^E}m6`g9OY<{!?P6$V=Y zO?c1c8!oI-N75L2r}cNWb`c67a_~n8!`07``FZ6jMQ;{G(WBFzsM$d=>Cm3ocQ=gu zjgzAan(W+W?31)c1~oTE>2*XVw(p$*zF!m4$eL4+zEaV)f+Z9{HybO3SYLCDR4(2g zLQb31vRS_uTsCImb^ zosZYLI`mpK*Nt=)N%QyuFu3sThao$fCUL%xYm5;l{JG0alr}+>0b|-cQY>RG0$97O z!?yWW{t(7lK?WMGy2Yz{o>2?CPE#S|jqq}7rYGyJbw=~t*I(5prr(mZO1e9eDU8Y zvz8v98<#Bef-C*Axuiszwd11ftHU!wv`fv*`4$cawHH<`=+6MMHX!|1G*q>`W#R6e zY3CEtH9VOepS7jH!Pd~`Wc^0QIadY}qevYUuGH=e>It`$)0uZO#BV(Kj>Dz4yR*Dr z9-hwC2<`U05<%3V>VqaSK?dqM!E?V>J;E*#A>RLwX*ehS=qkgNh!G<`v?mR!2B)0* zVrhc~E>P=l7M}ew-M!*E-rg17LxFN<#`; za*rKBta~k1-8y9dcYs$`9dbB88x1^s*&A~8;_HBmyjWxs-H(0DqsCuWng4`^Mc6QE z|~PHrD;)xtp#xf;@pmADrJA8Y z{$tp}{*Z$NLmZRZKgRe^G5)>4Jv@5Jr%8=zT-jFs;@6Up9MaTDu{|D8UDnq#{B!?> z%XI~p!tH4ud_f5eu1;GI3se*kP)h4NTxEN7aXYk!ML;#J_vm#SNkQ?R$)btzFO|Kb zCHiyb#hPlXF1I+U*v&mKTYHie&(h4|L}T_t9|G<*A$0KszjC*7zLzqk2FcFNx^I%J zY|OROcE916H11M_65Wv~$0YD}rHC!0Y$|!X5IxVSoIp6w{-7!E4@M&OtWM0^2Y0W94>mcf*&Ef zg&v_NNoqn^-!yo4*ItLj;Lv$t2FA5X8-k7(s0M3zYqm{B;`t}RNH7D0@k$B_%gYOb zY^fpFitbqMQ;L6wbu3*WmTg!RE%#Y|Edqu%N$Kf15Sy{pOwo7E1=JAUgRPv?5N;c3 zW*kvZgHS1j0=(mR4q?4wM$3e7{2@a*48_B<8e04@&q>p`nq_RbbCjFLYcbl|m-fzL zzgGknq#m>;krLTVCMtxHY+FqlyEo#)%5L4_SqplZ!XaXc1vTtBLU_z>j23WWXDUrc zH#EeAaCEIlutrufWXIc@pmgKzv%ze3|YLX zqD5^~seO_rzwpqu?kUyl3Pk!(k&w18o%tm9s?Fjw#hCSV1{1)rWDraN(nk^X!3jrA zO+PNo!T!GN3l2Ryp+X1L=6{o1O4TrvXg6R7WE(~b)%Wj>8y8KMyp6J6ZrB#=#nW8R zzXh2mEu-tlo1q6+15}@=D0=&+=wUPwu)JDubtGiy$5Y2Axx*t{Hnq+&RQESvqu_88QW4&c893;#~y(O#K(4|-OhL?YW zBEQh%4dDP;&E5!d5auB`j;wE1+1WvxQ?wfHOfXaHcvx=<$b~QF%Tj8~6|XKN!Hl@R z-Sg3EleOih+?~6{vgbOoEXADojX+*~As1pQ(gy~T8FlCzehPk!Q5tY3Go#l~jM~)G zUbP!kQYulZ)b>x(`#Ttcqyj-zgKl;;kSXWqhQ2DRw0WB-j%Ll zUc6~yE?>upEt6U(+DqC{5~A(3?dFC39B@<+;KHg8%gl*6q2t{4erK0fTexYbZkZYI z6&r1|@L0mFs|qs~c;wfBkdJ^QZK$PaC(bsi8#F|Am$+D3@kfk7zENbwJDJGRF6r9n zbH7B`y>=0xEnKEgsqh%iC`76hHz})@2ULvPY55gd8*+9*q1-g#25^yG4E2^!N!b8< zwc~j;$Zh2z9*5+5EctYXZiy-$8K9h|Ko>T0Vi9r%NI3(1Chf^*>UG;1Is+Ux5;x$& zGj~|mHC#DW*QA4(1xk9%T_P$&Hf~p~FeynGGUC*|mIOE*6*%i~=ugS-8my%kEvX}` zX+6M8M~Nm8cr|~%n7WK^W8M7zs1L>UF|Iz>gIq?qG8I<@nZvpTaCQO}z|x-rZhLxY zZKq!Gfo5srB4J2soB>D_yxXcNv8z{q3>R)b?%FE-Mi^VzH{eK|Mb7o^dL`F?PCl3} zcNpiH@a`>rwNNM5(hv$ybA8?jNpOH;EB)HW;U$u4pM%*G5>(T{83wPl_)80wQ^%O1 zE!SzHGwYLUp!6OM4?Y-8zn{2iK-TqGN~Xre)W}&XX-!V4dP~SjP2?j)3qx<7fULf2 ztpHOFfFtys@d?8G`L8wXsZ0B8rl8(aQ2UyMaM=yFJgb}@Fs~pMbOsQz4GU0XQiy#t zxf&Hld0?scP+O{2FEK>^=n9hp-Mx%50&1}???8Yerk5+VY^?MYA2(MAHU7`saKl>7 zA1g=b*-PZAC#or4OD{npRjjvxd}uL9G*{3$ghT{hW?i#*7~Ya+?HK79I!w~X$(FYk`MvVlkudPH0%)U%n|1B2)gx)+B)6@aIT zs0<`2>%!|i$Qbld9fs67>VhDGeemP0TFS%gK(8aG0^nMoSgMh8ex?yev-4`_wH~Wd z{rFP10qdwJ3NTDbm6}S--&pMg98Z*S!gJDh((H*Sx7H8g@vBG5Y$@{dBdi{kM#3EOyG#*>F1SI*jIa~jtKKSw{oP-2Y>NwhxduAJzdWn0Z}4r+EQt`E`};O0~ih; zUOXAUp)-)3V3wD3dB1dvt)P|;Z>~#7P#P`a_Go6UD?Dx)i%#?@%{c=YX&lm>jI(gD zk8-*AEN69~h^>?|M8hQr%+u6H2eChhFte5cNf#>|QjgduQh`lBl26AotWa}&?l zZXM2_0Tjv%d9N4o439$uboz0;@r_*A%R7#oQ#H6<%Cdo7uT(3SML}PL)}f%X z1J?B#*tkH3+Y3HqHh56Jj#TgahSEe4!<1d+DzKRPmenU_(GjBq^?l8CfsV%hS@Rah zas-K5v&7o4M#9pn^i(9gp?dPvAwvogJQZ>1#Bd8XGkpdyQ#&N>*n1kaq8`mSM&BA{ z@7fZWibYt1Du5ENrp89SFWCsF1g_d!FSBIUp4MV^1%lRMY#81b?|Y9F<6}|{OWY5n zR;BFY-}r!8BG3ac>`<_h(5QFAin>QO*v>H5Pt!FPmMd(I)^OoMhJqow>pvp;(Q$3T zj~<)>DnQ3iJN>FdUq5t@5~dtXCis@2tSHpdCT;LwPUUnInsjH#n>yeeipIR)n^ufcq75qvMA8V84Eaa*_LeNs!CKUVY=6s8y2a`Q2dhl*xB!@!#8lT8PJG@uatW2Y&Ecn%@&* z-cFK8kG*@(N(worH?PO99Ez>C)14a==x|S+=x2Il1HK+H!C)s2^kDW&6tkVqPfUQ9 zp8?eR%l!@?hL8Ng&1hBb-@xtmAJW)~dXQG$VQl{$z3UHY5{WE->5Lb#Gbdba*7GbW zCSkT;X%Oa>Qu&xUtdnW!yN&kHOvKYq|2YxVO@F-Y?Yo&N(0(&X|qjF-gkU zYSwz{uO1ZheItlRLIE8*uk?;)zJ`5H_+rq}&}IWEix>3(^z0nUU)0!k>Sg}D9bH&? zXQKZ+L+k1>-K~l$M%Ullp=r(Mjc-!i`yJh?HJ{kNDZ29eSb*FI7tlEUqIu~uE*Il* zM~}thO4*%FBJCrshrLEC>wiyE|FL2JX9ID4Q=lzLBYw|c6z-M5d2b!d2?hsei=6=^ z`se-&qfB1~u9%sd8{tLTHo+(m!Pbs|lyOaIdN02R>AaS<^niM20O+v;5nCNzj0l|9 z@g!q|cV0_gdO*kMqvYCe`YL#|Nu3YUj?=r>cqiRkc9=7W>sZk|^rcEmmi);RRlHj_ zC`f0}QTG5ktrVK%6mQ*tLZX@zT#ERDf$%k!C&VzhbY` z$Rz~d{0qk$rzK(A9;LhMqQDEYJ4|?WZ%$haj;jNx197K%_P4~~{m4Y9Q?Jq7C!c(= z3~qXFj)Z2glGz*{;_K)Dtv*JvXA{Hx<|R8;piS{*O2WZy%(wKfWW->fu3$gJwY|x5 zu;C4se`H}5C2xLeP3v0J{46eiF+$@()8$6}x!1q+MGmUn%0oa75y(;qNl%UR z8S~~BKAEZVL5FOepVy!`1NfB9=dm33Md_%Y6e_Ak{iT!C>ga7VyR?YpJedwh zAns%5wa%SZ3rO4%!%M=LKT7nc)M86A@br^$D@=Z$WTzl3q}6ceZQRM7W#m^3julVf zCxC{E+QN_`E)os#Tk5O6ig*o_9`{vAa{i{#UR~O9xJ5EndQDyw1p-xnlmju) z9Q*2NtK<+kUsO1FU(JD-dSD=U>AiD{? z#&n0(_qW2A->DGkI|BUvLGmBE{NJ5Kp3dF|IQ1%Ce&7|mOd13Dl9OCQb49i932RW zI3V?5PuaJGNkm?`j|FUNUppA4#a8k4SDQnOu)&Cw~=Ux6hEgtFt5^IS}?8`q%g=c2J^0P6S<1}ksfRo|be z)?|Mw{%qFgUE>xW2<7Y#CVZR(M82JiU88F&Rjrm5YXMowi$u5En-;v>#sq)jR_*E- zd4S1?6~8_om9{uFZbLi!!^)!D@xZEXNLJS}^ss~b{mOMqdpg1S@E&box#xqOpYxZd ztLiNux_Pl7J0^mb$?ep^+E;{gWK#0ljMayZ`wuDNbmOszUTYN}gA~1S{^yg+1b-}+ z4;M$}F|pn2FZ=m7%%%1>L1{k?4`Tev5d)>t*b;BXyZIG7NZT;DKrz8b>tmjtTj?~` zT+NQL5^t+Hr%4PgSfYn1QCwNnOP5M^#}DL&w#AvQ#(&*-w=1&19Ms@^Q9+Rqf0A3O+q@3lJfaP zx8~T`CVWX+BEvo3-7QO}K(CaLvf(}8(r11BnE{h|6vr@}uwsYL|0t-(p7x3^Xs^PE zZ^sZ}bx`m;mV>MDdg8?JPTm7_B9>sP=8@YqmC<0eRT6l2Zih|(P7lxfH@pKsa+)l^ zGj&C?0wZ@eJ0~@Ln&jB(KA!Zv)x(4`!m zmqujmion_e@qq%k5=y_&396ev9ODbpLRUGtQ$gAo^L}<35no?= zdNu{|Qb9PNycZD>-)BIXuV`aAT3d_bRQZGAtl}tjoLKM4NqtDDxJ!2tO$IJ1Z7r0E z3Jfg?=c-Gd_Fs2|-?qz`@Bo3SzeWpfxwM-;AILO_{X}=0S=lGnEJTZs@@W4al1rxK@3e#GhWDihjsDDG=IxW8zfF;@I-oH(M`&^|k%=F(=@n zpnQ;dN|IEx9@k67wA18qt`yE2>uV*;!#=|e{ZVVR$&*ZC+4-8~@=@1)jo8X~j;xwO zzO%`5yNe(Al<$Ju0fs*;uTRsg2Xhs&5s2 zH;ZB7T_DEm{US!-AWj_h)PT_xH2o9vMAE)$AbZExc2i43-`CQxhCOar6=iefip02Y z{`2M*PA+(@wl`_RZZWo?zeDx%FxFPt7$l@EN)@Os3-R&~h%fbk)R-qOGm8<5C@(nR z*=TB=h2OcixV42C8BbVz3Hu4#w+k{{yquII@WDkpk6gO$Va!_xx7V?A`MkMZgud&p z$tu)L=`C8@yzi>B1>2vjkzV=2E24TiU!H!P26h(_n|e4xu1-lVtVg?E`c6)9m6`Ns z-)}VC>fC;15_8XI#7+|iiV>QLaqk7m)%ZMf5zD_hCXCD2QyW6nC+EH^x3PP}!194S zPD>(xjuf0jDdOnjk>)AHz~#x8|Kp>LE70BK2dR@h1%h9!0hGltTns0og!H z%tWlz=9nVz{%}#P6LZv#3p5UG$?n{KOaO`#XB za#jvnqh!#*%jL1r4=R3ncy!gcy&iSaF7@P{D@t?^>eQ8 zYSfR^j~scX-amq02bea$#k}@HKG>%#_0&!;1&OvSZH?B>*dkQARo?JhGfIC}%GBhB z7r^b*)Q2nK!UC`$2Aa+DYVzVy_Sc8U7#hPsl*$jBCODUQ=Ve9wyu4m1MJd3OJ?=K_ z7AV{2ame)AyO?6rEuULKu5X2^rwwyKA|vp;yPThK5;4j;k^yvk>vB{>=5Y~jX$niZ zj)@M_j+7khZ;X-!@uQL@rpN@SB&&rtl+EiG9m;uJYH@yq#d? zAPzEQf^0|zw0hQYn>mp;08U$>FyL$6hndFnWCkX#Pe%+Ao4*zliH`zV$Qv&e2<1TckY>wZun!HTE*97I>k{ zPi+T@EMSAAmPIi6+mYwdNO`s$8#B9zbF{>8DI3e0E2rJTlL@(N(CRyDfv6Oobel3s zUNvB};ia;|W!%yClJjI4V;wC4-Q zFrmjx5z(fxPxC2n5=KTo`_)qGUK>Z%nYH9iIDUMao~mEiC_t;V-j9Wg_!YwZYPlg8 zlL}WT^Nu_5$yboj)$qSVC-R8A&1*`vzJTq-(A#Cn>#FqhrD?u8W1|IzI}NDgV0leH z(NlT0!gCGZ6~3!~qMK+8eZ%}WkZk#tuSZtdMPFA)NdG?obXIzSM*;c-_ zFn?%4(jFg#ZB_Y&AKBiwQ<;Awfg~xQvx^<^HODVB&M%Eyu^o&0L~YH!-k|-kdHk?T zp2+GP<;SNVlV_9vzE%;b2IJ*xmOk{Qc=0d;RfJJUg!QJl!fF&{)Yhn(7-=5@PCg6dbPS3{XM(CZD~4cV?D47FmJon=C9k+FBA@e&pKP* zNYiYcxIRw%#b$*4VjNtBmeIMU84~s;Rw1CY%^%xU|88xajfRfAGE3s?44u=Ho9E7{XD5fj*BUaJ5|K~%=3+RFn_1iK-E9Io_pow(mY3YrsxE)l z*XghN406-q86xL#bMzcwv#EO8m@odKc{Q&3-K$yrtw&G7zB9;RzDxa(_E!qHlBM>O zC6J|^;|Cz8J#>sSD7J%YA%5ZYhu}f zs--|_5TP8IZH+d)k|mFe4W3;Embl4dzdm zd~PS`S05;f#NkL711Ofw451`9>k{VmHJoJ86F3x@+HA7g zJtms&Pzx1~E-|1t)=r>1VM3})UOc%m;$!5*l3@L=D)IL51j5L=@`u#@s}wTBVa&nO z#eOL?>Pj)iiAkLM7)&z$Mj74moYMIrFf&zmvBRbZJd=-!eoV~9@OVYrddi$aevQ#@ zH6a<;GcXCT8EsU7R4GWc(Imgta_yVv!HW@JOO%K=)1e#UyawBOOEskIv~TRXg}G;I z;DTieeMr16GSWq@hA8jwW$ofhwFEF_@u?l~3d--QlK$6h7q~vMa2`xugv{$0 zA`{ki>P-OP15-4sG>b+J1E}%al?BUOb45}!_!*aKQyP^Jw6mKv`4w8i?!2QWEaNzLQ&po^MZ^KW&}?zMNkU0-dIeOKzM25Z}K&BKzx1M~g}? zLW#%xRzGd70pl6@1I_@Czg{{6P+@-7Q(ieqBcdxWp5E-7f9{3WBH60EQK}Crx$KWn zHC4882n z=Nee#n)4LgpY;StWzNrxIEVJy-ZOucSY4@@qbDpxd9IPjH7X^OP=ZY29TbLwi1FNjOWM1* z$JLbjbo%Z{#uOIXoE)CFYSMIgq-`$2HV^~?G2-NOgg$A|>weX`SEZi93yP`e6&9## zNW3M)PO2vTbz9m=PN;G;*a7z;Z6#u7Se1*aAbg|f^o_2=2ThxRd6;+a&^iP*n25Cd zy3KlAqU)%(+ZC3Zdmdu#kCPO@dP^ZUG3#s1bYTa#&QE0Rb}|DCm7zrTw`xXuEyg(RT2m+KTU1;T=3@06(P$eP85($|4Kvr?=cXx$o^8 zGgER8h&lZ<_to2V1~d8S`x3}*TO}y3xC+>Au89JtBDoNOd1gLM$cGxV+4fPO1jT!7 zp^}=(oMrLeddnH7zp@sjpk6)cllH;@)+97e!+#~JYg%>R>i$VoJ9RfU5vHH zOq1}ceNw5x;+Tblk9Wc4Nt8!t}Z*qCNhkQck)fqBcb6s7QD(2CoXH_3i>AVlU3+zTGU1l zIB}>op!20?X5Z@6SV*J0{T;f?o*2lew)VNlCp@mp|A>r>H zi<~C((ddmN3Z=+z`(#+#iW=RH{4|OP^hELCId$Bf}kh^Y3Voae)kGTk$m zj6Kx4(vL)>fcU<}S6@1JsQPMbB=RZh%R<4RX$hF4yJ5_37>%wq>+zU%dFrt1w0d%U zi@bohK$OOVG9!j7eTi|=W>M5TcZ2T9B*PUr(5Yg+IV7R9uJji6hK(G} zNHbYb!<)KK3RS$W7M$w9Ps8P0)@oAdVwCv?7)E>&O&OmBQWyhsei zA*?uWG5*F!A^u=TE8_5zaJ}ct^HzU=URoRB&MMj{YjRpxor=pEmo}Cm`3KlP6!L#& zhFEJ$<$JCYXD~&KIHTTLGp3|i_ZueV5JxFImrlJmV~_gq$SJk#%EaxmuTh?8K5cb< zZBNe++x#R*W^jCCh$0!^9B_drt)lf6J7KC;^84(C+XR{ zluZ{EOU7deP{YfGThsGo3Nq;>RSqgaj+;}rCx}OlH@zTq6?<`VBHjh{T(qBB^7LZ6 zv3n6!b)SNs-A7FWY98X82B~NGDeK5&&oY3;~4D3%$c6Cl{hAAg{%*ttnHD)q$wZ`>krk<8Ex+k^2 z!n2X9W}D<4(6Mo9>*B)+t_c4FjJ^KD|v=OKL@RfB2m9e@~;NYKl$A*E7JoQ^qaH zaK7DD-vyncGe8$f+^%*W&$z}JKrE!y*+dR*zNND9GD#+6uv3i$&&~qer;!< z@U?rxn!Qr_=0nnaouRt^i{9`W52lA?9pkb# zxqu{hp|KDmrzWIPIFcEk!ES?6<}neYYpFi zgHctw><^;sLFrddusbP58d-pBm5GO>sH^V1n!AJAYyX;UfG!Jck@)0xc^Md01vNp6 z6uhgug7UiAao=`Q(2gJCOqwn() zQaC!Lk_&21Tq5;y)%>L*(iDkF!fGxMSZfkKX(()-2fVWl#LuYQ~-G!c1KR zL}uVTisS=u`qvx+&t(5PCYN)Mz=64^Un7-ugJ?Q*Lms|#V$6x8E5+%pz>pfcCi-!- zRm`?2H$dtXXl#Y8X`DTfv1c&dFwNi~7nMq2m`zU1%xJmcoWbeA^U+6mjRkNCAzNT% z7O)R4)WUFS)E4M*4SG{=y2#Syx8$iOR%2lmdZeEO?EK)8^;nmG`PL!2ghlJ~Lb{w(ldE|LM$D8)= zB&Jn(HV69m4LbH08*ubkC_26r84@!}A%x1z7){?CQMR>r%8YZwcx4{kr9Fg>d+9TT zvHGi=yHeFuWT9_|LrJGqlzzZNADzz_87T(*v3%-yh}}20rps-TpB|zZ_L@>+)E%YLVWJH|;{}@QIf78Yl-8 zTHk+E734!})#hkcFu^AgzyvO#b#$i_ZNB?PrNtDE*hlftrAr(N3Ze6;?^EcTV`!;{ zs&t*M?j-V(Yq>&eg@r+I>TH${KBpPQ%J0Ug9qV%UdxfRgq_+#vb^znu_RKMkYOz+=AF5jek@^ zABGQ7GDYk8q&K5PAwsjbh_I_xN{|Ra|Tm#wQ}2PBk`7#HbjO19EKh3Fv4~ zTHB>EF<0=tRa^h>yHmDXKYYrRdnRy#irss;26w0X{2v|WK_kUP+Fe5N0aC8w(U8=m zYG6+brTL&XbK$Ez!u1kpuHlGsS9KcLZpd1u8wpeOtdBtN$mxCE7i(pzWz8Z?(eVb_ zwK!|vPk#`B_0gppGyK$;SWn6Lr5%p2H)WUid zWRCFQ2nTjAELQ?+qXN$DwT1aM%v#SCk&3jMlZ={vizOu{6u{+oid)z7+RLQLo()1-a62xpVZu!mKQ@85x!1_tsf zIR-TZp$&tQCL=s%3C`gj0>hYyLycaod)+&|`X!;&{{gD#6_9Dcg-7 zZo4{z!?spO2L0b4@szhJAnudcHG(aywnKkUzwXBojC+*OY;DadjfE$LiN{E@XH8WWB~GMnCEQRIrhUKR?f5B&#;BlSslkYNItn_hGJe{~ z^wb33u2rp>z`$qTFMa5xU)7?0|{UDvy#5KPFO-rQ0dxvgiJ(= zmEoSlJ;xd-%p5riv$eC4MuB7%>#}(b7Ahb!tZSZhj}(K}CqxKuaU&Y?q&0ftm@Nm$4I z3Ra6}Rxu84Eo#>7KUD6u)AJ5}${~A>g3yb= zGONRck~ayYp__^7(zGd}CiuVt&kZIERr1NLm_t=`_oZpX0J{D9yz{Ik zR*{g$S^QCT(Tc^jR=>>n%N5TT!!1y2Z6&{gJoXA-1>ntwH9q}EVH+f)JTfgWS*o}^hCD`@hVk?=yRp~TKf`A^tnulKG$!J=ewteyIch2P@E8D z;+GaUe)RQwt_+K-OT{=knra#CX&zlgE9j$}s}H0s#o`O-u|1x8eo~jxY=s|%12xuH zBr9h$>z_9b9$TFUr+SDN2*YU>oQZ@fyqFddg@SgMRF&`QyXFDSriRwSiSL@FmyV`f(U_alW#t+;N1 zBg-dl@AHb1M$^ZU^`)@#dgSQv#2|^L$W|E<_!N|Ss7&;UiD&kPgy^u&eS^TbM54=l zxuiB55@xgZo7)_i^BWY=b9Tl2>N?M}|53xngOt<#weAmGK$Ur+LIr-YfG|DY9iJ}1 z0A2ZI?*N5@m`*?>x|p7WW8C9Qy(E-ghP3^g&?EF${&^NZ%oF2JX^VfqiW-QoWc z7hSR_*`|XSO`AMr+-N558NX~c7=R0g!!&%q4cA+gZB5y^T0G*~)y^-K8CQ=~X&J6m zJp;7f*(yNfj;F&3eAlcn#c#}W)tOr&B8Ka;@E`#TPRXm7ywi#dyQ-srhAp)bA(5rp zr`)_H+J!C0e%h@Z`57aQ3>b9~|Hix2F|>;JL+?_VN%LS9v+K#3zKWr>>{rw?>UXIz z+lKYC4p=+w^h+A8C~E7CbnYADGKsbdnUSiV1mlTd-2#JBmw|$}s7k|6Q}l5$_$xg!iZTB6cTHYi-q&nVAf&kJJ6?oC-O}U*c85Uw3kM*Yz$#)uZGy>cg)rvPO&m08#&R z*8W!dj|JH-b8Cg`L^XS^)zS$2jPC8wTuaZ4TKA7OMSDsVQOJeUkAe!Mk|SbzIGm7b zASj1$O+8{bdPS)6(2eg`iY`uKA|)vq!03mw_c723RI-R(BRm=BT1Ba& zCxR>#mqtB5Smt_!BS?CLf;@`Ov$bOzWtSoR>`~748Ft;6nL{%XW;f3L%+DbaCi#>3 zrER;VqFc*C-E?zMm=!ixFI+jpyS!^j&L@cNWp ze%hRS4~^cl*$s;OBlSp`s zRJf>iHLuws)Ey#Rjg3#tQQ68}Rq2)LCgxw}QH7k!p8;m0C9N_L?MIBBJ&e9xWj2M& zEviJV>-m|}b*7<$sth3JV z{Bg2Y7Ehi<9^fJG^WOJ$U)Oa5S;Cs7m^ea`i>vC9`7!yjFJ@~K@}RwY*ydjZDeSXn ztGiPVda5mBTFt7ORgvTCedL7#JR}EfART@%Se;N`l+^Z8K6S$`#+f!px?^uw{@Pu9 z78s;35h5~%&z)$#nnUs4>3&&09CX9zQKwepSC!b5lYg<>O?m)fmS?#G0C@S0aJ6cb zrAis+YVBCyZ%!$bF@-I*$fI_J`2u4JlYv*u_f&S)Co?Pcde)*VIAF*PHTtlQxOv0% ze)u+pJQ+~2=(_m!^eHE^(@P1LVJSwNwMOe-V;-Kd69ZdW{(uOu4V%sWrbJs9!BMd4 zc|(ca_CWjYzd`E?>2Il9>0f(5VpcowJ*)3;_Nj=dOSmc{>kc6y*F~_YDHEzuya)_Vm<@54KY{aHWc-eYDF^!9hN?vGeE{Ni(gO0;vYK+|$0(ym z%(c46(6?5ECvH`EXTXV8!ltEG$HKJFM;KETgMK9=tTW*0W?WozasKA%FKgkYT?e2^ zM!0WTrdOPM$1bu%TaY51JPfd6U?~1IrY`HjWw74OG)l8qX`Ob;$@#I;v!#oz3@+Im z>p2idsm2tL070TUXWPG=RSJ76ucn&8e0Zx)k1U0)+=ZGs^KmpS|#9d4XY39FAAG? z*53a5Z<*$Q{Z4B8!TFw7O~ZSUwVZX%ctWSH(8Wh%$`e6VU+=~-zr2gS7d9kxTx%D$ zJGE~1>m1wckypTs&W{I+EA@uzJE%cW?n&;l&Kw`AEv64AM zWlc_InrGe}AjjVLU7%MG`*!h+BgpJd=(}5;Kd$H9l(^!@E)_xPwUh}THMP-`<))V` z2W)3rFP6Qq|6cn!P?lEo)aH1q&`F`>;D}t2w-w<%ye*N#O~V5U;JV4r#CRVX2qqfT%zyXmCjIpYZv<}kp19O(M$Y}1F@iKQyHKZ5ngn~}rQ!_-0I4ZyzaBD8<~0^DA_ z02X8U5EafD&}A=aemZL)Y2}MpM(mAG#XEGzPojT3yzeSBEwtl{!LuZ@wc@b63K&+2 zBg@@lJy&SmI+HY(*98SdXC_81#v@JPHa8Y=psz@Py<+IpM;qpS?5od*}dgwzUtTb`{POObIu2 zIb=8vSj6#cNeB8LC=)Bk?k?;G~!OZ$u0DT%Bc3ar_ zN%yj{;}B;5%Tw?d0ak}O2 zt?g+1q{ewBzhLdV1bCJ2=fUE}v9+YH!CKx)B~`$W?J$FapY*F={@qt5^~h9ar+Rb` z9nX1OHLNPEpjT8KX{PfKs+KCPpg#7z?Ch-iy?b{AA#~Bqo(Iw?Lcd>44e$=BW4kVlo;)2d>@Q<}&%r{TsaB?r9*&_p)R!!pP}HUter-q#_nj_>6E2>MqzY(u5g3NWTP@;`$dxbYb6CHChBmifTwDurgd6rV` z%ZaMp4cYx@l}IGTj?hK9zYQ!7ra^A7!etuUg1UHKWmaKy<3?M5^*k^V8*{f~SXOveZ*SQiB+VnDsCFjbuVhR5l*4q^E81AYc;UDwmLs znB>;-fPRG3v^khPNNR1~DKmsRGV(0;524}rH>%mHtukn;G?B0iP{~@J1nZQ#`kL%O z_`Eln7YECo%JGMjR6F714A*hbvlA1IJw0judPfs%%DUl9v78<|W(LocS&jNVT=BR0 zK2Xjk;Aa{!OY`pU6)X`z-0V>jYZ7h*2DBc}Czf#l2;d>a9;?FS_cTuqfN-zf9LpC^;|2tV7M zQORSMCqMUBsVeI)0nwu>CIBC-hOG~a=D3nTT(hJB+q7KaP%{XujRMJtOLuKBz0;wX zt2v>rJ;1!;o^pgn8xl6vM^`K}5ZAOSW1EaOGt%^o?n#Zt=pNw;Fqj}blgS;y&ZH9) zsQZsMpImG~ENXV_FT$$neuMg#yLTtQmk(RyO;)+^UKJ*&c_aselWU%%+@(+6jID+| zD)wvg^3Y$Gd0SBtZHko6E*GPG1;X&1Si@|qhlF<#rxJTJwXw(N1$k3sppel2Vny=b zPon?QjG$JgeO`dN-yRG9fpO*Ap22ItYtECe-6vlB{4W^8?VELit}Dc@v1Aop!)SM5 zy&U0f8O6G``J(JQt4Lz{3P8L2TZQwr?n_OlL`vJxgU3u?EL^s7zjf)!?+|s>TikgX zKhvwmY*{AbTIkbnx;L!xXTtrHb?8fCm2Rc;sd*JSPF-X#Wt`(B&Ql#7;Nub<1F2A# z&bA|2zQT%Sv8TJ1JUZj2<-5;Lxq}*bVdMQX*^E_nX{kSiz{fxLuu{XmvX+edD}Ot0 z+`iN3EEA4z!X%4_^Jx9nbq3(NYk_P+#%tv{g#5zKeXhICt|jEe(|~DsK?Ggw68R1C zcuTM7%5USBN8IYp2>=HtVnSlKLyOt#&96PTJc_k;4s?n(e%0(4Obss+x3%D12LT5b z(Kqf+em$4}&u#X5FwV}wZNJ@QN#v})616pShR#K_MbibH3vy46hRaHqF1+0D-lxA* zBR+Jzrax9#PgN;~Lr70*Nc$wM=c*Z!n;O)TOtsBXu&i%ZLnaex?kQK`@E0Xn$NujDdwo?LcAo*X1|p}aRe zC2$&TP))Ld%M!Omh^@8K+LIc0MIBSvA$9w!MfIea$;B-82{=w7n;8hsj}c1N0Z-Zr?DKuMRgqG0LIkC{E^725mhE3!&Y6qNsx~azTA9U^t-I* z51I~g3nj@)g%j?X%>}a|9re#_U4%B5z7rZ3V zX9!gCgt2t6zNgw~l~0=G1^v>Z5D8V(sRC6c8$k`rG+B>!3-@&@Eb9psd|L&XBdp~( z6IPhUf+ISD(9^tD-?o8of|wVhiE2Bv`OnXzQ23LN1k{V4!+0?c*S9@FziGevLH-Y+ zz{A-K55Ld~@$G0Z=4FC&twGhXVWtv=<8<(`%NzO8%7A1@Jh@dC`Xzw1I>%leMDOX2WVvC zH<~1e4WuqbV{H>reH1bnbgBca-BM_9Ds41ea?z1OsIwneFriU+z9tJrtw26{!BzoZ zfROzVqMoWazJ`8-Tq;#i9n9abl15go*3&3e+~Mv>m{fId{O0k79TYk>zIw7JWL6C! zkp|QleWrIlOO06Ns-rk*dfBGzvO`?qhOehJjaA)%Ym8!9$w3+K~D1NAOz?|gu%5W&`SDHV7 z?vd78Nid!?4C#@%6{IvUZD(8EOs2vvod6l>z>0m*Tp9-IY7BVSGO5BF)6eHptEts! zG~=fcP#-sQV%$Stu6|PerX#P>Nb^9hvTmE#i{)Is>I9|WX+8Yph3DyVl4xk!D}CMt zG>QJsm`*Ql&@sJ!vHKDREFmPcc>hnIh`$a0*TA@cTjsww@jp@1-6aSKu{`6@IE_8Y z<)e^sMoY^(x$YL24&3pL@rmK9-W-=s&e6n)u#JJlRw!)LtgCdKG9##+*{L+BVpuAD z8<>OxJ1@5I`T>!6r3B!mk41%V^78V_7{A?Y1L@oCaoThC(JwtcI&`k@JxMvtZFs```nm?_9(3N zTWIyH@$}nqO{zs_m6(?Vy<)u0?$H{QQ(^ZmonX`pFze4DgJ=Do{kACq=p9P0G~beL zn^;sttZU0Y*54nJ)qGMp$~UYTt99(^f_~4?~$h$%Vmf! zB&7T6pSO8GfdZw90pu8pZ_cDaWf(~G`#dq%6yXN!;pUmJeDk6q5i%d0IFpVHMx|%_ zKmGH2|2F;sxV85^>37A?e$|<hjNBd-EB*g!M-iWxJjMFTG-`!dd5FQhlE(Ry^%T#SfsqS;s4^ zPCX!C*aI2%DsbvO2#b8uRuL8k6K<7FHP$+5du!i)A1>@lTpM3__tYG5K>7Y6+Ty4~ zQctQDPF;+o3W*JNQ#6i1uSQRdEsj;0gK@~cX9i=ySHqA>St?2Y$*Gcuw|d*#7sKB- zJw40jnx`omUn!G~0B!;`R`*s99SaG|}y0zu5WKTI?24h#2M%Bz? zI!G$L%7)tLIF+(M&yfvso{3h1qb(gU6q@4PjNHe5lPnv@NXlrfg>tUe*o&VqSS~b; zCErL!wK`_@T-9G6YrA35#ew&?!f@3J8icP!jjU4P2^otFft!3kB;&e5v()>5f{gEN zHGc>t$e#b<0^6mMbRSx2wuL~to-4Pvpgh;=U%}cyhf)<4z;Bu!rAy(4gG=E?E$5BvwH6ZO~QC)S6XccOkeo9}|G zS>ICCGej~$bV>G+S$1ZwpjZO&$C&UO^P!Nq?kPPuL%|~|8TYp2VNiL$!L(0hTOf_O zv`xm=3Dh7}y%FOmuIaaukx&D>eceC#9&NNcIoMcHx$0t++cs+#b4DprH3T4&{_}gR ztB1IU`p&w1F3E|_b4kNpSu)$^;ZEiQ^W6uYU7CgjIrzdnQ(ZOIno6Dk3Nk`bvI2t4 zFKbe<4r9J9lG|*;n)oQ$<(%V+(sHhFlJt?mbc8376HeS8E_-b&`9Kw)`NXm43Q02i z&2jx6XV3`L%^(AYJdy$5cJ!`B1BcFP@_r1w1TFIp|8{W~Uc)Z0cA|ad7Kl91tX8!k zyuiZb>Jf9x{{8s7!>Z+cAK#-*A3J8SM?+{lFMZ@A39_d}ZA2?I%YQfgD$cj`{5<%r zkRd;9*EG^^(9pOyUb3M(AoS`$`w!YZ;}Z0n4YqWt%(B> zO|}U;GTjMG0cQ*ZAW5f}?%}#|4UUjFXH+NEt(aZt!X@&f`mn&^9BAxT15@V>rz-w< z=dBvXgWD4i^(Wlpt;dtTR2OKY0G_>*0=j zHh&1Qc823FPnfo!7v9PGa?Ngq@jY^yC#3x6s_{kspSb5g{@XhLwTb_EbnGwdT7!~7 z))BfiK|@0%R*><);k3F-4s;ehS`v>k#2XlC zAaSa&kkUqR!gRFKdqPemAFkxm^bJUO!{5|kzYugQD<|YcH-RQrQQg%gmXv z<&E|%tnAC}(4N%2kk0~Y%7Gmt^-YG=&8$O{n+}^(o@iB#dum4p`uCD35CS1SRm|Pa zvovF$K7?4-SijNy<4YB(LUY-0H_%(2>ehP1ytpTby``z%>QXr7tI(gT<&}u~ob3I0 z7jb4hjf?HaNzV^DRY^<64jGwV2a&G1U*%>_eSGaq-wTa%XO8cddYj31Zq|pyN$C~I z)(0-g8wQskP~DZo3YUq5t`9scQccA9Ua4hVBnY$E^4xjN3&O>N`rLtJdTDFL_`Jj-Fk9F*8YoTbyzLUC_4$mUGC2ET3F4qU-t2cP?0u7Xzw9^nE#0&nlQJ4~K}ER&EQ*2)EXH3JmqbkU z2PB|A@5Ywwn7Fxy)PHrslynn4?oSiLXD!oh(HN@!?ocz4SCDV3T2|U=AQeBa={#ru z-0ldtw#~=-<~!9KUL*A;-j$o-|IAow&}TA9Z5L2csGJ{UE@w%wjq~rdWimnTjX|*A zvg7(jBc@^m8c-X(sV%JW2c!!?3_UugotTpz_{vy}?25q+7pT-Ul035CTOR(XTn*zr zrL0|PVmf(22rthi;w=Grw?{FzIa?w#aURCc~}viD`5d_9Zw!Up-E z@0u$s2&2(Bp45BBpx@N#NRPgX|q}eC2Oxf1XUql^4UwOP~J{->O+6 z8Kr>Ah!CfdAzQ>MOnq}921VosDrc;R>WD`8cK))@?t#N2`CM&*FLau@Au{hF}H0IX>ZSp;d!uPvUo zO(*wa)E2Jiek2*37Wq=-_=_D8fqlq$o(aX+TVplv6F+Z|6{H+byl}83XQnzDie7T4 zo*f{rxy$xLV_NCw&b;tjNc%FtBIv$s#QX5=>?ACP4z8;5TIFu)z-Hb>s-Kn`{wUvl ziJSu%V@H(%yHg&?Wp){!pp){6**Ms%l7V9BEce$#>IXl6@J>no936@`PaIx(Y3b80 zxDgUF!~zA*g;gCE@rc1PFXJ<>Yb6kirt7BGgNq^U&JhV(3 z$gLN%iBuyDe5$+QYsa@6IdEbKan_?N4R2%{;X&H3(?`X>$OXVt*RQ5)17gSP@QZRd z=Qe)?MH^XWRmhW~YxetVfs_XzCB|na)SW;ECw^eF9UdS9dM!(Hk7w`;Y;`~pq^U1^ zhfLx&?siKa3B)w0ruYpwk=Qy8;Bo9re?&2<9;|-voZK^kRC%+u3+2-tE-`#zYsRz8 zX~vcvanPT&oSG|a5A4TNH|~yAgCgtXsxk6vAW3!s-O`WF|r31eg*_uDs93plaf{h+8+O?^z@v0>ofG-)G)j zDdF4GA^ob=r>N*P9ch~p9P!&i`|v{0leX0-&5Vk!4C%9&g|19~;5%yesExp$zYl^U zz;%N~(-J=-Bh;K;xu}(XaT9e)ZiY34asRU9b#_av&<<8030 z%E!~6v*rm^%Kt|hW)}~(XeBLMm<=8?{( zP~Jhqzl{#No4u;xe)~~rpXlF4<}}BqpoYsQg>PH_$H@QxbCDC(ni!7$QiD=&)CO3< zN14A(`Qholo&VLRfZWzwCrI)3Rr;QQKG@p|?a+A=bn8>vx%+j0L8rg|6`gMX+AZ|m z_aE`kfkPLBeO{%QERM=V-nfQ?R90It!ylndtt-Ygt$a*eXGz3MAda50iHC#*$AiAxT6;)`q?9EaU)bxeAS1f2kcrTL+bq0h{WCuSQJ zQfw`Qb@Q4avGBZCSgGa53X0lEO$3#cnB@j|?+3BlE?S!dik^ko09X&KN5cd@%h zY<&Tm%S08p^xsH%CSa?}OQkdI9yLFG@s%1msmtuM?LK?l~vz;M!}SZLV&Q8|*`-F<5XKd2@; ztFe8g6@cq{`6q^TT*zd_R;dxKXU3PlPbC?C$q-L{#OO>$mP#+>VA9EtyWG`4<@JDf z3Y@Bd@BnqX!UZMXcTw7xMa{`ps*)wr%Tys=IL2?e_M>Q z!Aouo_4y9354jyJCh9%b3bcB@0{Q96Pv ztiD`usy5Y6Vl2gyzTLO18S^!_4SPX;v9gatTsmr>WDr*r`p+HYs-*%<)Evo z9?Mg9o!V_|WWHcd_Cr`=b4v|@Uml-J$rUw0-f4PycD!^3XIuR!dfjUVo{AgljWpgQ z>dr*$f?9>EdHIAbfY11mQYLTSsKHz!O_x~!25+}OtR8axAKp~)6AM`;Bj6AzmeyHS zEM*|oDk|SoL4A`%A^`x0f?#o`HqTl@Eb{e6>*brWds1@?v7DyjqppeN!ntLn@e26*pE6tlrnhtbmPf%8R^YThkt41`|DzpG0ZBNKP2 zeKqRs#Edo%6?3`aGO`+LJ5epfA_N7VNQ;rJGj9)B*IZp@VS(z3RCnqtiMmla%re^ z51MGi<%B2rVosB;ltRl4qCOr=5MIw)uW&6KK*(0SNz-@WB$s<*{p z4S4BWDB4qy!HpVQ%en@+Bk)KncSyOZ%g58;@!*^G#i>bb(;0kn4z-DA1M~iU% zEL;p|xx^Fe^P2EG<#dy4EWgsLQqjQ6Jc3NubsIif7^ zSqoWn?|u}r1T?i0+!fRDAicAt|K~dlKpI|M*G<7dbyYnZVlPfvh#-l{`GNG~MSI+g zscFBfO=c!2O1OOTu&>EFOqnUM4DlLuul6sm$LnY`>0Pa|?uoGryLawd#OLoO0!ugh zlF>56b()id@egWZ*{{QL(RAq>TdqMQlI(|Y5o6KOpN!rRE8^RrL!1&XD1;*I7@EJp zzgIkQ5)l-M9`j_5u>;HORhB^YIESKR!DEzf8|->Pt(3!|5_`mEoZRlZ)W|gMa7!)9 z>(0&^^m7_hWP*_5Fq4l+?ua&x!4G(tKQi&fUUBt%1BDCvv2+mQX=AIbNXj|5nBrx5 zT3s&V7=k6uiDjZV$E2z*+g0^tC`15rHep!ov2vC9 zAy|(+F_SqUfrQ^1rl`X7nkdDPN-YLApsL35m0wHzFM01*e_p79Nw z&d^*WJe|B#c@+c768E%xN0?l6tW){$RFWr%=w2&GKG_%HmcdFE4u{NjP6i6dp%k)4 zg(7EQe4?Cd<=um0x{mIfM2KVjMLH4s+5gEki@ z%XiWeq`_}SC-q+}4E0JjOD@c~zeCa(dMdl88gwQv2pzfq57Z;NuHU5Nmd`E1?`Mwx zYk))CQ~NW89{8i#Nue(Xe*G^!pZ-~Mdm{DEc!-A6_kU<^^UlQG`lnD)NFkoryJz{e zLgI+`PTlWUeqT#`svh#WV5L3(+G@V6S(fT=I{xkN@Q>YE>UB-iH$_ z?Rz%Ls`+!p^{e}(U|8@p0aL9`a7tA$r@JdbZbnymD)0j$_lS`b?0VTUr!^|hldT=V zKU?5*$4<4IEP2;f)dK>>0mby81#zT0!eBE8KT*Pa?mw%KF9G^A4ozy7-Za!k}6IUC#K0W8_O#$$G&T>B7mBmeT4 zg^%#9_SUUHf$Q!OwiP@HDr?xN<<~VA?Qa27VrlG&lNEI?6O!ugRI=W3`dqvQHp+({ zzEM{~6yc>al;A*G!v+0b{7+gs9;K$T{YR+Fx{XZ>&Pkv^Brz4pq+`_SG~TI6a_4)q zQCn`y`pXtq@IV!_GHMMhjgL@RdvD7Qb?TK8dH72H?Futqy^Ez%03Py%(Sy{BMy}BC zz(N;P#Q94R@W`WS?P6py+15=L$M;k)j=1{qAh7wO^l^BCWdg6P0EH>_NDtpJ_ZlA? z^EJqbwO1+-1Ewuix>jc79(f8mepy)h5ctb0i((LoJQNGxtF3h%PQR*niBnigS3xp{ z(ozwgJn+(1MUPwEw9hxod2Xgt+TrN4cSB*6Yz(AeYB{DZXvx$M$wZ361FQHyX$Cio z!!At^6(bQXL}rPphZfqp|E4@jRxRXBLXXd-nKw*%rV-OWQd<>`1)PwUiV3i0#hbCJo&iCmu8myZ=_7k*ZfC8Y zX`)Q0t?|;S18Z=*bk}wUaIpF@PY#O>Zx-N;>)Xq}i~YuM@?C{~?q; zA`n5y4pLn4kAzl6Mp-2$O2q`0(<^7Dgs6E047gLqFqL+;4t^{#ZuK%g)uY5{$GxCK zeXA&h^6Fw)zHv@s2whBSY=z{nS?a%?8tdUwWPm|G+#ac)+BTGh?l1ZvjlWVOhyJP$x+%~HUA_H}^yz^Y ztHHh0&@o|!4(BK35b5GCnB|lljV}Lko`+2z^49U^H}$Mi&@hBEngd$Gz~rJN(5~CT zkT~FLH^9ci@CmJemz7W~XmTq*ZPB_rT$ejmrFUnZqhOpdhJ#@=#_W9s+;*8DMESVq zvGOdV^kE%v2SYx$1PNdwrkD-#pWZa)SmJ&jrK_5zwjojJKAyD$7`@Mv6*uxVPeZ$+ z#seH?kN~ibrETz7nX&gr-~%Y?^Jrt-y);a3kG)et=JWFM=oT`QE*AxhRzn`i{5Z%y z7}wN73i{o6e#6mp^OKheNbDq=Xi+|Ldl#&~gz=1Kz)PzjSXZ>P!=BA&BO>SOm6~5m zy-SDGqAg0fDfiC?TuD6`FVN>@7b5$HKj~<6VU1;p8)g&A3zK=|0{he}3`$)7oYK%# zWQ7OJLMI4(BNZC2Cw6?vw<=9UR-yvZdYG!q`=p5CbJ!}1a69fhx`$Rk2tvvD<-Kz* zsqY65oIB7HC*!Y_05vp06z7PPAxfOyfeyldr3wW9aA+W1IqzRM7>21nB`zJ*}G069k^;;+#vHgAd&PikAkn8}tBj zjdXH4xZ1C&9qlK4`P{=OSkC>?rTPVIWw~X9AJD!Juir`nxpSm*%KMdTT?9Qx266F_ zHD#x@i)dEU3`S?83R!tvy$*#rvKUc`)ihJ-`~{5GucG{SuR5XA~4FzNUjaVe)uA&My_2;NRm#8#ib5Tn7vf?=;93@wkV?>Og&1SC(T9B_xzl=&0q*Nkf^N%CEV zxzj}^f-dPY^jAMM76s6wA+18k4DpsLmsdLlHO**j&CjgN3J z7Vx?T%TGsVtcn{n{AM60)DDT8OqgKsCq&v*<*l^&IaA=eRmWlQ#M9<3%cz{xpL%_n zTd%UQWws%TOiJk*Y9~f_{ncLA+{Z~DY5(@A;a2udsHG?F4sc8j?C+>=-(RCz5^V&+ zgmh8F_2k;I#+x&+3qL%|(OxMmy2R*@J~5C;y-z1EfM3BiTGRHNB48w0PIkc&SBz_k zeH{8wr*mv=uesbcLlt*si@IyOt7-lRyygC3J$6C(*|@Y-nX%l}FOncN4}yi4?ovZC zr1Aj}!vMZB&F{?oW}3>oKEm+HO1|HF37UeITPXat{GPcUKC9$w>UnOsVn!g&+8lE| znVeW(?xL0`tf{%H8k_QAqdS3$di0=dpskNaH%3KQN}FT`^o0Fg=VYHjZr0I!-2#pO0Tpn@Y~pZesUkT z{}5GG-Sd4w&^v{P>jZR3q4z8bS5Wy-0K-?K$v)s+K7RjWg3ZGnIKfMQ^W03dsPl>%~-i z&Um0Rz~Ci!!2Pi=!rOL3Moq%lypAGgw)HQL>G~GMnW;*vx{%~-LA`hx1BJrPNz~e# z9xBnfCmt&HD2>sJB?C>dZdlyNv zEAu8cZZyRCT`PVG;3ZMGG{^iTWV-72?ZNjk;Y8^}SQ*s4aCgzg9N?s&DO*(Pd!c<{ zEkcK$|0;C)*li(Ct-roZd@?t)r+cd+apGikj#JN?clco}kPghjLvOHn`>%)v7OrUR zD!1r5MCQij%>193IM8{Kp`*D+2;TWX5+7$t6Z@LP1YIU)t$a@%L@65%w!_|w{Kub5 z`TuF+FNpHc-+qT9b69TKchFxpfBawJWYMn#8Sjj1yt8YLVZTZsE`MrnH7&V) zv*GW7(mpsx3v$%1wa!N^azj4|f>u{;^Zx>jxxBM4>TunKQwsVQGJd?I=AX`e7**)2ywnJEc43{WJ=G&wF8ksTHK;4(RG=n#++8iOM9*c zs@VLn3Hsrp>k8KS5cj6jHiL5DPFgm$m{WK?)2P2?xN3-pAT^PJv+y>@A^YK}kAO43 zTpGyVbuBn7E=!sDcrEOnt(KU6DVM-2>0d75_HADs^=%E32NN;ne}m#0I|50_m9_=%{8XL z4#C}iItr$D-RJgp9gezasDr*d;{5F549$y_p^Ve?slo&OjaY;@52pwMtbyycvM8Pk zOGXh&rY?pKWK4k0Po%uXOG)%K*Q!>{5aZ3O7AP^k7p8%cZ9h?vSYsvb``(x$Y`nPG6CAwX3Fe zA26)?JuPx9@&vDlSsDqaq)d^tUulx`NcO9eI9>X($rN`ZM$^;NPe$UHQCHswwUQ)` zbj7Y!qh!4Lc6nIF;i{>P5CCbCBURl4wk8BF4%UW@XtS}2kMt{Z26V|zL7pGz0%}F( zr-vC;j+QZ%?Kb%Vz!@iCoKy}j929A8m@8jibsZ+VD|bIrs@*j8P5i`ct@Dk0+G@}Z z)sx=Tvh4YgFA@HFq$P6wqTcDk98I{QmNBia&bsqAMA8#wIk+dGe9dP_1{+9$D{|2k zG4W`6af$eNW#fQ$J^jNa2Q#?-l&^7CHKYJzQq8jVZS{QT+j?+-ed=r+2aeSPQv9+z z1HHWr{kafpKhEHNJBCQu)zuP3B&l9Urot7>Pd!&$l+XXh@L$zE^^;Cp+QTF> zYQSI#nv^$VYMp?yz*nN0)}+{t z>G~Si1@isO+eyGOo2t@{OdA~a^x;d|NS_%}Ws&<)vhp*0{}q5rZKZz_y~V;V7xU01 zvDubw1EJT!^~O0g&#n}m*i=`GR)EUK$-Wz|^4*6BX~|b3@QXE3tw%+!~#&%2> zk8A_JbYqIFA<_J6`qypqm0+6e&hS`!cN;Pk69b!U`G^26=-6n37LIQBlW^baA2 zp%xr6;EQ?yZ}rAdTQzICW-mr+*B7&A=CcD0W17b~iNe5!JBtH>FSbjU8ZjmHFjrFwl*r9I=fP8G{cXBU#4 z0u%r}VzbFsxepzCKQV`@W8Ln1j zH-i%hG1Sa;8KE)UndNl3V>yZ~W#lfxMn|qpcn)5xitHe!YJkK?3TT=xoHH$jUMXWD z{qdaVwxJS7{SigVJIQXqKzk!g9Zj@*G_5XVdv4p{NvFwy{ethLg^|;KsgBHmWlmiU z8)v{%)f8cZU`vqSqoFA7t{Cw*p+AAb0&OFyc=Iav$(;VJ(S3QLZ z%e)psd%n>RzGb?PQ-3F~AmeZQ_Zvg^qDQjG26>Rbx&<8Gg}Mg7CIKEuz#}@yB4=+GUmv z{`AXQh0Hx-b^c6T4J5|Y9N^$F`oNIG&eM-u4dabgpY4k_bV4TD#u<584u)+NRKE&D zfc&cnyChn@Hc0uXGj?lri+5$4G-ybebu{#g2W6;7f@%H?1>>dm50yX7$Q6m?$E|6> z0v|kJ#5yi3LM_ynTf;rBKGh~ZU?U2t@QSBNs#ts~k3mMcmv0ojf-*5W>e7OHASmp$ zLO|xH0$~YZUunGV!jCcet3!fv2a2hQwqrM{8oopqM}QG~Wx4M7aZSb#gTCo*r4PRz zokfeW(~;l2l(YjW0N*@YF`Abm8_JFlHEJNkmnmdf#N14i z7O8;!A;Qb=(NMK>7#_pWi+-hL6;d9Ny$Z?F`-pnUVj1K*+=2IdhZp-gS`kx{ejRwE z?e6TVx}pt_?e$b6HWgumbSHU#2o*LT?bql>h^h2txjrjSCCWsv#VK8>XdJJA1EC}! z-6;sc}kIdQZ{Ghpf6 zW8Qns-+miI;Kv*wJ;1&K2&UMvJVU9B?68a?q$BNS6vu9wTCA0CzjWywmA?@<+55bVzBGj>y?&r9_v9WO8l;b7_tla1v-Nkvv-F04BLr52HdX*0*sD}H$$T7ah z)r+0hld>~YV~(roEEpbI9upC{l)|X-tGlrT@b|_LhR_hG`|-ZauU1@Hd#d$wLGQ9R z{*Ik!I+BiH9|f){s*~jE>!#EFM*{o!%I0NI=eEQi`CbQ>sXPyVXp>%)6j0d+^{F#l z;~rjs8H2wp-Y|)XEuW9> z!-h1-e!7xU1oU2{Q{!{^R9h>! zLd6k{0fHlQR$)ok`{UjnUBYW{Wa}Jd4A2?9mf%@I*>#!=ceLkDzpp-M-?4CtDn=Gv z)5sq!&-^CudP=yWE@jPm1=#7a^%n1xU5`vPf)w=NE*l_kT`G2(uFQ=fxn{|6M6=gq zZAVezJ)U)FM9Hh1_}6;Wcn_a*=PQ1u73R6H2W|=(D}bs|te$Y<+R#zL9qfrl zW;w3}p^1e70DyCaWllj#~SH6zOk;WSR{o61scg;xwK4>Q2di#f?SN<$n@V>^!&dJUwsGD}D-~0abhl)Qj1P+{V{KW0}drPH5u^ogb zSCOYNUlhLk3_rfVkXCfK*0Strj!kk}<~>`r%Dntg1*Cr!rNH~+MDI^BPenr^TVyM! zVRU&sYiQdj(&6Q_0V=zy8FZc!OU%MlZXR!Zt>R3`Y|F*&I)$it7}hFjzC1DxLFY!# z5Nq5N6d#K8{cyRb7;%+pQK6J23R%4(PTaa~Sfd!^QbjGNSVt-@j5S;x82E4Oy?0bo zTf6^@T~t)6CI|{ifY6lCq$(vqLQUwQZ6E~c(xr%OMQUhCD4~cDdM9)QbxY`>_o7Je zC{<;v`(~H7?0w#I#&4W)&$;9N#`{<1%3NzE>sfQn^33^szU}*+2^(HE@uJ-kIZ*W} z_LcN74Ri6bpa+|0gqEjXGxjX?3XADZKrT`s5@XX|d7AN=sq0o$Lf@yC)RxGt`>#_8 zA$(SDl1?j^pBr7n4^Bj{i9-U`_j=;S#2nmj;Xl2!cVUcxu5RC#I#<*G~Jx!q!g?IU<3n=zII0KY_YCKgV+sGfbnra+T+O@M=Ra! zu;NcIDf3m+sK_E~l#uc1>&d8f*5@_d@1XG=Ux%YKrhz(}56|&SF0$=b|J2AdWVIWM zh}R`5JBU}YvJOn=PVXQ@eCs(7$iWq}?qy85=78ced4ct6S#<#FJ)EJzo^KsXNi1sB z2X2){FEU12wL9lu(ahd4-J>dIw|S*VPZ%{lkwobkeU9z@A%V=2c%Qhk!QTi->fEBv z3tv?5Q|lG49KLTa5Ee~Yc5^|bmEttCP177oqsPZg71mk4A0b|in|ZvK8dH2eWI`_h z8?GlL(;)h4XbORo@9|Xr*Ny8moMtJeHFYS{sz@MX1c(=$iAGPpt=h-#X<*HXr5{Rr zzK?S?cmyDVW=Ct7Sk$`3Aw>p!t+=PG5xqm&Lj6YfKv^4LNAx zB*gNg-hhy?=Cxd};-9x=C`CCM?PP{TZk}+4$cYxEL`LHG1ipK&D9k#$!VBXLZ{hp6 zrhgk)pAn6TbG{g$IdJXsNzWL%s(4Mzj|Wa$anphnoz8*LGxLT_ zft~>}Z@O}%b=>*t_O!L5in3Wq^u^}M*qL;X65Q+f-NxaNur-6{<0LufRE(uejUlq! zCr=j|r689^W4N7gmd%-aBiG^?$C1* zjpSN*%dT5p{Gr?)Bk5FaJ;TfLxo$tY>TBj8rQgoN_*}6e5VKT$brC$}=KRtQoaV>F zAj5;CrCDF{F7A|VY|`c|{lz#e<(D1;?TXq7>+1l*V@Qp&V)$bOS4}eI71vMr#5f7{ zsPax7b;G#|mPWL@oN`jx8Sn0;-ZJM2bA98uqr(g3BCqqmbL7kc)g5PJcu`P8>xaxn zetW#$O5r7WjHT6-b{Syb`8;Esd)_MsKId7JS0ca(Y4nDHVFBu!TQ9k*PRYh7q%!u; zAJId&U}ZaNysp}2L%F%C5jxpQ7HQG;k~p%Kng#)bq!D^n3J)?PBg1!iS_8u0$&3v) zJT}oh*R9)q2wMV{Zl2OgY8;ta&w$jjT+XmWoSf`(fE0-bG<}CvZEzd;S;V!v!ZONg z2&(5kRk4~qB}b9VL#o$w;7ct#TF0LTy6mruuI=QAyX>S|M8?II12{V)ovvyEO^U0z z)z-5|EWG638gh*HHcE^TUczP8BS*a%i+!wHRTr$whQ}`5vpPh!d17cvYf)$aNzIyVTY2TpG>^B088RKEWs|VS`C8u#7GC z%zF89@e9thM8+$7zjv)|_#DRae&%iy^tIo$g+LYob&c4Lc}R*$jRUxzq9QuvxMI~N z&<+oJRy7Xlu#?0H(d&8wV$Hb`;Bp+!(QbheKeQ%sBaxG{1?r*ju5QJwi97k$Lo_oH`svfl1Y8OoK#bN-^PMqbBET zuqGH^Jr#>neByk0fTGi;AaEjXvdtwX7mL-fxZsX+cSwzlj8tJ+d8eKKRk}?|KKDj) zO^FskNn14E545NhoGUe@%#1%Ojx)ui<`4}Z?zhdJ@mGjV+kRq*uvU9H4G6}{td}8K z1lX2GusMo8WY#iEhL!pG$8e67G3L=Dm;+&Iefp1l&b~2D<^d5`Jx>N*7??+w@Wgev z@Pyl2#IBC4SuBj^kKcOhHbqJcGsyx=n?qx30j^Fw9$wj{okNKf388p&S>>ifVcUa= zz*j7+MsMZK^Om}OhgIi_wM9G;RX|c$U6@d0ulgil7T=-AnVHF1wDbPL*Y2C)Lf3KmCs-}fv-o{S76x|q=!$o@CBMwq z4c-?3Gn-Od%uMtss+5=&W0*#N91xL{o!_IjEFv88+67ECSQZK>6KfveTl`{Dv5hTXDLMHmE zG&nOzOOKUIaK#1~R~|Tn_(tyH_#AH+@aNlFs_3-t6>Zzr6<-`Fa*E8L0>L!2&(kCg z3aD#^EppiV z9MDEzlIM8RWaOlzp&q1lu&I<+h^)=7fp&0cscQ8iQ4^7kIu>L8Ne3eOm)v97vLhT3 z@ljTAIfeXebo9@s^FXk4*VM*$N7OXS(GUwak%cuglbSZ12-~1s=T324A5?wcs1ln8 zWdxn~?x6@&G9b}yugs1cD{3Dh(1Vi-j2-1Ozv}6FJ3Px2=Y|)ctj?x|*SL za1(pn6RAS{TjMBG2+psqvU|MYU7LKH9w%?cmd5jS#=Z(PnlP22ghTLybMbx4SWKku z6_ZQML&84DT06-PE%GO8^DWTt2Jd7~!S%Qly>Y71Je!7}$OPWywJVc!=k4i>x_*+bJqZL-3-`sAQ-^837H0|b z0|-fFvB38B8yBJ9hi@wIW@-c^VLj!8cp^VfE%B6kRvgC0MR~4z&PcOeDQL_+SeL<{ z5qWOvOoAY6Va#KTnhEnKJaU{oR)JUpxX)IXRK7D9im>N zf$UW`MP3+ALN3&&Nj0AecN#riERx)Kv1#7)LZ);wmQPF1Uay2L?y#kf^_ zN!IR62a`K{l!rpj@Ah@0TK-&PPI>^@LkGH zekvMCC%lbUM#ElGzqHxyhE@mXd7OXo#{1K&;CfYWCrO9ioZ4O7XwcU;>tC}5KH;7z zM&mWE_U*4wn%dh7}i8~OxR z$rSnWpKatl@_W;7p7}9EtcBlpE@=3zW2}dbgN>kX^jj;sslB=aQ1tyw}&k(Qh|b-i;S;!@bX5e?JPAo3<4bnd#ApgEIw zo=Mdgd#O2s_eDn|$uzxf|1F}jPP5XhMM2O)KTx;rOPys|kxglPkwgbUl`*x*M-T@;a{~M+k3?*OkQ}+!dpx7QMRfDAH?Ltryn6<_una3RC}_ z1Pn^VxNY@99&49pJ0_h|VZ-C`eN*%@#+>r`1&wRvRaW?oUe$DF-J8Nwsbg?g2KgM2 zryiV(gT4QK=pcPbs3AG;ZUjpjhX!sm|8^PsB~~(4mBqz4vh#rT%Jr)szu(EPJ{NuD zbimv<#$T)^rh?6cbrYn)+c{&Vzc7K=y57%(I_=*Pl0wo}6U}1{;-X5+R(HW2gEeb6 z%BhH1XWv=lS~rP9a{TH6v*(05GUftZQ1)8E!XnN@RT8H1?q>!aQ6xsrS>_|KM$`?N z+{V1TKnIUA4>N+%-D3fOk~^6txDrcrZh%Ifu~pbips`iUyXol2`h~o+54Awje8Ro< zCKWNcf+8QeD_QKj`fj90RaSF4F;F<4u6dr;65&%%0~$2K(WnwS@$)x*aMaG0*Qp)nM;PH%omvg)x3WRa)lif6M(3{~InjEv`} zf9*-+Jh=LfN%m;%#Iy0>3GAchKR5`M<*7X-AiGffSpw~y&b{Dp#p&ijQAGz(i{m$N7 zMD!SeUop;l6~fB+y)N4f%P|3SX+@^LhluBr5;{PI0n#7Ym?hj=n6Y4 zos%{)7A@&@g)cw)1ja|GZxLhPNCx*U6~^PL&hu)USvKA@asm3>0d%elB_wj{Iersl z5p?9R(C!s;@El@7b|>%EMcq7M?95@hmZW3(m5Mf3yEDklQjtS4K6+VXV}&D;^x?^~fsaz;%U2UE zN;?U2gMBCci~(ZT)NenA*o>iE8>fFrzCx^FcXrM*m5VKpHhRkLS))lxA&Y?Mft{r$ zbwjW2&fc{&^j26IL&G9x#S;eNnUJKB%tKn7e(+jJ0o>aQQd2n<-A+M>^qb_2djSId zxP*+m9Zdb#WKRhdO^LBoPjv3h%9N#xKDs&?dh^jUs>v@*JU4)u{wIfbPJ`i?nmqzV zl3Rrr$WiCxEN!LT_cW1AcCJ5)tvtD7s`PYm9WF`{kBz#*{8>*qHO5HQSFFS5Lk2 zjm%>r7uyPqYa9*m`E2v=7|fhBOUXT5MzEsBjfw!dz~@W04Oe4*RynaS{k9n=|3249 z0+xc}DTSAO?NDU`8fzXWO-y9R9t?i?{-kf_)4;tU_(s5ZJ-kT+O^mpr+r}w8?R#O% z=&D0Kf4Y2^TLDxk&XA!xm{=~FN;%e9wsi%?UzRB6%7T2}aS<(Z ze{ywme>0*%kFuKlXt2lmK(GM!?#CjLlcwuU z#-_Moa|@#gXd?2Q2{s^lay&J9`h2f=m06{RXiB~@(&}1L^F_3|P>&yt0_)BL6yVDI zCOhr=f$v_LCaQs=wN2TTB(H zxhm~9X>m%7)JQSs8NgwB%sIQi`c-X-sTn0cF231`rw}<=>chvi%o7XykyvR1I5PYq@KcVr}iR4MY#Ss%gGwAUn!GezD;{1&P^srtx zYTuv#{`j*m@yQIiE{0#4NyFmkfZ&~;xt)3e5HTKJ7}V$e$wjPbo@`!Ck>W#2J19A( zcG3^lKZh5b@2XjbvI-gQpz{V6{?W!wYWGp<>?h>SV&9#u&m?9T#_8_{-e2Du`Lray ziYrI4%?To@#@k6R(qUx}E#aMVuEqS9cPF&hl;{ii+_6ESSTIG*;bBw7Ui{$b_VI|b z>XPs>?%Q5cg0}VUfhd8GOV*Y6C;o5$pNPUFPs= zAQxNS_Bm0KUSb5cS{8Ip_S*d^4I{bYW&cKSJnjuZb8WjeE>WUbvC%6@n%MVM@a!~W z0l>u_eTmyuiD@Xm+(S)zetN5> zQ%A(iV4|Q58FMmulTQFvwx%h_9heC5fk+~rkJuTpYmi25UGOy-^|4fNvi;3|(Q$8x zpiIfexGkZ4?rfo=*8No%NjN0J_TCig7bc{bxC13=R{BL@^H$1~{1Y#G`Q21^HEmxZ zZAQ#72n8|iriiOCfc=|xsG>fP;K0OJ;&BKI${5%#pd=v0--SA9rEKq$Vq+o33i|Oz zCKAXGv&I%ie^Tb`biaK(VdiZ0vI2{1Uy?Gap&pH`l`XhG=(4FBx8#QT&@SVMz10&d zv(Z~uKbn|Zrmitx>WEDNOyD;y)$LS3LS-LUNy|Q^3NP084@)>wc*9~3(bEZCtMqX( z0X)sYzR5jz)~(z^95(303H^@nPZ7cQ`#sA?M_oZyltu}^q&Awp1aVi!PF{d5=r--S zl^tN6L{O{^C4fmtyB|p53hULR-B13_Q?JsS2SuuFXht&kzltguMoD)7AQ_R-ZiN9{ zNx=PxWf5^J^9$R4z)?2VPPKCsG)~e+7l%wTG(0B|^*De|bN{F-VC^3FskeN_o_cQN zvxE}^>>yL4vtmK^1~xAhj!+u20OV9X@1VIs#%=9*KG+xjX-I(Ya&EnWF2A;SRIyrV zv0*VhGI=)>rQAH#rG?npYzg<^vR%1RYwR4WL+ZIXJXhu%#iPd^FQ7Z}f|b{wS-x)( z7wpetcDh1gmN(DAVs5a%ca8m??`mYRoqS2(u(iNsAu0~$?En)k7T~5+TBtMM`Iu26 zmwV23rWh2CPB$s-m?e>IyPo;xN!X zx=QX3q8e|N1K)Q$oOK&58*R{gtLxy3@71c^4QNVwSm1K;<(3y*@;s*(T-wByu&~Mg z%v%?b?BF`)gqZ1h-o23YK2@Z+&6m`iJb#U15v|XR(|tYwAAEHC;Cs{+Kz1@ja6@AySEr$s2J!J^ZmeeewFA z1r?&+86SCfzSH#*$R(To_yti)tugAHsLLEi6P ztEovb%dMPZK8eL?tIQ(O+JeYeAQ5Uzz?Y}rIKAoB6PrPsN)LHzIXt#a-ZY_dgJ8O! z4>m?*LXY9xghPM(<3;25b?;oZQ#UTrmlKwhs9~MU)^^mO7>_isnghtmC65ZTRd<7p zqMs@)mz-WidgYPsbzIvHpRG;I81wJ;A9wSg=bm7;RDOwFDbdV*fBHS;qRf`Qk1QOg zEv&cF)5N?nyB{xBF&y&aE-}>fB3y#q<%53y5R2n+K!-MNvJf95-}&`t*38<=@9vuS zTWxnJQ34cF^inhpQ!~A?2V=kW01OD}5E|KR1ldTo@z8j4rO52+bImvO59KMl5A}tA z&Jxek(y*>iciEqD4?S_>aplp+-pfU2?)cSAmskkP_~62z8l?rL+gM!SLGWG4*C*QU z%)-8Kep}pHTLSzT@z0aog)X3X5swHr-f@LC#OP{~8bc*8YiO^5U!+{1eNJ_LV?PydAp@lK;8z2c~GUL|`A zSi6jZD7#gZ(qn#jzAW7us}+!fQ=YuFQ@ODbc4Vd&<_DA21)R4oS+4Y?v?cuUyDS&t z+$(aQ?I5#bR&NP(MF^;8idr`LN}u{<;Q~Xz$+YJ~7<{}r{wLkY`?9ZdYwqs{TFHr0 zv9)`+Nf(!f`_(@gs)5o=)&!fSU~)|_2|;av)-kNWhT*c@vrYjfaDd!jZa?LyB%22b0Vleu1B_xZhq);|i=DsGc1zGO&*itE@u zdDspFVTNL+4iUUBHpL2PYHtPdE|wi@{CLeUk>SJBbt|g15|$zZjnuJNtV3z2N_JxJ z=sxis5OD3S4MJ%FTnjmi9`QpWmmi*B*QFUnC%>N|T$3!6skb90&fJ?(6(g%75zc!= zd!_o(`)q&MIQ$QjSD@OYklq#20)|Z{HtN20bW#2}nhT@paxtE1hq4}Ug!$HZv2QNaya zpfj)h6YW5W=lCv~z+~KEm4$?}!imvtZ9#+KJ~u-C(p#k0n!t8OTj>EW->W(;-m zoN;#-Dlzl$l3>hg)U%OO#X%m;Uo<@sI)pH2tAbgw+tR#}fBjVxp9kfuzt{i2J)8Ye zXTks1E!3w9Yk(~JloCCc9EGuP8({wnSi=;MWYZ30A8wC&gTobKfi_eRHpX7 zRFX((k}QAGyGj}cRFkkmx=*kdfN6fYGqyTM`GMwTa zVavkWrakG#ZX*mH7Mbi&NCt~FEa!A;CLv6`N3ag?>X&dzTE#A~~Dv(qyv!~CAh5po)tf};~j zBz2ra>Xw_|s)+j!kl@-Dp^P2t1M-2FOo8$0ZJSG`C{*D{t_h#JL%#acrp%FbHrGOe zBX$xYH50R6?yqF;+s1JqyEvbx=lg}t(mAqCTy()~Hk$R~kj<=TW*@m~QFXOBPCdUnaN$DD9-<>yk z9Hi}fb@;r2lP46JieLkX(lVk!bbm1%PJZ=_*zWAx+uG4>8HKPD ztXIX(9QSUO=q*fZWAEw)!*Qy`drk*Vh3>pS{Jy_kpG^jJIL*ifV&zxYDhX)>h1d^{->5jBUPvO#U?$iJoO=DUN`!X|DY&-M17K#b=r2qK`}#@C|n^SItonJ z(=h@LMW+w%Dy1H*U2_9Jfwc^17Pl2fs2uZ9nB^!f3BHzfW!(5Wt4=@~Wyku7vM@_Q zv5R{zFugCg9qCm>K_>Zg1$j_uAoogY7Q%OGNqr;Ec*gyq92=LDHaxF8lXEvu1_{fI zk%h)J+!CFO>@2F5=*E9x(R}CyY7L+jpJ4Dz z(bUf!7m*7lS!jVloS2hWaichU7t)A;_96i8$J|McO;%Q+j-<$c4lhh=QMow0p2&?K zf{2On39ARw?t!RL=Kbi%9tJekzJO`OLAJ$BQ0nq>TUv@S>%O8+Q@*7X&u*EZ1NcZw zkBR?D0z-A{7~lg-G(#KydMnR^zi)v&VZLh@!9otOkbcBy?GNv*@%Uwo;Gg0+8KVL@ zM?!^)?BT1q=YAOfV>c9ue;#>YJMBe`r>r>0vw(AM`heAGx1=TpR-FQVj^BjWY}qX^ z{iRoPVxJSwFqZ1RH^+^!OHBQBcw|GEY8RFfZyn-8rbUNq*g-^sbb4Zi2<7LZgb`5n za>i^&StPXn&)x4lQpq~YEUtd-1C&-*?M5rBm8u)HQ!G~PBoV6;H~6P+hW@p;AxmSt zirvw}5_!5#nUeU#nSq$8^?9-2oIDWQp!2T36tlBut4afYvtd&Hu>vq1O;DfrO|Bs) zQ(4rT{@nY4%IxH&IY(+y$!=m=vMfRl?m*TcM{8BZs8?&kZ9}k5v`JXmIS2&q#h9oi zTyXz?sV9u)46He)#?qp+bR*L`wnk#HZ0wV?xc-#63J!w zS2s^U{$lkuRm#OIeXnfk-FVI#0;!e}P+nP9w~T|k)sINzF`_p0jMe-~)3n>JP2b*T zpE497NSS*t*S&CPsogxb`mC`qs{XP0MKmhnb46) zohbDHZFJ<}-Vuv0 z!iA+%tJg-I;>uXrhUSN#1zbu4WuK#V$(`>5iQ!b2_+xCIK4#S;(4d~5&KLP5xD|olfA&W^oRa2TPi}{i0S)hT% z$dbZ}kS#=)@j{#RN|PRqGidO(&`h5?TAPqQq?Dhbx(R z_gyXw*YKjOGUz<)H_^KdM?k8{a`K@xtBdhV&ktQ6zF*bcVyx30MVx-K;pCfFLqS2D zq{!JC#Hw9@3uuiGL)48xgwC90DQehCiv=^#XXT6#_TFES$dZy{b{dJ-nx^`^gNBGY zzcBecS{(iUBz%^hRm06<8ynX9lS0toJ;uXdJZGgH%}!ZX5fI4dv)D34y0y}X|!fVM>CQA7`s zT89jWmhY{zX%!bqI@Vv^a<%+$d~FveG|#cmoWV!{l;N>a%F;*yI`IwPeg}ByVhfk*L6B$AQzxIM8A8n$onzEEI?^zNst0(P5 zgaP>^PvARHO!$1kM7cJP2#t!cf&J*w5UM8@9wRq~euJgvCsWn1MDuKQq%M7{H1g|U z%^zd&zkK|+Fi(Fe<6j;AE0S^OPk$o&-5&o_hY15q>)b7HnyAaNu!MTe<)7a%ZoF!^ z;pS}Ute-|;U%4n29lLKdu457QL}j&eBo82+`+iwu zYMkNeivK?};;~0d@1&z=FUHz1XRmP-;u zlzU9aiiJs!JBG0Q8E{_R8`A+JwMpWoZzuA8Z6<6Auc_y)~z4WEDd6Q6_Q zaPFQJI3>LmG1)JPsi^dkw?zuOs%8>>i9*BJ_bXMndib_zs0PYnminuUcKGmb4`9r* zmD$i}E%&WXMwB4T0X?9nbdB^BJW7$eDX(`3>kjgu$^3Av&&fbU;$wAXRO4FU3zPdJ z3teCLSjYU)GuDCjODB`uncm{x1G?>+nC39xtCx ziLolIj=MFrc7K7M*qF~1r~brN=Idy`1m8mw?&ndSlyWt+Nvre29JGb676{F3(#X0c zGEuQ}+4EYoi%5~3xx~&X8KBR^W1w}ko_jdHp1;f+%^o6F#9I|CkG-;C28)XPCRGy6)eU3SP@%IjeM+-WX`5Mhg3D($Rg-Mu6> zaL;YnGOu1EG&(54m!^YdM=CW9y70c4pFi6Z!pfVh7qmk@bl$p~J1DWm&wI@_5-y;y zq6}7L?59O=X>vRsVUTk)T{7vKG0?%{2Mt5H==JT6$3%HuW2Bo92>nWaidrNWH+Dyg zPEDpZOt1L_!udqt!bumOrCi()su~&;S?Gp)9u{fl8b>iRM9TUF4xZ;}YBz?6()^g; zYhIE2QCY3}W6;Q1g(9t30|(I&L7*$b!bw4%bW?&giQqS8G6rkFJv7IwMe`)7cz)5- zj!U^((B(#}!0pi93tlcOi)pDnq*Q3Z zBRD_7aKwFSIH!X$i1{?%zZch2kBWZrR(}TiV}rfBl!fR+HXo;|nbLF%R3hM{gX}(p z?q9(2UC*v~22vFE(XnZn}U(E&CFJPRK88p?_QE8Tq7OD-5~ls^#&N$4W2Xy?$al_m6BwGdCfX|8I; zM&oXYt0AI5G56@PPll6zE_yN}Q&Q>qR_W5fEZ1Rg5rM_ho~miPfU6KV%>DF zSb;$bH%3=jwR(qZ5vyM?W3=fh;LC@4Qc|4HPfy&;c2QCZp`4k zvm$I-b*xudFR48!Xo+^fOPJXm>-A)xo?Ox@S@#A%NZ_v$q93q}H|^^5&zsBmFM@c4 zjEQ;$-NW0d5?OCqh&P=u$eP$hGQrquEYq>@z(oSTEdZRmwPX}9WT#K_EgRW1Ps)Ga zJVfY{uOXH<$z< zQcMHh6|@0b^@18TvNVrGyK1ICtf^VIv=tV-oW6vNWXufuXhGtN@Enw#e1zT5jSdD( z-U5|C)Quc6fr*(wgkqlelgxU8X4Aa;1EuA8(0R8g`s7Fpgm$8U#8C1Z>3e&LY`S1= zNU|!r9B1Lnl^vFCES&o2!T@igg=B<4_(J0q&U5PaZZ$v_FaaWht|gHC=PTEAhn#dr zt`*7ZL`L-$h!D_k5Thx442mXi99dT;4ZF7Eqf_Tv6MN1pyP6+_L{2d@BuvCGVRH&A zqYoOXJEsNkn@4_Mv;>EI4x|*SGle;0DrI_Y-3{)SmkWgp zB674XtCQ!JRo@wc2a6D>+--s+Lvgcef+1TbrfS$aaw0!Tbk%1e6xoN;6P8jhw@j`* za)q&`+DWo>;CozQ48<2Wh9mh`#TR}~wm;!G8D0Eeq!0g2DhPQ@o{4 zQV@BLtex~Q=S3^jtD?sA!TBGA9mI_fqd#28>wYE4F`Hu9=nA<&X)J$t9kHko&>mdJI<%8yUD&3WZCm%r=yQQYopn|c z^apCPgHXBx!$XZQ+lG5fZC+iz--hbm6wni$s9E*B;xLI$voy->@*4!dk|S$SB_Usm z_R457aNDbqQ93vtjo>pyRrMe=r3?s{wgVxnZw&c&YyQ*-aIT~~J=@(_tp0B9p&VUV zRbuFL04*IJLp;&dSx}v!k|?qW-OR{MtQ)|_`dw3Z`!Ir&`NeBZo&4tTC9Ss(8BtoQ zy;>Ujw+Y(g-ePGLm6*iPHSIW0d)-16{38G3pHXjhvs_~}%wrLfy}pIp8XEozGpK_1 znWEi4>8B_avI%56uwDYep*2#I;4u?vt{O6cHUDr-L$%|J?%IceO#b>5)6SQu8``C{ zr>Nnm#U3MpEgE_k0yfjKz-@@b z;48)Ne3P+T6(wl58Xwyq6-9J}dF10Jn}>~-s0){F4Cg^)uvi?qdjIoSxy-LxiPz=@|$?e;cwzCL7$?J9c3^Dqb3FHD61@i$LLw76-P&x zD!sV1n`8|7jM$%!))Z@&A#6bsd)Z zInJ|%o~8bty72Ep{u?&o@ZeaQiuKO*qqCxe7HkzoPpLf5jW$5QEO((s? zw99#gM6$YtRz;9!JO|_#Ce-jFtjqT0WD1v<26w`;Y_3C(Wt0XH1Y&sMTz=gS1zQA| z2xRkDsd{nun_MxpGi>9bDYo7-bVln7C*0#7(ZF<>js*E$dLYPF-g2rM!JbR=i&iJ1 zz+*ePvFcj}r zYWcqsW`AL_@jd-Cpxn=S`+C-LVST$_-lLY5Bf%{Oq3rHw2d~Pb;}ol}>4RSqi_r^I zOu~?lGx!Q0P9^i@{jbjwKhkG&`ghxDOwzMmYu7LI9*O?KBzi|MH&{}3wfbvS6%&j9 zZlGqXWJt`N9stHzsW|AI+j)y<&wv@v)~4hVR?F{p{G*-Xp?~eK{?+l4vel!iI~%_+ zUGTMS3w|-0>P12P$Vr2C_T10Aoue2FtidIJsGMPFNqKld!2Qk$m4&W1<2{6K&vH!Prtw4cUpuqDyiCA~fo? zQQxj{2cc~*uWvB2G2sV6030;58{M5GM{;Kqdd!1gOUX1B+eyiggr${Q5v;(mq3v=a zwKJl^*A-4LY9T(8@cbZ1@{;V~Re6LDqVe4ktf{aCZFoEgRogC$Y)q1+dbjhgPsET7 zg9H`rJiMn&D-#dun^m@hkcVu_b)OMB`ogcX9u=-Ty>I zIW3>Jq|c??)gHy01<=dwLMIHx>ZAxGkT7YNQ7@Q?<%i1s;xfGgQ{&rNQM{6u_g2kR z(g=O_FJe$>v3iPgTju1QO!|i`N`Y$I4{{PUo zx^t`5u;uUCS7fFyPnJ2>V~aZ1kk-D$K236-gHlAH-6xT(v$|WMuGen`x7y5<2lL6+ zv2?GzVGsI&`wad1t?}RUpLjKX40|_m`lr1!bm?!u=l_24vC80|_E;YMo-h0F!v2SC z7JvZFUlt21+1CL5$>dmLmNQ47_BqW$p>0#;%jD_POWt$LnU&|KpYlF;=Lmcp_xrK? zZ<$Oj4XE|g|33MD+!`+p5^Qq7>P9K6c-)^JKyNlx|8l}hzR>^cUpe-*>-#Us{hCKB z^|@yrhr)xjNu~;!8B@V8m`)Y{Q*#Ak(fbE%4|~#sI=u>J;JWlNf9wkoiK6akl5%-4?=-gdqhX2DJ~LA%Nkc;&8;HjvVxrAP zX+mBlBr*w^6xe9h+*RacNKPGD$G$<4+0bEyu{la%Sj?+od(nrc^4eZ~iemg#%6nw2 zagE&W^4$Hcj_T*G2EosMn2?rPN8Qtvx)9Y z&_g<`vF$~PN$~6u5awDR>P=oM#Hz1cX>0JDb<#&wE6TcnX4ESXt!%W6`bgi!Od6O} z&6>v^$r3lO^OhU?6?VSO<3szz1hgfS`o8R@#mY9WkCsHgF*oBr*9~3#1`!c{vLv9n zVky#ON*#6xh#m_ZcEQhe^MBF&h3Ogbi(uTBgZS2Gb{9;e9c7OL5V3lN!#k2vU$i6L zxnYu=L%}e`bnhGV4<+Uoo>-$q^y~`v4>Uu!#IYUOd=tHQ$mb9|@j4|k)r~Glt*vfZ z$=9DP0#I;aB>O40a|k~1GLfN_wX`ntSStZLuHa|y4~2yat2G6dWWIE&4)YCxZwKiR z(`cFxv2goEW_(GYCPJ_^@aG%5DlmrkQP3#BJ5NbmJJMUBzrh7lIv->Hta?PvF6Tr0 zlJ&O?5HZhMm!=KA_hETfrg?0draTChI^q$Fwh~ufiMWPO_mEFYUd9EE;2cZ)@xeJm z(0#L#7~LNx9Nf#6z%%IWTAmSq6nR5g?8$?CK@K`t!{{Z`3E|&r>Ls>ohB~*`EewlQ zS=7U}P>HU5n;fQyBzn0?BeSfzsPl@^1sCNK8IF@iLVemr9iHt|ws~bnpU~=M+-v>5 zJmoge{SoWeov)^F7}}3r4>9JqxNJnnD$>s+SY*3{@zgaV7jT}bg4wp;yu`D-xkmaZ zNWXY&)X?a3G96}kaxyo?rL2`6FmA`+=CR=|9laZ!_*UUF%jDH$cIQ z)f3uLr(+rwqb)XX&mBs6p9D(v--`}r@(y;_zI5Fg>DlBsJI=Y`lL4YG5Ds zLZoL}VV*)dn(lpGV@HzIlU-b!PM6L=9n3byio&1+;V|rNzfgCM_xaM!zS+i+A~`>M zM_pPv2Ckx{c#h7(@Js7r#~bXz+D@gdts&zF99ipn=e}M1F5YZ(B#_8vS(`pN9cuOV zoL3B}X1sB<-PEKhK3gTl7qXw?e3-2!5a0f)*`BiB-@><1tk zk@m%_=Nyd-T`Wha3^c}Y_$v!pbX|ZjrYr0^cZq z=1VYS4sU6}g<51(NTz1Z9&7r6*@O84gEb3B5pm{`2hS#@tyfCMaC=E&WI4<9wphyS zdoQxjjn07!rtD+l60Rf{K6`FQp~%)oHbh4zlH~NDW93o7STwJpKGsAgl;5o68oj#; z{Fv2uP^DxLteORVZf(4E-{%1MP5-aI`-C0-)6nlf23ChZ3@UzV#(N>{h8Yi_yXg80 zW4}hDF?sr+<=jJX(9Wg>US02ZCIcJG+l zVXfph9yKTdB|9vfwv1SXMK{TDf@H(&x^!$mp=w4Yj=rL~#mSO%;H=n#byRZq+eI4$ z^29`p)81^3;r$8-{FYmcgJ~~tu)4bjpcs{S`mV3df6(0Qy@J>Krqbhpv>03BPVM*I zop}R0cJ1TkEa+>7TPcrN7B*>UY@l?=@og{awemTB&@+e6A4!whDCcY#sM8s4rR+dv zj(f-O&wpP#{?{>j$Rins&W;8#&w~3zGHYb%!))JnOO>L9p-F0f*TL=i>UlTtI(Z>Y zaYIIMYbu5W89u^+k4hqMMINDk{S2|okl#Ow4I<|e8R1PmgN3b^BBb|fb%emElPi{A zVK`JUfB_477f*aXS5U4t^A^IVNerBD4#=1nadSe6E$Chz6stKf2Vy8>J%Pb(mz(E> zJ}Y#k9Tjfro4!@R?vl5~r^EaOF&$|vv1L{WyG^B1a9YgdE7n#T8M?gA;zYVG6}FvT z5OkQ{o4F!|koGFWr~0jQP>p%$PijT0-3cy(&JWDK`rJeNf0lKq>jou+?VV5f`wB;93QHz_9V zj{Y*v8S{th$lIMwe0T}+`jl;ZW>S&HRTLVi+Sh>s57`|_&AZ-FHr)c(x`T1|a@?MY zdxP%h$%m~vz#}s;^U5}u00nxrR#%J_fmCb#fG#mD&6NJ4jTCL*8XEGQC(>|pSo^~dwJS169 zI%5%w^;u>$yslR33eXxE#>~?WS`D+#^`q$?&%EVT)~Z+}OU?LW{R^mRKAnsto;=Xk zLTq%tv2Qx{lbZ3m>nF8IRp%a{uCLAAIMw^AJC|U3%-%Zkf~%gawuFm9QHU#-IuSvk z`VR^&J(3e{A8xu>UILl#h6VDyTHQf-u{H2SQHTZd8jT9u&1Aj*_-at%Nqf8YhE%of z?QKb!$XwC=`Yq(U zLHDTW*Ipqtw9H<^3I4Ow-v7v^sN;DZxG%mZB=DxsWS~@3Y%VizHx|z&U6x+}>;141 z9&a450|HNHFH;*FnUS=Ph`4g8ktky!8~{ujCaN4&NwIeY$Os6N{Ow4}L#w6ZD=bV& zQwffNEhUKh108b`vUdnEdP}4b*YNpyz5O5k_s7G*UV3&_+LywO8R#sNt^RVZt6*bl z5?DDthrF10FLc?hWW(aGe1|Wsqe5nk^vxx$C9MiR-D(~qhLVq3K#>>+ z3f|_;Xh6%cQ_aVJ$Ve7%lPJf1X}zMOK1s7dOlJm$#-CZunw$8}+Tbk9tNAr#r$$4( zab`q=XF8IXT@-nDlamZU11#;jQs7?MUp0r5bNzf3vhM4M}Y;-4zw@};EjD&_NV*ukD!4ZV1%Dhew>%InoGAD6l zU=mOmXg&kKq+3QzY4{NE+6%v-vJ(NVe(4)^_GKX?7h55pS`03XS{bUe>q zJ;Us($8i7%VI*wt5VnKFZ$u=jJqT3zIXwZ`J0)#7h(mc){YcEg#=JsT8=A1vLWEw) zhjM3}sDwgAyrF(4qbp;VW#VRhvf}t2jnHf@j0m5d^1d+2x1KjydKrBSMRt8k*b{b& zZL5-39Mbgb7kxyU>!$^n_p9zdH z;*rV39{*oJ_)2vxk+QqOBfm8jJ{vJ%#6!bIGpxv%^_0XfUe_eUZ>X3s(0bEeh_v^W zx^_{385J(Nv!k)iza>^tvouh2^HM^_)YiseKy$ E8`+W|IsgCw literal 0 HcmV?d00001 diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py new file mode 100644 index 000000000..c3daa2dff --- /dev/null +++ b/account_fiscal_position_vat_check/partner.py @@ -0,0 +1,40 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm +from openerp.tools.translate import _ + + +class res_partner(orm.Model): + _inherit = 'res.partner' + + def fiscal_position_change(self, cr, uid, ids, account_position, vat, customer): + '''Warning is the fiscal position requires a vat number and the partner + doesn't have one yet''' + if account_position and customer and not vat: + fp = self.pool['account.fiscal.position'].read( + cr, uid, account_position, ['customer_must_have_vat', 'name']) + if fp['customer_must_have_vat']: + return {'warning': { + 'title': _('Missing VAT number:'), + 'message': _("You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP.") % fp['name']}} + return True diff --git a/account_fiscal_position_vat_check/partner_view.xml b/account_fiscal_position_vat_check/partner_view.xml new file mode 100644 index 000000000..c7b6abee7 --- /dev/null +++ b/account_fiscal_position_vat_check/partner_view.xml @@ -0,0 +1,26 @@ + + + + + + + + + + customer.must.have.vat.fiscal_position_form + res.partner + + + + fiscal_position_change(property_account_position, vat, customer) + + + + + + + From 3b78994e40e69fd01397557ac88ec68484fb59d6 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Wed, 2 Jul 2014 14:47:06 +0200 Subject: [PATCH 12/28] [FIX] move all unported addons into __unported__ folder instead of adding _unported suffix --- account_fiscal_position_vat_check/__init__.py | 24 ----- .../__openerp__.py | 56 ----------- .../account_fiscal_position_view.xml | 37 ------- .../account_invoice.py | 58 ----------- .../account_fiscal_position_vat_check.pot | 78 -------------- account_fiscal_position_vat_check/i18n/fr.po | 95 ------------------ .../i18n/pt_BR.po | 87 ---------------- .../images/fiscal_position_form.jpg | Bin 25175 -> 0 bytes .../images/vat_check_invoice_validation.jpg | Bin 68015 -> 0 bytes account_fiscal_position_vat_check/partner.py | 40 -------- .../partner_view.xml | 26 ----- 11 files changed, 501 deletions(-) delete mode 100644 account_fiscal_position_vat_check/__init__.py delete mode 100644 account_fiscal_position_vat_check/__openerp__.py delete mode 100644 account_fiscal_position_vat_check/account_fiscal_position_view.xml delete mode 100644 account_fiscal_position_vat_check/account_invoice.py delete mode 100644 account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot delete mode 100644 account_fiscal_position_vat_check/i18n/fr.po delete mode 100644 account_fiscal_position_vat_check/i18n/pt_BR.po delete mode 100644 account_fiscal_position_vat_check/images/fiscal_position_form.jpg delete mode 100644 account_fiscal_position_vat_check/images/vat_check_invoice_validation.jpg delete mode 100644 account_fiscal_position_vat_check/partner.py delete mode 100644 account_fiscal_position_vat_check/partner_view.xml diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py deleted file mode 100644 index 299cab6fa..000000000 --- a/account_fiscal_position_vat_check/__init__.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from . import account_invoice -from . import partner diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py deleted file mode 100644 index dd0506f5b..000000000 --- a/account_fiscal_position_vat_check/__openerp__.py +++ /dev/null @@ -1,56 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - - -{ - 'name': 'Account Fiscal Position VAT Check', - 'version': '0.1', - 'category': 'Accounting & Finance', - 'license': 'AGPL-3', - 'summary': 'Check VAT on invoice validation', - 'description': """ -Check that the Customer has a VAT number on invoice validation -============================================================== - -This module adds an option **Customer must have VAT** on fiscal positions. When a user tries to validate a customer invoice or refund with a fiscal position that have this option, OpenERP will check that the customer has a VAT number. If it doesn't, OpenERP will block the validation of the invoice and display an error message. - -In the European Union (EU), when an EU company sends an invoice to another EU company in another country, it can invoice without VAT (most of the time) but the VAT number of the customer must be displayed on the invoice. - -This module also displays a warning when a user sets a fiscal position with the option **Customer must have VAT** on a customer and this customer doesn't have a VAT number in OpenERP yet. - -Please contact Alexis de Lattre from Akretion for any help or question about this module. - """, - 'author': 'Akretion', - 'website': 'http://www.akretion.com', - 'depends': ['account'], - 'data': [ - 'account_fiscal_position_view.xml', - 'partner_view.xml', - ], - 'images': [ - 'images/fiscal_position_form.jpg', - 'images/vat_check_invoice_validation.jpg', - ], - 'installable': False, - 'active': False, - 'application': True, -} diff --git a/account_fiscal_position_vat_check/account_fiscal_position_view.xml b/account_fiscal_position_vat_check/account_fiscal_position_view.xml deleted file mode 100644 index d29e2b14b..000000000 --- a/account_fiscal_position_vat_check/account_fiscal_position_view.xml +++ /dev/null @@ -1,37 +0,0 @@ - - - - - - - - - - customer.must.have.vat.fiscal_position_form - account.fiscal.position - - - - - - - - - - - customer.must.have.vat.fiscal_position_tree - account.fiscal.position - - - - - - - - - - diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py deleted file mode 100644 index 543dd80a3..000000000 --- a/account_fiscal_position_vat_check/account_invoice.py +++ /dev/null @@ -1,58 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp.osv import orm, fields -from openerp.tools.translate import _ - - -class account_fiscal_position(orm.Model): - _inherit = 'account.fiscal.position' - - _columns = { - 'customer_must_have_vat': fields.boolean( - 'Customer Must Have VAT number', - help="If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund."), - } - - -class account_invoice(orm.Model): - _inherit = 'account.invoice' - - def action_move_create(self, cr, uid, ids, context=None): - '''Check that the customer has VAT set - if required by the fiscal position''' - for invoice in self.browse(cr, uid, ids, context=context): - if invoice.type in ('out_invoice', 'out_refund') \ - and invoice.fiscal_position \ - and invoice.fiscal_position.customer_must_have_vat \ - and not invoice.partner_id.vat: - if invoice.type == 'out_invoice': - type_label = _('a Customer Invoice') - else: - type_label = _('a Customer Refund') - raise orm.except_orm( - _('Missing VAT number:'), - _("You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again.") - % (type_label, invoice.fiscal_position.name, - invoice.partner_id.name)) - return super(account_invoice, self).action_move_create( - cr, uid, ids, context=context) diff --git a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot deleted file mode 100644 index 077278974..000000000 --- a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot +++ /dev/null @@ -1,78 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_fiscal_position_vat_check -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2013-10-19 19:46+0000\n" -"Last-Translator: <>\n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Plural-Forms: \n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice -msgid "Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 -#, python-format -msgid "Missing VAT number:" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 -#, python-format -msgid "You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP." -msgstr "" - diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po deleted file mode 100644 index 032bfb0a1..000000000 --- a/account_fiscal_position_vat_check/i18n/fr.po +++ /dev/null @@ -1,95 +0,0 @@ -# Translation of OpenERP Server. -# This file contains the translation of the following modules: -# * account_fiscal_position_vat_check -# -msgid "" -msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2014-01-03 01:31+0000\n" -"Last-Translator: Alexis de Lattre \n" -"Language-Team: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" -"X-Generator: Launchpad (build 17041)\n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "fiscal_position_change(property_account_position, vat)" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the " -"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " -"try to validate again." -msgstr "" -"Vous essayez de valider %s avec la position fiscale '%s' qui oblige à " -"connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro " -"de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans " -"OpenERP et essayer de valider à nouveau." - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "un avoir client" - -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "Numéro de TVA obligatoire pour le client" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, OpenERP will check that the customer has a VAT number when the " -"user validates a customer invoice/refund." -msgstr "" -"Si activé, OpenERP vérifiera que le client a un numéro de TVA quand " -"l'utilisasteur valide la facture/avoir client." - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "Position fiscale" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice -msgid "Invoice" -msgstr "Facture" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "Partenaire" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "une facture client" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 -#, python-format -msgid "Missing VAT number:" -msgstr "Numéro de TVA manquant :" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 -#, python-format -msgid "" -"You have set the fiscal position '%s' that require the customer to have a " -"VAT number. You should add the VAT number of this customer in OpenERP." -msgstr "" -"Vous avez sélectionné la position fiscale '%s' qui exige que le client ait " -"un numéro de TVA. Vous devez ajouter le numéro de TVA de ce client dans " -"OpenERP." diff --git a/account_fiscal_position_vat_check/i18n/pt_BR.po b/account_fiscal_position_vat_check/i18n/pt_BR.po deleted file mode 100644 index f45d0fbb3..000000000 --- a/account_fiscal_position_vat_check/i18n/pt_BR.po +++ /dev/null @@ -1,87 +0,0 @@ -# Brazilian Portuguese translation for account-financial-tools -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the account-financial-tools package. -# FIRST AUTHOR , 2014. -# -msgid "" -msgstr "" -"Project-Id-Version: account-financial-tools\n" -"Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2014-01-10 11:39+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Brazilian Portuguese \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" -"X-Generator: Launchpad (build 17041)\n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the " -"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " -"try to validate again." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, OpenERP will check that the customer has a VAT number when the " -"user validates a customer invoice/refund." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice -msgid "Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 -#, python-format -msgid "Missing VAT number:" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 -#, python-format -msgid "" -"You have set the fiscal position '%s' that require the customer to have a " -"VAT number. You should add the VAT number of this customer in OpenERP." -msgstr "" diff --git a/account_fiscal_position_vat_check/images/fiscal_position_form.jpg b/account_fiscal_position_vat_check/images/fiscal_position_form.jpg deleted file mode 100644 index 1868f8b4aa98f005a031cb2c43cbf89d63ebeb22..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25175 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 E8`+W|IsgCw diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py deleted file mode 100644 index c3daa2dff..000000000 --- a/account_fiscal_position_vat_check/partner.py +++ /dev/null @@ -1,40 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp.osv import orm -from openerp.tools.translate import _ - - -class res_partner(orm.Model): - _inherit = 'res.partner' - - def fiscal_position_change(self, cr, uid, ids, account_position, vat, customer): - '''Warning is the fiscal position requires a vat number and the partner - doesn't have one yet''' - if account_position and customer and not vat: - fp = self.pool['account.fiscal.position'].read( - cr, uid, account_position, ['customer_must_have_vat', 'name']) - if fp['customer_must_have_vat']: - return {'warning': { - 'title': _('Missing VAT number:'), - 'message': _("You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP.") % fp['name']}} - return True diff --git a/account_fiscal_position_vat_check/partner_view.xml b/account_fiscal_position_vat_check/partner_view.xml deleted file mode 100644 index c7b6abee7..000000000 --- a/account_fiscal_position_vat_check/partner_view.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - customer.must.have.vat.fiscal_position_form - res.partner - - - - fiscal_position_change(property_account_position, vat, customer) - - - - - - - From a9a280d9418a6f8fd9df3686b3e0e02a1797b3a4 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Thu, 10 Jul 2014 15:52:25 +0200 Subject: [PATCH 13/28] [FIX] flake8 PEP8 for module account_fiscal_position_vat_check --- .../__openerp__.py | 64 +++++++++++++++++++ .../account_invoice.py | 64 +++++++++++++++++++ account_fiscal_position_vat_check/partner.py | 47 ++++++++++++++ 3 files changed, 175 insertions(+) create mode 100644 account_fiscal_position_vat_check/__openerp__.py create mode 100644 account_fiscal_position_vat_check/account_invoice.py create mode 100644 account_fiscal_position_vat_check/partner.py diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py new file mode 100644 index 000000000..55e296ee3 --- /dev/null +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -0,0 +1,64 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + + +{ + 'name': 'Account Fiscal Position VAT Check', + 'version': '0.1', + 'category': 'Accounting & Finance', + 'license': 'AGPL-3', + 'summary': 'Check VAT on invoice validation', + 'description': """ +Check that the Customer has a VAT number on invoice validation +============================================================== + +This module adds an option **Customer must have VAT** on fiscal positions. +When a user tries to validate a customer invoice or refund with a fiscal position +that have this option, OpenERP will check that the customer has a VAT number. + +If it doesn't, OpenERP will block the validation of the invoice and display an error message. + +In the European Union (EU), when an EU company sends an invoice to another EU company in another country, + +it can invoice without VAT (most of the time) but the VAT number of the customer must be displayed on the invoice. + +This module also displays a warning when a user sets a fiscal position with the option + **Customer must have VAT** on a customer and this customer doesn't have a VAT number in OpenERP yet. + +Please contact Alexis de Lattre from Akretion + for any help or question about this module. + """, + 'author': 'Akretion', + 'website': 'http://www.akretion.com', + 'depends': ['account'], + 'data': [ + 'account_fiscal_position_view.xml', + 'partner_view.xml', + ], + 'images': [ + 'images/fiscal_position_form.jpg', + 'images/vat_check_invoice_validation.jpg', + ], + 'installable': True, + 'active': False, + 'application': True, +} \ No newline at end of file diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py new file mode 100644 index 000000000..05c3b6c63 --- /dev/null +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -0,0 +1,64 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm, fields +from openerp.tools.translate import _ + + +class account_fiscal_position(orm.Model): + _inherit = 'account.fiscal.position' + + _columns = { + 'customer_must_have_vat': fields.boolean( + 'Customer Must Have VAT number', + help="If enabled, OpenERP will check that the customer has a VAT number " + "when the user validates a customer invoice/refund." + ), + } + + +class account_invoice(orm.Model): + _inherit = 'account.invoice' + + def action_move_create(self, cr, uid, ids, context=None): + '''Check that the customer has VAT set + if required by the fiscal position''' + for invoice in self.browse(cr, uid, ids, context=context): + if invoice.type in ('out_invoice', 'out_refund') \ + and invoice.fiscal_position \ + and invoice.fiscal_position.customer_must_have_vat \ + and not invoice.partner_id.vat: + if invoice.type == 'out_invoice': + type_label = _('a Customer Invoice') + else: + type_label = _('a Customer Refund') + raise orm.except_orm( + _('Missing VAT number:'), + _("You are trying to validate %s with the fiscal position '%s' " + "that require the customer to have a VAT number. " + "But the Customer '%s' doesn't have a VAT number in OpenERP." + "Please add the VAT number of this Customer in OpenERP " + " and try to validate again.") + % (type_label, invoice.fiscal_position.name, + invoice.partner_id.name)) + return super(account_invoice, self).action_move_create( + cr, uid, ids, context=context) \ No newline at end of file diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py new file mode 100644 index 000000000..86d8747b3 --- /dev/null +++ b/account_fiscal_position_vat_check/partner.py @@ -0,0 +1,47 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from openerp.osv import orm +from openerp.tools.translate import _ + + +class res_partner(orm.Model): + _inherit = 'res.partner' + + def fiscal_position_change(self, cr, uid, ids, account_position, vat, customer): + '''Warning is the fiscal position requires a vat number and the partner + doesn't have one yet''' + if account_position and customer and not vat: + fp = self.pool['account.fiscal.position'].read( + cr, uid, account_position, ['customer_must_have_vat', 'name']) + if fp['customer_must_have_vat']: + return { + 'warning': { + 'title': _('Missing VAT number:'), + 'message': _( + "You have set the fiscal position '%s' " + "that require the customer to have a VAT number. " + "You should add the VAT number of this customer in OpenERP." + ) % fp['name'] + } + } + return True \ No newline at end of file From 02ce0057eaa788fc0281926c46c3f5143de2f405 Mon Sep 17 00:00:00 2001 From: Nicolas Bessi Date: Wed, 20 Aug 2014 15:46:23 +0200 Subject: [PATCH 14/28] [FIX] pep8 line length to 80, activate pep8 check in travis, and add noqa on scenario while waiting improvement of quality-tools --- .../__openerp__.py | 20 +++++++++++++------ .../account_invoice.py | 9 ++++++--- account_fiscal_position_vat_check/partner.py | 6 ++++-- 3 files changed, 24 insertions(+), 11 deletions(-) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 55e296ee3..717c6f67f 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -32,17 +32,25 @@ Check that the Customer has a VAT number on invoice validation ============================================================== This module adds an option **Customer must have VAT** on fiscal positions. -When a user tries to validate a customer invoice or refund with a fiscal position +When a user tries to validate a customer invoice or refund +with a fiscal position that have this option, OpenERP will check that the customer has a VAT number. -If it doesn't, OpenERP will block the validation of the invoice and display an error message. +If it doesn't, OpenERP will block the validation of the invoice +and display an error message. -In the European Union (EU), when an EU company sends an invoice to another EU company in another country, +In the European Union (EU), when an EU company sends an invoice to +another EU company in another country, -it can invoice without VAT (most of the time) but the VAT number of the customer must be displayed on the invoice. +it can invoice without VAT (most of the time) but the VAT number of the +customer must be displayed on the invoice. -This module also displays a warning when a user sets a fiscal position with the option - **Customer must have VAT** on a customer and this customer doesn't have a VAT number in OpenERP yet. +This module also displays a warning when a user sets +a fiscal position with the option + +**Customer must have VAT** + + on a customer and this customer doesn't have a VAT number in OpenERP yet. Please contact Alexis de Lattre from Akretion for any help or question about this module. diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py index 05c3b6c63..810c42d35 100644 --- a/account_fiscal_position_vat_check/account_invoice.py +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -30,7 +30,8 @@ class account_fiscal_position(orm.Model): _columns = { 'customer_must_have_vat': fields.boolean( 'Customer Must Have VAT number', - help="If enabled, OpenERP will check that the customer has a VAT number " + help="If enabled, OpenERP will check " + "that the customer has a VAT number " "when the user validates a customer invoice/refund." ), } @@ -53,9 +54,11 @@ class account_invoice(orm.Model): type_label = _('a Customer Refund') raise orm.except_orm( _('Missing VAT number:'), - _("You are trying to validate %s with the fiscal position '%s' " + _("You are trying to validate %s " + "with the fiscal position '%s' " "that require the customer to have a VAT number. " - "But the Customer '%s' doesn't have a VAT number in OpenERP." + "But the Customer '%s' doesn't " + "have a VAT number in OpenERP." "Please add the VAT number of this Customer in OpenERP " " and try to validate again.") % (type_label, invoice.fiscal_position.name, diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py index 86d8747b3..3c206e93b 100644 --- a/account_fiscal_position_vat_check/partner.py +++ b/account_fiscal_position_vat_check/partner.py @@ -27,7 +27,8 @@ from openerp.tools.translate import _ class res_partner(orm.Model): _inherit = 'res.partner' - def fiscal_position_change(self, cr, uid, ids, account_position, vat, customer): + def fiscal_position_change(self, cr, uid, ids, account_position, + vat, customer): '''Warning is the fiscal position requires a vat number and the partner doesn't have one yet''' if account_position and customer and not vat: @@ -40,7 +41,8 @@ class res_partner(orm.Model): 'message': _( "You have set the fiscal position '%s' " "that require the customer to have a VAT number. " - "You should add the VAT number of this customer in OpenERP." + "You should add the VAT number of this customer" + " in OpenERP." ) % fp['name'] } } From 356eb5c9eb57216881565e799307c6aea318db88 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Tue, 7 Oct 2014 22:17:18 +0200 Subject: [PATCH 15/28] Port to v8 and to new API --- account_fiscal_position_vat_check/__init__.py | 24 +++++ .../__openerp__.py | 29 ++---- .../account_fiscal_position_view.xml | 37 +++++++ .../account_invoice.py | 41 ++++---- .../account_fiscal_position_vat_check.pot | 78 ++++++++++++++ account_fiscal_position_vat_check/i18n/fr.po | 95 ++++++++++++++++++ .../i18n/pt_BR.po | 87 ++++++++++++++++ account_fiscal_position_vat_check/partner.py | 29 +++--- .../partner_view.xml | 26 +++++ .../description/fiscal_position_form.jpg | Bin 0 -> 25175 bytes .../vat_check_invoice_validation.jpg | Bin 0 -> 68015 bytes 11 files changed, 390 insertions(+), 56 deletions(-) create mode 100644 account_fiscal_position_vat_check/__init__.py create mode 100644 account_fiscal_position_vat_check/account_fiscal_position_view.xml create mode 100644 account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot create mode 100644 account_fiscal_position_vat_check/i18n/fr.po create mode 100644 account_fiscal_position_vat_check/i18n/pt_BR.po create mode 100644 account_fiscal_position_vat_check/partner_view.xml create mode 100644 account_fiscal_position_vat_check/static/description/fiscal_position_form.jpg create mode 100644 account_fiscal_position_vat_check/static/description/vat_check_invoice_validation.jpg diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py new file mode 100644 index 000000000..871d74b5b --- /dev/null +++ b/account_fiscal_position_vat_check/__init__.py @@ -0,0 +1,24 @@ +# -*- encoding: utf-8 -*- +############################################################################## +# +# Account Fiscal Position VAT Check module for OpenERP +# Copyright (C) 2013-2014 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +############################################################################## + +from . import account_invoice +from . import partner diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 717c6f67f..41be4d437 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -2,7 +2,7 @@ ############################################################################## # # Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) +# Copyright (C) 2013-2014 Akretion (http://www.akretion.com) # @author Alexis de Lattre # # This program is free software: you can redistribute it and/or modify @@ -33,27 +33,23 @@ Check that the Customer has a VAT number on invoice validation This module adds an option **Customer must have VAT** on fiscal positions. When a user tries to validate a customer invoice or refund -with a fiscal position -that have this option, OpenERP will check that the customer has a VAT number. +with a fiscal position that have this option, OpenERP will check that +the customer has a VAT number. If it doesn't, OpenERP will block the validation of the invoice and display an error message. In the European Union (EU), when an EU company sends an invoice to -another EU company in another country, - -it can invoice without VAT (most of the time) but the VAT number of the -customer must be displayed on the invoice. +another EU company in another country, it can invoice without VAT +(most of the time) but the VAT number of the customer must be displayed +on the invoice. This module also displays a warning when a user sets -a fiscal position with the option - -**Customer must have VAT** - - on a customer and this customer doesn't have a VAT number in OpenERP yet. +a fiscal position with the option **Customer must have VAT** on a customer +and this customer doesn't have a VAT number in OpenERP yet. Please contact Alexis de Lattre from Akretion - for any help or question about this module. +for any help or question about this module. """, 'author': 'Akretion', 'website': 'http://www.akretion.com', @@ -62,11 +58,6 @@ Please contact Alexis de Lattre from Akretion 'account_fiscal_position_view.xml', 'partner_view.xml', ], - 'images': [ - 'images/fiscal_position_form.jpg', - 'images/vat_check_invoice_validation.jpg', - ], 'installable': True, - 'active': False, 'application': True, -} \ No newline at end of file +} diff --git a/account_fiscal_position_vat_check/account_fiscal_position_view.xml b/account_fiscal_position_vat_check/account_fiscal_position_view.xml new file mode 100644 index 000000000..292070ba7 --- /dev/null +++ b/account_fiscal_position_vat_check/account_fiscal_position_view.xml @@ -0,0 +1,37 @@ + + + + + + + + + + customer.must.have.vat.fiscal_position_form + account.fiscal.position + + + + + + + + + + + customer.must.have.vat.fiscal_position_tree + account.fiscal.position + + + + + + + + + + diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py index 810c42d35..0097af6de 100644 --- a/account_fiscal_position_vat_check/account_invoice.py +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -2,7 +2,7 @@ ############################################################################## # # Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) +# Copyright (C) 2013-2014 Akretion (http://www.akretion.com) # @author Alexis de Lattre # # This program is free software: you can redistribute it and/or modify @@ -20,39 +20,37 @@ # ############################################################################## -from openerp.osv import orm, fields -from openerp.tools.translate import _ +from openerp import models, fields, api, _ +from openerp.exceptions import except_orm -class account_fiscal_position(orm.Model): +class account_fiscal_position(models.Model): _inherit = 'account.fiscal.position' - _columns = { - 'customer_must_have_vat': fields.boolean( - 'Customer Must Have VAT number', - help="If enabled, OpenERP will check " - "that the customer has a VAT number " - "when the user validates a customer invoice/refund." - ), - } + customer_must_have_vat = fields.Boolean( + string='Customer Must Have VAT number', + help="If enabled, OpenERP will check that the customer has a VAT " + "number when the user validates a customer invoice/refund.") -class account_invoice(orm.Model): +class account_invoice(models.Model): _inherit = 'account.invoice' - def action_move_create(self, cr, uid, ids, context=None): + @api.multi + def action_move_create(self): '''Check that the customer has VAT set if required by the fiscal position''' - for invoice in self.browse(cr, uid, ids, context=context): - if invoice.type in ('out_invoice', 'out_refund') \ - and invoice.fiscal_position \ - and invoice.fiscal_position.customer_must_have_vat \ - and not invoice.partner_id.vat: + for invoice in self: + if ( + invoice.type in ('out_invoice', 'out_refund') + and invoice.fiscal_position + and invoice.fiscal_position.customer_must_have_vat + and not invoice.partner_id.vat): if invoice.type == 'out_invoice': type_label = _('a Customer Invoice') else: type_label = _('a Customer Refund') - raise orm.except_orm( + raise except_orm( _('Missing VAT number:'), _("You are trying to validate %s " "with the fiscal position '%s' " @@ -63,5 +61,4 @@ class account_invoice(orm.Model): " and try to validate again.") % (type_label, invoice.fiscal_position.name, invoice.partner_id.name)) - return super(account_invoice, self).action_move_create( - cr, uid, ids, context=context) \ No newline at end of file + return super(account_invoice, self).action_move_create() diff --git a/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot new file mode 100644 index 000000000..077278974 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/account_fiscal_position_vat_check.pot @@ -0,0 +1,78 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2013-10-19 19:46+0000\n" +"Last-Translator: <>\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#, python-format +msgid "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP. Please add the VAT number of this Customer in OpenERP and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "If enabled, OpenERP will check that the customer has a VAT number when the user validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "You have set the fiscal position '%s' that require the customer to have a VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" + diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po new file mode 100644 index 000000000..032bfb0a1 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/fr.po @@ -0,0 +1,95 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2014-01-03 01:31+0000\n" +"Last-Translator: Alexis de Lattre \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" +"X-Generator: Launchpad (build 17041)\n" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "fiscal_position_change(property_account_position, vat)" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the " +"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " +"try to validate again." +msgstr "" +"Vous essayez de valider %s avec la position fiscale '%s' qui oblige à " +"connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro " +"de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans " +"OpenERP et essayer de valider à nouveau." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 +#, python-format +msgid "a Customer Refund" +msgstr "un avoir client" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "Numéro de TVA obligatoire pour le client" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, OpenERP will check that the customer has a VAT number when the " +"user validates a customer invoice/refund." +msgstr "" +"Si activé, OpenERP vérifiera que le client a un numéro de TVA quand " +"l'utilisasteur valide la facture/avoir client." + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Position fiscale" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Facture" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partenaire" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 +#, python-format +msgid "a Customer Invoice" +msgstr "une facture client" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#, python-format +msgid "Missing VAT number:" +msgstr "Numéro de TVA manquant :" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" +"Vous avez sélectionné la position fiscale '%s' qui exige que le client ait " +"un numéro de TVA. Vous devez ajouter le numéro de TVA de ce client dans " +"OpenERP." diff --git a/account_fiscal_position_vat_check/i18n/pt_BR.po b/account_fiscal_position_vat_check/i18n/pt_BR.po new file mode 100644 index 000000000..f45d0fbb3 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/pt_BR.po @@ -0,0 +1,87 @@ +# Brazilian Portuguese translation for account-financial-tools +# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 +# This file is distributed under the same license as the account-financial-tools package. +# FIRST AUTHOR , 2014. +# +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2014-01-10 11:39+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Brazilian Portuguese \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" +"X-Generator: Launchpad (build 17041)\n" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the " +"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, OpenERP will check that the customer has a VAT number when the " +"user validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py index 3c206e93b..4cc6ed60c 100644 --- a/account_fiscal_position_vat_check/partner.py +++ b/account_fiscal_position_vat_check/partner.py @@ -2,7 +2,7 @@ ############################################################################## # # Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013 Akretion (http://www.akretion.com) +# Copyright (C) 2013-2014 Akretion (http://www.akretion.com) # @author Alexis de Lattre # # This program is free software: you can redistribute it and/or modify @@ -20,21 +20,21 @@ # ############################################################################## -from openerp.osv import orm -from openerp.tools.translate import _ +from openerp import models, api, _ -class res_partner(orm.Model): +class res_partner(models.Model): _inherit = 'res.partner' - def fiscal_position_change(self, cr, uid, ids, account_position, - vat, customer): - '''Warning is the fiscal position requires a vat number and the partner - doesn't have one yet''' - if account_position and customer and not vat: - fp = self.pool['account.fiscal.position'].read( - cr, uid, account_position, ['customer_must_have_vat', 'name']) - if fp['customer_must_have_vat']: + @api.multi + def fiscal_position_change( + self, account_position_id, vat, customer): + '''Warning if the fiscal position requires a VAT number and the + partner doesn't have one yet''' + if account_position_id and customer and not vat: + fp = self.env['account.fiscal.position'].browse( + account_position_id) + if fp.customer_must_have_vat: return { 'warning': { 'title': _('Missing VAT number:'), @@ -42,8 +42,7 @@ class res_partner(orm.Model): "You have set the fiscal position '%s' " "that require the customer to have a VAT number. " "You should add the VAT number of this customer" - " in OpenERP." - ) % fp['name'] + " in OpenERP.") % fp.name } } - return True \ No newline at end of file + return True diff --git a/account_fiscal_position_vat_check/partner_view.xml b/account_fiscal_position_vat_check/partner_view.xml new file mode 100644 index 000000000..650540c05 --- /dev/null +++ b/account_fiscal_position_vat_check/partner_view.xml @@ -0,0 +1,26 @@ + + + + + + + + + + customer.must.have.vat.fiscal_position_form + res.partner + + + + fiscal_position_change(property_account_position, vat, customer) + + + + + + + diff --git a/account_fiscal_position_vat_check/static/description/fiscal_position_form.jpg b/account_fiscal_position_vat_check/static/description/fiscal_position_form.jpg new file mode 100644 index 0000000000000000000000000000000000000000..1868f8b4aa98f005a031cb2c43cbf89d63ebeb22 GIT binary patch literal 25175 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 E8`+W|IsgCw literal 0 HcmV?d00001 From 3d3325d8ebf56910bb91274c1516d498aa7eb6d7 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Wed, 8 Oct 2014 21:02:35 +0200 Subject: [PATCH 16/28] OpenERP -> Odoo Remove application=True in __openerp__.py --- account_fiscal_position_vat_check/__init__.py | 2 +- account_fiscal_position_vat_check/__openerp__.py | 3 +-- account_fiscal_position_vat_check/account_invoice.py | 4 ++-- account_fiscal_position_vat_check/partner.py | 7 +++---- 4 files changed, 7 insertions(+), 9 deletions(-) diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py index 871d74b5b..e665809a4 100644 --- a/account_fiscal_position_vat_check/__init__.py +++ b/account_fiscal_position_vat_check/__init__.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- ############################################################################## # -# Account Fiscal Position VAT Check module for OpenERP +# Account Fiscal Position VAT Check module for Odoo # Copyright (C) 2013-2014 Akretion (http://www.akretion.com) # @author Alexis de Lattre # diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 41be4d437..8aa02d4ef 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- ############################################################################## # -# Account Fiscal Position VAT Check module for OpenERP +# Account Fiscal Position VAT Check module for Odoo # Copyright (C) 2013-2014 Akretion (http://www.akretion.com) # @author Alexis de Lattre # @@ -59,5 +59,4 @@ for any help or question about this module. 'partner_view.xml', ], 'installable': True, - 'application': True, } diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py index 0097af6de..95a0e031b 100644 --- a/account_fiscal_position_vat_check/account_invoice.py +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -29,7 +29,7 @@ class account_fiscal_position(models.Model): customer_must_have_vat = fields.Boolean( string='Customer Must Have VAT number', - help="If enabled, OpenERP will check that the customer has a VAT " + help="If enabled, Odoo will check that the customer has a VAT " "number when the user validates a customer invoice/refund.") @@ -57,7 +57,7 @@ class account_invoice(models.Model): "that require the customer to have a VAT number. " "But the Customer '%s' doesn't " "have a VAT number in OpenERP." - "Please add the VAT number of this Customer in OpenERP " + "Please add the VAT number of this Customer in Odoo " " and try to validate again.") % (type_label, invoice.fiscal_position.name, invoice.partner_id.name)) diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py index 4cc6ed60c..656ca127d 100644 --- a/account_fiscal_position_vat_check/partner.py +++ b/account_fiscal_position_vat_check/partner.py @@ -1,7 +1,7 @@ # -*- encoding: utf-8 -*- ############################################################################## # -# Account Fiscal Position VAT Check module for OpenERP +# Account Fiscal Position VAT Check module for Odoo # Copyright (C) 2013-2014 Akretion (http://www.akretion.com) # @author Alexis de Lattre # @@ -40,9 +40,8 @@ class res_partner(models.Model): 'title': _('Missing VAT number:'), 'message': _( "You have set the fiscal position '%s' " - "that require the customer to have a VAT number. " - "You should add the VAT number of this customer" - " in OpenERP.") % fp.name + "that require the customer to have a VAT number, " + "but the VAT number is missing.") % fp.name } } return True From bd963f2a182dcdfddc6a9853527ce379241a4c3c Mon Sep 17 00:00:00 2001 From: Rudolf Schnapka Date: Tue, 6 Jan 2015 17:39:37 +0100 Subject: [PATCH 17/28] german translations upto invoice currency --- account_fiscal_position_vat_check/i18n/de.po | 94 ++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 account_fiscal_position_vat_check/i18n/de.po diff --git a/account_fiscal_position_vat_check/i18n/de.po b/account_fiscal_position_vat_check/i18n/de.po new file mode 100644 index 000000000..2df338f5e --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/de.po @@ -0,0 +1,94 @@ +# Translation of OpenERP Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +msgid "" +msgstr "" +"Project-Id-Version: OpenERP Server 7.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2013-10-19 19:46+0000\n" +"PO-Revision-Date: 2015-01-06 17:35+0100\n" +"Last-Translator: Rudolf Schnapka \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"X-Generator: Poedit 1.5.4\n" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:0 +msgid "fiscal_position_change(property_account_position, vat)" +msgstr "fiscal_position_change(property_account_position, vat)" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the " +"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " +"try to validate again." +msgstr "" +"Sie versuchen eine %s in Bilanzposition '%s' zu bestätigen, die erfordert, " +"dass der Kunde eine UStID-Nummer besitzt. Dieser Kunde '%s' hat jedoch keine " +"UStID.Nummer im System. Ergänzen Sie diese Steueridentnummer für den Kunden " +"und versuchen Sie es dann erneut." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 +#, python-format +msgid "a Customer Refund" +msgstr "Eine Kundengutschrift" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "Kunde muss eine UStID-Nummer haben" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, OpenERP will check that the customer has a VAT number when the " +"user validates a customer invoice/refund." +msgstr "" +"Wenn gesetzt, stellt OpenERP/ODOO sicher, dass der Kunde eine UStID-Nummer " +"eingetragen hat wenn der Anwender eune Rechnung/Gutschrift bestätigt." + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Bilanzposition" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Rechnung" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 +#, python-format +msgid "a Customer Invoice" +msgstr "Eine Kundenrechnung" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 +#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#, python-format +msgid "Missing VAT number:" +msgstr "Fehlende UStID-Nummer:" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number. You should add the VAT number of this customer in OpenERP." +msgstr "" +"Sie haben festgelegt, dass für die Bilanzposition '%s' der Kunde eine UStID-" +"Nummer benötigt. Sie müssen zum Kunden eine UStID einpflegen." From 716018ba41eaaf1816fc0916bd5f45650e026674 Mon Sep 17 00:00:00 2001 From: Guewen Baconnier Date: Tue, 17 Feb 2015 13:00:43 +0100 Subject: [PATCH 18/28] Fix W503 errors --- account_fiscal_position_vat_check/account_invoice.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py index 95a0e031b..62a17a7d2 100644 --- a/account_fiscal_position_vat_check/account_invoice.py +++ b/account_fiscal_position_vat_check/account_invoice.py @@ -42,10 +42,10 @@ class account_invoice(models.Model): if required by the fiscal position''' for invoice in self: if ( - invoice.type in ('out_invoice', 'out_refund') - and invoice.fiscal_position - and invoice.fiscal_position.customer_must_have_vat - and not invoice.partner_id.vat): + invoice.type in ('out_invoice', 'out_refund') and + invoice.fiscal_position and + invoice.fiscal_position.customer_must_have_vat and + not invoice.partner_id.vat): if invoice.type == 'out_invoice': type_label = _('a Customer Invoice') else: From 11e3d7f478918efd107f511a528928c56692747d Mon Sep 17 00:00:00 2001 From: Alexandre Fayolle Date: Mon, 2 Mar 2015 17:22:41 +0100 Subject: [PATCH 19/28] Add OCA as author of OCA addons In order to get visibility on https://www.odoo.com/apps the OCA board has decided to add the OCA as author of all the addons maintained as part of the association. --- account_fiscal_position_vat_check/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 8aa02d4ef..23438405b 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -51,7 +51,7 @@ and this customer doesn't have a VAT number in OpenERP yet. Please contact Alexis de Lattre from Akretion for any help or question about this module. """, - 'author': 'Akretion', + 'author': "Akretion,Odoo Community Association (OCA)", 'website': 'http://www.akretion.com', 'depends': ['account'], 'data': [ From f70c41263127345724574547d50fde012a18fd1e Mon Sep 17 00:00:00 2001 From: Yannick Vaucher Date: Tue, 18 Aug 2015 10:32:25 +0200 Subject: [PATCH 20/28] Add missing default oca icons --- .../static/description/icon.png | Bin 0 -> 9455 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 account_fiscal_position_vat_check/static/description/icon.png diff --git a/account_fiscal_position_vat_check/static/description/icon.png b/account_fiscal_position_vat_check/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 From 1ef5a7d9cc3527e37e27b45cfee5fd8453f63ce1 Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Sat, 12 Sep 2015 17:39:28 -0400 Subject: [PATCH 21/28] OCA Transbot updated translations from Transifex --- account_fiscal_position_vat_check/i18n/ar.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/bs.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/ca.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/cs.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/de.po | 115 ++++++++--------- account_fiscal_position_vat_check/i18n/en.po | 87 +++++++++++++ .../i18n/en_GB.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/es.po | 87 +++++++++++++ .../i18n/es_CR.po | 87 +++++++++++++ .../i18n/es_EC.po | 87 +++++++++++++ .../i18n/es_MX.po | 87 +++++++++++++ .../i18n/es_VE.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/et.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/fr.po | 119 +++++++++--------- account_fiscal_position_vat_check/i18n/hr.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/hu.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/id.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/it.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/ja.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/lt.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/mk.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/mn.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/nb.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/nl.po | 87 +++++++++++++ .../i18n/nl_BE.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/pl.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/pt.po | 87 +++++++++++++ .../i18n/pt_BR.po | 116 ++++++++--------- account_fiscal_position_vat_check/i18n/ro.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/ru.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/sl.po | 88 +++++++++++++ .../i18n/sr@latin.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/sv.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/th.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/tr.po | 87 +++++++++++++ account_fiscal_position_vat_check/i18n/vi.po | 87 +++++++++++++ .../i18n/zh_CN.po | 87 +++++++++++++ .../i18n/zh_TW.po | 87 +++++++++++++ 38 files changed, 3214 insertions(+), 182 deletions(-) create mode 100644 account_fiscal_position_vat_check/i18n/ar.po create mode 100644 account_fiscal_position_vat_check/i18n/bs.po create mode 100644 account_fiscal_position_vat_check/i18n/ca.po create mode 100644 account_fiscal_position_vat_check/i18n/cs.po create mode 100644 account_fiscal_position_vat_check/i18n/en.po create mode 100644 account_fiscal_position_vat_check/i18n/en_GB.po create mode 100644 account_fiscal_position_vat_check/i18n/es.po create mode 100644 account_fiscal_position_vat_check/i18n/es_CR.po create mode 100644 account_fiscal_position_vat_check/i18n/es_EC.po create mode 100644 account_fiscal_position_vat_check/i18n/es_MX.po create mode 100644 account_fiscal_position_vat_check/i18n/es_VE.po create mode 100644 account_fiscal_position_vat_check/i18n/et.po create mode 100644 account_fiscal_position_vat_check/i18n/hr.po create mode 100644 account_fiscal_position_vat_check/i18n/hu.po create mode 100644 account_fiscal_position_vat_check/i18n/id.po create mode 100644 account_fiscal_position_vat_check/i18n/it.po create mode 100644 account_fiscal_position_vat_check/i18n/ja.po create mode 100644 account_fiscal_position_vat_check/i18n/lt.po create mode 100644 account_fiscal_position_vat_check/i18n/mk.po create mode 100644 account_fiscal_position_vat_check/i18n/mn.po create mode 100644 account_fiscal_position_vat_check/i18n/nb.po create mode 100644 account_fiscal_position_vat_check/i18n/nl.po create mode 100644 account_fiscal_position_vat_check/i18n/nl_BE.po create mode 100644 account_fiscal_position_vat_check/i18n/pl.po create mode 100644 account_fiscal_position_vat_check/i18n/pt.po create mode 100644 account_fiscal_position_vat_check/i18n/ro.po create mode 100644 account_fiscal_position_vat_check/i18n/ru.po create mode 100644 account_fiscal_position_vat_check/i18n/sl.po create mode 100644 account_fiscal_position_vat_check/i18n/sr@latin.po create mode 100644 account_fiscal_position_vat_check/i18n/sv.po create mode 100644 account_fiscal_position_vat_check/i18n/th.po create mode 100644 account_fiscal_position_vat_check/i18n/tr.po create mode 100644 account_fiscal_position_vat_check/i18n/vi.po create mode 100644 account_fiscal_position_vat_check/i18n/zh_CN.po create mode 100644 account_fiscal_position_vat_check/i18n/zh_TW.po diff --git a/account_fiscal_position_vat_check/i18n/ar.po b/account_fiscal_position_vat_check/i18n/ar.po new file mode 100644 index 000000000..38f179b06 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/ar.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Arabic (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/ar/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ar\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "فاتورة" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "الشريك" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/bs.po b/account_fiscal_position_vat_check/i18n/bs.po new file mode 100644 index 000000000..0e438e8fb --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/bs.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Bosnian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/bs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: bs\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Faktura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/ca.po b/account_fiscal_position_vat_check/i18n/ca.po new file mode 100644 index 000000000..aa0a7d299 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/ca.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Catalan (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/cs.po b/account_fiscal_position_vat_check/i18n/cs.po new file mode 100644 index 000000000..26f133dc0 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/cs.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Czech (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: cs\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Faktura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Společník" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/de.po b/account_fiscal_position_vat_check/i18n/de.po index 2df338f5e..cd031a909 100644 --- a/account_fiscal_position_vat_check/i18n/de.po +++ b/account_fiscal_position_vat_check/i18n/de.po @@ -1,94 +1,87 @@ -# Translation of OpenERP Server. +# Translation of Odoo Server. # This file contains the translation of the following modules: -# * account_fiscal_position_vat_check -# +# * account_fiscal_position_vat_check +# +# Translators: msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" +"Project-Id-Version: account-financial-tools (8.0)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2015-01-06 17:35+0100\n" -"Last-Translator: Rudolf Schnapka \n" -"Language-Team: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 16:14+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: German (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" +"Content-Transfer-Encoding: \n" "Language: de\n" -"X-Generator: Poedit 1.5.4\n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "fiscal_position_change(property_account_position, vat)" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the " -"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " -"try to validate again." -msgstr "" -"Sie versuchen eine %s in Bilanzposition '%s' zu bestätigen, die erfordert, " -"dass der Kunde eine UStID-Nummer besitzt. Dieser Kunde '%s' hat jedoch keine " -"UStID.Nummer im System. Ergänzen Sie diese Steueridentnummer für den Kunden " -"und versuchen Sie es dann erneut." - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "Eine Kundengutschrift" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #. module: account_fiscal_position_vat_check #: field:account.fiscal.position,customer_must_have_vat:0 msgid "Customer Must Have VAT number" msgstr "Kunde muss eine UStID-Nummer haben" -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, OpenERP will check that the customer has a VAT number when the " -"user validates a customer invoice/refund." -msgstr "" -"Wenn gesetzt, stellt OpenERP/ODOO sicher, dass der Kunde eine UStID-Nummer " -"eingetragen hat wenn der Anwender eune Rechnung/Gutschrift bestätigt." - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position msgid "Fiscal Position" msgstr "Bilanzposition" +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" msgstr "Rechnung" #. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "Partner" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "Eine Kundenrechnung" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 #, python-format msgid "Missing VAT number:" msgstr "Fehlende UStID-Nummer:" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " -"VAT number. You should add the VAT number of this customer in OpenERP." +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "Eine Kundenrechnung" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "Eine Kundengutschrift" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" msgstr "" -"Sie haben festgelegt, dass für die Bilanzposition '%s' der Kunde eine UStID-" -"Nummer benötigt. Sie müssen zum Kunden eine UStID einpflegen." diff --git a/account_fiscal_position_vat_check/i18n/en.po b/account_fiscal_position_vat_check/i18n/en.po new file mode 100644 index 000000000..19391b34c --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/en.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: OCA Transbot \n" +"Language-Team: English (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/en/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: en\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "Customer Must Have VAT number" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Fiscal Position" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "If enabled, Odoo will check that the customer has a VAT number when the user validates a customer invoice/refund." + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Invoice" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "Missing VAT number:" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP.Please add the VAT number of this Customer in Odoo and try to validate again." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "You have set the fiscal position '%s' that require the customer to have a VAT number, but the VAT number is missing." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "a Customer Invoice" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "a Customer Refund" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "fiscal_position_change(property_account_position, vat, customer)" diff --git a/account_fiscal_position_vat_check/i18n/en_GB.po b/account_fiscal_position_vat_check/i18n/en_GB.po new file mode 100644 index 000000000..9bee45aeb --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/en_GB.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: English (United Kingdom) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/en_GB/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: en_GB\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Invoice" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/es.po b/account_fiscal_position_vat_check/i18n/es.po new file mode 100644 index 000000000..0d2f626c4 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/es.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/es_CR.po b/account_fiscal_position_vat_check/i18n/es_CR.po new file mode 100644 index 000000000..a9a5f0a7f --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/es_CR.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (Costa Rica) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/es_CR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_CR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/es_EC.po b/account_fiscal_position_vat_check/i18n/es_EC.po new file mode 100644 index 000000000..3781d7563 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/es_EC.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (Ecuador) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/es_EC/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_EC\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/es_MX.po b/account_fiscal_position_vat_check/i18n/es_MX.po new file mode 100644 index 000000000..2a9685aba --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/es_MX.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (Mexico) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/es_MX/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_MX\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/es_VE.po b/account_fiscal_position_vat_check/i18n/es_VE.po new file mode 100644 index 000000000..e59fe3da3 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/es_VE.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Spanish (Venezuela) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/es_VE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: es_VE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Empresa" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/et.po b/account_fiscal_position_vat_check/i18n/et.po new file mode 100644 index 000000000..a85e9564d --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/et.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Estonian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/et/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: et\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Arve" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po index 032bfb0a1..92d967266 100644 --- a/account_fiscal_position_vat_check/i18n/fr.po +++ b/account_fiscal_position_vat_check/i18n/fr.po @@ -1,95 +1,88 @@ -# Translation of OpenERP Server. +# Translation of Odoo Server. # This file contains the translation of the following modules: -# * account_fiscal_position_vat_check -# +# * account_fiscal_position_vat_check +# +# Translators: +# Christophe kryskool , 2015 msgid "" msgstr "" -"Project-Id-Version: OpenERP Server 7.0\n" +"Project-Id-Version: account-financial-tools (8.0)\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2014-01-03 01:31+0000\n" -"Last-Translator: Alexis de Lattre \n" -"Language-Team: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-08-03 16:21+0000\n" +"Last-Translator: Christophe kryskool \n" +"Language-Team: French (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" -"X-Generator: Launchpad (build 17041)\n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "fiscal_position_change(property_account_position, vat)" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the " -"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " -"try to validate again." -msgstr "" -"Vous essayez de valider %s avec la position fiscale '%s' qui oblige à " -"connaître le numéro de TVA du client. Mais le client '%s' n'a pas de numéro " -"de TVA dans OpenERP. Veuillez ajouter le numéro de TVA de ce client dans " -"OpenERP et essayer de valider à nouveau." - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "un avoir client" +"Content-Transfer-Encoding: \n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: account_fiscal_position_vat_check #: field:account.fiscal.position,customer_must_have_vat:0 msgid "Customer Must Have VAT number" msgstr "Numéro de TVA obligatoire pour le client" -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, OpenERP will check that the customer has a VAT number when the " -"user validates a customer invoice/refund." -msgstr "" -"Si activé, OpenERP vérifiera que le client a un numéro de TVA quand " -"l'utilisasteur valide la facture/avoir client." - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position msgid "Fiscal Position" msgstr "Position fiscale" +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "Si activée, Odoo vérifiera que le client à un numéro de TVA quand l'utilisateur validera les factures/avoirs clients." + #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" msgstr "Facture" #. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "Partenaire" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "une facture client" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 #, python-format msgid "Missing VAT number:" msgstr "Numéro de TVA manquant :" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partenaire" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " -"VAT number. You should add the VAT number of this customer in OpenERP." +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "une facture client" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "un avoir client" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" msgstr "" -"Vous avez sélectionné la position fiscale '%s' qui exige que le client ait " -"un numéro de TVA. Vous devez ajouter le numéro de TVA de ce client dans " -"OpenERP." diff --git a/account_fiscal_position_vat_check/i18n/hr.po b/account_fiscal_position_vat_check/i18n/hr.po new file mode 100644 index 000000000..e226db792 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/hr.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Croatian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/hr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Račun" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/hu.po b/account_fiscal_position_vat_check/i18n/hu.po new file mode 100644 index 000000000..3f19b713d --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/hu.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Hungarian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/hu/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hu\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Számla" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/id.po b/account_fiscal_position_vat_check/i18n/id.po new file mode 100644 index 000000000..5cc0a17ea --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/id.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Indonesian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Faktur" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/it.po b/account_fiscal_position_vat_check/i18n/it.po new file mode 100644 index 000000000..3dea40a1c --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/it.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Italian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Fattura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/ja.po b/account_fiscal_position_vat_check/i18n/ja.po new file mode 100644 index 000000000..63e5bd281 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/ja.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Japanese (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/ja/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ja\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "請求書" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "パートナ" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/lt.po b/account_fiscal_position_vat_check/i18n/lt.po new file mode 100644 index 000000000..49e11831a --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/lt.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Lithuanian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/lt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: lt\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Sąskaita-faktūra" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partneris" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/mk.po b/account_fiscal_position_vat_check/i18n/mk.po new file mode 100644 index 000000000..f6032e4ae --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/mk.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Macedonian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/mk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: mk\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Фактура" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Партнер" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/mn.po b/account_fiscal_position_vat_check/i18n/mn.po new file mode 100644 index 000000000..3c8ccdba1 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/mn.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Mongolian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/mn/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: mn\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Нэхэмжлэл" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Харилцагч" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/nb.po b/account_fiscal_position_vat_check/i18n/nb.po new file mode 100644 index 000000000..54fe8e60c --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/nb.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Norwegian Bokmål (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/nb/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nb\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Faktura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/nl.po b/account_fiscal_position_vat_check/i18n/nl.po new file mode 100644 index 000000000..aaf4727e8 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/nl.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Dutch (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factuur" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Relatie" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/nl_BE.po b/account_fiscal_position_vat_check/i18n/nl_BE.po new file mode 100644 index 000000000..73d1535c1 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/nl_BE.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Dutch (Belgium) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/nl_BE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl_BE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factuur" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Relatie" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/pl.po b/account_fiscal_position_vat_check/i18n/pl.po new file mode 100644 index 000000000..1f101ce12 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/pl.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Polish (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pl\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Faktura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/pt.po b/account_fiscal_position_vat_check/i18n/pt.po new file mode 100644 index 000000000..2101d0026 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/pt.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Portuguese (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Fatura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Parceiro" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/pt_BR.po b/account_fiscal_position_vat_check/i18n/pt_BR.po index f45d0fbb3..418c7f372 100644 --- a/account_fiscal_position_vat_check/i18n/pt_BR.po +++ b/account_fiscal_position_vat_check/i18n/pt_BR.po @@ -1,87 +1,87 @@ -# Brazilian Portuguese translation for account-financial-tools -# Copyright (c) 2014 Rosetta Contributors and Canonical Ltd 2014 -# This file is distributed under the same license as the account-financial-tools package. -# FIRST AUTHOR , 2014. -# +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: msgid "" msgstr "" -"Project-Id-Version: account-financial-tools\n" -"Report-Msgid-Bugs-To: FULL NAME \n" -"POT-Creation-Date: 2013-10-19 19:46+0000\n" -"PO-Revision-Date: 2014-01-10 11:39+0000\n" -"Last-Translator: FULL NAME \n" -"Language-Team: Brazilian Portuguese \n" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2014-06-12 06:31+0000\n" -"X-Generator: Launchpad (build 17041)\n" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:0 -msgid "fiscal_position_change(property_account_position, vat)" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#, python-format -msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the " -"customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP. Please add the VAT number of this Customer in OpenERP and " -"try to validate again." -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:51 -#, python-format -msgid "a Customer Refund" -msgstr "" +"Content-Transfer-Encoding: \n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" #. module: account_fiscal_position_vat_check #: field:account.fiscal.position,customer_must_have_vat:0 msgid "Customer Must Have VAT number" msgstr "" -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, OpenERP will check that the customer has a VAT number when the " -"user validates a customer invoice/refund." -msgstr "" - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position msgid "Fiscal Position" msgstr "" +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" -msgstr "" +msgstr "Fatura" #. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:49 -#, python-format -msgid "a Customer Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:53 -#: code:addons/account_fiscal_position_vat_check/partner.py:38 +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 #, python-format msgid "Missing VAT number:" msgstr "" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:39 +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Parceiro" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " -"VAT number. You should add the VAT number of this customer in OpenERP." +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/ro.po b/account_fiscal_position_vat_check/i18n/ro.po new file mode 100644 index 000000000..0d68e1e39 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/ro.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Romanian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/ro/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ro\n" +"Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partener" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/ru.po b/account_fiscal_position_vat_check/i18n/ru.po new file mode 100644 index 000000000..52514f36a --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/ru.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Russian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/ru/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: ru\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Счет" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Контрагент" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/sl.po b/account_fiscal_position_vat_check/i18n/sl.po new file mode 100644 index 000000000..c20c441e2 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/sl.po @@ -0,0 +1,88 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# Matjaž Mozetič , 2015 +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-07-04 11:49+0000\n" +"Last-Translator: Matjaž Mozetič \n" +"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/sl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sl\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "Kupec mora imeti ID za DDV" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "Fiskalni položaj" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "Če je označeno, bo Odoo preveril, ali ima kupec ID za DDV ob overjanju računov/dobropisov kupcev." + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Račun" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "Manjkajoči ID za DDV:" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "Poskušate overiti %s s fiskalnim položajem '%s', ki zahteva, da ima kupec ID za DDV, a kupec '%s' nima ID za DDV v OpenERP. Kupcu dodajte ID za DDV in ponovno poskusite." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "Nastavili ste fiskalni položaj '%s', ki zahteva, da kupec ima ID za DDV, a ta manjka." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "Račun kupcu" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "Dobropis kupcu" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "fiscal_position_change(property_account_position, vat, customer)" diff --git a/account_fiscal_position_vat_check/i18n/sr@latin.po b/account_fiscal_position_vat_check/i18n/sr@latin.po new file mode 100644 index 000000000..be966acdb --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/sr@latin.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Serbian (Latin) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/sr@latin/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sr@latin\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/sv.po b/account_fiscal_position_vat_check/i18n/sv.po new file mode 100644 index 000000000..89a0fb95b --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/sv.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Swedish (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/sv/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sv\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Faktura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Företag" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/th.po b/account_fiscal_position_vat_check/i18n/th.po new file mode 100644 index 000000000..9ab83cc6b --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/th.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Thai (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/th/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: th\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "ใบแจ้งหนี้" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "พาร์ทเนอร์" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/tr.po b/account_fiscal_position_vat_check/i18n/tr.po new file mode 100644 index 000000000..9567ba6d2 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/tr.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Turkish (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/tr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Fatura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Cari" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/vi.po b/account_fiscal_position_vat_check/i18n/vi.po new file mode 100644 index 000000000..af7332262 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/vi.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Vietnamese (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/vi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: vi\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Đối tác" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/zh_CN.po b/account_fiscal_position_vat_check/i18n/zh_CN.po new file mode 100644 index 000000000..a85023b92 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/zh_CN.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Chinese (China) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "发票" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "业务伙伴" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/zh_TW.po b/account_fiscal_position_vat_check/i18n/zh_TW.po new file mode 100644 index 000000000..ba5b5fe00 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/zh_TW.po @@ -0,0 +1,87 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +msgid "" +msgstr "" +"Project-Id-Version: account-financial-tools (8.0)\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2015-07-01 13:25+0000\n" +"PO-Revision-Date: 2015-06-03 15:57+0000\n" +"Last-Translator: <>\n" +"Language-Team: Chinese (Taiwan) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/zh_TW/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: zh_TW\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: account_fiscal_position_vat_check +#: field:account.fiscal.position,customer_must_have_vat:0 +msgid "Customer Must Have VAT number" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position +msgid "Fiscal Position" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: help:account.fiscal.position,customer_must_have_vat:0 +msgid "" +"If enabled, Odoo will check that the customer has a VAT number when the user" +" validates a customer invoice/refund." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "發票" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 +#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "夥伴" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#, python-format +msgid "" +"You are trying to validate %s with the fiscal position '%s' that require the" +" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " +"number in OpenERP.Please add the VAT number of this Customer in Odoo and " +"try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 +#, python-format +msgid "a Customer Invoice" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 +#, python-format +msgid "a Customer Refund" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form +msgid "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" From cd5c7b7f0de41983c6edb3d107c1cb0f07911c4e Mon Sep 17 00:00:00 2001 From: Yannick Vaucher Date: Wed, 7 Oct 2015 14:36:11 +0200 Subject: [PATCH 22/28] [FIX] account_fiscal_position_vat_check - Add missing dependency on base_vat vat is added on partner view in base_vat --- account_fiscal_position_vat_check/__openerp__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index 23438405b..c364db850 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -23,7 +23,7 @@ { 'name': 'Account Fiscal Position VAT Check', - 'version': '0.1', + 'version': '8.0.0.1.1', 'category': 'Accounting & Finance', 'license': 'AGPL-3', 'summary': 'Check VAT on invoice validation', @@ -53,7 +53,7 @@ for any help or question about this module. """, 'author': "Akretion,Odoo Community Association (OCA)", 'website': 'http://www.akretion.com', - 'depends': ['account'], + 'depends': ['account', 'base_vat'], 'data': [ 'account_fiscal_position_view.xml', 'partner_view.xml', From e4386eac5e39360aca5b14c5596f161338af72d1 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Wed, 14 Oct 2015 02:52:55 +0200 Subject: [PATCH 23/28] [MIG] Make modules uninstallable --- account_fiscal_position_vat_check/__openerp__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__openerp__.py index c364db850..58099f813 100644 --- a/account_fiscal_position_vat_check/__openerp__.py +++ b/account_fiscal_position_vat_check/__openerp__.py @@ -58,5 +58,5 @@ for any help or question about this module. 'account_fiscal_position_view.xml', 'partner_view.xml', ], - 'installable': True, + 'installable': False, } From 3859ed1c0a15faa7c7c1f95a60405ef0756422c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Bidoul=20=28ACSONE=29?= Date: Mon, 15 Aug 2016 18:54:03 +0200 Subject: [PATCH 24/28] [FIX] remove en.po that was erroneously created by transbot --- account_fiscal_position_vat_check/i18n/en.po | 87 -------------------- 1 file changed, 87 deletions(-) delete mode 100644 account_fiscal_position_vat_check/i18n/en.po diff --git a/account_fiscal_position_vat_check/i18n/en.po b/account_fiscal_position_vat_check/i18n/en.po deleted file mode 100644 index 19391b34c..000000000 --- a/account_fiscal_position_vat_check/i18n/en.po +++ /dev/null @@ -1,87 +0,0 @@ -# Translation of Odoo Server. -# This file contains the translation of the following modules: -# * account_fiscal_position_vat_check -# -# Translators: -msgid "" -msgstr "" -"Project-Id-Version: account-financial-tools (8.0)\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-07-01 13:25+0000\n" -"PO-Revision-Date: 2015-06-03 15:57+0000\n" -"Last-Translator: OCA Transbot \n" -"Language-Team: English (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/en/)\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: \n" -"Language: en\n" -"Plural-Forms: nplurals=2; plural=(n != 1);\n" - -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "Customer Must Have VAT number" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "Fiscal Position" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, Odoo will check that the customer has a VAT number when the user" -" validates a customer invoice/refund." -msgstr "If enabled, Odoo will check that the customer has a VAT number when the user validates a customer invoice/refund." - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice -msgid "Invoice" -msgstr "Invoice" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#: code:addons/account_fiscal_position_vat_check/partner.py:40 -#, python-format -msgid "Missing VAT number:" -msgstr "Missing VAT number:" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner -msgid "Partner" -msgstr "Partner" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 -#, python-format -msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the" -" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP.Please add the VAT number of this Customer in Odoo and " -"try to validate again." -msgstr "You are trying to validate %s with the fiscal position '%s' that require the customer to have a VAT number. But the Customer '%s' doesn't have a VAT number in OpenERP.Please add the VAT number of this Customer in Odoo and try to validate again." - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:41 -#, python-format -msgid "" -"You have set the fiscal position '%s' that require the customer to have a " -"VAT number, but the VAT number is missing." -msgstr "You have set the fiscal position '%s' that require the customer to have a VAT number, but the VAT number is missing." - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 -#, python-format -msgid "a Customer Invoice" -msgstr "a Customer Invoice" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 -#, python-format -msgid "a Customer Refund" -msgstr "a Customer Refund" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form -msgid "fiscal_position_change(property_account_position, vat, customer)" -msgstr "fiscal_position_change(property_account_position, vat, customer)" From 4288e2279b1534059681737171f626003a3f5257 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 6 Oct 2016 14:46:03 +0200 Subject: [PATCH 25/28] [MIG] Rename manifest files --- .../{__openerp__.py => __manifest__.py} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename account_fiscal_position_vat_check/{__openerp__.py => __manifest__.py} (100%) diff --git a/account_fiscal_position_vat_check/__openerp__.py b/account_fiscal_position_vat_check/__manifest__.py similarity index 100% rename from account_fiscal_position_vat_check/__openerp__.py rename to account_fiscal_position_vat_check/__manifest__.py From 43d5825ab728f016120fb7d453927ebcdd326d41 Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Tue, 11 Oct 2016 12:09:26 +0200 Subject: [PATCH 26/28] 10.0 Port account_fiscal_position_vat_check (#408) [MIG] account_fiscal_position_vat_check: to v10 --- account_fiscal_position_vat_check/README.rst | 65 +++++++++++++++++++ account_fiscal_position_vat_check/__init__.py | 25 +------ .../__manifest__.py | 56 ++-------------- .../account_invoice.py | 64 ------------------ .../models/__init__.py | 4 ++ .../models/account_invoice.py | 29 +++++++++ .../models/partner.py | 25 +++++++ account_fiscal_position_vat_check/partner.py | 47 -------------- .../partner_view.xml | 26 -------- .../account_fiscal_position.xml} | 20 +++--- 10 files changed, 140 insertions(+), 221 deletions(-) create mode 100644 account_fiscal_position_vat_check/README.rst delete mode 100644 account_fiscal_position_vat_check/account_invoice.py create mode 100644 account_fiscal_position_vat_check/models/__init__.py create mode 100644 account_fiscal_position_vat_check/models/account_invoice.py create mode 100644 account_fiscal_position_vat_check/models/partner.py delete mode 100644 account_fiscal_position_vat_check/partner.py delete mode 100644 account_fiscal_position_vat_check/partner_view.xml rename account_fiscal_position_vat_check/{account_fiscal_position_view.xml => views/account_fiscal_position.xml} (67%) diff --git a/account_fiscal_position_vat_check/README.rst b/account_fiscal_position_vat_check/README.rst new file mode 100644 index 000000000..612e7907d --- /dev/null +++ b/account_fiscal_position_vat_check/README.rst @@ -0,0 +1,65 @@ +.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 + +================================= +Account Fiscal Position VAT Check +================================= + +With this module, when a user tries to validate a customer invoice or refund +with a fiscal position that requires VAT, Odoo block the validation of the invoice +if the customer doesn't have a VAT number in Odoo. + +In the European Union (EU), when an EU company sends an invoice to +another EU company in another country, it can invoice without VAT +(most of the time) but the VAT number of the customer must be displayed +on the invoice. + +Configuration +============= + +To configure this module, go to *Accounting > Configuration > Accounting +> Fiscal Positions* and enable the option **VAT Required** on the relevant +fiscal positions. + +Usage +===== + +On the customer form view, Odoo will display a warning when a user sets +a fiscal position that has the option **VAT Required** on a customer +that doesn't have a VAT number yet. + +.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas + :alt: Try me on Runbot + :target: https://runbot.odoo-community.org/runbot/92/10.0 + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues +`_. In case of trouble, please +check there if your issue has already been reported. If you spotted it first, +help us smashing it by providing a detailed and welcomed feedback. + +Credits +======= + +Contributors +------------ + +* Alexis de Lattre + +Maintainer +---------- + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +This module is maintained by the OCA. + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +To contribute to this module, please visit https://odoo-community.org. diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py index e665809a4..cde864bae 100644 --- a/account_fiscal_position_vat_check/__init__.py +++ b/account_fiscal_position_vat_check/__init__.py @@ -1,24 +1,3 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for Odoo -# Copyright (C) 2013-2014 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## +# -*- coding: utf-8 -*- -from . import account_invoice -from . import partner +from . import models diff --git a/account_fiscal_position_vat_check/__manifest__.py b/account_fiscal_position_vat_check/__manifest__.py index 58099f813..1e0234efe 100644 --- a/account_fiscal_position_vat_check/__manifest__.py +++ b/account_fiscal_position_vat_check/__manifest__.py @@ -1,62 +1,18 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for Odoo -# Copyright (C) 2013-2014 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - +# -*- coding: utf-8 -*- +# © 2013-2016 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { 'name': 'Account Fiscal Position VAT Check', - 'version': '8.0.0.1.1', + 'version': '10.0.1.0.0', 'category': 'Accounting & Finance', 'license': 'AGPL-3', 'summary': 'Check VAT on invoice validation', - 'description': """ -Check that the Customer has a VAT number on invoice validation -============================================================== - -This module adds an option **Customer must have VAT** on fiscal positions. -When a user tries to validate a customer invoice or refund -with a fiscal position that have this option, OpenERP will check that -the customer has a VAT number. - -If it doesn't, OpenERP will block the validation of the invoice -and display an error message. - -In the European Union (EU), when an EU company sends an invoice to -another EU company in another country, it can invoice without VAT -(most of the time) but the VAT number of the customer must be displayed -on the invoice. - -This module also displays a warning when a user sets -a fiscal position with the option **Customer must have VAT** on a customer -and this customer doesn't have a VAT number in OpenERP yet. - -Please contact Alexis de Lattre from Akretion -for any help or question about this module. - """, 'author': "Akretion,Odoo Community Association (OCA)", 'website': 'http://www.akretion.com', 'depends': ['account', 'base_vat'], 'data': [ - 'account_fiscal_position_view.xml', - 'partner_view.xml', + 'views/account_fiscal_position.xml', ], - 'installable': False, + 'installable': True, } diff --git a/account_fiscal_position_vat_check/account_invoice.py b/account_fiscal_position_vat_check/account_invoice.py deleted file mode 100644 index 62a17a7d2..000000000 --- a/account_fiscal_position_vat_check/account_invoice.py +++ /dev/null @@ -1,64 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for OpenERP -# Copyright (C) 2013-2014 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp import models, fields, api, _ -from openerp.exceptions import except_orm - - -class account_fiscal_position(models.Model): - _inherit = 'account.fiscal.position' - - customer_must_have_vat = fields.Boolean( - string='Customer Must Have VAT number', - help="If enabled, Odoo will check that the customer has a VAT " - "number when the user validates a customer invoice/refund.") - - -class account_invoice(models.Model): - _inherit = 'account.invoice' - - @api.multi - def action_move_create(self): - '''Check that the customer has VAT set - if required by the fiscal position''' - for invoice in self: - if ( - invoice.type in ('out_invoice', 'out_refund') and - invoice.fiscal_position and - invoice.fiscal_position.customer_must_have_vat and - not invoice.partner_id.vat): - if invoice.type == 'out_invoice': - type_label = _('a Customer Invoice') - else: - type_label = _('a Customer Refund') - raise except_orm( - _('Missing VAT number:'), - _("You are trying to validate %s " - "with the fiscal position '%s' " - "that require the customer to have a VAT number. " - "But the Customer '%s' doesn't " - "have a VAT number in OpenERP." - "Please add the VAT number of this Customer in Odoo " - " and try to validate again.") - % (type_label, invoice.fiscal_position.name, - invoice.partner_id.name)) - return super(account_invoice, self).action_move_create() diff --git a/account_fiscal_position_vat_check/models/__init__.py b/account_fiscal_position_vat_check/models/__init__.py new file mode 100644 index 000000000..d8b42d60d --- /dev/null +++ b/account_fiscal_position_vat_check/models/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- + +from . import account_invoice +from . import partner diff --git a/account_fiscal_position_vat_check/models/account_invoice.py b/account_fiscal_position_vat_check/models/account_invoice.py new file mode 100644 index 000000000..ba616a59f --- /dev/null +++ b/account_fiscal_position_vat_check/models/account_invoice.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +# © 2013-2016 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, api, _ +from odoo.exceptions import UserError + + +class AccountInvoice(models.Model): + _inherit = 'account.invoice' + + @api.multi + def action_move_create(self): + """Check that the customer has VAT set if required by the + fiscal position""" + for invoice in self: + if ( + invoice.type in ('out_invoice', 'out_refund') and + invoice.fiscal_position_id.vat_required and + not invoice.partner_id.vat): + raise UserError(_( + "You are trying to validate a customer invoice/refund " + "with the fiscal position '%s' that require the customer " + "to have a VAT number. But the Customer '%s' doesn't have " + "a VAT number in Odoo. Please add the VAT number of this " + "Customer in Odoo and try to validate again.") % ( + invoice.fiscal_position_id.name, + invoice.partner_id.name_get()[0][1])) + return super(AccountInvoice, self).action_move_create() diff --git a/account_fiscal_position_vat_check/models/partner.py b/account_fiscal_position_vat_check/models/partner.py new file mode 100644 index 000000000..a02f68669 --- /dev/null +++ b/account_fiscal_position_vat_check/models/partner.py @@ -0,0 +1,25 @@ +# -*- coding: utf-8 -*- +# © 2013-2016 Akretion (Alexis de Lattre ) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, api, _ + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + @api.onchange('property_account_position_id') + def fiscal_position_change(self): + """Warning if the fiscal position requires a VAT number and the + partner doesn't have one yet""" + fp = self.property_account_position_id + if fp.vat_required and self.customer and not self.vat: + return { + 'warning': { + 'title': _('Missing VAT number:'), + 'message': _( + "You have set the fiscal position '%s' " + "that require the customer to have a VAT number, " + "but the VAT number is missing.") % fp.name + } + } diff --git a/account_fiscal_position_vat_check/partner.py b/account_fiscal_position_vat_check/partner.py deleted file mode 100644 index 656ca127d..000000000 --- a/account_fiscal_position_vat_check/partner.py +++ /dev/null @@ -1,47 +0,0 @@ -# -*- encoding: utf-8 -*- -############################################################################## -# -# Account Fiscal Position VAT Check module for Odoo -# Copyright (C) 2013-2014 Akretion (http://www.akretion.com) -# @author Alexis de Lattre -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as -# published by the Free Software Foundation, either version 3 of the -# License, or (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . -# -############################################################################## - -from openerp import models, api, _ - - -class res_partner(models.Model): - _inherit = 'res.partner' - - @api.multi - def fiscal_position_change( - self, account_position_id, vat, customer): - '''Warning if the fiscal position requires a VAT number and the - partner doesn't have one yet''' - if account_position_id and customer and not vat: - fp = self.env['account.fiscal.position'].browse( - account_position_id) - if fp.customer_must_have_vat: - return { - 'warning': { - 'title': _('Missing VAT number:'), - 'message': _( - "You have set the fiscal position '%s' " - "that require the customer to have a VAT number, " - "but the VAT number is missing.") % fp.name - } - } - return True diff --git a/account_fiscal_position_vat_check/partner_view.xml b/account_fiscal_position_vat_check/partner_view.xml deleted file mode 100644 index 650540c05..000000000 --- a/account_fiscal_position_vat_check/partner_view.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - customer.must.have.vat.fiscal_position_form - res.partner - - - - fiscal_position_change(property_account_position, vat, customer) - - - - - - - diff --git a/account_fiscal_position_vat_check/account_fiscal_position_view.xml b/account_fiscal_position_vat_check/views/account_fiscal_position.xml similarity index 67% rename from account_fiscal_position_vat_check/account_fiscal_position_view.xml rename to account_fiscal_position_vat_check/views/account_fiscal_position.xml index 292070ba7..d5e793752 100644 --- a/account_fiscal_position_vat_check/account_fiscal_position_view.xml +++ b/account_fiscal_position_vat_check/views/account_fiscal_position.xml @@ -1,13 +1,10 @@ - - - + @@ -15,8 +12,9 @@ account.fiscal.position - - + + + {} @@ -28,10 +26,10 @@ - + - - + + From 140557fa965e9e8241d0fd9145ece532aeff996c Mon Sep 17 00:00:00 2001 From: OCA Transbot Date: Thu, 24 Nov 2016 18:54:11 -0500 Subject: [PATCH 27/28] OCA Transbot updated translations from Transifex --- account_fiscal_position_vat_check/i18n/bg.po | 53 ++++++++++++++ account_fiscal_position_vat_check/i18n/de.po | 69 ++++++------------- .../i18n/el_GR.po | 53 ++++++++++++++ account_fiscal_position_vat_check/i18n/es.po | 69 ++++++------------- account_fiscal_position_vat_check/i18n/fi.po | 53 ++++++++++++++ account_fiscal_position_vat_check/i18n/fr.po | 61 ++++------------ .../i18n/fr_CA.po | 53 ++++++++++++++ .../i18n/fr_CH.po | 53 ++++++++++++++ account_fiscal_position_vat_check/i18n/gl.po | 53 ++++++++++++++ account_fiscal_position_vat_check/i18n/hr.po | 69 ++++++------------- .../i18n/hr_HR.po | 58 ++++++++++++++++ .../i18n/nb_NO.po | 53 ++++++++++++++ .../i18n/nl_NL.po | 53 ++++++++++++++ .../i18n/pt_BR.po | 69 ++++++------------- .../i18n/pt_PT.po | 53 ++++++++++++++ .../i18n/sk_SK.po | 53 ++++++++++++++ account_fiscal_position_vat_check/i18n/sl.po | 67 +++++------------- .../i18n/tr_TR.po | 53 ++++++++++++++ 18 files changed, 755 insertions(+), 290 deletions(-) create mode 100644 account_fiscal_position_vat_check/i18n/bg.po create mode 100644 account_fiscal_position_vat_check/i18n/el_GR.po create mode 100644 account_fiscal_position_vat_check/i18n/fi.po create mode 100644 account_fiscal_position_vat_check/i18n/fr_CA.po create mode 100644 account_fiscal_position_vat_check/i18n/fr_CH.po create mode 100644 account_fiscal_position_vat_check/i18n/gl.po create mode 100644 account_fiscal_position_vat_check/i18n/hr_HR.po create mode 100644 account_fiscal_position_vat_check/i18n/nb_NO.po create mode 100644 account_fiscal_position_vat_check/i18n/nl_NL.po create mode 100644 account_fiscal_position_vat_check/i18n/pt_PT.po create mode 100644 account_fiscal_position_vat_check/i18n/sk_SK.po create mode 100644 account_fiscal_position_vat_check/i18n/tr_TR.po diff --git a/account_fiscal_position_vat_check/i18n/bg.po b/account_fiscal_position_vat_check/i18n/bg.po new file mode 100644 index 000000000..d745e419b --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/bg.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Bulgarian (https://www.transifex.com/oca/teams/23907/bg/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: bg\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Фактура" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/de.po b/account_fiscal_position_vat_check/i18n/de.po index cd031a909..c1405029b 100644 --- a/account_fiscal_position_vat_check/i18n/de.po +++ b/account_fiscal_position_vat_check/i18n/de.po @@ -3,48 +3,32 @@ # * account_fiscal_position_vat_check # # Translators: +# Niki Waibel , 2016 +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: account-financial-tools (8.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-07-01 13:25+0000\n" -"PO-Revision-Date: 2015-06-03 16:14+0000\n" -"Last-Translator: OCA Transbot \n" -"Language-Team: German (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/de/)\n" +"POT-Creation-Date: 2016-11-01 18:55+0000\n" +"PO-Revision-Date: 2016-11-01 18:55+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: German (https://www.transifex.com/oca/teams/23907/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Language: de\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "Kunde muss eine UStID-Nummer haben" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "Bilanzposition" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, Odoo will check that the customer has a VAT number when the user" -" validates a customer invoice/refund." -msgstr "" - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" msgstr "Rechnung" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 #, python-format msgid "Missing VAT number:" -msgstr "Fehlende UStID-Nummer:" +msgstr "Fehlende USt-Nummer:" #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner @@ -52,36 +36,25 @@ msgid "Partner" msgstr "Partner" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 #, python-format msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the" -" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP.Please add the VAT number of this Customer in Odoo and " -"try to validate again." +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." msgstr "" +"Sie versuchen, eine Debitorenrechnung/-erstattung mit der Fiskalposition " +"'%s' zu validieren für die der Kunde eine USt-Nummer benötigt. Kunde '%s' " +"hat aber keine USt-Nummer in Odoo. Bitte geben Sie die USt-Nummer des Kunden" +" in Odoo an und starten Sie die Prüfung erneut." #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " "VAT number, but the VAT number is missing." msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 -#, python-format -msgid "a Customer Invoice" -msgstr "Eine Kundenrechnung" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 -#, python-format -msgid "a Customer Refund" -msgstr "Eine Kundengutschrift" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form -msgid "fiscal_position_change(property_account_position, vat, customer)" -msgstr "" +"Sie haben die Fiskalposition '%s' so festgelegt, dass der Kunde eine USt-" +"Nummer haben muss. Diese fehlt jedoch." diff --git a/account_fiscal_position_vat_check/i18n/el_GR.po b/account_fiscal_position_vat_check/i18n/el_GR.po new file mode 100644 index 000000000..ab7aed99d --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/el_GR.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Greek (Greece) (https://www.transifex.com/oca/teams/23907/el_GR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: el_GR\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Τιμολόγιο" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/es.po b/account_fiscal_position_vat_check/i18n/es.po index 0d2f626c4..d770ce990 100644 --- a/account_fiscal_position_vat_check/i18n/es.po +++ b/account_fiscal_position_vat_check/i18n/es.po @@ -3,48 +3,32 @@ # * account_fiscal_position_vat_check # # Translators: +# OCA Transbot , 2016 +# José Antonio Cuello , 2016 msgid "" msgstr "" -"Project-Id-Version: account-financial-tools (8.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-07-01 13:25+0000\n" -"PO-Revision-Date: 2015-06-03 15:57+0000\n" -"Last-Translator: <>\n" -"Language-Team: Spanish (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/es/)\n" +"POT-Creation-Date: 2016-11-01 18:55+0000\n" +"PO-Revision-Date: 2016-11-01 18:55+0000\n" +"Last-Translator: José Antonio Cuello , 2016\n" +"Language-Team: Spanish (https://www.transifex.com/oca/teams/23907/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Language: es\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, Odoo will check that the customer has a VAT number when the user" -" validates a customer invoice/refund." -msgstr "" - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" msgstr "Factura" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 #, python-format msgid "Missing VAT number:" -msgstr "" +msgstr "NIF no presente" #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner @@ -52,36 +36,25 @@ msgid "Partner" msgstr "Empresa" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 #, python-format msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the" -" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP.Please add the VAT number of this Customer in Odoo and " -"try to validate again." +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." msgstr "" +"Está tratando de validar una factura/factura rectificativa con la posición " +"fiscal '%s' que requiere que el cliente tenga un NIF. Pero el cliente '%s' " +"no tiene un NIF en sus datos. Añada por favor el NIF de este cliente e " +"intente validarla otra vez." #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " "VAT number, but the VAT number is missing." msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 -#, python-format -msgid "a Customer Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 -#, python-format -msgid "a Customer Refund" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form -msgid "fiscal_position_change(property_account_position, vat, customer)" -msgstr "" +"Ha establecido la posición fiscal '%s' que requiere que el cliente tenga un " +"NIF, pero el NIF no está establecido." diff --git a/account_fiscal_position_vat_check/i18n/fi.po b/account_fiscal_position_vat_check/i18n/fi.po new file mode 100644 index 000000000..8dfc901fa --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/fi.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Finnish (https://www.transifex.com/oca/teams/23907/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Lasku" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/fr.po b/account_fiscal_position_vat_check/i18n/fr.po index 92d967266..cc9abd581 100644 --- a/account_fiscal_position_vat_check/i18n/fr.po +++ b/account_fiscal_position_vat_check/i18n/fr.po @@ -3,46 +3,28 @@ # * account_fiscal_position_vat_check # # Translators: -# Christophe kryskool , 2015 +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: account-financial-tools (8.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-07-01 13:25+0000\n" -"PO-Revision-Date: 2015-08-03 16:21+0000\n" -"Last-Translator: Christophe kryskool \n" -"Language-Team: French (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/fr/)\n" +"POT-Creation-Date: 2016-11-01 18:55+0000\n" +"PO-Revision-Date: 2016-11-01 18:55+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: French (https://www.transifex.com/oca/teams/23907/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "Numéro de TVA obligatoire pour le client" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "Position fiscale" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, Odoo will check that the customer has a VAT number when the user" -" validates a customer invoice/refund." -msgstr "Si activée, Odoo vérifiera que le client à un numéro de TVA quand l'utilisateur validera les factures/avoirs clients." - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" msgstr "Facture" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 #, python-format msgid "Missing VAT number:" msgstr "Numéro de TVA manquant :" @@ -53,36 +35,19 @@ msgid "Partner" msgstr "Partenaire" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 #, python-format msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the" -" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP.Please add the VAT number of this Customer in Odoo and " -"try to validate again." +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." msgstr "" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " "VAT number, but the VAT number is missing." msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 -#, python-format -msgid "a Customer Invoice" -msgstr "une facture client" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 -#, python-format -msgid "a Customer Refund" -msgstr "un avoir client" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form -msgid "fiscal_position_change(property_account_position, vat, customer)" -msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/fr_CA.po b/account_fiscal_position_vat_check/i18n/fr_CA.po new file mode 100644 index 000000000..4bb8773c2 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/fr_CA.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (Canada) (https://www.transifex.com/oca/teams/23907/fr_CA/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr_CA\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Facture" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/fr_CH.po b/account_fiscal_position_vat_check/i18n/fr_CH.po new file mode 100644 index 000000000..d83b82853 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/fr_CH.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: French (Switzerland) (https://www.transifex.com/oca/teams/23907/fr_CH/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: fr_CH\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Facture" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/gl.po b/account_fiscal_position_vat_check/i18n/gl.po new file mode 100644 index 000000000..5e5eb4b92 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/gl.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Galician (https://www.transifex.com/oca/teams/23907/gl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: gl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/hr.po b/account_fiscal_position_vat_check/i18n/hr.po index e226db792..fca5a46a7 100644 --- a/account_fiscal_position_vat_check/i18n/hr.po +++ b/account_fiscal_position_vat_check/i18n/hr.po @@ -3,48 +3,32 @@ # * account_fiscal_position_vat_check # # Translators: +# Bole , 2017 +# OCA Transbot , 2017 msgid "" msgstr "" -"Project-Id-Version: account-financial-tools (8.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-07-01 13:25+0000\n" -"PO-Revision-Date: 2015-06-03 15:57+0000\n" -"Last-Translator: <>\n" -"Language-Team: Croatian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/hr/)\n" +"POT-Creation-Date: 2018-02-23 01:41+0000\n" +"PO-Revision-Date: 2018-02-23 01:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Croatian (https://www.transifex.com/oca/teams/23907/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Language: hr\n" "Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, Odoo will check that the customer has a VAT number when the user" -" validates a customer invoice/refund." -msgstr "" - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" msgstr "Račun" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 #, python-format msgid "Missing VAT number:" -msgstr "" +msgstr "Nedostaje porezni broj:" #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner @@ -52,36 +36,25 @@ msgid "Partner" msgstr "Partner" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 #, python-format msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the" -" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP.Please add the VAT number of this Customer in Odoo and " -"try to validate again." +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." msgstr "" +"Pokušavate potvrditi račun ili odobrenje sa fiskalnom pozicijom '%s' koja " +"zahtijeva da partner ima unešen porezni broj, ali partner '%s' nema porezni " +"broj upisan u odoo. Molimo dodajte porezni broj ovog partnera i pokušajte " +"ponoviti potvrđivanje." #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " "VAT number, but the VAT number is missing." msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 -#, python-format -msgid "a Customer Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 -#, python-format -msgid "a Customer Refund" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form -msgid "fiscal_position_change(property_account_position, vat, customer)" -msgstr "" +"Postavili ste fiskalnu poziciju '%s' koja zahtijeva da partner ima porezni " +"broj, ali porezni broj nedostaje." diff --git a/account_fiscal_position_vat_check/i18n/hr_HR.po b/account_fiscal_position_vat_check/i18n/hr_HR.po new file mode 100644 index 000000000..a33a9aed0 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/hr_HR.po @@ -0,0 +1,58 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# Bole , 2016 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-11-24 23:57+0000\n" +"PO-Revision-Date: 2016-11-24 23:57+0000\n" +"Last-Translator: Bole , 2016\n" +"Language-Team: Croatian (Croatia) (https://www.transifex.com/oca/teams/23907/hr_HR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: hr_HR\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Račun" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "Nedostaje porezni broj:" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Partner" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" +"Pokušavate potvrditi račun ili povrat kupca sa fiskalnom pozivijom '%s' koja" +" zahtijva da partner ima unešen porezni broj. Kupac %s nema unešen porezni " +"broj u sustavu, molimo uinestie ga i pokušajte potvrditi račun ponovo." + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" +"Postavili ste fiskalnu poziciju '%s' koja zahtijeva porezni broj, međutim on" +" nedostaje.javascript:;" diff --git a/account_fiscal_position_vat_check/i18n/nb_NO.po b/account_fiscal_position_vat_check/i18n/nb_NO.po new file mode 100644 index 000000000..db30a7b2c --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/nb_NO.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Norwegian Bokmål (Norway) (https://www.transifex.com/oca/teams/23907/nb_NO/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nb_NO\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Innmelding" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/nl_NL.po b/account_fiscal_position_vat_check/i18n/nl_NL.po new file mode 100644 index 000000000..2b89b55d5 --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/nl_NL.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# Frank Schellenberg , 2018 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-01-25 11:46+0000\n" +"PO-Revision-Date: 2018-01-25 11:46+0000\n" +"Last-Translator: Frank Schellenberg , 2018\n" +"Language-Team: Dutch (Netherlands) (https://www.transifex.com/oca/teams/23907/nl_NL/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: nl_NL\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Factuur" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "Relatie" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/pt_BR.po b/account_fiscal_position_vat_check/i18n/pt_BR.po index 418c7f372..7fa6465c6 100644 --- a/account_fiscal_position_vat_check/i18n/pt_BR.po +++ b/account_fiscal_position_vat_check/i18n/pt_BR.po @@ -3,48 +3,32 @@ # * account_fiscal_position_vat_check # # Translators: +# Alessandro Martini , 2017 +# OCA Transbot , 2017 msgid "" msgstr "" -"Project-Id-Version: account-financial-tools (8.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-07-01 13:25+0000\n" -"PO-Revision-Date: 2015-06-03 15:57+0000\n" -"Last-Translator: <>\n" -"Language-Team: Portuguese (Brazil) (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/pt_BR/)\n" +"POT-Creation-Date: 2017-11-28 23:23+0000\n" +"PO-Revision-Date: 2017-11-28 23:23+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Brazil) (https://www.transifex.com/oca/teams/23907/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, Odoo will check that the customer has a VAT number when the user" -" validates a customer invoice/refund." -msgstr "" - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" msgstr "Fatura" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 #, python-format msgid "Missing VAT number:" -msgstr "" +msgstr "Número do Valor de Imposto Atribuído faltando:" #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner @@ -52,36 +36,25 @@ msgid "Partner" msgstr "Parceiro" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 #, python-format msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the" -" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP.Please add the VAT number of this Customer in Odoo and " -"try to validate again." +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." msgstr "" +"Você está tentando validar uma fatura/reembolso de cliente com a posição " +"fiscal '%s' que requer que o cliente possua um número de Valor de Imposto " +"Atribuido. Mas o Cliente '%s' não possui este número no Odoo. Por favor " +"adicione o número de VIA deste Cliente no Odoo e tente validar novamente." #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " "VAT number, but the VAT number is missing." msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 -#, python-format -msgid "a Customer Invoice" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 -#, python-format -msgid "a Customer Refund" -msgstr "" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form -msgid "fiscal_position_change(property_account_position, vat, customer)" -msgstr "" +"Você selecionou a posição fiscal '%s' que requer que o cliente possua um " +"número de Valor de Imposto Atribuído, mas o número de VIA está faltando." diff --git a/account_fiscal_position_vat_check/i18n/pt_PT.po b/account_fiscal_position_vat_check/i18n/pt_PT.po new file mode 100644 index 000000000..7520aa76c --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/pt_PT.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Portuguese (Portugal) (https://www.transifex.com/oca/teams/23907/pt_PT/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: pt_PT\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Fatura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/sk_SK.po b/account_fiscal_position_vat_check/i18n/sk_SK.po new file mode 100644 index 000000000..ea2b7394a --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/sk_SK.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Slovak (Slovakia) (https://www.transifex.com/oca/teams/23907/sk_SK/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: sk_SK\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Faktúra" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" diff --git a/account_fiscal_position_vat_check/i18n/sl.po b/account_fiscal_position_vat_check/i18n/sl.po index c20c441e2..427767641 100644 --- a/account_fiscal_position_vat_check/i18n/sl.po +++ b/account_fiscal_position_vat_check/i18n/sl.po @@ -3,46 +3,28 @@ # * account_fiscal_position_vat_check # # Translators: -# Matjaž Mozetič , 2015 +# OCA Transbot , 2016 msgid "" msgstr "" -"Project-Id-Version: account-financial-tools (8.0)\n" +"Project-Id-Version: Odoo Server 10.0\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2015-07-01 13:25+0000\n" -"PO-Revision-Date: 2015-07-04 11:49+0000\n" -"Last-Translator: Matjaž Mozetič \n" -"Language-Team: Slovenian (http://www.transifex.com/oca/OCA-account-financial-tools-8-0/language/sl/)\n" +"POT-Creation-Date: 2016-11-01 18:55+0000\n" +"PO-Revision-Date: 2016-11-01 18:55+0000\n" +"Last-Translator: OCA Transbot , 2016\n" +"Language-Team: Slovenian (https://www.transifex.com/oca/teams/23907/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Language: sl\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" -#. module: account_fiscal_position_vat_check -#: field:account.fiscal.position,customer_must_have_vat:0 -msgid "Customer Must Have VAT number" -msgstr "Kupec mora imeti ID za DDV" - -#. module: account_fiscal_position_vat_check -#: model:ir.model,name:account_fiscal_position_vat_check.model_account_fiscal_position -msgid "Fiscal Position" -msgstr "Fiskalni položaj" - -#. module: account_fiscal_position_vat_check -#: help:account.fiscal.position,customer_must_have_vat:0 -msgid "" -"If enabled, Odoo will check that the customer has a VAT number when the user" -" validates a customer invoice/refund." -msgstr "Če je označeno, bo Odoo preveril, ali ima kupec ID za DDV ob overjanju računov/dobropisov kupcev." - #. module: account_fiscal_position_vat_check #: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice msgid "Invoice" msgstr "Račun" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:54 -#: code:addons/account_fiscal_position_vat_check/partner.py:40 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 #, python-format msgid "Missing VAT number:" msgstr "Manjkajoči ID za DDV:" @@ -53,36 +35,21 @@ msgid "Partner" msgstr "Partner" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:55 +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 #, python-format msgid "" -"You are trying to validate %s with the fiscal position '%s' that require the" -" customer to have a VAT number. But the Customer '%s' doesn't have a VAT " -"number in OpenERP.Please add the VAT number of this Customer in Odoo and " -"try to validate again." -msgstr "Poskušate overiti %s s fiskalnim položajem '%s', ki zahteva, da ima kupec ID za DDV, a kupec '%s' nima ID za DDV v OpenERP. Kupcu dodajte ID za DDV in ponovno poskusite." +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" #. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/partner.py:41 +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 #, python-format msgid "" "You have set the fiscal position '%s' that require the customer to have a " "VAT number, but the VAT number is missing." -msgstr "Nastavili ste fiskalni položaj '%s', ki zahteva, da kupec ima ID za DDV, a ta manjka." - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:50 -#, python-format -msgid "a Customer Invoice" -msgstr "Račun kupcu" - -#. module: account_fiscal_position_vat_check -#: code:addons/account_fiscal_position_vat_check/account_invoice.py:52 -#, python-format -msgid "a Customer Refund" -msgstr "Dobropis kupcu" - -#. module: account_fiscal_position_vat_check -#: view:res.partner:account_fiscal_position_vat_check.view_partner_property_form -msgid "fiscal_position_change(property_account_position, vat, customer)" -msgstr "fiscal_position_change(property_account_position, vat, customer)" +msgstr "" +"Nastavili ste fiskalni položaj '%s', ki zahteva, da kupec ima ID za DDV, a " +"ta manjka." diff --git a/account_fiscal_position_vat_check/i18n/tr_TR.po b/account_fiscal_position_vat_check/i18n/tr_TR.po new file mode 100644 index 000000000..81911b35e --- /dev/null +++ b/account_fiscal_position_vat_check/i18n/tr_TR.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_fiscal_position_vat_check +# +# Translators: +# OCA Transbot , 2017 +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 10.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2017-12-22 03:41+0000\n" +"PO-Revision-Date: 2017-12-22 03:41+0000\n" +"Last-Translator: OCA Transbot , 2017\n" +"Language-Team: Turkish (Turkey) (https://www.transifex.com/oca/teams/23907/tr_TR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Language: tr_TR\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_account_invoice +msgid "Invoice" +msgstr "Fatura" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:19 +#, python-format +msgid "Missing VAT number:" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: model:ir.model,name:account_fiscal_position_vat_check.model_res_partner +msgid "Partner" +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/account_invoice.py:21 +#, python-format +msgid "" +"You are trying to validate a customer invoice/refund with the fiscal " +"position '%s' that require the customer to have a VAT number. But the " +"Customer '%s' doesn't have a VAT number in Odoo. Please add the VAT number " +"of this Customer in Odoo and try to validate again." +msgstr "" + +#. module: account_fiscal_position_vat_check +#: code:addons/account_fiscal_position_vat_check/models/partner.py:20 +#, python-format +msgid "" +"You have set the fiscal position '%s' that require the customer to have a " +"VAT number, but the VAT number is missing." +msgstr "" From 2008228129a342409f0a8e7078b35b16becb7fc8 Mon Sep 17 00:00:00 2001 From: Raf Ven Date: Fri, 17 Aug 2018 09:13:58 +0200 Subject: [PATCH 28/28] [11.0][MIG] account_fiscal_position_vat_check: Migration to 11.0 --- account_fiscal_position_vat_check/README.rst | 12 +- account_fiscal_position_vat_check/__init__.py | 1 - .../__manifest__.py | 28 ++-- .../models/__init__.py | 1 - .../models/account_invoice.py | 1 - .../models/partner.py | 10 +- .../tests/__init__.py | 3 + .../tests/test_fiscal_position_vat_check.py | 137 ++++++++++++++++++ 8 files changed, 171 insertions(+), 22 deletions(-) create mode 100644 account_fiscal_position_vat_check/tests/__init__.py create mode 100644 account_fiscal_position_vat_check/tests/test_fiscal_position_vat_check.py diff --git a/account_fiscal_position_vat_check/README.rst b/account_fiscal_position_vat_check/README.rst index 612e7907d..eac09ad6c 100644 --- a/account_fiscal_position_vat_check/README.rst +++ b/account_fiscal_position_vat_check/README.rst @@ -1,5 +1,5 @@ -.. image:: https://img.shields.io/badge/licence-AGPL--3-blue.svg - :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html +.. image:: https://img.shields.io/badge/license-AGPL--3-blue.png + :target: https://www.gnu.org/licenses/agpl :alt: License: AGPL-3 ================================= @@ -44,10 +44,18 @@ help us smashing it by providing a detailed and welcomed feedback. Credits ======= +Images +------ + +* Odoo Community Association: `Icon `_. + Contributors ------------ * Alexis de Lattre +* Raf Ven (https://odoo.dynapps.be) + +Do not contact contributors directly about support or help with technical issues. Maintainer ---------- diff --git a/account_fiscal_position_vat_check/__init__.py b/account_fiscal_position_vat_check/__init__.py index cde864bae..a9e337226 100644 --- a/account_fiscal_position_vat_check/__init__.py +++ b/account_fiscal_position_vat_check/__init__.py @@ -1,3 +1,2 @@ -# -*- coding: utf-8 -*- from . import models diff --git a/account_fiscal_position_vat_check/__manifest__.py b/account_fiscal_position_vat_check/__manifest__.py index 1e0234efe..cff5d6acf 100644 --- a/account_fiscal_position_vat_check/__manifest__.py +++ b/account_fiscal_position_vat_check/__manifest__.py @@ -1,18 +1,22 @@ -# -*- coding: utf-8 -*- # © 2013-2016 Akretion (Alexis de Lattre ) +# © 2018 DynApps (Raf Ven ) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). { - 'name': 'Account Fiscal Position VAT Check', - 'version': '10.0.1.0.0', - 'category': 'Accounting & Finance', - 'license': 'AGPL-3', - 'summary': 'Check VAT on invoice validation', - 'author': "Akretion,Odoo Community Association (OCA)", - 'website': 'http://www.akretion.com', - 'depends': ['account', 'base_vat'], - 'data': [ - 'views/account_fiscal_position.xml', + "name": "Account Fiscal Position VAT Check", + "version": "11.0.1.0.0", + "category": "Accounting & Finance", + "license": "AGPL-3", + "summary": "Check VAT on invoice validation", + "author": "Akretion, Odoo Community Association (OCA)", + "website": "http://www.akretion.com", + "depends": [ + "account", + "base_vat" ], - 'installable': True, + "data": [ + "views/account_fiscal_position.xml", + ], + "installable": True, + "application": False, } diff --git a/account_fiscal_position_vat_check/models/__init__.py b/account_fiscal_position_vat_check/models/__init__.py index d8b42d60d..58760f723 100644 --- a/account_fiscal_position_vat_check/models/__init__.py +++ b/account_fiscal_position_vat_check/models/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- from . import account_invoice from . import partner diff --git a/account_fiscal_position_vat_check/models/account_invoice.py b/account_fiscal_position_vat_check/models/account_invoice.py index ba616a59f..6c33ebd3d 100644 --- a/account_fiscal_position_vat_check/models/account_invoice.py +++ b/account_fiscal_position_vat_check/models/account_invoice.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013-2016 Akretion (Alexis de Lattre ) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). diff --git a/account_fiscal_position_vat_check/models/partner.py b/account_fiscal_position_vat_check/models/partner.py index a02f68669..7e2545219 100644 --- a/account_fiscal_position_vat_check/models/partner.py +++ b/account_fiscal_position_vat_check/models/partner.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # © 2013-2016 Akretion (Alexis de Lattre ) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). @@ -9,17 +8,18 @@ class ResPartner(models.Model): _inherit = 'res.partner' @api.onchange('property_account_position_id') - def fiscal_position_change(self): + def onchange_fiscal_position(self): """Warning if the fiscal position requires a VAT number and the partner doesn't have one yet""" - fp = self.property_account_position_id - if fp.vat_required and self.customer and not self.vat: + fiscal_position = self.property_account_position_id + if fiscal_position.vat_required and self.customer and not self.vat: return { 'warning': { 'title': _('Missing VAT number:'), 'message': _( "You have set the fiscal position '%s' " "that require the customer to have a VAT number, " - "but the VAT number is missing.") % fp.name + "but the VAT number is missing." + ) % fiscal_position.name } } diff --git a/account_fiscal_position_vat_check/tests/__init__.py b/account_fiscal_position_vat_check/tests/__init__.py new file mode 100644 index 000000000..110b0a4a8 --- /dev/null +++ b/account_fiscal_position_vat_check/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_fiscal_position_vat_check diff --git a/account_fiscal_position_vat_check/tests/test_fiscal_position_vat_check.py b/account_fiscal_position_vat_check/tests/test_fiscal_position_vat_check.py new file mode 100644 index 000000000..3fd69341e --- /dev/null +++ b/account_fiscal_position_vat_check/tests/test_fiscal_position_vat_check.py @@ -0,0 +1,137 @@ +# Copyright 2018 Raf Ven +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests.common import TransactionCase +from odoo.exceptions import UserError + + +class TestFiscalPositionVatCheck(TransactionCase): + + # pylint: disable=too-many-instance-attributes + def setUp(self): + super(TestFiscalPositionVatCheck, self).setUp() + self._create_fiscal_positions() + self._create_partners() + self._configure_accounting() + + def _create_fiscal_positions(self): + self.fp_b2c = self.env['account.fiscal.position'].create(dict( + name="EU-VAT-B2C", + vat_required=False, + )) + self.fp_b2b = self.env['account.fiscal.position'].create(dict( + name="EU-VAT-B2B", + vat_required=True, + )) + + def _create_partners(self): + self.partner_b2c = self.env['res.partner'].create(dict( + name="Test Partner B2C", + + )) + self.partner_b2b = self.env['res.partner'].create(dict( + name="Test Partner B2B", + vat="BE0477472701", + )) + + def _configure_accounting(self): + self.product = self.env['product.product'].create(dict( + name='product name', + )) + self.account_type1 = self.env['account.account.type'].create(dict( + name='acc type test 1', + type='receivable', + )) + self.account_type2 = self.env['account.account.type'].create(dict( + name='acc type test 2', + type='other', + )) + self.account_account = self.env['account.account'].create(dict( + name='acc test', + code='X2020', + user_type_id=self.account_type1.id, + reconcile=True, + )) + self.account_account_line = self.env['account.account'].create(dict( + name='acc inv line test', + code='X2021', + user_type_id=self.account_type2.id, + reconcile=True, + )) + self.sale_sequence = self.env['ir.sequence'].create(dict( + name='Journal Sale', + prefix='SALE', + padding=6, + company_id=self.env.ref("base.main_company").id, + )) + self.account_journal_sale = self.env['account.journal'].create(dict( + name='Sale journal', + code='SALE', + type='sale', + sequence_id=self.sale_sequence.id + )) + + def create_out_invoice(self, partner): + invoice = self.env['account.invoice'].create(dict( + partner_id=partner.id, + account_id=self.account_account.id, + type='out_invoice', + journal_id=self.account_journal_sale.id, + )) + + self.env['account.invoice.line'].create(dict( + product_id=self.product.id, + quantity=1.0, + price_unit=100.0, + invoice_id=invoice.id, + name='product that cost 100', + account_id=self.account_account_line.id, + )) + return invoice + + def test_fiscal_position_vat_check(self): + # Empty fiscal position should not return a warning + result = self.partner_b2c.onchange_fiscal_position() + self.assertEqual(result, None) + # B2C fiscal position should not return a warning + self.partner_b2c.property_account_position_id = self.fp_b2c + result = self.partner_b2c.onchange_fiscal_position() + self.assertEqual(result, None) + # B2B fiscal position should return a warning + self.partner_b2c.property_account_position_id = self.fp_b2b + result = self.partner_b2c.onchange_fiscal_position() + self.assertEqual(result['warning']['title'], 'Missing VAT number:') + + # Create Invoice for B2C partner with B2C fiscal position + self.partner_b2c.property_account_position_id = self.fp_b2c + invoice = self.create_out_invoice(partner=self.partner_b2c) + invoice.action_invoice_open() + + # Create Invoice for B2C partner with B2B fiscal position + self.partner_b2c.property_account_position_id = self.fp_b2b + invoice = self.create_out_invoice(partner=self.partner_b2c) + err_msg = "But the Customer '.*' doesn't have a VAT number" + with self.assertRaisesRegex(UserError, err_msg): + invoice.action_invoice_open() + + # Empty fiscal position should not return a warning + result = self.partner_b2b.onchange_fiscal_position() + self.assertEqual(result, None) + # B2C fiscal position should not return a warning + self.partner_b2b.property_account_position_id = self.fp_b2c + result = self.partner_b2b.onchange_fiscal_position() + self.assertEqual(result, None) + # B2B fiscal position should return a warning + self.partner_b2b.property_account_position_id = self.fp_b2b + result = self.partner_b2b.onchange_fiscal_position() + self.assertEqual(result, None) + + # Create Invoice for B2B partner with B2B fiscal position + self.partner_b2b.property_account_position_id = self.fp_b2b + invoice = self.create_out_invoice(partner=self.partner_b2b) + invoice.action_invoice_open() + + # Create Invoice for B2B partner with B2C fiscal position + self.partner_b2b.property_account_position_id = self.fp_b2c + invoice = self.create_out_invoice(partner=self.partner_b2b) + invoice.action_invoice_open()