Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
918f554
[ADD] initial draft of l10n_it_bill_of_entry module
tafaRU Jul 8, 2013
80e36bd
[fix] copyright
eLBati Jul 11, 2013
f7b4c79
[MOV] move addons out of __unported__ (they remain not installable)
sbidoul Oct 13, 2015
5c857c3
[MIG] Rename manifest files
pedrobaeza Oct 6, 2016
abdcea0
[10.0][MIG]l10n_it_bill_of_entry: migration to rel. 10
Sep 21, 2017
fdaab44
porting l10n_it_bill_of_entry to v12
eLBati Feb 9, 2021
63b988c
Update CONFIGURE.rst
mrcast Mar 24, 2021
bdbb6f7
3 menu for 3 customs doc types
eLBati Jan 28, 2022
ed00928
Do not copy fields that should not be copied
eLBati Jan 28, 2022
4f0e7f4
Only draft forwarder invoices should be linked, validated invoices al…
eLBati Jan 28, 2022
459c976
in caso di dichiarazione d'intento inviata alla dogana, la dogana non…
eLBati Feb 3, 2022
ba88b3d
advance_customs_vat only valid for forwarder invoices
eLBati Feb 3, 2022
3c99725
Manually fix manifest website key
SirTakobi Aug 5, 2022
5f5d724
FIX l10n_it_bill_of_entry : TypeError: exceptions must derive from Ba…
eLBati Sep 27, 2022
8c97846
[IMP] l10n_it_bill_of_entry: pre-commit execution
SirTakobi Oct 26, 2022
eb909c2
[MIG] l10n_it_bill_of_entry: Migration to 14.0
SirTakobi Oct 26, 2022
205f993
Translated using Weblate (Italian)
francesco-ooops Mar 6, 2023
8bb5e09
[REF] l10n_it_bill_of_entry: Tests must not be imported
SirAionTech Oct 3, 2023
2aee321
Translated using Weblate (Italian)
mymage Sep 27, 2023
a5e19fe
[MIG] l10n_it_bill_of_entry: Migration to 16.0
SirAionTech Oct 3, 2023
00ad864
Translated using Weblate (Italian)
mymage Jan 15, 2024
f8c07b2
Updated from template
SirAionTech Nov 17, 2023
0ec5b50
[REF] l10n_it_bill_of_entry: Reformatted after template update
SirAionTech Feb 14, 2024
278dbeb
[FIX] l10n_it_bill_of_entry: Multi company management in tests
SirAionTech Jun 5, 2024
3b787c5
Translated using Weblate (Italian)
primes2h Jul 8, 2024
f8dbc23
[IMP] l10n_it_bill_of_entry: pre-commit auto fixes
odooNextev Mar 19, 2025
e03b009
[MIG] l10n_it_bill_of_entry: Migration to 18.0
odooNextev Mar 19, 2025
48622c5
[FIX] l10n_it_bill_of_entry: only invoice product lines in boe storno…
odooNextev Mar 18, 2025
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
196 changes: 196 additions & 0 deletions l10n_it_bill_of_entry/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
====================
ITA - Bolle doganali
====================

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

.. |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%2Fl10n--italy-lightgray.png?logo=github
:target: https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_bill_of_entry
:alt: OCA/l10n-italy
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/l10n-italy-18-0/l10n-italy-18-0-l10n_it_bill_of_entry
: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/l10n-italy&target_branch=18.0
:alt: Try me on Runboat

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

This module enables to manage extraUE import purchases, generating a
bill of entry according to the supplier invoice.

It involves three documents:

- Supplier Invoice
- Forwarder Invoice
- Bill of Entry

**Table of contents**

.. contents::
:local:

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

**English**

Mandatory settings:

- An account journal required by the closing transfer account move
(e.g. "Bolle Doganali").
- An account journal for extraUE supplier invoices, apart from ordinary
supplier invoices. In this way, extraUE supplier invoices don't
appear in VAT registries; in this way, VAT registries have no missing
numbers.
- Create the "Extra UE goods purchases" and add a tax mapping: purchase
taxes (e.g. 22%) should be mapped to to no one tax. In this way,
every purchase invoice for extra UE fiscal position don't show taxes
in lines, according to law.
- A virtual supplier (e.g. "Customs" or "Dogana") for the bill of
entry.
- The forwarder as a real supplier.

Optional settings:

