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.

Código: Selecionar todos

SAT.CancelarCFE(cXmlCupom)

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.