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 #93

Closed
wants to merge 141 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
141 commits
Select commit Hold shift + click to select a range
afe5bbc
Add module base_business_document_import and start to move some code …
alexis-via Aug 17, 2016
503b317
Better/cleaner pivot invoice dict format (no more IDs in the pivot in…
alexis-via Aug 18, 2016
6450c60
Add module base_ubl (common methods to generate and parse UBL files)
alexis-via Aug 21, 2016
a250ab2
Parse customer/supplier ref in UBL and allow to match partner on 'ref'
alexis-via Aug 21, 2016
cb08e5d
Add matching of delivery partner
alexis-via Aug 23, 2016
379552f
Add module base_phone_business_document_import
alexis-via Aug 24, 2016
9975169
Add unitest on partner matching and update code of partner matching
alexis-via Aug 24, 2016
24e2aaf
Add a unittest on _match_uom
alexis-via Aug 25, 2016
0aa5d95
Add module base_business_document_import_stock
alexis-via Aug 26, 2016
e65af9c
Fix code + PEP8
alexis-via Aug 30, 2016
dfe888e
handle the case where the xml file is generated with mime type 'text/…
adrienpeiffer Oct 4, 2016
dbdb23b
Add support for extraction + matching on website
alexis-via Oct 4, 2016
ff36ff5
8.0 Add support for partner bank matching on invoice update (#6)
Oct 18, 2016
e1101a2
8.0 Use try/except when importing external libs (#8)
Oct 19, 2016
0a1e3fc
Make modules uninstallable
hbrunn Nov 12, 2016
fc66fa0
OCA Transbot updated translations from Transifex
oca-transbot Nov 29, 2016
8329a9d
migration of account_invoice_import_invoice2data and dependencies
hbrunn Dec 29, 2016
621f01c
Fix wrong class name
alexis-via Jan 6, 2017
c7a148a
product.product#ean13 was renamed to barcode
hbrunn Jan 9, 2017
efc43e6
tests
hbrunn Jan 9, 2017
9f3f33f
Prepare v10 branch
alexis-via Feb 15, 2017
bf356c5
Port base_business_document_import to v10
alexis-via Feb 15, 2017
53e8241
Add match on analytic accounts
alexis-via Feb 15, 2017
682c629
Port base_business_document_import* to v10
alexis-via Feb 19, 2017
b834fc0
First working version of account_invoice_import
alexis-via Feb 27, 2017
82e29f3
Continue port of modules for v10.0, in particular sale_order_import_*…
alexis-via Feb 27, 2017
4b05b90
Port account_invoice_import_factur-x and account_invoice_import_ubl t…
alexis-via Feb 28, 2017
0333061
Smarter account code matching + add unittests
alexis-via Mar 22, 2017
5bed8ff
FIX xmlid in tests
alexis-via Mar 26, 2017
7636ef6
FIX crash when pivot format had a 'note' key (and no attachment)
alexis-via Mar 31, 2017
0460116
Update test suite
alexis-via Jun 1, 2017
73dc4d1
Add first support for the import of Factur-X invoices
alexis-via Aug 10, 2017
f563677
Fix bug #16 : add support for adjustment lines (per line and global)
alexis-via Aug 13, 2017
c322afa
base_business_document_import migrate to 11.0
Jan 27, 2018
32c98ce
OCA Transbot updated translations from Transifex
oca-transbot Mar 3, 2018
d427d6c
use SQL to change company
Apr 13, 2018
28f26ea
Fix for multicompany
astirpe May 18, 2018
c030498
Update base_business_document_import.pot
oca-travis Jul 4, 2018
c4599f1
include some of the fixes proposed in #64
Aug 15, 2018
e2aab2d
Update base_business_document_import.pot
oca-travis Oct 17, 2018
ea45e6e
Check the VAT number of the destination partner, to make sure the bus…
alexis-via Aug 25, 2018
1c77a74
Update base_business_document_import.pot
oca-travis Oct 31, 2018
17560f3
Update translation files
oca-transbot Dec 9, 2018
49d0b7d
Rename base_phone_business_document_import to base_business_document_…
alexis-via Aug 27, 2016
7c4f8e4
import phonenumbers in try/except
alexis-via Aug 28, 2016
dc6969e
Add and update README.rst
alexis-via Sep 4, 2016
3290473
8.0 Add support for partner bank matching on invoice update (#6)
Oct 18, 2016
e1df04e
8.0 Use try/except when importing external libs (#8)
Oct 19, 2016
5f4c4ac
Prepare v10 branch
alexis-via Feb 15, 2017
59381f6
Port base_business_document_import* to v10
alexis-via Feb 19, 2017
a30f397
Update base_business_document_import_phone.pot
oca-travis Jul 31, 2018
a7aa037
Don't update last_run when download fails
alexis-via Aug 21, 2018
722eea0
Add ability to run cron invoice download from admin for all companies…
alexis-via Aug 23, 2018
8463a22
[MIG] base_business_document_import from 11 to 12
alexis-via Feb 20, 2019
d8ae007
Module product_uom_unece renamed to uom_unece
alexis-via Feb 24, 2019
46059ef
Rename module from account_invoice_pdf_import to account_invoice_import
alexis-via Dec 30, 2015
beb0634
Update FR translation
alexis-via Jan 7, 2016
66e0d76
Add instructions to use my PPA for poppler-utils on Ubuntu 14.04 LTS …
alexis-via Jan 9, 2016
0968219
Add support for direct import of XML files (YAML test provided)
alexis-via Jan 19, 2016
b696c09
Sometimes, it's easier to extract the total tax amount instead of the…
Jan 20, 2016
4051813
Add an explaination about date parsing in invoice2data
alexis-via Jan 22, 2016
0a703de
Add optional support for start/end dates
Jan 22, 2016
4676259
Adapt to latest changes in invoice2data
alexis-via Jan 27, 2016
838e328
Only change name_get of invoice for our use-case, not everywhere
alexis-via Jan 28, 2016
7e277c7
Update README with latest changes in invoice2data lib
alexis-via Jan 28, 2016
1f71bac
Add support for partner_email to match partners
Feb 2, 2016
f2fb0a2
Update installation procedure.
alexis-via Feb 11, 2016
972c868
Add modules base_zugferd, account_invoice_import_zugferd and account_…
alexis-via Feb 22, 2016
c92eebe
Log raw result of invoice2data (before we make modifications)
alexis-via Mar 2, 2016
2193b67
Fix error in README spotted by Roel Adriaans
alexis-via Mar 15, 2016
36a028f
Add module account_invoice_import_ubl
alexis-via Mar 15, 2016
fd5f1d9
Use base_vat_sanitized
alexis-via May 13, 2016
9a3d933
Add support for import of e-fff invoices (Belgian standard)
alexis-via May 21, 2016
1794cff
Add support for local invoice template for invoice2data, see README
alexis-via May 25, 2016
c29defb
Small usability improvement
alexis-via Jun 21, 2016
1bc0e36
Checks that the directory really exists
alexis-via Jul 3, 2016
1e86994
Extract regular PDF invoice import from account_invoice_import to a d…
alexis-via Aug 5, 2016
e2ff8f2
Adapt code to plug the module 'ovh_supplier_invoice'
alexis-via Aug 12, 2016
b80701a
Fix product matching
alexis-via Aug 12, 2016
fa8969d
FIX PEP8 and account_invoice_import_invoice2data unittests
alexis-via Aug 15, 2016
4be1d1a
Add module base_business_document_import and start to move some code …
alexis-via Aug 17, 2016
3c3857f
Better/cleaner pivot invoice dict format (no more IDs in the pivot in…
alexis-via Aug 18, 2016
209e4fe
Add module base_ubl (common methods to generate and parse UBL files)
alexis-via Aug 21, 2016
f0c0288
Add module base_phone_business_document_import
alexis-via Aug 24, 2016
6d3f975
Add a unittest on _match_uom
alexis-via Aug 25, 2016
a54a689
Add module base_business_document_import_stock
alexis-via Aug 26, 2016
8fc8c66
Update invoice lines on "Update Existing" invoice import
alexis-via Aug 27, 2016
75e6a69
Fix crash
alexis-via Aug 27, 2016
1b9bf24
Add multi-company ir.rule on account.invoice.import.config
alexis-via Sep 14, 2016
87b447d
FIX Don't use _inherit = ['business.document.import']
alexis-via Sep 28, 2016
4873aff
Fix method call
alexis-via Oct 2, 2016
5816b68
[IMP] handle the case where the xml file is generated with mime type
adrienpeiffer Oct 4, 2016
74eb7f2
Add support for extraction + matching on website
alexis-via Oct 4, 2016
df63f5b
FIX two stupid bugs
alexis-via Oct 4, 2016
51bac8d
8.0 Add support for partner bank matching on invoice update (#6)
Oct 18, 2016
2fa45ee
8.0 Use try/except when importing external libs (#8)
Oct 19, 2016
f9edf51
[MIG] Make modules uninstallable
hbrunn Nov 12, 2016
9c3df57
OCA Transbot updated translations from Transifex
oca-transbot Nov 29, 2016
1e011fd
[ADD] migration of account_invoice_import_invoice2data and dependencies
hbrunn Dec 29, 2016
b780437
Add support for 'origin' field in invoice import
alexis-via Jan 6, 2017
9fa4f85
[FIX] product.product#ean13 was renamed to barcode
hbrunn Jan 9, 2017
f97ae39
[FIX] tests
hbrunn Jan 9, 2017
c613cfe
Port base_business_document_import* to v10
alexis-via Feb 15, 2017
af941e2
Allow importing invoice without invoice_import_config on partner (use…
alexis-via Mar 27, 2017
3a98687
Several fixes in account_invoice_import
alexis-via Apr 11, 2017
8185e97
Improve XML for Factur-X
alexis-via Jul 28, 2017
ddd8aa2
Add first support for the import of Factur-X invoices
alexis-via Aug 10, 2017
8f90aca
Add support for allowance and charges on Factur-X invoice import
alexis-via Aug 11, 2017
f569f1e
Fix bug #16 : add support for adjustment lines (per line and global)
alexis-via Aug 13, 2017
f553c5f
account_invoice_factur-x: now generate refunds with document type = 3…
alexis-via Aug 15, 2017
2def99f
Pre-process parsed_inv even when calling directly _create_invoice()
alexis-via Aug 15, 2017
4eb36b4
Add support for importing customer invoices (bug #24)
alexis-via Aug 15, 2017
29da5d1
Improve + modularize generation of UBL (up-port from v8 PR)
alexis-via Aug 23, 2017
6fdbb53
Finalise the use of the FacturX lib
alexis-via Sep 6, 2017
cbb9ff9
account_invoice_import: workaround a framework bug
alexis-via Oct 4, 2017
744f300
account_invoice_import: Add partner_type to _match_partner method for…
alexis-via Oct 14, 2017
e2fb7b8
OCA Transbot updated translations from Transifex
oca-transbot Feb 10, 2018
9061dff
[10.0] Update to work with latest version of invoice2data (#51)
Mar 11, 2018
5342270
OCA Transbot updated translations from Transifex
oca-transbot Mar 31, 2018
b3e1df6
[10.0] Several fixes + import invoices with VAT in a company that can…
Jul 31, 2018
15ad162
[UPD] Update account_invoice_import.pot
oca-travis Jul 31, 2018
40f95bc
Fix import of sale order with price_source='pricelist' when pricelist…
alexis-via Aug 14, 2018
f7eecd7
Partner <-> Invoice import config : switch M2O <-> O2M
alexis-via Jan 18, 2018
133e07d
Add migration script
alexis-via Jan 19, 2018
fb8ca0d
Add support for multiple invoice import configs in invoice import wizard
alexis-via Aug 14, 2018
1c5570c
Add O2M field from import config to download config
alexis-via Aug 14, 2018
75f1c0e
Finalize the development account_invoice_download
alexis-via Aug 18, 2018
72102a1
Add support for additional module-specific weboob config parameters
alexis-via Aug 19, 2018
885701a
account_invoice_import: add a mail gateway
alexis-via Aug 22, 2018
a26c969
Add ability to run cron invoice download from admin for all companies…
alexis-via Aug 23, 2018
24c322d
Add multi-company support in the invoice import mail gateway
alexis-via Aug 24, 2018
4c3309a
Check the VAT number of the destination partner, to make sure the bus…
alexis-via Aug 25, 2018
fb619e4
[UPD] Update account_invoice_import.pot
oca-travis Sep 16, 2018
c05e0d0
[FIX] include some of the fixes proposed in #64
Aug 15, 2018
633a503
[11.0][MIG] account_invoice_import
Oct 2, 2018
15aa4bd
[FIX] clean rebase from V10 that where wrong ...
Oct 2, 2018
c74b29e
[FIX] utf8 comment in python3
Oct 2, 2018
a1d2ddd
Fix base64 encode/decode + remove supplier_invoice_number + code review
astirpe Oct 12, 2018
f41a4e8
[UPD] Update account_invoice_import.pot
oca-travis Oct 17, 2018
879dcb0
Update translation files
oca-transbot Dec 29, 2018
f4590ff
bump to 12.0.1.0.0
rubdos Mar 9, 2019
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': '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': 'http://www.akretion.com',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
'website': 'http://www.akretion.com',
'website': 'https://github.com/OCA/edi',

'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',
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this dependency is not needed anymore. Could you check?

],
'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