Jump to content
Fivewin Brasil

SAT-Fiscal - a mistica foi desvendada.


rochinha

Recommended Posts

Amiguinhos,

É com satisfação que posso dizer que meu sistema já está 99% SAT-CFe Ready.

O resultado foi obtido depois de noites sem sono e desvendamento de um mundo praticamente novo, ou seja, versão 2.0.

Baseado nos aplicativos do conjunto SAT-CFe para desenvolvedores, como o AC, Ativador e Emulador SAT comecei a planejar os meios de obter exito com o uso destas ferramentas e desenhar rapidamente meu módulo de interface.

Totalmente baseado em Harbour tradicional e automação OLE consegui algo que não havia planejado e nenhum dos colegas havia esclarecido.

Como o que vemos ai por volta das interfaces de acesso ao SEFAZ geralmente encontramos código fonte em Visual Basic, Delphi, Sharp, etc.

Como sou chato e persistente quando ao que desejo consegui obter acesso direto ao Emulador SAT e envio de comandos com um aplicativozinho básico.

E para minha surpresa os procedimentos são muitissimo simples.

As funçoes ConsultarSAT(), AtivarSAT() e EnviarDadosVenda() são importantes neste primeiro momento e foram baseadas no uso delas que implementei em meu sistema o uso para teste e homologação.

Para o uso de EnviarDadosVenda() foi necessário ainda confeccionar o XML no layout para CF-e, o que foi fácil pois o mesmo pode ser baseado no layout da NF-e.

Após consultar o status do SAT, passamos a Ativá-lo e conforme o retorno obtido fazer o envio dos dados do cupom e se tudo correr bem obter, validação, assinatura e envio.

Então temos:

- Primeira etapa - geração do XML contendo os dados do cupom baseado no layout CF-e.

- Segunda etapa - uso dos comandos do driver SAT para perfazer o processo fiscal.

- Terceira etapa - imprimir o cupom com layout definido nos manuais de requisição do SAT-CFe.

PRIMEIRA ETAPA

Abaixo esta o conteúdo do XML de testes no layout do CF-e:


<?xml version="1.0" encoding="UTF-8"?>

35

616600

59

000000007

000005

20121124

235018

0

1

64185629000136

123123

CFe351211034499940001165900000000700000561660002012112423501821011898853878

111111111111

Estabelecimento de Teste 2

Estabelecimento Fantasia 2

rua das flores

1005

-

centro

Sao Paulo

00000000

111111111111

123123

1

N

11808853070

JCR

01

Mega Alcool 92,8A

0001

un

1.0000

2.100

2.10

A

2.10

1

41

01

1.00

1.0000

1.00

1.00

1.0000

1.0000

1.0000

1.00

1.00

1.0000

1.0000

1.0000

1.00

0.00

2.10

0.00

1.00

1.00

1.00

1.00

0.00

2.10

1

2.10

id=code>id=code>

SEGUNDA ETAPA

Apesar de usar Harbour, a interface uso o Fivewin para efeito de mensagens e etc.

A senha "123456" foi usada no momento da Ativação do SAT e portanto pode ser trocada.


/////////////////////////////////////////////////////////////////////////////

//

// PDVSAT - Compativeis com SAT 4.00

//

// Autor: Jose Carlos da Rocha

// Data: 26/11/2012

// Email: contato@5volution.com.br

// MSN: fivolution@hotmail.com

// Linguagem: xBase

// Prefixo: SAT

// Plataformas: DOS, Windows

// Requerimentos: Harbour/xHarbour( Para uso com Clipper eliminar Prefixo )

// Versao SAT: 4.00

//

/////////////////////////////////////////////////////////////////////////////

#include "FiveWin.ch"

#include "dll.ch"

function Main()

PUBLIC hACBrDLL

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( cPath+"SAT.DLL" )

? "ConsultarSAT",;

ConsultarSAT( Random( 999999 ) ) //[3]

? "AtivarSAT",;

AtivarSAT( Random( 999999 ), 1, "123456", "11111111111111", 35 ) //[3]

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

aRetorno := EnviarDadosVenda( Random( 999999 ), "123456", cCFeTeste )

? "EnviarDadosVenda",aRetorno[1],aRetorno[2],aRetorno[3],aRetorno[4]

