Browse Source

Implementado Cancelamento de Nfe

pull/1/head
Junior Tada 11 years ago
parent
commit
85717ca22a
  1. 13
      pynfe/entidades/evento.py
  2. 1
      pynfe/processamento/comunicacao.py
  3. 2
      pynfe/processamento/serializacao.py

13
pynfe/entidades/evento.py

@ -25,13 +25,7 @@ class EventoCancelarNota(Evento):
# - Código do evento = 110111
tp_evento = '110111'
# - Sequencial do evento para o mesmo tipo de evento. Para maioria dos eventos nSeqEvento=1, nos casos em quepossa existir mais de um evento, como é o caso da Carta de Correção, o autor do evento deve numerar de forma sequencial.
n_seq_evento = '1'
# # - Versão do detalhe do evento (grupo detEvento – HP17), informação utilizada para a SEFAZ validar o grupo detEvento.
# ver_evento = str()
# # - Informações do Pedido de Cancelamento
# det_evento = str()
# # - Versão do Pedido de Cancelamento, deve ser informado com a mesma informação da tag verEvento (HP16)
# versao = str()
n_seq_evento = 1
# - descEvento
descricao = 'Cancelamento'
# - Informar o número do Protocolo de Autorização da NF-e a ser Cancelada. (vide item 5.8).
@ -45,10 +39,9 @@ class EventoCancelarNota(Evento):
Gera o valor para o campo id
A regra de formação do Id é: ID + tpEvento + chave da NF-e + nSeqEvento
"""
self.id = "ID%(tp_evento)s%(um)s%(chave)s%(n_seq_evento)s"%{
self.id = "ID%(tp_evento)s%(chave)s%(n_seq_evento)s"%{
'tp_evento': self.tp_evento,
'um': '1',
'chave': self.chave,
'n_seq_evento': self.n_seq_evento,
'n_seq_evento': str(self.n_seq_evento).zfill(2),
}
return self.id

1
pynfe/processamento/comunicacao.py

@ -80,7 +80,6 @@ class ComunicacaoSefaz(Comunicacao):
def cancelar(self, modelo, evento):
""" Envia um evento de cancelamento de nota fiscal """
# url do serviço
url = self._get_url(modelo=modelo, consulta='EVENTOS')
# Monta XML do corpo da requisição

2
pynfe/processamento/serializacao.py

@ -504,7 +504,7 @@ class SerializacaoXML(Serializacao):
etree.SubElement(e, 'chNFe').text = evento.chave
etree.SubElement(e, 'dhEvento').text = evento.data_emissao.strftime('%Y-%m-%dT%H:%M:%S') + tz
etree.SubElement(e, 'tpEvento').text = evento.tp_evento
etree.SubElement(e, 'nSeqEvento').text = evento.n_seq_evento
etree.SubElement(e, 'nSeqEvento').text = str(evento.n_seq_evento)
etree.SubElement(e, 'verEvento').text = '1.00'
det = etree.SubElement(e, 'detEvento', versao='1.00')
etree.SubElement(det, 'descEvento').text = evento.descricao

Loading…
Cancel
Save