Skip to content

Commit

Permalink
[WIP]
Browse files Browse the repository at this point in the history
  • Loading branch information
ODBreno committed Jul 21, 2023
1 parent aea6945 commit 8638c3c
Show file tree
Hide file tree
Showing 4 changed files with 137 additions and 83 deletions.
106 changes: 60 additions & 46 deletions l10n_br_cte/models/document.py
Original file line number Diff line number Diff line change
Expand Up @@ -88,39 +88,43 @@ def _inverse_cte40_Id(self):
##########################

cte40_cUF = fields.Char(
related="company_id.partner_id.state_id.ibge_code", string="cte40_cUF"
related="company_id.partner_id.state_id.ibge_code",
string="cte40_cUF",
store=True,
)

cte40_cCT = fields.Char(related="document_key")
cte40_cCT = fields.Char(related="document_key", store=True)

cfop_id = fields.Many2one(
comodel_name="l10n_br_fiscal.cfop",
string="CFOP",
)

cte40_CFOP = fields.Char(related="cfop_id.code")
cte40_CFOP = fields.Char(related="cfop_id.code", store=True)

cte40_natOp = fields.Char(related="operation_name")
cte40_natOp = fields.Char(related="operation_name", store=True)

cte40_mod = fields.Char(related="document_type_id.code", string="cte40_mod")
cte40_mod = fields.Char(
related="document_type_id.code", string="cte40_mod", store=True
)

cte40_serie = fields.Char(related="document_serie")
cte40_serie = fields.Char(related="document_serie", store=True)

cte40_nCT = fields.Char(related="document_number")
cte40_nCT = fields.Char(related="document_number", store=True)

cte40_dhEmi = fields.Datetime(related="document_date")
cte40_dhEmi = fields.Datetime(related="document_date", store=True)

cte40_tpImp = fields.Selection(related="tpImp")
cte40_tpImp = fields.Selection(related="tpImp", store=True)

cte40_tpEmis = fields.Selection(related="cte_transmission")
cte40_tpEmis = fields.Selection(related="cte_transmission", store=True)

cte40_cDV = fields.Char(compute="_compute_cDV")
cte40_cDV = fields.Char(compute="_compute_cDV", store=True)

cte40_tpAmb = fields.Selection(related="cte_environment")
cte40_tpAmb = fields.Selection(related="cte_environment", store=True)

cte40_tpCTe = fields.Selection(related="tpCTe")
cte40_tpCTe = fields.Selection(related="tpCTe", store=True)

cte40_procEmi = fields.Selection(default="0")
cte40_procEmi = fields.Selection(default="0", store=True)

cte40_verProc = fields.Char(
copy=False,
Expand All @@ -129,46 +133,39 @@ def _inverse_cte40_Id(self):
.get_param("l10n_br_cte.version.name", default="Odoo Brasil OCA v14"),
)

cte40_cMunEnv = fields.Char(
compute="_compute_cte40_mun",
)
cte40_cMunEnv = fields.Char(compute="_compute_cte40_data", store=True)

cte40_xMunEnv = fields.Char(
compute="_compute_cte40_mun",
)
cte40_xMunEnv = fields.Char(compute="_compute_cte40_data", store=True)

cte40_UFEnv = fields.Char(
compute="_compute_cte40_mun",
string="cte40_UFEnv",
compute="_compute_cte40_data", string="cte40_UFEnv", store=True
)

cte40_tpServ = fields.Selection(related="tpServ")
cte40_tpServ = fields.Selection(related="tpServ", store=True)

cte40_indIEToma = fields.Char(compute="_compute_toma")
cte40_indIEToma = fields.Char(compute="_compute_toma", store=True)

cte40_cMunIni = fields.Char(
compute="_compute_cte40_mun",
)
cte40_cMunIni = fields.Char(compute="_compute_cte40_data", store=True)

cte40_xMunIni = fields.Char(
compute="_compute_cte40_mun",
)
cte40_xMunIni = fields.Char(compute="_compute_cte40_data", store=True)

cte40_UFIni = fields.Char(
compute="_compute_cte40_mun",
)
cte40_UFIni = fields.Char(compute="_compute_cte40_data", store=True)

cte40_cMunFim = fields.Char(
compute="_compute_cte40_mun", related="partner_id.city_id.ibge_code"
compute="_compute_cte40_data",
related="partner_id.city_id.ibge_code",
store=True,
)

cte40_xMunFim = fields.Char(
compute="_compute_cte40_mun", related="partner_id.city_id.name"
compute="_compute_cte40_data", related="partner_id.city_id.name", store=True
)

