odoo-addon-l10n-br-fiscal 17.0.2.1.0__py3-none-any.whl → 17.0.3.1.0__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.

Potentially problematic release.


This version of odoo-addon-l10n-br-fiscal might be problematic. Click here for more details.

Files changed (26) hide show
  1. odoo/addons/l10n_br_fiscal/README.rst +1 -1
  2. odoo/addons/l10n_br_fiscal/__manifest__.py +1 -1
  3. odoo/addons/l10n_br_fiscal/demo/fiscal_document_demo.xml +2 -90
  4. odoo/addons/l10n_br_fiscal/demo/fiscal_document_nfse_demo.xml +0 -4
  5. odoo/addons/l10n_br_fiscal/demo/fiscal_operation_demo.xml +2 -2
  6. odoo/addons/l10n_br_fiscal/i18n/l10n_br_fiscal.pot +24 -24
  7. odoo/addons/l10n_br_fiscal/migrations/17.0.3.0.0/pre-migration.py +30 -0
  8. odoo/addons/l10n_br_fiscal/models/document.py +1 -6
  9. odoo/addons/l10n_br_fiscal/models/document_line.py +35 -5
  10. odoo/addons/l10n_br_fiscal/models/document_line_mixin.py +63 -12
  11. odoo/addons/l10n_br_fiscal/models/document_line_mixin_methods.py +74 -52
  12. odoo/addons/l10n_br_fiscal/models/document_mixin.py +3 -3
  13. odoo/addons/l10n_br_fiscal/models/document_mixin_methods.py +28 -142
  14. odoo/addons/l10n_br_fiscal/models/document_related.py +1 -1
  15. odoo/addons/l10n_br_fiscal/security/ir.model.access.csv +1 -1
  16. odoo/addons/l10n_br_fiscal/static/description/index.html +1 -1
  17. odoo/addons/l10n_br_fiscal/tests/test_document_edition.py +113 -0
  18. odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_generic.py +0 -11
  19. odoo/addons/l10n_br_fiscal/tests/test_fiscal_document_nfse.py +0 -1
  20. odoo/addons/l10n_br_fiscal/tests/test_tax_benefit.py +0 -1
  21. odoo/addons/l10n_br_fiscal/views/document_line_view.xml +3 -3
  22. odoo/addons/l10n_br_fiscal/views/document_view.xml +6 -6
  23. {odoo_addon_l10n_br_fiscal-17.0.2.1.0.dist-info → odoo_addon_l10n_br_fiscal-17.0.3.1.0.dist-info}/METADATA +2 -2
  24. {odoo_addon_l10n_br_fiscal-17.0.2.1.0.dist-info → odoo_addon_l10n_br_fiscal-17.0.3.1.0.dist-info}/RECORD +26 -25
  25. {odoo_addon_l10n_br_fiscal-17.0.2.1.0.dist-info → odoo_addon_l10n_br_fiscal-17.0.3.1.0.dist-info}/WHEEL +0 -0
  26. {odoo_addon_l10n_br_fiscal-17.0.2.1.0.dist-info → odoo_addon_l10n_br_fiscal-17.0.3.1.0.dist-info}/top_level.txt +0 -0
@@ -11,7 +11,7 @@ Módulo fiscal brasileiro
11
11
  !! This file is generated by oca-gen-addon-readme !!
12
12
  !! changes will be overwritten. !!
13
13
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
14
- !! source digest: sha256:486f72a947ff411ae1ec91ca2ada5d0f563c8421580c7d069ef01f3bbbd9b5f7
14
+ !! source digest: sha256:a94263259afc7260a25f60fd10ada9ac820d816d2f4a157bb688764b76b7fe27
15
15
  !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
16
16
 
17
17
  .. |badge1| image:: https://img.shields.io/badge/maturity-Production%2FStable-green.png
@@ -10,7 +10,7 @@
10
10
  "maintainers": ["renatonlima", "rvalyi"],
11
11
  "website": "https://github.com/OCA/l10n-brazil",
12
12
  "development_status": "Production/Stable",
