Ir para conteúdo
  • Cadastre-se

dev botao

Adicionar Novo Provedor (Fiorilli)


abinoan
  • Este tópico foi criado há 2999 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Entendi Italo, mas é por isso mesmo que falei que se colocar StrToIntDef resolvera, afinal nao estariamos mudando nada, so previndo que ocorresse um erro.

Afinal StrtoInt e StrToIntDef fazem a mesma coisa. Nao é verdade? A diferenca é que se alguem nao gerará nenhuma mensagem de erro.

Italo não estou conseguindo consultar por periodo. 

"ConsultarNfseEnvio" nao entendi direito, mas parece que não é reconhecido pelo ABRASF . Será que nao deveriamos utilizar "ConsultarNfseServicoPrestadoEnvio" ? . Modifiquei aqui mas gera um erro de recebimento do XML. 

Link para o comentário
Compartilhar em outros sites

No Demo da NFS-e eu consigo enviar um RPS e fazer, em ato contínuo, a consulta desse RPS e tenho o retorno que foi recebido aguardando o processamento. Ou seja, usar o botão "Gerar e Enviar Lote" e na sequência o botão "Consultar Lote".

 

Mas, se eu fechar tudo, e vou direto na consulta da situação do RPS, botão "Consultar Lote" tenho um erro:

 

"Estrtutura do xml recebido incorreta, java.xml.bind.MarshalException - with linked exception: [org.xml.sax.SAXParseException: cvc-length-valid: value '' with length '14' for type 'tsCnpj'.]

 

Anteriormente, com o mesmo Lote e Protocolo, como disse, fiz a consulta sem erros. Quando tento entrar no Demo e só fazer a consulta acontece essa mensagem.

Link para o comentário
Compartilhar em outros sites

Segue o xml de consulta:

 

<?xml version="1.0" encoding="UTF-8"?>
-<soapenv:Envelope xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:ws="http://ws.issweb.fiorilli.com.br/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/>-<soapenv:Body>-<ws:consultarSituacaoLoteRps>-<ConsultarSituacaoLoteRpsEnvio xmlns="http://www.abrasf.org.br/nfse.xsd">-<Prestador>-<CpfCnpj><Cnpj>01001001000113</Cnpj></CpfCnpj><InscricaoMunicipal>1.000.10</InscricaoMunicipal></Prestador><Protocolo>339</Protocolo></ConsultarSituacaoLoteRpsEnvio><username>01001001000113</username><password>123456</password></ws:consultarSituacaoLoteRps></soapenv:Body></soapenv:Envelope>

E  o xml de retorno:

 

<?xml version="1.0"?>
-<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">-<soap:Body>-<ns3:consultarLoteRpsResponse xmlns:ns4="http://www.w3.org/2000/09/xmldsig#" xmlns:ns3="http://ws.issweb.fiorilli.com.br/" xmlns:ns2="http://www.abrasf.org.br/nfse.xsd">-<ns2:ConsultarLoteRpsResposta><ns2:Situacao>0</ns2:Situacao>-<ns2:ListaMensagemRetorno>-<ns2:MensagemRetorno><ns2:Codigo>L4</ns2:Codigo><ns2:Mensagem>Estrutura do xml recebido incorreta. javax.xml.bind.MarshalException - with linked exception:[org.xml.sax.SAXParseException: cvc-length-valid: Value '' with length = '0' is not facet-valid with respect to length '14' for type 'tsCnpj'.].</ns2:Mensagem><ns2:Correcao>Valide as tags do xml antes de enviar.</ns2:Correcao></ns2:MensagemRetorno></ns2:ListaMensagemRetorno></ns2:ConsultarLoteRpsResposta></ns3:consultarLoteRpsResponse></soap:Body></soap:Envelope>
 
Link para o comentário
Compartilhar em outros sites