return nil

id=code>id=code>

Eu criei um set de funções que pudesse fazer a ponte com o driver e tratar o retorno de forma simples. todas as funções recebem a string do driver e transformam em um vetor.


Function ConsultarSAT( nSessionRandom )

cString := SATConsultar( nSessionRandom )

return StringToArray( cString, "|" )

Function AtivarSAT( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )

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, "|" )

id=code>id=code>

O conjunto de funções que acessar diretament o driver estão descritas abaixo:


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

/* 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 hACBrDLL

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

/* OK */ 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

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

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

id=code>id=code>

Uso algumas funções extras exigidas durante os testes:


Function Random( 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()

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 )

id=code>id=code>

Junte tudo em um unico .PRG e compile para obter o executável de testes.

TERCEIRA ETAPA

Consite na geração do HTML que irá compor o impresso padrão do cupom:

Cabecalho:


#NomeFantasia#

#RazaoSocial#

#EnderecoCompleto#

CNPJ: #CNPJ# IE: #INSCR#


Extrato N.o #EXTRATO#

CUPOM FISCAL ELETRONICO - SAT


CPF/CNPJ #cpfConsumidor#


#|COD|DESC|QTD|UN|VL UNIT R$|ST|ALIQ|VL ITEM R$


id=code>

id=code>

Corpo dos itens:


#item# #cod# #desc# #qtd# #un# #valor3# #st# #aliq#% #valor4#

id=code>id=code>

Rodapé:


Subtotal #valor11#

Descontos <-> #valor12#

Acrescimos <+> #valor13#

TOTAL R$ #valor14#

#meioDePagamento# #valor15#

Troco R$ #valor16#

ICMS a ser recolhido conforme LC-Simples Nacional


DEST

#nomeDoAdquirente#

#EnderecoDoDestinatario#


SAT N.o #SATNum#

#Data# #Hora#

#ChaveDeConsulta#

#CodigoDeBarras#

#QRCode#

id=code>

id=code>

Para uma melhor formatação do cupom podese usar tabelas e acrescentar um javascript que envie o comando de impressão assim que o browser apresentar o conteúdo.

Portanto vencidas as etapas iniciais de testes todas estarão aptos em pouco tempo a integrarem em seus sistemas tais caracteristicas.

Para os amigos que juntamente comigo vierem a desvendar este driver, sugiro compartilhar ao máximo a fim de obtermos com tempo recorde a finalização e implantação em nossos sistemas dos recursos desta parafernália que já nos ronda a pelo menos 5 anos.

Link to comment
Share on other sites

Amiguinhos,

É com satisfação que posso dizer que meu sistema já está 99% SAT-CFe Ready.

O resultado foi obtido depois de noites sem sono e desvendamento de um mundo praticamente novo, ou seja, versão 2.0.

Baseado nos aplicativos do conjunto SAT-CFe para desenvolvedores, como o AC, Ativador e Emulador SAT comecei a planejar os meios de obter exito com o uso destas ferramentas e desenhar rapidamente meu módulo de interface.

Totalmente baseado em Harbour tradicional e automação OLE consegui algo que não havia planejado e nenhum dos colegas havia esclarecido.

Como o que vemos ai por volta das interfaces de acesso ao SEFAZ geralmente encontramos código fonte em Visual Basic, Delphi, Sharp, etc.

Como sou chato e persistente quando ao que desejo consegui obter acesso direto ao Emulador SAT e envio de comandos com um aplicativozinho básico.

E para minha surpresa os procedimentos são muitissimo simples.

As funçoes ConsultarSAT(), AtivarSAT() e EnviarDadosVenda() são importantes neste primeiro momento e foram baseadas no uso delas que implementei em meu sistema o uso para teste e homologação.

Para o uso de EnviarDadosVenda() foi necessário ainda confeccionar o XML no layout para CF-e, o que foi fácil pois o mesmo pode ser baseado no layout da NF-e.

Após consultar o status do SAT, passamos a Ativá-lo e conforme o retorno obtido fazer o envio dos dados do cupom e se tudo correr bem obter, validação, assinatura e envio.

Então temos:

- Primeira etapa - geração do XML contendo os dados do cupom baseado no layout CF-e.

