Jump to content
Fivewin Brasil

SAT-CFe


oribeiro

Recommended Posts

Pessoal,

 

Estou rodando o programa teste abaixo e ele trava na consulta, nem passa para o comando ativar. Alguém está tendo o mesmo problema?

 

#include "FiveWin.ch"
#include "dll.ch"

STATIC hACBrDLL

function Main()

    //cPath := cFilePath( GetModuleFileName( GetInstance() ) ) // Pega o caminho exato onde se encontra o sistema.

    // A SAT.dll pode estar na pasta do seu sistema

    ? "SAT.dll carregada",;
    hACBrDLL:= LoadLibrary( "c:\SAT\SAT.DLL" )    // LoadLibrary  LoadLib32

    ? "ConsultarSAT",;
    ConsultarSAT( RandomSAT( 999999 ) ) //[3]

    ? "AtivarSAT",;
    AtivarSAT( RandomSAT( 999999 ), 1, "123456", "11111111111111", 35 ) //[3]

    cCFeTeste := MemoRead( cPath+"CFeTeste.xml" )

    aRetorno := EnviarDadosVenda( RandomSAT( 999999 ), "123456", cCFeTeste )
    ? "EnviarDadosVenda",aRetorno[1],aRetorno[2],aRetorno[3],aRetorno[4]
return nil


**************************
*
* FUNÇÕES SAT
*

Function ConsultarSAT( nSessionRandom )
msginfo( nSessionRandom ,"consultar")
   cString := SATConsultar( nSessionRandom )
   return StringToArray( cString, "|" )