- An expense account where recording the bill of entry net amount (e.g.
"ACQUISTO MERCI ExtraUE").
- An expense account where recording the bill of entry VAT amount, paid
in advance by the forwarder and declared in the forwarder invoice
(e.g. "SPESE DOGANALI ANTICIPATE").
- An account tax, with the same VAT rate as the ordinary one (i.e. 22%
for Italy), applied on the bill of entry net amount (e.g. "22% debito
ExtraUE"). In this way, bill of entries are highlighted in VAT
registries due to this tax code.
- An account for delivery expenses, recorded in the forwarder invoice
(e.g. "SPESE DI TRASPORTO").
- An account for customs duties, recorded in the forwarder invoice
(e.g. "DIRITTI DOGANALI").
- An account for stamp duties, recorded in the forwarder invoice (e.g.
"IMPOSTE DI BOLLO").

**Italiano**

Impostazioni obbligatorie:

- Un registro utilizzato per la registrazione di giroconto (ad es.
"Bolle Doganali" o "Varie") da impostare in configurazione
contabilità.
- Un imposta con aliquota standard da applicare alla bolla doganale (ad
es. "22% credito ExtraUE") da impostare in configurazione
contabilità. In questo modo questa imposta viene evidenziata nei
registri IVA.
- Un fornitore "Dogana" per le bolle doganali, da impostare in
configurazione contabilità.
- Un registro per le fatture dei fornitori extra UE, distinto da quello
delle fatture passive ordinarie. In questo modo, le fatture dei
fornitori extra non appariranno nei registri IVA ed i registri IVA
non avranno numeri mancanti.
- Una posizione fiscale "Acquisti beni extra UE" e aggiungere la
mappatura: l'imposta d'acquisto (ad es. 22%) deve essere mappata a
nessuna imposta. In questo modo, ogni fattura passive per questa
posizione fiscale non avrà imposte sulle righe.
- Il fornitore spedizioniere

Impostazioni opzionali:

- Un conto di costo dove registrare l'importo netto della bolla
doganale (ad es. "ACQUISTO MERCI ExtraUE"), da associare
eventualmente ai prodotti acquistati extra UE
- Un conto di costo dove registrare l'importo dell'IVA della bolla
doganale, pagata in anticipo dello spedizioniere e evidenziata nella
fattura dello spedizioniere (ad es. "SPESE DOGANALI ANTICIPATE").
- Un conto per le spese di consegna, registrate nella fattura
spedizioniere (ad es. "SPESE DI TRASPORTO")
- Un conto per i diritti doganali, registrati nella fattura
spedizioniere (ad es. "DIRITTI DOGANALI")
- Un conto per le imposte di bollo, registrate nella fattura
spedizioniere (ad es. "IMPOSTE DI BOLLO")

Usage
=====

**English**

From supplier invoice it is possible to generate the bill of entry.

The forwarder invoice requires one (or more) line(s) marked as the
advance customs vat.

At the forwarder invoice confirmation, it will be linked to the closing
transfer account move, which closes and reconciles the bill of entry.

**Italiano**

Dalla fattura fornitore è possibile generare la bolla doganale.

Nella fattura spedizioniere bisogna indicare quale (o quali) riga
(righe) rappresenti(no) l'IVA anticipata alla dogana.

Alla conferma della fattura spedizioniere, verrà generata la scrittura
contabile di giroconto per chiudere la bolla doganale.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/l10n-italy/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/l10n-italy/issues/new?body=module:%20l10n_it_bill_of_entry%0Aversion:%2018.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
-------

* Agile Business Group
* CQ Creativi Quadrati
* TAKOBI

Contributors
------------

- Alex Comba <alex.comba@agilebg.com>
- `TAKOBI <https://takobi.online>`__:

- Lorenzo Battistini
- Simone Rubino <sir@takobi.online>

- Diego Bruselli <d.bruselli@creativiquadrati.it>
- `Aion Tech <https://aiontech.company/>`__:

- Simone Rubino <simone.rubino@aion-tech.it>

- `Nextev Srl <https://nextev.it/>`__ <odoo@nextev.it>

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/l10n-italy <https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_bill_of_entry>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
3 changes: 3 additions & 0 deletions l10n_it_bill_of_entry/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

from . import models
27 changes: 27 additions & 0 deletions l10n_it_bill_of_entry/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Copyright 2013-2017 Agile Business Group sagl (http://www.agilebg.com)
# Copyright 2013-2017 Alex Comba <alex.comba@agilebg.com>
# Copyright 2013-2017 Lorenzo Battistini <https://github.com/eLBati>
# Copyright 2017 CQ Creativi Quadrati (http://www.creativiquadrati.it)
# Copyright 2017 Diego Bruselli <d.bruselli@creativiquadrati.it>
# Copyright 2022 Simone Rubino - TAKOBI
# Copyright 2023 Simone Rubino - Aion Tech
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).

{
"name": "ITA - Bolle doganali",
"version": "18.0.1.0.0",
"category": "Localization/Italy",
"author": "Agile Business Group, CQ Creativi Quadrati, TAKOBI, "
"Odoo Community Association (OCA)",
"website": "https://github.com/OCA/l10n-italy",
"license": "AGPL-3",
"depends": ["base", "account", "l10n_it"],

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

La dipendenza da l10n_it in passato andava evitata, ma direi che ormai l'abbiamo sdoganata 😉 (pun intended)
👍

"data": [
"views/company_view.xml",
"views/account_invoice_view.xml",
],
"demo": [
"demo/bill_of_entry_demo.xml",
],
"installable": True,
}
142 changes: 142 additions & 0 deletions l10n_it_bill_of_entry/demo/bill_of_entry_demo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
<?xml version="1.0" encoding="utf-8" ?>
<!--
~ Copyright 2022 Simone Rubino - TAKOBI
~ Copyright 2023 Simone Rubino - Aion Tech
~ License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
-->
<odoo>
<!-- Account account -->
<record id="account_account_extraEU_purchase" model="account.account">
<field name="code">280310</field>
<field name="name">ExtraEU Goods Purchase</field>
<field name="account_type">liability_current</field>
<field name="reconcile">True</field>
</record>
<record id="account_account_adv_customs_expense" model="account.account">
<field name="code">280320</field>
<field name="name">Advanced Customs Expenses</field>
<field name="account_type">liability_current</field>
<field name="reconcile">True</field>
</record>
<record id="account_account_customs_expense" model="account.account">
<field name="code">421500</field>
<field name="name">Customs Expenses</field>
<field name="account_type">expense</field>
<field name="reconcile">True</field>
</record>
<record id="account_account_stamp_duties" model="account.account">
<field name="code">421400</field>
<field name="name">Stamp Duties</field>
<field name="account_type">expense</field>
<field name="reconcile">True</field>
</record>

<!--
When l10n_it is installed, it creates the l10n_it.1_4201 account
(420100 costi di trasporto)
-->
<record id="account_account_delivery_expense" model="account.account">
<field name="code">420101</field>
<field name="name">Delivery Expenses</field>
<field name="account_type">expense</field>
<field name="reconcile">True</field>
<field name="company_ids" eval="[(6, 0, [ref('base.demo_company_it')])]" />
</record>

<!-- Account Tax -->
<record id="tax_tag_22extraUE" model="account.account.tag">
<field name="name">22aExtraUE</field>
<field name="applicability">taxes</field>
<field name="country_id" ref="base.it" />
</record>
<record id="tax_22extraUE" model="account.tax">
<field name="name">Iva al 22% ExtraUE (credito)</field>
<field name="type_tax_use">purchase</field>
<field name="amount_type">percent</field>
<field name="amount">22</field>
<field name="description">22aExtraUE</field>
<field name="country_id" ref="base.it" />
<field
name="tax_group_id"
eval="ref('account.%s_tax_group_iva_22' % ref('base.demo_company_it'))"
/>
<field name="company_id" ref="base.demo_company_it" />
<field name="sequence">99</field>
</record>

<!-- Partner -->
<record id="partner_customs" model="res.partner">
<field name="name">Customs</field>
<field name="is_company">True</field>
<field name="company_id" ref="base.demo_company_it" />
</record>

<!-- Account Fiscal Position -->
<record id="fiscal_position_extraEU" model="account.fiscal.position">
<field name="name">Extra EU</field>
<field name="company_id" ref="base.demo_company_it" />
</record>

<!-- Account Journal -->
<record id="account_journal_purchase_extraEU" model="account.journal">
<field name="name">Supplier Invoices ExtraUE</field>
<field name="type">purchase</field>
<field name="code">NOUE</field>
<field name="company_id" ref="base.demo_company_it" />
</record>

<!-- Product product -->
<record id="product_product_extraEU_purchase" model="product.product">
<field name="name">ExtraEU Goods Purchase</field>
<field name="categ_id" ref="product.product_category_1" />
<field name="purchase_ok">True</field>
<field name="standard_price">1.0</field>
<field name="list_price">1.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit" />
</record>
<record id="product_product_adv_customs_expense" model="product.product">
<field name="name">Advance Customs Expense</field>
<field name="categ_id" ref="product.product_category_1" />
<field name="purchase_ok">True</field>
<field name="standard_price">1.0</field>
<field name="list_price">1.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit" />
</record>
<record id="product_product_customs_expense" model="product.product">
<field name="name">Customs Expense</field>
<field name="categ_id" ref="product.product_category_1" />
<field name="purchase_ok">True</field>
<field name="standard_price">1.0</field>
<field name="list_price">1.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit" />
</record>
<record id="product_product_delivery" model="product.product">
<field name="name">Delivery Expense</field>
<field name="categ_id" ref="product.product_category_1" />
<field name="purchase_ok">True</field>
<field name="standard_price">1.0</field>
<field name="list_price">1.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit" />
<!-- Usually this is standard VAT -->
<field name="supplier_taxes_id" eval="[(6, 0, [ref('tax_22extraUE')])]" />
</record>
<record id="product_product_stamp_duties" model="product.product">
<field name="name">Stamp Duties</field>
<field name="categ_id" ref="product.product_category_1" />
<field name="purchase_ok">True</field>
<field name="standard_price">1.0</field>
<field name="list_price">1.0</field>
<field name="type">service</field>
<field name="uom_id" ref="uom.product_uom_unit" />
<field name="uom_po_id" ref="uom.product_uom_unit" />
<field name="property_account_expense_id" ref="account_account_stamp_duties" />
</record>
</odoo>
Loading