OCA / l10n-brazil

Localização brasileira oficial do Odoo.
https://odoo-community.org/psc-teams/brazil-66
GNU Affero General Public License v3.0
239 stars 243 forks source link

[14.0] Não consigo enviar nota fiscal #2878

Closed caiotbc closed 2 months ago

caiotbc commented 9 months ago

Olá, é a minha primeira vez utilizando o odoo, e estou tentando usar o módulo emissor de nota fiscal. Porém, ao clicar no botão enviar me deparo com o seguinte erro:

Odoo Server Error

Traceback (most recent call last): File "/opt/odoo14/odoo14/odoo/addons/base/models/ir_http.py", line 237, in _dispatch result = request.dispatch() File "/opt/odoo14/odoo14/odoo/http.py", line 696, in dispatch result = self._call_function(self.params) File "/opt/odoo14/odoo14/odoo/http.py", line 370, in _call_function return checked_call(self.db, *args, *kwargs) File "/opt/odoo14/odoo14/odoo/service/model.py", line 94, in wrapper return f(dbname, args, kwargs) File "/opt/odoo14/odoo14/odoo/http.py", line 358, in checked_call result = self.endpoint(*a, kw) File "/opt/odoo14/odoo14/odoo/http.py", line 919, in call return self.method(*args, *kw) File "/opt/odoo14/odoo14/odoo/http.py", line 544, in response_wrap response = f(args, kw) File "/opt/odoo14/odoo14/addons/web/controllers/main.py", line 1374, in call_button action = self._call_kw(model, method, args, kwargs) File "/opt/odoo14/odoo14/addons/web/controllers/main.py", line 1362, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/opt/odoo14/odoo14/odoo/api.py", line 406, in call_kw result = _call_kw_multi(method, model, args, kwargs) File "/opt/odoo14/odoo14/odoo/api.py", line 391, in _call_kw_multi result = method(recs, *args, **kwargs) File "/opt/odoo14/odoo14/custom-addons/l10n_br_account/models/account_move.py", line 487, in action_document_send invoices.mapped("fiscal_document_id").action_document_send() File "/opt/odoo14/odoo14/custom-addons/l10n_br_fiscal/models/document_workflow.py", line 329, in action_document_send to_send._document_send() File "/opt/odoo14/odoo14/custom-addons/l10n_br_fiscal/models/document_eletronic.py", line 180, in _document_send electronic._eletronic_document_send() File "/opt/odoo14/odoo14/custom-addons/l10n_br_nfe/models/document.py", line 1055, in _eletronic_document_send for p in processador.processar_documento(edoc): File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/erpbrasil/edoc/edoc.py", line 109, in processar_documento proc_servico = self.status_servico() File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/erpbrasil/edoc/nfe.py", line 759, in status_servico return self._post( File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/nfelib/nfe/ws/edoc_legacy.py", line 71, in _post with self._transmissao.cliente(url): File "/usr/lib/python3.9/contextlib.py", line 117, in enter return next(self.gen) File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/erpbrasil/transmissao/transmissao.py", line 77, in cliente self._cliente = Client( File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/zeep/client.py", line 76, in init self.wsdl = Document(wsdl, self.transport, settings=self.settings) File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/zeep/wsdl/wsdl.py", line 92, in init self.load(location) File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/zeep/wsdl/wsdl.py", line 95, in load document = self._get_xml_document(location) File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/zeep/wsdl/wsdl.py", line 155, in _get_xml_document return load_external( File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/zeep/loader.py", line 90, in load_external return parse_xml(content, transport, base_url, settings=settings) File "/opt/odoo14/odoo14-venv/lib/python3.9/site-packages/zeep/loader.py", line 66, in parse_xml raise XMLSyntaxError( Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/opt/odoo14/odoo14/odoo/http.py", line 652, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/opt/odoo14/odoo14/odoo/http.py", line 317, in _handle_exception raise exception.with_traceback(None) from new_cause zeep.exceptions.XMLSyntaxError: Invalid XML content received (Extra content at the end of the document, line 27, column 1)

Não consegui identificar qual arquivo está gerando o problema, se alguém puder me indicar passos para debugar e encontrar o erro ficarei muito grato.

antoniospneto commented 9 months ago

Olá @caiotbc,

Foi feito uma correção recentemente na lib erpbrasil.edoc para esse problema, porem o mesmo não foi atualizado no repositório pip, recomendo instalar o pacote Python diretamente do repositório Git.

Assim: pip install -e git+https://github.com/erpbrasil/erpbrasil.edoc.git@master#egg=erpbrasil.edoc

Edit: não tenho certeza se é o mesmo problema, mas vale a pena fazer um teste com a lib atualizada.

caiotbc commented 9 months ago

Agradeço a resposta rápida @antoniospneto. Fiz a substituição da biblioteca, porém o problema persiste. Ao baixar o XML da nota fiscal, percebi que não está indo a tag de signature, joguei o XML no https://www.sefaz.rs.gov.br/nfe/NFE-VAL.aspx e ele retornou o seguinte erro:

Schema XML: 225 - Rejeicao: Falha no Schema XML da NFe The element 'NFe' in namespace 'http://www.portalfiscal.inf.br/nfe' has invalid child element 'script'. List of possible elements expected: 'infNFeSupl' in namespace 'http://www.portalfiscal.inf.br/nfe' as well as 'Signature' in namespace 'http://www.w3.org/2000/09/xmldsig#'.

É a primeira vez que tento emitir nota fiscal, o fato de estar no ambiente de homologação impede que seja anexado o certificado no XML?

Não consigo também gerar o PDF da nota fiscal, quando clico no botão correspondente ocorre o erro:

Odoo Server Error

Traceback (most recent call last): File "/opt/odoo14/odoo14/odoo/addons/base/models/ir_http.py", line 237, in _dispatch result = request.dispatch() File "/opt/odoo14/odoo14/odoo/http.py", line 696, in dispatch result = self._call_function(self.params) File "/opt/odoo14/odoo14/odoo/http.py", line 370, in _call_function return checked_call(self.db, *args, *kwargs) File "/opt/odoo14/odoo14/odoo/service/model.py", line 94, in wrapper return f(dbname, args, kwargs) File "/opt/odoo14/odoo14/odoo/http.py", line 358, in checked_call result = self.endpoint(*a, kw) File "/opt/odoo14/odoo14/odoo/http.py", line 919, in call return self.method(*args, *kw) File "/opt/odoo14/odoo14/odoo/http.py", line 544, in response_wrap response = f(args, kw) File "/opt/odoo14/odoo14/addons/web/controllers/main.py", line 1374, in call_button action = self._call_kw(model, method, args, kwargs) File "/opt/odoo14/odoo14/addons/web/controllers/main.py", line 1362, in _call_kw return call_kw(request.env[model], method, args, kwargs) File "/opt/odoo14/odoo14/odoo/api.py", line 406, in call_kw result = _call_kw_multi(method, model, args, kwargs) File "/opt/odoo14/odoo14/odoo/api.py", line 391, in _call_kw_multi result = method(recs, *args, **kwargs) File "/opt/odoo14/odoo14/custom-addons/l10n_br_account/models/account_move.py", line 549, in view_pdf return self.fiscal_document_id.view_pdf() File "/opt/odoo14/odoo14/custom-addons/l10n_br_nfe/models/document.py", line 1094, in view_pdf self.make_pdf() File "/opt/odoo14/odoo14/custom-addons/l10n_br_nfe/models/document.py", line 1111, in make_pdf xml_string = self.temp_xml_autorizacao(xml_string) File "/opt/odoo14/odoo14/custom-addons/l10n_br_nfe/models/document.py", line 1148, in temp_xml_autorizacao root = etree.fromstring(xml_string) File "src/lxml/etree.pyx", line 3237, in lxml.etree.fromstring File "src/lxml/parser.pxi", line 1891, in lxml.etree._parseMemoryDocument Exception

The above exception was the direct cause of the following exception:

Traceback (most recent call last): File "/opt/odoo14/odoo14/odoo/http.py", line 652, in _handle_exception return super(JsonRequest, self)._handle_exception(exception) File "/opt/odoo14/odoo14/odoo/http.py", line 317, in _handle_exception raise exception.with_traceback(None) from new_cause ValueError: Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration.

rvalyi commented 9 months ago

vê tambem se vc esta usando a ultima revisão da branch master da nfelib. Pois la tb precisa fazer um novo release, e o fix da mudança na assinatura esta apenas no último commit da branch master.

caiotbc commented 9 months ago

Fiz isso, e também não solucionou o problema. A instalação é nova, está em uma máquina virtual de debian 11, que também instalei do zero. Vocês recomendam algum outro sistema operacional para testar e ver se some o erro? Ou alguma outra versão do odoo.

Edit: instalei o pacote https://github.com/Engenere/engenere-addons/tree/14.0/engenere_danfe, e agora a geração de PDFs funciona. No entanto, o botão de enviar ainda dá o mesmo erro.

github-actions[bot] commented 2 months ago

There hasn't been any activity on this issue in the past 6 months, so it has been marked as stale and it will be closed automatically if no further activity occurs in the next 30 days. If you want this issue to never become stale, please ask a PSC member to apply the "no stale" label.

marcelsavegnago commented 2 months ago

Em um cliente eu precisei também usar este módulo da Engenere para poder fazer a impressão do DANFE. Acredito que agora com a lib BrazilFiscalReport que estamos usando na localização o problema já não existe mais e portanto estou fechando a issue.