13
- "version": "17.0.2.1.0",
13
+ "version": "17.0.3.1.0",
14
14
  "depends": [
15
15
  "product",
16
16
  "uom_alias",
@@ -36,10 +36,6 @@
36
36
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
37
37
  </record>
38
38
 
39
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
40
- <value eval="[ref('demo_nfe_line_same_state_1-1')]" />
41
- </function>
42
-
43
39
  <record id="demo_nfe_line_same_state_1-1" model="l10n_br_fiscal.document.line">
44
40
  </record>
45
41
 
@@ -58,10 +54,6 @@
58
54
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
59
55
  </record>
60
56
 
61
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
62
- <value eval="[ref('demo_nfe_line_same_state_1-2')]" />
63
- </function>
64
-
65
57
  <record id="demo_nfe_line_same_state_1-2" model="l10n_br_fiscal.document.line">
66
58
  </record>
67
59
 
@@ -95,10 +87,6 @@
95
87
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
96
88
  </record>
97
89
 
98
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
99
- <value eval="[ref('demo_nfe_line_other_state_1-3')]" />
100
- </function>
101
-
102
90
  <record id="demo_nfe_line_other_state_1-3" model="l10n_br_fiscal.document.line">
103
91
  </record>
104
92
 
@@ -117,10 +105,6 @@
117
105
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
118
106
  </record>
119
107
 
120
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
121
- <value eval="[ref('demo_nfe_line_other_state_2-3')]" />
122
- </function>
123
-
124
108
  <record id="demo_nfe_line_other_state_2-3" model="l10n_br_fiscal.document.line">
125
109
  </record>
126
110
 
@@ -140,10 +124,6 @@
140
124
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
141
125
  </record>
142
126
 
143
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
144
- <value eval="[ref('demo_nfe_line_other_state_3-3')]" />
145
- </function>
146
-
147
127
  <record id="demo_nfe_line_other_state_3-3" model="l10n_br_fiscal.document.line">
148
128
  </record>
149
129
 
@@ -179,10 +159,6 @@
179
159
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
180
160
  </record>
181
161
 
182
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
183
- <value eval="[ref('demo_nfe_line_export_3-1')]" />
184
- </function>
185
-
186
162
  <record id="demo_nfe_line_export_3-1" model="l10n_br_fiscal.document.line">
187
163
  </record>
188
164
 
@@ -201,10 +177,6 @@
201
177
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
202
178
  </record>
203
179
 
204
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
205
- <value eval="[ref('demo_nfe_line_export_3-2')]" />
206
- </function>
207
-
208
180
  <record id="demo_nfe_line_export_3-2" model="l10n_br_fiscal.document.line">
209
181
  </record>
210
182
 
@@ -244,15 +216,11 @@
244
216
  />
245
217
  <field
246
218
  name="comment_ids"
247
- eval="[(6,0,[ref('l10n_br_fiscal.fiscal_line_comment_dummy')])]"
219
+ eval="[Command.set([ref('l10n_br_fiscal.fiscal_line_comment_dummy')])]"
248
220
  />
249
221
  <field name="manual_additional_data">manual comment test</field>
250
222
  </record>
251
223
 
252
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
253
- <value eval="[ref('demo_nfe_line_nao_contribuinte_4-1')]" />
254
- </function>
255
-
256
224
  <record
257
225
  id="demo_nfe_line_nao_contribuinte_4-1"
258
226
  model="l10n_br_fiscal.document.line"
@@ -280,10 +248,6 @@
280
248
  />
281
249
  </record>
282
250
 
283
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
284
- <value eval="[ref('demo_nfe_line_nao_contribuinte_4-2')]" />
285
- </function>
286
-
287
251
  <record
288
252
  id="demo_nfe_line_nao_contribuinte_4-2"
289
253
  model="l10n_br_fiscal.document.line"
@@ -323,15 +287,11 @@
323
287
  />
324
288
  <field
325
289
  name="comment_ids"
326
- eval="[(6,0,[ref('l10n_br_fiscal.fiscal_line_comment_dummy')])]"
290
+ eval="[Command.set([ref('l10n_br_fiscal.fiscal_line_comment_dummy')])]"
327
291
  />
328
292
  <field name="manual_additional_data">manual comment test</field>
329
293
  </record>
330
294
 
331
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
332
- <value eval="[ref('demo_nfe_tax_benefit_4-1')]" />
333
- </function>
334
-
335
295
  <record id="demo_nfe_tax_benefit_4-1" model="l10n_br_fiscal.document.line">
336
296
  </record>
337
297
 
@@ -368,10 +328,6 @@
368
328
  />
369
329
  </record>
370
330
 
371
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
372
- <value eval="[ref('demo_nfe_nao_contribuinte_pf_1-2')]" />
373
- </function>
374
-
375
331
  <record id="demo_nfe_nao_contribuinte_pf_1-2" model="l10n_br_fiscal.document.line">
376
332
  </record>
377
333
 
@@ -393,10 +349,6 @@
393
349
  />
394
350
  </record>
395
351
 
396
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
397
- <value eval="[ref('demo_nfe_nao_contribuinte_pf_2-2')]" />
398
- </function>
399
-
400
352
  <record id="demo_nfe_nao_contribuinte_pf_2-2" model="l10n_br_fiscal.document.line">
401
353
  </record>
402
354
 
@@ -430,10 +382,6 @@
430
382
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
431
383
  </record>
432
384
 
433
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
434
- <value eval="[ref('demo_nfe_line_sn_same_state_5-1')]" />
435
- </function>
436
-
437
385
  <record id="demo_nfe_line_sn_same_state_5-1" model="l10n_br_fiscal.document.line">
438
386
  </record>
439
387
 
@@ -452,10 +400,6 @@
452
400
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
453
401
  </record>
454
402
 
455
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
456
- <value eval="[ref('demo_nfe_line_sn_same_state_5-2')]" />
457
- </function>
458
-
459
403
  <record id="demo_nfe_line_sn_same_state_5-2" model="l10n_br_fiscal.document.line">
460
404
  </record>
461
405
 
@@ -489,10 +433,6 @@
489
433
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
490
434
  </record>
491
435
 
492
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
493
- <value eval="[ref('demo_nfe_line_sn_other_state_6-1')]" />
494
- </function>
495
-
496
436
  <record id="demo_nfe_line_sn_other_state_6-1" model="l10n_br_fiscal.document.line">
497
437
  </record>
498
438
 
@@ -511,10 +451,6 @@
511
451
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
512
452
  </record>
513
453
 
514
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
515
- <value eval="[ref('demo_nfe_line_sn_other_state_6-2')]" />
516
- </function>
517
-
518
454
  <record id="demo_nfe_line_sn_other_state_6-2" model="l10n_br_fiscal.document.line">
519
455
  </record>
520
456
 
@@ -548,10 +484,6 @@
548
484
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
549
485
  </record>
550
486
 
551
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
552
- <value eval="[ref('demo_nfe_line_sn_export_7-1')]" />
553
- </function>
554
-
555
487
  <record id="demo_nfe_line_sn_export_7-1" model="l10n_br_fiscal.document.line">
556
488
  </record>
557
489
 
@@ -570,10 +502,6 @@
570
502
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
571
503
  </record>
572
504
 
573
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
574
- <value eval="[ref('demo_nfe_line_sn_export_7-2')]" />
575
- </function>
576
-
577
505
  <record id="demo_nfe_line_sn_export_7-2" model="l10n_br_fiscal.document.line">
578
506
  </record>
579
507
 
@@ -610,10 +538,6 @@
610
538
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
611
539
  </record>
612
540
 
613
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
614
- <value eval="[ref('demo_nfe_line_sn_nao_contribuinte_7-1')]" />
615
- </function>
616
-
617
541
  <record
618
542
  id="demo_nfe_line_sn_nao_contribuinte_7-1"
619
543
  model="l10n_br_fiscal.document.line"
@@ -638,10 +562,6 @@
638
562
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_venda" />
639
563
  </record>
640
564
 
641
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
642
- <value eval="[ref('demo_nfe_line_sn_nao_contribuinte_7-2')]" />
643
- </function>
644
-
645
565
  <record
646
566
  id="demo_nfe_line_sn_nao_contribuinte_7-2"
647
567
  model="l10n_br_fiscal.document.line"
@@ -689,10 +609,6 @@
689
609
  <field name="cfop_id" ref="l10n_br_fiscal.cfop_5922" />
690
610
  </record>
691
611
 
692
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
693
- <value eval="[ref('demo_nfe_line_so_simples_faturamento_7-1')]" />
694
- </function>
695
-
696
612
  <record
697
613
  id="demo_nfe_line_so_simples_faturamento_7-1"
698
614
  model="l10n_br_fiscal.document.line"
@@ -733,10 +649,6 @@
733
649
  />
734
650
  </record>
735
651
 
736
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
737
- <value eval="[ref('demo_nfe_purchase_line_same_state_1-1')]" />
738
- </function>
739
-
740
652
  <record
741
653
  id="demo_nfe_purchase_line_same_state_1-1"
742
654
  model="l10n_br_fiscal.document.line"
@@ -23,8 +23,4 @@
23
23
  <field name="fiscal_operation_line_id" ref="l10n_br_fiscal.fo_venda_servico" />
24
24
  </record>
25
25
 
26
- <function model="l10n_br_fiscal.document.line" name="_onchange_product_id_fiscal">
27
- <value eval="[ref('l10n_br_fiscal.demo_nfse_line_same_state_1-1')]" />
28
- </function>
29
-
30
26
  </odoo>
@@ -4,14 +4,14 @@
4
4
  <record id="fo_venda" model="l10n_br_fiscal.operation">
5
5
  <field
6
6
  name="comment_ids"
7
- eval="[(6,0,[ref('l10n_br_fiscal.fiscal_comment_dummy')])]"
7
+ eval="[Command.set([ref('l10n_br_fiscal.fiscal_comment_dummy')])]"
8
8
  />
9
9
  </record>
10
10
 
11
11
  <record id="fo_venda_venda" model="l10n_br_fiscal.operation.line">
12
12
  <field
13
13
  name="comment_ids"
14
- eval="[(6,0,[ref('l10n_br_fiscal.fiscal_line_comment_dummy')])]"
14
+ eval="[Command.set([ref('l10n_br_fiscal.fiscal_line_comment_dummy')])]"
15
15
  />
16
16
  </record>
17
17
 
@@ -799,14 +799,6 @@ msgstr ""
799
799
  msgid "Amount Gross"
800
800
  msgstr ""
801
801
 
802
- #. module: l10n_br_fiscal
803
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__amount_tax
804
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line__amount_tax
805
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line_mixin__amount_tax
806
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_mixin__amount_tax
807
- msgid "Amount Tax"
808
- msgstr ""
809
-
810
802
  #. module: l10n_br_fiscal
811
803
  #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line__amount_tax_included
812
804
  #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line_mixin__amount_tax_included
@@ -825,22 +817,6 @@ msgstr ""
825
817
  msgid "Amount Taxed"
826
818
  msgstr ""
827
819
 
828
- #. module: l10n_br_fiscal
829
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__amount_total
830
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line__amount_total
831
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line_mixin__amount_total
832
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_mixin__amount_total
833
- msgid "Amount Total"
834
- msgstr ""
835
-
836
- #. module: l10n_br_fiscal
837
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__amount_untaxed
838
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line__amount_untaxed
839
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line_mixin__amount_untaxed
840
- #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_mixin__amount_untaxed
841
- msgid "Amount Untaxed"
842
- msgstr ""
843
-
844
820
  #. module: l10n_br_fiscal
845
821
  #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_simplified_tax_range__amount_deduced
846
822
  msgid "Amount to be Deducted"
@@ -2728,6 +2704,30 @@ msgstr ""
2728
2704
  msgid "Fiscal Additional data manually entered by user"
2729
2705
  msgstr ""
2730
2706
 
2707
+ #. module: l10n_br_fiscal
2708
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__fiscal_amount_tax
2709
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line__fiscal_amount_tax
2710
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line_mixin__fiscal_amount_tax
2711
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_mixin__fiscal_amount_tax
2712
+ msgid "Fiscal Amount Tax"
2713
+ msgstr ""
2714
+
2715
+ #. module: l10n_br_fiscal
2716
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__fiscal_amount_total
2717
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line__fiscal_amount_total
2718
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line_mixin__fiscal_amount_total
2719
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_mixin__fiscal_amount_total
2720
+ msgid "Fiscal Amount Total"
2721
+ msgstr ""
2722
+
2723
+ #. module: l10n_br_fiscal
2724
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document__fiscal_amount_untaxed
2725
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line__fiscal_amount_untaxed
2726
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_line_mixin__fiscal_amount_untaxed
2727
+ #: model:ir.model.fields,field_description:l10n_br_fiscal.field_l10n_br_fiscal_document_mixin__fiscal_amount_untaxed
2728
+ msgid "Fiscal Amount Untaxed"
2729
+ msgstr ""
2730
+
2731
2731
  #. module: l10n_br_fiscal
2732
2732
  #: model:ir.model,name:l10n_br_fiscal.model_l10n_br_fiscal_base_wizard_mixin
2733
2733
  msgid "Fiscal Base Wizard Mixin"
@@ -0,0 +1,30 @@
1
+ # Copyright (C) 2025 - Engenere (<https://engenere.one>).
2
+ # @author Antônio S. Pereira Neto <neto@engenere.one>
3
+ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4
+
5
+ from openupgradelib import openupgrade
6
+
7
+
8
+ @openupgrade.migrate()
9
+ def migrate(env, version):
10
+ field_spec = [
11
+ (
12
+ "l10n_br_fiscal.document",
13
+ "l10n_br_fiscal_document",
14
+ "amount_untaxed",
15
+ "fiscal_amount_untaxed",
16
+ ),
17
+ (
18
+ "l10n_br_fiscal.document",
19
+ "l10n_br_fiscal_document",
20
+ "amount_tax",
21
+ "fiscal_amount_tax",
22
+ ),
23
+ (
24
+ "l10n_br_fiscal.document",
25
+ "l10n_br_fiscal_document",
26
+ "amount_total",
27
+ "fiscal_amount_total",
28
+ ),
29
+ ]
30
+ openupgrade.rename_fields(env, field_spec)
@@ -186,9 +186,9 @@ class Document(models.Model):
186
186
  )
