odoo-addon-l10n-br-fiscal 16.0.11.4.0__py3-none-any.whl → 16.0.12.0.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.

@@ -197,6 +197,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
197
197
  comodel_name="l10n_br_fiscal.cfop",
198
198
  string="CFOP",
199
199
  domain="[('type_in_out', '=', fiscal_operation_type)]",
200
+ compute="_compute_fiscal_tax_ids",
201
+ store=True,
202
+ precompute=True,
203
+ readonly=False,
200
204
  )
201
205
 
202
206
  cfop_destination = fields.Selection(
@@ -218,6 +222,7 @@ class FiscalDocumentLineMixin(models.AbstractModel):
218
222
  compute="_compute_uot_id",
219
223
  store=True,
220
224
  readonly=False,
225
+ precompute=True,
221
226
  )
222
227
 
223
228
  fiscal_quantity = fields.Float(
@@ -239,6 +244,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
239
244
  fiscal_tax_ids = fields.Many2many(
240
245
  comodel_name="l10n_br_fiscal.tax",
241
246
  string="Fiscal Taxes",
247
+ compute="_compute_fiscal_tax_ids",
248
+ store=True,
249
+ precompute=True,
250
+ readonly=False,
242
251
  )
243
252
 
244
253
  amount_fiscal = fields.Monetary(
@@ -318,6 +327,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
318
327
  comodel_name="l10n_br_fiscal.tax",
319
328
  string="Tax ISSQN",
320
329
  domain=[("tax_domain", "=", TAX_DOMAIN_ISSQN)],
330
+ compute="_compute_tax_fields",
331
+ store=True,
332
+ precompute=True,
333
+ readonly=False,
321
334
  )
322
335
 
323
336
  issqn_fg_city_id = fields.Many2one(
@@ -351,33 +364,89 @@ class FiscalDocumentLineMixin(models.AbstractModel):
351
364
  default=ISSQN_INCENTIVE_DEFAULT,
352
365
  )
353
366
 
354
- issqn_base = fields.Monetary(string="ISSQN Base")
367
+ issqn_base = fields.Monetary(
368
+ string="ISSQN Base",
369
+ compute="_compute_tax_fields",
370
+ store=True,
371
+ precompute=True,
372
+ readonly=False,
373
+ )
355
374
 
356
- issqn_percent = fields.Float(string="ISSQN %")
375
+ issqn_percent = fields.Float(
376
+ string="ISSQN %",
377
+ compute="_compute_tax_fields",
378
+ store=True,
379
+ precompute=True,
380
+ readonly=False,
381
+ )
357
382
 
358
- issqn_reduction = fields.Float(string="ISSQN % Reduction")
383
+ issqn_reduction = fields.Float(
384
+ string="ISSQN % Reduction",
385
+ compute="_compute_tax_fields",
386
+ store=True,
387
+ precompute=True,
388
+ readonly=False,
389
+ )
359
390
 
360
- issqn_value = fields.Monetary(string="ISSQN Value")
391
+ issqn_value = fields.Monetary(
392
+ string="ISSQN Value",
393
+ compute="_compute_tax_fields",
394
+ store=True,
395
+ precompute=True,
396
+ readonly=False,
397
+ )
361
398
 
362
399
  issqn_wh_tax_id = fields.Many2one(
363
400
  comodel_name="l10n_br_fiscal.tax",
364
401
  string="Tax ISSQN RET",
365
402
  domain=[("tax_domain", "=", TAX_DOMAIN_ISSQN_WH)],
403
+ compute="_compute_tax_fields",
404
+ store=True,
405
+ precompute=True,
406
+ readonly=False,
366
407
  )
367
408
 
368
- issqn_wh_base = fields.Monetary(string="ISSQN RET Base")
409
+ issqn_wh_base = fields.Monetary(
410
+ string="ISSQN RET Base",
411
+ compute="_compute_tax_fields",
412
+ store=True,
413
+ precompute=True,
414
+ readonly=False,
415
+ )
369
416
 
370
- issqn_wh_percent = fields.Float(string="ISSQN RET %")
417
+ issqn_wh_percent = fields.Float(
418
+ string="ISSQN RET %",
419
+ compute="_compute_tax_fields",
420
+ store=True,
421
+ precompute=True,
422
+ readonly=False,
423
+ )
371
424
 
372
- issqn_wh_reduction = fields.Float(string="ISSQN RET % Reduction")
425
+ issqn_wh_reduction = fields.Float(
426
+ string="ISSQN RET % Reduction",
427
+ compute="_compute_tax_fields",
428
+ store=True,
429
+ precompute=True,
430
+ readonly=False,
431
+ )
373
432
 
374
- issqn_wh_value = fields.Monetary(string="ISSQN RET Value")
433
+ issqn_wh_value = fields.Monetary(
434
+ string="ISSQN RET Value",
435
+ compute="_compute_tax_fields",
436
+ store=True,
437
+ precompute=True,
438
+ readonly=False,
439
+ )
375
440
 
376
441
  # ICMS Fields
377
442
  icms_tax_id = fields.Many2one(
378
443
  comodel_name="l10n_br_fiscal.tax",
379
444
  string="Tax ICMS",
380
445
  domain=[("tax_domain", "=", TAX_DOMAIN_ICMS)],
446
+ compute="_compute_tax_fields",
447
+ store=True,
448
+ precompute=True,
449
+ readonly=False,
381
450
  )
382
451
 
383
452
  icms_cst_id = fields.Many2one(
@@ -385,6 +454,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
385
454
  string="CST ICMS",
386
455
  domain="[('tax_domain', '=', {'1': 'icmssn', '2': 'icmssn', "
387
456
  "'3': 'icms'}.get(tax_framework))]",
457
+ compute="_compute_tax_fields",
458
+ store=True,
459
+ precompute=True,
460
+ readonly=False,
388
461
  )
389
462
 
390
463
  icms_cst_code = fields.Char(
@@ -398,6 +471,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
398
471
  ("is_benefit", "=", True),
399
472
  ("tax_domain", "=", TAX_DOMAIN_ICMS),
400
473
  ],
474
+ compute="_compute_fiscal_tax_ids",
475
+ store=True,
476
+ precompute=True,
477
+ readonly=False,
401
478
  )
402
479
 
403
480
  icms_tax_benefit_code = fields.Char(
@@ -408,6 +485,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
408
485
  selection=ICMS_BASE_TYPE,
409
486
  string="ICMS Base Type",
410
487
  default=ICMS_BASE_TYPE_DEFAULT,
488
+ compute="_compute_tax_fields",
489
+ store=True,
490
+ precompute=True,
491
+ readonly=False,
411
492
  )
