Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3053 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá, estou com um problema estranho. Hoje um cliente ligou falando que o sistema parou de emitir Cfe-SAT, fui olhar e o sat Bematech está com a luz LAN piscando e a luz CFE vermelha LIGADA.

Então eu entendo que ele pode estar sem internet e não consegue enviar as notas (CFe) temporariamente.

O mais estranho é que meu código é este:

 


  try
    try
      //ENVIA VENDA
      ACBrSAT1.EnviarDadosVenda(venda.xmlEnviar);
    finally
      if ACBrSAT1.Resposta.codigoDeRetorno = 6000 then
      begin
        FormDebug.Memo3.Text := ACBrSAT1.CFe.AsXMLString;
        situacaoVenda := 3; //faturada
      end
      else begin
        situacaoVenda := 4; //rejeitada
        ShowMessage('Não foi possivel emitir o documento fiscal, código de retorno: '+inttostr(ACBrSAT1.Resposta.codigoDeRetorno));
      end;

      StatusBar1.Panels[0].Text := 'Codigo de retorno: '+IntToStr(ACBrSAT1.Resposta.codigoDeRetorno);
      venda.xmlRecebido := ACBrSAT1.CFe.AsXMLString;

      //registra xml emitido na venda e situacao da emissão
      FormPrincipal.query.Close;
      FormPrincipal.query.SQL.Text := 'UPDATE vendaConsumidor SET '+
                                      'xml = :xml, '+
                                      'situacao = :situacao, '+
                                      'sincronizar = :sincronizar, '+
                                      'lastUpdate = :lastUpdate '+
                                      'WHERE id = :id ';
      FormPrincipal.query.Params.ParamByName('id').AsLargeInt             := venda.Fid;
      FormPrincipal.query.Params.ParamByName('xml').AsString              := EncodeStringBase64(venda.xmlRecebido);
      FormPrincipal.query.Params.ParamByName('situacao').AsLargeInt       := situacaoVenda;
      FormPrincipal.query.Params.ParamByName('sincronizar').AsString           := 's';
      FormPrincipal.query.Params.ParamByName('lastUpdate').AsLargeInt     := StrToInt64Def(leRegistro('lastUpdate'),0)+1;
      FormPrincipal.query.ExecSQL;
      FormPrincipal.transaction.Commit;
      //*******************************

      venda.Clear();
      StatusBar1.Panels[0].Text:='Venda registrada com sucesso!';

      //IMPRIMIR
      if(situacaoVenda=3)then //faturada
      if(leRegistro('imprimir')<>'')then begin
        FormPrincipal.PrepararImpressao();
        ACBrSAT1.ImprimirExtrato;
      end;//if imprimir
    end;//try enviar
  except
    ShowMessage('Não foi possível comunicar com o aparelho SAT'+#13#10+
                'Verifique as luzes indicativas no aparelho e informe ao suporte.');
  end;            

 

Ou seja, eu verifico com TRY quando ocorre erro na função .enviarDadosVenda(...);
Ele está mostrando a mensagem: "Não foi possivel comunicar com o aparelho SAT..." ou seja: ocorreu um erro ao executar a função e o delphi foi para o except;

Agora vem a dúvida: No meu banco de dados ele está gravando a venda como FATURADA, 100% ok, ou seja, ele está dando erro ao rodar a função .enviarDadosVenda(...); mas ao mesmo tempo está retornando o código 6000 na variavel codigoDeRetorno indicando que aparentemente a emissão foi feita com sucesso. Mas não está imprimindo as notas. Fui olhar o xml emitido e este está com assinatura então aparentemente foi emitido com sucesso.

 

Eu gostaria de saber se estou fazendo as verificações certas na hora da emissão por que a meu ver ele está dando erro ao enviar mas está retornando código 6000 de que está tudo ok mas depois simplismente não imprime!!!

Esse comportamento é normal?

  • Este tópico foi criado há 3053 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.