187
187
 
188
188
  currency_id = fields.Many2one(
189
+ related="company_id.currency_id",
189
190
  comodel_name="res.currency",
190
191
  string="Currency",
191
- compute="_compute_currency_id",
192
192
  )
193
193
 
194
194
  # this related "state" field is required for the status bar widget
@@ -326,11 +326,6 @@ class Document(models.Model):
326
326
  self.fiscal_operation_id = False
327
327
  return {"domain": {"fiscal_operation_id": domain}}
328
328
 
329
- @api.depends("company_id")
330
- def _compute_currency_id(self):
331
- for doc in self:
332
- doc.currency_id = doc.company_id.currency_id or self.env.company.currency_id
333
-
334
329
  def _compute_document_name(self):
335
330
  self.ensure_one()
336
331
  name = ""
@@ -1,7 +1,7 @@
1
1
  # Copyright (C) 2013 Renato Lima - Akretion
2
2
  # License AGPL-3 - See http://www.gnu.org/licenses/agpl-3.0.html
3
3
 
4
- from odoo import fields, models
4
+ from odoo import api, fields, models
5
5
 
6
6
 
7
7
  class DocumentLine(models.Model):
@@ -30,7 +30,12 @@ class DocumentLine(models.Model):
30
30
  ondelete="cascade",