Pois é, o CNPJ até tem, com inscrição municipal, número do protocolo, usuário e senha (que estão no manual para homologação). Quando você entra diretamente para consultar o RPS acontece isso, parece que falta o valor do CNPJ para o xml, considerando a resposta dele. 

Link para o comentário
Compartilhar em outros sites

Italo não tou conseguindo gerar corretamento o xML para "ConsultarNfseServicoPrestadoEnvio' segundo a Fiorilli é essa funcao para consultar por periodo.

Sõ que o componente nao informa os dados do tomador. Pode me ajudar ?

Se agente fizer isso ja daria pra comecar a efetivamente comecar a aplicacao.

Link para o comentário
Compartilhar em outros sites

Quando coloquei a Tag <Pagina></Pagina> na unit "pnsfNFSeG" no método "Gera_DadosMsgConsNFSe"  após "'PeriodoEmissao>" ai validou o XML e recebi retorno com as NFSe geradas nesse periodo.

Precisamos saber quais os provedores que precisam dessa TAG além do padrão ABRASF.

A pergunta é. Se cada página vem no maximoi 10 notas, como faremos pra consultar todas no período?

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Abinoan,

 

Na verdade o Tomador é opcional segundo o schema, mas há necessidade de informar uma tag chamada Pagina.

 

Já fiz a alteração, favor atualziar os fontes e testar novamente.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Certo meu amigo. Obrigado. Sem o tomador funcionou. Sem a tag realmente não rodou. 

Agora quando formos consultar um periodo , é certo que teremos varias paginas, mas não sabemos quantas páginas.

Como faremos para consultar todas as NFSe geradas no periodo? Temos como saber qtas paginas temos para consultar?

Link para o comentário
Compartilhar em outros sites

Link para o comentário
Compartilhar em outros sites

  • Consultores

Abinoan,

 

Boa pergunta, veja se você consegue essa resposta com o pessoal do provedor, para que possamos implementar de forma correta no componente.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Consultores

Se o provedor esta OFF acredito que ele não tenha condições nenhuma de retornar nada.

 

Logo deve ser alguma sugeira retornada pelo componente, precisamos melhorar isso.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

- Italo as seguintes mudancas foram realizadas:
 
1) function TProvedorFiorilli.Gera_TagI(Acao: TnfseAcao; Prefixo3, Prefixo4,
  NameSpaceDad, Identificador, URI: String): AnsiString;
begin
 case Acao of
   acRecepcionar: Result := '<' + Prefixo3 + 'EnviarLoteRpsEnvio' + NameSpaceDad;
   acConsSit:     Result := '<' + Prefixo3 + 'ConsultarSituacaoLoteRpsEnvio' + NameSpaceDad;
   acConsLote:    Result := '<' + Prefixo3 + 'ConsultarLoteRpsEnvio' + NameSpaceDad;
   acConsNFSeRps: Result := '<' + Prefixo3 + 'ConsultarNfseRpsEnvio' + NameSpaceDad;
   acConsNFSe:    Result := '<' + Prefixo3 + 'ConsultarNfseServicoPrestadoEnvio' + NameSpaceDad; // ** linha modificada
   acCancelar:    Result := '<' + Prefixo3 + 'CancelarNfseEnvio' + NameSpaceDad +
                             '<' + Prefixo3 + 'Pedido>' +
                              '<' + Prefixo4 + 'InfPedidoCancelamento' +
                                 DFeUtil.SeSenao(Identificador <> '', ' ' + Identificador + '="' + URI + '"', '') + '>';
   acGerar:       Result := '<' + Prefixo3 + 'GerarNfseEnvio' + NameSpaceDad;
   acRecSincrono: Result := '<' + Prefixo3 + 'EnviarLoteRpsSincronoEnvio' + NameSpaceDad;
 end;
