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

[12.0][MIG] account_invoice_import #162

Merged
merged 90 commits into from
Jan 22, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
90 commits
Select commit Hold shift + click to select a range
f3db53d
Rename module from account_invoice_pdf_import to account_invoice_import
alexis-via Dec 30, 2015
5310762
Update FR translation
alexis-via Jan 7, 2016
0c82fc4
Add instructions to use my PPA for poppler-utils on Ubuntu 14.04 LTS …
alexis-via Jan 9, 2016
bc65308
Add support for direct import of XML files (YAML test provided)
alexis-via Jan 19, 2016
e6681b0
Sometimes, it's easier to extract the total tax amount instead of the…
Jan 20, 2016
d6dbc33
Add an explaination about date parsing in invoice2data
alexis-via Jan 22, 2016
886bda7
Add optional support for start/end dates
Jan 22, 2016
bda42dd
Adapt to latest changes in invoice2data
alexis-via Jan 27, 2016
21d18d9
Only change name_get of invoice for our use-case, not everywhere
alexis-via Jan 28, 2016
d081211
Update README with latest changes in invoice2data lib
alexis-via Jan 28, 2016
eec1b33
Add support for partner_email to match partners
Feb 2, 2016
1fcf955
Update installation procedure.
alexis-via Feb 11, 2016
af3f8a2
Add modules base_zugferd, account_invoice_import_zugferd and account_…
alexis-via Feb 22, 2016
0f50d9d
Log raw result of invoice2data (before we make modifications)
alexis-via Mar 2, 2016
37499fc
Fix error in README spotted by Roel Adriaans
alexis-via Mar 15, 2016
4e035bc
Add module account_invoice_import_ubl
alexis-via Mar 15, 2016
7ba97d1
Use base_vat_sanitized
alexis-via May 13, 2016
596bb10
Add support for import of e-fff invoices (Belgian standard)
alexis-via May 21, 2016
4744d0f
Add support for local invoice template for invoice2data, see README
alexis-via May 25, 2016
f5f8508
Small usability improvement
alexis-via Jun 21, 2016
62906f9
Checks that the directory really exists
alexis-via Jul 3, 2016
4bda7de
Extract regular PDF invoice import from account_invoice_import to a d…
alexis-via Aug 5, 2016
807b1e3
Adapt code to plug the module 'ovh_supplier_invoice'
alexis-via Aug 12, 2016
acacb07
Fix product matching
alexis-via Aug 12, 2016
700962a
FIX PEP8 and account_invoice_import_invoice2data unittests
alexis-via Aug 15, 2016
e2ab8da
Add module base_business_document_import and start to move some code …
alexis-via Aug 17, 2016
b5b4814
Better/cleaner pivot invoice dict format (no more IDs in the pivot in…
alexis-via Aug 18, 2016
23780f2
Add module base_ubl (common methods to generate and parse UBL files)
alexis-via Aug 21, 2016
018fc3c
Add module base_phone_business_document_import
alexis-via Aug 24, 2016
72646c7
Add a unittest on _match_uom
alexis-via Aug 25, 2016
041d40f
Add module base_business_document_import_stock
alexis-via Aug 26, 2016
d7f08d9
Update invoice lines on "Update Existing" invoice import
alexis-via Aug 27, 2016
6cc03a0
Fix crash
alexis-via Aug 27, 2016
9877623
Add multi-company ir.rule on account.invoice.import.config
alexis-via Sep 14, 2016
c6ff673
FIX Don't use _inherit = ['business.document.import']
alexis-via Sep 28, 2016
e3f8ae5
Fix method call
alexis-via Oct 2, 2016
0b5344c
[IMP] handle the case where the xml file is generated with mime type
adrienpeiffer Oct 4, 2016
8da232d
Add support for extraction + matching on website
alexis-via Oct 4, 2016
c118c53
FIX two stupid bugs
alexis-via Oct 4, 2016
f2e22e6
8.0 Add support for partner bank matching on invoice update (#6)
Oct 18, 2016
3093bc3
8.0 Use try/except when importing external libs (#8)
Oct 19, 2016
fa0e9cc
[MIG] Make modules uninstallable
hbrunn Nov 12, 2016
d05404d
OCA Transbot updated translations from Transifex
oca-transbot Nov 29, 2016
cfadf48
[ADD] migration of account_invoice_import_invoice2data and dependencies
hbrunn Dec 29, 2016
8345e66
Add support for 'origin' field in invoice import
alexis-via Jan 6, 2017
0510eb8
[FIX] product.product#ean13 was renamed to barcode
hbrunn Jan 9, 2017
955aebe
[FIX] tests
hbrunn Jan 9, 2017
dbaffc9
Port base_business_document_import* to v10
alexis-via Feb 15, 2017
a299c3f
Allow importing invoice without invoice_import_config on partner (use…
alexis-via Mar 27, 2017
3443233
Several fixes in account_invoice_import
alexis-via Apr 11, 2017
3a74d0d
Improve XML for Factur-X
alexis-via Jul 28, 2017
b178acc
Add first support for the import of Factur-X invoices
alexis-via Aug 10, 2017
b72883c
Add support for allowance and charges on Factur-X invoice import
alexis-via Aug 11, 2017
e27bdeb
Fix bug #16 : add support for adjustment lines (per line and global)
alexis-via Aug 13, 2017
f5fa378
account_invoice_factur-x: now generate refunds with document type = 3…
alexis-via Aug 15, 2017
8aac5d8
Pre-process parsed_inv even when calling directly _create_invoice()
alexis-via Aug 15, 2017
b2d37bc
Add support for importing customer invoices (bug #24)
alexis-via Aug 15, 2017
94f3494
Improve + modularize generation of UBL (up-port from v8 PR)
alexis-via Aug 23, 2017
39bebee
Finalise the use of the FacturX lib
alexis-via Sep 6, 2017
4070cf2
account_invoice_import: workaround a framework bug
alexis-via Oct 4, 2017
73b0b55
account_invoice_import: Add partner_type to _match_partner method for…
alexis-via Oct 14, 2017
1d30981
OCA Transbot updated translations from Transifex
oca-transbot Feb 10, 2018
86f9d37
[10.0] Update to work with latest version of invoice2data (#51)
Mar 11, 2018
37b09dc
OCA Transbot updated translations from Transifex
oca-transbot Mar 31, 2018
0183100
[10.0] Several fixes + import invoices with VAT in a company that can…
Jul 31, 2018
6bdd9e0
[UPD] Update account_invoice_import.pot
oca-travis Jul 31, 2018
28c4a40
Fix import of sale order with price_source='pricelist' when pricelist…
alexis-via Aug 14, 2018
17b4d2b
Partner <-> Invoice import config : switch M2O <-> O2M
alexis-via Jan 18, 2018
b4bfa4e
Add migration script
alexis-via Jan 19, 2018
92cd8f5
Add support for multiple invoice import configs in invoice import wizard
alexis-via Aug 14, 2018
59b7305
Add O2M field from import config to download config
alexis-via Aug 14, 2018
9fcea4c
Finalize the development account_invoice_download
alexis-via Aug 18, 2018
892e357
Add support for additional module-specific weboob config parameters
alexis-via Aug 19, 2018
5d64a9c
account_invoice_import: add a mail gateway
alexis-via Aug 22, 2018
9457d8e
Add ability to run cron invoice download from admin for all companies…
alexis-via Aug 23, 2018
f09ddf7
Add multi-company support in the invoice import mail gateway
alexis-via Aug 24, 2018
dd81853
Check the VAT number of the destination partner, to make sure the bus…
alexis-via Aug 25, 2018
3373e9a
[UPD] Update account_invoice_import.pot
oca-travis Sep 16, 2018
1381501
[FIX] include some of the fixes proposed in #64
Aug 15, 2018
c6f8972
[11.0][MIG] account_invoice_import
Oct 2, 2018
ab7beb2
[FIX] clean rebase from V10 that where wrong ...
Oct 2, 2018
8de076d
[FIX] utf8 comment in python3
Oct 2, 2018
c16a212
Fix base64 encode/decode + remove supplier_invoice_number + code review
astirpe Oct 12, 2018
11fe821
[UPD] Update account_invoice_import.pot
oca-travis Oct 17, 2018
021f066
Update translation files
oca-transbot Dec 29, 2018
b2d3046
[ADD] icon.png
OCA-git-bot Apr 3, 2019
976f017
[UPD] Update account_invoice_import.pot
oca-travis Apr 3, 2019
5363079
Update translation files
oca-transbot May 20, 2019
63b5e3c
[UPD] README.rst
OCA-git-bot Jul 29, 2019
ab0a43d
[12.0][MIG] account_invoice_import
astirpe Jan 3, 2020
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
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/11.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-11-0/edi-11-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/11.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:%2011.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>
* Andrea Stirpe <a.stirpe@onestein.nl>
* 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/11.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
29 changes: 29 additions & 0 deletions account_invoice_import/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# © 2015-2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
'name': 'Account Invoice Import',
'version': '12.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)',
'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/partner.xml',
],
'images': ['images/sshot-wizard1.png'],
'installable': True,
}