cte40_UFFim = fields.Char(compute="_compute_cte40_mun", string="cte40_cUF")
cte40_UFFim = fields.Char(
compute="_compute_cte40_data", string="cte40_cUF", store=True
)

cte40_retira = fields.Selection(related="retira")
cte40_retira = fields.Selection(related="retira", store=True)

cte40_toma4 = fields.Many2one(
comodel_name="res.partner",
Expand All @@ -193,20 +190,21 @@ def _compute_toma(self):
for doc in self:
if doc.service_provider in ["0", "1"]:
doc.cte40_toma3 = doc.company_id
doc.cte40_indIEToma = doc.cte40_toma3.company_inscr_est
doc.cte40_indIEToma = doc.cte40_toma3.inscr_est
doc.cte40_toma4 = None
elif doc.service_provider in ["2", "3"]:
doc.cte40_toma3 = doc.partner_id
doc.cte40_indIEToma = doc.cte40_toma3.company_inscr_est
doc.cte40_indIEToma = doc.cte40_toma3.inscr_est
doc.cte40_toma4 = None
else:
doc.cte40_toma3 = None
doc.cte40_toma4 = doc.partner_id
doc.cte40_indIEToma = doc.cte40_toma4.company_inscr_est
doc.cte40_indIEToma = doc.cte40_toma4.inscr_est

def _compute_cDV(self):
for rec in self:
rec.cte40_cDV = rec.document_key[:-1]
if rec.document_key:
rec.cte40_cDV = rec.document_key[:-1]

@api.depends("partner_id", "company_id")
def _compute_cte40_data(self):
Expand Down Expand Up @@ -245,11 +243,13 @@ def _compute_cte40_data(self):
compute="_compute_emit_data",
readonly=True,
string="Emit",
store=True,
)

cte40_CRT = fields.Selection(
related="company_tax_framework",
string="Código de Regime Tributário (CTe)",
store=True,
)

##########################
Expand All @@ -270,6 +270,7 @@ def _compute_emit_data(self):
compute="_compute_rem_data",
readonly=True,
string="Rem",
store=True,
)

##########################
Expand All @@ -290,6 +291,7 @@ def _compute_rem_data(self):
compute="_compute_exped_data",
readonly=True,
string="Exped",
store=True,
)

##########################
Expand All @@ -310,6 +312,7 @@ def _compute_exped_data(self):
compute="_compute_receb_data",
readonly=True,
string="Receb",
store=True,
)

##########################
Expand All @@ -330,6 +333,7 @@ def _compute_receb_data(self):
compute="_compute_dest_data",
readonly=True,
string="Dest",
store=True,
)

##########################
Expand All @@ -339,7 +343,7 @@ def _compute_receb_data(self):

def _compute_dest_data(self):
for doc in self: # TODO if out
doc.cte40_dest = doc.company_id
doc.cte40_dest = doc.partner_id

##########################
# CT-e tag: imp
Expand All @@ -358,24 +362,28 @@ def _compute_dest_data(self):
("cte40_infCTeComp", "infCTeComp"),
("cte40_infCTeNorm", "infCTeNorm"),
],
default="cte40_infCTeNorm",
)

cte40_infCarga = fields.One2many(
comodel_name="l10n_br_fiscal.document.related",
string="Informações de quantidades da Carga do CTe",
inverse_name="document_id",
store=True,
)

cte40_infCTeNorm = fields.One2many(
comodel_name="l10n_br_fiscal.document.related",
inverse_name="document_id",
compute="_compute_cte_doc",
store=True,
)

cte40_infCTeComp = fields.One2many(
comodel_name="l10n_br_fiscal.document.related",
inverse_name="document_id",
compute="_compute_cte_doc",
store=True,
)

#####################################
Expand Down Expand Up @@ -414,17 +422,18 @@ def _default_cte40_autxml(self):
# CT-e tag: autXML
##########################

cte40_autXML = fields.One2many(default=_default_cte40_autxml)
cte40_autXML = fields.One2many(default=_default_cte40_autxml, store=True)

# View
retira = fields.Selection(selection=[("0", "Sim"), ("1", "Não")])
retira = fields.Selection(selection=[("0", "Sim"), ("1", "Não")], default="1")

tpServ = fields.Selection(
selection=[
("6", "Transporte de Pessoas"),
("7", "Transporte de Valores"),
("8", "Excesso de Bagagem"),
],
default="6",
)

tpCTe = fields.Selection(
Expand All @@ -433,20 +442,25 @@ def _default_cte40_autxml(self):
("1", "CTe Complementar"),
("3", "CTe Substituição"),
],
default="0",
)

cte_environment = fields.Selection(
selection=[("1", "Produção"), ("2", "Homologação")],
string="CTe Environment",
copy=False,
default="2",
)