412
493
 
413
494
  icms_origin = fields.Selection(
@@ -415,16 +496,40 @@ class FiscalDocumentLineMixin(models.AbstractModel):
415
496
  )
416
497
 
417
498
  # vBC - Valor da base de cálculo do ICMS
418
- icms_base = fields.Monetary(string="ICMS Base")
499
+ icms_base = fields.Monetary(
500
+ string="ICMS Base",
501
+ compute="_compute_tax_fields",
502
+ store=True,
503
+ precompute=True,
504
+ readonly=False,
505
+ )
419
506
 
420
507
  # pICMS - Alíquota do IMCS
421
- icms_percent = fields.Float(string="ICMS %")
508
+ icms_percent = fields.Float(
509
+ string="ICMS %",
510
+ compute="_compute_tax_fields",
511
+ store=True,
512
+ precompute=True,
513
+ readonly=False,
514
+ )
422
515
 
423
516
  # pRedBC - Percentual de redução do ICMS
424
- icms_reduction = fields.Float(string="ICMS % Reduction")
517
+ icms_reduction = fields.Float(
518
+ string="ICMS % Reduction",
519
+ compute="_compute_tax_fields",
520
+ store=True,
521
+ precompute=True,
522
+ readonly=False,
523
+ )
425
524
 
426
525
  # vICMS - Valor do ICMS
427
- icms_value = fields.Monetary(string="ICMS Value")
526
+ icms_value = fields.Monetary(
527
+ string="ICMS Value",
528
+ compute="_compute_tax_fields",
529
+ store=True,
530
+ precompute=True,
531
+ readonly=False,
532
+ )
428
533
 
429
534
  # vICMSSubstituto - Valor do ICMS cobrado em operação anterior
430
535
  icms_substitute = fields.Monetary(
@@ -438,13 +543,23 @@ class FiscalDocumentLineMixin(models.AbstractModel):
438
543
  )
439
544
 
440
545
  # vICMSDeson - Valor do ICMS desonerado
441
- icms_relief_value = fields.Monetary(string="ICMS Relief Value")
546
+ icms_relief_value = fields.Monetary(
547
+ string="ICMS Relief Value",
548
+ compute="_compute_tax_fields",
549
+ store=True,
550
+ precompute=True,
551
+ readonly=False,
552
+ )
442
553
 
443
554
  # ICMS ST Fields
444
555
  icmsst_tax_id = fields.Many2one(
445
556
  comodel_name="l10n_br_fiscal.tax",
446
557
  string="Tax ICMS ST",
447
558
  domain=[("tax_domain", "=", TAX_DOMAIN_ICMS_ST)],
559
+ compute="_compute_tax_fields",
560
+ store=True,
561
+ precompute=True,
562
+ readonly=False,
448
563
  )
449
564
 
450
565
  # modBCST - Modalidade de determinação da BC do ICMS ST
@@ -452,22 +567,56 @@ class FiscalDocumentLineMixin(models.AbstractModel):
452
567
  selection=ICMS_ST_BASE_TYPE,
453
568
  string="ICMS ST Base Type",
454
569
  default=ICMS_ST_BASE_TYPE_DEFAULT,
570
+ compute="_compute_tax_fields",
571
+ store=True,
572
+ precompute=True,
573
+ readonly=False,
455
574
  )
456
575
 
457
576
  # pMVAST - Percentual da margem de valor Adicionado do ICMS ST
458
- icmsst_mva_percent = fields.Float(string="ICMS ST MVA %")
577
+ icmsst_mva_percent = fields.Float(
578
+ string="ICMS ST MVA %",
579
+ compute="_compute_tax_fields",
580
+ store=True,
581
+ precompute=True,
582
+ readonly=False,
583
+ )
459
584
 
460
585
  # pRedBCST - Percentual da Redução de BC do ICMS ST
461
- icmsst_reduction = fields.Float(string="ICMS ST % Reduction")
586
+ icmsst_reduction = fields.Float(
587
+ string="ICMS ST % Reduction",
588
+ compute="_compute_tax_fields",
589
+ store=True,
590
+ precompute=True,
591
+ readonly=False,
592
+ )
462
593
 
463
594
  # vBCST - Valor da BC do ICMS ST
464
- icmsst_base = fields.Monetary(string="ICMS ST Base")
595
+ icmsst_base = fields.Monetary(
596
+ string="ICMS ST Base",
597
+ compute="_compute_tax_fields",
598
+ store=True,
599
+ precompute=True,
600
+ readonly=False,
601
+ )
465
602
 
466
603
  # pICMSST - Alíquota do imposto do ICMS ST
467
- icmsst_percent = fields.Float(string="ICMS ST %")
604
+ icmsst_percent = fields.Float(
605
+ string="ICMS ST %",
606
+ compute="_compute_tax_fields",
607
+ store=True,
608
+ precompute=True,
609
+ readonly=False,
610
+ )
468
611
 
469
612
  # vICMSST - Valor do ICMS ST
470
- icmsst_value = fields.Monetary(string="ICMS ST Value")
613
+ icmsst_value = fields.Monetary(
614
+ string="ICMS ST Value",
615
+ compute="_compute_tax_fields",
616
+ store=True,
617
+ precompute=True,
618
+ readonly=False,
619
+ )
471
620
 
472
621
  # vBCSTRet - Valor da base de cálculo do ICMS ST retido
473
622
  icmsst_wh_base = fields.Monetary(string="ICMS ST WH Base")
@@ -483,58 +632,134 @@ class FiscalDocumentLineMixin(models.AbstractModel):
483
632
  comodel_name="l10n_br_fiscal.tax",
484
633
  string="Tax ICMS FCP",
485
634
  domain=[("tax_domain", "=", TAX_DOMAIN_ICMS_FCP)],
635
+ compute="_compute_tax_fields",
636
+ store=True,
637
+ precompute=True,
638
+ readonly=False,
486
639
  )
487
640
 
488
641
  # vBCFCPUFDest
489
642
  icmsfcp_base = fields.Monetary(
490
643
  string="ICMS FCP Base",
644
+ compute="_compute_tax_fields",
645
+ store=True,
646
+ precompute=True,
647
+ readonly=False,
491
648
  )
492
649
 
493
650
  # pFCPUFDest - Percentual do ICMS relativo ao Fundo de
494
651
  # Combate à Pobreza (FCP) na UF de destino
