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

[MIG] account invoice import: Migration to 15.0 #559

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
122 commits
Select commit Hold shift + click to select a range
fa81007
Rename module from account_invoice_pdf_import to account_invoice_import
alexis-via Dec 30, 2015
c3ceb73
Update FR translation
alexis-via Jan 7, 2016
ced50ea
Add instructions to use my PPA for poppler-utils on Ubuntu 14.04 LTS …
alexis-via Jan 9, 2016
a831d35
Add support for direct import of XML files (YAML test provided)
alexis-via Jan 19, 2016
28f6e98
Sometimes, it's easier to extract the total tax amount instead of the…
Jan 20, 2016
36ba9f2
Add an explaination about date parsing in invoice2data
alexis-via Jan 22, 2016
f51f3f2
Add optional support for start/end dates
Jan 22, 2016
77a3a75
Adapt to latest changes in invoice2data
alexis-via Jan 27, 2016
9698da3
Only change name_get of invoice for our use-case, not everywhere
alexis-via Jan 28, 2016
a615989
Update README with latest changes in invoice2data lib
alexis-via Jan 28, 2016
7b06bad
Add support for partner_email to match partners
Feb 2, 2016
781e9d5
Update installation procedure.
alexis-via Feb 11, 2016
d568886
Add modules base_zugferd, account_invoice_import_zugferd and account_…
alexis-via Feb 22, 2016
0cc404d
Log raw result of invoice2data (before we make modifications)
alexis-via Mar 2, 2016
a936035
Fix error in README spotted by Roel Adriaans
alexis-via Mar 15, 2016
3924fbd
Add module account_invoice_import_ubl
alexis-via Mar 15, 2016
ffdd228
Use base_vat_sanitized
alexis-via May 13, 2016
37fa6b7
Add support for import of e-fff invoices (Belgian standard)
alexis-via May 21, 2016
f1d04ed
Add support for local invoice template for invoice2data, see README
alexis-via May 25, 2016
1815fc7
Small usability improvement
alexis-via Jun 21, 2016
991b4b2
Checks that the directory really exists
alexis-via Jul 3, 2016
194da34
Extract regular PDF invoice import from account_invoice_import to a d…
alexis-via Aug 5, 2016
c9e3efe
Adapt code to plug the module 'ovh_supplier_invoice'
alexis-via Aug 12, 2016
a7e492c
Fix product matching
alexis-via Aug 12, 2016
ed8308c
FIX PEP8 and account_invoice_import_invoice2data unittests
alexis-via Aug 15, 2016
881c410
Add module base_business_document_import and start to move some code …
alexis-via Aug 17, 2016
f8a2488
Better/cleaner pivot invoice dict format (no more IDs in the pivot in…
alexis-via Aug 18, 2016
207b2c0
Add module base_ubl (common methods to generate and parse UBL files)
alexis-via Aug 21, 2016
d970b5c
Add module base_phone_business_document_import
alexis-via Aug 24, 2016
53de3c2
Add a unittest on _match_uom
alexis-via Aug 25, 2016
41c0211
Add module base_business_document_import_stock
alexis-via Aug 26, 2016
9785200
Update invoice lines on "Update Existing" invoice import
alexis-via Aug 27, 2016
8c614f0
Fix crash
alexis-via Aug 27, 2016
11238c6
Add multi-company ir.rule on account.invoice.import.config
alexis-via Sep 14, 2016
8c16f56
FIX Don't use _inherit = ['business.document.import']
alexis-via Sep 28, 2016
bf03b68
Fix method call
alexis-via Oct 2, 2016
4f0861f
[IMP] handle the case where the xml file is generated with mime type
adrienpeiffer Oct 4, 2016
fce1050
Add support for extraction + matching on website
alexis-via Oct 4, 2016
e4cbc4d
FIX two stupid bugs
alexis-via Oct 4, 2016
1eceab6
8.0 Add support for partner bank matching on invoice update (#6)
Oct 18, 2016
f17fa6e
8.0 Use try/except when importing external libs (#8)
Oct 19, 2016
7a71143
[MIG] Make modules uninstallable
hbrunn Nov 12, 2016
da2c0c7
OCA Transbot updated translations from Transifex
oca-transbot Nov 29, 2016
b8bc0aa
[ADD] migration of account_invoice_import_invoice2data and dependencies
hbrunn Dec 29, 2016
e181aa2
Add support for 'origin' field in invoice import
alexis-via Jan 6, 2017
e8b9bd3
[FIX] product.product#ean13 was renamed to barcode
hbrunn Jan 9, 2017
ca7aa22
[FIX] tests
hbrunn Jan 9, 2017
d40effa
Port base_business_document_import* to v10
alexis-via Feb 15, 2017
97ac47a
Allow importing invoice without invoice_import_config on partner (use…
alexis-via Mar 27, 2017
ba813e6
Several fixes in account_invoice_import
alexis-via Apr 11, 2017
7c4b197
Improve XML for Factur-X
alexis-via Jul 28, 2017
5f02cc6
Add first support for the import of Factur-X invoices
alexis-via Aug 10, 2017
6b411f6
Add support for allowance and charges on Factur-X invoice import
alexis-via Aug 11, 2017
7c1a394
Fix bug #16 : add support for adjustment lines (per line and global)
alexis-via Aug 13, 2017
cc4fce0
account_invoice_factur-x: now generate refunds with document type = 3…
alexis-via Aug 15, 2017
2031caa
Pre-process parsed_inv even when calling directly _create_invoice()
alexis-via Aug 15, 2017
ab7dd1e
Add support for importing customer invoices (bug #24)
alexis-via Aug 15, 2017
603cf9c
Improve + modularize generation of UBL (up-port from v8 PR)
alexis-via Aug 23, 2017
c8bf751
Finalise the use of the FacturX lib
alexis-via Sep 6, 2017
30ab638
account_invoice_import: workaround a framework bug
alexis-via Oct 4, 2017
abcdde1
account_invoice_import: Add partner_type to _match_partner method for…
alexis-via Oct 14, 2017
3690228
OCA Transbot updated translations from Transifex
oca-transbot Feb 10, 2018
35ef3a1
[10.0] Update to work with latest version of invoice2data (#51)
Mar 11, 2018
e24efd9
OCA Transbot updated translations from Transifex
oca-transbot Mar 31, 2018
e677011
[10.0] Several fixes + import invoices with VAT in a company that can…
Jul 31, 2018
9977777
[UPD] Update account_invoice_import.pot
oca-travis Jul 31, 2018
6af0673
Fix import of sale order with price_source='pricelist' when pricelist…
alexis-via Aug 14, 2018
e8e0140
Partner <-> Invoice import config : switch M2O <-> O2M
alexis-via Jan 18, 2018
1ffd224
Add migration script
alexis-via Jan 19, 2018
ef6bd38
Add support for multiple invoice import configs in invoice import wizard
alexis-via Aug 14, 2018
4d266c4
Add O2M field from import config to download config
alexis-via Aug 14, 2018
5ea7c61
Finalize the development account_invoice_download
alexis-via Aug 18, 2018
06191e0
Add support for additional module-specific weboob config parameters
alexis-via Aug 19, 2018
d48f9ec
account_invoice_import: add a mail gateway
alexis-via Aug 22, 2018
f54e25d
Add ability to run cron invoice download from admin for all companies…
alexis-via Aug 23, 2018
98733d5
Add multi-company support in the invoice import mail gateway
alexis-via Aug 24, 2018
1753c0a
Check the VAT number of the destination partner, to make sure the bus…
alexis-via Aug 25, 2018
3cc8659
[UPD] Update account_invoice_import.pot
oca-travis Sep 16, 2018
d186deb
[FIX] include some of the fixes proposed in #64
Aug 15, 2018
c0e1d98
[11.0][MIG] account_invoice_import
Oct 2, 2018
fc9dc2b
[FIX] clean rebase from V10 that where wrong ...
Oct 2, 2018
2b689bb
[FIX] utf8 comment in python3
Oct 2, 2018
27b8325
Fix base64 encode/decode + remove supplier_invoice_number + code review
astirpe Oct 12, 2018
2bcc687
[UPD] Update account_invoice_import.pot
oca-travis Oct 17, 2018
77b2210
Update translation files
oca-transbot Dec 29, 2018
5b92ab1
[ADD] icon.png
OCA-git-bot Apr 3, 2019
d1b3342
[UPD] Update account_invoice_import.pot
oca-travis Apr 3, 2019
6510cc0
Update translation files
oca-transbot May 20, 2019
6a6e0b9
[UPD] README.rst
OCA-git-bot Jul 29, 2019
0972a4c
[12.0][MIG] account_invoice_import
astirpe Jan 3, 2020
4cf6903
[UPD] README.rst
OCA-git-bot Jan 22, 2020
20fd005
[UPD] Update account_invoice_import.pot
oca-travis Jan 22, 2020
6b40636
Update translation files
oca-transbot Feb 10, 2020
7df3a5f
account_invoice_download: start OCA import bill wizard when using the…
alexis-via Feb 13, 2020
fc96219
Added translation using Weblate (German)
tv-openbig Mar 16, 2020
56beb77
Translated using Weblate (German)
tv-openbig Mar 16, 2020
1dc2dec
[MIG] account_invoice_import_facturx to v12
alexis-via Apr 14, 2020
1c5d57a
[UPD] Update account_invoice_import.pot
oca-travis Apr 29, 2020
97a40f7
Update translation files
oca-transbot Apr 29, 2020
2435c30
Translated using Weblate (German)
marylla May 27, 2020
e97bfa5
[IMP] account_invoice_import: black, isort, prettier
yvaucher Jun 23, 2020
9004182
[MIG] account_invoice_import: Migration to 13.0
yvaucher Jun 23, 2020
e83bc29
[IMP] account_invoice_import: parsed invoice hook
yvaucher Jun 23, 2020
72d3e0d
[IMP] account_invoice_import: Missing partner hook
yvaucher Jun 24, 2020
c9a4327
Add a quick import invoice button
yvaucher Jun 25, 2020
6fca6d7
Restore dashboard button overwrite
yvaucher Jun 27, 2020
fcf6094
[RM] invoice line doesn't exist on V13
vrenaville Jan 21, 2021
0be31ad
[FIX] account_invoice_import: fix headers
NL66278 Dec 2, 2020
afa7f4c
[FIX] account_invoice_import: Reduce method complexity.
NL66278 Dec 2, 2020
205da27
[FIX] account_invoice_import. Do not shadow config module with variable.
NL66278 Dec 3, 2020
4bd0ca4
[MIG] account_invoice_import to v14
alexis-via May 25, 2021
1ea20da
[FIX] account_invoice_import: mail gateway exception
StefanRijnhart May 26, 2021
a85c553
account_invoice_import: Add USAGE.rst
alexis-via May 31, 2021
1776d63
[UPD] Update account_invoice_import.pot
oca-travis Jun 2, 2021
d71d8be
[UPD] README.rst
OCA-git-bot Jun 2, 2021
074aa3e
account_invoice_import: fix analytic account field name
alexis-via Jun 7, 2021
01bf484
account_invoice_import: FIX import config creation from partner
alexis-via Jun 7, 2021
ff9769b
invoice_import: add button box div in account.invoice.import.config f…
alexis-via Jun 9, 2021
4a5e718
account_invoice_import 14.0.1.1.0
OCA-git-bot Jun 11, 2021
d4040b8
Translated using Weblate (French)
Yvesldff Jun 17, 2021
ec63ef3
[15.0-mig-account] [IMP] account_invoice_import: black, isort, prettier
koenloodts Dec 8, 2021
4cece71
[15.0-mig-account] [MIG] account_invoice_import: Migration to 15.0
koenloodts Dec 8, 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
143 changes: 143 additions & 0 deletions account_invoice_import/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
======================
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/14.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-14-0/edi-14-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/14.0
:alt: Try me on Runbot

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

This module has been started by lazy accounting users who hate enter they vendor bills manually in Odoo. Almost all companies have several vendor bills to enter regularly in the system from the same vendors: phone bill, electricity bill, Internet access, train tickets, etc. Most of these invoices are available as PDF. If we are able to automatically extract from the PDF the required information to enter the invoice as vendor bill in Odoo, then this module will create it automatically. 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 order to reliably extract the required information from the invoice, two international standards exists to describe an Invoice in XML:

* `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).

Some e-invoice standards such as `Factur-X <http://fnfe-mpe.org/factur-x/>`_ propose to embed the XML description of the invoice inside the PDF invoice. Other people think that the futur is pure-XML invoices: a European initiative called `PEPPOL <https://peppol.eu/>`_ aims at setting up an open network to exchange e-invoices as UBL XML. We don't know yet which standard and which practice will prevail on electronic invoicing in the future, but we hope that lazy accountants won't have to manually encode their vendor bills in the near future. This module is here to help achieve this goal!

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 Factur-X/CII format, Odoo will extract the embedded XML file and parse it to create the invoice (requires the module *account_invoice_import_facturx*),
* 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:

* Individual/Company: *Company*
* 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 receive 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*).
* If you are in a multi-company setup, you also have to go to the menu *Invoicing > 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 import the invoice in the proper company).

Usage
=====

Go to the menu *Invoicing > Vendors > Import Vendor Bill* and follow the instructions of the wizard. You can also start the wizard from the *Accounting Dashboard*: on the purchase journal, click on the *Upload* button.

This module also supports the scenario where you have a draft vendor bill (generated from a purchase order for instance) and you have to update it to comply with the real invoice sent by the vendor: on the form view of the draft vendor bill, click on the button *Import Invoice File* and follow the instructions of the wizard.

If you have a large volume of invoices to import, you may be interested by the script **mass_invoice_import.py** which is available in the *scripts* subdirectory of this module. If you run:

.. code::

./mass_invoice_import.py --help

you will have detailed instructions on how to use the script.

A particular use case of this script is to have a directory where all the invoices saved are automatically uploaded in Odoo. For that, have a look at the sample script **inotify-sample.sh** available in the same subdirectory. Edit this sample script to adapt it to your needs.

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

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

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:%2014.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>
* Yannick Vaucher <[email protected]>
* Ronald Portier <[email protected]>
* Koen Loodts <[email protected]>

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.

.. |maintainer-alexis-via| image:: https://github.com/alexis-via.png?size=40px
:target: https://github.com/alexis-via
:alt: alexis-via

Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:

|maintainer-alexis-via|

This module is part of the `OCA/edi <https://github.com/OCA/edi/tree/14.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": "15.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