Browse Source

Merge branch '3.10' into 3.10

pull/30/head
Lucas Cardoso 8 years ago
committed by GitHub
parent
commit
329411db6a
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      pynfe/entidades/notafiscal.py
  2. 17
      pynfe/processamento/comunicacao.py
  3. 12
      pynfe/processamento/serializacao.py

2
pynfe/entidades/notafiscal.py

@ -522,7 +522,7 @@ class NotaFiscalProduto(Entidade):
numero_pedido = str()
# - Item do Pedido de Compra
numero_do_item = str()
numero_item = str()
# - Produto especifico (seleciona de lista) - NF_PRODUTOS_ESPECIFICOS
produto_especifico = str()

17
pynfe/processamento/comunicacao.py

@ -418,7 +418,8 @@ class ComunicacaoSefaz(Comunicacao):
raise Exception('Modelo não encontrado! Defina modelo="nfe" ou "nfce"')
# Estados que utilizam outros ambientes
else:
lista_svrs = ['AC', 'RN', 'PB', 'SC', 'SE', 'PI']
lista_svrs = ['AC', 'RN', 'PB', 'SC', 'SE', 'RJ', 'PI']
lista_svan = ['MA','PA']
if self.uf.upper() in lista_svrs:
if self._ambiente == 1:
ambiente = 'HTTPS'
@ -432,6 +433,19 @@ class ComunicacaoSefaz(Comunicacao):
self.url = NFCE['SVRS'][ambiente] + NFCE['SVRS'][consulta]
else:
raise Exception('Modelo não encontrado! Defina modelo="nfe" ou "nfce"')
elif self.uf.upper() in lista_svan:
if self._ambiente == 1:
ambiente = 'HTTPS'
else:
ambiente = 'HOMOLOGACAO'
if modelo == 'nfe':
# nfe Ex: https://nfe.fazenda.pr.gov.br/nfe/NFeStatusServico3
self.url = NFE['SVAN'][ambiente] + NFE['SVAN'][consulta]
elif modelo == 'nfce':
# nfce Ex: https://homologacao.nfce.fazenda.pr.gov.br/nfce/NFeStatusServico3
self.url = NFCE['SVAN'][ambiente] + NFCE['SVAN'][consulta]
else:
raise Exception('Modelo não encontrado! Defina modelo="nfe" ou "nfce"')
else:
raise Exception('UF com URL não definida!')
return self.url
@ -551,6 +565,7 @@ class ComunicacaoSefaz(Comunicacao):
# result.encoding = 'utf-8'
# return result
print(url)
print(xml)
# Faz o request com o servidor
result = requests.post(url, xml, headers=self._post_header(), cert=chave_cert, verify=False, timeout=120)
result.encoding = 'utf-8'

12
pynfe/processamento/serializacao.py

@ -240,6 +240,14 @@ class SerializacaoXML(Serializacao):
"""
etree.SubElement(prod, 'indTot').text = str(produto_servico.ind_total)
""" Informação de interesse do emissor para controle do B2B.(v2.0) """
# Número do Pedido de Compra. Tam 1-15
if produto_servico.numero_pedido:
etree.SubElement(prod, 'xPed').text = str(produto_servico.numero_pedido)
# Item do Pedido de Compra. Tam 6
if produto_servico.numero_item:
etree.SubElement(prod, 'nItemPed').text = str(produto_servico.numero_item)
# Imposto
imposto = etree.SubElement(raiz, 'imposto')
@ -250,7 +258,7 @@ class SerializacaoXML(Serializacao):
### ICMS
icms = etree.SubElement(imposto, 'ICMS')
icms_csosn = ('102', '103', '300', '400')
icms_csosn = ('102', '103', '300', '400', '500')
if produto_servico.icms_modalidade in icms_csosn:
icms_item = etree.SubElement(icms, 'ICMSSN'+produto_servico.icms_modalidade)
etree.SubElement(icms_item, 'orig').text = str(produto_servico.icms_origem)
@ -580,7 +588,9 @@ class SerializacaoXML(Serializacao):
vol = etree.SubElement(transp, 'vol')
etree.SubElement(vol, 'qVol').text = str(volume.quantidade)
etree.SubElement(vol, 'esp').text = volume.especie
if volume.marca:
etree.SubElement(vol, 'marca').text = volume.marca
if volume.numeracao:
etree.SubElement(vol, 'nVol').text = volume.numeracao
etree.SubElement(vol, 'pesoL').text = str(volume.peso_liquido)
etree.SubElement(vol, 'pesoB').text = str(volume.peso_bruto)

Loading…
Cancel
Save