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á 1189 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á 1189 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.