- Segunda etapa - uso dos comandos do driver SAT para perfazer o processo fiscal.

- Terceira etapa - imprimir o cupom com layout definido nos manuais de requisição do SAT-CFe.

PRIMEIRA ETAPA

Abaixo esta o conteúdo do XML de testes no layout do CF-e:


<?xml version="1.0" encoding="UTF-8"?>

35

616600

59

000000007

000005

20121124

235018

0

1

64185629000136

123123

CFe351211034499940001165900000000700000561660002012112423501821011898853878

111111111111

Estabelecimento de Teste 2

Estabelecimento Fantasia 2

rua das flores

1005

-

centro

Sao Paulo

00000000

111111111111

123123

1

N

11808853070

JCR

01

Mega Alcool 92,8A

0001

un

1.0000

2.100

2.10

A

2.10

1

41

01

1.00

1.0000

1.00

1.00

1.0000

1.0000

1.0000

1.00

1.00

1.0000

1.0000

1.0000

1.00

0.00

2.10

0.00

1.00

1.00

1.00

1.00

0.00

2.10

1

2.10

id=code>id=code>

SEGUNDA ETAPA

Apesar de usar Harbour, a interface uso o Fivewin para efeito de mensagens e etc.

A senha "123456" foi usada no momento da Ativação do SAT e portanto pode ser trocada.


/////////////////////////////////////////////////////////////////////////////

//

// PDVSAT - Compativeis com SAT 4.00

//

// Autor: Jose Carlos da Rocha

// Data: 26/11/2012

// Email: contato@5volution.com.br

// MSN: fivolution@hotmail.com

// Linguagem: xBase

// Prefixo: SAT

// Plataformas: DOS, Windows

// Requerimentos: Harbour/xHarbour( Para uso com Clipper eliminar Prefixo )

// Versao SAT: 4.00

//

/////////////////////////////////////////////////////////////////////////////

#include "FiveWin.ch"

#include "dll.ch"

function Main()

PUBLIC hACBrDLL

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( cPath+"SAT.DLL" )

? "ConsultarSAT",;

ConsultarSAT( Random( 999999 ) ) //[3]

? "AtivarSAT",;

AtivarSAT( Random( 999999 ), 1, "123456", "11111111111111", 35 ) //[3]

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

aRetorno := EnviarDadosVenda( Random( 999999 ), "123456", cCFeTeste )

? "EnviarDadosVenda",aRetorno[1],aRetorno[2],aRetorno[3],aRetorno[4]

return nil

id=code>id=code>

Eu criei um set de funções que pudesse fazer a ponte com o driver e tratar o retorno de forma simples. todas as funções recebem a string do driver e transformam em um vetor.


Function ConsultarSAT( nSessionRandom )

cString := SATConsultar( nSessionRandom )

return StringToArray( cString, "|" )

Function AtivarSAT( numeroSessao, subComando, codigoDeAtivacao, CNPJ, cUF )

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, "|" )

id=code>id=code>

O conjunto de funções que acessar diretament o driver estão descritas abaixo:


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

/* 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 hACBrDLL

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

/* OK */ 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

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

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

id=code>id=code>

Uso algumas funções extras exigidas durante os testes:


Function Random( 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()

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 )

id=code>id=code>

Junte tudo em um unico .PRG e compile para obter o executável de testes.

TERCEIRA ETAPA

Consite na geração do HTML que irá compor o impresso padrão do cupom:

Cabecalho:


#NomeFantasia#

#RazaoSocial#

#EnderecoCompleto#

CNPJ: #CNPJ# IE: #INSCR#


Extrato N.o #EXTRATO#

CUPOM FISCAL ELETRONICO - SAT


CPF/CNPJ #cpfConsumidor#


#|COD|DESC|QTD|UN|VL UNIT R$|ST|ALIQ|VL ITEM R$


id=code>

id=code>

Corpo dos itens:


#item# #cod# #desc# #qtd# #un# #valor3# #st# #aliq#% #valor4#

id=code>id=code>

Rodapé:


Subtotal #valor11#

Descontos <-> #valor12#

Acrescimos <+> #valor13#

TOTAL R$ #valor14#

#meioDePagamento# #valor15#

