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

[14.0][MIG] account_invoice_import #387

Merged
merged 113 commits into from
Jun 2, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
113 commits
Select commit Hold shift + click to select a range
22fba80
Rename module from account_invoice_pdf_import to account_invoice_import
alexis-via Dec 30, 2015
83429c5
Update FR translation
alexis-via Jan 7, 2016
06800a0
Add instructions to use my PPA for poppler-utils on Ubuntu 14.04 LTS …
alexis-via Jan 9, 2016
3b068f8
Add support for direct import of XML files (YAML test provided)
alexis-via Jan 19, 2016
a5b822f
Sometimes, it's easier to extract the total tax amount instead of the…
Jan 20, 2016
cb80603
Add an explaination about date parsing in invoice2data
alexis-via Jan 22, 2016
f9f0683
Add optional support for start/end dates
Jan 22, 2016
ba54e80
Adapt to latest changes in invoice2data
alexis-via Jan 27, 2016
30b9b32
Only change name_get of invoice for our use-case, not everywhere
alexis-via Jan 28, 2016
85ecf4d
Update README with latest changes in invoice2data lib
alexis-via Jan 28, 2016
6c465d0
Add support for partner_email to match partners
Feb 2, 2016
7a76552
Update installation procedure.
alexis-via Feb 11, 2016
e45b32b
Add modules base_zugferd, account_invoice_import_zugferd and account_…
alexis-via Feb 22, 2016
2b68edb
Log raw result of invoice2data (before we make modifications)
alexis-via Mar 2, 2016
105bd51
Fix error in README spotted by Roel Adriaans
alexis-via Mar 15, 2016
cbd21e3
Add module account_invoice_import_ubl
alexis-via Mar 15, 2016
a8a5569
Use base_vat_sanitized
alexis-via May 13, 2016
85f6e5f
Add support for import of e-fff invoices (Belgian standard)
alexis-via May 21, 2016
4e5d2df
Add support for local invoice template for invoice2data, see README
alexis-via May 25, 2016
82fdd78
Small usability improvement
alexis-via Jun 21, 2016
337a60f
Checks that the directory really exists
alexis-via Jul 3, 2016
95e5d3d
Extract regular PDF invoice import from account_invoice_import to a d…
alexis-via Aug 5, 2016
1d4c1e5
Adapt code to plug the module 'ovh_supplier_invoice'
alexis-via Aug 12, 2016
b0c8091
Fix product matching
alexis-via Aug 12, 2016
e08bc84
FIX PEP8 and account_invoice_import_invoice2data unittests
alexis-via Aug 15, 2016
be77512
Add module base_business_document_import and start to move some code …
alexis-via Aug 17, 2016
d271430
Better/cleaner pivot invoice dict format (no more IDs in the pivot in…
alexis-via Aug 18, 2016
0556627
Add module base_ubl (common methods to generate and parse UBL files)
alexis-via Aug 21, 2016
4cbd76d
Add module base_phone_business_document_import
alexis-via Aug 24, 2016
3075428
Add a unittest on _match_uom
alexis-via Aug 25, 2016
f261fb5
Add module base_business_document_import_stock
alexis-via Aug 26, 2016
bf3ef03
Update invoice lines on "Update Existing" invoice import
alexis-via Aug 27, 2016
8d535ea
Fix crash
alexis-via Aug 27, 2016
3d878b0
Add multi-company ir.rule on account.invoice.import.config
alexis-via Sep 14, 2016
c125618
FIX Don't use _inherit = ['business.document.import']
alexis-via Sep 28, 2016
710a3ac
Fix method call
alexis-via Oct 2, 2016
6a9aedc
[IMP] handle the case where the xml file is generated with mime type
adrienpeiffer Oct 4, 2016
ca9fae7
Add support for extraction + matching on website
alexis-via Oct 4, 2016
a213e0c
FIX two stupid bugs
alexis-via Oct 4, 2016
8b25432
8.0 Add support for partner bank matching on invoice update (#6)
Oct 18, 2016
f5ac005
8.0 Use try/except when importing external libs (#8)
Oct 19, 2016
935b74d
[MIG] Make modules uninstallable
hbrunn Nov 12, 2016
7ba5b30
OCA Transbot updated translations from Transifex
oca-transbot Nov 29, 2016
53a524f
[ADD] migration of account_invoice_import_invoice2data and dependencies
hbrunn Dec 29, 2016
f2dcf23
Add support for 'origin' field in invoice import
alexis-via Jan 6, 2017
e96ac8c
[FIX] product.product#ean13 was renamed to barcode
hbrunn Jan 9, 2017
f45c0dc
[FIX] tests
hbrunn Jan 9, 2017
bd808f5
Port base_business_document_import* to v10
alexis-via Feb 15, 2017
ad9075c
Allow importing invoice without invoice_import_config on partner (use…
alexis-via Mar 27, 2017
533c941
Several fixes in account_invoice_import
alexis-via Apr 11, 2017
e6846f9
Improve XML for Factur-X
alexis-via Jul 28, 2017
16cb287
Add first support for the import of Factur-X invoices
alexis-via Aug 10, 2017
e7b15ff
Add support for allowance and charges on Factur-X invoice import
alexis-via Aug 11, 2017
f65e3db
Fix bug #16 : add support for adjustment lines (per line and global)
alexis-via Aug 13, 2017
6dec0a9
account_invoice_factur-x: now generate refunds with document type = 3…
alexis-via Aug 15, 2017
5fc666d
Pre-process parsed_inv even when calling directly _create_invoice()
alexis-via Aug 15, 2017
5ae3378
Add support for importing customer invoices (bug #24)
alexis-via Aug 15, 2017
2207088
Improve + modularize generation of UBL (up-port from v8 PR)
alexis-via Aug 23, 2017
9752e46
Finalise the use of the FacturX lib
alexis-via Sep 6, 2017
ac064c0
account_invoice_import: workaround a framework bug
alexis-via Oct 4, 2017
f78e1b6
account_invoice_import: Add partner_type to _match_partner method for…
alexis-via Oct 14, 2017
66196a9
OCA Transbot updated translations from Transifex
oca-transbot Feb 10, 2018
d077f09
[10.0] Update to work with latest version of invoice2data (#51)
Mar 11, 2018
630cf65
OCA Transbot updated translations from Transifex
oca-transbot Mar 31, 2018
a02f1ea
[10.0] Several fixes + import invoices with VAT in a company that can…
Jul 31, 2018
7acb58b
[UPD] Update account_invoice_import.pot
oca-travis Jul 31, 2018
5cb8c35
Fix import of sale order with price_source='pricelist' when pricelist…
alexis-via Aug 14, 2018
fa6622c
Partner <-> Invoice import config : switch M2O <-> O2M
alexis-via Jan 18, 2018
02b9936
Add migration script
alexis-via Jan 19, 2018
2f0749e
Add support for multiple invoice import configs in invoice import wizard
alexis-via Aug 14, 2018
1410f19
Add O2M field from import config to download config
alexis-via Aug 14, 2018
dfc55a2
Finalize the development account_invoice_download
alexis-via Aug 18, 2018
efbee23
Add support for additional module-specific weboob config parameters
alexis-via Aug 19, 2018
0c0a8c3
account_invoice_import: add a mail gateway
alexis-via Aug 22, 2018
b170222
Add ability to run cron invoice download from admin for all companies…
alexis-via Aug 23, 2018
ec11dc6
Add multi-company support in the invoice import mail gateway
alexis-via Aug 24, 2018
83c8b69
Check the VAT number of the destination partner, to make sure the bus…
alexis-via Aug 25, 2018
1ad4cbb
[UPD] Update account_invoice_import.pot
oca-travis Sep 16, 2018
a78451f
[FIX] include some of the fixes proposed in #64
Aug 15, 2018
a6b77ca
[11.0][MIG] account_invoice_import
Oct 2, 2018
ce205b6
[FIX] clean rebase from V10 that where wrong ...
Oct 2, 2018
a5b0e6a
[FIX] utf8 comment in python3
Oct 2, 2018
54e45cc
Fix base64 encode/decode + remove supplier_invoice_number + code review
astirpe Oct 12, 2018
0c0c771
[UPD] Update account_invoice_import.pot
oca-travis Oct 17, 2018
5e44b72
Update translation files
oca-transbot Dec 29, 2018
493476d
[ADD] icon.png
OCA-git-bot Apr 3, 2019
df67989
[UPD] Update account_invoice_import.pot
oca-travis Apr 3, 2019
7533a3d
Update translation files
oca-transbot May 20, 2019
797b533
[UPD] README.rst
OCA-git-bot Jul 29, 2019
7ad3132
[12.0][MIG] account_invoice_import
astirpe Jan 3, 2020
129faa4
[UPD] README.rst
OCA-git-bot Jan 22, 2020
0b235f7
[UPD] Update account_invoice_import.pot
oca-travis Jan 22, 2020
00ccb1b
Update translation files
oca-transbot Feb 10, 2020
188b582
account_invoice_download: start OCA import bill wizard when using the…
alexis-via Feb 13, 2020
aef6b36
Added translation using Weblate (German)
tv-openbig Mar 16, 2020
5f3ec6a
Translated using Weblate (German)
tv-openbig Mar 16, 2020
e5aa167
[MIG] account_invoice_import_facturx to v12
alexis-via Apr 14, 2020
b3aae8c
[UPD] Update account_invoice_import.pot
oca-travis Apr 29, 2020
75ef7b0
Update translation files
oca-transbot Apr 29, 2020
d77ffa3
Translated using Weblate (German)
marylla May 27, 2020
17c82bc
[IMP] account_invoice_import: black, isort, prettier
yvaucher Jun 23, 2020
5be225e
[MIG] account_invoice_import: Migration to 13.0
yvaucher Jun 23, 2020
d1226e0
[IMP] account_invoice_import: parsed invoice hook
yvaucher Jun 23, 2020
c3ace3d
[IMP] account_invoice_import: Missing partner hook
yvaucher Jun 24, 2020
f3895ec
Add a quick import invoice button
yvaucher Jun 25, 2020
c5306f4
Restore dashboard button overwrite
yvaucher Jun 27, 2020
23027b2
[RM] invoice line doesn't exist on V13
vrenaville Jan 21, 2021
81c25ae
[FIX] account_invoice_import: fix headers
NL66278 Dec 2, 2020
2bec1a9
[FIX] account_invoice_import: Reduce method complexity.
NL66278 Dec 2, 2020
8082bb6
[FIX] account_invoice_import. Do not shadow config module with variable.
NL66278 Dec 3, 2020
0ece0d7
[MIG] account_invoice_import to v14
alexis-via May 25, 2021
4a9125a
[FIX] account_invoice_import: mail gateway exception
StefanRijnhart May 26, 2021
3b62bd2
account_invoice_import: Add USAGE.rst
alexis-via May 31, 2021
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
120 changes: 120 additions & 0 deletions account_invoice_import/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
======================
Account Invoice Import
======================

.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/12.0/account_invoice_import
:alt: OCA/edi
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/edi-12-0/edi-12-0-account_invoice_import
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
:target: https://runbot.odoo-community.org/runbot/226/12.0
:alt: Try me on Runbot

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

This module has been started by lazy accounting users who hate enter they supplier invoices manually in Odoo. Almost all companies have several supplier invoices to enter regularly in the system from the same suppliers: phone bill, electricity bill, Internet access, train tickets, etc. Most of these invoices are available as PDF. We dream that we would be able to automatically extract from the PDF the required information to enter the invoice as supplier invoice in Odoo. To know the full story behind the development of this module, read this `blog post <http://www.akretion.com/blog/akretions-christmas-present-for-the-odoo-community>`_.

In the future, we believe we will have structured information embedded inside the metadata of PDF invoices. There are 2 main standards for electronic invoicing:

* `CII <http://tfig.unece.org/contents/cross-industry-invoice-cii.htm>`_ (Cross-Industry Invoice) developped by `UN/CEFACT <http://www.unece.org/cefact>`_ (United Nations Centre for Trade Facilitation and Electronic Business),
* `UBL <http://ubl.xml.org/>`_ (Universal Business Language) which is an ISO standard (`ISO/IEC 19845 <http://www.iso.org/iso/catalogue_detail.htm?csnumber=66370>`_) developped by `OASIS <https://www.oasis-open.org/>`_ (Organization for the Advancement of Structured Information Standards).

For example, there is already a standard in Germany called `ZUGFeRD <http://www.pdflib.com/knowledge-base/pdfa/zugferd-invoices/>`_ which is based on CII.

This module doesn't do anything useful by itself ; it requires other modules to work: each modules adds a specific invoice format.

Here is how the module works:

* the user starts a wizard and uploads the PDF or XML invoice,
* if it is an XML file, Odoo will parse it to create the invoice (requires additional modules for specific XML formats, such as the module *account_invoice_import_ubl* for the UBL format),
* if it is a PDF file with an embedded XML file in ZUGFeRD/CII format, Odoo will extract the embedded XML file and parse it to create the invoice (requires the module *account_invoice_import_zugferd*),
* otherwise, Odoo will use the *invoice2data* Python library to try to interpret the text of the PDF (requires the module *account_invoice_import_invoice2data*),
* if there is already some draft supplier invoice for this supplier, Odoo will propose to select one to update or create a new draft invoice,
* otherwise, Odoo will directly create a new draft supplier invoice and attach the PDF to it.

This module also works with supplier refunds.

**Table of contents**

.. contents::
:local:

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

Go to the form view of the suppliers and configure it with the following parameters:

* *is a Company ?* is True
* *Supplier* is True
* the *TIN* (i.e. VAT number) is set (the VAT number is used by default when searching the supplier in the Odoo partner database)
* in the *Accounting* tab, create one or several *Invoice Import Configurations*.

You can configure a mail gateway to import invoices from an email:

* Go to the menu *Settings > Technical > Email > Incoming Mail Servers* and setup the access (POP or IMAP) to the mailbox that will be used to received the invoices,
* In the section *Actions to perform on incoming mails*, set the field *Create a new record* to *Wizard to import supplier invoices/refunds* (model *account.invoice.import*). The field *Server Action* should be left empty.
* If you are in a multi-company setup, you also have to go to the menu *Accounting > Configuration > Settings*: in the section *Invoice Import*, enter the email of the mailbox used to import invoices in the field *Mail Gateway: Destination E-mail* (it will be used to select the right company to import the invoice in).

Known issues / Roadmap
======================

* Remove dependency on *base_iban* and develop a separate glue module between this module and *base_iban*

* Enhance the update of an existing invoice by analysing the lines (lines are only available when the invoice has an embedded XML file)

* Add a mail gateway to be able to forward the emails that we receive with PDF invoices to a dedicated address ; the gateway would detach the PDF invoice from the email and create the draft supplier invoice in Odoo.

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 <https://github.com/OCA/edi/issues/new?body=module:%20account_invoice_import%0Aversion:%2012.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 <[email protected]>
* Andrea Stirpe <[email protected]>
* Nicolas JEUDY <https://github.com/njeudy>

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.

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

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
2 changes: 2 additions & 0 deletions account_invoice_import/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
from . import models
from . import wizard
32 changes: 32 additions & 0 deletions account_invoice_import/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Copyright 2015-2021 Akretion France (http://www.akretion.com/)
# @author: Alexis de Lattre <[email protected]>
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "Account Invoice Import",
"version": "14.0.1.0.0",
"category": "Accounting & Finance",
"license": "AGPL-3",
"summary": "Import supplier invoices/refunds as PDF or XML files",
"author": "Akretion,Odoo Community Association (OCA)",
"maintainers": ["alexis-via"],
"website": "https://github.com/OCA/edi",
"depends": [
"account",
"base_iban",
"base_business_document_import",
"onchange_helper",
],
"data": [
"security/ir.model.access.csv",
"security/rule.xml",
"views/account_invoice_import_config.xml",
"views/res_config_settings.xml",
"wizard/account_invoice_import_view.xml",
"views/account_invoice.xml",
"views/account_journal_dashboard.xml",
"views/res_partner.xml",
],
"images": ["images/sshot-wizard1.png"],
"installable": True,
}
Loading