cte_transmission = fields.Selection(
selection=[
("1", "Normal"),
("3", "Regime Especial NFF"),
("4", "EPEC pela SVC"),
]
],
default="1",
)

tpImp = fields.Selection(selection=[("1", "Retrato"), ("2", "Paisagem")])
tpImp = fields.Selection(
selection=[("1", "Retrato"), ("2", "Paisagem")], default="1"
)
42 changes: 24 additions & 18 deletions l10n_br_cte/models/document_line.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@

from odoo import api, fields

from odoo.addons.l10n_br_fiscal.constants.icms import ICMS_CST
from odoo.addons.l10n_br_fiscal.constants.icms import ICMS_CST, ICMS_SN_CST
from odoo.addons.spec_driven_model.models import spec_models


Expand Down Expand Up @@ -55,27 +55,30 @@ class CTeLine(spec_models.StackedModel):
store=True,
)

cte40_vTotTrib = fields.Monetary(related="estimate_tax")
cte40_vTotTrib = fields.Monetary(
related="estimate_tax",
store=True,
)

cte40_pICMS = fields.Float(related="icms_percent", string="pICMS")
cte40_pICMS = fields.Float(related="icms_percent", string="pICMS", store=True)

cte40_vICMS = fields.Monetary(related="icms_value")
cte40_vICMS = fields.Monetary(related="icms_value", store=True)

# ICMS20 - ICMS90
cte40_pRedBC = fields.Float(related="icms_reduction")
cte40_pRedBC = fields.Float(related="icms_reduction", store=True)

cte40_vBC = fields.Monetary(related="icms_base")
cte40_vBC = fields.Monetary(related="icms_base", store=True)

# ICMS60
cte40_vBCSTRet = fields.Monetary(related="icmsst_wh_base")
cte40_vBCSTRet = fields.Monetary(related="icmsst_wh_base", store=True)

cte40_vICMSSTRet = fields.Monetary(related="icmsst_wh_value")
cte40_vICMSSTRet = fields.Monetary(related="icmsst_wh_value", store=True)

# ICMSSN
cte40_indSN = fields.Selection(related="indSN")
cte40_indSN = fields.Selection(related="indSN", store=True)

# ICMS NF
cte40_vBCST = fields.Monetary(related="icmsst_base")
cte40_vBCST = fields.Monetary(related="icmsst_base", store=True)

# ICMSOutraUF
# TODO
Expand All @@ -99,22 +102,25 @@ def _compute_choice11(self):
icms_choice = "cte40_ICMSOutraUF"
else:
icms_choice = "{}{}".format("cte40_ICMS", record.icms_cst_id.code)
elif record.icms_cst_id.code in ICMS_SN_CST:
icms_choice = "cte40_ICMSSN"
record.cte40_choice11 = icms_choice

indSN = fields.Selection(
selection=[
("0", "Não é simples nacional"),
("1", "É simples nacional"),
]
],
default="0",
)

##########################
# CT-e tag: ICMSUFFim
##########################

cte40_vBCUFFim = fields.Monetary(related="icms_destination_base")
cte40_pFCPUFFim = fields.Monetary(compute="_compute_cte40_ICMSUFFim")
cte40_pICMSUFFim = fields.Monetary(compute="_compute_cte40_ICMSUFFim")
cte40_vBCUFFim = fields.Monetary(related="icms_destination_base", store=True)
cte40_pFCPUFFim = fields.Monetary(compute="_compute_cte40_ICMSUFFim", store=True)
cte40_pICMSUFFim = fields.Monetary(compute="_compute_cte40_ICMSUFFim", store=True)
# cte40_pICMSInter = fields.Selection(
# selection=[("0", "Teste")],
# compute="_compute_cte40_ICMSUFFim")
Expand All @@ -127,8 +133,8 @@ def _compute_cte40_ICMSUFFim(self):
# record.cte40_pICMSInter = False

record.cte40_pFCPUFFim = record.icmsfcp_percent
record.cte40_pICMSUFfim = record.icms_destination_percent
record.cte40_pICMSUFFim = record.icms_destination_percent

cte40_vFCPUFfim = fields.Monetary(related="icmsfcp_value")
cte40_vICMSUFfim = fields.Monetary(related="icms_destination_value")
cte40_vICMSUFIni = fields.Monetary(related="icms_origin_value")
cte40_vFCPUFfim = fields.Monetary(related="icmsfcp_value", store=True)
cte40_vICMSUFFim = fields.Monetary(related="icms_destination_value", store=True)
cte40_vICMSUFIni = fields.Monetary(related="icms_origin_value", store=True)
Loading

0 comments on commit 8638c3c

Please sign in to comment.