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

[11.0][MIG] : mig account_invoice_import #41

Merged
merged 83 commits into from
Oct 17, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
1f15fbf
Rename module from account_invoice_pdf_import to account_invoice_import
alexis-via Dec 30, 2015
e82a040
Update FR translation
alexis-via Jan 7, 2016
b9ec55a
Add instructions to use my PPA for poppler-utils on Ubuntu 14.04 LTS …
alexis-via Jan 9, 2016
a5af8b1
Add support for direct import of XML files (YAML test provided)
alexis-via Jan 19, 2016
1e967c7
Sometimes, it's easier to extract the total tax amount instead of the…
Jan 20, 2016
4fe19ba
Add an explaination about date parsing in invoice2data
alexis-via Jan 22, 2016
2ca1571
Add optional support for start/end dates
Jan 22, 2016
3180a64
Adapt to latest changes in invoice2data
alexis-via Jan 27, 2016
ad8b564
Only change name_get of invoice for our use-case, not everywhere
alexis-via Jan 28, 2016
7cabb98
Update README with latest changes in invoice2data lib
alexis-via Jan 28, 2016
44ca96a
Add support for partner_email to match partners
Feb 2, 2016
f790ec5
Update installation procedure.
alexis-via Feb 11, 2016
ff2c0ec
Add modules base_zugferd, account_invoice_import_zugferd and account_…
alexis-via Feb 22, 2016
dad65ca
Log raw result of invoice2data (before we make modifications)
alexis-via Mar 2, 2016
b7b007e
Fix error in README spotted by Roel Adriaans
alexis-via Mar 15, 2016
5d5f1a6
Add module account_invoice_import_ubl
alexis-via Mar 15, 2016
112433d
Use base_vat_sanitized
alexis-via May 13, 2016
d869693
Add support for import of e-fff invoices (Belgian standard)
alexis-via May 21, 2016
e30c322
Add support for local invoice template for invoice2data, see README
alexis-via May 25, 2016
5eebf81
Small usability improvement
alexis-via Jun 21, 2016
7a7a933
Checks that the directory really exists
alexis-via Jul 3, 2016
6c2d3bd
Extract regular PDF invoice import from account_invoice_import to a d…
alexis-via Aug 5, 2016
0def222
Adapt code to plug the module 'ovh_supplier_invoice'
alexis-via Aug 12, 2016
9eab871
Fix product matching
alexis-via Aug 12, 2016
46a1f24
FIX PEP8 and account_invoice_import_invoice2data unittests
alexis-via Aug 15, 2016
4ccf061
Add module base_business_document_import and start to move some code …
alexis-via Aug 17, 2016
cbf22d4
Better/cleaner pivot invoice dict format (no more IDs in the pivot in…
alexis-via Aug 18, 2016
a045638
Add module base_ubl (common methods to generate and parse UBL files)
alexis-via Aug 21, 2016
e10d878
Add module base_phone_business_document_import
alexis-via Aug 24, 2016
e6b76a6
Add a unittest on _match_uom
alexis-via Aug 25, 2016
ea2221f
Add module base_business_document_import_stock
alexis-via Aug 26, 2016
03b107a
Update invoice lines on "Update Existing" invoice import
alexis-via Aug 27, 2016
ed5eeb4
Fix crash
alexis-via Aug 27, 2016
6971870
Add multi-company ir.rule on account.invoice.import.config
alexis-via Sep 14, 2016
acbd2cd
FIX Don't use _inherit = ['business.document.import']
alexis-via Sep 28, 2016
60a669d
Fix method call
alexis-via Oct 2, 2016
b775603
[IMP] handle the case where the xml file is generated with mime type
adrienpeiffer Oct 4, 2016
3284ec7
Add support for extraction + matching on website
alexis-via Oct 4, 2016
3de5979
FIX two stupid bugs
alexis-via Oct 4, 2016
a9ff37d
8.0 Add support for partner bank matching on invoice update (#6)
Oct 18, 2016
b718dd4
8.0 Use try/except when importing external libs (#8)
Oct 19, 2016
641d368
[MIG] Make modules uninstallable
hbrunn Nov 12, 2016
7310037
OCA Transbot updated translations from Transifex
oca-transbot Nov 29, 2016
34e03f6
[ADD] migration of account_invoice_import_invoice2data and dependencies
hbrunn Dec 29, 2016
2a7d4b1
Add support for 'origin' field in invoice import
alexis-via Jan 6, 2017
aca2a82
[FIX] product.product#ean13 was renamed to barcode
hbrunn Jan 9, 2017
3f436ed
[FIX] tests
hbrunn Jan 9, 2017
a49f95a
Port base_business_document_import* to v10
alexis-via Feb 15, 2017
037de72
Allow importing invoice without invoice_import_config on partner (use…
alexis-via Mar 27, 2017
6e087fc
Several fixes in account_invoice_import
alexis-via Apr 11, 2017
a2d8312
Improve XML for Factur-X
alexis-via Jul 28, 2017
66163cd
Add first support for the import of Factur-X invoices
alexis-via Aug 10, 2017
c61bb0e
Add support for allowance and charges on Factur-X invoice import
alexis-via Aug 11, 2017
08b4377
Fix bug #16 : add support for adjustment lines (per line and global)
alexis-via Aug 13, 2017
b5fa809
account_invoice_factur-x: now generate refunds with document type = 3…
alexis-via Aug 15, 2017
7e83aaf
Pre-process parsed_inv even when calling directly _create_invoice()
alexis-via Aug 15, 2017
21fa909
Add support for importing customer invoices (bug #24)
alexis-via Aug 15, 2017
3c67cd6
Improve + modularize generation of UBL (up-port from v8 PR)
alexis-via Aug 23, 2017
7bc77d2
Finalise the use of the FacturX lib
alexis-via Sep 6, 2017
79a5ec4
account_invoice_import: workaround a framework bug
alexis-via Oct 4, 2017
7f768f5
account_invoice_import: Add partner_type to _match_partner method for…
alexis-via Oct 14, 2017
6468875
OCA Transbot updated translations from Transifex
oca-transbot Feb 10, 2018
4d15143
[10.0] Update to work with latest version of invoice2data (#51)
Mar 11, 2018
275e789
OCA Transbot updated translations from Transifex
oca-transbot Mar 31, 2018
b40ba51
[10.0] Several fixes + import invoices with VAT in a company that can…
Jul 31, 2018
b9f7fa3
[UPD] Update account_invoice_import.pot
oca-travis Jul 31, 2018
af0e4e7
Fix import of sale order with price_source='pricelist' when pricelist…
alexis-via Aug 14, 2018
277a6ef
Partner <-> Invoice import config : switch M2O <-> O2M
alexis-via Jan 18, 2018
8d2c209
Add migration script
alexis-via Jan 19, 2018
0e1d561
Add support for multiple invoice import configs in invoice import wizard
alexis-via Aug 14, 2018
5afb1f0
Add O2M field from import config to download config
alexis-via Aug 14, 2018
0768eeb
Finalize the development account_invoice_download
alexis-via Aug 18, 2018
8f3c10a
Add support for additional module-specific weboob config parameters
alexis-via Aug 19, 2018
506d392
account_invoice_import: add a mail gateway
alexis-via Aug 22, 2018
59f5904
Add ability to run cron invoice download from admin for all companies…
alexis-via Aug 23, 2018
81d49c9
Add multi-company support in the invoice import mail gateway
alexis-via Aug 24, 2018
8171ce9
Check the VAT number of the destination partner, to make sure the bus…
alexis-via Aug 25, 2018
a63a137
[UPD] Update account_invoice_import.pot
oca-travis Sep 16, 2018
1bb50d1
[FIX] include some of the fixes proposed in #64
Aug 15, 2018
e12cd08
[11.0][MIG] account_invoice_import
Oct 2, 2018
212764a
[FIX] clean rebase from V10 that where wrong ...
Oct 2, 2018
f5974a3
[FIX] utf8 comment in python3
Oct 2, 2018
957392f
Fix base64 encode/decode + remove supplier_invoice_number + code review
astirpe Oct 12, 2018
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/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
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 @@
# © 2015-2017 Akretion (Alexis de Lattre <alexis.delattre@akretion.com>)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).

{
'name': 'Account Invoice Import',
'version': '11.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': 'http://www.akretion.com',
'depends': [
'account',
'base_iban',
'base_business_document_import',
'onchange_helper',
# add bank_payment dependency to have commercial_partner_id on invoice
# PR in odoo will be create soon
'account_payment_partner',
],
'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,
}
Loading