odoo-addon-l10n-it-bill-of-entry 16.0.1.0.1.1__py3-none-any.whl → 16.0.1.0.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -7,7 +7,7 @@ ITA - Bolle doganali
7
7
  !! This file is generated by oca-gen-addon-readme !!
8
8
  !! changes will be overwritten. !!
9
9
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
- !! source digest: sha256:797aec23d73bd9b18d5c80392d2310798e15660f13b166a61a754d33b8e27677
10
+ !! source digest: sha256:4b5e4ea6b0a95d75a37e030e47545ce5def73b288487ca3e4ead528fc56c921a
11
11
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
12
 
13
13
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -33,9 +33,9 @@ bill of entry according to the supplier invoice.
33
33
 
34
34
  It involves three documents:
35
35
 
36
- - Supplier Invoice
37
- - Forwarder Invoice
38
- - Bill of Entry
36
+ - Supplier Invoice
37
+ - Forwarder Invoice
38
+ - Bill of Entry
39
39
 
40
40
  **Table of contents**
41
41
 
@@ -49,75 +49,73 @@ Configuration
49
49
 
50
50
  Mandatory settings:
51
51
 
52
- - An account journal required by the closing transfer account move
53
- (e.g. "Bolle Doganali").
54
- - An account journal for extraUE supplier invoices, apart from ordinary
55
- supplier invoices. In this way, extraUE supplier invoices don't
56
- appear in VAT registries; in this way, VAT registries have no missing
57
- numbers.
58
- - Create the "Extra UE goods purchases" and add a tax mapping: purchase
59
- taxes (e.g. 22%) should be mapped to to no one tax. In this way,
60
- every purchase invoice for extra UE fiscal position don't show taxes
61
- in lines, according to law.
62
- - A virtual supplier (e.g. "Customs" or "Dogana") for the bill of
63
- entry.
64
- - The forwarder as a real supplier.
52
+ - An account journal required by the closing transfer account move (e.g.
53
+ "Bolle Doganali").
54
+ - An account journal for extraUE supplier invoices, apart from ordinary
55
+ supplier invoices. In this way, extraUE supplier invoices don't appear
56
+ in VAT registries; in this way, VAT registries have no missing
57
+ numbers.
58
+ - Create the "Extra UE goods purchases" and add a tax mapping: purchase
59
+ taxes (e.g. 22%) should be mapped to to no one tax. In this way, every
60
+ purchase invoice for extra UE fiscal position don't show taxes in
61
+ lines, according to law.
62
+ - A virtual supplier (e.g. "Customs" or "Dogana") for the bill of entry.
63
+ - The forwarder as a real supplier.
65
64
 
66
65
  Optional settings:
67
66
 