31
31
  )
32
32
 
33
- name = fields.Char()
33
+ name = fields.Char(
34
+ compute="_compute_name",
35
+ store=True,
36
+ precompute=True,
37
+ readonly=False,
38
+ )
34
39
 
35
40
  company_id = fields.Many2one(
36
41
  comodel_name="res.company",
@@ -50,6 +55,15 @@ class DocumentLine(models.Model):
50
55
  precompute=True,
51
56
  )
52
57
 
58
+ uom_id = fields.Many2one(
59
+ comodel_name="uom.uom",
60
+ string="UOM",
61
+ compute="_compute_uom_id",
62
+ store=True,
63
+ readonly=False,
64
+ precompute=True,
65
+ )
66
+
53
67
  quantity = fields.Float(default=1.0)
54
68
 
55
69
  ind_final = fields.Selection(related="document_id.ind_final")
@@ -70,6 +84,22 @@ class DocumentLine(models.Model):
70
84
 
71
85
  additional_data = fields.Text()
72
86
 
87
+ @api.depends("product_id")
88
+ def _compute_name(self):
89
+ for line in self:
90
+ if line.product_id:
91
+ line.name = line.product_id.display_name
92
+ else:
93
+ line.name = False
94
+
95
+ @api.depends("product_id")
96
+ def _compute_uom_id(self):
97
+ for line in self:
98
+ if line.fiscal_operation_type == "in":
99
+ line.uom_id = line.product_id.uom_po_id
100
+ else:
101
+ line.uom_id = line.product_id.uom_id
102
+
73
103
  def __document_comment_vals(self):