495
- icmsfcp_percent = fields.Float(string="ICMS FCP %")
652
+ icmsfcp_percent = fields.Float(
653
+ string="ICMS FCP %",
654
+ compute="_compute_tax_fields",
655
+ store=True,
656
+ precompute=True,
657
+ readonly=False,
658
+ )
496
659
 
497
660
  # vFCPUFDest - Valor do ICMS relativo ao Fundo
498
661
  # de Combate à Pobreza (FCP) da UF de destino
499
- icmsfcp_value = fields.Monetary(string="ICMS FCP Value")
662
+ icmsfcp_value = fields.Monetary(
663
+ string="ICMS FCP Value",
664
+ compute="_compute_tax_fields",
665
+ store=True,
666
+ precompute=True,
667
+ readonly=False,
668
+ )
500
669
 
501
670
  # ICMS FCP ST Fields
502
671
  icmsfcpst_tax_id = fields.Many2one(
503
672
  comodel_name="l10n_br_fiscal.tax",
504
673
  string="Tax ICMS FCP ST",
505
674
  domain=[("tax_domain", "=", TAX_DOMAIN_ICMS_FCP_ST)],
675
+ compute="_compute_tax_fields",
676
+ store=True,
677
+ precompute=True,
678
+ readonly=False,
506
679
  )
507
680
 
508
681
  # vBCFCPST
509
682
  icmsfcpst_base = fields.Monetary(
510
683
  string="ICMS FCP ST Base",
684
+ compute="_compute_tax_fields",
685
+ store=True,
686
+ precompute=True,
687
+ readonly=False,
511
688
  )
512
689
 
513
690
  # pFCPST - Percentual do FCP ST
514
- icmsfcpst_percent = fields.Float(string="ICMS FCP ST %")
691
+ icmsfcpst_percent = fields.Float(
692
+ string="ICMS FCP ST %",
693
+ compute="_compute_tax_fields",
694
+ store=True,
695
+ precompute=True,
696
+ readonly=False,
697
+ )
515
698
 
516
699
  # vFCPST - Valor do ICMS relativo ao
517
700
  # Fundo de Combate à Pobreza (FCP) por Substituição Tributária
518
- icmsfcpst_value = fields.Monetary(string="ICMS FCP ST Value")
701
+ icmsfcpst_value = fields.Monetary(
702
+ string="ICMS FCP ST Value",
703
+ compute="_compute_tax_fields",
704
+ store=True,
705
+ precompute=True,
706
+ readonly=False,
707
+ )
519
708
 
520
709
  # ICMS DIFAL Fields
521
710
  # vBCUFDest - Valor da BC do ICMS na UF de destino
522
- icms_destination_base = fields.Monetary(string="ICMS Destination Base")
711
+ icms_destination_base = fields.Monetary(
712
+ string="ICMS Destination Base",
713
+ compute="_compute_tax_fields",
714
+ store=True,
715
+ precompute=True,
716
+ readonly=False,
717
+ )
523
718
 
524
719
  # pICMSUFDest - Alíquota interna da UF de destino
525
- icms_origin_percent = fields.Float(string="ICMS Internal %")
720
+ icms_origin_percent = fields.Float(
721
+ string="ICMS Internal %",
722
+ compute="_compute_tax_fields",
723
+ store=True,
724
+ precompute=True,
725
+ readonly=False,
726
+ )
526
727
 
527
728
  # pICMSInter - Alíquota interestadual das UF envolvidas
528
- icms_destination_percent = fields.Float(string="ICMS External %")
729
+ icms_destination_percent = fields.Float(
730
+ string="ICMS External %",
731
+ compute="_compute_tax_fields",
732
+ store=True,
733
+ precompute=True,
734
+ readonly=False,
735
+ )
529
736
 
530
737
  # pICMSInterPart - Percentual provisório de partilha do ICMS Interestadual
531
- icms_sharing_percent = fields.Float(string="ICMS Sharing %")
738
+ icms_sharing_percent = fields.Float(
739
+ string="ICMS Sharing %",
740
+ compute="_compute_tax_fields",
741
+ store=True,
742
+ precompute=True,
743
+ readonly=False,
744
+ )
532
745
 
533
746
  # vICMSUFRemet - Valor do ICMS Interestadual para a UF do remetente
534
- icms_origin_value = fields.Monetary(string="ICMS Origin Value")
747
+ icms_origin_value = fields.Monetary(
748
+ string="ICMS Origin Value",
749
+ compute="_compute_tax_fields",
750
+ store=True,
751
+ precompute=True,
752
+ readonly=False,
753
+ )
535
754
 
536
755
  # vICMSUFDest - Valor do ICMS Interestadual para a UF de destino
537
- icms_destination_value = fields.Monetary(string="ICMS Dest. Value")
756
+ icms_destination_value = fields.Monetary(
757
+ string="ICMS Dest. Value",
758
+ compute="_compute_tax_fields",
759
+ store=True,
760
+ precompute=True,
761
+ readonly=False,
762
+ )
538
763
 
539
764
  # ICMS Simples Nacional Fields
540
765
  icmssn_range_id = fields.Many2one(
@@ -547,17 +772,45 @@ class FiscalDocumentLineMixin(models.AbstractModel):
547
772
  comodel_name="l10n_br_fiscal.tax",
548
773
  string="Tax ICMS SN",
549
774
  domain=[("tax_domain", "=", TAX_DOMAIN_ICMS_SN)],
775
+ compute="_compute_tax_fields",
776
+ store=True,
777
+ precompute=True,
778
+ readonly=False,
550
779
  )
551
780
 
552
- icmssn_base = fields.Monetary(string="ICMS SN Base")
781
+ icmssn_base = fields.Monetary(
782
+ string="ICMS SN Base",
783
+ compute="_compute_tax_fields",
784
+ store=True,
785
+ precompute=True,
786
+ readonly=False,
787
+ )
553
788
 
554
- icmssn_reduction = fields.Monetary(string="ICMS SN Reduction")
789
+ icmssn_reduction = fields.Monetary(
790
+ string="ICMS SN Reduction",
791
+ compute="_compute_tax_fields",
792
+ store=True,
793
+ precompute=True,
794
+ readonly=False,
795
+ )
555
796
 
556
797
  # pCredICMSSN - Alíquota aplicável de cálculo do crédito (Simples Nacional)
557
- icmssn_percent = fields.Float(string="ICMS SN %")
798
+ icmssn_percent = fields.Float(
799
+ string="ICMS SN %",
800
+ compute="_compute_tax_fields",
801
+ store=True,
802
+ precompute=True,
803
+ readonly=False,
804
+ )
558
805
 
559
806
  # vCredICMSSN - Valor do crédito do ICMS que pode ser aproveitado
