Ir para conteúdo
  • Cadastre-se

dev botao

Ref. Forma de Envio novo Servidor IPM Guarapuava-PR


Ver Solução Respondido por Italo Giurizzato Junior,
  • Este tópico foi criado há 1449 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

dentro da unit ACBrNFSeXProviderProprio tem a procedure procedure TACBrNFSeProviderProprio.PrepararEmitir(Response: TNFSeEmiteResponse)

nela em uma parte que converte para UTF8:

 for I := 0 to TACBrNFSeX(FAOwner).NotasFiscais.Count -1 do
  begin
    Nota := TACBrNFSeX(FAOwner).NotasFiscais.Items[I];

    if EstaVazio(Nota.XMLAssinado) then
    begin
      Nota.GerarXML;
      if (ConfigAssinar.Rps and (Response.ModoEnvio in [meLoteAssincrono, meLoteSincrono])) or
         (ConfigAssinar.RpsGerarNFSe and (Response.ModoEnvio = meUnitario)) then
      begin
        Nota.XMLOriginal := FAOwner.SSL.Assinar(ConverteXMLtoUTF8(Nota.XMLOriginal),
                                                PrefixoTS + ConfigMsgDados.XmlRps.DocElemento,
                                                ConfigMsgDados.XmlRps.InfElemento, '', '', '', IdAttr);
      end;
    end;

    SalvarXmlRps(Nota);

    xRps := RemoverDeclaracaoXML(Nota.XMLOriginal);
    xRps := PrepararRpsParaLote(xRps);

    ListaRps := ListaRps + xRps;
  end;

mas como ConfigAssinar.Rps está falso ele não passa, não sei se é esse o ponto, apenas estou tentando achar a solução....

 

Postado
21 minutos atrás, Sandro Andre Reghelin disse:

Estou tentando achar onde fica essa parte  que comentou da forma como xml e anexo ao envio e do encoding, dentro do ACBNFSEx, mas está complicado

Alterei no IPM.Provider.pas, de rest pra multipart - linha 51 para suportar o formato multi-part. TACBrNFSeXWebserviceRest -> TACBrNFSeXWebserviceMulti

 TACBrNFSeXWebserviceIPM = class(TACBrNFSeXWebserviceMulti)

o webservice recebeu o xml incorporado do ACBR e começou a responder no programa de exemplo.

Postado
3 minutos atrás, Sandro Felipe Adad disse:

Alterei no IPM.Provider.pas, de rest pra multipart - linha 51 para suportar o formato multi-part. TACBrNFSeXWebserviceRest -> TACBrNFSeXWebserviceMulti

 TACBrNFSeXWebserviceIPM = class(TACBrNFSeXWebserviceMulti)

o webservice recebeu o xml incorporado do ACBR e começou a responder no programa de exemplo.

Se puder anexar ele aqui e passar para o Italo validar....

Postado

depois do primeiro envio, retorna sempre o mesmo identificador:

<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="ISO-8859-1"?>
<retorno>
    <mensagem>
    <codigo>00209 - Já consta uma NFSe para o referido prestador de serviço com o mesmo IDENTIFICADOR de arquivo
    </codigo></mensagem>
    </retorno>

 

IPM.Provider.pas 21-rec.xml 21-rec-soap.xml temp.xml 21-env-lot.xml 21-env-lot-soap.xml

31 minutos atrás, Sandro Andre Reghelin disse:

dentro da unit ACBrNFSeXProviderProprio tem a procedure procedure TACBrNFSeProviderProprio.PrepararEmitir(Response: TNFSeEmiteResponse)

nela em uma parte que converte para UTF8:

 for I := 0 to TACBrNFSeX(FAOwner).NotasFiscais.Count -1 do
  begin
    Nota := TACBrNFSeX(FAOwner).NotasFiscais.Items[I];

    if EstaVazio(Nota.XMLAssinado) then
    begin
      Nota.GerarXML;
      if (ConfigAssinar.Rps and (Response.ModoEnvio in [meLoteAssincrono, meLoteSincrono])) or
         (ConfigAssinar.RpsGerarNFSe and (Response.ModoEnvio = meUnitario)) then
      begin
        Nota.XMLOriginal := FAOwner.SSL.Assinar(ConverteXMLtoUTF8(Nota.XMLOriginal),
                                                PrefixoTS + ConfigMsgDados.XmlRps.DocElemento,
                                                ConfigMsgDados.XmlRps.InfElemento, '', '', '', IdAttr);
      end;
    end;

    SalvarXmlRps(Nota);

    xRps := RemoverDeclaracaoXML(Nota.XMLOriginal);
    xRps := PrepararRpsParaLote(xRps);

    ListaRps := ListaRps + xRps;
  end;

