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

[13.0][MIG] account_invoice_import_facturx: Migration to 13.0 #5

Merged
merged 24 commits into from
Dec 10, 2024
Merged
Changes from 1 commit
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
8efcf8e
[MIG] account_invoice_import_facturx to v12
alexis-via Apr 14, 2020
952f0f1
[FIX] rst errors
sbidoul Apr 20, 2020
ba04daf
[UPD] README.rst
OCA-git-bot Apr 20, 2020
4ceae2b
[FIX] fix account_invoice_import_facturx demo data
sbidoul Apr 21, 2020
36b4941
[UPD] Update account_invoice_import_facturx.pot
oca-travis Apr 29, 2020
13b5adb
Translated using Weblate (German)
marylla May 27, 2020
05485f3
[MIG] account_invoice_import_facturx to v14.0
alexis-via Mar 5, 2021
33ff74a
account_invoice_import_facturx: black, isort, etc.
alexis-via Mar 5, 2021
a2ca5b6
account_invoice_import_facturx: stop using precision_get('Account')
alexis-via Mar 5, 2021
72ae80c
account_invoice_import_facturx: adapt to latest version of facturx lib
alexis-via Jun 2, 2021
5ae4ca2
[UPD] Update account_invoice_import_facturx.pot
oca-travis Sep 2, 2021
426a7ca
[UPD] README.rst
OCA-git-bot Sep 2, 2021
83e4937
[IMP] update dotfiles
OCA-git-bot Mar 30, 2022
56b5577
Translated using Weblate (French)
klodr May 29, 2023
8b0edfa
[UPD] README.rst
OCA-git-bot Sep 3, 2023
b3a83dc
Update translation files
weblate Oct 10, 2023
fd00069
account_invoice_*: boost tests
simahawk Nov 21, 2023
c769113
Translated using Weblate (Spanish)
Ivorra78 Nov 23, 2023
a40effb
[BOT] post-merge updates
OCA-git-bot Nov 27, 2023
709614d
account_invoice_*facturx: fix factur-x lib version
simahawk Dec 4, 2024
d3a0d99
[BOT] post-merge updates
OCA-git-bot Dec 4, 2024
4c5ad9f
[IMP] account_invoice_import_facturx: pre-commit stuff
Dec 10, 2024
3cb6f6d
[MIG] account_invoice_import_facturx: Backported module to 13.0.
Dec 10, 2024
21751ac
[IMP] setup: Added account_invoice_import_facturx, account_invoice_im…
Dec 10, 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
Next Next commit
[MIG] account_invoice_import_facturx to v12
Update technical name of module to remove '-'
Up-port PR OCA#78 Auto-creation of bank accounts upon invoice import is now optional
Fix returned action when using the import wizard
alexis-via authored and Bastian Guenther committed Dec 10, 2024
commit 8efcf8ec77546d813c9d316d181f5abb6ccadcdc
63 changes: 63 additions & 0 deletions account_invoice_import_facturx/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
.. 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 Invoice Import Factur-X
===============================

This module is an extension of the module *account_invoice_import* to add the ability to import ZUGFeRD 1.0 and Factur-X/ZUGFeRD 2.0 invoices. The `ZUGFeRD <http://www.pdflib.com/knowledge-base/pdfa/zugferd-invoices/>`_ standard is a standard based on `CII <http://tfig.unece.org/contents/cross-industry-invoice-cii.htm>`_ (Cross-Industry Invoice) for electronic invoicing. Factur-X, also called ZUGFeRD 2.0 in Germany, is now the official e-invoicing standard in France and Germany. A Factur-X invoice is a PDF invoice with an embedded XML file that carries structured information about the invoice.

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

This module requires the Python library *factur-x* developped by Akretion, which depends on PyPDF2. To install it, run:

.. code::

sudo pip install factur-x

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

There is no configuration specific to this module. Please refer to the configuration section of the modules *account_invoice_import* and *base_zugferd*.

Usage
=====

Refer to the usage section of the module *account_invoice_import*.

.. image:: https://odoo-community.org/website/image/ir.attachment/5784_f2813bd/datas
:alt: Try me on Runbot
:target: https://runbot.odoo-community.org/runbot/226/10.0

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 smashing it by providing a detailed and welcomed feedback.