560
- icmssn_credit_value = fields.Monetary(string="ICMS SN Credit")
807
+ icmssn_credit_value = fields.Monetary(
808
+ string="ICMS SN Credit",
809
+ compute="_compute_tax_fields",
810
+ store=True,
811
+ precompute=True,
812
+ readonly=False,
813
+ )
561
814
 
562
815
  # ICMS COBRADO ANTERIORMENTE POR ST
563
816
  # vBCFCPSTRet - Valor da base de cálculo do FCP retido anteriormente
@@ -586,12 +839,20 @@ class FiscalDocumentLineMixin(models.AbstractModel):
586
839
  comodel_name="l10n_br_fiscal.tax",
587
840
  string="Tax IPI",
588
841
  domain=[("tax_domain", "=", TAX_DOMAIN_IPI)],
842
+ compute="_compute_tax_fields",
843
+ store=True,
844
+ precompute=True,
845
+ readonly=False,
589
846
  )
590
847
 
591
848
  ipi_cst_id = fields.Many2one(
592
849
  comodel_name="l10n_br_fiscal.cst",
593
850
  string="CST IPI",
594
851
  domain="[('cst_type', '=', fiscal_operation_type),('tax_domain', '=', 'ipi')]",
852
+ compute="_compute_tax_fields",
853
+ store=True,
854
+ precompute=True,
855
+ readonly=False,
595
856
  )
596
857
 
597
858
  ipi_cst_code = fields.Char(
@@ -599,21 +860,55 @@ class FiscalDocumentLineMixin(models.AbstractModel):
599
860
  )
600
861
 
601
862
  ipi_base_type = fields.Selection(
602
- selection=TAX_BASE_TYPE, string="IPI Base Type", default=TAX_BASE_TYPE_PERCENT
863
+ selection=TAX_BASE_TYPE,
864
+ string="IPI Base Type",
865
+ default=TAX_BASE_TYPE_PERCENT,
866
+ compute="_compute_tax_fields",
867
+ store=True,
868
+ precompute=True,
869
+ readonly=False,
603
870
  )
604
871
 
605
- ipi_base = fields.Monetary(string="IPI Base")
872
+ ipi_base = fields.Monetary(
873
+ string="IPI Base",
874
+ compute="_compute_tax_fields",
875
+ store=True,
876
+ precompute=True,
877
+ readonly=False,
878
+ )
606
879
 
607
- ipi_percent = fields.Float(string="IPI %")
880
+ ipi_percent = fields.Float(
881
+ string="IPI %",
882
+ compute="_compute_tax_fields",
883
+ store=True,
884
+ precompute=True,
885
+ readonly=False,
886
+ )
608
887
 
609
- ipi_reduction = fields.Float(string="IPI % Reduction")
888
+ ipi_reduction = fields.Float(
889
+ string="IPI % Reduction",
890
+ compute="_compute_tax_fields",
891
+ store=True,
892
+ precompute=True,
893
+ readonly=False,
894
+ )
610
895
 
611
- ipi_value = fields.Monetary(string="IPI Value")
896
+ ipi_value = fields.Monetary(
897
+ string="IPI Value",
898
+ compute="_compute_tax_fields",
899
+ store=True,
900
+ precompute=True,
901
+ readonly=False,
902
+ )
612
903
 
613
904
  ipi_guideline_id = fields.Many2one(
614
905
  comodel_name="l10n_br_fiscal.tax.ipi.guideline",
615
906
  string="IPI Guideline",
616
907
  domain="['|', ('cst_in_id', '=', ipi_cst_id),('cst_out_id', '=', ipi_cst_id)]",
908
+ compute="_compute_fiscal_tax_ids",
909
+ store=True,
910
+ precompute=True,
911
+ readonly=False,
617
912
  )
618
913
 
619
914
  # IPI Devolvido Fields
@@ -626,13 +921,35 @@ class FiscalDocumentLineMixin(models.AbstractModel):
626
921
  comodel_name="l10n_br_fiscal.tax",
627
922
  string="Tax II",
628
923
  domain=[("tax_domain", "=", TAX_DOMAIN_II)],
924
+ compute="_compute_tax_fields",
925
+ store=True,
926
+ precompute=True,
927
+ readonly=False,
629
928
  )
630
929
 
631
- ii_base = fields.Monetary(string="II Base")
930
+ ii_base = fields.Monetary(
931
+ string="II Base",
932
+ compute="_compute_tax_fields",
933
+ store=True,
934
+ precompute=True,
935
+ readonly=False,
936
+ )
632
937
 
633
- ii_percent = fields.Float(string="II %")
938
+ ii_percent = fields.Float(
939
+ string="II %",
940
+ compute="_compute_tax_fields",
941
+ store=True,
942
+ precompute=True,
943
+ readonly=False,
944
+ )
634
945
 
635
- ii_value = fields.Monetary(string="II Value")
946
+ ii_value = fields.Monetary(
947
+ string="II Value",
948
+ compute="_compute_tax_fields",
949
+ store=True,
950
+ precompute=True,
951
+ readonly=False,
952
+ )
636
953
 
637
954
  ii_iof_value = fields.Monetary(string="IOF Value")
638
955
 
@@ -644,6 +961,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
644
961
  comodel_name="l10n_br_fiscal.tax",
645
962
  string="Tax COFINS",
646
963
  domain=[("tax_domain", "=", TAX_DOMAIN_COFINS)],
964
+ compute="_compute_tax_fields",
965
+ store=True,
966
+ precompute=True,
967
+ readonly=False,
647
968
  )
648
969
 
649
970
  cofins_cst_id = fields.Many2one(
@@ -652,6 +973,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
652
973
  domain="['|', ('cst_type', '=', fiscal_operation_type),"
653
974
  "('cst_type', '=', 'all'),"
654
975
  "('tax_domain', '=', 'cofins')]",
976
+ compute="_compute_tax_fields",
977
+ store=True,
978
+ precompute=True,
979
+ readonly=False,
655
980
  )
656
981
 
657
982
  cofins_cst_code = fields.Char(
@@ -662,15 +987,43 @@ class FiscalDocumentLineMixin(models.AbstractModel):
662
987
  selection=TAX_BASE_TYPE,
663
988
  string="COFINS Base Type",
664
989
  default=TAX_BASE_TYPE_PERCENT,
990
+ compute="_compute_tax_fields",
991
+ store=True,
992
+ precompute=True,
993
+ readonly=False,
665
994
  )
666
995
 
