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

eduardomc00
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 07 Out 2014 18:29
Localização: São Paulo

SAT-Fiscal a mistica está desvendada.

Mensagem por eduardomc00 »

alguém me ajuda?! Eles não me aceitaram ainda! =/
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por HASA »

:))

Eduardo, procuro o Márcio ele é gente fina:
ntsinfo@ntsinfo.com.br
:)Pos
HASA
eduardomc00
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 07 Out 2014 18:29
Localização: São Paulo

SAT-Fiscal a mistica está desvendada.

Mensagem por eduardomc00 »

Fala galera....

Conseguir resolver essa porcaria de SAT.

com HARBOUR 3.2 e MINGW que não funcionava de jeito nenhum.

Vou ajeitar os códigos e mando aqui para vcs!

até mais, valew a ajuda !
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por HASA »

:))

Eduardo, ainda estou enroscado no teste fima fim do emulador da Sefaz + AcbrPlus, estou com algumas dificuldades familiares, ando mais levando pessoal no médico que trabalhando, creio que essa semana se ajeite tudo.

Qualquer ajuda agradeço,
:)Pos
HASA
eduardomc00
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 07 Out 2014 18:29
Localização: São Paulo

SAT-Fiscal a mistica está desvendada.

Mensagem por eduardomc00 »

tranquilo... só vou terminar de arrumar os códigos e fazer mais uns testes que envio aqui.

o meu problema era que o DLLCALL() só me retornava número...! e não a string ou código de erro...

até amanhã ou depois espero estar compartilhando com vcs!

abraços!
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 »

eduardomc00 escreveu:Galera, boa tarde....

Alguém consegue utilizar a DLL em (x)harbour puro?
a função DLLCALL() só devolve valor inteiro...
alguém pode me ajudar?!
Também me deparei com isso.
A DLL devolve um número inteiro, que na verdade é o ponteiro com o endereço da informação.
Precisa converter com:

Código: Selecionar todos

ret:= dllcall(h1,32,"ConsultarSAT",r)
xRet:= HB_Pointer2String(ret,100)
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por HASA »

:-O
Eduardo, por um acaso tem alguma novidade ?

