Página 1 de 1
SAT-CFe de cancelamento que possa validar
Enviado: 15 Jul 2016 13:23
por rochinha
Amiguinhos,
Alguém tem um exemplo de layout de SAT-CFe de cancelamento que funcione?
É necessário que seja um exemplo normal, capado, e que vocês realmente conseguiram validar e enviar.
Perdi meu código onde tinha este quesito em pleno funcionamento e não estou conseguindo refazer.
Estou usando Emulador 2.9.1 e DIMEP.
SAT-CFe de cancelamento que possa validar
Enviado: 15 Jul 2016 13:29
por HASA
Rocinha um xml serve, eu uso acbr.
:-O
HASA
SAT-CFe de cancelamento que possa validar
Enviado: 15 Jul 2016 14:47
por rochinha
Amiguinhos,
HASA
Rocinha um xml serve, eu uso acbr.

) , consegui, X:) , putz-grila, ka, ka, ka. Obrigado meu querido e obrigado meu bom DEUS.
Vejam como fiz:
Código: Selecionar todos
// Chave de ativação usada
cSHAtivacao := "123456789" // Use ou carregue a chave de ativação do SAT de seu cliente.
// Carregamento do SAT-CFe completo que se deseja cancelar. Não é o código de cancelamento, mas sim o conteúdo do último cupom SAT-CFe.
cXMLFile := MemoRead( cXMLCFe )
// Pega o identificador
infCFe := AT( " Id=", cXMLFile )
infCFeId := strTran( substr( cXMLFile, infCFe+8, 44 ), "CFe", "" )
// Dependendo do aparelho este prefixo fica Cfe, CFE ou CFe
cCFePrefix := "CFe"
cCFeCanc := [<?xml version="1.0" encoding="UTF-8" ?>] + ; // Apesar de colocar este cabeçalho, algum aparelho pode ignorar ou causar erro desconhecido.
[<CFeCanc>] + CRLF + ;
[<infCFe chCanc="] + cCFePrefix + infCFeId + [">] + CRLF + ;
[<ide>] + CRLF + ;
[] + XMLGetCode( [CNPJ], cXMLFile ) + CRLF + ;
[] + XMLGetCode( [signAC], cXMLFile ) + CRLF + ;
[] + XMLGetCode( [numeroCaixa], cXMLFile ) + CRLF + ;
[</ide>] + CRLF + ;
[<emit />] + CRLF + ;
[] + XMLGetCode( [dest], cXMLFile ) + ;
[<total />] + CRLF + ;
[<infAdic />] + CRLF + ;
[</infCFe>] + CRLF + ;
[</CFeCanc>]
aCancelarUltimaVenda := CancelarUltimaVenda( Random( 999999 ), cSHAtivacao, cCFePrefix + infCFeId, cCFeCanc )
Algumas funções de uso, tudo bem simplório:
Código: Selecionar todos
/*
* Funcoes para pegar trecho de XML delimitado por TAGs
*/
FUNCTION XMLGet( XMLField, XMLFile )
XMLField := alltrim( XMLField )
XMLFieldINI := rat( "<"+XMLField+">", XMLFile ) + len( "<"+XMLField+">" )
XMLFieldEND := rat( "</"+XMLField+">", XMLFile ) - XMLFieldINI
// Retorna o conteúdo da TAG selecionada
return substr( XMLFile, XMLFieldINI, XMLFieldEND )
FUNCTION XMLGetCode( XMLField, XMLFile )
XMLField := alltrim( XMLField )
XMLFieldINI := rat( "<"+XMLField+">", XMLFile )
XMLFieldEND := rat( "</"+XMLField+">", XMLFile ) - (XMLFieldINI - len( "</"+XMLField+">" ))
// Retorna a TAG selecionado inteirinha
Return substr( XMLFile, XMLFieldINI, XMLFieldEND )
SAT-CFe de cancelamento que possa validar
Enviado: 15 Jul 2016 15:19
por HASA

)

) :-Y
Qualquer coisa não hesite solicite.
HASA
SAT-CFe de cancelamento que possa validar
Enviado: 16 Jul 2016 13:58
por rochinha
Amiguinhos,
HASA
Qualquer coisa não hesite solicite
Com certeza meu querido. Aqui é o nosso refúgio, nosso porto-seguro de código, dicas e amigos.
Uma pequena alteração no código postado anteriormente.
Código: Selecionar todos
cCFeCanc := [<?xml version="1.0" encoding="UTF-8" ?>] + ;
[<CFeCanc>] + CRLF + ;
[<infCFe chCanc="] + cCFePrefix + infCFeId + [">] + CRLF + ;
[<ide>] + CRLF + ;
[<CNPJ>] + XMLGet( [CNPJ], XMLGetCode( [ide], cXMLFile ) ) + "</CNPJ>"+ CRLF + ;
[] + XMLGetCode( [signAC], cXMLFile ) + CRLF + ;
[] + XMLGetCode( [numeroCaixa], cXMLFile ) + CRLF + ;
[</ide>] + CRLF + ;
[<emit />] + CRLF + ;
[] + XMLGetCode( [dest], cXMLFile ) + ;
[<total />] + CRLF + ;
[<infAdic />] + CRLF + ;
[</infCFe>] + CRLF + ;
[</CFeCanc>]
A alteração se reflete somente no trecho:
Código: Selecionar todos
[<CNPJ>] + XMLGet( [CNPJ], XMLGetCode( [ide], cXMLFile ) ) + "</CNPJ>"+ CRLF + ;
SAT-CFe de cancelamento que possa validar
Enviado: 23 Jul 2016 19:20
por alejesus
boa noite
Rochina ou HASA vcs conseguiram usar o cancelamento com o Emulador?
Sempre que tento cancelar um cupom (uso o ACBr) recebo uma mensagem de erro:
Resposta: 07010|01454|Erro de validação do conteúdo
No emulador aparece:
Erro no campo 'cnpj' CNPJ da Software House inválido.
Erro no campo 'ide': 1454
Porém mesmo com o "Aplicativo Comercial" do Sefaz não consegui cancelar, deu a mesma mensagem ... alguém tem alguma luz?
SAT-CFe de cancelamento que possa validar
Enviado: 24 Jul 2016 07:28
por Jairo Maia
Olá alejesus,
alejesus escreveu:Porém mesmo com o "Aplicativo Comercial" do Sefaz não consegui cancelar, deu a mesma mensagem ... alguém tem alguma luz?
Eu não consigo instalar a última versão do emulador que é a 2.9.2. Ainda uso a 2.8.12 do emulador. No controle de versão da versão 2.9.2 diz que esse problema foi corrigido. Qual versão você usa?
De qualquer forma, já efetuei cancelamento no SAT de produção com o ACBrMonitor, e está funcionando normalmente. Assim que puder, faça o teste em SAT de produção que vai funcionar.
NOTA: Assim como era no ECF, o extrato dá sequência. Por exemplo, se você cancelar o cupom 10, o extrato de cancelamento será o 11, e o próximo cupom será o 12.
Também, vale lembrar que só pode ser cancelado um cupom se ele for o último cupom emitido, e não há mais de 30 minutos.
SAT-CFe de cancelamento que possa validar
Enviado: 24 Jul 2016 12:53
por alejesus
Jairo, boa tarde.
Você acertou, atualizei o emulador e tudo funcionou!
Obrigado,
Alexandre
SAT-CFe de cancelamento que possa validar
Enviado: 29 Jul 2016 20:48
por rochinha
Amiguinhos,
Só pra reforçar:
A versão do Emulador SAT que cancela sem erros é a partir da 2.9.1 em diante.
SAT-CFe de cancelamento que possa validar
Enviado: 31 Jul 2016 12:45
por alejesus
Rochinha, bom dia
Com a versão 2.9.1 do Emulador não consegui fazer cancelamentos, ele reclamava do CNPJ incorreto para Software House, não aceitando a configuração "1111111111111" e "2222222222222" para os CNPJs ...
Com a versão 2.9.2 indicada pelo Jairo e que consta a revisão da validação do CNPJ não tive problemas.
Abs,
SAT-CFe de cancelamento que possa validar
Enviado: 31 Jul 2016 17:52
por rochinha
Amiguinhos,
Os testes que fiz quando da entrada desta tópico foram feitos sob a 2.9.1, eu também configurei o meu aplicativo a colocar 11111111111111 e 22222222222222 e não tive problemas. Lógico que esta configuração nos XMLs vão criticar o que foi colocado no momento da ativação do emulador, onde você define valores para os CNPJs.
Depois de ter feitos todos os teste e homologado a aplicação também com DIMEP, sem querer ao executar o emulador, levantei a versão 2.8.x e ai começaram os erros. Só depois de 2 dias é que fui perceber que tinha levantado a versão antiga e que não cancelava, dando sempre mensagem de erro no conteúdo do .XML.
Não testei a 2.9.2 ainda.
SAT-CFe de cancelamento que possa validar
Enviado: 01 Ago 2016 15:40
por Jairo Maia
Olá Pessoal,
Hoje limpei tudo da versão anterior do emulador e instalei a versão 2.9.2 com sucesso.
1-Então fiz testes de emissão e cancelamento, e tudo funcionou.
2-Como na versão 2.9.2 está disponível a opção de versaoLayoutCFe 0.7 e 0.8, primeiro alterei para a versão 0.7 e repeti os testes. Tudo funcionou...
3-Alterei para a versão 0.8 e repeti os testes, tudo funcionou.
A única diferença que notei em usar as versão diferentes do leiaute, é que no XML aparece que estou usando essa versão, não notei mais nada diferente.
Resumindo: Nem sei pra que serve essas novas versões, e não achei nada que explique...
Editado:
Em produção estou usando a versão 0.6 e está tudo funcionando.