Troco R$ #valor16#

ICMS a ser recolhido conforme LC-Simples Nacional


DEST

#nomeDoAdquirente#

#EnderecoDoDestinatario#


SAT N.o #SATNum#

#Data# #Hora#

#ChaveDeConsulta#

#CodigoDeBarras#

#QRCode#

id=code>

id=code>

Para uma melhor formatação do cupom podese usar tabelas e acrescentar um javascript que envie o comando de impressão assim que o browser apresentar o conteúdo.

Portanto vencidas as etapas iniciais de testes todas estarão aptos em pouco tempo a integrarem em seus sistemas tais caracteristicas.

Para os amigos que juntamente comigo vierem a desvendar este driver, sugiro compartilhar ao máximo a fim de obtermos com tempo recorde a finalização e implantação em nossos sistemas dos recursos desta parafernália que já nos ronda a pelo menos 5 anos.

Link to comment
Share on other sites

Amiguinhos,

Obrigado a todos.

Sintam se a vontade para trabalhar e opinar.

Quanto ao aplicativo de testes, ele ilustra quais funções e quais parametros deveremos utilizar para acessar o driver SAT.

No meu sistema estou fazendo uso do driver como ponte de comandos para o equipamento, que no meu caso é o emulador.

Theotokos-Se voce gerar o CF-e em seu sistema, bastara usar os comandos que relacionei para ter exito.

Link to comment
Share on other sites

Só pra resumir... Sabe a Nota Fiscal Eletronica? Então, imagina que os cupons fiscais tb serão eletronicos, ou seja, eles serão impressos em impressoras comuns pois o papel não terão validade e sim a assinatura eletronica dele...

Pra resumir ainda mais, as impressoras fiscais estão com pouco tempo de vida... Pelo menos em SP...

citação:

amigos o que é o SAT-Fiscal?

é só para são paulo?

substitui o PAF-ECF?

obrigado


id=quote>id=quote>

Eduardo Motta

emotta@gmail.com.br

FWH 9.09 (original) - xHARBOUR 1.2.1 (comercial e original) - SQLRDD

AJbJ

Link to comment
Share on other sites

Rochinha, com relação ao Sintegra, Speed, e outras exigencias do fisco, o sistema que rodar SAT-CFe tambem continua obrigado a gerar estes arquivos ? Vc tem alguma informação com relação a isto ?

Obrigado

William

"Eu creio, que de algum modo, que seje relativo em demasia a subjetiva constitucional perante tecnicamente aos que assim ditam o descritivo em si, no parágrafo subconsequente do subconciente doutrinários."

Link to comment
Share on other sites

citação:Rochinha, com relação ao Sintegra, Speed, e outras exigencias do fisco, o sistema que rodar SAT-CFe tambem continua obrigado a gerar estes arquivos ? Vc tem alguma informação com relação a isto ?

Obrigado


id=quote>id=quote>

Por enquanto as informações sobre este projeto ainda estão sendo inseridas no site da receita, Mas tenho a impressao que a inclusão deste projeto nao diminui a obrigação existente.

Link to comment
Share on other sites

Amiguinhos

Ao postar o conteudo de meus testes com este projeto ficou faltando o teste com uma de suas funções.

Atentei para o fato de que devemos usar as funções básicas para nossa implementação e portanto o projeto não contempla todas as funções liberadas até o momento.

Fica a cargo dos amigos verem a necessidade e melhorar.

Complemento a função abaixo e deixo como homologado o teste e funcionamento.


Function TesteFimAFim( numeroSessao, codigoAtivacao, dados )

cString := SATTesteFimAFim( numeroSessao, codigoAtivacao, dados )

return StringToArray( cString, "|" )

Function EnviarDadosVenda( numeroSessao, codigoAtivacao, dados )

cString := SATEnviarDadosVenda( numeroSessao, codigoAtivacao, dados )

return StringToArray( cString, "|" )

id=code>id=code>

As duas funções acima recebem o mesmo tipo de parametros.

Portanto o conjunto básico esta liberado e funcionando.


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

