Ir para conteúdo
  • Cadastre-se

jonatan.souza

Membros
  • Total de ítens

    83
  • Registro em

  • Última visita

Tudo que jonatan.souza postou

  1. Amigo tenta esta rotina : if FmPrincipal.OpenDialog.Execute then begin Try ACBrNFe1.NotasFiscais.Clear; ACBrNFe1.NotasFiscais.LoadFromFile(FmPrincipal.OpenDialog.FileName); ACBrNFe1.Consultar; except MensagemPerso(ACBrNFe1.WebServices.Consulta.XMotivo,exclamacao); end; ShowMessage(ACBrNFe1.WebServices.Consulta.Protocolo); end;
  2. Di nada meu amigo, precisando estamos aí.
  3. Amigo eu criei esta função, talvez te ajude : Function ExpirarCertificadoDigital( numero_certificado : String) : Boolean; var i : Integer; CertStore : IStore3; CertStoreMem : IStore3; PrivateKey : IPrivateKey; Certs : ICertificates2; Cert : ICertificate2; numce : String; dias : Real; acho : Boolean; begin Result := True; Frm_DM.QR_Config.Open; numce := numero_certificado; CertStoreMem := Nil; If CertStoreMem = NIL then begin CertStore := CoStore.Create; CertStore.Open(CAPICOM_CURRENT_USER_STORE, 'My', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); CertStoreMem := CoStore.Create; CertStoreMem.Open(CAPICOM_MEMORY_STORE, 'Memoria', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED); Certs := CertStore.Certificates as ICertificates2; acho := false; For I := 1 to Certs.Count do Begin Cert := IInterface(Certs.Item) as ICertificate2; if numce = Cert.SerialNumber then begin dias := Cert.ValidToDate - Date; acho := True; Break; end; end; if not acho then Result := True else if dias <= 0 then begin Result := False; MensagemPerso(' Certificado Dígital Exprirado em '+FormatDateTime('dd/mm/yyyy',Cert.ValidToDate),erro); end else if dias <= 15 then begin Result := True; MensagemPerso(' ***** ATENÇÃO ***** '#13'Falta '+FloatToStr(dias)+' dia(s) para expirar o Certificado Dígital !'#13'Data para Expirar : '+FormatDateTime('dd/mm/yyyy',Cert.ValidToDate),exclamacao); end else Result := True; end; end;
  4. eu digitei errado e siare o link e https://www2.fazenda.mg.gov.br/sol/
  5. Amigo, vc tem que pedir para a contadora do seu cliente liberar a NFE no site do ciara.
  6. PROBLEMA RESOLVIDO. Vai no Internet Explorer > Ferramentas > Opções da Internet > Avançadas Agora nas últimas linha tem as opções : Verificar revogação de certificados do servidor* deixa desmarcado Verificar se há certificados revogados do editor deixa desmarcado Depoi e só da ok e pronto.
  7. Já instalou a cadeia de certificado de mg em http://portalnfe.fazenda.mg.gov.br/web_services.html "Download da Cadeia de Certificação da SEFAZ/MG"
  8. Esta ocorrendo algum erro ? qual ? Pois comigo funciona normalmente, no caso A1 e só vc importar com Internet Explorer.
  9. Eu já peguei este problema com o certificado ca caixa. E o seguinte tem um gerenciador da caixa, abrir ele exporta o certificado para alguma pasta, depois desistale este gerenciador caixa e importa o certificado pelo internet explorer. Ai não vai mais pedir senha.
  10. Boa noite amigos, Tem muita gente que perder o retorno da SEFAZ e fica meio perdido, pois o DANFE só fica impresso "NÃO AUTORIZADO"ou algo assim. Primeira coisa alterar a Unit ACBrNFeWebServices na function TNFeRecepcao.Executar: Boolean; faça : -------------------------------------------------------------------- Cria a linha em negrito antes do comando aMsg := , conforme abaixo : if not DirectoryExists(ExtractFilePath(Application.ExeName) +'\XML\') then ForceDirectories(ExtractFilePath(Application.ExeName) +'\XML\'); TACBrNFe( FACBrNF e ).NotasFiscais.Items[0].SaveToFile( ExtractFilePath(Application.ExeName) +'\XML\'+ TACBrNFe( FACBrNFe ).NotasFiscais.Items[0].NFe.infNFe.ID+'-nfe.xml' , True); end;; aMsg := //'Versão Leiaute : '+NFeRetorno.Versao+LineBreak+ 'Ambiente : '+TpAmbToStr(NFeRetorno.TpAmb)+LineBreak+ 'Versão Aplicativo : '+NFeRetorno.verAplic+LineBreak+ 'Status Código : '+IntToStr(NFeRetorno.cStat)+LineBreak+ 'Status Descrição : '+NFeRetorno.xMotivo+LineBreak+ 'UF : '+CodigoParaUF(NFeRetorno.cUF)+LineBreak+ 'Recibo : '+NFeRetorno.infRec.nRec+LineBreak+ 'Recebimento : '+NotaUtil.SeSenao(NFeRetorno.InfRec.dhRecbto = 0, '', DateTimeToStr(NFeRetorno.InfRec.dhRecbto))+LineBreak+ 'Tempo Médio : '+IntToStr(NFeRetorno.InfRec.TMed)+LineBreak; -------------------------------------------------------------------- Beleza, agora toda vez que vc enviar um NFe ele vai gravar o XML completo, MAIS sem o número do protocolo, agora vamos a segunda parte : Criar esta função, function Retorno( chave, data_emis : String ) : Boolean; // Chave de acesso e a data de emissão da nota var TXM, NXM: TStringList; begin Result := False; TXM := TStringList.Create; { Para carregar o xml gravado, de acordo com os comandos criado acima } NXM := TStringList.Create; { Vai ser o novo XML com o protocolo } If FileExists(ExtractFilePath(Application.ExeName)+'\XML\NFe'+TrazNumero(chave)+'-nfe.xml') then { se exitir o xml no diretorio } TXM.LoadFromFile(ExtractFilePath(Application.ExeName)+'\XML\NFe'+TrazNumero(chave)+'-nfe.xml') else begin { coloque a sua mensagem para o usuario } exit; end; Acbr.WebServices.Consulta.NFeChave := ''; Acbr.WebServices.Consulta.NFeChave := chave; if Acbr.WebServices.Consulta.Executar then begin Result := True; NXM.Add( TXM.Text + ''+IfThen( Acbr.WebServices.Consulta.TpAmb = taProducao,'1','2')+''+Acbr.WebServices.Consulta.verAplic+''+ ''+TrazNumero(chave)+''+ FormataDataNFERecibo(DateTimeToStr(Acbr.WebServices.Consulta.DhRecbto))+ ''+Acbr.WebServices.Consulta.Protocolo+''+ ''+Acbr.WebServices.Consulta.protNFe.digVal+''+ '100'+ Acbr.WebServices.Consulta.protNFe.xMotivo+''); NXM.SaveToFile(Acbr.Configuracoes.Arquivos.PathNFe+ '\' + FormatDateTime('YYYY', StrToDate( data_emis )) + FormatDateTime('MM', StrToDate( data_emis )) + '\'+ TrazNumero(chave)+'-nfe.xml'); { salvando o novo XML com protocolo na pasta definida em Acbr.Configuracoes.Arquivos.PathNFe } GravarRetornoNoSeuBanco( TrazNumero(chave), Acbr.WebServices.Consulta.Protocolo, codnota ); { Isto e do meu sistema, mais e uma ideia } MensagemPerso('Retorno Localizado na SEFAZ'#13'Protocolo : '+Acbr.WebServices.Consulta.Protocolo,informacao); NXM.Destroy; TXM.Destroy; end else begin MensagemPerso(Acbr.WebServices.Consulta.XMotivo,exclamacao); if Acbr.WebServices.Consulta.cStat <> 100 then {se cStat for diferente de 100, e porque foi rejeitada por algum erro } GravaErroRetornoNfe ( codnota ); { NF rejeitada na SEFAZ, esta rotina também e usada no meu sistema } Result := False; NXM.Destroy; TXM.Destroy; end; end; // FUNÇÕES UTILIZADA NA ROTINAS 1 - Function FormataDataNFERecibo( data : String) : String; begin Result := copy(data,7,4)+'-'+copy(data,4,2)+'-'+copy(data,1,2); Result := Result + 'T'+copy(data,12,100); end; Function TrazNumero( AValue: String) : String; var i : Integer ; begin Result := '' ; for i := 1 to length(AValue) do if (AValue in ['0'..'9']) then Result := Result + AValue; end;
  11. Amigo renato, o seu XML esta com erro conforme imagem o anexo. Vc não deve estar tratando o erro.
  12. Boa noite Amigo, O seu problema e o seguinte, vc instalou tudo certo, mais não deve ter instalado o gerenciador do Token. O Link para download : http://icp.caixa.gov.br/asp/downloads.asp Vai em drivers e manuais e faça o download do "Sistema Gerenciador do Cartão - SafeSign para Windows" que vai dar certo.
  13. O comando que eu uso : chave := Acbr.NotasFiscais.Items[0].NFe.infNFe.ID;
  14. Ah, eu uso a 2.0. Obrigado.
  15. jonatan.souza

    Consulta Cadastro

    Boa tarde, gostaria de saber se a função consulta de cadastro esta funcionando, pois nunca deu certo comigo.
  16. Acbr.WebServices.Consulta.NFeChave := NumeroDaChave if Acbr.WebServices.Consulta.Executar then Result := Acbr.WebServices.Consulta.protNFe.digVal;
  17. Obrigado André pela rápida resposta. Mais uma luta aí. Obrigado mais uma vez.
  18. Boa noite Amigos, Alguém sabe me informar se CC-e Carta de Correção Eletrônica vai ser desenvolvida pelo Acbr ? Obrigado pela atenção.
  19. Amigo, vc falo que gravo o protocolo ? Se gravo, faz a consulta pelo numero do recibo, no demo tem esta opção.
  20. Qual modelo de Rave vc esta utilizando ?
  21. Amigo, eu modifiquei a AcbrNfeWebServices.pas. eu grava o protocolo de envio no banco de dados, depoi eu pego este protocolo e passa ele no Alote ficando o comando abaixo if copy(ALote,1,2) = '9-' then begin Self.Retorno.Recibo := copy(ALote,3,100); if not(Self.Retorno.Executar) then begin TACBrNFe( FACBrNFe ).SetStatus( stNFeErro ); if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then TACBrNFe( FACBrNFe ).OnGerarLog(Self.Retorno.Msg); GravaErroEnviarNfe ( Self.Retorno.Recibo ); // Grava retorno de erro raise Exception.Create(Self.Retorno.Msg); end; Result := true; end else begin if not(Self.StatusServico.Executar) then begin TACBrNFe( FACBrNFe ).SetStatus( stNFeErro ); if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then TACBrNFe( FACBrNFe ).OnGerarLog(Self.StatusServico.Msg); MessageDlg('O Serviço deve estar fora do ar, favor verificar com a SEFAZ do seu estado !',mtWarning,[mbok],0); Exit; end; Self.Enviar.FLote := ALote; if not(Self.Enviar.Executar) then begin TACBrNFe( FACBrNFe ).SetStatus( stNFeErro ); if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then TACBrNFe( FACBrNFe ).OnGerarLog(Self.Enviar.Msg); GravaErroEnviarNfe ( Self.Retorno.Recibo ); raise Exception.Create(Self.Enviar.Msg); end; if Self.Enviar.Recibo <> '' then GravaReciboDbase(Self.Enviar.Recibo); // Grava o protocolo de envio. TACBrNFe( FACBrNFe ).NotasFiscais.Items[0].SaveToFile( ExtractFilePath(Application.ExeName) +'\XML\'+ TACBrNFe( FACBrNFe ).NotasFiscais.Items[0].NFe.infNFe.ID+'-nfe.xml' , True); Self.Retorno.Recibo := Self.Enviar.Recibo; if not(Self.Retorno.Executar) then begin TACBrNFe( FACBrNFe ).SetStatus( stNFeErro ); if Assigned(TACBrNFe( FACBrNFe ).OnGerarLog) then TACBrNFe( FACBrNFe ).OnGerarLog(Self.Retorno.Msg); GravaErroEnviarNfe ( Self.Retorno.Recibo ); raise Exception.Create(Self.Retorno.Msg); end; Result := true; end; Quando o sistema grava o protocolo de envio e não recebe o protocolo de autorização eu chamo a função da seguinte maneira. Begin rec := '9-'+protocolo; Acbr.NotasFiscais.Clear; Acbr.NotasFiscais.LoadFromFile( ExtractFilePath(Application.ExeName)+'\XML\NFe'+TrazNumero(chave)+'-nfe.xml'); Acbr.Enviar(rec,false); if SSGNFe.NotasFiscais.Items[0].Confirmada then begin GravarRetorno( Acbr.Configuracoes.Arquivos.PathNFe, TrazNumero(Acbr.NotasFiscais.Items[0].NFe.infNFe.ID),Acbr.WebServices.Retorno.Protocolo, codnota); end;
  22. Esta versão 3.0 e outro leiaute ? Temos que atualizar o acbr ?
  23. jonatan.souza

    NFe Inicio

    Vc deve começar com a 2.0, pois a 1.0 vai ser valida ate 31/12/2010
×
×
  • 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.

The popup will be closed in 10 segundos...