SAT-Fiscal a mistica está desvendada.

Fórum sobre desenvolvimento de software para atender as exigências da legislação fiscal e tributária (NFe, NFCe, NFSe, SPEED, Projeto ACBr, TEF, ECD, EFD, etc.)

Moderador: Moderadores

Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por rochinha »

Amiguinhos,
Ref. o item 3, não entendi bem qual a correção a ser feita.
Corrijir:

Código: Selecionar todos

_IMPRIMIRCFESAT pFunc;
pFunc = (_EXTRAIRLOGS...
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por Claudio Soto »

Edvaldo escreveu:Ok, ref. o item 1, fiz a alteração e antes o funcionava no simulador e após a alteração não funciona nem no simulador e nem no equipamento SAT. A rotina é compilada porém dar um erro de execução do Windows e só fechando.
typedef LPSTR (WINAPI *_CONSULTARSAT) ( INT nRandom, LPSTR cCodAtivacao);

HB_FUNC( SATCONSULTAR )
{
HINSTANCE handle = LoadLibrary("Sat.dll");

if (handle)
{
_CONSULTARSAT pFunc;
pFunc = (_CONSULTARSAT) GetProcAddress(handle, "ConsultarSAT");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}

Ref. o item 2, o erro é apenas de digitação o correto é LPSTR, mas conntinua sem compilar e não cria o arquivo .Obj.
Ref. o item 3, não entendi bem qual a correção a ser feita.

Obrigado
Mirando el Link del manual pdf que posteó Rochita la función ConsultarSAT posee solo un parametro, al llamar una función dll con mas parametros de los definidos puede generar resultados impredecibles.

En cuanto al tercer item estas definiendo una funcion del tipo _IMPRIMIRCFESAT pero al cargar la funcion de la dll la convertis al tipo _EXTRAIRLOG, exepto que el prototipo de ambas definiciones sean identicos el resultado tambien es impredecible.
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Edvaldo
Usuário Nível 1
Usuário Nível 1
Mensagens: 32
Registrado em: 17 Fev 2016 12:09
Localização: ubatuba

SAT-Fiscal a mistica está desvendada.

Mensagem por Edvaldo »

Ok, respondendo a citação, todas as funções do SAT exigem o envio do código de ativação, favor verificar atualizações do manual Pdf. Encontrei um erro na função SATTROCARATIVACAO onde estava "AtivarSAT" na verdade é "TrocarCodigoDeAtivacao". A função SATCONSULTAR originalmente ta escrita errada pois está sem o segundo parâmetro que é o código de ativação.
Resumo: Não avançamos nada nos erros reportados:
1-A função SATCONSULTAR está faltando o segundo parâmetro código de ativação mas quando o coloco a função é compilada sem erros porém dá erro na execução do programa. Se deixar sem o segundo parâmetro funciona corretamente no SAT Dimep e não funciona no Simulador Sefaz, vai entender rsrssr.
2-A função SATTROCARATIVACAO compila sem erros (no arquivo de logs) porém não consegue linkar e não gera o .Exe
3-A função SATIMPRIMIRCFE mesmo com a correção _EXTRAIRLOGS para _IMPRIMIRCFESAT continua com o mesmo erro do ítem anterior.
Abaixo o programa revisado para análise.

Obrigado a todos.

#pragma BEGINDUMP

#include "hbapi.h"
#include "windows.h"

typedef LPSTR (WINAPI *_CONSULTARSAT) ( INT nRandom, LPSTR cCodAtivacao);
typedef LPSTR (WINAPI *_ATIVARSAT) ( INT nRandom, INT nSubComando , LPSTR cCodAtivacao, LPSTR cCNPJ, INT nUF );
typedef LPSTR (WINAPI *_ASSOCIARASSINATURASAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cCNPJ, LPSTR cAssCNPJ );
typedef LPSTR (WINAPI *_CONSULTARSECAOSAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cNumSecao );
typedef LPSTR (WINAPI *_TESTEFIMAFIMSAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cDadosVenda);
typedef LPSTR (WINAPI *_ENVIARDADOSVENDASAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cDadosVenda);
typedef LPSTR (WINAPI *_CANULTIMAVENDASAT) ( INT nRandom, LPSTR cCodAtivacao, LPSTR cChave, LPSTR cDadosVenda);
typedef LPSTR (WINAPI *_CONSULTARSTATUSSAT) ( INT nRandom, LPSTR cCodAtivacao);
typedef LPSTR (WINAPI *_ATUALIZARSOFTWARE) ( INT nRandom, LPSTR cCodAtivacao);
typedef LPSTR (WINAPI *_EXTRAIRLOGS) ( INT nRandom, LPSTR cCodAtivacao);
typedef LPSTR (WINAPI *_IMPRIMIRCFESAT) ( LPSTR nXml, LPSTR cTipo);
typedef LPSTR (WINAPI *_TROCARATIVACAOSAT) ( INT nRandom, LPSTR nCNPJ, LPSTR nTipo, LPSTR cCodVelho, ILPSTR cCodNovo);



HB_FUNC( SATCONSULTAR )
{
HINSTANCE handle = LoadLibrary("Sat.dll");

if (handle)
{
_CONSULTARSAT pFunc;
pFunc = (_CONSULTARSAT) GetProcAddress(handle, "ConsultarSAT");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATATIVAR )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_ATIVARSAT pFunc;
pFunc = (_ATIVARSAT) GetProcAddress(handle, "AtivarSAT");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parni(2), hb_parc(3), hb_parc(4), hb_parni(5)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATASSOCIARASSINATURA )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_ASSOCIARASSINATURASAT pFunc;
pFunc = (_ASSOCIARASSINATURASAT) GetProcAddress(handle, "AssociarAssinatura");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3), hb_parc(4)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATCONSULTARNUMEROSESSAO )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_CONSULTARSECAOSAT pFunc;
pFunc = (_CONSULTARSECAOSAT) GetProcAddress(handle, "ConsultarNumeroSessao");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATTESTEFIMAFIM )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_TESTEFIMAFIMSAT pFunc;
pFunc = (_TESTEFIMAFIMSAT) GetProcAddress(handle, "TesteFimAFim");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3)) );
FreeLibrary( handle );
}
}