/* 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 hACBrDLL

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

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

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

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

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

id=code>id=code>
Link to comment
Share on other sites

Prezados Parceiros e Escovadores de Bits!

Com a publicação da Portaria da Coordenadoria da Administração Tributária CAT 147-2012 a qual dispõe sobre o uso do SAT no Estado de São Paulo a partir de 01/jul/2013, enviamos este comunicado desenvolvedores integrantes do Daruma Developer Community e parceiros.

No dia 04-Jun-2012, enviamos aos Desenvolvedores e parceiros Urmet Daruma, o comunicado http://www.daruma.com.br/ddn/ddn009_66.html (*) intitulado "ECF, SAT, CFe e a Comunidade Desenvolvedores Daruma".

O objetivo deste comunicado, em respeito a nossa comunidade de desenvolvedores que hoje ultrapassa os 6.000 integrantes, foi informar as nossas ações e quais seriam os passos que juntos poderíamos trilhar neste mercado, frente às varias propostas de soluções de conectividade fiscal, SAT, NFC-E, ECF On-Line etc.

Exatos cinco meses se passaram e a nossa posição sobre a necessidade de unificação da solução de conectividade fiscal continua válida, seja ela qual for, para que o nosso mercado continue evoluindo sem maiores dificuldades e não seja penalizado com incremento de custos para os que hoje desenvolvem soluções para o varejo. Reiteramos que o nosso ECF 09/09 – Impressora Conectada On Line aos servidores fiscais – apresentado no Autocom 2012 será ofertada ao mercado no primeiro semestre de 2013.

Desta forma, estamos concretizando de modo muito consistente e seguro tudo o que comunicamos na data supra citada. Entendemos que hoje, a Urmet Daruma, possui um excelente histórico de integração com os Desenvolvedores e com o mercado, certamente não quebraremos tal histórico de excelência na integração com os desenvolvedores no modelo que está sendo indicado por São Paulo.

A releitura do comunicado (http://www.daruma.com.br/ddn/ddn009_66.html ) permite observar que estamos ativos em todas as frentes, exatamente pela nossa preocupação com nossos canais de desenvolvedores, integradores e revendas. Em 2013, sem dúvida, enviaremos novidades quanto ao tema.

Vale acrescentar que nenhum fabricante até o momento possui o SAT Homologado e tampouco está disponibilizada para os fabricantes, a estrutura necessária para iniciar uma homologação. Dentro deste cenário, o Convênio 85/2001 continua vigente no Estado de São Paulo e o ECF é obrigatório, sendo o único hardware que atende às necessidades de automação fiscal no PDV. Nós apoiaremos toda e qualquer iniciativa para auxiliar os desenvolvedores, sem deixá-los desamparados com relação ao suporte e integração. Tenham a certeza de que, tão logo seja possível, informaremos aos desenvolvedores como realizar a integração e desenvolvimento.

Reafirmamos nossa posição atual com relação à Impressora Fiscal, destacada no nosso último comunicado:

“ Novamente insistimos, hoje o ECF é a solução imediata e única que atende a todos estes requisitos e é este que deve ser utilizado e indicado, porém participem de perto destas discussões, vale a pena, principalmente vindo dos que fazem hoje este mercado de hardware funcionar, girar e vender: Nós, os Desenvolvedores!...â€

Qualquer dúvida nossa equipe está à disposição para responder e dirimir todas as dúvidas dos nossos parceiros. 0800 770 332 0 – desenvolvedores@daruma.combr

Claudenir C. Andrade| Gerente Integração e Desenvolvimento, P&D - Daruma Developers Community | MVP Microsoft

Urmet Daruma - Av. Shishima Hifumi, 2911 Pq. Tecnológico (Sala 406) - São José dos Campos - SP - 12244-000

Skype: claudenir_andrade | Tels: +55 12 3949 6033 Cel.: +55 11 8137 0262

Site: www.desenvolvedoresdaruma.com.br |Siga a Daruma no Twitter: www.twitter.com/darumadeveloper

www.twitter.com/claudenirandrad

(*) Todo comunicado, escovando bits, publicações, todos permanecem publicados para a consulta da comunidade de desenvolvedores

aqui neste link www.desenvolvedoresdaruma.com.br link "Eventos e Noticias"

FW 2.6 + HB 0.9950 + Pelles + Clipper 5.3 + VLib + xDevStudio

leofy.jpg

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...