74
104
  self.ensure_one()
75
105
  return {
@@ -80,7 +110,7 @@ class DocumentLine(models.Model):
80
110
  }
81
111
 
82
112
  def _document_comment(self):
83
- for d in self:
84
- d.additional_data = d.comment_ids.compute_message(
85
- d.__document_comment_vals(), d.manual_additional_data
113
+ for line in self:
114
+ line.additional_data = line.comment_ids.compute_message(
115
+ line.__document_comment_vals(), line.manual_additional_data
86
116
  )
@@ -36,7 +36,6 @@ from ..constants.icms import (
36
36
  ICMS_BASE_TYPE,
37
37
  ICMS_BASE_TYPE_DEFAULT,
38
38
  ICMS_ORIGIN,
39
- ICMS_ORIGIN_DEFAULT,
40
39
  ICMS_ST_BASE_TYPE,
41
40
  ICMS_ST_BASE_TYPE_DEFAULT,
42
41
  )
@@ -135,16 +134,31 @@ class FiscalDocumentLineMixin(models.AbstractModel):
135
134
 
136
135
  partner_company_type = fields.Selection(related="partner_id.company_type")
137
136
 
138
- uom_id = fields.Many2one(comodel_name="uom.uom", string="UOM")
137
+ uom_id = fields.Many2one(
138
+ comodel_name="uom.uom",
139
+ string="UOM",
140
+ )
139
141
 
140
142
  quantity = fields.Float(
141
143
  digits="Product Unit of Measure",
142
144
  )
143
145
 
144
- fiscal_type = fields.Selection(selection=PRODUCT_FISCAL_TYPE)
146
+ fiscal_type = fields.Selection(
147
+ selection=PRODUCT_FISCAL_TYPE,
148
+ compute="_compute_product_fiscal_fields",
149
+ store=True,
150
+ readonly=False,
151
+ precompute=True,
152
+ )
145
153
 
146
154
  ncm_id = fields.Many2one(
147
- comodel_name="l10n_br_fiscal.ncm", index=True, string="NCM"
155
+ comodel_name="l10n_br_fiscal.ncm",
156
+ index=True,
157
+ string="NCM",
158
+ compute="_compute_product_fiscal_fields",
159
+ store=True,
160
+ readonly=False,
161
+ precompute=True,
148
162
  )
149
163
 
150
164
  nbm_id = fields.Many2one(
@@ -152,6 +166,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
152
166
  index=True,
153
167
  string="NBM",
154
168
  domain="[('ncm_ids', '=', ncm_id)]",
169
+ compute="_compute_product_fiscal_fields",
170
+ store=True,
171
+ readonly=False,
172
+ precompute=True,
155
173
  )
156
174
 
157
175
  cest_id = fields.Many2one(
@@ -159,10 +177,20 @@ class FiscalDocumentLineMixin(models.AbstractModel):
159
177
  index=True,
160
178
  string="CEST",
161
179
  domain="[('ncm_ids', '=', ncm_id)]",
180
+ compute="_compute_product_fiscal_fields",
181
+ store=True,
182
+ readonly=False,
183
+ precompute=True,
162
184
  )
163
185
 
164
186
  nbs_id = fields.Many2one(
165
- comodel_name="l10n_br_fiscal.nbs", index=True, string="NBS"
187
+ comodel_name="l10n_br_fiscal.nbs",
188
+ index=True,
189
+ string="NBS",
190
+ compute="_compute_product_fiscal_fields",
191
+ store=True,
192
+ readonly=False,
193
+ precompute=True,
166
194
  )
167
195
 
168
196
  fiscal_operation_id = fields.Many2one(
@@ -258,11 +286,11 @@ class FiscalDocumentLineMixin(models.AbstractModel):
258
286
  compute="_compute_fiscal_amounts",
259
287
  )
260
288
 
261
- amount_untaxed = fields.Monetary(
289
+ fiscal_amount_untaxed = fields.Monetary(
262
290
  compute="_compute_fiscal_amounts",
263
291
  )
264
292
 
265
- amount_tax = fields.Monetary(
293
+ fiscal_amount_tax = fields.Monetary(
266
294
  compute="_compute_fiscal_amounts",
267
295
  )
268
296
 
@@ -270,7 +298,7 @@ class FiscalDocumentLineMixin(models.AbstractModel):
270
298
  compute="_compute_fiscal_amounts",
271
299
  )
272
300
 
273
- amount_total = fields.Monetary(
301
+ fiscal_amount_total = fields.Monetary(
274
302
  compute="_compute_fiscal_amounts",
275
303
  )
276
304
 
@@ -296,7 +324,12 @@ class FiscalDocumentLineMixin(models.AbstractModel):
296
324
  amount_tax_withholding = fields.Monetary(string="Tax Withholding")
297
325
 
298
326
  fiscal_genre_id = fields.Many2one(
299
- comodel_name="l10n_br_fiscal.product.genre", string="Fiscal Product Genre"
327
+ comodel_name="l10n_br_fiscal.product.genre",
328
+ string="Fiscal Product Genre",
329
+ compute="_compute_product_fiscal_fields",
330
+ store=True,
331
+ readonly=False,
332
+ precompute=True,
300
333
  )
301
334
 
302
335
  fiscal_genre_code = fields.Char(
@@ -307,10 +340,19 @@ class FiscalDocumentLineMixin(models.AbstractModel):
307
340
  comodel_name="l10n_br_fiscal.service.type",
308
341
  string="Service Type LC 166",
309
342
  domain="[('internal_type', '=', 'normal')]",
343
+ compute="_compute_product_fiscal_fields",
344
+ store=True,
345
+ readonly=False,
346
+ precompute=True,
310
347
  )
311
348
 
312
349
  city_taxation_code_id = fields.Many2one(
313
- comodel_name="l10n_br_fiscal.city.taxation.code", string="City Taxation Code"
350
+ comodel_name="l10n_br_fiscal.city.taxation.code",
351
+ string="City Taxation Code",
352
+ compute="_compute_product_fiscal_fields",
353
+ store=True,
354
+ readonly=False,
355
+ precompute=True,
314
356
  )
315
357
 
316
358
  partner_order = fields.Char(string="Partner Order (xPed)", size=15)
@@ -331,6 +373,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
331
373
  issqn_fg_city_id = fields.Many2one(
332
374
  comodel_name="res.city",
333
375
  string="ISSQN City",
376
+ compute="_compute_product_fiscal_fields",
377
+ store=True,
378
+ readonly=False,
379
+ precompute=True,
334
380
  )
335
381
 
336
382
  # vDeducao
@@ -487,7 +533,12 @@ class FiscalDocumentLineMixin(models.AbstractModel):
487
533
  )
488
534
 
489
535
  icms_origin = fields.Selection(
490
- selection=ICMS_ORIGIN, string="ICMS Origin", default=ICMS_ORIGIN_DEFAULT
536
+ selection=ICMS_ORIGIN,
537
+ string="ICMS Origin",
538
+ compute="_compute_product_fiscal_fields",
539
+ store=True,
540
+ readonly=False,
541
+ precompute=True,
491
542
  )
492
543
 
493
544
  # vBC - Valor da base de cálculo do ICMS
@@ -1620,7 +1671,7 @@ class FiscalDocumentLineMixin(models.AbstractModel):
1620
1671
  comodel_name="l10n_br_fiscal.comment",
1621
1672
  string="Comments",
1622
1673
  domain=[("object", "=", FISCAL_COMMENT_LINE)],
1623
- compute="_compute_fiscal_tax_ids",
1674
+ compute="_compute_comment_ids",
1624
1675
  store=True,
1625
1676
  precompute=True,
1626
1677
  readonly=False,