Skip to content

Commit 85f7805

Browse files
committed
[REF] l10n_br_cnpj_search: adapt to use l10n_br_fiscal.legal.nature object
1 parent c4f1dbc commit 85f7805

9 files changed

+40
-38
lines changed

l10n_br_cnpj_search/models/__init__.py

-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,4 @@
33
from . import l10n_br_base_party_mixin
44
from . import res_config_settings
55
from . import cnpj_webservice
6-
from . import res_partner
76
from . import res_company

l10n_br_cnpj_search/models/cnpj_webservice.py

+31-7
Original file line numberDiff line numberDiff line change
@@ -116,16 +116,27 @@ def _validate(self, response):
116116
if response.status_code != 200:
117117
raise ValidationError(_("%s") % response.reason)
118118

119+
@api.model
120+
def _get_legal_nature(self, raw_code):
121+
code = punctuation_rm(raw_code)
122+
legal_nature_id = False
123+
if code:
124+
legal_nature_id = (
125+
self.env["l10n_br_fiscal.legal.nature"]
126+
.search([("code_unmasked", "=", code)])
127+
.id
128+
)
129+
return legal_nature_id
130+
119131
@api.model
120132
def _get_cnae(self, raw_code):
121133
code = punctuation_rm(raw_code)
122134
cnae_id = False
123135

124136
if code:
125-
formatted_code = code[0:4] + "-" + code[4] + "/" + code[5:]
126137
cnae_id = (
127138
self.env["l10n_br_fiscal.cnae"]
128-
.search([("code", "=", formatted_code)])
139+
.search([("code_unmasked", "=", code)])
129140
.id
130141
)
131142

@@ -168,7 +179,7 @@ def _receitaws_import_data(self, data):
168179
"district": self.get_data(data, "bairro", title=True),
169180
"street_number": self.get_data(data, "numero"),
170181
"zip": self.get_data(data, "cep"),
171-
"legal_nature": self.get_data(data, "natureza_juridica"),
182+
"legal_nature_id": self._receitaws_get_legal_nature(data),
172183
"phone": phone,
173184
"mobile": mobile,
174185
"state_id": state_id,
@@ -221,6 +232,16 @@ def _get_state_city(self, data):
221232

222233
return [state_id, city_id]
223234

235+
@api.model
236+
def _receitaws_get_legal_nature(self, data):
237+
legal_nature = data.get("natureza_juridica")
238+
if legal_nature:
239+
legal_nature = legal_nature.split(" - ")
240+
if len(legal_nature) > 1:
241+
legal_nature_code = legal_nature[0]
242+
return self._get_legal_nature(legal_nature_code)
243+
return False
244+
224245
@api.model
225246
def _receitaws_get_cnae(self, data):
226247
if data.get("atividade_principal"):
@@ -280,7 +301,6 @@ def _serpro_import_data(self, data):
280301
name = fantasy_name if fantasy_name else legal_name
281302
phone, mobile = self._serpro_get_phones(data)
282303
address = data.get("endereco")
283-
nature = data.get("naturezaJuridica")
284304
cep = self.get_data(address, "cep")
285305