Credits
=======

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

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

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.
1 change: 1 addition & 0 deletions account_invoice_import_facturx/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import wizard
18 changes: 18 additions & 0 deletions account_invoice_import_facturx/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Copyright 2015-2020 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 Import Factur-X',
'version': '12.0.1.0.0',
'category': 'Invoicing Management',
'license': 'AGPL-3',
'summary': 'Import Factur-X/ZUGFeRD supplier invoices/refunds',
'author': 'Akretion,Odoo Community Association (OCA)',
'website': 'https://github.com/OCA/edi',
'depends': ['account_invoice_import', 'base_facturx'],
'external_dependencies': {'python': ['facturx']},
'data': ['wizard/account_invoice_import_view.xml'],
'demo': ['demo/demo_data.xml'],
'installable': True,
}
185 changes: 185 additions & 0 deletions account_invoice_import_facturx/demo/demo_data.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
<?xml version="1.0" encoding="utf-8"?>

<odoo noupdate="1">

<record id="charge_account" model="account.account">
<field name="code">606FACTURX</field>
<field name="name">Charge account Factur-X</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
</record>

<record id="jolie_boutique" model="res.partner">
<field name="name">Ma jolie boutique</field>
<field name="is_company" eval="True"/>
<field name="supplier" eval="True"/>
<field name="customer" eval="False"/>
<field name="street">35 rue de la république</field>
<field name="zip">69001</field>
<field name="city">Lyon</field>
<field name="country_id" ref="base.fr"/>
<field name="vat">FR11999999998</field>
</record>

<record id="jolie_boutique_import_config" model="account.invoice.import.config">
<field name="name">Jolie Boutique</field>
<field name="partner_id" ref="jolie_boutique"/>
<field name="invoice_line_method">1line_no_product</field>
<field name="account_id" ref="charge_account"/>
<field name="tax_ids" eval="[(4, ref('account_invoice_import_facturx.fr_vat_purchase_20'))]"/>
</record>

<record id="lieferant" model="res.partner">
<field name="name">Lieferant GmbH</field>
<field name="is_company" eval="True"/>
<field name="supplier" eval="True"/>
<field name="customer" eval="False"/>
<field name="street">Lieferantenstraße 20</field>
<field name="zip">80333</field>
<field name="city">München</field>
<field name="country_id" ref="base.de"/>
</record>

<record id="lieferant_import_config" model="account.invoice.import.config">
<field name="name">Lieferant</field>
<field name="partner_id" ref="lieferant"/>
<field name="invoice_line_method">nline_no_product</field>
<field name="account_id" ref="charge_account"/>
</record>


<record id="mvm_musterhafter" model="res.partner">
<field name="name">MVM Musterhafter
Versicherungsverein Musterstadt a.G.</field>
<field name="is_company" eval="True"/>
<field name="supplier" eval="True"/>
<field name="customer" eval="False"/>
<field name="street">Musterstr. 12</field>
<field name="zip">12345</field>
<field name="city">Musterstadt</field>
<field name="country_id" ref="base.de"/>
</record>

<record id="mvm_musterhafter_import_config" model="account.invoice.import.config">
<field name="name">MVM Musterhafter</field>
<field name="partner_id" ref="mvm_musterhafter"/>
<field name="invoice_line_method">nline_no_product</field>
<field name="account_id" ref="charge_account"/>
</record>


<record id="musterlieferant" model="res.partner">
<field name="name">MUSTERLIEFERANT GMBH</field>
<field name="is_company" eval="True"/>
<field name="supplier" eval="True"/>
<field name="customer" eval="False"/>
<field name="email">max.mustermann@musterlieferant.de</field>
<field name="street">BAHNHOFSTRASSE 99</field>
<field name="zip">99199</field>
<field name="city">MUSTERHAUSEN</field>
<field name="country_id" ref="base.de"/>
</record>

<record id="musterlieferant_import_config" model="account.invoice.import.config">
<field name="name">MUSTERLIEFERANT</field>
<field name="partner_id" ref="musterlieferant"/>
<field name="invoice_line_method">nline_no_product</field>
<field name="account_id" ref="charge_account"/>
</record>


