
rubensff
-
Total de ítens
32 -
Registro em
-
Última visita
Tipo de Conteúdo
Blocks
Notes ACBrLibNFe
Fóruns
Downloads
Calendário
Posts postados por rubensff
-
-
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.
-
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/Aprovadatry
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;
endexcept
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;
-
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?
-
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?
-
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?
-
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,
-
Em 03/03/2016 at 11:02, rubensff disse:
Mp2100.
Alguma coisa?
-
-
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.
-
Boa tarde a todos,
Alguém sabe como fica o bilhete de passagem rodoviário para o SAT?
Att,
-
Olá, será que é possível pegar o valor da nfe pelo método consultar?
-
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....
-
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 ?
-
Problema resolvido, muito obrigado Juliomar.
-
1
-
-
Obrigado Juliomar, vou fazer os testes aqui e retorno.
-
Nada??? será que ninguém pode me ajudar?
-
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??
-
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,
-
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 dobegininfevento.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); -
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? -
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?
-
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?
Mensagem NFC-e não enviada para sefaz.
em NFC-e - Nota Fiscal do Consumidor Eletrônica
Postado · Editado por rubensff
Correção ortografica
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.