From cfd5460d2b27c1fc5335adf0bc2e13859ba5051a Mon Sep 17 00:00:00 2001 From: Alexis de Lattre Date: Thu, 19 Sep 2013 14:03:15 +0200 Subject: [PATCH] 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 | 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 00000000..299cab6f --- /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 00000000..922468e8 --- /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': 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 00000000..d29e2b14 --- /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 00000000..543dd80a --- /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 00000000..07727897 --- /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 00000000..032bfb0a --- /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 00000000..f45d0fbb --- /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 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 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 00000000..c3daa2df --- /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 00000000..c7b6abee --- /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) + + + + + + +