667
- cofins_base = fields.Monetary(string="COFINS Base")
996
+ cofins_base = fields.Monetary(
997
+ string="COFINS Base",
998
+ compute="_compute_tax_fields",
999
+ store=True,
1000
+ precompute=True,
1001
+ readonly=False,
1002
+ )
668
1003
 
669
- cofins_percent = fields.Float(string="COFINS %")
1004
+ cofins_percent = fields.Float(
1005
+ string="COFINS %",
1006
+ compute="_compute_tax_fields",
1007
+ store=True,
1008
+ precompute=True,
1009
+ readonly=False,
1010
+ )
670
1011
 
671
- cofins_reduction = fields.Float(string="COFINS % Reduction")
1012
+ cofins_reduction = fields.Float(
1013
+ string="COFINS % Reduction",
1014
+ compute="_compute_tax_fields",
1015
+ store=True,
1016
+ precompute=True,
1017
+ readonly=False,
1018
+ )
672
1019
 
673
- cofins_value = fields.Monetary(string="COFINS Value")
1020
+ cofins_value = fields.Monetary(
1021
+ string="COFINS Value",
1022
+ compute="_compute_tax_fields",
1023
+ store=True,
1024
+ precompute=True,
1025
+ readonly=False,
1026
+ )
674
1027
 
675
1028
  cofins_base_id = fields.Many2one(
676
1029
  comodel_name="l10n_br_fiscal.tax.pis.cofins.base", string="COFINS Base Code"
@@ -685,6 +1038,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
685
1038
  comodel_name="l10n_br_fiscal.tax",
686
1039
  string="Tax COFINS ST",
687
1040
  domain=[("tax_domain", "=", TAX_DOMAIN_COFINS_ST)],
1041
+ compute="_compute_tax_fields",
1042
+ store=True,
1043
+ precompute=True,
1044
+ readonly=False,
688
1045
  )
689
1046
 
690
1047
  cofinsst_cst_id = fields.Many2one(
@@ -693,6 +1050,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
693
1050
  domain="['|', ('cst_type', '=', fiscal_operation_type),"
694
1051
  "('cst_type', '=', 'all'),"
695
1052
  "('tax_domain', '=', 'cofinsst')]",
1053
+ compute="_compute_tax_fields",
1054
+ store=True,
1055
+ precompute=True,
1056
+ readonly=False,
696
1057
  )
697
1058
 
698
1059
  cofinsst_cst_code = fields.Char(
@@ -703,41 +1064,105 @@ class FiscalDocumentLineMixin(models.AbstractModel):
703
1064
  selection=TAX_BASE_TYPE,
704
1065
  string="COFINS ST Base Type",
705
1066
  default=TAX_BASE_TYPE_PERCENT,
1067
+ compute="_compute_tax_fields",
1068
+ store=True,
1069
+ precompute=True,
1070
+ readonly=False,
706
1071
  )
707
1072
 
708
- cofinsst_base = fields.Monetary(string="COFINS ST Base")
1073
+ cofinsst_base = fields.Monetary(
1074
+ string="COFINS ST Base",
1075
+ compute="_compute_tax_fields",
1076
+ store=True,
1077
+ precompute=True,
1078
+ readonly=False,
1079
+ )
709
1080
 
710
- cofinsst_percent = fields.Float(string="COFINS ST %")
1081
+ cofinsst_percent = fields.Float(
1082
+ string="COFINS ST %",
1083
+ compute="_compute_tax_fields",
1084
+ store=True,
1085
+ precompute=True,
1086
+ readonly=False,
1087
+ )
711
1088
 
712
- cofinsst_reduction = fields.Float(string="COFINS ST % Reduction")
1089
+ cofinsst_reduction = fields.Float(
1090
+ string="COFINS ST % Reduction",
1091
+ compute="_compute_tax_fields",
1092
+ store=True,
1093
+ precompute=True,
1094
+ readonly=False,
1095
+ )
713
1096
 
714
- cofinsst_value = fields.Monetary(string="COFINS ST Value")
1097
+ cofinsst_value = fields.Monetary(
1098
+ string="COFINS ST Value",
1099
+ compute="_compute_tax_fields",
1100
+ store=True,
1101
+ precompute=True,
1102
+ readonly=False,
1103
+ )
715
1104
 
716
1105
  cofins_wh_tax_id = fields.Many2one(
717
1106
  comodel_name="l10n_br_fiscal.tax",
718
1107
  string="Tax COFINS RET",
719
1108
  domain=[("tax_domain", "=", TAX_DOMAIN_COFINS_WH)],
1109
+ compute="_compute_tax_fields",
1110
+ store=True,
1111
+ precompute=True,
1112
+ readonly=False,
720
1113
  )
721
1114
 
722
1115
  cofins_wh_base_type = fields.Selection(
723
1116
  selection=TAX_BASE_TYPE,
724
1117
  string="COFINS WH Base Type",
725
1118
  default=TAX_BASE_TYPE_PERCENT,
1119
+ compute="_compute_tax_fields",
1120
+ store=True,
1121
+ precompute=True,
1122
+ readonly=False,
726
1123
  )
727
1124
 
728
- cofins_wh_base = fields.Monetary(string="COFINS RET Base")
1125
+ cofins_wh_base = fields.Monetary(
1126
+ string="COFINS RET Base",
1127
+ compute="_compute_tax_fields",
1128
+ store=True,
1129
+ precompute=True,
1130
+ readonly=False,
1131
+ )
729
1132
 
730
- cofins_wh_percent = fields.Float(string="COFINS RET %")
1133
+ cofins_wh_percent = fields.Float(
1134
+ string="COFINS RET %",
1135
+ compute="_compute_tax_fields",
1136
+ store=True,
1137
+ precompute=True,
1138
+ readonly=False,
1139
+ )
731
1140
 
732
- cofins_wh_reduction = fields.Float(string="COFINS RET % Reduction")
1141
+ cofins_wh_reduction = fields.Float(
1142
+ string="COFINS RET % Reduction",
1143
+ compute="_compute_tax_fields",
1144
+ store=True,
1145
+ precompute=True,
1146
+ readonly=False,
1147
+ )
733
1148
 
734
- cofins_wh_value = fields.Monetary(string="COFINS RET Value")
1149
+ cofins_wh_value = fields.Monetary(
1150
+ string="COFINS RET Value",
1151
+ compute="_compute_tax_fields",
1152
+ store=True,
1153
+ precompute=True,
1154
+ readonly=False,
1155
+ )
735
1156
 
736
1157
  # PIS
