Metadata-Version: 2.1
Name: odoo14-addon-account_invoice_ubl_peppol
Version: 14.0.1.0.3.dev1
Summary: Generate invoices in PEPPOL 3.0 BIS dialect
Home-page: https://github.com/OCA/edi
Author: Sunflower IT, Odoo Community Association (OCA)
Author-email: support@odoo-community.org
License: AGPL-3
Classifier: Programming Language :: Python
Classifier: Framework :: Odoo
Classifier: Framework :: Odoo :: 14.0
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Requires-Python: >=3.6
Requires-Dist: odoo14-addon-account-invoice-ubl
Requires-Dist: odoo14-addon-partner-coc
Requires-Dist: odoo<14.1dev,>=14.0a

==========================
Account Invoice UBL PEPPOL
==========================

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

.. |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_ubl_peppol
    :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_ubl_peppol
    :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=14.0
    :alt: Try me on Runboat

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

With module `Account Invoice UBL`, invoices are generated according to generic UBL rules.

In Europe, some countries use the PEPPOL 3.0 BIS standard as a more strict subset of UBL.

With this module you can specify some or all of your invoices to be generated and validated
according to this stricter standard.

**Table of contents**

.. contents::
   :local:

Configuration
=============

- Go to menu *Invoicing > Configuration > Settings > Invoicing*, under *Electronic Invoices*.

- Formulate a domain for which invoices the dialect should become PEPPOL.
  By default it is *[]*, so all UBL invoices will be PEPPOL.
  If you want this only for Belgian partners, then you can fill here for example:
  `[('partner_id.country_id.code', '=', 'BE')]`
  Or you can choose to enable this only for selected partner ids.

- You can configure a default tax to use in case an invoice line has no tax specified.
  This is necessary for example in case of an NGO to satisfy business rule
  BR-CO-18. Any tax you choose must also have a UNECE tax type (eg. VAT) and tax
  category (eg. "Services outside scope of tax") defined.

- You can configure a default unit of measure, of which the UNECE code will be used
  in case an invoice line has no unit or product unit. A typical default unit could
  be the Odoo 'unit', configured with a UNECE code of UN, XUN or C62. This is to
  satisfy rule BR-23.

- Go to menu *Contacts*
  Fill the field `coc_registration_number` for your own company's partner record and for
  those partners that you want to send e-invoices to.

- Go to menu *Contacts > Configuration > Localization > Countries*
  On any country relevant for invoice traffic, configure the correct PEPPOL EAS id.
  For the Netherlands, this is for example `0106`, which stands for Dutch chamber of
  commerce number.

- Either: make sure that every invoice has a bank account filled in;
  Or: make sure that your payment modes have a fixed connection to a bank account.
  To do the latter:
  Go to menu *Invoicing > Configuration > Management > Payment mode*
  Per payment model, set the field `bank_account_link` to `fixed`

Usage
=====

In the invoice form click on button `Send & Print`.

If the invoice matches the configured domain for PEPPOL, the invoice will be generated
and validated according to the stricter PEPPOL 3.0 BIS standard.

The validator on https://test.peppolautoriteit.nl/validate can be used to test the
validity of the generated XML file. There are other online validators around as well.

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

* Currently, the user needs to configure the PEPPOL EAS id for each country. For the Netherlands, this is for example `0106`, which stands for Dutch chamber of commerce number. During review, it was noted that (defaults for) these codes could be mapped automatically upon installation of the module, using a post-init hook or a noupdate=1 XML file. This could still be done, saving the perhaps not so tech- or PEPPOL-savvy user some configuration.
* Currently, this module defines allowed EAS codes from a CSV file. But, other modules could also benefit from this data. So the data could be moved to a separate module in the `community-data-files` repository.
* When adding a delivery partner to an invoice, some PEPPOL warnings arise about `DeliveryParty` that should not be included. This is non blocking but it is nice if we could also add a clause in the module to remove this.
* A unit test should be added that actually verifies against PEPPOL and not only against general UBL. This could consist of:

   * Choose a default tax and UoM for this module in `res.config.settings`
   * Create an outgoing invoice on the main company to some partner
   * On the main company's partner record, choose any EU country, set a VAT number and a CoC number
   * On the partner record that is being invoiced, do the same.
   * On the `res.country` records that are being used by these partners, configure a valid PEPPOL EAS code.
   * On both involved partners, configure a bank account.
   * The payment mode that is selected on the invoice should have a `fixed` link to a bank journal.
   * On this bank journal, select a bank account of type `IBAN`.
   * Create a tax and selecting a UNECE tax category (eg. VAT) and a tax type (eg. S)
   * The invoice lines should have this tax defined.
   * Validate the invoice, generate the XML, and pass it through the validator.
* This needs to be tested more thoroughly on credit/refund invoices, and purchase invoices.
* Currently, the module fill in the due date under `PaymentTerms`, but we could prefer the Odoo payment terms field if it is filled.
* Upon clicking Print and Send button on invoice, when an error is encountered, the popup will coincide with the `mail.compose` popup. Improve the UI experience to the user here.

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_ubl_peppol%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
~~~~~~~

* Sunflower IT

Contributors
~~~~~~~~~~~~

* Tom Blauwendraat <tom@sunflowerweb.nl>

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/14.0/account_invoice_ubl_peppol>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