end;
 
 
2) function TProvedorFiorilli.Gera_TagF(Acao: TnfseAcao; Prefixo3: String): AnsiString;
begin
 case Acao of
   acRecepcionar: Result := '</' + Prefixo3 + 'EnviarLoteRpsEnvio>';
   acConsSit:     Result := '</' + Prefixo3 + 'ConsultarSituacaoLoteRpsEnvio>';
   acConsLote:    Result := '</' + Prefixo3 + 'ConsultarLoteRpsEnvio>';
   acConsNFSeRps: Result := '</' + Prefixo3 + 'ConsultarNfseRpsEnvio>';
   acConsNFSe:    Result := '</' + Prefixo3 + 'ConsultarNfseServicoPrestadoEnvio>'; // *** essa linha foi modificada
   acCancelar:    Result := '</' + Prefixo3 + 'Pedido>' +
                            '</' + Prefixo3 + 'CancelarNfseEnvio>';
   acGerar:       Result := '</' + Prefixo3 + 'GerarNfseEnvio>';
   acRecSincrono: Result := '</' + Prefixo3 + 'EnviarLoteRpsSincronoEnvio>';
 end;
end;
 
3) function TProvedorFiorilli.GeraEnvelopeConsultarNFSe ficou assim:
 result := '<?xml version="1.0" encoding="utf-8"?>'+
           '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" '+
                             'xmlns:ws="http://ws.issweb.fiorilli.com.br/" '+
                             'xmlns:xd="http://www.w3.org/2000/09/xmldsig#"> ' +
           '<soapenv:Header/>' +
              '<soapenv:Body>' +
                '<ws:consultarNfseServicoPrestado>' +   // **** essa linha modificada
                    DadosMsg +
                    DadosSenha +
                 '</ws:consultarNfseServicoPrestado>' +  // **** essa linha modificada
              '</soapenv:Body>' +
           '</soapenv:Envelope>';
 
4) function TProvedorFiorilli.GetSoapAction(Acao: TnfseAcao; NomeCidade: String): String;
const
begin
 case Acao of
   acRecepcionar: Result := urlsoap + 'recepcionarLoteRps';
   acConsSit:     Result := urlsoap + 'consultarSituacaoLoteRps';
   acConsLote:    Result := urlsoap + 'consultarLoteRps';
   acConsNFSeRps: Result := urlsoap + 'consultarNfsePorRps';
   acConsNFSe:    Result := urlsoap + 'consultarNfseServicoPrestado'; // **** essa linha modificada
   acCancelar:    Result := urlsoap + 'cancelarNfse';
   acGerar:       Result := urlsoap + 'gerarNfse';
   acRecSincrono: Result := urlsoap + 'recepcionarLoteRpsSincrono';
 end;

 

Foi estado e funcionando. 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Abinoan,

 

Muito obrigado pela colaboração.

 

Fontes corrigidos e disponibilizados.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Boa tarde.

 

Italo enviei pro seu email a informacao que o pessoal da FIORILLI me enviou em relacao a quantidade de paginas.

Na verdade vou enviar pra vc novamente o anexo da lista de NFe.

Se você olhar bem , verá que no fim do xml tem uma TAG chamada "PROXIMAPAGINA". Se ela for maior que a pagina enviada para consulta é sinal que teremos que fazer outra consulta com o numero da outra pagina. Vou enviar pro seu email a copia do XML.

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Abinoan,

 

Recebi o seu e-mail, e já providenciei as alterações no componente.

 

Agora ao realizar uma Consulta de NFSe vai ser possível informar o numero da página, informação esta necessária para realizar a consulta quando o provedor for Fiorilli e fintelISS.

 

A sintaxe da função agora é:

 

    function ConsultarNFSe(ACnpj, AInscricaoMunicipal: String; 

                                           ADataInicial, ADataFinal: TDateTime;

                                           NumeroNFSe: String = '';
                                           APagina: Integer = 1): Boolean;

 

 

Favor atualizar os fontes e testar.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Bom dia, estava com dificuldades para fazer a consulta do RPS, mas agora está blz. Na verdade, faltava a informação do CNPJ e IM. 

 

