def test_get_url_ce(self): global url_prod global url_hom estado_webservice = [] list_web_service_prod = [] list_servicos_prod = [] list_web_service_hom = [] list_servicos_hom = [] uf = "ce" with self.subTest("Erro do WebService em Homologação em CE"): for estado in url_hom: if estado[3] == "CE": estado_webservice.append(estado) for servico in estado_webservice: list_web_service_hom.append(servico[2]) for servico in estado_webservice: list_servicos_hom.append(servico[0]) homologacao = True con = ComunicacaoSefaz(uf, certificado, senha, homologacao) s = 0 for servico in list_servicos_hom: url = con._get_url('nfe', servico) self.assertEqual(url, list_web_service_hom[s]) s = s + 1 with self.subTest("Erro do WebService em Produção em CE"): estado_webservice = [] for estado in url_prod: if estado[3] == "CE": estado_webservice.append(estado) for servico in estado_webservice: list_web_service_prod.append(servico[2]) for servico in estado_webservice: list_servicos_prod.append(servico[0]) homologacao = False con = ComunicacaoSefaz(uf, certificado, senha, homologacao) s = 0 for servico in list_servicos_prod: url = con._get_url('nfe', servico) self.assertEqual(url, list_web_service_prod[s]) s = s + 1
unidade_tributavel='UN', quantidade_tributavel=Decimal('12'), valor_unitario_tributavel=Decimal('9.75'), ind_total=1, icms_modalidade='102', icms_origem=0, icms_csosn='400', pis_modalidade='07', cofins_modalidade='07', valor_tributos_aprox='21.06' ) # serialização serializador = SerializacaoXML(_fonte_dados, homologacao=homologacao) nfe = serializador.exportar() # assinatura a1 = AssinaturaA1(certificado, senha) xml = a1.assinar(nfe) # envio con = ComunicacaoSefaz(uf, certificado, senha, homologacao) envio = con.autorizacao(modelo='nfe', nota_fiscal=xml) # em caso de sucesso o retorno será o xml autorizado if envio[0] == 0: print (envio[1].text) # em caso de erro o retorno será o xml de resposta da SEFAZ else: print (envio[1].text)
icms_modalidade='102', icms_origem=0, icms_csosn='400', pis_modalidade='07', cofins_modalidade='07', # pis_tipo_calculo='01', # pis_valor_base_calculo=Decimal('117.00'), # pis_aliquota_percentual=Decimal('0.65'), # pis_valor=Decimal('0.76'), # cofins_situacao_tributaria='01', # cofins_valor_base_calculo=Decimal('117.00'), # cofins_aliquota_percentual=Decimal('3.00'), # cofins_valor=Decimal('3.51') ) serializador = SerializacaoXML(_fonte_dados, homologacao=True) xml = serializador.exportar(retorna_string=True) certificado = "/home/user/certificado.pfx" senha = 'senha' uf = 'pr' homologacao = True # assinatura a1 = AssinaturaA1(certificado, senha) xml = a1.assinar(xml) con = ComunicacaoSefaz(uf, certificado, senha, homologacao) envio = con.autorizacao(modelo='nfe', nota_fiscal=xml) print(envio.text)
certificado = "//MeuComputador/meucertificado.pfx" senha = 'MinhaSenha' uf = 'sp' #estado homologacao = False #true = ambiente de homologacao #false = ambiente de producao # # ###################################################################################### 1- VARIAVEIS GLOBAIS - FIM ###################################################################################### 3- REQUESTS - INICIO # # #EXEMPLO 1 - Verifica Status da Sefaz con = ComunicacaoSefaz(uf, certificado, senha, homologacao) xml = con.status_servico('nfe') print(xml.text) #mostra a resposta da solicitacao #EXEMPLO 2 - Manifestacao do Destinatario manif_dest = EventoManifestacaoDest( cnpj='1234567890000', # cnpj do destinatário chave='06262949502090920920209209209', # chave de acesso da nota data_emissao=datetime.datetime.now(), uf=uf, operacao=1 # - numero da operacao # 1=Confirmação da Operação # 2=Ciência da Emissão # 3=Desconhecimento da Operação # 4=Operação não Realizada )