Пример #1
0
    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
Пример #2
0
    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)
Пример #3
0
    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)
Пример #4
0
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
)