:(

HASA
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

SAT-Fiscal a mistica está desvendada.

Mensagem por Itamar M. Lins Jr. »

Ola!
Tem que trocar o nome do tópico p/ SAT-Fiscal a mística continua a ser desvendada... Aguardem cenas dos próximos capítulos!
Isso é uma novela! Imagine p/ o lojista a manutenção de algo tão complicado ?

Com o NFC-e não é mais fácil ? E a legislação ? Não mudou ou continua obrigatório o SAT ai em SAMPA ?

Eita negocinho cheio de segredos!

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
eduardomc00
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 07 Out 2014 18:29
Localização: São Paulo

SAT-Fiscal a mistica está desvendada.

Mensagem por eduardomc00 »

Fala galerinha do mal....

SaBosta finalmente funcionou....

Utilizo Harbour 3.2 com MINGW e GTWVW.

Segue abaixo o código

está funcionando todas as funções!!!!
ha campos a serem adicionados no XML mas do jeito que está, está vendendo.

Código: Selecionar todos


DBSELECTAREA( "cur_job" )

aRetornoSAT := EnviarDadosVenda( RandomSAT( 999999 ), "xxxxyyyyyzzzz", GeraXML_SAT( "cur_job" ) )

cSecao := aRetornoSAT[1]
cSatus := aRetornoSAT[4]
cXML64 := HB_BASE64Decode( aRetornoSAT[7] )
cChave := aRetornoSAT[8]

IF "SUCESSO" $ UPPER( cSatus )

ENDIF

Código: Selecionar todos

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

///////////////////////////////////////
FUNCTION ConsultarSAT()
///////////////////////////////////////

LOCAL cString
LOCAL aString

cString := SATConsultar( RandomSAT( 999999 ) )
aString := StringToArray( cString, "|" )
RETURN IIF(VALTYPE(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
////////////////////////////////////////////////////////////////////////////////////////////////
// EOF ConsultarSAT()


//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

//////////////////////////////////////////////////////////////////////////
FUNCTION ConsultarStatusOperacionalSAT( nSessionRandom, codigoDeAtivacao )
//////////////////////////////////////////////////////////////////////////
LOCAL cString
LOCAL aString

cString := SATConsultarStatusOperacional( nSessionRandom, codigoDeAtivacao )
aString := StringToArray( cString, "|" )

RETURN IIF(VALTYPE(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
////////////////////////////////////////////////////////////////////////////////////////////////
// EOF ConsultarStatusOperacionalSAT()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

///////////////////////////////////////////////////////////////////////////
FUNCTION AtivarSAT( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
///////////////////////////////////////////////////////////////////////////
LOCAL cString
LOCAL aString

cString := SATAtivar( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )
aString := StringToArray( cString, "|" )

RETURN IIF(VALTYPE(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
////////////////////////////////////////////////////////////////////////////////////////////////
// EOF AtivarSAT()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

//////////////////////////////////////////////////////////////////////////////
FUNCTION AssociarAssinaturaSAT( numeroSessao, codigoDeAtivacao, CNPJ, CNPJSH )
//////////////////////////////////////////////////////////////////////////////
LOCAL cString
LOCAL aString

cString := SATAssociarAssinatura( numeroSessao, codigoDeAtivacao, CNPJ, CNPJSH )
aString := StringToArray( cString, "|" )

RETURN IIF(VALTYPE(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
////////////////////////////////////////////////////////////////////////////////////////////////
// EOF AssociarAssinaturaSAT()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

//////////////////////////////////////////////////////////////////////////////
FUNCTION ConsultarNumeroSessao( nSessionRandom, codigoAtivacao, numeroSessao )
//////////////////////////////////////////////////////////////////////////////
LOCAL cString
LOCAL aString

cString := SATConsultarNumeroSessao( nSessionRandom, codigoAtivacao, numeroSessao )
aString := StringToArray( cString, "|" )

RETURN IIF(VALTYPE(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
////////////////////////////////////////////////////////////////////////////////////////////////
// EOF ConsultarNumeroSessao()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

////////////////////////////////////////////////////////////
FUNCTION TesteFimAFim( numeroSessao, codigoAtivacao, dados )
////////////////////////////////////////////////////////////
LOCAL cString
LOCAL aString

cString := SATTesteFimAFim( numeroSessao, codigoAtivacao, dados )
aString := StringToArray( cString, "|" )

RETURN IIF(VALTYPE(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
////////////////////////////////////////////////////////////////////////////////////////////////
// EOF TesteFimAFim()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

////////////////////////////////////////////////////////////////
FUNCTION EnviarDadosVenda( numeroSessao, codigoAtivacao, dados )
////////////////////////////////////////////////////////////////
LOCAL cString
LOCAL aString

cString := SATEnviarDadosVenda( numeroSessao, codigoAtivacao, dados )
aString := StringToArray( cString, "|" )

RETURN IIF(VALTYPE(aString)#"A".or.len(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
////////////////////////////////////////////////////////////////////////////////////////////////
// EOF EnviarDadosVenda()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

////////////////////////////////////////////////////////////////////////////////
FUNCTION CancelarUltimaVenda( numeroSessao, codigoAtivacao, chaveAcesso, dados )
////////////////////////////////////////////////////////////////////////////////
LOCAL cString
LOCAL aString

cString := SATCancelarUltimaVenda( numeroSessao, codigoAtivacao, chaveAcesso, dados )
aString := StringToArray( cString, "|" )

RETURN IIF(VALTYPE(aString)#"A".or.LEN(aString)<1,{"0","","SAT-CFe: Sem Retorno","",""},aString)
////////////////////////////////////////////////////////////////////////////////////////////////
// EOF CancelarUltimaVenda()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

//////////////////////////////
FUNCTION GeraXML_SAT( cAlias )
//////////////////////////////

LOCAL cXML := ""

LOCAL cCNPJContribuinte := ""
LOCAL cCNPJSofterHouse  := ""
LOCAL cIEContribuinte   := ""
LOCAL cIMContribuinte   := ""
LOCAL cSign             := ""

LOCAL nItem            := 0

DBSELECTAREA(cAlias)

IF WSet( LPK_B_PC_TEC )

   cCNPJContribuinte := "08723218000186"
   cIEContribuinte   := "149.626.224.113"
   cCNPJSofterHouse  := "16716114000172"
   cSign             := "SGR-SAT SISTEMA DE GESTAO E RETAGUARDA DO SAT"
ELSE
ENDIF
DBGOTOP()

cXML := '<CFe>'
cXML += '<infCFe versaoDadosEnt="0.06">'
   SAT_incluiTag( @cXML, "ide")

      SAT_incluiTag( @cXML, "CNPJ"              , cCNPJSofterHouse  )
      SAT_incluiTag( @cXML, "signAC"            , cSign             )
      SAT_incluiTag( @cXML, "numeroCaixa"            , "099" )

   SAT_incluiTag( @cXML, "/ide")

   SAT_incluiTag( @cXML, "emit")

      SAT_incluiTag( @cXML, "CNPJ"          , ALLTRIM( Clear_Slashs( cCNPJContribuinte ) ) )
      SAT_incluiTag( @cXML, "IE"            , ALLTRIM( Clear_Slashs( cIEContribuinte) ) )
      // SAT_incluiTag( @cXML, "IM"         , Clear_Slashs( cIMContribuinte) )
      // SAT_incluiTag( @cXML, "cRegTrib"      , NTRIM(SetaFil( GF_COD_REG_TRIB )))
      SAT_incluiTag( @cXML, "cRegTribISSQN" ,"1" )
      SAT_incluiTag( @cXML, "indRatISSQN"   ,"N" )
   SAT_incluiTag( @cXML, "/emit")


   SAT_incluiTag( @cXML, "dest" )
      IF LEN(ALLTRIM( Clear_Slashs(cur_job->cnpj_cpf)) ) == 14
         SAT_incluiTag( @cXML, "CNPJ"    , ALLTRIM( Clear_Slashs( cur_job->cnpj_cpf) ) )
      ELSEIF LEN(ALLTRIM( Clear_Slashs(cur_job->cnpj_cpf)) ) == 11
         SAT_incluiTag( @cXML, "CPF"     , ALLTRIM( Clear_Slashs( cur_job->cnpj_cpf) ) )
      ENDIF
   SAT_incluiTag( @cXML, "/dest" )

   WHILE !EOF()
      cXML+='<det nItem="'+NTRIM( ++nItem )+'">'

          SAT_incluiTag( @cXML, "prod" )
              SAT_incluiTag( @cXML, "cProd"    , Clear_Text_2_NFe( cur_job->cod_p ) )

              IF !EMPTY( Clear_Text_2_NFe( cur_job->cod_ean13 ) )
                 SAT_incluiTag( @cXML, "cEAN"     , Clear_Text_2_NFe( cur_job->cod_ean13 ) )
              ENDIF
              
              SAT_incluiTag( @cXML, "xProd"    , Clear_Text_2_NFe( cur_job->descricao ) )
              SAT_incluiTag( @cXML, "NCM"      , Clear_Text_2_NFe( cur_job->ncm_sh) )
              SAT_incluiTag( @cXML, "CFOP"     , ALLTRIM( Clear_Slashs( cur_job->cfop) ) )
              SAT_incluiTag( @cXML, "uCom"     , Clear_Text_2_NFe( cur_job->unidade ) )
              SAT_incluiTag( @cXML, "qCom"     , sFvalor(cur_job->quantidade, 4) )
              SAT_incluiTag( @cXML, "vUnCom"   , sFvalor(cur_job->vl_u_nff, 3) )
              SAT_incluiTag( @cXML, "indRegra" , "A" )
          SAT_incluiTag( @cXML, "/prod" )

          SAT_incluiTag( @cXML, "imposto" )

              SAT_incluiTag( @cXML, "vItem12741", "1.00" )

              SAT_incluiTag( @cXML, "ICMS" )

                  IF ASCAN( { "00","020","090" }, RIGHT( cur_job->sit_trib, 2 ) ) > 0

                     SAT_incluiTag( @cXML, "ICMS00" )
                         // CST 00, 20, 90
                         SAT_incluiTag( @cXML, "Orig"      , LEFT(cur_job->cod_orig,1))
                         SAT_incluiTag( @cXML, "CST"       , RIGHT( cur_job->sit_trib, 2 ) )
                         SAT_incluiTag( @cXML, "pICMS"     , ALLTRIM(TRANSFORM( cur_job->icms_nff,  "999.99" )))
                         // SAT_incluiTag( @cXML, "vICMS"     , ALLTRIM(TRANSFORM( cur_job->vl_icms_it,  "999999999999.99" )))
                     SAT_incluiTag( @cXML, "/ICMS00" )

                  ELSEIF ASCAN( { "40","41","50","60" }, RIGHT( cur_job->sit_trib,2 ) ) > 0

                     SAT_incluiTag( @cXML, "ICMS40" )
                         // CST 40, 41, 50, 60
                         SAT_incluiTag( @cXML, "Orig"      , LEFT(cur_job->cod_orig,1)) // * 1 * //
                         SAT_incluiTag( @cXML, "CST"       , RIGHT( cur_job->sit_trib,2 ) ) // * 41 * //
                     SAT_incluiTag( @cXML, "/ICMS40" )

                  ELSEIF ASCAN( { "102","300","500" }, cur_job->csosn_v ) > 0

                     SAT_incluiTag( @cXML, "ICMSSN102" )
                         // CSOSN 102, 300, 500
                         SAT_incluiTag( @cXML, "Orig"      , LEFT(cur_job->cod_orig,1))
                         SAT_incluiTag( @cXML, "CSOSN"     , cur_job->csosn_v)
                     SAT_incluiTag( @cXML, "/ICMSSN102" )

                  ELSEIF ASCAN( { "900" }, cur_job->csosn_v ) > 0

                     SAT_incluiTag( @cXML, "ICMSSN900" )
                         // CSOSN 900
                         SAT_incluiTag( @cXML, "Orig"      , LEFT(cur_job->cod_orig,1))
                         SAT_incluiTag( @cXML, "CSOSN"     , cur_job->csosn_v)
                         SAT_incluiTag( @cXML, "pICMS"     , cur_job->aliq_cr_sn )
                         SAT_incluiTag( @cXML, "vICMS"     , cur_job->v_cr_sn_it )
                     SAT_incluiTag( @cXML, "/ICMSSN900" )

                  ENDIF
              SAT_incluiTag( @cXML, "/ICMS" )

              SAT_incluiTag( @cXML, "PIS" )
                  SAT_incluiTag( @cXML, "PISAliq" )
                      SAT_incluiTag( @cXML, "CST"       , cur_job->cst_pis ) // * 01 * //
                      SAT_incluiTag( @cXML, "vBC"       , ALLTRIM(TRANSFORM( cur_job->vl_t_it,  "999999999999.99" ))) // * 1.00 * //
                      SAT_incluiTag( @cXML, "pPIS"      , ALLTRIM(TRANSFORM( cur_job->pis,  "999.9999" ))) // * 1.0000 * //
                  SAT_incluiTag( @cXML, "/PISAliq" )
              SAT_incluiTag( @cXML, "/PIS" )

              SAT_incluiTag( @cXML, "COFINS" )
                  SAT_incluiTag( @cXML, "COFINSAliq" )
                      SAT_incluiTag( @cXML, "CST"       , cur_job->cst_cofins )
                      SAT_incluiTag( @cXML, "vBC"       , ALLTRIM(TRANSFORM( cur_job->vl_t_it,  "999999999999.99" )))
                      SAT_incluiTag( @cXML, "pCOFINS"   , ALLTRIM(TRANSFORM( cur_job->cofins,  "999.9999" )))
                  SAT_incluiTag( @cXML, "/COFINSAliq" )
              SAT_incluiTag( @cXML, "/COFINS" )
          SAT_incluiTag( @cXML, "/imposto" )
      SAT_incluiTag( @cXML, "/det" )

      DBSKIP()
   ENDDO

   SAT_incluiTag( @cXML, "total" )
       SAT_incluiTag( @cXML, "vCFeLei12741","1.00" )
   SAT_incluiTag( @cXML, "/total" )

   SAT_incluiTag( @cXML, "pgto" )
   SAT_incluiTag( @cXML, "MP" )
       SAT_incluiTag( @cXML, "cMP"    , "01") // * 1 * //
       SAT_incluiTag( @cXML, "vMP"    , sFvalor(cur_job->vl_u_nff, 2)) // * mesmo que vItem * //
   SAT_incluiTag( @cXML, "/MP" )
   SAT_incluiTag( @cXML, "/pgto" )

cXML += '</infCFe>'
cXML += '</CFe>'

RETURN( cXML )
//////////////
// EOF GeraXML_SAT()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

//////////////////////////////////////////
FUNCTION SAT_incluiTag( cXML, cTag,cValor)
//////////////////////////////////////////

   IF cValor = Nil
      cXML += '<'+cTag+'>'
   ELSEIF EMPTY(cValor)
      IF cTag == 'nro'
         cXML+= '<'+cTag+'>'+cValor+'</'+cTag+'>'
      ELSE
         cXML+= '<'+cTag+' />'
      ENDIF
   ELSE
      cXML+= '<'+cTag+'>'+cValor+'</'+cTag+'>'
   ENDIF

RETURN( NIL )
/////////////
// EOF SAT_IncluiTag()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

/////////////////////////////
FUNCTION RandomSAT( nMaximo )
/////////////////////////////

LOCAL 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( nTemporal)
//////////////////
// EOF RandomSAT()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

/////////////////////////////////////////////
FUNCTION StringToArray( cString, cSeparator )
/////////////////////////////////////////////

LOCAL nPos
LOCAL aString := {}
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 )
//////////////////
// EOF StringToArray()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

//////////////////////////////////////////
STATIC FUNCTION sFvalor( nVar, nDecimals )
//////////////////////////////////////////

LOCAL cReturn

// NDEFAULT nDecimals TO 4

IF nDecimals == 4
   cReturn := ALLTRIM(TRANSFORM(nVar, "999999999999.9999"))
ELSEIF  nDecimals == 3
   cReturn := ALLTRIM(TRANSFORM(nVar, "999999999999.999"))
ELSEIF  nDecimals == 2
   cReturn := ALLTRIM(TRANSFORM(nVar, "999999999999.99"))
ENDIF

RETURN( cReturn )
/////////////////
// EOSF sFvalor()

//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

#ifdef __GUI_GT_WVW__  // __XHARBOUR__
   #pragma BEGINDUMP

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

      typedef LPSTR (WINAPI *_CONSULTARSAT)          ( INT nRandom );
      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 *_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);

      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( 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( 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 );
          }
      }


   #pragma ENDDUMP
#endif

eduardomc00
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 07 Out 2014 18:29
Localização: São Paulo

SAT-Fiscal a mistica está desvendada.

Mensagem por eduardomc00 »

Lembrando que funcionou em um EQUIPAMENTO SAT.

Não Só no EMULADOR!
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por HASA »

:(
- Itamar, nada mudou, para eu ter a NFC-e preciso ter um SAT de contingência, ou seja, não vale a pena a NFC-e já que terei que deixar a "contingencia" funcionando, faço só SAT. Tive alguns problemas de ordem hospitalar com familiares (no plural mesmo), que me quebrou, nesse meio tempo a Sefaz-SP liberou um cronograma que começa a partir de 01/07/2015 e aparentemente não haverá mais prorrogação veja http://www.fazenda.sp.gov.br/sat/obriga ... iedade.asp, ai atrasou, e como você mesmo mencionou a mistica continua sendo desvendada para você ter uma ideia a Sefaz-SP parou o web service do SAT em 19/06/2014 travando todos os equipamentos sat´s em teste e aparentemente também alguns já em produção, ora se o SAT é a contigencia imagina o equipamento bloqueou o uso para muitos usuários, e por ai vamos indo...

:))
- Eduardo, valeu mesmo, agora e juntar tudo e mandar pal... :% , estou comprando meu kit de desenvolvedor, já agendei a compra do certificado digital e para as semanas creio que estarei mais atualizado com essas maravilhas :)Pos

Obrigado a todos que acompanham, ajudam e apenas corujão,

:xau

HASA
eduardomc00
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 07 Out 2014 18:29
Localização: São Paulo

SAT-Fiscal a mistica está desvendada.

Mensagem por eduardomc00 »

Hasa,

Não precisa de certificado... o proprio equipamento já tem certificado...
o XML de retorno já vem assinado e tudo mais!!!!!!

Tbm perdi tempo nisso, já que tava fazendo errado o XML.

eu já tenho NFC-e funcionando no Rio de janeiro!!!

aqui em sp, Não vai valer a pena!!!
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por HASA »

:-O
O Certificado digital é para poder me cadastrar na site da Sefaz e gerar o código de associação de assinatura do SAT cnpj+cnpj+certificado ok. Pagina 225 e 226 do Manual de especificação SAT versão 2.14.10 ver o tópico 6.1.10.

:xau

HASA
eduardomc00
Usuário Nível 1
Usuário Nível 1
Mensagens: 43
Registrado em: 07 Out 2014 18:29
Localização: São Paulo

SAT-Fiscal a mistica está desvendada.

Mensagem por eduardomc00 »

a ta...
mas kit desenvolvedor não tem isso!!!!!!
Avatar do usuário
HASA
Colaborador
Colaborador
Mensagens: 1088
Registrado em: 01 Set 2003 19:50
Localização: São Paulo
Contato:

SAT-Fiscal a mistica está desvendada.

Mensagem por HASA »

:D
Exatamente no emulador e no kit pode enviar um sequencia de 344 caracteres que passa. Essa sua função AssociarAssinaturaSAT() ira enviar a assinatura cripitografada quando em produção ok. Essa associação será efetuado apenas uma vez.

:)Pos

HASA
Responder