HB_FUNC( ENVIARDADOSVENDASAT )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_ENVIARDADOSVENDASAT pFunc;
pFunc = (_ENVIARDADOSVENDASAT) GetProcAddress(handle, "EnviarDadosVenda");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3)) );
FreeLibrary( handle );
}
}
HB_FUNC( SATCANCELARULTIMAVENDA )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_CANULTIMAVENDASAT pFunc;
pFunc = (_CANULTIMAVENDASAT) GetProcAddress(handle, "CancelarUltimaVenda");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3), hb_parc(4)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATCONSULTARSTATUSOPERACIONAL )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_CONSULTARSTATUSSAT pFunc;
pFunc = (_CONSULTARSTATUSSAT) GetProcAddress(handle, "ConsultarStatusOperacional");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATATUALIZARSOFTWARE )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_ATUALIZARSOFTWARE pFunc;
pFunc = (_ATUALIZARSOFTWARE) GetProcAddress(handle, "AtualizarSoftwareSAT");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATEXTRAIRLOGS )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_EXTRAIRLOGS pFunc;
pFunc = (_EXTRAIRLOGS) GetProcAddress(handle, "ExtrairLogs");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATIMPRIMIRCFE )
{
HINSTANCE handle = LoadLibrary("DarumaFrameWork.dll");

if (handle)
{
_IMPRIMIRCFESAT pFunc;
pFunc = (_IMPRIMIRCFESAT) GetProcAddress(handle, "iImprimirCFe_SAT_Daruma");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
FreeLibrary( handle );
}
}

HB_FUNC( SATTROCARATIVACAO )
{
HINSTANCE handle = LoadLibrary("sat.dll");

if (handle)
{
_TROCARATIVACAOSAT pFunc;
pFunc = (_TROCARATIVACAOSAT) GetProcAddress(handle, "TrocarCodigoDeAtivacao");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parni(2), hb_parc(3), hb_parc(4), hb_parni(5)) );
FreeLibrary( handle );
}
}


#pragma ENDDUMP
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por rochinha »

Amiguinhos,

