Ir para conteúdo
  • Cadastre-se

everson.turossi

Membros
  • Total de ítens

    183
  • Registro em

  • Última visita

Tudo que everson.turossi postou

  1. Webservice de Consulta de Cadastro para MG já está disponível na versão 4.0. Foi necessário adicionar as URLs no arquivo ACBrNFeServicos.ini e também ajuste na unit ACBrNFeWebServices.pas ACBrNFeServicos.ini ACBrNFeWebServices.pas
  2. Webservice de consulta de cadastro versão 4.00 para MG funcionando. Em caso de exceção por Timeout, aumentar o tempo consideravelmente. ACBrNFeServicos.ini ACBrNFeWebServices.pas
  3. Instabilidade no Source Forge, é raro acontecer mas acontece. Ou talvez problema de rota, tenta alterar o DNS. Aqui está está funcionando normalmente.
  4. Reinstala os drivers e aplicação da leitora, de alguma forma não está conseguindo ler os dados da chave privada no cartão. Consulta de Status e Situação do Documento utilizam apenas a chave publica do certificado e por esse motivo funciona. Já quando vai autorizar ou enviar algum evento aonde é necessário fazer a assinatura do documento ai ele vai disparar essa exception caso ele não consiga ler os dados do cartão, que pode ser ausência do cartão, cartão não inserido corretamente, leitora desconectada da porta usb, leitora não funcionando corretamente, e comigo já aconteceu no passado de a leitora só funcionar corretamente na porta usb na qual foi instalada, quando tentava plugar em outra porta usb não reconhecia, tinha que usar sempre na mesma porta usb na qual havia feito a instalação.
  5. var LDocZip: TdocZipCollectionItem; begin {...} for I := 0 to Pred(ACBrCTe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count) do begin LDocZip := ACBrCTe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[I]; XML := LDocZip.XML; if (LDocZip.schema = schprocCTe) then begin ChaveAcesso := LDocZip.resCTe.chCTe; CnpjEmitente := LDocZip.resCTe.CNPJCPF; NomeEmitente := LDocZip.resCTe.xNome; ValorDocumento := LDocZip.resCTe.vNF; {...} end; if (LDocZip.schema = schprocEventoCTe) then begin { evento como cancelamento } ChaveAcesso := LDocZip.procEvento.chCTe; CnpjEmitente := LDocZip.procEvento.CNPJ; DataEvento := LDocZip.procEvento.dhEvento; Descricao := TpEventoToStr(LDocZip.procEvento.tpEvento) + ' - ' + LDocZip.procEvento.detEvento.descEvento; {...} end; end; Componente já faz tudo, segue um exemplo de como acessar os dados após a consulta.
  6. Tenta assim: var I: integer; begin ACBrNFe1.SSL.ListaCertificados.Clear; ACBrNFe1.SSL.LerCertificadosStore; For I := 0 to ACBrNFe1.SSL.ListaCertificados.Count-1 do begin LOG.Lines.Add('Encontrado!'); LOG.Lines.Add(ACBrMDFe1.SSL.ListaCertificados[I].CNPJ); end; end;
  7. Segue exemplo de código para pra listar as notas. Algumas partes do código foram omitidas. procedure Consultar({ ... }); var I: Integer; LDocumento: TDFeDocumento; { Objeto interno do Sistema } LDocZip: TdocZipCollectionItem; begin ACBrNFe.DistribuicaoDFe(UF, CNPJ, UltimoNSURecebido, '') ; for I := 0 to Pred(ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip.Count) do begin LDocZip := ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.docZip[I]; LDocumento := TDFeDocumento.Create; if (LDocZip.schema in [schprocNFe, schresNFe]) then begin { schresNFe = nota resumida / schprocNFe = nota completa } LDocumento.ChaveAcesso := LDocZip.resNFe.chNFe; LDocumento.CnpjEmitente := LDocZip.resNFe.CNPJCPF; LDocumento.NomeEmitente := LDocZip.resNFe.xNome; LDocumento.DataEmissao := LDocZip.resNFe.dhRecbto; LDocumento.ValorDocumento := LDocZip.resNFe.vNF; LDocumento.NSU := StrToInt(LDocZip.NSU); LDocumento.XML := LDocZip.XML; case LDocZip.resNFe.tpNF of tnEntrada: LDocumento.TipoOperacao := toEntrada; tnSaida: LDocumento.TipoOperacao := toSaida; end; end; if (LDocZip.schema = schprocEventoNFe) then begin { evento como cancelamento } LDocumento.ChaveAcesso := LDocZip.procEvento.chNFe; LDocumento.CnpjEmitente := LDocZip.procEvento.CNPJ; LDocumento.DataEmissao := LDocZip.procEvento.dhEvento; LDocumento.Descricao := TpEventoToStr(LDocZip.procEvento.tpEvento) + ' - ' + LDocZip.procEvento.detEvento.descEvento; { ... } end; if (LDocZip.schema = schresEvento) then begin { evento de MDF-e e outros } LDocumento.ChaveAcesso := LDocZip.resEvento.chNFe; LDocumento.CnpjEmitente := LDocZip.resEvento.CNPJCPF; LDocumento.XML := LDocZip.XML; LDocumento.Descricao := TpEventoToStr(LDocZip.resEvento.tpEvento) + ' - ' + LDocZip.resEvento.xEvento; { ... } end; Documentos.Add(LDocumento); { lista dos documentos retornados na consulta, pode ser visualizado em um grid} end; UltimoNSUrecebido := StrToIntDef(ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.ultNSU, 0); MaiorNSUexistente := StrToIntDef(ACBrNFe.WebServices.DistribuicaoDFe.retDistDFeInt.maxNSU, 0); end;
  8. Cada provedor tem suas particularidades. Já implementei Betha e Equiplano. Aqui eu faço isso através do método de ConsultaNFSeporRps. Não posso lhe afirmar que todos os provedores implementem essa consulta, mas como o Número e Série do RPS são de seu conhecimento, seria uma alternativa. Dependendo do provedor, talvez se faça necessário ajustes na leitura do XML quando utilizado essa forma de consulta. Segue um exemplo de código: ACBrNFSe.WebServices.ConsultaNFSeporRps(RPSNumero, RPSSerie, TipoRPSToStr(trRPS)); if (ACBrNFSe.NotasFiscais.Items[0].NFSe.Status = srNormal) then begin CodigoVerificacao := ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao; NumeroAutorizado := StrToIntDef(ACBrNFSe.NotasFiscais.Items[0].NFSe.Numero, 0); { ... } end; if (ACBrNFSe.NotasFiscais.Items[0].NFSe.Status = srCancelado) then begin { ... } end; Repare que o item está fixado em 0, pois faço emissão de apenas uma NFSe por vez. Existe um outro porém, para o provedor Equiplano, apesar de ser possível a utilização de mais de uma Série de RPS ao mesmo tempo, na consulta está sendo desconsiderado a série. A consulta é feita usando como parâmetro apenas o Número do RPS, então se existir duplicidades de Número de RPS mesmo com séries diferentes, teremos um problema. Tenta fazer um teste com o próprio ConsultarLoteRps no lugar do ConsultaNFSeporRps ali do meu exemplo, os dados devem retornar exatamente os mesmos.
  9. A situação não é tão simples assim. A grosso modo, a diferença entre o A1 e A3 é onde é armazenada a chave privada que e usada para operações onde existe a necessidade de fazer assinatura do documento, como por exemplo na autorização ou cancelamento. Para operações como Consulta da Situação da NF-e ou Consulta Status do webservice é usada chave publica do certificado. No certificado A3, a chave privada fica armazenada somente no dispositivo (cartão) e de todos os modelos que já trabalhei, existe a necessidade de digitar o PIN para ter acesso ao cartão e então fazer a leitura da chave. O porém é que alguns modelos de A3 quando desconectados fazem com que o certificado desapareça da lista de certificados instalados. Já em outros modelos o certificado continua aparecendo normalmente mesmo com o cartão fora da leitora, a única diferença nesse caso é que quando invocado alguma operação que vai assinar o documento, ele vai recorrer ao dispositivo para obter a chave privada e se o cartão não estiver na leitora dispara uma exception falando que não conseguiu ter acesso a chave.
  10. Foram disponibilizadas as URLs para consulta de cadastro versão 4.00 para MG em http://www.sped.fazenda.mg.gov.br/spedmg/nfe/webservices/ Porém ao efetuar a consulta retorna o seguinte XML: <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"><soap:Body><soap:Fault><soap:Code><soap:Value>soap:Receiver</soap:Value></soap:Code><soap:Reason><soap:Text xml:lang="en">Fault occurred while processing.</soap:Text></soap:Reason></soap:Fault></soap:Body></soap:Envelope> Se alterar para versão 3.10 retorna os dados da consulta corretamente ainda.
  11. https://www.projetoacbr.com.br/forum/topic/34177-acbrdfe-openssl-e-tls12/
  12. Não faço nada disso, mas poderia me explicar o motivo desse procedimento?
  13. Infelizmente o protocolo retorna apenas na mensagem: Ja existe pedido de Inutilizacao com a mesma faixa de inutilizacao. [nProt:141180000698235] do cStat 563
  14. Implementei justamente para Ibiporã, vou procurar um XML e anexo
  15. Acredito que minha informação seja redundante, também concordo que deveria existir alguma forma de fazer essa consulta via webservice. Para tratar essa questão, quando tento inutilizar uma numeração já inutilizada, retorna o cStat 563 (Rejeicao: Ja existe pedido de Inutilizacao com a mesma faixa de inutilizacao). Vou conferir aqui se nesse momento o protocolo que retorna em ACBrNFe.WebServices.Inutilizacao.Protocolo é o protocolo efetivo da inutilização, pois fiz isso a um bom tempo e não estou lembrado.
  16. Infelizmente não existe webservice para isso, a única forma é acessando o portal da NF-e http://www.nfe.fazenda.gov.br/portal/principal.aspx e lá encontrará a opção Consultar Inutilização
  17. Essa estação deve ter instalada aqueles sistemas de proteção usados pra acessar sistemas bancários. Já vi tópicos no fórum reclamando desse mesmo problema na hora de acessar o certificado.
  18. Aqui eu faço baseado no RPS: ACBrNFSe.WebServices.ConsultaNFSeporRps(FNotaFiscal.RPS.Numero.ToString, FNotaFiscal.RPS.Serie, TipoRPSToStr(trRPS));
  19. Testei aqui, infelizmente continuo recebendo o erro de NFS-e ja cancelada. Já tive muitos problemas com provedores de NFS-e, a solução encontrada pra resolver a maioria das situações foi fazer da consulta de situação da nota e após isso fazer a verificação se o status dela no webservice coincide com o status dela no sistema. Em caso de divergências, atualizar ela no sistema de acordo com o webservice.
  20. Abre o xml de retorno do cancelamento, a mensagem do print provavelmente esteja lá, nesse caso dai é erro interno do provedor. Eu recebia erro semelhante quando tentava passar uma série que não era numérica. Mas vou fazer um teste aqui pra ver se voltou a cancelar.
  21. Acessa o ambiente de testes e verifica se realmente estão canceladas lá. https://www.esnfs.com.br:9443/
  22. Não estou conseguindo fazer o cancelamento, pra mim está retornando erro "NFS-e já cancelada". Esse erro começou a aparecer recentemente, mas quando implementei, cancelava normalmente. Quanto a emails tanto de autorização quanto cancelamento aqui pra mim quem manda é o próprio provedor. Inclusive se eu não informar um email válido, pra mim nem autoriza a nota. Toda via, pode ser uma configuração definida por cidade.
  23. Eu até ia responder que não (sou usuário do Firefox), mas por desencargo de consciência fui testar no Edge e no Chrome e realmente apareceu a tela de seleção de certificado, mas mesmo cancelando abre a visualização (em homologação)
  24. O link eu mesmo gero, quando implementei no passado NFS-e para o provedor Betha não lembro se já existia essa opção, mas acabei de conferir aqui, ajustei o arquivo ini do provedor e vou submeter. Pode utilizar a função ACBrNFSe.LinkNFSe(....); passando como parametro o FACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao Equiplano.ini
×
×
  • 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.