Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[17.0][MIG] account_invoice_facturx #948

Merged
merged 88 commits into from
Mar 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
8d109c5
Rename account_invoice_zugferd to account_invoice_factur-x
alexis-via Feb 22, 2017
6e5a17b
Fix field name on invoice
alexis-via Mar 6, 2017
59ad078
Stop using precision_get('Account') (this decimal precision doesn't e…
alexis-via Mar 17, 2017
8a76f6d
Update test suite
alexis-via Jun 1, 2017
4a0c8aa
account_invoice_factur-x: Add support for Factur-X standard instead o…
alexis-via Jul 9, 2017
d40765a
Adapt test suite
alexis-via Jul 10, 2017
13e2583
Add Factur-X_extension_schema.xmp for PDF metadata of Factur-X invoices
alexis-via Jul 10, 2017
3cd5bae
account_invoice_factur-x: TestIndicator not in new XML
alexis-via Jul 18, 2017
30d9700
Improve XML for Factur-X
alexis-via Jul 28, 2017
d2c5ac9
Remove bank name tag, not allowed in Factur-X
alexis-via Aug 9, 2017
08b61a5
Add first support for the import of Factur-X invoices
alexis-via Aug 10, 2017
b9b2048
Add support for allowance and charges on Factur-X invoice import
alexis-via Aug 11, 2017
9970ac9
Add support for 'DueDateTypeCode' on Factur-X invoice generation
alexis-via Aug 13, 2017
fbec45c
account_invoice_factur-x: now generate refunds with document type = 3…
alexis-via Aug 15, 2017
7c8d637
Start to use the new factur-x lib
alexis-via Aug 22, 2017
71cd6f1
Improve + modularize generation of UBL (up-port from v8 PR)
alexis-via Aug 23, 2017
3048b61
Finalise the use of the FacturX lib
alexis-via Sep 6, 2017
ea55f01
Adapt to final version of factur-x lib
alexis-via Sep 10, 2017
6a8afd7
Adapt to latest changes in the agreement_* modules
alexis-via Sep 10, 2017
8ca1d14
account_invoice_factur-x: add XML tags for sepa direct debit
alexis-via Sep 30, 2017
4720a17
FIX Factur-x invoice generation with Qweb
alexis-via Oct 4, 2017
ba01490
account_invoice_factur-x use factur-x lib instead of PyPDF2
alexis-via Oct 13, 2017
7185bcc
Add logging in test to try to understand where it stalls on Travis
alexis-via Oct 14, 2017
fbfa187
account_invoice_factur-x: Replace full test that doesn't work on Trav…
alexis-via Oct 14, 2017
270b181
Update README of Factur-X modules
alexis-via Oct 14, 2017
d0c7f04
restore get_pdf() in tests (#31)
Oct 15, 2017
f0986e4
account_invoice_factur-x* : use factur-x lib v0.2 (#32)
Nov 7, 2017
a24e4e8
Factur-X invoice generation: level is now configurable
alexis-via Nov 15, 2017
d6050db
FIX lang in XML translatable labels
alexis-via Nov 17, 2017
8c97cc7
FIX official Factur-X XSD (patch sent to FNFE-MPE for upstream correc…
alexis-via Nov 17, 2017
509dad0
Add module account_e-invoice_generate to ensure compatibility for XML…
alexis-via Jan 17, 2018
f593a88
Add support for Factur-X logos to include in the visual part of Factu…
alexis-via Jan 22, 2018
a94ca94
OCA Transbot updated translations from Transifex
oca-transbot Feb 10, 2018
cd300c8
OCA Transbot updated translations from Transifex
oca-transbot Mar 31, 2018
c28d0be
acc_type on res.partner.bank is not stored any more, cf https://githu…
alexis-via May 2, 2018
6d90d1d
in v9+, partner.name is NOT a required field any more
alexis-via May 14, 2018
b5aa716
OCA Transbot updated translations from Transifex
oca-transbot May 19, 2018
7190fc4
Several fixes + import invoices with VAT in a company that cannot ded…
Jul 31, 2018
13b6755
Update account_invoice_factur-x.pot
oca-travis Jul 31, 2018
be87116
Remove 'CalculationPercent' and 'BasisAmount' which are only availabl…
alexis-via Aug 1, 2018
a80e17f
Update account_invoice_factur-x.pot
oca-travis Aug 18, 2018
e72b5ab
Translated using Weblate (French)
Billolha Oct 3, 2018
d972ece
Update for Factur-X specs 1.3
alexis-via Oct 30, 2018
c46b725
Update translation files
oca-transbot Nov 24, 2018
670cbfc
icon.png
OCA-git-bot Apr 3, 2019
6651fe8
Added translation using Weblate (German)
OSevangelist May 24, 2019
6b95039
Translated using Weblate (German)
OSevangelist May 24, 2019
bcf931a
Temporarily disable tests of account_invoice_factur-x
astirpe Jul 31, 2019
a508893
Port Factur-X invoice generation stack v10 -> v12
alexis-via Feb 10, 2020
a50274c
Small fixes/improvements in Factur-X XML generation
alexis-via Feb 11, 2020
e30aa36
account_invoice_facturx: fix small error in XML generation
alexis-via Feb 11, 2020
11ee97f
Python3 fix in Factur-X XML generation
alexis-via Feb 11, 2020
8b9d01a
[FIX] rst errors
sbidoul Apr 20, 2020
dbfac74
[UPD] README.rst
OCA-git-bot Apr 20, 2020
cb2122a
[UPD] Update account_invoice_facturx.pot
oca-travis Apr 29, 2020
f9cdb84
[MIG] account_invoice_facturx to v13
alexis-via Jun 9, 2020
a661877
run precommit hooks
gurneyalex Jun 11, 2020
80a8564
manifest: Use exact pypi package names
alexis-via Jun 11, 2020
5ab6e31
fix bad refactoring
gurneyalex Jun 11, 2020
be36fed
account_invoice_facturx/_py3o: black reformatting
alexis-via Nov 23, 2020
71cabb5
[UPD] README.rst
OCA-git-bot Nov 23, 2020
512aa1d
[MIG] account_invoice_facturx to v14
alexis-via Dec 10, 2020
2b6c7c6
account_invoice_facturx: add CountrySubDivisionName is partner block
alexis-via Mar 16, 2021
827788f
account_invoice_facturx: adapt to factur-x lib 2.x
alexis-via Apr 8, 2021
85f56a7
account_invoice_facturx: add prepare method for attachments
alexis-via Oct 7, 2021
aa6bb29
[UPD] Update account_invoice_facturx.pot
oca-travis Oct 31, 2021
0a920f2
[UPD] README.rst
OCA-git-bot Oct 31, 2021
6e5aff7
[MIG] account_invoice_facturx from v14 to v15
alexis-via Dec 31, 2021
2f65a9a
[UPD] Update account_invoice_facturx.pot
Feb 15, 2022
0560029
[UPD] README.rst
OCA-git-bot Feb 15, 2022
1627274
[MIG] account_invoice_facturx to v16
alexis-via Dec 26, 2022
d784f6e
[UPD] Update account_invoice_facturx.pot
Jun 27, 2023
e6dd084
[UPD] README.rst
OCA-git-bot Jun 27, 2023
c8fb000
Update translation files
weblate Jun 27, 2023
36a94da
Translated using Weblate (French)
Jun 28, 2023
c8d4b04
Translated using Weblate (German)
NICO-SOLUTIONS Jul 8, 2023
d589c22
Translated using Weblate (Spanish)
Ivorra78 Aug 7, 2023
8537434
Translated using Weblate (Spanish)
Ivorra78 Aug 7, 2023
0036a42
[UPD] README.rst
OCA-git-bot Sep 3, 2023
ea6e867
[FIX] account_invoice_facturx: crash on HS code
alexis-via Oct 20, 2023
90aeb4f
[BOT] post-merge updates
OCA-git-bot Oct 23, 2023
fd5911b
[FIX] account_invoice_facturx: crash when name is empty on invoice line
alexis-via Jan 30, 2024
752a622
[UPD] Update account_invoice_facturx.pot
Feb 13, 2024
3c5f425
[BOT] post-merge updates
OCA-git-bot Feb 13, 2024
c397448
Update translation files
weblate Feb 13, 2024
ea33fbe
Translated using Weblate (Spanish)
Ivorra78 Feb 14, 2024
54ae8d2
[IMP] account_invoice_facturx: pre-commit auto fixes
alexis-via Mar 4, 2024
212437d
[MIG] account_invoice_facturx: migrate to v17
alexis-via Mar 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
129 changes: 129 additions & 0 deletions account_invoice_facturx/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
========================
Account Invoice Factur-X
========================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:aaec5af2acb0aa3df5c8683d2c116258fb47862a1c11cdd5974c6a3e08bb6925
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fedi-lightgray.png?logo=github
:target: https://github.com/OCA/edi/tree/17.0/account_invoice_facturx
:alt: OCA/edi
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/edi-17-0/edi-17-0-account_invoice_facturx
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/edi&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

With this module, the PDF customer invoices and refunds generated by the
Qweb reporting engine of Odoo will comply with the
`Factur-X <http://fnfe-mpe.org/factur-x/>`__ standard. The Factur-X
standard is an e-invoicing standard for France and Germany released on
December 31st 2017. In Germany, it is also known as the `ZUGFeRD
2.0 <http://www.ferd-net.de/aktuelles/meldungen/verabschiedung-zugferd-2.0_profil-en16931.html/>`__
standard. This standard is based on
`CII <http://tfig.unece.org/contents/cross-industry-invoice-cii.htm>`__
(Cross-Industry Invoice) for electronic invoicing. The great idea of the
ZUGFeRD/Factur-X standard is to embed an XML file inside the PDF invoice
to carry structured information about the invoice. So, with a
ZUGFeRD/Factur-X PDF invoice:

- no need to change your habbits and those of your customers: you can
still send your PDF invoices by email as usual.
- customers equiped with a modern accouting software will be able to
import the invoice automatically as supplier invoice by taking
advantage of the embedded XML file,
- customers with an ancient accounting software will just open the PDF
file with their PDF reader and manually encode the document as
supplier invoice in their accounting software.

**Table of contents**

.. contents::
:local:

Installation
============

This module requires a recent version of the Python library
`factur-x <https://github.com/akretion/factur-x>`__ developped by
Akretion. Note that the factur-x library depends on PyPDF2 for the
low-level PDF manipulation. To install it, run:

::

sudo pip3 install --upgrade factur-x

Configuration
=============

In the menu *Invoicing > Configuration > Settings*, check these options:

- *XML Format embedded in PDF invoice*: if you want to generate
Factur-X invoices, this option must be set to *Factur-X (CII)*
- the *Factur-X Level*: unless you have a good reason, you should keep
the default value *EN 16931 (Comfort)*
- *Factur-X Refund Type*: choose the type of the XML invoice for
customer refunds (keep the default value if you are not familiar with
this setting).

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/edi/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/edi/issues/new?body=module:%20account_invoice_facturx%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Akretion

Contributors
------------

- Alexis de Lattre <alexis.delattre@akretion.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

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.

.. |maintainer-alexis-via| image:: https://github.com/alexis-via.png?size=40px
:target: https://github.com/alexis-via
:alt: alexis-via

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-alexis-via|

This module is part of the `OCA/edi <https://github.com/OCA/edi/tree/17.0/account_invoice_facturx>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions account_invoice_facturx/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from . import models
from . import wizards
from .hooks import set_xml_format_in_pdf_invoice_to_facturx
28 changes: 28 additions & 0 deletions account_invoice_facturx/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Copyright 2016-2022 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
"name": "Account Invoice Factur-X",
"version": "17.0.1.0.0",
"category": "Invoicing Management",
"license": "AGPL-3",
"summary": "Generate Factur-X/ZUGFeRD customer invoices",
"author": "Akretion,Odoo Community Association (OCA)",
"maintainers": ["alexis-via"],
"website": "https://github.com/OCA/edi",
"depends": [
"account_einvoice_generate",
"account_payment_partner",
"base_facturx",
"base_vat",
],
"external_dependencies": {"python": ["factur-x"]},
"data": [
"views/res_partner.xml",
"views/account_move.xml",
"views/res_config_settings.xml",
],
"post_init_hook": "set_xml_format_in_pdf_invoice_to_facturx",
"installable": True,
}
10 changes: 10 additions & 0 deletions account_invoice_facturx/hooks.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# Copyright 2018-2022 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <alexis.delattre@akretion.com>
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).


def set_xml_format_in_pdf_invoice_to_facturx(env):
companies = env["res.company"].search(
[("xml_format_in_pdf_invoice", "in", (False, "none"))]
)
companies.write({"xml_format_in_pdf_invoice": "factur-x"})
162 changes: 162 additions & 0 deletions account_invoice_facturx/i18n/account_invoice_factur-x.pot
Original file line number Diff line number Diff line change
@@ -0,0 +1,162 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * account_invoice_factur-x
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.0\n"
"Report-Msgid-Bugs-To: \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_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:751
#, python-format
msgid "%s: %s %s dated %s"
msgstr ""

#. module: account_invoice_factur-x
#: selection:res.company,facturx_level:0
msgid "Basic"
msgstr ""

#. module: account_invoice_factur-x
#: selection:res.company,facturx_level:0
msgid "Basic without lines"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.model,name:account_invoice_factur-x.model_res_company
msgid "Companies"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:50
#, python-format
msgid "Country is not set on partner '%s'. In the Factur-X standard, the country is required for buyer and seller."
msgstr ""

#. module: account_invoice_factur-x
#: selection:res.company,facturx_level:0
msgid "EN 16931 (Comfort)"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:750
#, python-format
msgid "Factur-X"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.ui.view,arch_db:account_invoice_factur-x.view_account_config_settings
msgid "Factur-X Invoices"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.model.fields,field_description:account_invoice_factur-x.field_account_config_settings_facturx_level
#: model:ir.model.fields,field_description:account_invoice_factur-x.field_res_company_facturx_level
msgid "Factur-X Level"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.model.fields,field_description:account_invoice_factur-x.field_res_company_facturx_logo
msgid "Factur-X Logo"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.model.fields,field_description:account_invoice_factur-x.field_account_config_settings_facturx_refund_type
#: model:ir.model.fields,field_description:account_invoice_factur-x.field_res_company_facturx_refund_type
msgid "Factur-X Refund Type"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:747
#: model:ir.model,name:account_invoice_factur-x.model_account_invoice
#, python-format
msgid "Invoice"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.model.fields,help:account_invoice_factur-x.field_res_company_facturx_logo
msgid "Logo to include in the visible part of Factur-X invoices"
msgstr ""

#. module: account_invoice_factur-x
#: selection:res.company,facturx_level:0
msgid "Minimum"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:374
#: code:addons/account_invoice_factur-x/models/account_invoice.py:645
#, python-format
msgid "Missing UNECE Tax Category on tax '%s'"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:371
#: code:addons/account_invoice_factur-x/models/account_invoice.py:638
#, python-format
msgid "Missing UNECE Tax Type on tax '%s'"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:444
#, python-format
msgid "Missing UNECE code on payment export type '%s'"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:346
#, python-format
msgid "No specific payment term selected"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:747
#, python-format
msgid "Refund"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.model,name:account_invoice_factur-x.model_report
msgid "Report"
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:555
#, python-format
msgid "The Factur-X standard specify that unit prices can't be negative. The unit price of line '%s' is negative. You should generate a customer refund for that line."
msgstr ""

#. module: account_invoice_factur-x
#: selection:res.company,facturx_refund_type:0
msgid "Type 380 with negative amounts"
msgstr ""

#. module: account_invoice_factur-x
#: selection:res.company,facturx_refund_type:0
msgid "Type 381 with positive amounts"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.model.fields,help:account_invoice_factur-x.field_account_config_settings_facturx_level
#: model:ir.model.fields,help:account_invoice_factur-x.field_res_company_facturx_level
msgid "Unless if you have a good reason, you should always select 'EN 16931 (Comfort)', which is the default value."
msgstr ""

#. module: account_invoice_factur-x
#: code:addons/account_invoice_factur-x/models/account_invoice.py:290
#, python-format
msgid "Wire transfer"
msgstr ""

#. module: account_invoice_factur-x
#: model:ir.model,name:account_invoice_factur-x.model_account_config_settings
msgid "account.config.settings"
msgstr ""

Loading
Loading