Agora, tem alguém que pode me ajudar no seguinte: Preciso gravar a data e número do protocolo em meu banco de dados. Como posso fazer?

 

Abs,

Link para o comentário
Compartilhar em outros sites

Italojr, no código abaixo, precisei acrescentar o provedor Fiorilli para que funcionasse corretamente.

 

function TWebServices.Envia(ALote: String): Boolean;
begin
 self.Enviar.FNumeroLote := ALote;


 Result := Self.Enviar.Executar;


 if not (Result)
  then begin
   if Assigned(TACBrNFSe( FACBrNFSe ).OnGerarLog)
    then TACBrNFSe( FACBrNFSe ).OnGerarLog(Self.Enviar.Msg);
   if Self.Enviar.Msg <> ''
    then raise Exception.Create(Self.Enviar.Msg)
    else raise Exception.Create('Erro Desconhecido!')
  end;


 if (TACBrNFSe( FACBrNFSe ).Configuracoes.WebServices.ConsultaLoteAposEnvio) and (Result) then
 begin
   Self.ConsSitLote.Cnpj               := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.Prestador.Cnpj;
   Self.ConsSitLote.InscricaoMunicipal := TACBrNFSe( FACBrNFSe ).NotasFiscais.Items[0].NFSe.Prestador.InscricaoMunicipal;
   Self.ConsSitLote.Protocolo          := Self.Enviar.Protocolo;


   Self.ConsLote.Protocolo := Self.Enviar.Protocolo;


   if not (TACBrNFSe( FACBrNFSe ).Configuracoes.WebServices.Provedor in [profintelISS, proSaatri, proISSDigital, proFiorilli])
    then begin
     Result := Self.ConsSitLote.Executar;


     if not (Result)
      then begin
       if Assigned(TACBrNFSe( FACBrNFSe ).OnGerarLog)
        then TACBrNFSe( FACBrNFSe ).OnGerarLog(Self.ConsSitLote.Msg);
       raise Exception.Create(Self.ConsSitLote.Msg);
      end;
    end;


   Result := Self.ConsLote.Executar;


   if not (Result)
    then begin
     if Assigned(TACBrNFSe( FACBrNFSe ).OnGerarLog)
      then TACBrNFSe( FACBrNFSe ).OnGerarLog(Self.ConsLote.Msg);
     raise Exception.Create(Self.ConsLote.Msg);
    end;
 end;
end;

Acho interessante que, depois de análise, seja definido para o componente definitivamente.

 

Abs,

 

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Carlos,

 

Estranho, o provedor Fiorilli, não possui o webservice para consultar a situação do lote?

 

Pois acrescentando o proFiorilli na lista como você fez ele deixa de consultar a situação do lote.

 

Você tentou usar o EnviarSincrono em vez do Enviar?

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

Pelo método enviar:

 

Mensagem:

"Numero do Lote: 100

Recebimento: 16/07/2013 11:13:30

Protocolo: 350

Provedor: Fiorilli"

 

Logo depois, o componente dispara uma consulta:

"Código Erro: E178

Mensagem: Lote aguardando processamento

Correção: O lote de RPS correspondente ao protocolo informado foi recebido pela Prefeitura, mas ainda não foi processado.

Provedor: Fiorilli"

 

Caso eu não usar o nome do provedor naquele IF tenho um erro durante a consulta e o sistema interrompe nesse erro.

 

Para completar, nessa mesma situação, já tive um retorno do provedor no dia posterior, com a validação do RPS, inclusive com os erros que deveriam ser corrigidos no RPS.

 

Pelo metodo EnviaSincrono tenho uma mensagem dizendo que a estrutura do XML não está correta, para validar as tags, etc...

 

Abs,

Link para o comentário
Compartilhar em outros sites

  • Consultores

Boa tarde Carlos,

 

Alteração realizada, favor atualizar os fontes e testar.

Consultor SAC ACBr

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

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