erpbrasil / erpbrasil.edoc Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Para arrumar depois:
2023-08-11 13:47:21,034 1 WARNING devel py.warnings: /usr/local/lib/python3.8/site-packages/erpbrasil/edoc/nfe.py:1035: FutureWarning: The behavior of this method will change in future versions. Use specific 'len(elem)' or 'elem is not None' test instead.
if nfe and protocolos:
Olá @mileo. Você pode atualizar a lib no pypi por favor?
Na Bahia o nome da operação nfeRecepcaoEvento é nfeRecepcaoEventoNF.
No caso a biblioteca considera que em todos os estados o nome da operação é igual.. infelizmente não é :D
Durante a execução da função abaixo, a variável match se mantem com valor None, não sendo possível emitir a NFe.
def analisar_retorno_raw(operacao, raiz, xml, retorno, classe):
retorno.raise_for_status()
match = re.search('<soap:Body>(.*?)</soap:Body>',
retorno.text.replace('\n', ''))
if match:
xml_resposta = match.group(1)
resultado = etree.tostring(etree.fromstring(xml_resposta)[0])
classe.Validate_simpletypes_ = False
resposta = classe.parseString(resultado, silence=True)
return RetornoSoap(operacao, raiz, xml, retorno, resposta)
O método search utiliza como parâmetro pattern o valor '<soap:Body>(.*?)</soap:Body>'
Porém a variável retorno possui o seguinte conteúdo:
'<?xml version=\'1.0\' encoding=\'UTF-8\'?><S:Envelope xmlns:S="http://www.w3.org/2003/05/soap-envelope"><S:Body><nfeResultMsg xmlns="http://www.portalfiscal.inf.br/nfe/wsdl/NFeStatusServico4"><retConsStatServ xmlns="http://www.portalfiscal.inf.br/nfe" versao="4.00"><tpAmb>2</tpAmb><verAplic>W-3.0.27</verAplic><cStat>107</cStat><xMotivo>Servico em operacao</xMotivo><cUF>31</cUF><dhRecbto>2023-05-25T15:33:45-03:00</dhRecbto><dhRetorno>2023-05-25T15:33:45-03:00</dhRetorno></retConsStatServ></nfeResultMsg></S:Body></S:Envelope>'
Não existe a tag soap:Body porém existe <S:Body>
É algum erro na lib, ou seria algum do lado emissor da NFe?
Ao analisar os XMLs das NF-es gerados percebi que existe um problema na tag digVal dentro de protNFe/infProt que o valor da tag esta com b'.....':
Não parece que seja um problema do nfelib porque o campo DigestValue dentro da tag Signature/SignedInfo/Reference/ tem o mesmo valor e esta sendo gerado corretamente:
Eu não investiguei muito, mas parece que o erro esta aqui: _generateds_to_string_etree, mais precisamente nesta linha https://github.com/erpbrasil/erpbrasil.edoc/blob/master/src/erpbrasil/edoc/edoc.py#L44 que pela documentação, parece que esta faltando o parametro encoding:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/http.py", line 656, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 314, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise
raise value
File "/usr/lib/python3/dist-packages/odoo/http.py", line 698, in dispatch
result = self._call_function(**self.params)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 346, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 98, in wrapper
return f(dbname, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 941, in call
return self.method(*args, **kw)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 519, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 967, in call_button
action = self._call_kw(model, method, args, {})
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 955, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 759, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 746, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/l10n-brazil/l10n_br_fiscal/wizards/document_status_wizard.py", line 24, in doit
return wizard.get_document_status()
File "/usr/lib/python3/dist-packages/odoo/l10n-brazil/l10n_br_fiscal/wizards/document_status_wizard.py", line 15, in get_document_status
"document_status": self.document_id._document_status(),
File "/usr/lib/python3/dist-packages/odoo/l10n-brazil/l10n_br_nfse_paulistana/models/document.py", line 362, in _document_status
consulta = processador.analisa_retorno_consulta(processo)
File "/usr/local/lib/python3.7/dist-packages/erpbrasil/edoc/provedores/paulistana.py", line 141, in analisa_retorno_consulta
retorno.find('.//CodigoVerificacao').text
AttributeError: 'NoneType' object has no attribute 'text'
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.