edvaldo
Desde o inicio do tópico temos usado a chamada as funções do SAT, como Consultar, usando apenas um parâmetro.

Se em algum momento causamos esta confusão em sua cabeça, nos apresente a postagem para podermos resolver este entrevero.

Veja na página 185 do Manual de especificações sobre quais parâmetros são usados no comando referido.

Vamos rever as definições de chamada que eu exemplifiquei desde o inicio:

Código: Selecionar todos

/* OK */ DLL32 FUNCTION SATConsultar( numeroSessao AS _INT ) AS STRING PASCAL FROM "ConsultarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATAtivar( numeroSessao AS _INT, subComando AS _INT, codigoDeAtivacao AS STRING, CNPJ AS STRING, cUF AS _INT ) AS STRING PASCAL FROM "AtivarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATAssociarAssinatura( numeroSessao AS _INT, codigoDeAtivacao AS STRING, CNPJ AS STRING, AssinaturaCNPJ AS STRING ) AS STRING PASCAL FROM "AssociarAssinatura" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATDesligar() AS STRING PASCAL FROM "DesligarSAT" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATConsultarNumeroSessao( getRandom AS _INT, codigoAtivacao AS STRING, numeroSessao AS STRING) AS STRING PASCAL FROM "ConsultarNumeroSessao" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATTesteFimAFim( numeroSessao AS _INT, codigoAtivacao AS STRING, dados AS STRING) AS STRING PASCAL FROM "TesteFimAFim" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATEnviarDadosVenda( numeroSessao AS _INT, codigoAtivacao AS STRING, dados AS STRING) AS STRING PASCAL FROM "EnviarDadosVenda" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATCancelarUltimaVenda( numeroSessao AS _INT, codigoAtivacao AS STRING, chaveAcesso AS STRING, dados AS STRING) AS STRING PASCAL FROM "CancelarUltimaVenda" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATConsultarStatusOperacional( numeroSessao AS _INT, codigoAtivacao AS STRING ) AS STRING PASCAL FROM "ConsultarStatusOperacional" LIB hSATDLL
/* OK */ DLL32 FUNCTION SATExtrairLogs( numeroSessao AS _INT, codigoAtivacao AS STRING ) AS STRING PASCAL FROM "ExtrairLogs" LIB hSATDLL
Repare que a função SATConsultar que é o apelido para a ConsultarSAT(interna da biblioteca) só exige um único parâmetro.

Para melhorar a sua implantação vai ai umas dicas:

- Você só precisa das funções SATConsultar(), SATEnviarDadosVenda() e SATCancelarUltimaVenda(). Nestas duas últimas são gerados os arquivos de retorno que voce deve dividir, criticar e decodificar para imprimir os extratos.
- As funções SATConsultarStatusOperacional() e SATExtrairLogs() serão necessárias somente para o seu suporte.
- As funções SATAtivar(), SATAssociarAssinatura() e SATTrocarAtivacao() não devem ser usadas a todo momento. Mesmo que eu tenha colocado nos exemplos. A ativação e a associação são usadas somente no momento de preparar o aparelho para uso e nunca mais, a não ser que o aparelho dê problemas ou troque de dono.
- O resto é perfume.

Portanto para alavancar a sua implantação use somente a trinca inicial.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por Claudio Soto »

Edvaldo escreveu:1-A função SATCONSULTAR está faltando o segundo parâmetro código de ativação mas quando o coloco a função é compilada sem erros porém dá erro na execução do programa.
Edvaldo,
se trava la ejecución del programa porque seguramente en sat.dll la funcion SATCONSULTAR esta definida con un solo parametro. El error aparece solo en tiempo de ejecución porque la función es llamada dinamicamente mediante GetProcAddress() y por lo tanto el compilador no puede saber cuantos parametros y ni de que tipo son.
Edvaldo escreveu:2-A função SATTROCARATIVACAO compila sem erros (no arquivo de logs) porém não consegue linkar e não gera o .Exe
Esto ocurre porque porque el compilador no encuentra alguna definición:
typedef LPSTR (WINAPI *_TROCARATIVACAOSAT) ( INT nRandom, LPSTR nCNPJ, LPSTR nTipo, LPSTR cCodVelho, ILPSTR cCodNovo);

