Author: |
Sunflower IT, Odoo Community Association (OCA) |
License: |
AGPL-3 |
Branch: |
13-edi-gs1-fho |
Repository: |
acsone/edi |
Dependencies: |
account_invoice_ubl,
base,
base_iban,
and
partner_coc |
Languages: |
HTML (408, 30.1%),
PO File (256, 18.9%),
Python (431, 31.8%),
XML (118, 8.7%),
and
reStructuredText (141, 10.4%) |
Other repositories: |
OCA/edi,
aurestic/edi,
brain-tec/edi,
and
sunflowerit/edi |
<h1 class="title">Account Invoice UBL PEPPOL</h1>
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/edi/tree/13.0/account_invoice_ubl_peppol"><img alt="OCA/edi" src="https://img.shields.io/badge/github-OCA%2Fedi-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/edi-13-0/edi-13-0-account_invoice_ubl_peppol"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runbot.odoo-community.org/runbot/226/13.0"><img alt="Try me on Runbot" src="https://img.shields.io/badge/runbot-Try%20me-875A7B.png" /></a></p>
<p>With module <cite>Account Invoice UBL</cite>, invoices are generated according to generic UBL rules.</p>
<p>In Europe, some countries use the PEPPOL 3.0 BIS standard as a more strict subset of UBL.</p>
<p>With this module you can specify some or all of your invoices to be generated and validated
according to this stricter standard.</p>
<p><strong>Table of contents</strong></p>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#configuration" id="id1">Configuration</a></li>
<li><a class="reference internal" href="#usage" id="id2">Usage</a></li>
<li><a class="reference internal" href="#known-issues-roadmap" id="id3">Known issues / Roadmap</a></li>
<li><a class="reference internal" href="#bug-tracker" id="id4">Bug Tracker</a></li>
<li><a class="reference internal" href="#credits" id="id5">Credits</a><ul>
<li><a class="reference internal" href="#authors" id="id6">Authors</a></li>
<li><a class="reference internal" href="#contributors" id="id7">Contributors</a></li>
<li><a class="reference internal" href="#maintainers" id="id8">Maintainers</a></li>
</ul>
</li>
</ul>
</div>
<a name="configuration"></a>
<h2><a class="toc-backref" href="#id1">Configuration</a></h2>
<ul class="simple">
<li>Go to menu <em>Invoicing > Configuration > Settings > Invoicing</em>, under <em>Electronic Invoices</em>.</li>
<li>Formulate a domain for which invoices the dialect should become PEPPOL.
By default it is <em>[]</em>, so all UBL invoices will be PEPPOL.
If you want this only for Belgian partners, then you can fill here for example:
<cite>[('partner_id.country_id.code', '=', 'BE')]</cite>
Or you can choose to enable this only for selected partner ids.</li>
<li>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.</li>
<li>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.</li>
<li>Go to menu <em>Contacts</em>
Fill the field <cite>coc_registration_number</cite> for your own company's partner record and for
those partners that you want to send e-invoices to.</li>
<li>Go to menu <em>Contacts > Configuration > Localization > Countries</em>
On any country relevant for invoice traffic, configure the correct PEPPOL EAS id.
For the Netherlands, this is for example <cite>0106</cite>, which stands for Dutch chamber of
commerce number.</li>
<li>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 <em>Invoicing > Configuration > Management > Payment mode</em>
Per payment model, set the field <cite>bank_account_link</cite> to <cite>fixed</cite></li>
</ul>
<a name="usage"></a>
<h2><a class="toc-backref" href="#id2">Usage</a></h2>
<p>In the invoice form click on button <cite>Send & Print</cite>.</p>
<p>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.</p>
<p>The validator on <a class="reference external" href="https://test.peppolautoriteit.nl/validate">https://test.peppolautoriteit.nl/validate</a> can be used to test the
validity of the generated XML file. There are other online validators around as well.</p>
<a name="known-issues-roadmap"></a>
<h2><a class="toc-backref" href="#id3">Known issues / Roadmap</a></h2>
<ul>
<li><p class="first">Currently, the user needs to configure the PEPPOL EAS id for each country. For the Netherlands, this is for example <cite>0106</cite>, 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.</p>
</li>
<li><p class="first">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 <cite>community-data-files</cite> repository.</p>
</li>
<li><p class="first">When adding a delivery partner to an invoice, some PEPPOL warnings arise about <cite>DeliveryParty</cite> 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.</p>
</li>
<li><p class="first">A unit test should be added that actually verifies against PEPPOL and not only against general UBL. This could consist of:</p>
<blockquote>
<ul class="simple">
<li>Choose a default tax and UoM for this module in <cite>res.config.settings</cite></li>
<li>Create an outgoing invoice on the main company to some partner</li>
<li>On the main company's partner record, choose any EU country, set a VAT number and a CoC number</li>
<li>On the partner record that is being invoiced, do the same.</li>
<li>On the <cite>res.country</cite> records that are being used by these partners, configure a valid PEPPOL EAS code.</li>
<li>On both involved partners, configure a bank account.</li>
<li>The payment mode that is selected on the invoice should have a <cite>fixed</cite> link to a bank journal.</li>
<li>On this bank journal, select a bank account of type <cite>IBAN</cite>.</li>
<li>Create a tax and selecting a UNECE tax category (eg. VAT) and a tax type (eg. S)</li>
<li>The invoice lines should have this tax defined.</li>
<li>Validate the invoice, generate the XML, and pass it through the validator.</li>
</ul>
</blockquote>
</li>
<li><p class="first">This needs to be tested more thoroughly on credit/refund invoices, and purchase invoices.</p>
</li>
<li><p class="first">Currently, the module fill in the due date under <cite>PaymentTerms</cite>, but we could prefer the Odoo payment terms field if it is filled.</p>
</li>
<li><p class="first">Upon clicking Print and Send button on invoice, when an error is encountered, the popup will coincide with the <cite>mail.compose</cite> popup. Improve the UI experience to the user here.</p>
</li>
</ul>
<a name="bug-tracker"></a>
<h2><a class="toc-backref" href="#id4">Bug Tracker</a></h2>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/edi/issues">GitHub Issues</a>.
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
<a class="reference external" href="https://github.com/OCA/edi/issues/new?body=module:%20account_invoice_ubl_peppol%0Aversion:%2013.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p>
<a name="credits"></a>
<h2><a class="toc-backref" href="#id5">Credits</a></h2>
<a name="authors"></a>
<h3><a class="toc-backref" href="#id6">Authors</a></h3>
<ul class="simple">
<li>Sunflower IT</li>
</ul>
<a name="contributors"></a>
<h3><a class="toc-backref" href="#id7">Contributors</a></h3>
<ul class="simple">
<li>Tom Blauwendraat <<a class="reference external" href="mailto:tom@sunflowerweb.nl">tom@sunflowerweb.nl</a>></li>
</ul>
<a name="maintainers"></a>
<h3><a class="toc-backref" href="#id8">Maintainers</a></h3>
<p>This module is maintained by the OCA.</p>
<a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
<p>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.</p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/edi/tree/13.0/account_invoice_ubl_peppol">OCA/edi</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>