Ir para conteúdo
  • Cadastre-se

dev botao

Cancelamento de CF-e


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

Recommended Posts

  • Membros
10 minutos atrás, ALA disse:

Senhores, existe uma forma de saber se a chave que estou tentando cancelar pode ser cancelada no SAT. Sei que só podemos cancelar os CF-e que foram emitidos a menos de 30 minutos. Mas como saber a hora do SAT 

O SAT é rigoroso em relação a essa carência no cancelamento, se tentar cancelar um cupom com mais de 30 minutos você vai deparar com o erro 7099 - "Erro desconhecido no cancelamento".

Equipe ACBr Sérgio Assunção
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

[email protected]

Link para o comentário
Compartilhar em outros sites

Para evitar dores de cabeça, controlo esse tempo na própria aplicação onde gravo a hora que foi emitido o CF-e e quando o usuário seleciona uma venda para cancelar calculo o tempo decorrido desde a emissão do CF-e.

Se for mais de 30 minutos é só avisar a "nobre" usuário que já ultrapassou o tempo permitido.

image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

Estou gravando a hora da máquina!

A diferença entre a hora da máquina e a hora do SAT chegou a no máximo 1 minuto e 20 segundos, em todos os teste que realizei.

Sinceramente se fosse até 5 minutos não iria me preocupar.

Editado por William F. L.
image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

Vc poderia postar a rotina que vc esta utilizando ?

Outra coisa, estou utilizando a  ACBrSAT.CFeCanc.infCFe.chCanc para pegar o chave de cancelametno, mas esta retornando a mesma chave de envio, existe outra forma ?

Editado por ALA
Link para o comentário
Compartilhar em outros sites

É bem básica, só precisei usar uma função da unit DateUtils :

var
   DiferencaMinutos : Integer;

DiferencaMinutos := MinutesBetween(Time, dm.cdsVendaCompleto.FieldByName('HORA_CUPOM').AsDateTime);

if (dm.cdsVendaCompleto.FieldByName('DATA_CUPOM').AsDateTime = Date) and (DiferencaMinutos < 30)  then
begin
	// Cancela CF-e
end;

 

image.png.7b12b65221605b4e2ee1b0693683f18d.png

Sistemas para Bares, Restaurantes e Varejo

https://www.wllsistemas.com.br

 

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2951 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.