además no coinciden los tipos de los parametros definidos en la funcion con los parametros pasados:

_TROCARATIVACAOSAT pFunc;
pFunc = (_TROCARATIVACAOSAT) GetProcAddress(handle, "TrocarCodigoDeAtivacao");
hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parni(2), hb_parc(3), hb_parc(4), hb_parni(5)) );
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
Edvaldo
Usuário Nível 1
Usuário Nível 1
Mensagens: 32
Registrado em: 17 Fev 2016 12:09
Localização: ubatuba

SAT-Fiscal a mistica está desvendada.

Mensagem por Edvaldo »

Ok, peço desculpas aos amigos com relação a insistência no segundo parâmetro da função ConsultarSAT, realmente inexiste. Bom, já tenho o meu SAT funcionando com as chamadas DllCall a todas as funções funcionando, com incerteza da função EnviarDadosVenda (não está 100% sem erro), por isso a minha insistência em usar essas declarações de funções gentilmente fornecidas pelos amigos e que irei usa-las especialmente a função EnviarDadosVenda pelo brilhante resultado do seu retorno. No mais usarei as chamads DllCall nas funções que não consegui obter bons resultados como: ConsultarSat e TrocarCodigoAtivacao, mas de qualquer forma foi um grande avanço e definitivo. Agradeço de coração aos amigos pelo brilhante profissionalismo e serviços prestados.
Avatar do usuário
paulovirt
Usuário Nível 2
Usuário Nível 2
Mensagens: 69
Registrado em: 29 Jan 2007 10:00
Contato:

SAT-Fiscal a mistica está desvendada (quase...)

Mensagem por paulovirt »

Amigos

Não sei como será encarado o que eu vou dizer, mas estou numa situação muito complicada. Tentei chegar o mais perto possível do SAT, mas infelizmente, não sei se por conta de problemas pessoais não alcancei meu objetivo. Estou "travado" no básico, que é enviar o cupom, receber o XML autenticado e imprimir. Não estou tento mais tempo para tentar descobrir, até porque já tenho 2 clientes para implantar o SAT, um deles com meses parado, sendo eu cobrado todos os dias. Então gostaria de saber quem tem o código em Xharbour pronto e funcionando e queira negociar. Quero apenas o código, desde que não seja um valor surreal. Se não conseguir solucionar isso nesta semana, estou disposto a fechar negócio (o que não gostaria de jeito nenhum) com uma empresa de Maringá que faz a integração, mas cobra mensalidade. Ou de repente se os senhores tiverem alguma solução que fique "na escuta", e faça tratamento de arquivo XML ou mesmo TXT.
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

SAT-Fiscal a mistica está desvendada.

Mensagem por alaminojunior »

Paulo, mais tarde vamos resolver essa parada.
Estou na praia agora relaxando um pouco.
Assim que chegar em casa estarei aqui para decifrarmos essa esfinge.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

SAT-Fiscal a mistica está desvendada.

Mensagem por alaminojunior »

Paulo, vamos recomeçar do zero.
Retire pelo menos por enquanto, funções para ativar, consultar sessão, teste fim a fim, associar assinatura, trocar código de ativação.
Quando for preciso, para estas tarefas, utilize os softwares dos fabricantes.
O seu cliente usuário jamais irá usar estas funções, portanto esqueça delas.
Comece pelo básico, que é status, vender e cancelar. Depois se for o caso, com mais experiência, inclua as outras.

Com a DarumaFramework (apesar de interessante) você vai trançar a corda que irá lhe enforcar lá na frente. Esqueça disso !

Pegue estes códigos abaixo e faça o teste.

Verifique:
1. SAT.DLL na pasta junto com o executável ;
2. Equipamento SAT operacional
Detalhe importante: Você precisa utilizar a DLL específica para cada equipamento ou simulador. Renomeie para SAT.DLL, mas tenha certeza de estar usando a DLL correta.
Depois nos retorne.

Código: Selecionar todos

Function ConsultarSAT()
Local cString:= SATCONSULTAR( HB_RandomInt(999999) ), aString:= HB_ATOKENS(cString, [|])

alert( valtoprg( aString ) )

