File tree Expand file tree Collapse file tree 4 files changed +35
-2
lines changed Expand file tree Collapse file tree 4 files changed +35
-2
lines changed Original file line number Diff line number Diff line change @@ -26,6 +26,14 @@ class Partner(models.Model):
26
26
27
27
rntrc_code = fields .Char (string = "RNTRC Code" , size = 12 )
28
28
29
+ is_technical_support = fields .Boolean (string = "Is technical support?" )
30
+
31
+ nfe40_idCSRT = fields .Char (string = "ID CSRT" )
32
+
33
+ CSRT = fields .Char (string = "Token CSRT" )
34
+
35
+ nfe40_hashCSRT = fields .Char (string = "Hash CSRT" )
36
+
29
37
cei_code = fields .Char (string = "CEI Code" , size = 12 )
30
38
31
39
union_entity_code = fields .Char (string = "Union Entity code" )
Original file line number Diff line number Diff line change 151
151
domain =" [('country_id', '=', %(base.br)d)]"
152
152
/>
153
153
<field name =" rntrc_code" />
154
+ <field name =" is_technical_support" />
155
+ <field
156
+ name =" nfe40_idCSRT"
157
+ attrs =" {'invisible': [('is_technical_support','!=', True)]}"
158
+ />
159
+ <field
160
+ name =" CSRT"
161
+ attrs =" {'invisible': [('is_technical_support','!=', True)]}"
162
+ />
163
+ <field
164
+ name =" nfe40_hashCSRT"
165
+ attrs =" {'invisible': [('is_technical_support','!=', True)]}"
166
+ />
154
167
</group >
155
168
</group >
156
169
</page >
Original file line number Diff line number Diff line change 3
3
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
4
4
5
5
import base64
6
+ import hashlib
6
7
import logging
7
8
import re
8
9
import string
@@ -1113,6 +1114,16 @@ def _generate_key(self):
1113
1114
)
1114
1115
record .document_key = chave_edoc .chave
1115
1116
1117
+ # Compute CSRT hash
1118
+ if record .nfe40_infRespTec and record .nfe40_infRespTec .CSRT :
1119
+ token_csrt = record .nfe40_infRespTec .CSRT
1120
+ seed = token_csrt + record .document_key
1121
+ hashed = hashlib .sha1 (seed .encode ()).hexdigest ()
1122
+
1123
+ # Convert hex to base64
1124
+ hashed_b64 = base64 .b64encode (bytes .fromhex (hashed )).decode ()
1125
+ record .nfe40_infRespTec .nfe40_hashCSRT = hashed_b64
1126
+
1116
1127
def _nfe_consult_receipt (self ):
1117
1128
self .ensure_one ()
1118
1129
processor = self ._edoc_processor ()
Original file line number Diff line number Diff line change @@ -39,8 +39,9 @@ class ResCompany(spec_models.SpecModel):
39
39
nfe40_IE = fields .Char (related = "partner_id.nfe40_IE" )
40
40
nfe40_fone = fields .Char (related = "partner_id.nfe40_fone" )
41
41
nfe40_CRT = fields .Selection (related = "tax_framework" )
42
- nfe40_idCSRT = fields .Char (related = "technical_support_id.idCSRT" )
43
- nfe40_hashCSRT = fields .Char (related = "technical_support_id.hashCSRT" )
42
+
43
+ nfe40_idCSRT = fields .Char (related = "partner_id.nfe40_idCSRT" )
44
+ nfe40_hashCSRT = fields .Char (related = "partner_id.nfe40_hashCSRT" )
44
45
45
46
nfe40_enderEmit = fields .Many2one (
46
47
comodel_name = "res.partner" ,
You can’t perform that action at this time.
0 commit comments