Ir para conteúdo
  • Cadastre-se

Renato Rubinho

Consultores
  • Total de ítens

    3.830
  • Registro em

  • Última visita

  • Days Won

    66

Tudo que Renato Rubinho postou

  1. Boa noite, Cola o print do programa de exemplo com o retorno do envio. Aparentemente este provedor devolve as mensagens na lista de erros, no campo descrição. procedure TACBrNFSeProviderABRASFv1.ProcessarMensagemErros(RootNode: TACBrXmlNode; Response: TNFSeWebserviceResponse; const AListTag, AMessageTag: string); . . . for I := Low(ANodeArray) to High(ANodeArray) do begin Mensagem := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Mensagem'), tcStr); if Mensagem <> '' then begin AErro := Response.Erros.New; AErro.Codigo := ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Codigo'), tcStr); AErro.Descricao := ACBrStr(Mensagem); AErro.Correcao := ACBrStr(ObterConteudoTag(ANodeArray[I].Childrens.FindAnyNs('Correcao'), tcStr)); end; end;
  2. Boa tarde, Por isso indiquei a alteração que você fez, mas aparentemente foi rejeitada pelo provedor. Entre em contato com o provedor e passe o soap gerado com a tag para analisarem porque foi rejeitado.
  3. Boa tarde, O provedor pode não ter implementado a propriedade OutrasInformacoes para o webservice. A nota impressa que você pegou pode ter sido emitida pelo site do provedor, que por sua vez pode ter implementado esta propriedade apenas via site. Confirme com o provedor se é possível utilizá-la via webservice.
  4. Boa tarde, Veja as opções em OptionsView da TableView, não encontrei essa opção. Tenho aqui uma versão antiga do cxGrid e pode ter mudado algo, mas existe a opção ShowColumnFilterButtons que parece atender ao que você precisa.
  5. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  6. Boa noite, Altere o arquivo a seguir, preenchendo: NrOcorrOutrasInformacoes := 0; Quer dizer que a tag será gerada apenas quando a propriedade for preenchida. Após a alteração, reinstale os componentes, marcando a opção para remover arquivos anteriores. Coloque um ponto de parada no local e confirme se o valor foi considerado. Veja se após essa alteração, a tag foi gerada. ../trunk2/Fontes/ACBrDFe/ACBrNFSeX/Provedores/Fiorilli.GravarXml.pas procedure TNFSeW_Fiorilli200.Configuracao; begin inherited Configuracao; FormatoCompetencia := tcDat; NrOcorrCodigoPaisTomador := -1; NrOcorrOutrasInformacoes := 0; end;
  7. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  8. Boa noite, Seguindo no exemplo do ValorCofins, se ao debugar a propriedade Servico.Valores.ValorCofins, ela possui valor e não foi gerada a tag no XML, seus fontes não estão atualizados. Debugando o trecho que destaquei no tópico anterior, se o NrOcorrValorCofins não for 1 é mais um indício dos fontes desatualizados ou não foram reinstalados após a atualização. Atualize os fontes, reinstale os componentes e confirme os dois pontos acima.
  9. Boa noite, Deixe as duas propriedades a seguir em branco. NFSe.Tomador.IdentificacaoTomador.CpfCnpj NFSe.Tomador.IdentificacaoTomador.InscricaoMunicipal Comparando os xmls, o dito como correto não possui o grupo IdentificacaoTomador Olhando o fonte do ABRASF2, ao deixar essas duas propriedades em branco, o grupo não é gerado. ../trunk2/Fontes/ACBrDFe/ACBrNFSeX/Base/Provedores/ACBrNFSeXGravarXml_ABRASFv2.pas function TNFSeW_ABRASFv2.GerarTomador: TACBrXmlNode; . . . if (NFSe.Tomador.IdentificacaoTomador.CpfCnpj <> '') or (NFSe.Tomador.IdentificacaoTomador.InscricaoMunicipal <> '') then Result.AppendChild(GerarIdentificacaoTomador);
  10. Não tem como. O link é um acesso ao documento emitido pelo provedor. Acesse o link recebido para ver como ele é disponibilizado.
  11. Abra o XML que você anexou no primeiro post que vai ficar mais claro. Este provedor não devolve o XML da NFSe, somente essas poucas informações que constam no XML. O componente não gera XML da NFSe, o provedor que tem que devolver. Alguns provedores não devolvem o XML, como é o caso deste, com isso, não tem XML para o componente. Veja que ele disponibiliza o link para o PDF do DANFSe, você pega esse link e abre ou armazena para seu cliente emitir quando quiser.
  12. Boa tarde, Teste com o programa de exemplo e veja se ocorre a mesma situação. Veja que no tratamento do retorno, a rotina alimenta os valores na nota localizada pelo número do RPS. procedure TACBrNFSeProviderISSGoiania200.TratarRetornoEmitir( Response: TNFSeEmiteResponse); . . . ANota := TACBrNFSeX(FAOwner).NotasFiscais.FindByRps(NumRps); ANota := CarregarXmlNfse(ANota, ANode.OuterXml); SalvarXmlNfse(ANota); Se este problema acontecer apenas na sua aplicação, veja se falta limpar o componente antes do envio (ACBrNFSeX1.NotasFiscais.Clear) ou se você está adicionando um item a mais.
  13. Boa tarde Adhelmar, Desmarque o checkbox "Consultar lote após o envio", no programa de exemplo. Envie uma nova NFSe e veja o retorno apenas com dados da emissão. Debugue o ChecarResposta para entender os campos alimentados no trecho que comentei.
  14. Bom dia Adhelmar, Vamos lá, não sei se eu não estou entendendo sua dúvida ou você não está entendendo minha explicação. Mais uma coisa, este provedor não possui o método para consultar o lote. Veja os métodos existentes. TACBrNFSeXWebserviceSiappa = class(TACBrNFSeXWebserviceSoap11) public function RecepcionarSincrono(ACabecalho, AMSG: String): string; override; function ConsultarNFSe(ACabecalho, AMSG: String): string; override; function Cancelar(ACabecalho, AMSG: String): string; override; function GerarToken(ACabecalho, AMSG: String): string; override; function TratarXmlRetornado(const aXML: string): string; override; end; 1. Caso necessário, tente usar o método ConsultarNFSe para buscar os dados que não armazenou no envio. * Em tese isso não é necessário, pois o retorno da emissão já possui as mesmas informações. 2. No retorno do seu envio está trazendo os dados que este provedor retorna: número da nota, data, link e código de verificação. * O provedor não devolve mais nenhuma informação, nem XML da NFSe. 3. Não pegue os dados das propriedades a seguir no retorno da emissão para este provedor: ACBrNFSeX1.NotasFiscais.Items[i].NFSe e for i := 0 to ACBrNFSeX1.NotasFiscais.Count -1 do 3.1. Debugue o ChecarResposta no trecho a seguir para entender como pegar as informações possíveis deste provedor, que destaquei no print do item 2 deste post e a seguir no fonte que alimenta as propriedades. Obs: apaguei o XML de envio, do seu primeiro post, pois continha dados sensíveis de autenticação no provedor.
  15. Não existe XML da NFSe neste provedor. Como não tem XML de NFSe, os dados da NFSe não serão preenchidos. Como você viu na procedure TratarRetornoEmitir, as propriedades preenchidas são outras, conforme o trecho que destaquei no post anterior. O programa de exemplo serve para demonstrar um cenário geral de todos os provedores. Alguns provedores devolvem os dados da NFSe, outros não, por isso esses dados estão em branco neste provedor. Debugue novamente o programa de exemplo e veja o trecho que destaquei na ChecarResposta para entender os campos alimentados.
  16. Tente preencher 99999999 ou 0000000 Existe um impasse que provavelmente precisará ver com o provedor, pois: * Se você não preenche o documento pedem para preencher zeros. * Se preencher zeros, pedem para não preencher * Tente preencher 14 zeros ao invés de 11, por desencargo
  17. Boa tarde, Veja no XML de retorno, este provedor não devolve o XML da NFSe, com isso não será salvo na pasta. Segue o tratamento do retorno deste provedor para a emissão, coloque um ponto de parada nele para análise. Entre outras coisas, preenche o número da nota recebido na propriedade NumeroNota do Response. ../trunk2/Fontes/ACBrDFe/ACBrNFSeX/Provedores/Siappa.Provider.pas procedure TACBrNFSeProviderSiappa.TratarRetornoEmitir(Response: TNFSeEmiteResponse); . . . if AuxNode <> nil then begin with Response do begin xSucesso := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('ws_001_out_status_retorno'), tcStr); Sucesso := (xSucesso = 'S'); NumeroNota := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('ws_001_out_nfse_numero'), tcStr); Data := EncodeDataHora( ObterConteudoTag(AuxNode.Childrens.FindAnyNs('ws_001_out_nfse_data_hora'), tcStr), 'DD/MM/YYYY HH:NN:SS' ); CodigoVerificacao := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('ws_001_out_nfse_cod_validacao'), tcStr); Link := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('ws_001_out_nfse_url_emissao'), tcStr); end; end; Veja no programa de exemplo como pegar essas informações. procedure TfrmACBrNFSe.ChecarResposta(aMetodo: TMetodo); . . . with ACBrNFSeX1.WebService do begin case aMetodo of tmRecepcionar, tmTeste: begin with Emite do begin memoLog.Lines.Add('M�todo Executado: ' + ModoEnvioToStr(ModoEnvio)); memoLog.Lines.Add(' '); memoLog.Lines.Add('Par�metros de Envio'); memoLog.Lines.Add('Numero do Lote: ' + NumeroLote); memoLog.Lines.Add(' '); memoLog.Lines.Add('Par�metros de Retorno'); memoLog.Lines.Add('Data de Envio : ' + DateToStr(Data)); memoLog.Lines.Add('Numero do Prot: ' + Protocolo); memoLog.Lines.Add('Numero da Nota: ' + NumeroNota); memoLog.Lines.Add('Link : ' + Link); memoLog.Lines.Add('C�digo Verif. : ' + CodigoVerificacao); memoLog.Lines.Add('Sucesso : ' + BoolToStr(Sucesso, True)); LoadXML(XmlEnvio, WBXmlEnvio, 'temp1.xml');
  18. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  19. Só mais um detalhe. É recomendável que use sempre a LibXml2 ao invés de MsXml, não tem relação com este seu problema específico, mas a msXml está depreciada e pode causar problemas no certificado A3.
  20. Boa noite, Coloque um ponto de parada no tratamento do retorno e veja se consegue identificar o motivo da propriedade não estar preenchida. ../trunk2/Fontes/ACBrDFe/ACBrNFSeX/Provedores/ISSGoiania.Provider.pas procedure TACBrNFSeProviderISSGoiania200.TratarRetornoEmitir( Response: TNFSeEmiteResponse); var Document: TACBrXmlDocument; AErro: TNFSeEventoCollectionItem; ANode, AuxNode: TACBrXmlNode; ANodeArray: TACBrXmlNodeArray; NumRps: String; ANota: TNotaFiscal; I: Integer; begin Document := TACBrXmlDocument.Create; . . . for I := Low(ANodeArray) to High(ANodeArray) do begin ANode := ANodeArray[I]; AuxNode := ANode.Childrens.FindAnyNs('Nfse'); if not Assigned(AuxNode) or (AuxNode = nil) then Exit; AuxNode := AuxNode.Childrens.FindAnyNs('InfNfse'); if not Assigned(AuxNode) or (AuxNode = nil) then Exit; with Response do begin NumeroNota := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('Numero'), tcStr); CodigoVerificacao := ObterConteudoTag(AuxNode.Childrens.FindAnyNs('CodigoVerificacao'), tcStr); end; Teste também se o método ConsultaNFSeporRps retorna o código de verificação.
  21. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  22. Obrigado por reportar. Fechando. Para novas dúvidas, criar um novo tópico.
  23. Boa noite, NFe em contingência em produção só funciona quando habilitado pela Sefaz e mostram no portal. No momento está desativada. http://www.nfe.fazenda.gov.br/portal/principal.aspx Lentidão e queda no envio para PE pode ser problema na autorizadora, caso ainda não esteja assim, tente colocar o timeout acima de 30k. Confirme se está utilizando SSLType com tls1.2.
  24. Tópico movido para a área do SAC, para que o SLA de respostas seja considerado No tópico relacionado acima existe um fonte com um exemplo de ajuste. Consegue gerar um arquivo e validar no banco com as posições em branco? Tente cobrar o banco se existe um manual com essas informações atualizadas.
  25. Boa noite, Utilize o método GerarToken. Veja no programa de exemplo, na aba Outros.
×
×
  • 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.