Skip to content

Commit

Permalink
ADD: prop valor_tributos_aproxao objeto NotaFiscalProduto;
Browse files Browse the repository at this point in the history
REFACTORY: resolvido `TODO calcular impostos aproximados`, o sistema passará a totalizar os totais dos tributos informados para o produto.

REFACTORY: alterado `totais_tributos_aproximado`para readonly, este valor não deve ser informado para não acumular duas vezes os tributos.

TEST: Removido `totais_tributos_aproximado` para ficar de acordo com as alterações da NotaFiscal.
  • Loading branch information
Roberto Godinho committed Dec 18, 2023
1 parent 2387b17 commit b614d85
Show file tree
Hide file tree
Showing 28 changed files with 35 additions and 57 deletions.
10 changes: 7 additions & 3 deletions pynfe/entidades/notafiscal.py
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,10 @@ class NotaFiscal(Entidade):
totais_retencao_retencao_previdencia_social = Decimal()

# - Valor aproximado total de tributos federais, estaduais e municipais.
totais_tributos_aproximado = Decimal()
__totais_tributos_aproximado = Decimal()
@property
def totais_tributos_aproximado(self):
return self.__totais_tributos_aproximado

# - Valor Total do FCP (Fundo de Combate à Pobreza)
totais_fcp = Decimal()
Expand Down Expand Up @@ -442,8 +445,7 @@ def adicionar_produto_servico(self, **kwargs):
self.totais_icms_q_bc_mono_ret += obj.icms_q_bc_mono_ret
self.totais_icms_v_icms_mono_ret += obj.icms_v_icms_mono_ret

# TODO calcular impostos aproximados
# self.totais_tributos_aproximado += obj.tributos
self.__totais_tributos_aproximado += obj.valor_tributos_aprox

self.totais_icms_total_nota += (
obj.valor_total_bruto
Expand Down Expand Up @@ -936,6 +938,8 @@ class NotaFiscalProduto(Entidade):
# - Valor imposto de importacao
imposto_importacao_valor = Decimal()

valor_tributos_aprox = Decimal()

# - Informacoes Adicionais
# - Texto livre de informacoes adicionais
informacoes_adicionais = str()
Expand Down
4 changes: 2 additions & 2 deletions pynfe/processamento/serializacao.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,6 +158,7 @@ def _serializar_cliente(
cliente.numero_documento
)
if not self._so_cpf:
etree.SubElement(raiz, "xNome").text = cliente.razao_social
endereco = etree.SubElement(raiz, "enderDest")
etree.SubElement(endereco, "xLgr").text = cliente.endereco_logradouro
etree.SubElement(endereco, "nro").text = cliente.endereco_numero
Expand All @@ -179,8 +180,7 @@ def _serializar_cliente(
)
if cliente.endereco_telefone:
etree.SubElement(endereco, "fone").text = cliente.endereco_telefone

if cliente.razao_social:
elif cliente.razao_social:
etree.SubElement(raiz, "xNome").text = cliente.razao_social

# Indicador da IE do destinatário:
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfce_serializacao.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,6 @@ def preenche_notafiscal_produto(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("1.01"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -139,7 +138,7 @@ def preenche_notafiscal_produto(self):
cofins_valor_base_calculo=Decimal("0.00"),
cofins_aliquota_percentual=Decimal("0.00"),
cofins_valor=Decimal("0.00"),
valor_tributos_aprox="1.01",
valor_tributos_aprox=Decimal("1.01"),
informacoes_adicionais="Informações adicionais",
)

Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfce_serializacao_sem_cliente.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ def preenche_notafiscal_produto(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("1.01"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -122,7 +121,7 @@ def preenche_notafiscal_produto(self):
cofins_valor_base_calculo=Decimal("0.00"),
cofins_aliquota_percentual=Decimal("0.00"),
cofins_valor=Decimal("0.00"),
valor_tributos_aprox="1.01",
valor_tributos_aprox=Decimal("1.01"),
informacoes_adicionais="Informações adicionais",
)

Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfce_serializacao_somente_cpf.py
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,6 @@ def preenche_notafiscal_produto(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("1.01"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -131,7 +130,7 @@ def preenche_notafiscal_produto(self):
cofins_valor_base_calculo=Decimal("0.00"),
cofins_aliquota_percentual=Decimal("0.00"),
cofins_valor=Decimal("0.00"),
valor_tributos_aprox="1.01",
valor_tributos_aprox=Decimal("1.01"),
informacoes_adicionais="Informações adicionais",
)

Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_101.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn101(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -146,7 +145,7 @@ def preenche_notafiscal_produto_csosn101(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_102.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn102(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -144,7 +143,7 @@ def preenche_notafiscal_produto_csosn102(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_103.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn102(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -144,7 +143,7 @@ def preenche_notafiscal_produto_csosn102(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_201.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn201(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -155,7 +154,7 @@ def preenche_notafiscal_produto_csosn201(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_202.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn202(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -151,7 +150,7 @@ def preenche_notafiscal_produto_csosn202(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_203.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn203(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -151,7 +150,7 @@ def preenche_notafiscal_produto_csosn203(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_300.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn300(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -144,7 +143,7 @@ def preenche_notafiscal_produto_csosn300(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_400.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn400(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -144,7 +143,7 @@ def preenche_notafiscal_produto_csosn400(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_500.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn500(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -144,7 +143,7 @@ def preenche_notafiscal_produto_csosn500(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_csosn_900.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_csosn900(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -159,7 +158,7 @@ def preenche_notafiscal_produto_csosn900(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_cst_00.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst00(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -142,7 +141,7 @@ def preenche_notafiscal_produto_cst00(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_cst_10.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst10(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -142,7 +141,7 @@ def preenche_notafiscal_produto_cst10(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_cst_20.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst20(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -142,7 +141,7 @@ def preenche_notafiscal_produto_cst20(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_cst_30.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst30(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand Down Expand Up @@ -148,7 +147,7 @@ def preenche_notafiscal_produto_cst30(self):
cofins_valor_base_calculo=Decimal("117.00"),
cofins_aliquota_percentual=Decimal("3.00"),
cofins_valor=Decimal("3.51"),
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_cst_40.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst40(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand All @@ -136,7 +135,7 @@ def preenche_notafiscal_produto_cst40(self):
icms_csosn="",
pis_modalidade="07",
cofins_modalidade="07",
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_cst_41.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst41(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand All @@ -136,7 +135,7 @@ def preenche_notafiscal_produto_cst41(self):
icms_csosn="",
pis_modalidade="07",
cofins_modalidade="07",
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
3 changes: 1 addition & 2 deletions tests/test_nfe_serializacao_cst_50.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst50(self):
processo_emissao="0", # 0=Emissão de NF-e com aplicativo do contribuinte;
transporte_modalidade_frete=1,
informacoes_adicionais_interesse_fisco="Mensagem complementar",
totais_tributos_aproximado=Decimal("21.06"),
)

self.notafiscal.adicionar_produto_servico(
Expand All @@ -136,7 +135,7 @@ def preenche_notafiscal_produto_cst50(self):
icms_csosn="",
pis_modalidade="07",
cofins_modalidade="07",
valor_tributos_aprox="21.06",
valor_tributos_aprox=Decimal("21.06"),
numero_pedido="12345",
numero_item="1",
nfci="12345678-AAAA-FFFF-1234-000000000000",
Expand Down
Loading

0 comments on commit b614d85

Please sign in to comment.