737
1158
  pis_tax_id = fields.Many2one(
738
1159
  comodel_name="l10n_br_fiscal.tax",
739
1160
  string="Tax PIS",
740
1161
  domain=[("tax_domain", "=", TAX_DOMAIN_PIS)],
1162
+ compute="_compute_tax_fields",
1163
+ store=True,
1164
+ precompute=True,
1165
+ readonly=False,
741
1166
  )
742
1167
 
743
1168
  pis_cst_id = fields.Many2one(
@@ -746,6 +1171,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
746
1171
  domain="['|', ('cst_type', '=', fiscal_operation_type),"
747
1172
  "('cst_type', '=', 'all'),"
748
1173
  "('tax_domain', '=', 'pis')]",
1174
+ compute="_compute_tax_fields",
1175
+ store=True,
1176
+ precompute=True,
1177
+ readonly=False,
749
1178
  )
750
1179
 
751
1180
  pis_cst_code = fields.Char(
@@ -753,16 +1182,46 @@ class FiscalDocumentLineMixin(models.AbstractModel):
753
1182
  )
754
1183
 
755
1184
  pis_base_type = fields.Selection(
756
- selection=TAX_BASE_TYPE, string="PIS Base Type", default=TAX_BASE_TYPE_PERCENT
1185
+ selection=TAX_BASE_TYPE,
1186
+ string="PIS Base Type",
1187
+ default=TAX_BASE_TYPE_PERCENT,
1188
+ compute="_compute_tax_fields",
1189
+ store=True,
1190
+ precompute=True,
1191
+ readonly=False,
757
1192
  )
758
1193
 
759
- pis_base = fields.Monetary(string="PIS Base")
1194
+ pis_base = fields.Monetary(
1195
+ string="PIS Base",
1196
+ compute="_compute_tax_fields",
1197
+ store=True,
1198
+ precompute=True,
1199
+ readonly=False,
1200
+ )
760
1201
 
761
- pis_percent = fields.Float(string="PIS %")
1202
+ pis_percent = fields.Float(
1203
+ string="PIS %",
1204
+ compute="_compute_tax_fields",
1205
+ store=True,
1206
+ precompute=True,
1207
+ readonly=False,
1208
+ )
762
1209
 
763
- pis_reduction = fields.Float(string="PIS % Reduction")
1210
+ pis_reduction = fields.Float(
1211
+ string="PIS % Reduction",
1212
+ compute="_compute_tax_fields",
1213
+ store=True,
1214
+ precompute=True,
1215
+ readonly=False,
1216
+ )
764
1217
 
765
- pis_value = fields.Monetary(string="PIS Value")
1218
+ pis_value = fields.Monetary(
1219
+ string="PIS Value",
1220
+ compute="_compute_tax_fields",
1221
+ store=True,
1222
+ precompute=True,
1223
+ readonly=False,
1224
+ )
766
1225
 
767
1226
  pis_base_id = fields.Many2one(
768
1227
  comodel_name="l10n_br_fiscal.tax.pis.cofins.base", string="PIS Base Code"
@@ -777,6 +1236,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
777
1236
  comodel_name="l10n_br_fiscal.tax",
778
1237
  string="Tax PIS ST",
779
1238
  domain=[("tax_domain", "=", TAX_DOMAIN_PIS_ST)],
1239
+ compute="_compute_tax_fields",
1240
+ store=True,
1241
+ precompute=True,
1242
+ readonly=False,
780
1243
  )
781
1244
 
782
1245
  pisst_cst_id = fields.Many2one(
@@ -785,6 +1248,10 @@ class FiscalDocumentLineMixin(models.AbstractModel):
785
1248
  domain="['|', ('cst_type', '=', fiscal_operation_type),"
786
1249
  "('cst_type', '=', 'all'),"
787
1250
  "('tax_domain', '=', 'pisst')]",
1251
+ compute="_compute_tax_fields",
1252
+ store=True,
1253
+ precompute=True,
1254
+ readonly=False,
788
1255
  )
789
1256
 
790
1257
  pisst_cst_code = fields.Char(
@@ -795,131 +1262,373 @@ class FiscalDocumentLineMixin(models.AbstractModel):
795
1262
  selection=TAX_BASE_TYPE,
796
1263
  string="PIS ST Base Type",
797
1264
  default=TAX_BASE_TYPE_PERCENT,
1265
+ compute="_compute_tax_fields",
1266
+ store=True,
1267
+ precompute=True,
1268
+ readonly=False,
798
1269
  )
799
1270
 
800
- pisst_base = fields.Monetary(string="PIS ST Base")
1271
+ pisst_base = fields.Monetary(
1272
+ string="PIS ST Base",
1273
+ compute="_compute_tax_fields",
1274
+ store=True,
1275
+ precompute=True,
1276
+ readonly=False,
1277
+ )
801
1278
 
802
- pisst_percent = fields.Float(string="PIS ST %")
1279
+ pisst_percent = fields.Float(
1280
+ string="PIS ST %",
1281
+ compute="_compute_tax_fields",
1282
+ store=True,
1283
+ precompute=True,
1284
+ readonly=False,
1285
+ )
803
1286
 
804
- pisst_reduction = fields.Float(string="PIS ST % Reduction")
1287
+ pisst_reduction = fields.Float(
1288
+ string="PIS ST % Reduction",
1289
+ compute="_compute_tax_fields",
1290
+ store=True,
1291
+ precompute=True,
1292
+ readonly=False,
1293
+ )
805
1294
 
806
- pisst_value = fields.Monetary(string="PIS ST Value")
1295
+ pisst_value = fields.Monetary(
1296
+ string="PIS ST Value",
1297
+ compute="_compute_tax_fields",
1298
+ store=True,
1299
+ precompute=True,
1300
+ readonly=False,
1301
+ )
807
1302
 
808
1303
  pis_wh_tax_id = fields.Many2one(
809
1304
  comodel_name="l10n_br_fiscal.tax",
810
1305
  string="Tax PIS RET",
811
1306
  domain=[("tax_domain", "=", TAX_DOMAIN_PIS_WH)],
1307
+ compute="_compute_tax_fields",
1308
+ store=True,
1309
+ precompute=True,
1310
+ readonly=False,
812
1311
  )
813
1312
 
814
1313
  pis_wh_base_type = fields.Selection(
815
1314
  selection=TAX_BASE_TYPE,
816
1315
  string="PIS WH Base Type",
817
1316
  default=TAX_BASE_TYPE_PERCENT,
1317
+ compute="_compute_tax_fields",
1318
+ store=True,
1319
+ precompute=True,
1320
+ readonly=False,
818
1321
  )
819
1322
 