286306
res = {
@@ -291,8 +311,7 @@ def _serpro_import_data(self, data):
291311
"street2": self.get_data(address, "complemento", title=True),
292312
"district": self.get_data(address, "bairro", title=True),
293313
"street_number": self.get_data(address, "numero"),
294-
"legal_nature": self.get_data(nature, "codigo", title=True)
295-
+ self.get_data(nature, "descricao", title=True),
314+
"legal_nature_id": self._serpro_get_legal_nature(data),
296315
"zip": cep,
297316
"phone": phone,
298317
"mobile": mobile,
@@ -388,9 +407,14 @@ def _get_city_id(self, cep):
388407

389408
return cep_values.get("city_id")
390409

410+
@api.model
411+
def _serpro_get_legal_nature(self, data):
412+
legal_nature = data.get("naturezaJuridica")
413+
legal_nature_code = self.get_data(legal_nature, "codigo")
414+
return self._get_legal_nature(legal_nature_code)
415+
391416
@api.model
392417
def _serpro_get_cnae(self, data):
393418
cnae_main = data.get("cnaePrincipal")
394419
cnae_code = self.get_data(cnae_main, "codigo")
395-
396420
return self._get_cnae(cnae_code)

l10n_br_cnpj_search/models/l10n_br_base_party_mixin.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ class PartyMixin(models.AbstractModel):
1414

1515
cnae_main_id = fields.Many2one(comodel_name="l10n_br_fiscal.cnae")
1616

17-
legal_nature = fields.Char()
17+
legal_nature_id = fields.Many2one(
18+
comodel_name="l10n_br_fiscal.legal.nature",
19+
string="Legal Nature",
20+
)
1821

1922
br_currency_id = fields.Many2one(
2023
comodel_name="res.currency",

l10n_br_cnpj_search/models/res_company.py

-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ class ResCompany(models.Model):
1212

1313
mobile = fields.Char(related="partner_id.mobile")
1414

15-
legal_nature = fields.Char(related="partner_id.legal_nature")
16-
1715
company_currency_id = fields.Many2one(
1816
"res.currency",
1917
related="currency_id",

l10n_br_cnpj_search/models/res_partner.py

-17
This file was deleted.

l10n_br_cnpj_search/views/res_company_view.xml

+1-4
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,9 @@
66
<field name="inherit_id" ref="l10n_br_fiscal.fiscal_res_company_form" />
77
<field name="priority">99</field>
88
<field name="arch" type="xml">
9-
<field name="cnae_main_id" position="after">
10-
<field name="cnae_secondary_ids" widget="many2many_tags" />
9+
<field name="cnae_secondary_ids" position="after">
1110
<field name="equity_capital" widget="monetary" />
12-
<field name="legal_nature" />
1311
</field>
14-
1512
<field name="cnpj_cpf" position="replace">
1613
<label for="cnpj_cpf" string="CNPJ" />
1714
<div class="o_row" colspan="1">

l10n_br_cnpj_search/views/res_partner_view.xml

+1-3
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@
99
<field name="priority">99</field>
1010
<field name="inherit_id" ref="l10n_br_fiscal.partner_form" />
1111
<field name="arch" type="xml">
12-
<field name="cnae_main_id" position="after">
13-
<field name="cnae_secondary_ids" widget="many2many_tags" />
12+
<field name="cnae_secondary_ids" position="after">
1413
<field name="equity_capital" widget="monetary" />
15-
<field name="legal_nature" />
1614
</field>
1715

1816
<field name="cnpj_cpf" position="replace">

l10n_br_cnpj_search/wizard/partner_cnpj_search_wizard.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ class PartnerCnpjSearchWizard(models.TransientModel):
3636
phone = fields.Char()
3737
mobile = fields.Char()
3838
email = fields.Char()
39-
legal_nature = fields.Char()
39+
legal_nature_id = fields.Many2one(comodel_name="l10n_br_fiscal.legal.nature")
4040
currency_id = fields.Many2one(
4141
comodel_name="res.currency",
4242
default=lambda self: self.env.ref("base.BRL"),
@@ -112,7 +112,7 @@ def action_update_partner(self):
112112
"phone": self.phone,
113113
"mobile": self.mobile,
114114
"email": self.email,
115-
"legal_nature": self.legal_nature,
115+
"legal_nature_id": self.legal_nature_id,
116116
"equity_capital": self.equity_capital,
117117
"cnae_main_id": self.cnae_main_id,
118118
"cnae_secondary_ids": self.cnae_secondary_ids,

l10n_br_cnpj_search/wizard/partner_cnpj_search_wizard.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@
4040
</group>
4141

4242
<group name="Other Information" string="Other Information">
43-
<field name="legal_nature" />
43+
<field name="legal_nature_id" />
4444
<field name="equity_capital" widget="monetary" />
4545
<field name="cnae_main_id" string="Main CNAE" />
4646
<field

0 commit comments

Comments
 (0)