diff --git a/pynfe/entidades/notafiscal.py b/pynfe/entidades/notafiscal.py index 0e07869..5246d71 100644 --- a/pynfe/entidades/notafiscal.py +++ b/pynfe/entidades/notafiscal.py @@ -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() @@ -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 @@ -813,7 +815,7 @@ class NotaFiscalProduto(Entidade): # - PIS # - PIS # - Situacao tributaria (obrigatorio - seleciona de lista) - PIS_TIPOS_TRIBUTACAO - pis_situacao_tributaria = str() + pis_modalidade = str() # - Tipo de calculo (seleciona de lista) - PIS_TIPOS_CALCULO pis_tipo_calculo = str() @@ -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() diff --git a/pynfe/processamento/serializacao.py b/pynfe/processamento/serializacao.py index 34dd854..47bdb98 100644 --- a/pynfe/processamento/serializacao.py +++ b/pynfe/processamento/serializacao.py @@ -158,8 +158,7 @@ def _serializar_cliente( cliente.numero_documento ) if not self._so_cpf: - if cliente.razao_social: - etree.SubElement(raiz, "xNome").text = cliente.razao_social + 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 @@ -181,6 +180,9 @@ def _serializar_cliente( ) if cliente.endereco_telefone: etree.SubElement(endereco, "fone").text = cliente.endereco_telefone + elif cliente.razao_social: + etree.SubElement(raiz, "xNome").text = cliente.razao_social + # Indicador da IE do destinatário: # 1 – Contribuinte ICMSpagamento à vista; # 2 – Contribuinte isento de inscrição; @@ -190,7 +192,7 @@ def _serializar_cliente( etree.SubElement(raiz, "indIEDest").text = "9" elif ( cliente.indicador_ie == 2 or cliente.isento_icms - ) or cliente.inscricao_estadual.upper() == "ISENTO": + ) or (cliente.inscricao_estadual or '').upper() == "ISENTO": etree.SubElement(raiz, "indIEDest").text = "2" else: # Indicador da IE do destinatário: 1 – Contribuinte ICMSpagamento à vista; @@ -295,6 +297,8 @@ def _serializar_produto_servico( etree.SubElement(prod, "cEAN").text = produto_servico.ean etree.SubElement(prod, "xProd").text = produto_servico.descricao etree.SubElement(prod, "NCM").text = produto_servico.ncm + if produto_servico.ex_tipi: + etree.SubElement(prod, "EXTIPI").text = produto_servico.ex_tipi # Codificação opcional que detalha alguns NCM. # Formato: duas letras maiúsculas e 4 algarismos. # Se a mercadoria se enquadrar em mais de uma codificação, @@ -401,8 +405,8 @@ def _serializar_produto_servico( # Lei da transparencia # Tributos aprox por item if produto_servico.valor_tributos_aprox: - etree.SubElement(imposto, "vTotTrib").text = str( - produto_servico.valor_tributos_aprox + etree.SubElement(imposto, "vTotTrib").text = "{:.2f}".format( + produto_servico.valor_tributos_aprox or 0 ) # ICMS @@ -426,7 +430,6 @@ def _serializar_produto_servico( # PIS self._serializar_imposto_pis( produto_servico=produto_servico, - modelo=modelo, tag_raiz=imposto, retorna_string=False, ) @@ -474,7 +477,7 @@ def _serializar_imposto_icms( etree.SubElement(icms_item, "modBC").text = str( produto_servico.icms_modalidade_determinacao_bc ) - etree.SubElement(icms_item, "vBC").text = str( + etree.SubElement(icms_item, "vBC").text = "{:.2f}".format( produto_servico.icms_valor_base_calculo ) # Valor da BC do ICMS etree.SubElement(icms_item, "pICMS").text = "{:.2f}".format( @@ -510,7 +513,7 @@ def _serializar_imposto_icms( etree.SubElement(icms_item, "modBC").text = str( produto_servico.icms_modalidade_determinacao_bc ) - etree.SubElement(icms_item, "vBC").text = str( + etree.SubElement(icms_item, "vBC").text = "{:.2f}".format( produto_servico.icms_valor_base_calculo ) # Valor da BC do ICMS etree.SubElement(icms_item, "pICMS").text = "{:.2f}".format( @@ -1102,147 +1105,145 @@ def _serializar_imposto_ipi( produto_servico.ipi_valor_ipi or 0) def _serializar_imposto_pis( - self, produto_servico, modelo, tag_raiz="imposto", retorna_string=True + self, produto_servico, tag_raiz="imposto", retorna_string=True ): - if modelo == 55: # apenas nfe - pisnt = ("04", "05", "06", "07", "08", "09") - pis = etree.SubElement(tag_raiz, "PIS") - if produto_servico.pis_modalidade in pisnt: - pis_item = etree.SubElement(pis, "PISNT") - etree.SubElement(pis_item, "CST").text = produto_servico.pis_modalidade - elif ( - produto_servico.pis_modalidade == "01" - or produto_servico.pis_modalidade == "02" - ): - pis_item = etree.SubElement(pis, "PISAliq") - etree.SubElement(pis_item, "CST").text = produto_servico.pis_modalidade - etree.SubElement(pis_item, "vBC").text = "{:.2f}".format( - produto_servico.pis_valor_base_calculo or 0 - ) - etree.SubElement(pis_item, "pPIS").text = "{:.2f}".format( - produto_servico.pis_aliquota_percentual or 0 - ) - etree.SubElement(pis_item, "vPIS").text = "{:.2f}".format( - produto_servico.pis_valor or 0 - ) - elif produto_servico.pis_modalidade == "03": - pis_item = etree.SubElement(pis, "PISQtde") - etree.SubElement(pis_item, "CST").text = produto_servico.pis_modalidade + pisnt = ("04", "05", "06", "07", "08", "09") + pis = etree.SubElement(tag_raiz, "PIS") + if produto_servico.pis_modalidade in pisnt: + pis_item = etree.SubElement(pis, "PISNT") + etree.SubElement(pis_item, "CST").text = produto_servico.pis_modalidade + elif ( + produto_servico.pis_modalidade == "01" + or produto_servico.pis_modalidade == "02" + ): + pis_item = etree.SubElement(pis, "PISAliq") + etree.SubElement(pis_item, "CST").text = produto_servico.pis_modalidade + etree.SubElement(pis_item, "vBC").text = "{:.2f}".format( + produto_servico.pis_valor_base_calculo or 0 + ) + etree.SubElement(pis_item, "pPIS").text = "{:.2f}".format( + produto_servico.pis_aliquota_percentual or 0 + ) + etree.SubElement(pis_item, "vPIS").text = "{:.2f}".format( + produto_servico.pis_valor or 0 + ) + elif produto_servico.pis_modalidade == "03": + pis_item = etree.SubElement(pis, "PISQtde") + etree.SubElement(pis_item, "CST").text = produto_servico.pis_modalidade + etree.SubElement(pis_item, "qBCProd").text = "{:.4f}".format( + produto_servico.quantidade_comercial + ) + etree.SubElement(pis_item, "vAliqProd").text = "{:.4f}".format( + produto_servico.pis_aliquota_reais or 0 + ) + etree.SubElement(pis_item, "vPIS").text = "{:.2f}".format( + produto_servico.pis_valor or 0 + ) + else: + pis_item = etree.SubElement(pis, "PISOutr") + etree.SubElement(pis_item, "CST").text = produto_servico.pis_modalidade + if produto_servico.pis_aliquota_reais > 0: etree.SubElement(pis_item, "qBCProd").text = "{:.4f}".format( produto_servico.quantidade_comercial ) etree.SubElement(pis_item, "vAliqProd").text = "{:.4f}".format( produto_servico.pis_aliquota_reais or 0 ) - etree.SubElement(pis_item, "vPIS").text = "{:.2f}".format( - produto_servico.pis_valor or 0 - ) else: - pis_item = etree.SubElement(pis, "PISOutr") - etree.SubElement(pis_item, "CST").text = produto_servico.pis_modalidade - if produto_servico.pis_aliquota_reais > 0: - etree.SubElement(pis_item, "qBCProd").text = "{:.4f}".format( - produto_servico.quantidade_comercial - ) - etree.SubElement(pis_item, "vAliqProd").text = "{:.4f}".format( - produto_servico.pis_aliquota_reais or 0 - ) - else: - etree.SubElement(pis_item, "vBC").text = "{:.2f}".format( - produto_servico.pis_valor_base_calculo or 0 - ) - etree.SubElement(pis_item, "pPIS").text = "{:.2f}".format( - produto_servico.pis_aliquota_percentual or 0 - ) - etree.SubElement(pis_item, "vPIS").text = "{:.2f}".format( - produto_servico.pis_valor or 0 + etree.SubElement(pis_item, "vBC").text = "{:.2f}".format( + produto_servico.pis_valor_base_calculo or 0 + ) + etree.SubElement(pis_item, "pPIS").text = "{:.2f}".format( + produto_servico.pis_aliquota_percentual or 0 ) + etree.SubElement(pis_item, "vPIS").text = "{:.2f}".format( + produto_servico.pis_valor or 0 + ) - # PISST - # pis_item = etree.SubElement(pis, 'PISST') - # etree.SubElement(pis_item, 'vBC').text = produto_servico.pis_valor_base_calculo - # etree.SubElement(pis_item, 'pPIS').text = produto_servico.pis_aliquota_percentual - # etree.SubElement(pis_item, 'qBCProd').text = produto_servico.quantidade_comercial - # etree.SubElement(pis_item, 'vAliqProd').text = produto_servico - # .pis_aliquota_percentual - # etree.SubElement(pis_item, 'vPIS').text = produto_servico.pis_valor_base_calculo + # PISST + # pis_item = etree.SubElement(pis, 'PISST') + # etree.SubElement(pis_item, 'vBC').text = produto_servico.pis_valor_base_calculo + # etree.SubElement(pis_item, 'pPIS').text = produto_servico.pis_aliquota_percentual + # etree.SubElement(pis_item, 'qBCProd').text = produto_servico.quantidade_comercial + # etree.SubElement(pis_item, 'vAliqProd').text = produto_servico + # .pis_aliquota_percentual + # etree.SubElement(pis_item, 'vPIS').text = produto_servico.pis_valor_base_calculo def _serializar_imposto_cofins( self, produto_servico, modelo, tag_raiz="imposto", retorna_string=True ): - if modelo == 55: # apenas nfe - cofinsnt = ("04", "05", "06", "07", "08", "09") - cofins = etree.SubElement(tag_raiz, "COFINS") - if produto_servico.cofins_modalidade in cofinsnt: - cofins_item = etree.SubElement(cofins, "COFINSNT") - etree.SubElement( - cofins_item, "CST" - ).text = produto_servico.cofins_modalidade - elif ( - produto_servico.cofins_modalidade == "01" - or produto_servico.cofins_modalidade == "02" - ): - cofins_item = etree.SubElement(cofins, "COFINSAliq") - etree.SubElement( - cofins_item, "CST" - ).text = produto_servico.cofins_modalidade - etree.SubElement(cofins_item, "vBC").text = "{:.2f}".format( - produto_servico.cofins_valor_base_calculo or 0 - ) - etree.SubElement(cofins_item, "pCOFINS").text = "{:.2f}".format( - produto_servico.cofins_aliquota_percentual or 0 - ) - etree.SubElement(cofins_item, "vCOFINS").text = "{:.2f}".format( - produto_servico.cofins_valor - ) - elif produto_servico.cofins_modalidade == "03": - cofins_item = etree.SubElement(cofins, "COFINSQtde") - etree.SubElement( - cofins_item, "CST" - ).text = produto_servico.cofins_modalidade + cofinsnt = ("04", "05", "06", "07", "08", "09") + cofins = etree.SubElement(tag_raiz, "COFINS") + if produto_servico.cofins_modalidade in cofinsnt: + cofins_item = etree.SubElement(cofins, "COFINSNT") + etree.SubElement( + cofins_item, "CST" + ).text = produto_servico.cofins_modalidade + elif ( + produto_servico.cofins_modalidade == "01" + or produto_servico.cofins_modalidade == "02" + ): + cofins_item = etree.SubElement(cofins, "COFINSAliq") + etree.SubElement( + cofins_item, "CST" + ).text = produto_servico.cofins_modalidade + etree.SubElement(cofins_item, "vBC").text = "{:.2f}".format( + produto_servico.cofins_valor_base_calculo or 0 + ) + etree.SubElement(cofins_item, "pCOFINS").text = "{:.2f}".format( + produto_servico.cofins_aliquota_percentual or 0 + ) + etree.SubElement(cofins_item, "vCOFINS").text = "{:.2f}".format( + produto_servico.cofins_valor + ) + elif produto_servico.cofins_modalidade == "03": + cofins_item = etree.SubElement(cofins, "COFINSQtde") + etree.SubElement( + cofins_item, "CST" + ).text = produto_servico.cofins_modalidade + etree.SubElement(cofins_item, "qBCProd").text = "{:.4f}".format( + produto_servico.quantidade_comercial + ) + etree.SubElement(cofins_item, "vAliqProd").text = "{:.4f}".format( + produto_servico.cofins_aliquota_reais + ) + etree.SubElement(cofins_item, "vCOFINS").text = "{:.2f}".format( + produto_servico.cofins_valor + ) + else: + cofins_item = etree.SubElement(cofins, "COFINSOutr") + etree.SubElement( + cofins_item, "CST" + ).text = produto_servico.cofins_modalidade + if produto_servico.cofins_aliquota_reais > 0: etree.SubElement(cofins_item, "qBCProd").text = "{:.4f}".format( produto_servico.quantidade_comercial ) etree.SubElement(cofins_item, "vAliqProd").text = "{:.4f}".format( - produto_servico.cofins_aliquota_reais - ) - etree.SubElement(cofins_item, "vCOFINS").text = "{:.2f}".format( - produto_servico.cofins_valor + produto_servico.cofins_aliquota_reais or 0 ) else: - cofins_item = etree.SubElement(cofins, "COFINSOutr") - etree.SubElement( - cofins_item, "CST" - ).text = produto_servico.cofins_modalidade - if produto_servico.cofins_aliquota_reais > 0: - etree.SubElement(cofins_item, "qBCProd").text = "{:.4f}".format( - produto_servico.quantidade_comercial - ) - etree.SubElement(cofins_item, "vAliqProd").text = "{:.4f}".format( - produto_servico.cofins_aliquota_reais or 0 - ) - else: - etree.SubElement(cofins_item, "vBC").text = "{:.2f}".format( - produto_servico.cofins_valor_base_calculo or 0 - ) - etree.SubElement(cofins_item, "pCOFINS").text = "{:.2f}".format( - produto_servico.cofins_aliquota_percentual or 0 - ) - etree.SubElement(cofins_item, "vCOFINS").text = "{:.2f}".format( - produto_servico.cofins_valor or 0 + etree.SubElement(cofins_item, "vBC").text = "{:.2f}".format( + produto_servico.cofins_valor_base_calculo or 0 ) - - # COFINSST - # cofins_item = etree.SubElement(cofins, 'COFINSOutr') - # etree.SubElement(cofins_item, 'vBC').text = produto_servico - # .cofins_valor_base_calculo - # etree.SubElement(cofins_item, 'pCOFINS').text = produto_servico - # .cofins_aliquota_percentual - # etree.SubElement(cofins_item, 'qBCProd').text = produto_servico - # .quantidade_comercial - # etree.SubElement(cofins_item, 'vAliqProd').text = produto_servico - # .cofins_aliquota_percentual - # etree.SubElement(cofins_item, 'vCOFINS').text = produto_servico.cofins_valor + etree.SubElement(cofins_item, "pCOFINS").text = "{:.2f}".format( + produto_servico.cofins_aliquota_percentual or 0 + ) + etree.SubElement(cofins_item, "vCOFINS").text = "{:.2f}".format( + produto_servico.cofins_valor or 0 + ) + + # COFINSST + # cofins_item = etree.SubElement(cofins, 'COFINSOutr') + # etree.SubElement(cofins_item, 'vBC').text = produto_servico + # .cofins_valor_base_calculo + # etree.SubElement(cofins_item, 'pCOFINS').text = produto_servico + # .cofins_aliquota_percentual + # etree.SubElement(cofins_item, 'qBCProd').text = produto_servico + # .quantidade_comercial + # etree.SubElement(cofins_item, 'vAliqProd').text = produto_servico + # .cofins_aliquota_percentual + # etree.SubElement(cofins_item, 'vCOFINS').text = produto_servico.cofins_valor def _serializar_imposto_importacao( self, produto_servico, modelo, tag_raiz="imposto", retorna_string=True @@ -1583,7 +1584,7 @@ def _serializar_nota_fiscal( if nota_fiscal.totais_icms_v_icms_mono_ret: etree.SubElement(icms_total, "vICMSMonoRet").text = "{:.2f}".format(nota_fiscal.totais_icms_v_icms_mono_ret) - etree.SubElement(icms_total, "vProd").text = str( + etree.SubElement(icms_total, "vProd").text = "{:.2f}".format( nota_fiscal.totais_icms_total_produtos_e_servicos ) etree.SubElement(icms_total, "vFrete").text = "{:.2f}".format( @@ -1616,7 +1617,7 @@ def _serializar_nota_fiscal( etree.SubElement(icms_total, "vOutro").text = "{:.2f}".format( nota_fiscal.totais_icms_outras_despesas_acessorias ) - etree.SubElement(icms_total, "vNF").text = str( + etree.SubElement(icms_total, "vNF").text = "{:.2f}".format( nota_fiscal.totais_icms_total_nota ) if nota_fiscal.totais_tributos_aproximado: @@ -2000,21 +2001,11 @@ def gerar_qrcode(self, token, csc, xml, return_qr=False, online=True): url_chave = NFCE[uf]["HOMOLOGACAO"] + NFCE[uf]["URL"] # adicionta tag infNFeSupl com qrcode info = etree.Element("infNFeSupl") - etree.SubElement(info, "qrCode").text = "" + etree.SubElement(info, "qrCode").text = etree.CDATA(qrcode.strip()) etree.SubElement(info, "urlChave").text = url_chave + nfe.insert(1, info) - # correção da tag qrCode, retira caracteres pois e CDATA - tnfe = ( - etree.tostring(nfe, encoding="unicode") - .replace("\n", "") - .replace("<", "<") - .replace(">", ">") - .replace("amp;", "") - ) - etree.tostring(nfe.find(".//qrCode"), encoding="unicode").replace( - "\n", "" - ).replace("<", "<").replace(">", ">").replace("amp;", "") - nfe = etree.fromstring(tnfe) + # retorna nfe com o qrcode incluido NT2015/002 e qrcode if return_qr: return nfe, qrcode.strip() diff --git a/tests/test_nfce_serializacao.py b/tests/test_nfce_serializacao.py index d586d7f..355bb23 100644 --- a/tests/test_nfce_serializacao.py +++ b/tests/test_nfce_serializacao.py @@ -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( @@ -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", ) @@ -417,7 +416,7 @@ def total_e_produto_test(self): self.assertEqual(orig, "0") self.assertEqual(CST, "00") self.assertEqual(modBC, "0") - self.assertEqual(vBC, "0") + self.assertEqual(vBC, "0.00") self.assertEqual(pICMS, "0.00") self.assertEqual(vICMS, "0.00") self.assertEqual(pFCP, None) diff --git a/tests/test_nfce_serializacao_sem_cliente.py b/tests/test_nfce_serializacao_sem_cliente.py index c8e024d..1da0788 100644 --- a/tests/test_nfce_serializacao_sem_cliente.py +++ b/tests/test_nfce_serializacao_sem_cliente.py @@ -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( @@ -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", ) @@ -364,7 +363,7 @@ def total_e_produto_test(self): self.assertEqual(orig, "0") self.assertEqual(CST, "00") self.assertEqual(modBC, "0") - self.assertEqual(vBC, "0") + self.assertEqual(vBC, "0.00") self.assertEqual(pICMS, "0.00") self.assertEqual(vICMS, "0.00") self.assertEqual(pFCP, None) diff --git a/tests/test_nfce_serializacao_somente_cpf.py b/tests/test_nfce_serializacao_somente_cpf.py index c673d47..9e4485d 100644 --- a/tests/test_nfce_serializacao_somente_cpf.py +++ b/tests/test_nfce_serializacao_somente_cpf.py @@ -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( @@ -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", ) @@ -379,7 +378,7 @@ def total_e_produto_test(self): self.assertEqual(orig, "0") self.assertEqual(CST, "00") self.assertEqual(modBC, "0") - self.assertEqual(vBC, "0") + self.assertEqual(vBC, "0.00") self.assertEqual(pICMS, "0.00") self.assertEqual(vICMS, "0.00") self.assertEqual(pFCP, None) diff --git a/tests/test_nfe_serializacao_csosn_101.py b/tests/test_nfe_serializacao_csosn_101.py index 28af1a3..54c3b70 100644 --- a/tests/test_nfe_serializacao_csosn_101.py +++ b/tests/test_nfe_serializacao_csosn_101.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_102.py b/tests/test_nfe_serializacao_csosn_102.py index 056ef63..75a2d38 100644 --- a/tests/test_nfe_serializacao_csosn_102.py +++ b/tests/test_nfe_serializacao_csosn_102.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_103.py b/tests/test_nfe_serializacao_csosn_103.py index d5c4d8d..6214ab6 100644 --- a/tests/test_nfe_serializacao_csosn_103.py +++ b/tests/test_nfe_serializacao_csosn_103.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_201.py b/tests/test_nfe_serializacao_csosn_201.py index cd22567..98f482d 100644 --- a/tests/test_nfe_serializacao_csosn_201.py +++ b/tests/test_nfe_serializacao_csosn_201.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_202.py b/tests/test_nfe_serializacao_csosn_202.py index 40fee4d..a003ed9 100644 --- a/tests/test_nfe_serializacao_csosn_202.py +++ b/tests/test_nfe_serializacao_csosn_202.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_203.py b/tests/test_nfe_serializacao_csosn_203.py index c0a8f25..82d54eb 100644 --- a/tests/test_nfe_serializacao_csosn_203.py +++ b/tests/test_nfe_serializacao_csosn_203.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_300.py b/tests/test_nfe_serializacao_csosn_300.py index 879c445..091ba2b 100644 --- a/tests/test_nfe_serializacao_csosn_300.py +++ b/tests/test_nfe_serializacao_csosn_300.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_400.py b/tests/test_nfe_serializacao_csosn_400.py index ac89295..d0565f1 100644 --- a/tests/test_nfe_serializacao_csosn_400.py +++ b/tests/test_nfe_serializacao_csosn_400.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_500.py b/tests/test_nfe_serializacao_csosn_500.py index 0cf0487..d4423ed 100644 --- a/tests/test_nfe_serializacao_csosn_500.py +++ b/tests/test_nfe_serializacao_csosn_500.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_csosn_900.py b/tests/test_nfe_serializacao_csosn_900.py index a3f4c84..2af73be 100644 --- a/tests/test_nfe_serializacao_csosn_900.py +++ b/tests/test_nfe_serializacao_csosn_900.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_cst_00.py b/tests/test_nfe_serializacao_cst_00.py index f91fb58..942ebcd 100644 --- a/tests/test_nfe_serializacao_cst_00.py +++ b/tests/test_nfe_serializacao_cst_00.py @@ -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( @@ -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", @@ -266,7 +265,7 @@ def total_e_produto_cst00_test(self): self.assertEqual(orig, "0") self.assertEqual(CST, "00") self.assertEqual(modBC, "0") - self.assertEqual(vBC, "0") + self.assertEqual(vBC, "0.00") self.assertEqual(pICMS, "0.00") self.assertEqual(vICMS, "0.00") # self.assertEqual(pFCP, '0.00') diff --git a/tests/test_nfe_serializacao_cst_10.py b/tests/test_nfe_serializacao_cst_10.py index 9b176f2..5a544a4 100644 --- a/tests/test_nfe_serializacao_cst_10.py +++ b/tests/test_nfe_serializacao_cst_10.py @@ -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( @@ -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", @@ -279,7 +278,7 @@ def total_e_produto_cst10_test(self): self.assertEqual(orig, "0") self.assertEqual(CST, "10") self.assertEqual(modBC, "0") - self.assertEqual(vBC, "0") + self.assertEqual(vBC, "0.00") self.assertEqual(pICMS, "0.00") self.assertEqual(vICMS, "0.00") # self.assertEqual(pFCP, '0.00') diff --git a/tests/test_nfe_serializacao_cst_20.py b/tests/test_nfe_serializacao_cst_20.py index c4a48e3..061929e 100644 --- a/tests/test_nfe_serializacao_cst_20.py +++ b/tests/test_nfe_serializacao_cst_20.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_cst_30.py b/tests/test_nfe_serializacao_cst_30.py index 6bb562b..d1c0e37 100644 --- a/tests/test_nfe_serializacao_cst_30.py +++ b/tests/test_nfe_serializacao_cst_30.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_cst_40.py b/tests/test_nfe_serializacao_cst_40.py index 386f9d2..147f683 100644 --- a/tests/test_nfe_serializacao_cst_40.py +++ b/tests/test_nfe_serializacao_cst_40.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_cst_41.py b/tests/test_nfe_serializacao_cst_41.py index e736eaa..b50ecae 100644 --- a/tests/test_nfe_serializacao_cst_41.py +++ b/tests/test_nfe_serializacao_cst_41.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_cst_50.py b/tests/test_nfe_serializacao_cst_50.py index 9f0f769..1759372 100644 --- a/tests/test_nfe_serializacao_cst_50.py +++ b/tests/test_nfe_serializacao_cst_50.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_cst_51.py b/tests/test_nfe_serializacao_cst_51.py index e22026a..5a916e1 100644 --- a/tests/test_nfe_serializacao_cst_51.py +++ b/tests/test_nfe_serializacao_cst_51.py @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst51(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( @@ -136,7 +135,7 @@ def preenche_notafiscal_produto_cst51(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", diff --git a/tests/test_nfe_serializacao_cst_60.py b/tests/test_nfe_serializacao_cst_60.py index 8b6f803..9ca255e 100644 --- a/tests/test_nfe_serializacao_cst_60.py +++ b/tests/test_nfe_serializacao_cst_60.py @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst60(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( @@ -136,7 +135,7 @@ def preenche_notafiscal_produto_cst60(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", diff --git a/tests/test_nfe_serializacao_cst_70.py b/tests/test_nfe_serializacao_cst_70.py index 3320b27..de8208a 100644 --- a/tests/test_nfe_serializacao_cst_70.py +++ b/tests/test_nfe_serializacao_cst_70.py @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst70(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( @@ -136,7 +135,7 @@ def preenche_notafiscal_produto_cst70(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", diff --git a/tests/test_nfe_serializacao_cst_90.py b/tests/test_nfe_serializacao_cst_90.py index 878b7c2..f038dfb 100644 --- a/tests/test_nfe_serializacao_cst_90.py +++ b/tests/test_nfe_serializacao_cst_90.py @@ -112,7 +112,6 @@ def preenche_notafiscal_produto_cst90(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( @@ -136,7 +135,7 @@ def preenche_notafiscal_produto_cst90(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", diff --git a/tests/test_nfe_serializacao_geral.py b/tests/test_nfe_serializacao_geral.py index c372b11..3d78f70 100644 --- a/tests/test_nfe_serializacao_geral.py +++ b/tests/test_nfe_serializacao_geral.py @@ -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( @@ -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", diff --git a/tests/test_nfe_serializacao_ii_di_ipi.py b/tests/test_nfe_serializacao_ii_di_ipi.py index 8c9e033..07e5fe8 100644 --- a/tests/test_nfe_serializacao_ii_di_ipi.py +++ b/tests/test_nfe_serializacao_ii_di_ipi.py @@ -119,7 +119,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'), ) # Adicionar informações da Declaração de Importação @@ -179,7 +178,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', @@ -276,7 +275,7 @@ def total_e_produto_cst00_test(self): self.assertEqual(orig, '0') self.assertEqual(CST, '00') self.assertEqual(modBC, '0') - self.assertEqual(vBC, '0') + self.assertEqual(vBC, '0.00') self.assertEqual(pICMS, '0.00') self.assertEqual(vICMS, '0.00') # self.assertEqual(pFCP, '0.00')