Ir para conteúdo
  • Cadastre-se

dev botao

Problemas com SmaraPD


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

Recommended Posts

Postado

Boa tarde pessoal,

Estou tendo um problema com o servidor SmaraPD... alimento o componente e uso a função Enviar(); ele faz a transmissão corretamente, o xml é validade e transmitido tudo OK, no entanto apos a transmissão quando mando imprimir a danfse abre sem os dados de retorno... tentei fazer a reimpressão do XML que ficou salvo na minha pasta e ai abre tudo em branco, pois quando ele da o Load do XML no componente ele não encontra as TAGS do formato do SmaraPD...
Essa mesma nota se faço o download do XML pelo site da prefeitura ele vem no formato correto, ou seja, o XML que chega na prefeitura está no padrão, mas o do diretório não. abro os dois e a diferença é nitida:

As que ficam na minha pasta segue o padrão no inicio do arquivo assim:

    <tbnfd>

    <nfd>
   <numeronfd>0</numeronfd>

Ja as que baixo ficam assim:

    <tbnfd>
    <nfdok numeronfd="3367">
    <NewDataSet>
    <NOTA_FISCAL>

Segue anexo os dois arquivos, alguém pode me auxiliar onde estou errado, o que posso fazer para ficar com o XML igual ao da prefeitura?

Obrigado

 
 

35150.xml

1305018-rps.xml

Postado

Só mais uma informação, estou deixando a opção "Consultar Lote Após Envio" desabilitada pois quando habilito fala que o metodo consultar lote não foi implementado pelo servidor SmaraPD... ou seja, não estou gerando o XML da NFSe somente do RPS... Alguém que utiliza o SmaraPD, poderia me orientar como gerar esse XML para poder fazer a impressão.

 

Obrigado

  • Consultores
Postado

Boa tarde,

Você esta com todos os fontes de todas as pastas atualizados?

Pois segundo o arquivo INI do provedor ele possui os métodos Enviar, Consultar Lote e Cancelar implementados pelo provedor em seu Webservice.

  • Curtir 1
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

Boa Tarde Italo, 

Estou com os fontes atualizados sim... o erro dava quando habilitava a opção  Consultar Lote Após Envio, mas quando executo a função ConsultarLoteRps() manualmente após o envio ele funciona mais ou menos, pois assim que termina a execução da função (inclusive usando o exemplo do ACBr na pasta do componente) o XML que é salvo na pasta NFSe vem com problema, no final do arquivo a tag vem incompleta 
</NOTA_</CompNfse>

sendo que ela deveria vir </NOTA_FISCAL></CompNfse> .... Segue anexo o arquivo gerado no Exemplo do ACBr.

Outro fato que não estou conseguindo salvar é o arquivo xml final da NFSe que seria tipo um retorno da lista que fica no formato

<tbnfd>
<nfdok numeronfd="3370">
<NewDataSet>
<NOTA_FISCAL>

Se puderem me orientar qual método usar para salvar essa lista eu agradeço

3518082462213900013556000000000003370-nfse.xml

Postado

Se quiser usar o programa de exemplo nos fontes, vou enviar o ini de condiguração do exemplo que estou usando. O lote é 1 e Protocolo é QMXT-NNZJ

no cidades.ini alterei a cidade de Birigui para o novo servidor:

[3506508]
Nome=Birigui
UF=SP
Provedor=SmaraPD
NomeURL_H=201.49.71.187:8085
NomeURL_P=201.49.71.187:8085

Demo_ACBrNFSe .ini

Postado

Boa tarde Italo,

Uma parte do problema eu resolvi, o fato dele estar gerando o inicio do arquivo com:

<CompNfse> ao invés de <tbnfd><nfdok numeronfd=><NewDataSet>

Resolvi alterando o arquivo INI do servidor de:

[RetornoNFSe]
Texto1=<CompNfse>%DadosNFSe%</CompNfse>

Para:

[RetornoNFSe]
Texto1=<tbnfd><nfdok numeronfd="%NumeroNFSe%"><NewDataSet>%DadosNFSe%</NewDataSet></nfdok></tbnfd>

No entanto na função ExtrairNotasRetorno do ACBrNFSeWebServices o valor do "FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.XML" continua vindo com o final cortado "</NOTA_" conforme nos XML enviados anteriormente, esse problema ainda não consegui resolver.

Mais um detalhe, é que para a linha colocada no INI funcionar eu tive que adicionar um Parametro para o NumeroNFSe, com isso após a chamada da função GerarRetornoNFSe na função ExtrairNotasRetorno do ACBrNFSeWebServices adicionei um StringReplace:
    FRetNFSe := GerarRetornoNFSe(FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.XML);

    FRetNFSe := StringReplace(FRetNFSe, '%NumeroNFSe%', FRetornoNFSe.ListaNFSe.CompNFSe.Items.NFSe.Numero, [rfReplaceAll]);

 

Não sei se é a melhor solução, se coloco um "if (Provedor = proSMARAPD) then " enfim, ainda estou terminando a integração e teste, fiz um outro ajuste no pnfsNFSeW_SMARAPD, assim que eu concluir todos os teste mando as units que alterei para avaliação.

Agora se puder me dar uma luz com relação a esse caso do "</NOTA_" que vem cortado eu agradeço muito.

Postado (editado)

Bom dia Italo,

Após a atualização resolveu o problema no <NOTA_ no entanto agora no inicio e no final do arquivo tivemos um probleminha, ele abriu a tag nfdok uma dentro da outra e fechou ela duas vezes no final, vou debugar aqui ver se encontro onde realizar a correção.


Inicio:  <?xml version="1.0" encoding="UTF-8"?><tbnfd><nfdok <nfdok numeronfd="3370"><NewDataSet><NOTA_FISCAL>

Fim:  </NOTA_FISCAL></NewDataSet></nfdok></nfdok></tbnfd>

 

Mais uma vez obrigado pelo apoio

3518082462213900013556000000000003370-nfse.xml

Editado por aquiniti
Postado

Bom dia Italo,

O problema estava no pnfsLerListaNFSe.pas linha 508... alterei

de:
              if Provedor = proSMARAPD then
                FNFSe.XML := '<nfdok ' + Leitor.Grupo + '</nfdok>';

 

Para:

              if Provedor = proSMARAPD then
                FNFSe.XML := Leitor.Grupo;

 

Agora está funcionando perfeitamente.

Segue o .pas anexo para avaliação.

Muito obrigado pelo auxilio.

pnfsLerListaNFSe.pas

  • Este tópico foi criado há 2298 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.