Ir para conteúdo
  • Cadastre-se

rubensff

Membros
  • Total de ítens

    32
  • Registro em

  • Última visita

Tudo que rubensff postou

  1. Amigos, bom dia. Consegui descobrir o que estava fazendo de errado, na verdade como estava alterando a data de emissão, o digestvalue acabava ficando diferente do retorno da SEFAZ, e por isso não conseguia validar o xml. Caso resolvido. Obrigado a todos.
  2. A intenção é que na emissão, quando houver um erro no envio, e o sistema não tenha retorno do sefaz, por variação na internet da loja, ele consulte e veja se foi processado pela sefaz, fazer a contingencia se não tiver retorno, e depois fazer o cancelamento por substuição está criando mais problemas, porque acaba gerando muita nota em contingência. E os usuários não fazem o devido envio.
  3. De qual xml que está falando? Temos vários xmls, por via das dúvidas segue o código: function TNFe.EnviarNFCe( NumeroNota, Codigo_Operacao, Destinatario, Usuario: integer; TipoOperacao: integer; var StatusNFCe : integer; var s_Contingencia : String; var ChaveNFCe : String): Boolean; var TextoNFCe : TStrings; s_FormaEmissao : string; // ReciboEnvio : string; // Retorno_Sefaz : String; // ProtocoloNFCe : string; QtdeConsulta : integer; xmlNota : string; ErrosRegraNegocio : string; NumeroLote : string; Chave_Except : String; oACBRNFE : TACbrNfe; procedure Aprova_ou_DenegaNfce; begin // ReciboEnvio := ACBR_NFe.WebServices.Enviar.Recibo; // ProtocoloNFCe := ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.nProt; // Retorno_Sefaz := IntToStr(ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.cStat) + ' ' + // RetornaStatusNFCe(ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.cStat); // AtualizaXML_NFCe(ChaveNFCe, // ACBR_NFe.NotasFiscais.Items[0].XML, // IntToStr(StatusNFCe), // ProtocoloNFCe, // Retorno_Sefaz, // Usuario, // s_Contingencia); end; begin // ProtocoloNFCe := ''; // Retorno_Sefaz := ''; // ReciboEnvio := ''; s_FormaEmissao := ''; Result := False; QtdeConsulta := 0; xmlNota := ''; ErrosRegraNegocio := ''; Chave_Except := ''; // Contingencia: // S = S/Não Enviada // N = Nao // E = S/Aprovada try try TCtrlNfe.GetInstance.CarregaDanfe(FACBR_NFe); acbr_nfe.Configuracoes.WebServices.Visualizar := False; ChaveNFCe := StringReplace(ACBR_NFe.NotasFiscais.Items[0].Nfe.infNFe.ID, 'NFe', '', [rfIgnoreCase]); NumeroLote := FormatDateTime('yyyymmddhhmmss', NOW); begin WaitShowMessage('Enviando NFC-e...'); if ACBR_NFe.Enviar(NumeroLote, False, True) then begin try //showmessage(ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.cStat.ToString); StatusNFCe := ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.cStat; AnalisaTipoRetorno(StatusNFCe);//Cuidado Rubens, o retorno é alterado na porra da função except StatusNFCe := 4; end; //Se não retornar nada faço consulta no sefaz enviando o xml if StatusNFCe = 4 then begin xmlNota := ACBR_NFe.NotasFiscais.Items[0].XML; while ((StatusNFCe = 4) and (QtdeConsulta < 5)) do begin StatusNFCe := ConsultaNFCeSefaz(xmlNota); QtdeConsulta := QtdeConsulta + 1; end; end; // Aprovada ou Denegada if ((StatusNFCe = 1) or (StatusNFCe = 5)) then begin Aprova_ou_DenegaNfce; // se for denegada grava a NFCe, mas nao libera para gravar a venda if StatusNFCe = 5 then begin TFalconFuncoes.GetInstance.MostraMensagem('Rejeição: NF-e está denegada na base de dados da SEFAZ.'+sLineBreak+ 'A venda será cancelada.',4); Result := False; end else Result:= True; end; end; end except on e: exception do begin showmessage(E.Message); WaitCloseMessage; Chave_Except := ChaveNFCe; showmessage(ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.cStat.ToString); showmessage(ChaveNFCe); TFalconFuncoes.GetInstance.GravaLogerro('Erro ao enviar NFCe '+ ChaveNFCe+' - '+ 'cStat : '+ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.cStat.ToString); oACBRNFe := TAcbrNfe.Create(nil); TCtrlNfe.GetInstance.ConfiguraACBrNFe(oACBRNFe, moNFCe); oACBRNFe.WebServices.Consulta.NFeChave := Chave_Except; oACBRNFe.WebServices.Consulta.Executar; oACBRNFe.WebServices.Consulta. if oACBRNFe.WebServices.Consulta.cStat = 100 then begin ACBR_NFe.NotasFiscais.Items[0].NFe.procNFe.Assign(oACBRNFe.WebServices.Consulta.protNFe); Result := True; end else begin //if (pos('Lote recebido com sucesso', UpperCase(e.Message)) > 0) then if ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.cStat in [103,0] then begin for var Contador: integer := 0 to 15 do begin WaitShowMessage('Consultando lote processado...'); Sleep(2000); try StatusNFCe := ConsultaNFCeSefaz(ACBR_NFe.NotasFiscais.Items[0].XML); //Cuidado Rubens, o retorno é alterado na porra da função except end; if not (StatusNFCe in [0,6]) then break; end; showmessage(StatusNFCe.ToString); WaitCloseMessage; if StatusNFCe = 1 then begin Aprova_ou_DenegaNfce; Result := True; end; end; if TBancoDados.execSqlBD( ' update TAB_NFC_E '+ ' SET STATUS_RETORNOSEFAZ='+QuotedStr(Copy(e.Message,1,200))+ ' where CHV_NF = '+ QuotedStr(ChaveNFCe)) then begin TFalconFuncoes.GetInstance.GravaLogerro('Erro ao enviar NFCe '+ ChaveNFCe+' - '+ e.Message); //Apagando o xml da nota que não deu certo LimpaTemp(0,ChaveNFCe,'0'); end; //mais explicito, tipo pau entrando no cú //Permite gerar NFC-e em contigência quando ocorrer alguns tipos de exceção if pos(Uppercase('Nenhum arquivo de Schema encontrado na pasta'),UpperCase(e.Message)) > 0 then exit; // if ((pos('ERRO NAO CATALOGADO', UpperCase(e.Message)) > 0) // //or (pos('TIMEOUT', UpperCase(e.Message)) > 0) // or (pos('ERRO HTTP: 404', UpperCase(e.Message)) > 0) // or (pos('ERRO HTTP: 500', UpperCase(e.Message)) > 0) // or (pos(UpperCase('Falha no processamento do WebService'), UpperCase(e.Message)) > 0) // //or (pos(UpperCase('Falha em obter Provedor de Criptografia do Certificado. Erro: 8009000B , erro: $8009000B'), UpperCase(e.Message)) > 0) // or (pos(UpperCase('Erro HTTP: 403'), UpperCase(e.Message)) > 0) // or (pos(UpperCase('Erro HTTP: 403'), UpperCase(e.Message)) > 0) // or (pos(UpperCase('Erro HTTP: 0'), UpperCase(e.Message)) > 0) // or (pos(UpperCase('ERRO INTERNO'), UpperCase(e.Message)) > 0) // or (pos(UpperCase('Servico Paralisado Momentaneamente'), UpperCase(e.Message)) > 0) // or (pos(UpperCase('Falha no reconhecimento da autoria ou integridade do arquivo digital'), UpperCase(e.Message)) > 0) // //or (ACBR_NFe.NotasFiscais.Items[0].Nfe.procNFe.cStat = 0)) // ) // then // GeraContingencia // else begin TFalconFuncoes.GetInstance.MostraMensagem('Erro ao enviar NFC-e para aprovação. Erro: ' + e.Message); Result:= False; end; end; end; end; finally LimpaTemp(0,ChaveNFCe,'0'); if Assigned(oACBRNFE) then FreeAndNil(oACBRNFE); WaitCloseMessage; end;
  4. Bom dia Amarildo, as propriedades ACBRNFe.WebServices.Consulta.protNFe.XML_NFe e ACBRNFe.WebServices.Consulta.protNFe.XML_prot estão vindo vazias. Teria alguma sugestão?
  5. Boa tarde a todos. Sei que já tem um tópico com esse titulo, mas a questão acredito que seja outra. Tenho o processo de emissão, na emissão, quando dá algum problema de comunicação com a SEFAZ, acontece de ela ter recebido e processado a NFC-e, ai para não dar duplicidade, eu consulto pela chave, com outro objeto, pela chave, se me retorna "oACBRNFe.WebServices.Consulta.cStat = 100" então eu atualizo o objeto de emissão : ACBR_NFe.NotasFiscais.Items[0].NFe.procNFe.Assign(oACBRNFe.WebServices.Consulta.protNFe); Mas nesse processo, sei que deve estar faltando alguma coisa para que a impressão saia de forma correta. Será que podem me ajudar?
  6. Estou tentando testar o ecfvirtual nfc-e, mas na hora que vou inicializar o ECF dá a seguinte mensagem "First chance exception at $74EC3EF2. Exception class EAccessViolation with message 'Access violation at address 0099FFDD in module 'ECFTeste.exe'. Read of address 0000007C'. Process ECFTeste.exe (9084)" na preocedure : Procedure TACBrECFVirtualNFCeClass.AtivarVirtual; begin fsACBrNFCe.NotasFiscais.Clear; <-- aqui dá o erro inherited AtivarVirtual; fsACBrNFCe.Configuracoes.Geral.ModeloDF := moNFCe; fsNomeArqTempXML := ChangeFileExt(NomeArqINI, '.xml'); end; Alguém pode ajudar?
  7. Bom dia amigos, depois de muito trabalho acabei desistindo de resolver, mas por acidente acabei achando o problema, nem a Bematech conseguiu me responder de forma satisfatória...bem o problema é que na bemafi32.ini tem as informações da softhouse, essas informações devem ser preenchidas, eu nunca me atentei a isso. Att,
  8. Amigos, bom dia!!! Estou com problema na geração do CAT52, quando executo o comando PafMF_MFD_Cotepe1704, a bemafi retorna -1, ele faz o dawnload da mfd, gera um log xml, dizendo que a chave privada não está logada. Já tentei de tudo, apaguei todos os bemafi32 do computador, usei a dll que está no trunk2, tanto a antiga como a mais nova, baixei a versão do site da Bematech e nada, coloquei no system32 e por ai vai.... continua dando o mesmo erro. Será que alguém pode me dar uma luz?? Att, Segue o arquivo em anexo. bemalog_03-03-2016.xml
  9. Boa tarde a todos, Alguém sabe como fica o bilhete de passagem rodoviário para o SAT? Att,
  10. Olá, será que é possível pegar o valor da nfe pelo método consultar?
  11. Olá amigos, estou tendo o mesmo problema em um cliente, porém, o bematool consegue pegar os dados da redução, mas o acbr dá esse erro....
  12. Boa tarde a todos... Alguém ai sabe como posso carregar os grupos e campos que podem ser alterados na carta de correção, ou onde acho uma lista ?
  13. Problema resolvido, muito obrigado Juliomar.
  14. Obrigado Juliomar, vou fazer os testes aqui e retorno.
  15. Nada??? será que ninguém pode me ajudar?
  16. Olá a todos, Estou fazendo a emissão do Ct-e por um servidor de aplicação datasnap, quando rodo ele como aplicação, dá tudo certo, porém quando compilo ele como serviço do windows, ele não acha o certificado... Será que alguém pode me ajudar??
  17. Bom dia, a todos, Pelo que entendi, quando feito o cancelamento, não devo atualizar o xml que foi armazenado na emissão com o xml de retorno do cancelamento, porque eu estava fazendo isso antes, mas agora quando retorna o xml do cancelamento não imprimi mais o DACTE... Então, faço o cancelamento, não atualizo o xml, e quando for imprimir o dac, carrego o xml da emissão com a propriedade CteCancelada := True, é isso??? Abraço,
  18. Boa pessoal, resolvi o erro acima,mas agora tá dando outro: Rejeicao: O autor do evento diverge do emissor do CT-e. código: ConfigCTe; dm_Prin.acbrcte1.EventoCTe.Evento.Clear; dm_Prin.acbrcte1.Eventocte.idLote := 1; with dm_Prin.acbrcte1.EventoCTe.Evento.Add do begin infevento.tpAmb := taHomologacao; infevento.cOrgao := dm_Prin.acbrcte1.Configuracoes.WebServices.UFCodigo; infevento.chCTe := cdsAux.FieldByName('CHVCTE').AsString; infEvento.CNPJ := TClasseIniControle.GetInstance.EmitCNPJ; infEvento.dhEvento := now; infEvento.tpEvento := teCancelamento; infEvento.detEvento.xJust := trim(sJus); infEvento.detEvento.nProt := cdsAux.FieldByName('PROTOCOLO').AsString; InfEvento.detEvento.xCondUso := ''; end; try dm_Prin.acbrcte1.EnviarEventoCTe(1);
  19. Amigos, estou fazendo o cancelamento como no exemplo, mas está retornando : 17/07/2014 19:00:Falha na validação dos dados do Envio de Evento 'ID110111351407446999080001005700100000006810000006801' violates pattern constraint of 'ID[0-9]{52}'. The attribute 'Id' with value 'ID110111351407446999080001005700100000006810000006801' failed to parse. Alguém pode ajudar?
  20. Boa tarde, estou tendo o mesmo problema em ambiente de homologação, esse problema só acontece mesmo em homologação, ou acontece também em produção?
  21. Olá, amigos, criei uma função na bematech para emitir bilhete de passagem, e gostaria de saber como posso mandar o código para ser incluído no acbr?
×
×
  • 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.