Return

Código: Selecionar todos

#pragma BEGINDUMP

   #include "hbapi.h"
   #include "windows.h"

   typedef LPSTR (WINAPI *_CONSULTARSAT)          ( INT nRandom );
   typedef LPSTR (WINAPI *_ENVIARVENDASAT)        ( INT nRandom, LPSTR cCodAtivacao, LPSTR cDadosVenda);
   typedef LPSTR (WINAPI *_CANULTIMAVENDASAT)     ( INT nRandom, LPSTR cCodAtivacao, LPSTR cChave, LPSTR cDadosVenda);
   typedef LPSTR (WINAPI *_CONSULTARSTATUSSAT)    ( INT nRandom, LPSTR cCodAtivacao);
   typedef LPSTR (WINAPI *_ATUALIZARSOFTWARE)     ( INT nRandom, LPSTR cCodAtivacao);
   typedef LPSTR (WINAPI *_EXTRAIRLOGS)           ( INT nRandom, LPSTR cCodAtivacao);

    HB_FUNC( SATCONSULTAR )
   {
       HINSTANCE handle = LoadLibrary("sat.dll");

       if (handle)
       {
        _CONSULTARSAT pFunc;
           pFunc = (_CONSULTARSAT) GetProcAddress(handle, "ConsultarSAT");
           hb_retc( ( LPSTR ) pFunc(hb_parni(1)) );
           FreeLibrary( handle );
       }
   }

   HB_FUNC( SATENVIARDADOSVENDA )
   {
       HINSTANCE handle = LoadLibrary("sat.dll");

       if (handle)
       {
           _ENVIARVENDASAT pFunc;
           pFunc = (_ENVIARVENDASAT) GetProcAddress(handle, "EnviarDadosVenda");
           hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3)) );
           FreeLibrary( handle );
       }
   }
   HB_FUNC( SATCANCELARULTIMAVENDA )
   {
       HINSTANCE handle = LoadLibrary("sat.dll");

       if (handle)
       {
           _CANULTIMAVENDASAT pFunc;
           pFunc = (_CANULTIMAVENDASAT) GetProcAddress(handle, "CancelarUltimaVenda");
           hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2), hb_parc(3), hb_parc(4)) );
           FreeLibrary( handle );
       }
   }

   HB_FUNC( SATCONSULTARSTATUSOPERACIONAL )
   {
       HINSTANCE handle = LoadLibrary("sat.dll");

       if (handle)
       {
           _CONSULTARSTATUSSAT pFunc;
           pFunc = (_CONSULTARSTATUSSAT) GetProcAddress(handle, "ConsultarStatusOperacional");
           hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
           FreeLibrary( handle );
       }
      }

   HB_FUNC( SATATUALIZARSOFTWARE )
   {
       HINSTANCE handle = LoadLibrary("sat.dll");

       if (handle)
       {
           _ATUALIZARSOFTWARE pFunc;
           pFunc = (_ATUALIZARSOFTWARE) GetProcAddress(handle, "AtualizarSoftwareSAT");
           hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
           FreeLibrary( handle );
       }
   }

   HB_FUNC( SATEXTRAIRLOGS )
   {
       HINSTANCE handle = LoadLibrary("sat.dll");

       if (handle)
       {
           _EXTRAIRLOGS pFunc;
           pFunc = (_EXTRAIRLOGS) GetProcAddress(handle, "ExtrairLogs");
           hb_retc( ( LPSTR ) pFunc(hb_parni(1), hb_parc(2)) );
           FreeLibrary( handle );
       }
   }

 #pragma ENDDUMP
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Edvaldo
Usuário Nível 1
Usuário Nível 1
Mensagens: 32
Registrado em: 17 Fev 2016 12:09
Localização: ubatuba

SAT-Fiscal a mistica está desvendada.

Mensagem por Edvaldo »

Ok, você já tem o arquivo de vendas pronto? Se já tiver eu posto como montar os dados do xml e envio ao sat que retornará os dados para o xml que irá ficar arquivado e depois a impressão do cupom. não precisa comprar nada
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por rochinha »

Amiguinhos,

Segue um arquivo de vendas válido no DIMEP e no SAT Oficial.

