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

[15.0][MIG] account_invoice_import: Migration to 15.0 #1063

Open
wants to merge 121 commits into
base: 15.0
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
121 commits
Select commit Hold shift + click to select a range
dfc1ade
Rename module from account_invoice_pdf_import to account_invoice_import
alexis-via Dec 30, 2015
fd09c9a
Update FR translation
alexis-via Jan 7, 2016
bb597a2
Add instructions to use my PPA for poppler-utils on Ubuntu 14.04 LTS …
alexis-via Jan 9, 2016
d81a603
Add support for direct import of XML files (YAML test provided)
alexis-via Jan 19, 2016
1691c01
Sometimes, it's easier to extract the total tax amount instead of the…
Jan 20, 2016
b12fe04
Add an explaination about date parsing in invoice2data
alexis-via Jan 22, 2016
378ffa5
Add optional support for start/end dates
Jan 22, 2016
3a4733c
Adapt to latest changes in invoice2data
alexis-via Jan 27, 2016
5d116da
Only change name_get of invoice for our use-case, not everywhere
alexis-via Jan 28, 2016
80491cd
Update README with latest changes in invoice2data lib
alexis-via Jan 28, 2016
fab709b
Add support for partner_email to match partners
Feb 2, 2016
d793c23
Update installation procedure.
alexis-via Feb 11, 2016
933a250
Add modules base_zugferd, account_invoice_import_zugferd and account_…
alexis-via Feb 22, 2016
abbd3d9
Log raw result of invoice2data (before we make modifications)
alexis-via Mar 2, 2016
6df4709
Fix error in README spotted by Roel Adriaans
alexis-via Mar 15, 2016
944d74e
Add module account_invoice_import_ubl
alexis-via Mar 15, 2016
303f447
Use base_vat_sanitized
alexis-via May 13, 2016
6f34a39
Add support for import of e-fff invoices (Belgian standard)
alexis-via May 21, 2016
7548b1e
Add support for local invoice template for invoice2data, see README
alexis-via May 25, 2016
d7293ac
Small usability improvement
alexis-via Jun 21, 2016
c1ddaf6
Checks that the directory really exists
alexis-via Jul 3, 2016
c2f8c4e
Extract regular PDF invoice import from account_invoice_import to a d…
alexis-via Aug 5, 2016
3fd3f96
Adapt code to plug the module 'ovh_supplier_invoice'
alexis-via Aug 12, 2016
1db0271
Fix product matching
alexis-via Aug 12, 2016
a61f9e4
FIX PEP8 and account_invoice_import_invoice2data unittests
alexis-via Aug 15, 2016
0d6b6de
Add module base_business_document_import and start to move some code …
alexis-via Aug 17, 2016
a66fa31
Better/cleaner pivot invoice dict format (no more IDs in the pivot in…
alexis-via Aug 18, 2016
bf4d45e
Add module base_ubl (common methods to generate and parse UBL files)
alexis-via Aug 21, 2016
02552f0
Add module base_phone_business_document_import
alexis-via Aug 24, 2016
1ceb9cf
Add a unittest on _match_uom
alexis-via Aug 25, 2016
df9231b
Add module base_business_document_import_stock
alexis-via Aug 26, 2016
9562627
Update invoice lines on "Update Existing" invoice import
alexis-via Aug 27, 2016
560c18d
Add multi-company ir.rule on account.invoice.import.config
alexis-via Sep 14, 2016
5f57fac
FIX Don't use _inherit = ['business.document.import']
alexis-via Sep 28, 2016
3d2d4c6
Fix method call
alexis-via Oct 2, 2016
a52a0d9
[IMP] handle the case where the xml file is generated with mime type
adrienpeiffer Oct 4, 2016
710f613
Add support for extraction + matching on website
alexis-via Oct 4, 2016
07b956d
FIX two stupid bugs
alexis-via Oct 4, 2016
efa5320
8.0 Add support for partner bank matching on invoice update (#6)
Oct 18, 2016
bf97832
8.0 Use try/except when importing external libs (#8)
Oct 19, 2016
cdf273b
[MIG] Make modules uninstallable
hbrunn Nov 12, 2016
96432f0
[ADD] migration of account_invoice_import_invoice2data and dependencies
hbrunn Dec 29, 2016
843d319
Add support for 'origin' field in invoice import
alexis-via Jan 6, 2017
5a39d3e
[FIX] product.product#ean13 was renamed to barcode
hbrunn Jan 9, 2017
06c71a9
[FIX] tests
hbrunn Jan 9, 2017
12ba9b6
Port base_business_document_import* to v10
alexis-via Feb 15, 2017
523dfca
Allow importing invoice without invoice_import_config on partner (use…
alexis-via Mar 27, 2017
d9b36be
Several fixes in account_invoice_import
alexis-via Apr 11, 2017
a611f88
Improve XML for Factur-X
alexis-via Jul 28, 2017
3f7f47b
Add first support for the import of Factur-X invoices
alexis-via Aug 10, 2017
a06d933
Add support for allowance and charges on Factur-X invoice import
alexis-via Aug 11, 2017
09d68b8
Fix bug #16 : add support for adjustment lines (per line and global)
alexis-via Aug 13, 2017
a9a355b
account_invoice_factur-x: now generate refunds with document type = 3…
alexis-via Aug 15, 2017
a432374
Pre-process parsed_inv even when calling directly _create_invoice()
alexis-via Aug 15, 2017
3c44e63
Add support for importing customer invoices (bug #24)
alexis-via Aug 15, 2017
82bf932
Improve + modularize generation of UBL (up-port from v8 PR)
alexis-via Aug 23, 2017
a84c59d
Finalise the use of the FacturX lib
alexis-via Sep 6, 2017
4685582
account_invoice_import: workaround a framework bug
alexis-via Oct 4, 2017
1ec2d99
account_invoice_import: Add partner_type to _match_partner method for…
alexis-via Oct 14, 2017
ee30ca1
[10.0] Update to work with latest version of invoice2data (#51)
Mar 11, 2018
8b7e296
[10.0] Several fixes + import invoices with VAT in a company that can…
Jul 31, 2018
1045476
Fix import of sale order with price_source='pricelist' when pricelist…
alexis-via Aug 14, 2018
c85c20a
Partner <-> Invoice import config : switch M2O <-> O2M
alexis-via Jan 18, 2018
0f26994
Add migration script
alexis-via Jan 19, 2018
cdcb076
Add support for multiple invoice import configs in invoice import wizard
alexis-via Aug 14, 2018
5a40a66
Add O2M field from import config to download config
alexis-via Aug 14, 2018
ccafecd
Finalize the development account_invoice_download
alexis-via Aug 18, 2018
7105a3b
Add support for additional module-specific weboob config parameters
alexis-via Aug 19, 2018
2f45ef2
account_invoice_import: add a mail gateway
alexis-via Aug 22, 2018
23f02e6
Add ability to run cron invoice download from admin for all companies…
alexis-via Aug 23, 2018
cbe2e5e
Add multi-company support in the invoice import mail gateway
alexis-via Aug 24, 2018
da86597
Check the VAT number of the destination partner, to make sure the bus…
alexis-via Aug 25, 2018
c421b48
[FIX] include some of the fixes proposed in #64
Aug 15, 2018
138c8fa
[11.0][MIG] account_invoice_import
Oct 2, 2018
77806e3
Fix base64 encode/decode + remove supplier_invoice_number + code review
astirpe Oct 12, 2018
8c01fe0
[12.0][MIG] account_invoice_import
astirpe Jan 3, 2020
dec80da
account_invoice_download: start OCA import bill wizard when using the…
alexis-via Feb 13, 2020
9a1e065
Added translation using Weblate (German)
tv-openbig Mar 16, 2020
c003800
[MIG] account_invoice_import_facturx to v12
alexis-via Apr 14, 2020
8d82c54
Translated using Weblate (German)
marylla May 27, 2020
5c27978
[IMP] account_invoice_import: black, isort, prettier
yvaucher Jun 23, 2020
d16c3df
[MIG] account_invoice_import: Migration to 13.0
yvaucher Jun 23, 2020
3e94739
[IMP] account_invoice_import: parsed invoice hook
yvaucher Jun 23, 2020
23dda47
[IMP] account_invoice_import: Missing partner hook
yvaucher Jun 24, 2020
76a5276
Add a quick import invoice button
yvaucher Jun 25, 2020
170c95b
Restore dashboard button overwrite
yvaucher Jun 27, 2020
d06e0ce
[RM] invoice line doesn't exist on V13
vrenaville Jan 21, 2021
6847bf8
[FIX] account_invoice_import: fix headers
NL66278 Dec 2, 2020
f8a3ae4
[FIX] account_invoice_import: Reduce method complexity.
NL66278 Dec 2, 2020
987256e
[FIX] account_invoice_import. Do not shadow config module with variable.
NL66278 Dec 3, 2020
668e9a9
[MIG] account_invoice_import to v14
alexis-via May 25, 2021
d35965b
[FIX] account_invoice_import: mail gateway exception
StefanRijnhart May 26, 2021
269c333
account_invoice_import: Add USAGE.rst
alexis-via May 31, 2021
153a582
account_invoice_import: FIX import config creation from partner
alexis-via Jun 7, 2021
dfe7571
invoice_import: add button box div in account.invoice.import.config f…
alexis-via Jun 9, 2021
8bde5c4
Translated using Weblate (French)
Yvesldff Jun 17, 2021
674bcb0
Added translation using Weblate (Dutch)
bosd Jan 27, 2022
902ca71
[FIX] Fix access right issues when using actions
sebalix Jan 31, 2022
ef5b9a6
[FIX] access to form view of partners for users who are not accountants
alexis-via Feb 13, 2022
661c747
Translated using Weblate (Dutch)
bosd May 15, 2022
ddafdb8
account_invoice_import: tests use setUpClass
simahawk May 26, 2022
d2600a0
account_invoice_import: fix error logging
simahawk May 26, 2022
b192dd9
account_invoice_import: more tests for mail gateway
simahawk May 26, 2022
b13300d
account_invoice_import: Set a specific journal
alexis-via May 20, 2022
a42a10e
account_invoice_import: improve handling of simple PDF invoices
alexis-via Jul 14, 2022
3407d5a
account_invoice_import: skip mail attachments that are not PDF nor XML
alexis-via Aug 3, 2022
42011fb
Translated using Weblate (French)
klodr Aug 7, 2022
32f1520
account_invoice_import: add support for additional fields
bosd May 14, 2022
7ef12de
Translated using Weblate (Dutch)
bosd Feb 7, 2023
2633871
[REM] states on group is malicious as shadowing states on fields
i-vyshnevska Jun 15, 2022
d9b537a
[IMP] set proper state with message instead of error raising
i-vyshnevska Feb 26, 2023
b3ad8be
account_invoice_import: Improve comments
bosd Mar 9, 2023
7ef5689
[FIX] account_invoice_import: crash due to missing method
alexis-via Mar 23, 2023
ff02d36
Translated using Weblate (French)
klodr May 29, 2023
17f15f2
account_invoice_import: use OCA wiz from in invoice tree view
alexis-via Oct 9, 2023
b3df2db
*: Fix pylint
etobella Oct 29, 2023
97603bd
[IMP] account_invoice_import: Add a unit test with tax included
yvaucher Feb 8, 2021
b9e9975
[FIX] account_invoice_import: fix unit test with tax included
i-vyshnevska Feb 12, 2021
06f73fb
Translated using Weblate (Spanish)
Ivorra78 Nov 22, 2023
670672b
[IMP] account_invoice_import: add support for discount
alexis-via Jul 25, 2024
e1f2cac
[MIG] account_invoice_import: Migration to 15.0
V3st1g3 Nov 7, 2024
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
147 changes: 147 additions & 0 deletions account_invoice_import/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,147 @@
======================
Account Invoice Import
======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:26f0853d4122605d020e48687fa420f66fdad1a6c7e41efe74059e0a845f5348
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |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/15.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-15-0/edi-15-0-account_invoice_import
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/edi&target_branch=15.0
:alt: Try me on Runboat

|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 *VAT Number* (this field 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).
* The bank accounts of the suppliers can be automatically populated from data received from invoice files. For security reasons this has to be activated seperatly: Go to the menu *Settings > Invoicing and select* "Auto-create Bank Account of Supplier".

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 to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/edi/issues/new?body=module:%20account_invoice_import%0Aversion:%2015.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]>
* Simone Orsi <[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/15.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
Loading