mas como ConfigAssinar.Rps está falso ele não passa, não sei se é esse o ponto, apenas estou tentando achar a solução....

 

Não, ao meu ver o problema ésta na forma ne anexar o arquivo, não é padrao rest, é padrão multiform. Se voce observar no proprio exemplo do postman que coloque nos comentarios acima pelo log dele.

Postado
7 minutos atrás, Sandro Felipe Adad disse:

depois do primeiro envio, retorna sempre o mesmo identificador:

<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="ISO-8859-1"?>
<retorno>
    <mensagem>
    <codigo>00209 - Já consta uma NFSe para o referido prestador de serviço com o mesmo IDENTIFICADOR de arquivo
    </codigo></mensagem>
    </retorno>

 

IPM.Provider.pas 18 kB · 0 downloads 21-rec.xml 38 B · 0 downloads 21-rec-soap.xml 249 B · 0 downloads temp.xml 1 kB · 0 downloads 21-env-lot.xml 1 kB · 1 download 21-env-lot-soap.xml 1 kB · 0 downloads

Sandro o IPM.provider.pas que anexou, está igual ao do ACBR...

4 minutos atrás, Sandro Andre Reghelin disse:

Sandro o IPM.provider.pas que anexou, está igual ao do ACBR...

alterei para --->    TACBrNFSeXWebserviceIPMV110 = class(TACBrNFSeXWebserviceMulti)

e agora o retorno foi de erro:

'<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="ISO-8859-1"?>'#$A'<retorno>'#$A#9'<mensagem>'#$A#9#9'<codigo> XSD Error 1824: Element ''serie_recibo_provisorio'': ''E'' is not a valid value of the atomic type ''xs:integer''. Line: 1</codigo>'#$A#9'</mensagem>'#$A'</retorno>'

 

Postado
5 minutos atrás, Sandro Andre Reghelin disse:

Sandro o IPM.provider.pas que anexou, está igual ao do ACBR...

alterei para --->    TACBrNFSeXWebserviceIPMV110 = class(TACBrNFSeXWebserviceMulti)

e agora o retorno foi de erro:

'<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="ISO-8859-1"?>'#$A'<retorno>'#$A#9'<mensagem>'#$A#9#9'<codigo> XSD Error 1824: Element ''serie_recibo_provisorio'': ''E'' is not a valid value of the atomic type ''xs:integer''. Line: 1</codigo>'#$A#9'</mensagem>'#$A'</retorno>'

 

no manual a tag serie_recibo_provisorio é numerico de 2... vou ver onde altera aqui e mandar novamente...

Postado

ACBrNFSeX -> deixei em comentario (access violation aqui)

  {if (NFSe.Status = srNormal) and
     (TACBrNFSeX(FAOwner).Configuracoes.Geral.Provedor in [proIPM_110, proIPM_120]) then
  begin
    xmlNode := GerarCondicaoPagamento;
    NFSeNode.AppendChild(xmlNode);
  end;   }

24 minutos atrás, Italo Giurizzato Junior disse:

Boa tarde a todos,

Por favor atualizem os fontes e façam novos testes.

Deu certo o envio com exceção do ajuste IPM.GravarXML que postei acima que deixem em comentario.

A nota foi aceita e convertida. no programa exemplo apenas deu um erro na mensagem

Modo de Envio : Enviar Lote
Numero do Lote: 23
Data de Envio : 30/12/1899
Numero do Prot: 
Sucesso       : True
 
Modo de Envio : Enviar Lote
Numero do Lote: 23
Data de Envio : 30/12/1899
Numero do Prot: 
Sucesso       : True
 
Erro(s):
Código  : X999
Mensagem: EntityRef: expecting ';'

Correção: 
---------
 

:

Postado

o Erro ocorre em 

procedure TACBrXmlDocument.LoadFromXml(AXmlDocument: string);
var
  loadedDoc: xmlDocPtr;
  loadedRoot: xmlNodePtr;
begin
  loadedDoc := xmlParseDoc(PAnsiChar(ansistring(AXmlDocument)));

ao ler este documento abaixo:

<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="ISO-8859-1"?>
<retorno>
    <mensagem>
        <codigo>00001 - Sucesso</codigo>
    </mensagem>
    <numero_nfse>6</numero_nfse>
    <serie_nfse>1</serie_nfse>
    <data_nfse>25/08/2021</data_nfse>
    <hora_nfse>15:59:32</hora_nfse>
    <situacao_codigo_nfse>1</situacao_codigo_nfse>
    <situacao_descricao_nfse>Emitida</situacao_descricao_nfse>
    <link_nfse>https://migracao.atende.net/?pg=autoatendimento&cidade=treina_guarapuava_integracao#!/tipo/servico/valor/213/padrao/1/load/1/identificador/7583738026207714738720220825082021151933</link_nfse>
    <cod_verificador_autenticidade>7583738026207714738720220825082021151933</cod_verificador_autenticidade>
</retorno>

Postado
4 minutos atrás, Italo Giurizzato Junior disse:

Favor atualizar novamente e repita os testes.

Resolveu o problema do Acces Violation da forma de pagamento - blz.

Mas ao ler o xml de retorno ainda com erro na msg: 

Modo de Envio : Enviar Lote
Numero do Lote: 26
Data de Envio : 30/12/1899
Numero do Prot: 
Sucesso       : True
 
Modo de Envio : Enviar Lote
Numero do Lote: 26
Data de Envio : 30/12/1899
Numero do Prot: 
Sucesso       : True
 
Erro(s):
Código  : X999
Mensagem: EntityRef: expecting ';'

Correção: 
---------

 

<?xml version="1.0" encoding="UTF-8"?><?xml version="1.0" encoding="ISO-8859-1"?><retorno>
    <mensagem>
        <codigo>00001 - Sucesso</codigo>
    </mensagem>
        <numero_nfse>9</numero_nfse>
    <serie_nfse>1</serie_nfse>
    <data_nfse>25/08/2021</data_nfse>
    <hora_nfse>16:16:41</hora_nfse>
    <situacao_codigo_nfse>1</situacao_codigo_nfse>
    <situacao_descricao_nfse>Emitida</situacao_descricao_nfse>
    <link_nfse>https://migracao.atende.net/?pg=autoatendimento&cidade=treina_guarapuava_integracao#!/tipo/servico/valor/213/padrao/1/load/1/identificador/7583738026207714738720220825082021160642</link_nfse>
    <cod_verificador_autenticidade>7583738026207714738720220825082021160642</cod_verificador_autenticidade>
</retorno>

Postado
4 minutos atrás, Italo Giurizzato Junior disse:

Mesmo com essa nova unit que anexei?

Sim, repeti o processo duas vezes pra conferir.

o Erro ocorre antes de verificarareposta, na procedure LoadFromXml da unit ACBrXmlDocument;

procedure TACBrXmlDocument.LoadFromXml(AXmlDocument: string);

->  loadedDoc := xmlParseDoc(PAnsiChar(ansistring(AXmlDocument)));

 

28-rec.xml 28-rec-soap.xml

image.thumb.png.15b6477031b56fed8657a1aa6dbe75fa.png

  • Consultores
Postado

Sandro,

Preciso que você atualize todos os fontes de todas as pastas.

Faça um novo teste.

Coloque um ponto de parada na linha:

loadedDoc := xmlParseDoc(PAnsiChar(ansistring(AXmlDocument)));

Quero saber qual é o valor de AXmlDocument.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

'<?xml version="1.0" encoding="ISO-8859-1"?><retorno>'#9'<mensagem>'#9#9'<codigo>00001 - Sucesso</codigo>'#9'</mensagem>'#9#9'<numero_nfse>13</numero_nfse>'#9'<serie_nfse>1</serie_nfse>'#9'<data_nfse>25/08/2021</data_nfse>'#9'<hora_nfse>17:06:05</hora_nfse>'#9'<situacao_codigo_nfse>1</situacao_codigo_nfse>'#9'<situacao_descricao_nfse>Emitida</situacao_descricao_nfse>'#9'<link_nfse>https://migracao.atende.net/?pg=autoatendimento&cidade=treina_guarapuava_integracao#!/tipo/servico/valor/213/padrao/1/load/1/identificador/7583738026207714738720220825082021183606</link_nfse>'#9'<cod_verificador_autenticidade>7583738026207714738720220825082021183606</cod_verificador_autenticidade></retorno>'

image.png.cdf951364bbff1f40db72a10a3cc76e5.png

  • Curtir 1
Postado
36 minutos atrás, Sandro Felipe Adad disse:

Perfeito Italo, resolvido!

Muito obrigado.

O Envio também testei,  e a principio está ok.....

Sandro, abri outro post sobre esse servidor, mas acho que pode me ajudar, como está enviando a TAG, situacao_tributaria da nfse de Guarapuava? olhei no ACBR e não achei, pelos não por esse nome especifico?

  • Este tópico foi criado há 1449 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...