Código: Selecionar todos

 <CFe>
  <infCFe versaoDadosEnt="0.06">
   <ide>
    <CNPJ>22222222222222</CNPJ>
    <signAC>11111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111111111222222222222221111111111111122222222222222111111111111112222222222222211111111</signAC>
    <numeroCaixa>001</numeroCaixa>
   </ide>
   <emit>
    <CNPJ>11111111111111</CNPJ>
    <IE>111111111111</IE>
    <cRegTribISSQN>1</cRegTribISSQN>
    <indRatISSQN>N</indRatISSQN>
   </emit>
   <dest>
   </dest>
   <det nItem="1">
    <prod>
     <cProd>0802</cProd>
     <xProd>KIT AMORT TRAS ESCORT 92 PC</xProd>
     <NCM>00000000</NCM>
     <CFOP>5102</CFOP>
     <uCom>PC</uCom>
     <qCom>1.0000</qCom>
     <vUnCom>10.00</vUnCom>
     <indRegra>A</indRegra>
    </prod>
    <imposto>
     <ICMS>
      <ICMSSN102>
       <Orig>0</Orig>
       <CSOSN>102</CSOSN>
      </ICMSSN102>
     </ICMS>
     <PIS>
      <PISSN>
       <CST>49</CST>
      </PISSN>
     </PIS>
     <COFINS>
      <COFINSSN>
       <CST>49</CST>
      </COFINSSN>
     </COFINS>
    </imposto>
    <infAdProd>Informacoes Adicionais do Produto</infAdProd>
   </det>
   <det nItem="2">
    <prod>
     <cProd>0036</cProd>
     <xProd>KIT HOMOC UNO CAMB 91-95 KITSB</xProd>
     <NCM>00000000</NCM>
     <CFOP>5102</CFOP>
     <uCom>PC</uCom>
     <qCom>1.0000</qCom>
     <vUnCom>9.00</vUnCom>
     <indRegra>A</indRegra>
    </prod>
    <imposto>
     <ICMS>
      <ICMSSN102>
       <Orig>0</Orig>
       <CSOSN>102</CSOSN>
      </ICMSSN102>
     </ICMS>
     <PIS>
      <PISSN>
       <CST>49</CST>
      </PISSN>
     </PIS>
     <COFINS>
      <COFINSSN>
       <CST>49</CST>
      </COFINSSN>
     </COFINS>
    </imposto>
    <infAdProd>Informacoes Adicionais do Produto</infAdProd>
   </det>
   <total>
   </total>
   <pgto>
    <MP>
     <cMP>01</cMP>
     <vMP>20.00</vMP>
    </MP>
    <vTroco>1.00</vTroco>
   </pgto>
  </infCFe>
 </CFe>
Basta trocar a string 22222222222222 pelo CNPJ de software house cadastrado no aparelho e no emulador durante a vinculação.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar do usuário
paulovirt
Usuário Nível 2
Usuário Nível 2
Mensagens: 69
Registrado em: 29 Jan 2007 10:00
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por paulovirt »

Amiguinhos, bom dia

Estou utilizando a aplicação da ACBr para fazer alguns testes. Mas quando envio o XML ele retorna o seguinte erro:

Resposta:857673|06010|1487|Rejeicao: Codigo de Situacao Tributaria do PIS invalido (diferente de 49)||

Alguém sabe o que é isso?


Este é o arquivo xml de venda, que to usando como exemplo:

Código: Selecionar todos