68
- - An expense account where recording the bill of entry net amount (e.g.
69
- "ACQUISTO MERCI ExtraUE").
70
- - An expense account where recording the bill of entry VAT amount, paid
71
- in advance by the forwarder and declared in the forwarder invoice
72
- (e.g. "SPESE DOGANALI ANTICIPATE").
73
- - An account tax, with the same VAT rate as the ordinary one (i.e. 22%
74
- for Italy), applied on the bill of entry net amount (e.g. "22% debito
75
- ExtraUE"). In this way, bill of entries are highlighted in VAT
76
- registries due to this tax code.
77
- - An account for delivery expenses, recorded in the forwarder invoice
78
- (e.g. "SPESE DI TRASPORTO").
79
- - An account for customs duties, recorded in the forwarder invoice
80
- (e.g. "DIRITTI DOGANALI").
81
- - An account for stamp duties, recorded in the forwarder invoice (e.g.
82
- "IMPOSTE DI BOLLO").
67
+ - An expense account where recording the bill of entry net amount (e.g.
68
+ "ACQUISTO MERCI ExtraUE").
69
+ - An expense account where recording the bill of entry VAT amount, paid
70
+ in advance by the forwarder and declared in the forwarder invoice
71
+ (e.g. "SPESE DOGANALI ANTICIPATE").
72
+ - An account tax, with the same VAT rate as the ordinary one (i.e. 22%
73
+ for Italy), applied on the bill of entry net amount (e.g. "22% debito
74
+ ExtraUE"). In this way, bill of entries are highlighted in VAT
75
+ registries due to this tax code.
76
+ - An account for delivery expenses, recorded in the forwarder invoice
77
+ (e.g. "SPESE DI TRASPORTO").
78
+ - An account for customs duties, recorded in the forwarder invoice (e.g.
79
+ "DIRITTI DOGANALI").
80
+ - An account for stamp duties, recorded in the forwarder invoice (e.g.
81
+ "IMPOSTE DI BOLLO").
83
82
 
84
83
  **Italiano**
85
84
 
86
85
  Impostazioni obbligatorie:
87
86
 
88
- - Un registro utilizzato per la registrazione di giroconto (ad es.
89
- "Bolle Doganali" o "Varie") da impostare in configurazione
90
- contabilità.
91
- - Un imposta con aliquota standard da applicare alla bolla doganale (ad
92
- es. "22% credito ExtraUE") da impostare in configurazione
93
- contabilità. In questo modo questa imposta viene evidenziata nei
94
- registri IVA.
95
- - Un fornitore "Dogana" per le bolle doganali, da impostare in
96
- configurazione contabilità.
97
- - Un registro per le fatture dei fornitori extra UE, distinto da quello
98
- delle fatture passive ordinarie. In questo modo, le fatture dei
99
- fornitori extra non appariranno nei registri IVA ed i registri IVA
100
- non avranno numeri mancanti.
101
- - Una posizione fiscale "Acquisti beni extra UE" e aggiungere la
102
- mappatura: l'imposta d'acquisto (ad es. 22%) deve essere mappata a
103
- nessuna imposta. In questo modo, ogni fattura passive per questa
104
- posizione fiscale non avrà imposte sulle righe.
105
- - Il fornitore spedizioniere
87
+ - Un registro utilizzato per la registrazione di giroconto (ad es.
88
+ "Bolle Doganali" o "Varie") da impostare in configurazione
89
+ contabilità.
90
+ - Un imposta con aliquota standard da applicare alla bolla doganale (ad
91
+ es. "22% credito ExtraUE") da impostare in configurazione contabilità.
92
+ In questo modo questa imposta viene evidenziata nei registri IVA.
93
+ - Un fornitore "Dogana" per le bolle doganali, da impostare in
94
+ configurazione contabilità.
95
+ - Un registro per le fatture dei fornitori extra UE, distinto da quello
96
+ delle fatture passive ordinarie. In questo modo, le fatture dei
97
+ fornitori extra non appariranno nei registri IVA ed i registri IVA non
98
+ avranno numeri mancanti.
99
+ - Una posizione fiscale "Acquisti beni extra UE" e aggiungere la
100
+ mappatura: l'imposta d'acquisto (ad es. 22%) deve essere mappata a
101
+ nessuna imposta. In questo modo, ogni fattura passive per questa
102
+ posizione fiscale non avrà imposte sulle righe.
103
+ - Il fornitore spedizioniere
106
104
 
107
105
  Impostazioni opzionali:
108
106
 
109
- - Un conto di costo dove registrare l'importo netto della bolla
110
- doganale (ad es. "ACQUISTO MERCI ExtraUE"), da associare
111
- eventualmente ai prodotti acquistati extra UE
112
- - Un conto di costo dove registrare l'importo dell'IVA della bolla
113
- doganale, pagata in anticipo dello spedizioniere e evidenziata nella
114
- fattura dello spedizioniere (ad es. "SPESE DOGANALI ANTICIPATE").
115
- - Un conto per le spese di consegna, registrate nella fattura
116
- spedizioniere (ad es. "SPESE DI TRASPORTO")
117
- - Un conto per i diritti doganali, registrati nella fattura
118
- spedizioniere (ad es. "DIRITTI DOGANALI")
119
- - Un conto per le imposte di bollo, registrate nella fattura
120
- spedizioniere (ad es. "IMPOSTE DI BOLLO")
107
+ - Un conto di costo dove registrare l'importo netto della bolla doganale
108
+ (ad es. "ACQUISTO MERCI ExtraUE"), da associare eventualmente ai
109
+ prodotti acquistati extra UE
110
+ - Un conto di costo dove registrare l'importo dell'IVA della bolla
111
+ doganale, pagata in anticipo dello spedizioniere e evidenziata nella
112
+ fattura dello spedizioniere (ad es. "SPESE DOGANALI ANTICIPATE").
113
+ - Un conto per le spese di consegna, registrate nella fattura
114
+ spedizioniere (ad es. "SPESE DI TRASPORTO")
115
+ - Un conto per i diritti doganali, registrati nella fattura
116
+ spedizioniere (ad es. "DIRITTI DOGANALI")
117
+ - Un conto per le imposte di bollo, registrate nella fattura
118
+ spedizioniere (ad es. "IMPOSTE DI BOLLO")
121
119
 
122
120
  Usage
123
121
  =====
@@ -165,16 +163,16 @@ Authors
165
163
  Contributors
166
164
  ------------
167
165
 
168
- - Alex Comba <alex.comba@agilebg.com>
169
- - `TAKOBI <https://takobi.online>`__:
166
+ - Alex Comba <alex.comba@agilebg.com>
167
+ - `TAKOBI <https://takobi.online>`__:
170
168
 
171
- - Lorenzo Battistini
172
- - Simone Rubino <sir@takobi.online>
169
+ - Lorenzo Battistini
170
+ - Simone Rubino <sir@takobi.online>
173
171
 
174
- - Diego Bruselli <d.bruselli@creativiquadrati.it>
175
- - `Aion Tech <https://aiontech.company/>`__:
172
+ - Diego Bruselli <d.bruselli@creativiquadrati.it>
173
+ - `Aion Tech <https://aiontech.company/>`__:
176
174
 
177
- - Simone Rubino <simone.rubino@aion-tech.it>
175
+ - Simone Rubino <simone.rubino@aion-tech.it>
178
176
 
179
177
  Maintainers
180
178
  -----------
@@ -9,7 +9,7 @@
9
9
 
10
10
  {
11
11
  "name": "ITA - Bolle doganali",
12
- "version": "16.0.1.0.1",
12
+ "version": "16.0.1.0.3",
13
13
  "category": "Localization/Italy",
14
14
  "author": "Agile Business Group, CQ Creativi Quadrati, TAKOBI, "
15
15
  "Odoo Community Association (OCA)",
@@ -32,6 +32,7 @@ msgid "Advance Customs Vat"
32
32
  msgstr ""
33
33
 
34
34
  #. module: l10n_it_bill_of_entry
35
+ #: model:ir.model.fields,field_description:l10n_it_bill_of_entry.field_account_move_line__bill_of_entry_id
35
36
  #: model:ir.model.fields.selection,name:l10n_it_bill_of_entry.selection__account_move__customs_doc_type__bill_of_entry
36
37
  msgid "Bill of Entry"
37
38
  msgstr ""
@@ -140,7 +141,7 @@ msgstr ""
140
141
  #. odoo-python
141
142
  #: code:addons/l10n_it_bill_of_entry/models/account_move.py:0
142
143
  #, python-format
143
- msgid "Customs supplier"
144
+ msgid "Customs supplier %s"
144
145
  msgstr ""
145
146
 
146
147
  #. module: l10n_it_bill_of_entry
@@ -236,6 +237,20 @@ msgstr ""
236
237
  msgid "No bill of entries found for this invoice"
237
238
  msgstr ""
238
239
 
240
+ #. module: l10n_it_bill_of_entry
241
+ #. odoo-python
242
+ #: code:addons/l10n_it_bill_of_entry/models/account_move.py:0
243
+ #, python-format
244
+ msgid "No bill of entry lines to reconcile"
245
+ msgstr ""
246
+
247
+ #. module: l10n_it_bill_of_entry
248
+ #. odoo-python
249
+ #: code:addons/l10n_it_bill_of_entry/models/account_move.py:0
250
+ #, python-format
251
+ msgid "No storno lines to reconcile"
252
+ msgstr ""
253
+
239
254
  #. module: l10n_it_bill_of_entry
240
255
  #. odoo-python
241
256
  #: code:addons/l10n_it_bill_of_entry/models/account_move.py:0
@@ -151,7 +151,9 @@ class AccountMove(models.Model):
151
151
  "date": self.invoice_date,
152
152
  }
153
153
  move_lines = []
154
- for inv_line in self.invoice_line_ids:
154
+ for inv_line in self.invoice_line_ids.filtered(
155
+ lambda line: line.display_type == "product"
156
+ ):
155
157
  if inv_line.advance_customs_vat:
156
158
  line_vals = {
157
159
  "name": _("Customs expenses"),
@@ -170,14 +172,17 @@ class AccountMove(models.Model):
170
172
  )
171
173
  boe_account = first(boe_payable_lines).account_id
172
174
  line_vals = {
173
- "name": _("Customs supplier"),
175
+ "name": _("Customs supplier %s", bill_of_entry.name),
174
176
  "account_id": first(boe_account).id,
175
177
  "debit": bill_of_entry.amount_total,
176
178
  "credit": 0.0,
177
179
  "partner_id": bill_of_entry.partner_id.id,
180
+ "bill_of_entry_id": bill_of_entry.id,
178
181
  }
179
182
  move_lines.append((0, 0, line_vals))
180
- for boe_line in bill_of_entry.invoice_line_ids:
183
+ for boe_line in bill_of_entry.invoice_line_ids.filtered(
184
+ lambda line: line.display_type == "product"
185
+ ):
181
186
  if boe_line.tax_ids:
182
187
  if len(boe_line.tax_ids) > 1:
183
188
  raise UserError(
@@ -200,20 +205,23 @@ class AccountMove(models.Model):
200
205
 
201
206
  def _reconcile_bill_of_entry_storno(self, move):
202
207
  self.ensure_one()
203
- reconcile_ids = []
204
- for move_line in move.line_ids:
205
- line_account = move_line.account_id
206
- for boe in self.forwarder_bill_of_entry_ids:
207
- boe_payable_lines = boe.line_ids.filtered(
208
- lambda line: line.account_type == "liability_payable"
209
- )
210
- boe_account = first(boe_payable_lines).account_id
211
- if line_account == boe_account:
212
- reconcile_ids.append(move_line.id)
213
- for boe_move_line in boe.line_ids:
214
- if boe_move_line.account_id == boe_account:
215
- reconcile_ids.append(boe_move_line.id)
216
- return self.env["account.move.line"].browse(reconcile_ids).reconcile()
208
+ move_line_ids = move.line_ids.filtered(
209
+ lambda line: line.account_type == "liability_payable"
210
+ )
211
+ if not move_line_ids:
212
+ raise UserError(_("No storno lines to reconcile"))
213
+ for move_line in move_line_ids:
214
+ reconcile_ids = []
215
+ reconcile_ids.append(move_line.id)
216
+ boe_line_ids = move_line.bill_of_entry_id.line_ids.filtered(
217
+ lambda boe_line,
218
+ move_line_account=move_line.account_id: boe_line.account_id
219
+ == move_line_account
220
+ )
221
+ if not boe_line_ids:
222
+ raise UserError(_("No bill of entry lines to reconcile"))
223
+ reconcile_ids.extend(boe_line_ids.ids)
224
+ self.env["account.move.line"].browse(reconcile_ids).reconcile()
217
225
 
218
226
  def action_post(self):
219
227
  res = super().action_post()
@@ -296,3 +304,10 @@ class AccountMoveLine(models.Model):
296
304
  _inherit = "account.move.line"
297
305
 
298
306
  advance_customs_vat = fields.Boolean()
307
+ bill_of_entry_id = fields.Many2one(
308
+ "account.move",
309
+ string="Bill of Entry",
310
+ readonly=True,
311
+ copy=False,
312
+ domain="[('customs_doc_type', '=', 'bill_of_entry')]",
313
+ )
@@ -8,10 +8,11 @@
8
8
 
9
9
  /*
10
10
  :Author: David Goodger (goodger@python.org)
11
- :Id: $Id: html4css1.css 8954 2022-01-20 10:10:25Z milde $
11
+ :Id: $Id: html4css1.css 9511 2024-01-13 09:50:07Z milde $
12
12
  :Copyright: This stylesheet has been placed in the public domain.
13
13
 
14
14
  Default cascading style sheet for the HTML output of Docutils.
15
+ Despite the name, some widely supported CSS2 features are used.
15
16
 
16
17
  See https://docutils.sourceforge.io/docs/howto/html-stylesheets.html for how to
17
18
  customize this style sheet.
@@ -274,7 +275,7 @@ pre.literal-block, pre.doctest-block, pre.math, pre.code {
274
275
  margin-left: 2em ;
275
276
  margin-right: 2em }
276
277
 
277
- pre.code .ln { color: grey; } /* line numbers */
278
+ pre.code .ln { color: gray; } /* line numbers */
278
279
  pre.code, code { background-color: #eeeeee }
279
280
  pre.code .comment, code .comment { color: #5C6576 }
280
281
  pre.code .keyword, code .keyword { color: #3B0D06; font-weight: bold }
@@ -300,7 +301,7 @@ span.option {
300
301
  span.pre {
301
302
  white-space: pre }
302
303
 
303
- span.problematic {
304
+ span.problematic, pre.problematic {
304
305
  color: red }
305
306
 
306
307
  span.section-subtitle {
@@ -366,7 +367,7 @@ ul.auto-toc {
366
367
  !! This file is generated by oca-gen-addon-readme !!
367
368
  !! changes will be overwritten. !!
368
369
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
369
- !! source digest: sha256:797aec23d73bd9b18d5c80392d2310798e15660f13b166a61a754d33b8e27677
370
+ !! source digest: sha256:4b5e4ea6b0a95d75a37e030e47545ce5def73b288487ca3e4ead528fc56c921a
370
371
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
371
372
  <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/l10n-italy/tree/16.0/l10n_it_bill_of_entry"><img alt="OCA/l10n-italy" src="https://img.shields.io/badge/github-OCA%2Fl10n--italy-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/l10n-italy-16-0/l10n-italy-16-0-l10n_it_bill_of_entry"><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://runboat.odoo-community.org/builds?repo=OCA/l10n-italy&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
372
373
  <p>This module enables to manage extraUE import purchases, generating a
@@ -396,18 +397,17 @@ bill of entry according to the supplier invoice.</p>
396
397
  <p><strong>English</strong></p>
397
398
  <p>Mandatory settings:</p>
398
399
  <ul class="simple">
399
- <li>An account journal required by the closing transfer account move
400
- (e.g. “Bolle Doganali”).</li>
400
+ <li>An account journal required by the closing transfer account move (e.g.
401
+ “Bolle Doganali”).</li>
401
402
  <li>An account journal for extraUE supplier invoices, apart from ordinary
402
- supplier invoices. In this way, extraUE supplier invoices don’t
403
- appear in VAT registries; in this way, VAT registries have no missing
403
+ supplier invoices. In this way, extraUE supplier invoices don’t appear
404
+ in VAT registries; in this way, VAT registries have no missing
404
405
  numbers.</li>
405
406
  <li>Create the “Extra UE goods purchases” and add a tax mapping: purchase
406
- taxes (e.g. 22%) should be mapped to to no one tax. In this way,
407
- every purchase invoice for extra UE fiscal position don’t show taxes
408
- in lines, according to law.</li>
409
- <li>A virtual supplier (e.g. “Customs” or “Dogana”) for the bill of
410
- entry.</li>
407
+ taxes (e.g. 22%) should be mapped to to no one tax. In this way, every
408
+ purchase invoice for extra UE fiscal position don’t show taxes in
409
+ lines, according to law.</li>
410
+ <li>A virtual supplier (e.g. “Customs” or “Dogana”) for the bill of entry.</li>
411
411
  <li>The forwarder as a real supplier.</li>
412
412
  </ul>
413
413
  <p>Optional settings:</p>
@@ -423,8 +423,8 @@ ExtraUE”). In this way, bill of entries are highlighted in VAT
423
423
  registries due to this tax code.</li>
424
424
  <li>An account for delivery expenses, recorded in the forwarder invoice
425
425
  (e.g. “SPESE DI TRASPORTO”).</li>
426
- <li>An account for customs duties, recorded in the forwarder invoice
427
- (e.g. “DIRITTI DOGANALI”).</li>
426
+ <li>An account for customs duties, recorded in the forwarder invoice (e.g.
427
+ “DIRITTI DOGANALI”).</li>
428
428
  <li>An account for stamp duties, recorded in the forwarder invoice (e.g.
429
429
  “IMPOSTE DI BOLLO”).</li>
430
430
  </ul>
@@ -435,15 +435,14 @@ registries due to this tax code.</li>
435
435
  “Bolle Doganali” o “Varie”) da impostare in configurazione
436
436
  contabilità.</li>
437
437
  <li>Un imposta con aliquota standard da applicare alla bolla doganale (ad
438
- es. “22% credito ExtraUE”) da impostare in configurazione
439
- contabilità. In questo modo questa imposta viene evidenziata nei
440
- registri IVA.</li>
438
+ es. “22% credito ExtraUE”) da impostare in configurazione contabilità.
439
+ In questo modo questa imposta viene evidenziata nei registri IVA.</li>
441
440
  <li>Un fornitore “Dogana” per le bolle doganali, da impostare in
442
441
  configurazione contabilità.</li>
443
442
  <li>Un registro per le fatture dei fornitori extra UE, distinto da quello
444
443
  delle fatture passive ordinarie. In questo modo, le fatture dei
445
- fornitori extra non appariranno nei registri IVA ed i registri IVA
446
- non avranno numeri mancanti.</li>
444
+ fornitori extra non appariranno nei registri IVA ed i registri IVA non
445
+ avranno numeri mancanti.</li>
447
446
  <li>Una posizione fiscale “Acquisti beni extra UE” e aggiungere la
448
447
  mappatura: l’imposta d’acquisto (ad es. 22%) deve essere mappata a
449
448
  nessuna imposta. In questo modo, ogni fattura passive per questa
@@ -452,9 +451,9 @@ posizione fiscale non avrà imposte sulle righe.</li>
452
451
  </ul>
453
452
  <p>Impostazioni opzionali:</p>
454
453
  <ul class="simple">
455
- <li>Un conto di costo dove registrare l’importo netto della bolla
456
- doganale (ad es. “ACQUISTO MERCI ExtraUE”), da associare
457
- eventualmente ai prodotti acquistati extra UE</li>
454
+ <li>Un conto di costo dove registrare l’importo netto della bolla doganale
455
+ (ad es. “ACQUISTO MERCI ExtraUE”), da associare eventualmente ai
456
+ prodotti acquistati extra UE</li>
458
457
  <li>Un conto di costo dove registrare l’importo dell’IVA della bolla
459
458
  doganale, pagata in anticipo dello spedizioniere e evidenziata nella
460
459
  fattura dello spedizioniere (ad es. “SPESE DOGANALI ANTICIPATE”).</li>
@@ -518,7 +517,9 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
518
517
  <div class="section" id="maintainers">
519
518
  <h2><a class="toc-backref" href="#toc-entry-7">Maintainers</a></h2>
520
519
  <p>This module is maintained by the OCA.</p>
521
- <a class="reference external image-reference" href="https://odoo-community.org"><img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" /></a>
520
+ <a class="reference external image-reference" href="https://odoo-community.org">
521
+ <img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
522
+ </a>
522
523
  <p>OCA, or the Odoo Community Association, is a nonprofit organization whose
523
524
  mission is to support the collaborative development of Odoo features and
524
525
  promote its widespread use.</p>
@@ -13,7 +13,9 @@ from odoo.addons.account.tests.common import AccountTestInvoicingCommon
13
13
 
14
14
  @tagged("post_install", "-at_install")
15
15
  class TestBillOfEntry(AccountTestInvoicingCommon):
16
- def _create_invoice(self, partner, customs_doc_type, journal, products_list):
16
+ def _create_invoice(
17
+ self, partner, customs_doc_type, journal, products_list, notes_sections_list
18
+ ):
17
19
  invoice = self.init_invoice(
18
20
  "in_invoice",
19
21
  partner=partner,
@@ -25,9 +27,14 @@ class TestBillOfEntry(AccountTestInvoicingCommon):
25
27
  invoice_form.journal_id = journal
26
28
  for product, qty, price in products_list:
27
29
  with invoice_form.invoice_line_ids.new() as line:
30
+ line.name = product.name
28
31
  line.product_id = product
29
32
  line.price_unit = price
30
33
  line.quantity = qty
34
+ for name, display_type in notes_sections_list:
35
+ with invoice_form.invoice_line_ids.new() as line:
36
+ line.name = name
37
+ line.display_type = display_type
31
38
 
32
39
  invoice = invoice_form.save()
33
40
  return invoice
@@ -144,6 +151,7 @@ class TestBillOfEntry(AccountTestInvoicingCommon):
144
151
  [
145
152
  (self.product1, 1, 2500),
146
153
  ],
154
+ [],
147
155
  )
148
156
 
149
157
  # Bill of Entry - draft state
@@ -154,12 +162,31 @@ class TestBillOfEntry(AccountTestInvoicingCommon):
154
162
  [
155
163
  (self.product_extra, 1, 2500),
156
164
  ],
165
+ [
166
+ ("nota", "line_note"),
167
+ ],
157
168
  )
158
169
  bill_of_entry_form = Form(self.bill_of_entry)
159
170
  bill_of_entry_form.supplier_invoice_ids.clear()
160
171
  bill_of_entry_form.supplier_invoice_ids.add(self.supplier_invoice)
161
172
  bill_of_entry_form.save()
162
173
 
174
+ # Bill of Entry 2 - draft state
175
+ self.bill_of_entry_2 = self._create_invoice(
176
+ self.customs,
177
+ "bill_of_entry",
178
+ self.journal,
179
+ [
180
+ (self.product_extra, 1, 1000),
181
+ (self.product_extra, 1, 100),
182
+ ],
183
+ [],
184
+ )
185
+ bill_of_entry_2_form = Form(self.bill_of_entry_2)
186
+ bill_of_entry_2_form.supplier_invoice_ids.clear()
187
+ bill_of_entry_2_form.supplier_invoice_ids.add(self.supplier_invoice)
188
+ bill_of_entry_2_form.save()
189
+
163
190
  # Forwarder Invoice - draft state
164
191
  self.forwarder_invoice = self._create_invoice(
165
192
  self.forwarder,
@@ -167,8 +194,9 @@ class TestBillOfEntry(AccountTestInvoicingCommon):
167
194
  self.journal,
168
195
  [
169
196
  (self.product_delivery, 1, 300),
170
- (self.adv_customs_expense, 1, 550),
197
+ (self.adv_customs_expense, 1, 792),
171
198
  ],
199
+ [],
172
200
  )
173
201
  forwarder_invoice_form = Form(self.forwarder_invoice)
174
202
  with forwarder_invoice_form.invoice_line_ids.edit(1) as line:
@@ -180,7 +208,9 @@ class TestBillOfEntry(AccountTestInvoicingCommon):
180
208
  )
181
209
  self.forwarder_invoice.update(
182
210
  {
183
- "forwarder_bill_of_entry_ids": [(4, self.bill_of_entry.id)],
211
+ "forwarder_bill_of_entry_ids": [
212
+ (6, 0, [self.bill_of_entry.id, self.bill_of_entry_2.id])
213
+ ],
184
214
  }
185
215
  )
186
216
 
@@ -226,8 +256,9 @@ class TestBillOfEntry(AccountTestInvoicingCommon):
226
256
  self.assertEqual(bill_of_entry.state, "draft")
227
257
 
228
258
  def test_storno_create(self):
229
- # Validate bill of entry
259
+ # Validate bills of entry
230
260
  self.bill_of_entry.action_post()
261
+ self.bill_of_entry_2.action_post()
231
262
 
232
263
  # Validate forwarder invoice
233
264
  self.forwarder_invoice.action_post()
@@ -263,7 +294,11 @@ class TestBillOfEntry(AccountTestInvoicingCommon):
263
294
  self.assertEqual(len(customs_expense_moveline), 1)
264
295
 
265
296
  # Extra EU goods purchase account.move.lines
266
- for boe_line in self.bill_of_entry.invoice_line_ids:
297
+ boes_lines = self.bill_of_entry.line_ids + self.bill_of_entry_2.line_ids
298
+ invoice_line_ids = boes_lines.filtered(
299
+ lambda line: line.display_type == "product"
300
+ )
301
+ for boe_line in invoice_line_ids:
267
302
  move_line_domain = [
268
303
  ("account_id", "=", boe_line.account_id.id),
269
304
  ("debit", "=", 0.0),
@@ -280,9 +315,11 @@ class TestBillOfEntry(AccountTestInvoicingCommon):
280
315
  .mapped("full_reconcile_id")
281
316
  .ids
282
317
  )
318
+ self.assertEqual(len(storno_reconcile_ids), 2)
283
319
  boe_reconcile_ids = (
284
- self.bill_of_entry.line_ids.filtered(lambda line: line.full_reconcile_id)
320
+ boes_lines.filtered(lambda line: line.full_reconcile_id)
285
321
  .mapped("full_reconcile_id")
286
322
  .ids
287
323
  )
324
+ self.assertEqual(len(boe_reconcile_ids), 2)
288
325
  self.assertEqual(sorted(storno_reconcile_ids), sorted(boe_reconcile_ids))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: odoo-addon-l10n_it_bill_of_entry
3
- Version: 16.0.1.0.1.1
3
+ Version: 16.0.1.0.3
4
4
  Requires-Python: >=3.10
5
5
  Requires-Dist: odoo>=16.0a,<16.1dev
6
6
  Summary: ITA - Bolle doganali
@@ -22,7 +22,7 @@ ITA - Bolle doganali
22
22
  !! This file is generated by oca-gen-addon-readme !!
23
23
  !! changes will be overwritten. !!
24
24
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
25
- !! source digest: sha256:797aec23d73bd9b18d5c80392d2310798e15660f13b166a61a754d33b8e27677
25
+ !! source digest: sha256:4b5e4ea6b0a95d75a37e030e47545ce5def73b288487ca3e4ead528fc56c921a
26
26
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27
27
 
28
28
  .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
@@ -48,9 +48,9 @@ bill of entry according to the supplier invoice.
48
48
 
49
49
  It involves three documents:
50
50
 
51
- - Supplier Invoice
52
- - Forwarder Invoice
53
- - Bill of Entry
51
+ - Supplier Invoice
52
+ - Forwarder Invoice
53
+ - Bill of Entry
54
54
 
55
55
  **Table of contents**
56
56
 
@@ -64,75 +64,73 @@ Configuration
64
64
 
65
65
  Mandatory settings:
66
66
 
67
- - An account journal required by the closing transfer account move
68
- (e.g. "Bolle Doganali").
69
- - An account journal for extraUE supplier invoices, apart from ordinary
70
- supplier invoices. In this way, extraUE supplier invoices don't
71
- appear in VAT registries; in this way, VAT registries have no missing
72
- numbers.
73
- - Create the "Extra UE goods purchases" and add a tax mapping: purchase
74
- taxes (e.g. 22%) should be mapped to to no one tax. In this way,
75
- every purchase invoice for extra UE fiscal position don't show taxes
76
- in lines, according to law.
77
- - A virtual supplier (e.g. "Customs" or "Dogana") for the bill of
78
- entry.
79
- - The forwarder as a real supplier.
67
+ - An account journal required by the closing transfer account move (e.g.
68
+ "Bolle Doganali").
69
+ - An account journal for extraUE supplier invoices, apart from ordinary
70
+ supplier invoices. In this way, extraUE supplier invoices don't appear
71
+ in VAT registries; in this way, VAT registries have no missing
72
+ numbers.
73
+ - Create the "Extra UE goods purchases" and add a tax mapping: purchase
74
+ taxes (e.g. 22%) should be mapped to to no one tax. In this way, every
75
+ purchase invoice for extra UE fiscal position don't show taxes in
76
+ lines, according to law.
77
+ - A virtual supplier (e.g. "Customs" or "Dogana") for the bill of entry.
78
+ - The forwarder as a real supplier.
80
79
 
81
80
  Optional settings:
82
81
 
83
- - An expense account where recording the bill of entry net amount (e.g.
84
- "ACQUISTO MERCI ExtraUE").
85
- - An expense account where recording the bill of entry VAT amount, paid
86
- in advance by the forwarder and declared in the forwarder invoice
87
- (e.g. "SPESE DOGANALI ANTICIPATE").
88
- - An account tax, with the same VAT rate as the ordinary one (i.e. 22%
89
- for Italy), applied on the bill of entry net amount (e.g. "22% debito
90
- ExtraUE"). In this way, bill of entries are highlighted in VAT
91
- registries due to this tax code.
92
- - An account for delivery expenses, recorded in the forwarder invoice
93
- (e.g. "SPESE DI TRASPORTO").
94
- - An account for customs duties, recorded in the forwarder invoice
95
- (e.g. "DIRITTI DOGANALI").
96
- - An account for stamp duties, recorded in the forwarder invoice (e.g.
97
- "IMPOSTE DI BOLLO").
82
+ - An expense account where recording the bill of entry net amount (e.g.
83
+ "ACQUISTO MERCI ExtraUE").
84
+ - An expense account where recording the bill of entry VAT amount, paid
85
+ in advance by the forwarder and declared in the forwarder invoice
86
+ (e.g. "SPESE DOGANALI ANTICIPATE").
87
+ - An account tax, with the same VAT rate as the ordinary one (i.e. 22%
88
+ for Italy), applied on the bill of entry net amount (e.g. "22% debito
89
+ ExtraUE"). In this way, bill of entries are highlighted in VAT
90
+ registries due to this tax code.
91
+ - An account for delivery expenses, recorded in the forwarder invoice
92
+ (e.g. "SPESE DI TRASPORTO").
93
+ - An account for customs duties, recorded in the forwarder invoice (e.g.
94
+ "DIRITTI DOGANALI").
95
+ - An account for stamp duties, recorded in the forwarder invoice (e.g.
96
+ "IMPOSTE DI BOLLO").
98
97
 
99
98
  **Italiano**
100
99
 
101
100
  Impostazioni obbligatorie:
102
101
 
103
- - Un registro utilizzato per la registrazione di giroconto (ad es.
104
- "Bolle Doganali" o "Varie") da impostare in configurazione
105
- contabilità.
106
- - Un imposta con aliquota standard da applicare alla bolla doganale (ad
107
- es. "22% credito ExtraUE") da impostare in configurazione
108
- contabilità. In questo modo questa imposta viene evidenziata nei
109
- registri IVA.
110
- - Un fornitore "Dogana" per le bolle doganali, da impostare in
111
- configurazione contabilità.
112
- - Un registro per le fatture dei fornitori extra UE, distinto da quello
113
- delle fatture passive ordinarie. In questo modo, le fatture dei
114
- fornitori extra non appariranno nei registri IVA ed i registri IVA
115
- non avranno numeri mancanti.
116
- - Una posizione fiscale "Acquisti beni extra UE" e aggiungere la
117
- mappatura: l'imposta d'acquisto (ad es. 22%) deve essere mappata a
118
- nessuna imposta. In questo modo, ogni fattura passive per questa
119
- posizione fiscale non avrà imposte sulle righe.
120
- - Il fornitore spedizioniere
102
+ - Un registro utilizzato per la registrazione di giroconto (ad es.
103
+ "Bolle Doganali" o "Varie") da impostare in configurazione
104
+ contabilità.
105
+ - Un imposta con aliquota standard da applicare alla bolla doganale (ad
106
+ es. "22% credito ExtraUE") da impostare in configurazione contabilità.
107
+ In questo modo questa imposta viene evidenziata nei registri IVA.
108
+ - Un fornitore "Dogana" per le bolle doganali, da impostare in
109
+ configurazione contabilità.
110
+ - Un registro per le fatture dei fornitori extra UE, distinto da quello
111
+ delle fatture passive ordinarie. In questo modo, le fatture dei
112
+ fornitori extra non appariranno nei registri IVA ed i registri IVA non
113
+ avranno numeri mancanti.
114
+ - Una posizione fiscale "Acquisti beni extra UE" e aggiungere la
115
+ mappatura: l'imposta d'acquisto (ad es. 22%) deve essere mappata a
116
+ nessuna imposta. In questo modo, ogni fattura passive per questa
117
+ posizione fiscale non avrà imposte sulle righe.
118
+ - Il fornitore spedizioniere
121
119
 
122
120
  Impostazioni opzionali:
123
121
 
124
- - Un conto di costo dove registrare l'importo netto della bolla
125
- doganale (ad es. "ACQUISTO MERCI ExtraUE"), da associare
126
- eventualmente ai prodotti acquistati extra UE
127
- - Un conto di costo dove registrare l'importo dell'IVA della bolla
128
- doganale, pagata in anticipo dello spedizioniere e evidenziata nella
129
- fattura dello spedizioniere (ad es. "SPESE DOGANALI ANTICIPATE").
130
- - Un conto per le spese di consegna, registrate nella fattura
131
- spedizioniere (ad es. "SPESE DI TRASPORTO")
132
- - Un conto per i diritti doganali, registrati nella fattura
133
- spedizioniere (ad es. "DIRITTI DOGANALI")
134
- - Un conto per le imposte di bollo, registrate nella fattura
135
- spedizioniere (ad es. "IMPOSTE DI BOLLO")
122
+ - Un conto di costo dove registrare l'importo netto della bolla doganale
123
+ (ad es. "ACQUISTO MERCI ExtraUE"), da associare eventualmente ai
124
+ prodotti acquistati extra UE
125
+ - Un conto di costo dove registrare l'importo dell'IVA della bolla
126
+ doganale, pagata in anticipo dello spedizioniere e evidenziata nella
127
+ fattura dello spedizioniere (ad es. "SPESE DOGANALI ANTICIPATE").
128
+ - Un conto per le spese di consegna, registrate nella fattura
129
+ spedizioniere (ad es. "SPESE DI TRASPORTO")
130
+ - Un conto per i diritti doganali, registrati nella fattura
131
+ spedizioniere (ad es. "DIRITTI DOGANALI")
132
+ - Un conto per le imposte di bollo, registrate nella fattura
133
+ spedizioniere (ad es. "IMPOSTE DI BOLLO")
136
134
 
137
135
  Usage
138
136
  =====
@@ -180,16 +178,16 @@ Authors
180
178
  Contributors
181
179
  ------------
182
180
 
183
- - Alex Comba <alex.comba@agilebg.com>
184
- - `TAKOBI <https://takobi.online>`__:
181
+ - Alex Comba <alex.comba@agilebg.com>
182
+ - `TAKOBI <https://takobi.online>`__:
185
183
 
186
- - Lorenzo Battistini
187
- - Simone Rubino <sir@takobi.online>
184
+ - Lorenzo Battistini
185
+ - Simone Rubino <sir@takobi.online>
188
186
 
189
- - Diego Bruselli <d.bruselli@creativiquadrati.it>
190
- - `Aion Tech <https://aiontech.company/>`__:
187
+ - Diego Bruselli <d.bruselli@creativiquadrati.it>
188
+ - `Aion Tech <https://aiontech.company/>`__:
191
189
 
192
- - Simone Rubino <simone.rubino@aion-tech.it>
190
+ - Simone Rubino <simone.rubino@aion-tech.it>
193
191
 
194
192
  Maintainers
195
193
  -----------
@@ -1,23 +1,23 @@
1
- odoo/addons/l10n_it_bill_of_entry/README.rst,sha256=yXAPXP5dLnZBz9vyfuy9qXLH7n0DHeAUxvCNNBWm9NQ,7287
1
+ odoo/addons/l10n_it_bill_of_entry/README.rst,sha256=7yxfSPUwCc7os7E0zsHFCpAMZcoxdqjd3U_caQldWOA,7212
2
2
  odoo/addons/l10n_it_bill_of_entry/__init__.py,sha256=eShEGRadAlxopoLqIQ4-N42FM7MWPSuBe0h_l1cXTPM,87
3
- odoo/addons/l10n_it_bill_of_entry/__manifest__.py,sha256=2zPOJfFimlBzRjoF0rYG6hm0MU6GPQ4cCG1vLkwJk3A,1054
3
+ odoo/addons/l10n_it_bill_of_entry/__manifest__.py,sha256=CNnCNYMnX720sJ_lJkKZ6H69m0j_JgZl6rYyo3r50hg,1054
4
4
  odoo/addons/l10n_it_bill_of_entry/demo/bill_of_entry_demo.xml,sha256=WCxPeUlDUuZHSFv4gxegvLbIruqbGESNw-QjdVe_XoA,5903
5
5
  odoo/addons/l10n_it_bill_of_entry/i18n/it.po,sha256=aZuPN5qPMu-y-e2djRt36tzYq1V1RDrebSsyETv-iFM,14620
6
- odoo/addons/l10n_it_bill_of_entry/i18n/l10n_it_bill_of_entry.pot,sha256=n-7ImsmTxseKeG2-F6lxZOEEs11csIetYg1Ap3LBRyc,12452
6
+ odoo/addons/l10n_it_bill_of_entry/i18n/l10n_it_bill_of_entry.pot,sha256=fyEbrI9igpKBRLhLPaYxc9y_CE-qork6DL4ph_CKepE,12919
7
7
  odoo/addons/l10n_it_bill_of_entry/models/__init__.py,sha256=Y7JROQtv-6sdgmZdUUAg3PdDYGdyXGnaLSeNcon0yCo,115
8
- odoo/addons/l10n_it_bill_of_entry/models/account_move.py,sha256=QD_oO49i0LabijK-I51cE2S_bz9D9-whjCJ_xxUNVWw,11600
8
+ odoo/addons/l10n_it_bill_of_entry/models/account_move.py,sha256=2c7qyTnRkpmuiWhSRUcmI-0tMeLlDqpOIYUGrS61W5s,12086
9
9
  odoo/addons/l10n_it_bill_of_entry/models/company.py,sha256=f-D7l8IIHIBogt7LgtVCRLjK9GU9DDgE0g4-ex8MHWg,1250
10
10
  odoo/addons/l10n_it_bill_of_entry/readme/CONFIGURE.md,sha256=c2YSOi5auDOEDtvQHRs4v86vO1Gw2Gxv_PwkFFTxqs8,3266
11
11
  odoo/addons/l10n_it_bill_of_entry/readme/CONTRIBUTORS.md,sha256=3Mgj2cT3vRqqSAh6jbGuZY8LwAyw4bNsnElVapegW-Q,289
12
12
  odoo/addons/l10n_it_bill_of_entry/readme/DESCRIPTION.md,sha256=7vAu89RlPuQRrHxbdv7wR5SYaHXUnhZkUnzgubmJbwA,204
13
13
  odoo/addons/l10n_it_bill_of_entry/readme/USAGE.md,sha256=vs1XYz7Es9WG9q4Bt7gLWslu7ktV7TkirE-9Ynzyy94,642
14
14
  odoo/addons/l10n_it_bill_of_entry/static/description/icon.png,sha256=6xBPJauaFOF0KDHfHgQopSc28kKvxMaeoQFQWZtfZDo,9455
15
- odoo/addons/l10n_it_bill_of_entry/static/description/index.html,sha256=bEUKyDWU5-6hKc9ZgJcDJG0wv1ygjmhFru4ODjgbW9E,17664
15
+ odoo/addons/l10n_it_bill_of_entry/static/description/index.html,sha256=jx-IhJlNK9msGNEQ_NpyrZlmD_bHS94pbvrzsuptkjc,17747
16
16
  odoo/addons/l10n_it_bill_of_entry/tests/__init__.py,sha256=2wyRcHlMdzJV4P-H8BDZj2HAvSG1xX4c3M604Vy-LGk,100
17
- odoo/addons/l10n_it_bill_of_entry/tests/test_bill_of_entry.py,sha256=mDFtev4WwIadXR9iIMjU_L0wpLTWQkiRRYJIalHleT0,11475
17
+ odoo/addons/l10n_it_bill_of_entry/tests/test_bill_of_entry.py,sha256=g8-_vl48nw9YZ-MLqBDN-ruivdY7ytafqvmo0JRcrMU,12780
18
18
  odoo/addons/l10n_it_bill_of_entry/views/account_invoice_view.xml,sha256=TZIHC_QNS-kxsqSf3eYj_vcOiiSrW8xw_Jxx8jkv_W8,10901
19
19
  odoo/addons/l10n_it_bill_of_entry/views/company_view.xml,sha256=eYRSrsCOJNJsO-5s8KcFXxmBaDSdkdFSFrZxLo2__js,3351
20
- odoo_addon_l10n_it_bill_of_entry-16.0.1.0.1.1.dist-info/METADATA,sha256=CEdfVptj2zGbDGFhNFs1w2NZDx2CUPoGbkyZ1oLTYpc,7875
21
- odoo_addon_l10n_it_bill_of_entry-16.0.1.0.1.1.dist-info/WHEEL,sha256=8Rd4enx1PCuyDWP4SABqO5Fv8rpaknqp3VzjoFFLa6c,83
22
- odoo_addon_l10n_it_bill_of_entry-16.0.1.0.1.1.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
23
- odoo_addon_l10n_it_bill_of_entry-16.0.1.0.1.1.dist-info/RECORD,,
20
+ odoo_addon_l10n_it_bill_of_entry-16.0.1.0.3.dist-info/METADATA,sha256=XcdpIzQWppYdonnURno6ctpuUIuRC4-fGOSEk51qoG4,7798
21
+ odoo_addon_l10n_it_bill_of_entry-16.0.1.0.3.dist-info/WHEEL,sha256=9fEMia4zL7ZuZbnCOrcYogUhmn4XFIVaJ8G4YGI31xc,81
22
+ odoo_addon_l10n_it_bill_of_entry-16.0.1.0.3.dist-info/top_level.txt,sha256=QE6RBQ0QX5f4eFuUcGgU5Kbq1A_qJcDs-e_vpr6pmfU,4
23
+ odoo_addon_l10n_it_bill_of_entry-16.0.1.0.3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: Whool 1.0.1
2
+ Generator: Whool 1.2
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5