<record id="de_vat_purchase_19" model="account.tax">
<field name="name">German VAT purchase 19.0%</field>
<field name="description">DE-VAT-buy-19.0</field>
<field name="type_tax_use">purchase</field>
<field name="amount">19</field>
<field name="amount_type">percent</field>
<field name="unece_type_id" ref="account_tax_unece.tax_type_vat"/>
<field name="unece_categ_id" ref="account_tax_unece.tax_categ_s"/>
<field name="account_id" ref="charge_account"/>
<field name="refund_account_id" ref="charge_account"/>
</record>

<record id="de_vat_purchase_7" model="account.tax">
<field name="name">German VAT purchase 7.0%</field>
<field name="description">DE-VAT-buy-7.0</field>
<field name="type_tax_use">purchase</field>
<field name="amount">7</field>
<field name="amount_type">percent</field>
<field name="unece_type_id" ref="account_tax_unece.tax_type_vat"/>
<field name="unece_categ_id" ref="account_tax_unece.tax_categ_s"/>
<field name="account_id" ref="charge_account"/>
<field name="refund_account_id" ref="charge_account"/>
</record>

<record id="de_insurance_purchase_19" model="account.tax">
<field name="name">German Insurance purchase 19.0%</field>
<field name="description">DE-INSURANCE-buy-19.0</field>
<field name="type_tax_use">purchase</field>
<field name="amount">19</field>
<field name="amount_type">percent</field>
<field name="unece_type_id" ref="base_facturx.tax_type_zf_insurance_tax"/>
<field name="unece_categ_id" ref="account_tax_unece.tax_categ_s"/>
<field name="account_id" ref="charge_account"/>
<field name="refund_account_id" ref="charge_account"/>
</record>

<record id="de_insurance_purchase_16_34" model="account.tax">
<field name="name">German Insurance purchase 16.34%</field>
<field name="description">DE-INSURANCE-buy-16.34</field>
<field name="type_tax_use">purchase</field>
<field name="amount">16.34</field>
<field name="amount_type">percent</field>
<field name="unece_type_id" ref="base_facturx.tax_type_zf_insurance_tax"/>
<field name="unece_categ_id" ref="account_tax_unece.tax_categ_s"/>
<field name="account_id" ref="charge_account"/>
<field name="refund_account_id" ref="charge_account"/>
</record>

<record id="fr_vat_purchase_20" model="account.tax">
<field name="name">FR VAT purchase 20.0%</field>
<field name="description">FR-VAT-buy-20.0</field>
<field name="type_tax_use">purchase</field>
<field name="amount">20</field>
<field name="amount_type">percent</field>
<field name="unece_type_id" ref="account_tax_unece.tax_type_vat"/>
<field name="unece_categ_id" ref="account_tax_unece.tax_categ_s"/>
<field name="account_id" ref="charge_account"/>
<field name="refund_account_id" ref="charge_account"/>
</record>

<record id="test_noline" model="res.partner">
<field name="name">Test Supplier (noline)</field>
<field name="is_company" eval="True"/>
<field name="supplier" eval="True"/>
<field name="customer" eval="False"/>
<field name="country_id" ref="base.fr"/>
<field name="vat">FR11123456782</field>
</record>

<record id="test_noline_import_config" model="account.invoice.import.config">
<field name="name">Test noline</field>
<field name="partner_id" ref="test_noline"/>
<field name="invoice_line_method">1line_no_product</field>
<field name="account_id" ref="charge_account"/>
<field name="tax_ids" eval="[(4, ref('account_invoice_import_facturx.fr_vat_purchase_20'))]"/>
</record>

<record id="test_line" model="res.partner">
<field name="name">Test Supplier (lines)</field>
<field name="is_company" eval="True"/>
<field name="supplier" eval="True"/>
<field name="customer" eval="False"/>
<field name="country_id" ref="base.fr"/>
<field name="vat">FR14987654324</field>
</record>

<record id="test_line_import_config" model="account.invoice.import.config">
<field name="name">Test line</field>
<field name="partner_id" ref="test_line"/>
<field name="invoice_line_method">nline_no_product</field>
<field name="account_id" ref="charge_account"/>
<field name="tax_ids" eval="[(4, ref('account_invoice_import_facturx.fr_vat_purchase_20'))]"/>
</record>


</odoo>
Loading