<CFe>
	  <infCFe versaoDadosEnt="0.06">
	   <ide>
	    <CNPJ>15715792000158</CNPJ>
	    <signAC>i5CxeIA6mAAMgddVpfArY6MTZC7V5lpwPi4us2L+xKrJTvEF+aUgmxO8/3Pik6Y2kEbGMOQB6g7uEzodA9SfpU4hy34ffhB7OxYPpy3ONjPz+1qMMj3Z18KpjvOC/j4qOFM1f37hw8fXTF/X31v4zXbEQjzq1cbtKjlWZPPQB8MCFBNLWcMznFiefH7c2rs9Qam3DiIeAtb3UlLBYT0GsWhq89bKy5+V3x68xS8pyumS9HqnWHt2lUSbcJLEijsn9u2Gobb43Mhj2D3/cMrKB+s1XTZ7oiJP7opu/xqDOEfxSCqJUX+YXZjwQKz4H0RD2EtHGmAyFleX3AqqZTz7qg==</signAC>
	    <numeroCaixa>001</numeroCaixa>
	   </ide>
	   <emit>
	    <CNPJ>15715792000158</CNPJ>
	    <IE>623045121111</IE>
	    <cRegTribISSQN>1</cRegTribISSQN>
	    <indRatISSQN>N</indRatISSQN>
	   </emit>
	   <dest>
	   </dest>
	   <det nItem="1">
	    <prod>
	     <cProd>0802</cProd>
	     <xProd>KIT AMORT TRAS ESCORT 92 PC</xProd>
	     <NCM>00000000</NCM>
	     <CFOP>5102</CFOP>
	     <uCom>PC</uCom>
	     <qCom>1.0000</qCom>
	     <vUnCom>10.00</vUnCom>
	     <indRegra>A</indRegra>
	    </prod>
	    <imposto>
	     <ICMS>
	      <ICMSSN102>
	       <Orig>0</Orig>
	       <CSOSN>102</CSOSN>
	      </ICMSSN102>
	     </ICMS>
	     <PIS>
	      <PISSN>
	       <CST>49</CST>
	      </PISSN>
	     </PIS>
	     <COFINS>
	      <COFINSSN>
	       <CST>49</CST>
	      </COFINSSN>
	     </COFINS>
	    </imposto>
	    <infAdProd>Informacoes Adicionais do Produto</infAdProd>
	   </det>
	   <det nItem="2">
	    <prod>
	     <cProd>0036</cProd>
	     <xProd>KIT HOMOC UNO CAMB 91-95 KITSB</xProd>
	     <NCM>00000000</NCM>
	     <CFOP>5102</CFOP>
	     <uCom>PC</uCom>
	     <qCom>1.0000</qCom>
	     <vUnCom>9.00</vUnCom>
	     <indRegra>A</indRegra>
	    </prod>
	    <imposto>
	     <ICMS>
	      <ICMSSN102>
	       <Orig>0</Orig>
	       <CSOSN>102</CSOSN>
	      </ICMSSN102>
	     </ICMS>
	     <PIS>
	      <PISSN>
	       <CST>49</CST>
	      </PISSN>
	     </PIS>
	     <COFINS>
	      <COFINSSN>
	       <CST>49</CST>
	      </COFINSSN>
	     </COFINS>
	    </imposto>
	    <infAdProd>Informacoes Adicionais do Produto</infAdProd>
	   </det>
	   <total>
	   </total>
	   <pgto>
	    <MP>
	     <cMP>01</cMP>
	     <vMP>20.00</vMP>
	    </MP>
	    <vTroco>1.00</vTroco>
	   </pgto>
	  </infCFe>
</CFe>
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1297
Registrado em: 06 Jul 2004 00:44
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por ANDRIL »

Esse seu xml esta com os dados do EMITENTE diferentes do meu. Não esta especificado por exemplo o regime tributário e o regime de ISS parece não estar de acordo. Reveja a montagem do grupo do emitente, quando a rejeição esse xml foi retornado pelo SAT ou é o seu que envia a ele, pois já consta o PIS/COFINS como CST 49.

Código: Selecionar todos

<cRegTrib>1</cRegTrib>
<cRegTribISSQN>N</cRegTribISSQN>
<indRatISSQN>N</indRatISSQN>
Até+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
paulovirt
Usuário Nível 2
Usuário Nível 2
Mensagens: 69
Registrado em: 29 Jan 2007 10:00
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por paulovirt »

Adril...fiz a mudança no XML e não deu certo. Não sei o que pode estar acontecendo...
Avatar do usuário
rochinha
Administrador
Administrador
Mensagens: 4664
Registrado em: 18 Ago 2003 20:43
Localização: São Paulo - Brasil
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por rochinha »

Amiguinhos,

Este é o meu padrão com testes no emulador e num dimep.

combata o com o layout e veja se existem letras minusculas ou maiusculas onde não devem.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Responder