Function AtivarSAT( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
msginfo( numeroSessao ,"ativar")
   cString := SATAtivar( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
   return StringToArray( cString, "|" )

Function DesligarSAT()
   cString := SATDesligar()
   return StringToArray( cString, "|" )

Function ConsultarNumeroSessao( nSessionRandom, codigoAtivacao, numeroSessao )
   cString := SATConsultarNumeroSessao( nSessionRandom, codigoAtivacao, numeroSessao )
   return StringToArray( cString, "|" )

Function TesteFimAFim()
   cString := SATTesteFimAFim()
   return StringToArray( cString, "|" )

Function EnviarDadosVenda( numeroSessao, codigoAtivacao, dados )
   cString := SATEnviarDadosVenda( numeroSessao, codigoAtivacao, dados )
   return StringToArray( cString, "|" )

Function CancelarUltimaVenda( numeroSessao, codigoAtivacao, chaveAcesso, dados )
   cString := SATCancelarUltimaVenda( numeroSessao, codigoAtivacao, chaveAcesso, dados )
   return StringToArray( cString, "|" )


/*
//DLL32 FUNCTION SATConsultar( nSessionRandom AS STRING ) AS STRING PASCAL FROM "ConsultarSAT" LIB hACBrDLL
//DLL32 FUNCTION SATConsultar( nSessionRandom AS STRING ) AS LONG PASCAL   FROM "ConsultarSAT" LIB hACBrDLL
//DLL32 FUNCTION SATConsultar( nSessionRandom AS LPSTR )  AS STRING PASCAL FROM "ConsultarSAT" LIB hACBrDLL
//DLL32 FUNCTION SATConsultar( nSessionRandom AS LPSTR )  AS LONG PASCAL   FROM "ConsultarSAT" LIB hACBrDLL
//DLL32 FUNCTION SATConsultar( nSessionRandom AS _INT )   AS STRING PASCAL FROM "ConsultarSAT" LIB hACBrDLL
//DLL32 FUNCTION SATConsultar( nSessionRandom AS _INT )   AS LONG PASCAL   FROM "ConsultarSAT" LIB hACBrDLL

     // (DELPHI) function ConsultarSAT( numeroSessao : Longint ) : PChar ; cdecl; External 'SAT.DLL';
*/

DLL32 FUNCTION SATConsultar(            nSessionRandom            AS _INT     ) AS STRING PASCAL FROM "ConsultarSAT"            LIB hACBrDLL

 

 

DLL32 FUNCTION SATAtivar(               numeroSessao              AS _INT  ,;
                                        subComando                AS _INT  ,;
                                        codigoDeAtivacao          AS STRING,;
                                        CNPJ                      AS STRING,;
                                        cUF                       AS _INT     ) AS STRING PASCAL FROM "AtivarSAT"               LIB hACBrDLL

DLL32 FUNCTION SATDesligar(                                                   ) AS STRING PASCAL FROM "DesligarSAT"             LIB hACBrDLL

DLL32 FUNCTION SATConsultarNumeroSessao(getRandom                 AS _INT  ,;
                                        codigoAtivacao            AS STRING,;
                                        numeroSessao              AS STRING   ) AS STRING PASCAL FROM "ConsultarNumeroSessao"   LIB hACBrDLL


DLL32 FUNCTION SATTesteFimAFim(         numeroSessao              AS _INT  ,;
                                        codigoAtivacao            AS STRING,;
                                        dados AS STRING                       ) AS STRING PASCAL FROM "TesteFimAFim"            LIB hACBrDLL

DLL32 FUNCTION SATEnviarDadosVenda(     numeroSessao              AS _INT  ,;
                                        codigoAtivacao            AS STRING,;
                                        dados                     AS STRING   ) AS STRING PASCAL FROM "EnviarDadosVenda"        LIB hACBrDLL

DLL32 FUNCTION SATCancelarUltimaVenda(  numeroSessao              AS _INT  ,;
                                        codigoAtivacao            AS STRING,;
                                        chaveAcesso               AS STRING,;
                                        dados                     AS STRING   ) AS STRING PASCAL FROM "CancelarUltimaVenda"     LIB hACBrDLL


**********************************************
*
* OUTRAS FUNÇÕES
*

Function RandomSAT( nMaximo )
   static nRandom
   local nTemporal
   nMaximo = if( nMaximo == NIL, 65535, nMaximo )
   if nRandom == NIL
      nRandom = seconds()
   endif
   nTemporal = ( nRandom * seconds() ) % ( nMaximo + 1 )
   nTemporal = if( nTemporal < 1, 1, nTemporal )
   nRandom = nTemporal + seconds()
   if nTemporal<100000
     ntemporal:= ntemporal + 99999
   endif
   RETURN int( nTemporal )

function StringToArray( cString, cSeparator )
   LOCAL nPos
   LOCAL aString := {}
   DEFAULT cSeparator := ";"
   cString := ALLTRIM( cString ) + cSeparator
   DO WHILE .T.
      nPos := AT( cSeparator, cString )
      IF nPos = 0
         EXIT
      ENDIF
      AADD( aString, SUBSTR( cString, 1, nPos-1 ) )
      cString := SUBSTR( cString, nPos+1 )
   ENDDO
   RETURN ( aString )

Return(lOk)

Link to comment
Share on other sites

fala oscar

falei com o pessoal da daruma hoje via skype e eles tem os testes desde 2008 e agora no proximo mes devem implementar dentro do darumaframework.dll 

 

aguarde se voce ja estiver usando o darumaframework so aguardar agora se esta usando o daruma32.dll (recomendo migrar e  aguardar para o proximo mes)

 

 

a daruma sempre foi parcerira dos desenvovedores .... so aguardar faltam poucos dias

 

 

 

segue copia so chat via skype com o pessoal da daruma

 

 

 

[14:47:04] Suporte Desenvolvedor Daruma - Larissa Luces: Boa Tarde
[14:47:46] Suporte Desenvolvedor Daruma - Larissa Luces: Sim, temos o sat desde 2008
[14:47:52] daniel: boa tarde ... o darumaframework.dll tem algum recurso para implementação do sat fiscal ?
[14:47:56] Suporte Desenvolvedor Daruma - Larissa Luces: só falta o fisco homologar
[14:48:00] daniel: sem precisar acbr ou outro componente
[14:48:08] Suporte Desenvolvedor Daruma - Larissa Luces: mes que vem ja  vamos dar o pacote para vc iniciar o desenvolvimento
[14:48:14] Suporte Desenvolvedor Daruma - Larissa Luces: mais com a darumaframework.dll
[14:48:15] daniel: pois parece q ja esta em testes e deve funcionar agora em 2013 em sp
[14:48:37] daniel: julho de 2013
[14:50:36] Suporte Desenvolvedor Daruma - Larissa Luces: a partir de 1 de julho vc nao pode mais lacrar impressora
[14:50:39] Suporte Desenvolvedor Daruma - Larissa Luces: que ja tem podera continuar
[14:50:56] Suporte Desenvolvedor Daruma - Larissa Luces: eles tem um emulador
[14:51:02] Suporte Desenvolvedor Daruma - Larissa Luces: é eles que vao utilizar?
[14:51:10] daniel: isso so em SP ?
[14:51:21] daniel: ou nos outros estados tambem ?
[14:51:50] Suporte Desenvolvedor Daruma - Larissa Luces: apenas em sp
Link to comment
Share on other sites

aqui nao deu GPF 

 

estou usando fw805 e xharbour

 

 

xHarbour Compiler build 1.1.0 (SimpLex)
 
testei no windows 8 pro
 
so nao entendi o help do sat que mostra uma pasta sat na apresentação do powerpoint para mover para o c:\sat ... e o emulador em java aqui nao funcionou nao
 
 
so adicionoi a seguinte linha no seu codigo acima
 
    hACBrDLL:= LoadLibrary( "c:\SAT\SAT.DLL" )    // LoadLibrary  LoadLib32                                                                 
    ? " hACBrDLL" , hACBrDLL  // adicionei essa linha aqui
    ? "ConsultarSAT",;                                                                                                                      

 

 

Link to comment
Share on other sites

Tem uma pasta \SAT dentro do ZIP disponiível no site da SEFAZ: http://www.fazenda.sp.gov.br/sat/downloads/vigentes.asp chamado (Emulador_off_line_2_5_7.zip)

 

Copie a pasta SAT desse zip para C:\SAT.

 

Dentro dessa pasta é que está o SAT.DLL.

 

Com isso, esse erro some, o programa consegue fazer a consulta, mas trava no retorno, parece que ele entra em LOOP no comando:

DLL32 FUNCTION SATConsultarNumeroSessao(getRandom                 AS _INT  ,;
                                        codigoAtivacao            AS STRING,;
                                        numeroSessao              AS STRING   ) AS STRING PASCAL FROM "ConsultarNumeroSessao"   LIB hACBrDLL

 

Verifique.

Link to comment
Share on other sites

  • 2 years later...

Pessoal,

Por favor, me ajudem a definir essa função em xHarbour:

Ela é do Delphi:

function regAlterarValor_SAT_Daruma(pszTagSAT:String; pszValorTagSAT:String):Integer; StdCall; External 'DarumaFramework.dll'

Estou migrando todas as funções do SAT para usar a solução da DARUMA.

Obrigado,

Link to comment
Share on other sites

Colegas o escritorio contabil da minha empresa já esta fazendo as mudança, pois o meu CNAE não estava como desenvolvedor, o legal é a taxa de imposto de 6,5% para 17%, parece que tudo que o governo faz é pensado, mais o que não consegui achar ate agora foi a respeito de eu ser obrigado a comprar um SAT para mim, esta informação procede.

Obrigado

Link to comment
Share on other sites

- Luiz infelizmente sim, o mais em conta que encontrei foi o SDK da TANCA.

Vlw HASA pela resposta, viu só uma duvida, cada equipamento de SAT tem suas particularidade, tipo como funciona as impressora fiscal(suas DLL e declaração), digo isto pq se tiver suas particularidade mesmo se for para pagar um pouco mais caro, acho o suporte da DARUMA muito bom, dai alem de comprar para mim iria sempre indicar a mesma marca, ou não tem nada ver uma vez pronto, dando faz o equipamento transmissor.

Obrigado

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...