820
- pis_wh_base = fields.Monetary(string="PIS RET Base")
1323
+ pis_wh_base = fields.Monetary(
1324
+ string="PIS RET Base",
1325
+ compute="_compute_tax_fields",
1326
+ store=True,
1327
+ precompute=True,
1328
+ readonly=False,
1329
+ )
821
1330
 
822
- pis_wh_percent = fields.Float(string="PIS RET %")
1331
+ pis_wh_percent = fields.Float(
1332
+ string="PIS RET %",
1333
+ compute="_compute_tax_fields",
1334
+ store=True,
1335
+ precompute=True,
1336
+ readonly=False,
1337
+ )
823
1338
 
824
- pis_wh_reduction = fields.Float(string="PIS RET % Reduction")
1339
+ pis_wh_reduction = fields.Float(
1340
+ string="PIS RET % Reduction",
1341
+ compute="_compute_tax_fields",
1342
+ store=True,
1343
+ precompute=True,
1344
+ readonly=False,
1345
+ )
825
1346
 
826
- pis_wh_value = fields.Monetary(string="PIS RET Value")
1347
+ pis_wh_value = fields.Monetary(
1348
+ string="PIS RET Value",
1349
+ compute="_compute_tax_fields",
1350
+ store=True,
1351
+ precompute=True,
1352
+ readonly=False,
1353
+ )
827
1354
 
828
1355
  # CSLL Fields
829
1356
  csll_tax_id = fields.Many2one(
830
1357
  comodel_name="l10n_br_fiscal.tax",
831
1358
  string="Tax CSLL",
832
1359
  domain=[("tax_domain", "=", TAX_DOMAIN_CSLL)],
1360
+ compute="_compute_tax_fields",
1361
+ store=True,
1362
+ precompute=True,
1363
+ readonly=False,
833
1364
  )
834
1365
 
835
- csll_base = fields.Monetary(string="CSLL Base")
1366
+ csll_base = fields.Monetary(
1367
+ string="CSLL Base",
1368
+ compute="_compute_tax_fields",
1369
+ store=True,
1370
+ precompute=True,
1371
+ readonly=False,
1372
+ )
836
1373
 
837
- csll_percent = fields.Float(string="CSLL %")
1374
+ csll_percent = fields.Float(
1375
+ string="CSLL %",
1376
+ compute="_compute_tax_fields",
1377
+ store=True,
1378
+ precompute=True,
1379
+ readonly=False,
1380
+ )
838
1381
 
839
- csll_reduction = fields.Float(string="CSLL % Reduction")
1382
+ csll_reduction = fields.Float(
1383
+ string="CSLL % Reduction",
1384
+ compute="_compute_tax_fields",
1385
+ store=True,
1386
+ precompute=True,
1387
+ readonly=False,
1388
+ )
840
1389
 
841
- csll_value = fields.Monetary(string="CSLL Value")
1390
+ csll_value = fields.Monetary(
1391
+ string="CSLL Value",
1392
+ compute="_compute_tax_fields",
1393
+ store=True,
1394
+ precompute=True,
1395
+ readonly=False,
1396
+ )
842
1397
 
843
1398
  csll_wh_tax_id = fields.Many2one(
844
1399
  comodel_name="l10n_br_fiscal.tax",
845
1400
  string="Tax CSLL RET",
846
1401
  domain=[("tax_domain", "=", TAX_DOMAIN_CSLL_WH)],
1402
+ compute="_compute_tax_fields",
1403
+ store=True,
1404
+ precompute=True,
1405
+ readonly=False,
847
1406
  )
848
1407
 
849
- csll_wh_base = fields.Monetary(string="CSLL RET Base")
1408
+ csll_wh_base = fields.Monetary(
1409
+ string="CSLL RET Base",
1410
+ compute="_compute_tax_fields",
1411
+ store=True,
1412
+ precompute=True,
1413
+ readonly=False,
1414
+ )
850
1415
 
851
- csll_wh_percent = fields.Float(string="CSLL RET %")
1416
+ csll_wh_percent = fields.Float(
1417
+ string="CSLL RET %",
1418
+ compute="_compute_tax_fields",
1419
+ store=True,
1420
+ precompute=True,
1421
+ readonly=False,
1422
+ )
852
1423
 
853
- csll_wh_reduction = fields.Float(string="CSLL RET % Reduction")
1424
+ csll_wh_reduction = fields.Float(
1425
+ string="CSLL RET % Reduction",
1426
+ compute="_compute_tax_fields",
1427
+ store=True,
1428
+ precompute=True,
1429
+ readonly=False,
1430
+ )
854
1431
 
855
- csll_wh_value = fields.Monetary(string="CSLL RET Value")
1432
+ csll_wh_value = fields.Monetary(
1433
+ string="CSLL RET Value",
1434
+ compute="_compute_tax_fields",
1435
+ store=True,
1436
+ precompute=True,
1437
+ readonly=False,
1438
+ )
856
1439
 
857
1440
  irpj_tax_id = fields.Many2one(
858
1441
  comodel_name="l10n_br_fiscal.tax",
859
1442
  string="Tax IRPJ",
860
1443
  domain=[("tax_domain", "=", TAX_DOMAIN_IRPJ)],
1444
+ compute="_compute_tax_fields",
1445
+ store=True,
1446
+ precompute=True,
1447
+ readonly=False,
861
1448
  )
862
1449
 
863
- irpj_base = fields.Monetary(string="IRPJ Base")
1450
+ irpj_base = fields.Monetary(
1451
+ string="IRPJ Base",
1452
+ compute="_compute_tax_fields",
1453
+ store=True,
1454
+ precompute=True,
1455
+ readonly=False,
1456
+ )
864
1457
 
865
- irpj_percent = fields.Float(string="IRPJ %")
1458
+ irpj_percent = fields.Float(
1459
+ string="IRPJ %",
1460
+ compute="_compute_tax_fields",
1461
+ store=True,
1462
+ precompute=True,
1463
+ readonly=False,
1464
+ )
866
1465
 
867
- irpj_reduction = fields.Float(string="IRPJ % Reduction")
1466
+ irpj_reduction = fields.Float(
1467
+ string="IRPJ % Reduction",
1468
+ compute="_compute_tax_fields",
1469
+ store=True,
1470
+ precompute=True,
1471
+ readonly=False,
1472
+ )
868
1473
 
869
- irpj_value = fields.Monetary(string="IRPJ Value")
1474
+ irpj_value = fields.Monetary(
1475
+ string="IRPJ Value",
1476
+ compute="_compute_tax_fields",
1477
+ store=True,
1478
+ precompute=True,
1479
+ readonly=False,
1480
+ )
870
1481
 
