odoo-addon-l10n-it-account-stamp 16.0.1.1.0.2__py3-none-any.whl → 18.0.1.0.0.3__py3-none-any.whl
Sign up to get free protection for your applications and to get access to all the features.
- odoo/addons/l10n_it_account_stamp/README.rst +53 -40
- odoo/addons/l10n_it_account_stamp/__manifest__.py +1 -1
- odoo/addons/l10n_it_account_stamp/data/data.xml +5 -7
- odoo/addons/l10n_it_account_stamp/i18n/it.po +87 -175
- odoo/addons/l10n_it_account_stamp/i18n/l10n_it_account_stamp.pot +62 -95
- odoo/addons/l10n_it_account_stamp/migrations/18.0.1.0.0/noupdate_changes.xml +12 -0
- odoo/addons/l10n_it_account_stamp/migrations/18.0.1.0.0/post-migration.py +14 -0
- odoo/addons/l10n_it_account_stamp/migrations/18.0.1.0.0/pre-migration.py +77 -0
- odoo/addons/l10n_it_account_stamp/models/account_move.py +61 -45
- odoo/addons/l10n_it_account_stamp/models/company.py +8 -8
- odoo/addons/l10n_it_account_stamp/models/product.py +22 -11
- odoo/addons/l10n_it_account_stamp/readme/CONFIGURE.md +5 -5
- odoo/addons/l10n_it_account_stamp/readme/DESCRIPTION.md +1 -1
- odoo/addons/l10n_it_account_stamp/readme/ROADMAP.md +7 -0
- odoo/addons/l10n_it_account_stamp/readme/USAGE.md +3 -3
- odoo/addons/l10n_it_account_stamp/static/description/index.html +36 -26
- odoo/addons/l10n_it_account_stamp/tests/test_account_stamp_invoicing.py +22 -15
- odoo/addons/l10n_it_account_stamp/views/account_move_report.xml +8 -6
- odoo/addons/l10n_it_account_stamp/views/account_move_view.xml +26 -22
- odoo/addons/l10n_it_account_stamp/views/company_view.xml +8 -33
- odoo/addons/l10n_it_account_stamp/views/product_view.xml +12 -16
- {odoo_addon_l10n_it_account_stamp-16.0.1.1.0.2.dist-info → odoo_addon_l10n_it_account_stamp-18.0.1.0.0.3.dist-info}/METADATA +56 -43
- odoo_addon_l10n_it_account_stamp-18.0.1.0.0.3.dist-info/RECORD +30 -0
- {odoo_addon_l10n_it_account_stamp-16.0.1.1.0.2.dist-info → odoo_addon_l10n_it_account_stamp-18.0.1.0.0.3.dist-info}/WHEEL +1 -1
- odoo_addon_l10n_it_account_stamp-16.0.1.1.0.2.dist-info/RECORD +0 -26
- {odoo_addon_l10n_it_account_stamp-16.0.1.1.0.2.dist-info → odoo_addon_l10n_it_account_stamp-18.0.1.0.0.3.dist-info}/top_level.txt +0 -0
@@ -6,24 +6,35 @@ from odoo import _, api, exceptions, fields, models
|
|
6
6
|
class ProductTemplate(models.Model):
|
7
7
|
_inherit = "product.template"
|
8
8
|
|
9
|
-
@api.constrains(
|
9
|
+
@api.constrains(
|
10
|
+
"l10n_it_account_stamp_stamp_duty_apply_tax_ids",
|
11
|
+
"l10n_it_account_stamp_is_stamp",
|
12
|
+
)
|
10
13
|
def _check_stamp_apply_tax(self):
|
11
14
|
for template in self:
|
12
|
-
if
|
15
|
+
if (
|
16
|
+
template.l10n_it_account_stamp_stamp_duty_apply_tax_ids
|
17
|
+
and not template.l10n_it_account_stamp_is_stamp
|
18
|
+
):
|
13
19
|
raise exceptions.ValidationError(
|
14
20
|
_("The product %s must be a stamp to apply set taxes!")
|
15
21
|
% template.name
|
16
22
|
)
|
17
23
|
|
18
|
-
|
19
|
-
"account.tax",
|
20
|
-
"
|
21
|
-
"product_id",
|
22
|
-
"tax_id",
|
24
|
+
l10n_it_account_stamp_stamp_duty_apply_tax_ids = fields.Many2many(
|
25
|
+
comodel_name="account.tax",
|
26
|
+
relation="l10n_it_account_stamp_product_tax_account_tax_rel",
|
27
|
+
column1="product_id",
|
28
|
+
column2="tax_id",
|
23
29
|
string="Stamp taxes",
|
24
30
|
)
|
25
|
-
|
26
|
-
"Stamp applicability min total base",
|
31
|
+
l10n_it_account_stamp_tax_apply_min_total_base = fields.Float(
|
32
|
+
string="Stamp applicability min total base",
|
33
|
+
digits="Account",
|
34
|
+
)
|
35
|
+
l10n_it_account_stamp_is_stamp = fields.Boolean(
|
36
|
+
string="Is a stamp",
|
37
|
+
)
|
38
|
+
l10n_it_account_stamp_auto_compute = fields.Boolean(
|
39
|
+
string="Auto-compute",
|
27
40
|
)
|
28
|
-
is_stamp = fields.Boolean("Is a stamp")
|
29
|
-
auto_compute = fields.Boolean("Auto-compute")
|
@@ -11,7 +11,7 @@ necessario abilitare le funzioni complete per la contabilità:
|
|
11
11
|
Modalità automatica:
|
12
12
|
|
13
13
|
- andare sul prodotto "Imposta di bollo 2 euro" e configurare "Imposte
|
14
|
-
|
14
|
+
per bollo" (Imposte in esenzione).
|
15
15
|
- per ciascuna fattura o ricevuta, l'applicabilità dell'imposta di bollo
|
16
16
|
verrà calcolata in modo automatico in base alla somma degli imponibili
|
17
17
|
relativi alle imposte selezionate.
|
@@ -30,7 +30,7 @@ generalmente ricavo="Debiti per bolli" e costo="Valori bollati".
|
|
30
30
|
|
31
31
|
**English**
|
32
32
|
|
33
|
-
In order to change
|
33
|
+
In order to change 'Stamp duty 2 euro' product settings, enable full
|
34
34
|
accounting features:
|
35
35
|
|
36
36
|
1. Settings -\> Users & Companies -\> Groups
|
@@ -39,7 +39,7 @@ accounting features:
|
|
39
39
|
|
40
40
|
Automatic mode:
|
41
41
|
|
42
|
-
- Go to '
|
42
|
+
- Go to 'Stamp duty 2 euro' product and configure 'Stamp taxes'
|
43
43
|
(exemption taxes).
|
44
44
|
- For each invoice or receipt, the base amount for each selected tax
|
45
45
|
will be added up and used to determine the application of the account
|
@@ -47,8 +47,8 @@ Automatic mode:
|
|
47
47
|
|
48
48
|
Manual mode:
|
49
49
|
|
50
|
-
- Go to '
|
51
|
-
- For each invoice or receipt, manually enable '
|
50
|
+
- Go to 'Stamp duty 2 euro' product and deselect 'Auto-compute' checkbox.
|
51
|
+
- For each invoice or receipt, manually enable 'Stamp Duty' checkbox.
|
52
52
|
|
53
53
|
Also set income/expense accounts, typically income = 'Debiti per bolli'
|
54
54
|
and expense = 'Valori bollati'.
|
@@ -9,8 +9,8 @@ verrà addebitata al cliente.
|
|
9
9
|
|
10
10
|
**English**
|
11
11
|
|
12
|
-
In invoice or receipt form, when applicable, click 'Add
|
13
|
-
button to add
|
12
|
+
In invoice or receipt form, when applicable, click 'Add stamp duty line'
|
13
|
+
button to add stamp duty as invoice line, thus charging customer.
|
14
14
|
|
15
|
-
Otherwise,
|
15
|
+
Otherwise, stamp duty will be anyway accounted, without charging
|
16
16
|
customer.
|
@@ -367,24 +367,25 @@ ul.auto-toc {
|
|
367
367
|
!! This file is generated by oca-gen-addon-readme !!
|
368
368
|
!! changes will be overwritten. !!
|
369
369
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
370
|
-
!! source digest: sha256:
|
370
|
+
!! source digest: sha256:3a2471018d0fb7b4e1cbba40630ae81e67aa027440f5c2bcd3e080010dbd773d
|
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/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-italy/tree/
|
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/lgpl-3.0-standalone.html"><img alt="License: LGPL-3" src="https://img.shields.io/badge/licence-LGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_account_stamp"><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-18-0/l10n-italy-18-0-l10n_it_account_stamp"><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&target_branch=18.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
|
373
373
|
<p><strong>Italiano</strong></p>
|
374
374
|
<p>Questo modulo aggiunge il supporto all’imposta di bollo italiana nelle
|
375
375
|
fatture e nelle ricevute.</p>
|
376
376
|
<p><strong>English</strong></p>
|
377
|
-
<p>This module adds Italian
|
377
|
+
<p>This module adds Italian Stamp Duty support in invoices and receipts.</p>
|
378
378
|
<p><strong>Table of contents</strong></p>
|
379
379
|
<div class="contents local topic" id="contents">
|
380
380
|
<ul class="simple">
|
381
381
|
<li><a class="reference internal" href="#configuration" id="toc-entry-1">Configuration</a></li>
|
382
382
|
<li><a class="reference internal" href="#usage" id="toc-entry-2">Usage</a></li>
|
383
|
-
<li><a class="reference internal" href="#
|
384
|
-
<li><a class="reference internal" href="#
|
385
|
-
<li><a class="reference internal" href="#
|
386
|
-
<li><a class="reference internal" href="#
|
387
|
-
<li><a class="reference internal" href="#
|
383
|
+
<li><a class="reference internal" href="#known-issues-roadmap" id="toc-entry-3">Known issues / Roadmap</a></li>
|
384
|
+
<li><a class="reference internal" href="#bug-tracker" id="toc-entry-4">Bug Tracker</a></li>
|
385
|
+
<li><a class="reference internal" href="#credits" id="toc-entry-5">Credits</a><ul>
|
386
|
+
<li><a class="reference internal" href="#authors" id="toc-entry-6">Authors</a></li>
|
387
|
+
<li><a class="reference internal" href="#contributors" id="toc-entry-7">Contributors</a></li>
|
388
|
+
<li><a class="reference internal" href="#maintainers" id="toc-entry-8">Maintainers</a></li>
|
388
389
|
</ul>
|
389
390
|
</li>
|
390
391
|
</ul>
|
@@ -403,10 +404,10 @@ selezionarlo</li>
|
|
403
404
|
<p>Modalità automatica:</p>
|
404
405
|
<ul class="simple">
|
405
406
|
<li>andare sul prodotto “Imposta di bollo 2 euro” e configurare “Imposte
|
406
|
-
|
407
|
-
<li>per ciascuna fattura o ricevuta, l’applicabilità dell’imposta di
|
408
|
-
|
409
|
-
|
407
|
+
per bollo” (Imposte in esenzione).</li>
|
408
|
+
<li>per ciascuna fattura o ricevuta, l’applicabilità dell’imposta di bollo
|
409
|
+
verrà calcolata in modo automatico in base alla somma degli imponibili
|
410
|
+
relativi alle imposte selezionate.</li>
|
410
411
|
</ul>
|
411
412
|
<p>Modalità manuale:</p>
|
412
413
|
<ul class="simple">
|
@@ -420,7 +421,7 @@ imposte selezionate.</li>
|
|
420
421
|
<p>Impostare i conti di ricavo/costo nella scheda “Contabilità”,
|
421
422
|
generalmente ricavo=”Debiti per bolli” e costo=”Valori bollati”.</p>
|
422
423
|
<p><strong>English</strong></p>
|
423
|
-
<p>In order to change
|
424
|
+
<p>In order to change ‘Stamp duty 2 euro’ product settings, enable full
|
424
425
|
accounting features:</p>
|
425
426
|
<ol class="arabic simple">
|
426
427
|
<li>Settings -> Users & Companies -> Groups</li>
|
@@ -429,7 +430,7 @@ accounting features:</p>
|
|
429
430
|
</ol>
|
430
431
|
<p>Automatic mode:</p>
|
431
432
|
<ul class="simple">
|
432
|
-
<li>Go to ‘
|
433
|
+
<li>Go to ‘Stamp duty 2 euro’ product and configure ‘Stamp taxes’
|
433
434
|
(exemption taxes).</li>
|
434
435
|
<li>For each invoice or receipt, the base amount for each selected tax
|
435
436
|
will be added up and used to determine the application of the account
|
@@ -437,9 +438,9 @@ stamp.</li>
|
|
437
438
|
</ul>
|
438
439
|
<p>Manual mode:</p>
|
439
440
|
<ul class="simple">
|
440
|
-
<li>Go to ‘
|
441
|
+
<li>Go to ‘Stamp duty 2 euro’ product and deselect ‘Auto-compute’
|
441
442
|
checkbox.</li>
|
442
|
-
<li>For each invoice or receipt, manually enable ‘
|
443
|
+
<li>For each invoice or receipt, manually enable ‘Stamp Duty’ checkbox.</li>
|
443
444
|
</ul>
|
444
445
|
<p>Also set income/expense accounts, typically income = ‘Debiti per bolli’
|
445
446
|
and expense = ‘Valori bollati’.</p>
|
@@ -453,23 +454,32 @@ una riga relativa all’imposta di bollo.</p>
|
|
453
454
|
<p>In caso contrario, l’imposta di bollo verrà comunque considerata ma non
|
454
455
|
verrà addebitata al cliente.</p>
|
455
456
|
<p><strong>English</strong></p>
|
456
|
-
<p>In invoice or receipt form, when applicable, click ‘Add
|
457
|
-
button to add
|
458
|
-
<p>Otherwise,
|
457
|
+
<p>In invoice or receipt form, when applicable, click ‘Add stamp duty line’
|
458
|
+
button to add stamp duty as invoice line, thus charging customer.</p>
|
459
|
+
<p>Otherwise, stamp duty will be anyway accounted, without charging
|
459
460
|
customer.</p>
|
460
461
|
</div>
|
462
|
+
<div class="section" id="known-issues-roadmap">
|
463
|
+
<h1><a class="toc-backref" href="#toc-entry-3">Known issues / Roadmap</a></h1>
|
464
|
+
<p>** Italiano **</p>
|
465
|
+
<p>Sono stati aggiunti gli script di migrazione, da provare quando saranno
|
466
|
+
rilasciati quelli relativi ad <tt class="docutils literal">account</tt>.</p>
|
467
|
+
<p>** English **</p>
|
468
|
+
<p>Migration scripts have been added, to be tested when <tt class="docutils literal">account</tt> related
|
469
|
+
ones will be released.</p>
|
470
|
+
</div>
|
461
471
|
<div class="section" id="bug-tracker">
|
462
|
-
<h1><a class="toc-backref" href="#toc-entry-
|
472
|
+
<h1><a class="toc-backref" href="#toc-entry-4">Bug Tracker</a></h1>
|
463
473
|
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/l10n-italy/issues">GitHub Issues</a>.
|
464
474
|
In case of trouble, please check there if your issue has already been reported.
|
465
475
|
If you spotted it first, help us to smash it by providing a detailed and welcomed
|
466
|
-
<a class="reference external" href="https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_account_stamp%0Aversion:%
|
476
|
+
<a class="reference external" href="https://github.com/OCA/l10n-italy/issues/new?body=module:%20l10n_it_account_stamp%0Aversion:%2018.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
|
467
477
|
<p>Do not contact contributors directly about support or help with technical issues.</p>
|
468
478
|
</div>
|
469
479
|
<div class="section" id="credits">
|
470
|
-
<h1><a class="toc-backref" href="#toc-entry-
|
480
|
+
<h1><a class="toc-backref" href="#toc-entry-5">Credits</a></h1>
|
471
481
|
<div class="section" id="authors">
|
472
|
-
<h2><a class="toc-backref" href="#toc-entry-
|
482
|
+
<h2><a class="toc-backref" href="#toc-entry-6">Authors</a></h2>
|
473
483
|
<ul class="simple">
|
474
484
|
<li>Ermanno Gnan</li>
|
475
485
|
<li>Sergio Corato</li>
|
@@ -477,7 +487,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
477
487
|
</ul>
|
478
488
|
</div>
|
479
489
|
<div class="section" id="contributors">
|
480
|
-
<h2><a class="toc-backref" href="#toc-entry-
|
490
|
+
<h2><a class="toc-backref" href="#toc-entry-7">Contributors</a></h2>
|
481
491
|
<ul class="simple">
|
482
492
|
<li>Lorenzo Battistini <<a class="reference external" href="https://github.com/eLBati">https://github.com/eLBati</a>></li>
|
483
493
|
<li>Sergio Corato</li>
|
@@ -494,7 +504,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
494
504
|
</ul>
|
495
505
|
</div>
|
496
506
|
<div class="section" id="maintainers">
|
497
|
-
<h2><a class="toc-backref" href="#toc-entry-
|
507
|
+
<h2><a class="toc-backref" href="#toc-entry-8">Maintainers</a></h2>
|
498
508
|
<p>This module is maintained by the OCA.</p>
|
499
509
|
<a class="reference external image-reference" href="https://odoo-community.org">
|
500
510
|
<img alt="Odoo Community Association" src="https://odoo-community.org/logo.png" />
|
@@ -502,7 +512,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
|
|
502
512
|
<p>OCA, or the Odoo Community Association, is a nonprofit organization whose
|
503
513
|
mission is to support the collaborative development of Odoo features and
|
504
514
|
promote its widespread use.</p>
|
505
|
-
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/l10n-italy/tree/
|
515
|
+
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/l10n-italy/tree/18.0/l10n_it_account_stamp">OCA/l10n-italy</a> project on GitHub.</p>
|
506
516
|
<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>
|
507
517
|
</div>
|
508
518
|
</div>
|
@@ -18,7 +18,7 @@ class InvoicingTest(TestAccountInvoiceReport):
|
|
18
18
|
|
19
19
|
account_revenue_id = self.env["account.account"].search(
|
20
20
|
[
|
21
|
-
("
|
21
|
+
("company_ids", "child_of", self.env.company.id),
|
22
22
|
(
|
23
23
|
"account_type",
|
24
24
|
"=",
|
@@ -29,7 +29,7 @@ class InvoicingTest(TestAccountInvoiceReport):
|
|
29
29
|
)
|
30
30
|
account_expense_id = self.env["account.account"].search(
|
31
31
|
[
|
32
|
-
("
|
32
|
+
("company_ids", "child_of", self.env.company.id),
|
33
33
|
(
|
34
34
|
"account_type",
|
35
35
|
"=",
|
@@ -40,12 +40,14 @@ class InvoicingTest(TestAccountInvoiceReport):
|
|
40
40
|
)
|
41
41
|
stamp_product_id.write(
|
42
42
|
{
|
43
|
-
"
|
43
|
+
"l10n_it_account_stamp_stamp_duty_apply_tax_ids": [
|
44
|
+
(6, 0, [self.tax_id.id])
|
45
|
+
],
|
44
46
|
"property_account_income_id": account_revenue_id.id,
|
45
47
|
"property_account_expense_id": account_expense_id.id,
|
46
48
|
}
|
47
49
|
)
|
48
|
-
self.env.company.
|
50
|
+
self.env.company.l10n_it_account_stamp_stamp_duty_product_id = stamp_product_id
|
49
51
|
|
50
52
|
def test_post_invoicing(self):
|
51
53
|
invoice = first(
|
@@ -59,7 +61,7 @@ class InvoicingTest(TestAccountInvoiceReport):
|
|
59
61
|
self.assertEqual(
|
60
62
|
len(invoice.line_ids.filtered(lambda line: line.is_stamp_line)), 0
|
61
63
|
)
|
62
|
-
self.assertTrue(invoice.
|
64
|
+
self.assertTrue(invoice.l10n_it_account_stamp_is_stamp_duty_applied)
|
63
65
|
invoice.action_post()
|
64
66
|
|
65
67
|
self.assertEqual(
|
@@ -84,27 +86,31 @@ class InvoicingTest(TestAccountInvoiceReport):
|
|
84
86
|
invoice.action_post()
|
85
87
|
|
86
88
|
# Add stamp and check that edited description is kept
|
87
|
-
invoice.
|
89
|
+
invoice.button_draft()
|
90
|
+
invoice.add_stamp_duty_line()
|
88
91
|
self.assertEqual(invoice.invoice_line_ids[0].name, edited_descr)
|
89
92
|
|
90
93
|
def test_amount_total_changing_currency(self):
|
91
94
|
"""Modify invoice currency and check that amount_total does not change after
|
92
95
|
action_post"""
|
93
|
-
|
96
|
+
stamp_duty_product = (
|
97
|
+
self.env.company.l10n_it_account_stamp_stamp_duty_product_id
|
98
|
+
)
|
99
|
+
stamp_duty_product.l10n_it_account_stamp_auto_compute = False
|
94
100
|
invoice = first(
|
95
101
|
self.invoices.filtered(lambda inv: inv.move_type == "out_invoice")
|
96
102
|
)
|
97
103
|
invoice_form = Form(invoice)
|
98
|
-
invoice_form.
|
104
|
+
invoice_form.l10n_it_account_stamp_manually_apply_stamp_duty = False
|
99
105
|
invoice_form.currency_id = self.env.ref("base.USD")
|
100
106
|
invoice = invoice_form.save()
|
101
107
|
total = invoice.amount_total
|
102
108
|
invoice.action_post()
|
103
109
|
self.assertEqual(total, invoice.amount_total)
|
104
110
|
|
105
|
-
def
|
111
|
+
def test_stamp_duty_line_button(self):
|
106
112
|
"""Stamp fields show when stamp is added with the button to the invoice."""
|
107
|
-
# Arrange: Create an invoice eligible for
|
113
|
+
# Arrange: Create an invoice eligible for stamp duty but without it
|
108
114
|
stamp_tax = self.tax_id
|
109
115
|
invoice = self.init_invoice(
|
110
116
|
"out_invoice",
|
@@ -114,15 +120,16 @@ class InvoicingTest(TestAccountInvoiceReport):
|
|
114
120
|
],
|
115
121
|
)
|
116
122
|
# pre-condition
|
117
|
-
self.assertTrue(invoice.
|
118
|
-
self.assertFalse(invoice.
|
123
|
+
self.assertTrue(invoice.l10n_it_account_stamp_is_stamp_duty_applied)
|
124
|
+
self.assertFalse(invoice.l10n_it_account_stamp_is_stamp_duty_present)
|
119
125
|
|
120
126
|
# Act
|
121
|
-
invoice.
|
127
|
+
invoice.add_stamp_duty_line()
|
128
|
+
invoice.action_post()
|
122
129
|
|
123
130
|
# Assert
|
124
|
-
self.assertTrue(invoice.
|
131
|
+
self.assertTrue(invoice.l10n_it_account_stamp_is_stamp_duty_present)
|
125
132
|
|
126
133
|
# Resetting to draft removes the stamp
|
127
134
|
invoice.button_draft()
|
128
|
-
self.assertFalse(invoice.
|
135
|
+
self.assertFalse(invoice.l10n_it_account_stamp_is_stamp_duty_present)
|
@@ -1,15 +1,17 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
2
2
|
<odoo>
|
3
|
-
|
4
3
|
<template
|
5
4
|
id="report_invoice_document_custom_fields_ext"
|
6
5
|
inherit_id="account.report_invoice_document"
|
7
6
|
>
|
8
|
-
<xpath expr="//
|
9
|
-
<
|
10
|
-
|
11
|
-
|
12
|
-
|
7
|
+
<xpath expr="//div[@name='incoterm_id']" position="before">
|
8
|
+
<div
|
9
|
+
t-if="o.l10n_it_account_stamp_is_stamp_duty_applied"
|
10
|
+
name="l10n_it_account_stamp_is_stamp_duty_applied"
|
11
|
+
class="col"
|
12
|
+
>
|
13
|
+
Imposta di bollo assolta in modo virtuale ai sensi dell'articolo 15 del DPR 642/1972 e del DM 17/06/2014
|
14
|
+
</div>
|
13
15
|
</xpath>
|
14
16
|
</template>
|
15
17
|
</odoo>
|
@@ -4,7 +4,6 @@
|
|
4
4
|
~ License LGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
|
5
5
|
-->
|
6
6
|
<odoo>
|
7
|
-
|
8
7
|
<!-- Form: Invoice Customer -->
|
9
8
|
<record id="account_move_form_stamp" model="ir.ui.view">
|
10
9
|
<field name="name">account.move.form.stamp</field>
|
@@ -12,50 +11,56 @@
|
|
12
11
|
<field name="inherit_id" ref="account.view_move_form" />
|
13
12
|
<field name="arch" type="xml">
|
14
13
|
<xpath
|
15
|
-
expr="//field[@name='invoice_line_ids']/
|
14
|
+
expr="//field[@name='invoice_line_ids']/list/field[@name='sequence']"
|
16
15
|
position="after"
|
17
16
|
>
|
18
|
-
<field name="is_stamp_line"
|
17
|
+
<field name="is_stamp_line" column_invisible="True" />
|
19
18
|
</xpath>
|
20
|
-
<xpath expr="//field[@name='invoice_line_ids']/
|
19
|
+
<xpath expr="//field[@name='invoice_line_ids']/list" position="attributes">
|
21
20
|
<attribute name="colors">CadetBlue:is_stamp_line==True;</attribute>
|
22
21
|
</xpath>
|
23
22
|
<xpath expr="//group[@id='header_right_group']" position="inside">
|
24
|
-
<field name="auto_compute_stamp" invisible="1" />
|
25
|
-
<field name="tax_stamp" string="Tax stamp" invisible="1" />
|
26
23
|
<field
|
27
|
-
name="
|
28
|
-
|
24
|
+
name="l10n_it_account_stamp_auto_compute_stamp_duty"
|
25
|
+
invisible="1"
|
26
|
+
/>
|
27
|
+
<field
|
28
|
+
name="l10n_it_account_stamp_is_stamp_duty_applied"
|
29
|
+
string="Stamp Duty"
|
30
|
+
invisible="1"
|
31
|
+
/>
|
32
|
+
<field
|
33
|
+
name="l10n_it_account_stamp_manually_apply_stamp_duty"
|
34
|
+
invisible="l10n_it_account_stamp_auto_compute_stamp_duty"
|
35
|
+
/>
|
36
|
+
<field
|
37
|
+
name="l10n_it_account_stamp_is_stamp_duty_present"
|
38
|
+
invisible="1"
|
29
39
|
/>
|
30
|
-
<field name="tax_stamp_line_present" invisible="1" />
|
31
40
|
</xpath>
|
32
41
|
<field name="narration" position="before">
|
33
42
|
<div
|
34
43
|
name="stamp_applicability"
|
35
|
-
|
44
|
+
invisible="not l10n_it_account_stamp_is_stamp_duty_applied"
|
36
45
|
colspan="2"
|
37
46
|
>
|
38
47
|
<img
|
39
48
|
src="/l10n_it_account_stamp/static/description/icon.png"
|
40
|
-
alt="
|
49
|
+
alt="Stamp Duty"
|
41
50
|
/>
|
42
|
-
<span
|
43
|
-
|
44
|
-
>
|
45
|
-
<span attrs="{'invisible': [('state', 'not in', 'draft')]}">
|
51
|
+
<span invisible="l10n_it_account_stamp_is_stamp_duty_present">
|
52
|
+
<span invisible="state != 'draft'">
|
46
53
|
<button
|
47
54
|
type="object"
|
48
55
|
string="Charge stamp to customer"
|
49
|
-
name="
|
56
|
+
name="add_stamp_duty_line"
|
50
57
|
/>
|
51
58
|
</span>
|
52
|
-
<span
|
59
|
+
<span invisible="state == 'draft'">
|
53
60
|
Stamp can only be charged to customer when invoice is in draft state
|
54
61
|
</span>
|
55
62
|
</span>
|
56
|
-
<span
|
57
|
-
attrs="{'invisible': [('tax_stamp_line_present', '=', False)]}"
|
58
|
-
>
|
63
|
+
<span invisible="not l10n_it_account_stamp_is_stamp_duty_present">
|
59
64
|
Stamp charged to customer
|
60
65
|
</span>
|
61
66
|
</div>
|
@@ -66,9 +71,8 @@
|
|
66
71
|
expr="//form/sheet/notebook/page[@id='invoice_tab']/field/form/sheet/group/field[@name='product_id']"
|
67
72
|
position="after"
|
68
73
|
>
|
69
|
-
<field name="is_stamp_line"
|
74
|
+
<field name="is_stamp_line" column_invisible="True" />
|
70
75
|
</xpath>
|
71
76
|
</field>
|
72
77
|
</record>
|
73
|
-
|
74
78
|
</odoo>
|
@@ -1,44 +1,19 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
2
2
|
<odoo>
|
3
|
-
|
4
3
|
<record model="ir.ui.view" id="view_account_config_settings_stamp">
|
5
4
|
<field name="name">view_account_config_settings_stamp</field>
|
6
5
|
<field name="model">res.config.settings</field>
|
7
6
|
<field name="inherit_id" ref="account.res_config_settings_view_form" />
|
8
7
|
<field name="arch" type="xml">
|
9
|
-
<
|
10
|
-
<
|
11
|
-
|
12
|
-
title="Configuration for
|
8
|
+
<block name="default_taxes_setting_container" position="inside">
|
9
|
+
<setting
|
10
|
+
id="l10n_it_account_stamp_stamp_product"
|
11
|
+
title="Configuration for stamp duty"
|
12
|
+
company_dependent="1"
|
13
13
|
>
|
14
|
-
<
|
15
|
-
|
16
|
-
|
17
|
-
</span>
|
18
|
-
<span
|
19
|
-
class="fa fa-lg fa-building-o"
|
20
|
-
title="Values set here are company-specific."
|
21
|
-
aria-label="Values set here are company-specific."
|
22
|
-
groups="base.group_multi_company"
|
23
|
-
role="img"
|
24
|
-
/>
|
25
|
-
<div class="text-muted">
|
26
|
-
Product used as Tax Stamp in customer invoices
|
27
|
-
</div>
|
28
|
-
<div class="content-group">
|
29
|
-
<div class="row mt16">
|
30
|
-
<label
|
31
|
-
string="Tax Stamp Product"
|
32
|
-
for="tax_stamp_product_id"
|
33
|
-
class="col-lg-3 o_light_label"
|
34
|
-
/>
|
35
|
-
<field name="tax_stamp_product_id" />
|
36
|
-
</div>
|
37
|
-
</div>
|
38
|
-
</div>
|
39
|
-
</div>
|
40
|
-
</div>
|
14
|
+
<field name="l10n_it_account_stamp_stamp_duty_product_id" />
|
15
|
+
</setting>
|
16
|
+
</block>
|
41
17
|
</field>
|
42
18
|
</record>
|
43
|
-
|
44
19
|
</odoo>
|
@@ -1,33 +1,32 @@
|
|
1
1
|
<?xml version="1.0" encoding="utf-8" ?>
|
2
2
|
<odoo>
|
3
|
-
|
4
3
|
<record id="product_template_form_view_account_stamp" model="ir.ui.view">
|
5
4
|
<field name="name">product.template.form.inherit</field>
|
6
5
|
<field name="model">product.template</field>
|
7
6
|
<field name="inherit_id" ref="account.product_template_form_view" />
|
8
7
|
<field name="arch" type="xml">
|
9
|
-
|
10
8
|
<xpath expr="//group[@name='payables']" position="after">
|
11
|
-
<group string="
|
12
|
-
<field name="
|
9
|
+
<group string="Stamp Duty">
|
10
|
+
<field name="l10n_it_account_stamp_is_stamp" />
|
13
11
|
<field
|
14
|
-
name="
|
15
|
-
|
12
|
+
name="l10n_it_account_stamp_auto_compute"
|
13
|
+
invisible="not l10n_it_account_stamp_is_stamp"
|
16
14
|
/>
|
17
15
|
<p
|
18
|
-
|
16
|
+
invisible="(not l10n_it_account_stamp_auto_compute) or (not l10n_it_account_stamp_is_stamp)"
|
19
17
|
colspan="2"
|
20
18
|
>
|
21
19
|
For each invoice, the base amount for each selected tax will be added up and used to determine
|
22
20
|
the application of the account stamp.
|
23
21
|
</p>
|
24
22
|
<field
|
25
|
-
name="
|
26
|
-
|
23
|
+
name="l10n_it_account_stamp_tax_apply_min_total_base"
|
24
|
+
invisible="(not l10n_it_account_stamp_auto_compute) or (not l10n_it_account_stamp_is_stamp)"
|
25
|
+
required="l10n_it_account_stamp_auto_compute"
|
27
26
|
/>
|
28
27
|
<field
|
29
|
-
name="
|
30
|
-
|
28
|
+
name="l10n_it_account_stamp_stamp_duty_apply_tax_ids"
|
29
|
+
invisible="(not l10n_it_account_stamp_auto_compute) or (not l10n_it_account_stamp_is_stamp)"
|
31
30
|
widget="many2many_tags"
|
32
31
|
/>
|
33
32
|
</group>
|
@@ -37,19 +36,16 @@
|
|
37
36
|
expr="//field[@name='property_account_income_id']"
|
38
37
|
position="attributes"
|
39
38
|
>
|
40
|
-
<attribute name="
|
41
|
-
</attribute>
|
39
|
+
<attribute name="required">l10n_it_account_stamp_is_stamp</attribute>
|
42
40
|
</xpath>
|
43
41
|
|
44
42
|
<xpath
|
45
43
|
expr="//field[@name='property_account_expense_id']"
|
46
44
|
position="attributes"
|
47
45
|
>
|
48
|
-
<attribute name="
|
46
|
+
<attribute name="required">l10n_it_account_stamp_is_stamp
|
49
47
|
</attribute>
|
50
48
|
</xpath>
|
51
|
-
|
52
49
|
</field>
|
53
50
|
</record>
|
54
|
-
|
55
51
|
</odoo>
|