871
1482
  irpj_wh_tax_id = fields.Many2one(
872
1483
  comodel_name="l10n_br_fiscal.tax",
873
1484
  string="Tax IRPJ RET",
874
1485
  domain=[("tax_domain", "=", TAX_DOMAIN_IRPJ_WH)],
1486
+ compute="_compute_tax_fields",
1487
+ store=True,
1488
+ precompute=True,
1489
+ readonly=False,
875
1490
  )
876
1491
 
877
- irpj_wh_base = fields.Monetary(string="IRPJ RET Base")
1492
+ irpj_wh_base = fields.Monetary(
1493
+ string="IRPJ RET Base",
1494
+ compute="_compute_tax_fields",
1495
+ store=True,
1496
+ precompute=True,
1497
+ readonly=False,
1498
+ )
878
1499
 
879
- irpj_wh_percent = fields.Float(string="IRPJ RET %")
1500
+ irpj_wh_percent = fields.Float(
1501
+ string="IRPJ RET %",
1502
+ compute="_compute_tax_fields",
1503
+ store=True,
1504
+ precompute=True,
1505
+ readonly=False,
1506
+ )
880
1507
 
881
- irpj_wh_reduction = fields.Float(string="IRPJ RET % Reduction")
1508
+ irpj_wh_reduction = fields.Float(
1509
+ string="IRPJ RET % Reduction",
1510
+ compute="_compute_tax_fields",
1511
+ store=True,
1512
+ precompute=True,
1513
+ readonly=False,
1514
+ )
882
1515
 
883
- irpj_wh_value = fields.Monetary(string="IRPJ RET Value")
1516
+ irpj_wh_value = fields.Monetary(
1517
+ string="IRPJ RET Value",
1518
+ compute="_compute_tax_fields",
1519
+ store=True,
1520
+ precompute=True,
1521
+ readonly=False,
1522
+ )
884
1523
 
885
1524
  inss_tax_id = fields.Many2one(
886
1525
  comodel_name="l10n_br_fiscal.tax",
887
1526
  string="Tax INSS",
888
1527
  domain=[("tax_domain", "=", TAX_DOMAIN_INSS)],
1528
+ compute="_compute_tax_fields",
1529
+ store=True,
1530
+ precompute=True,
1531
+ readonly=False,
889
1532
  )
890
1533
 
891
- inss_base = fields.Monetary(string="INSS Base")
1534
+ inss_base = fields.Monetary(
1535
+ string="INSS Base",
1536
+ compute="_compute_tax_fields",
1537
+ store=True,
1538
+ precompute=True,
1539
+ readonly=False,
1540
+ )
892
1541
 
893
- inss_percent = fields.Float(string="INSS %")
1542
+ inss_percent = fields.Float(
1543
+ string="INSS %",
1544
+ compute="_compute_tax_fields",
1545
+ store=True,
1546
+ precompute=True,
1547
+ readonly=False,
1548
+ )
894
1549
 
895
- inss_reduction = fields.Float(string="INSS % Reduction")
1550
+ inss_reduction = fields.Float(
1551
+ string="INSS % Reduction",
1552
+ compute="_compute_tax_fields",
1553
+ store=True,
1554
+ precompute=True,
1555
+ readonly=False,
1556
+ )
896
1557
 
897
- inss_value = fields.Monetary(string="INSS Value")
1558
+ inss_value = fields.Monetary(
1559
+ string="INSS Value",
1560
+ compute="_compute_tax_fields",
1561
+ store=True,
1562
+ precompute=True,
1563
+ readonly=False,
1564
+ )
898
1565
 
899
1566
  inss_wh_tax_id = fields.Many2one(
900
1567
  comodel_name="l10n_br_fiscal.tax",
901
1568
  string="Tax INSS RET",
902
1569
  domain=[("tax_domain", "=", TAX_DOMAIN_INSS_WH)],
1570
+ compute="_compute_tax_fields",
1571
+ store=True,
1572
+ precompute=True,
1573
+ readonly=False,
903
1574
  )
904
1575
 
905
- inss_wh_base = fields.Monetary(string="INSS RET Base")
1576
+ inss_wh_base = fields.Monetary(
1577
+ string="INSS RET Base",
1578
+ compute="_compute_tax_fields",
1579
+ store=True,
1580
+ precompute=True,
1581
+ readonly=False,
1582
+ )
906
1583
 
907
- inss_wh_percent = fields.Float(string="INSS RET %")
1584
+ inss_wh_percent = fields.Float(
1585
+ string="INSS RET %",
1586
+ compute="_compute_tax_fields",
1587
+ store=True,
1588
+ precompute=True,
1589
+ readonly=False,
1590
+ )
908
1591
 
909
- inss_wh_reduction = fields.Float(string="INSS RET % Reduction")
1592
+ inss_wh_reduction = fields.Float(
1593
+ string="INSS RET % Reduction",
1594
+ compute="_compute_tax_fields",
1595
+ store=True,
1596
+ precompute=True,
1597
+ readonly=False,
1598
+ )
910
1599
 
911
- inss_wh_value = fields.Monetary(string="INSS RET Value")
1600
+ inss_wh_value = fields.Monetary(
1601
+ string="INSS RET Value",
1602
+ compute="_compute_tax_fields",
1603
+ store=True,
1604
+ precompute=True,
1605
+ readonly=False,
1606
+ )
912
1607
 
913
- simple_value = fields.Monetary(string="National Simple Taxes")
1608
+ simple_value = fields.Monetary(
1609
+ string="National Simple Taxes",
1610
+ compute="_compute_tax_fields",
1611
+ store=True,
1612
+ precompute=True,
1613
+ readonly=False,
1614
+ )
914
1615
 
915
1616
  simple_without_icms_value = fields.Monetary(
916
- string="National Simple Taxes without ICMS"
1617
+ string="National Simple Taxes without ICMS",
1618
+ compute="_compute_tax_fields",
1619
+ store=True,
1620
+ precompute=True,
1621
+ readonly=False,
917
1622
  )
918
1623
 
919
1624
  comment_ids = fields.Many2many(
920
1625
  comodel_name="l10n_br_fiscal.comment",
921
1626
  string="Comments",
922
1627
  domain=[("object", "=", FISCAL_COMMENT_LINE)],
1628
+ compute="_compute_fiscal_tax_ids",
1629
+ store=True,
1630
+ precompute=True,
1631
+ readonly=False,
923
1632
  )
924
1633
 
925
1634
  additional_data = fields.Text()