1.
DARUMA: INSTANCIANDO DLLS UNMANAGE CODE EM .NET
Em .NET utilize using System.Runtime.InteropServices
para que você possa instanciar a dll de comunicação para se comunicar
com as dlls de com mercado para automação comercial. com isso
você poderá utilizar o comando DLLEXPORT para instanciar as funções
de qq dll baseada e criada em plataforma UnManageCode, como por
exemplo, as chamadas Abaixo:
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VendeItem(System.String
Codigo, System.String Descricao, System.String Aliquota,
System.String TipoQuantidade, System.String
Quantidade, int CasasDecimais,
System.String Vr_Unitario, System.String TipoDesconto,
System.String Desconto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_IniciaFechamentoCupom(System.String AcrescimoDesconto,System.String
Tipo_AcrescimoDesconto, System.String Valor_AcrescimoDesconto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EfetuaFormaPagamento(System.String FormaPagamento, System.String Valor_FormaPagamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_TerminaFechamentoCupom(System.String MensagemPromocional);
........ x x x x ........
2. DARUMA: FECHANDO O CUPOM
FISCAL RAPIDAMENTE, SEM CÁLCULOS!
Você poderá efetuar o fechamento de um cupom
fiscal sem a necessidade de estar consultado quando foi realizado
de venda ou sem a necessidade de estar verificando o subtotal
da impressora sem nem mesmo a necessidade de contabilizar a forma
de pagamento em seu software de automação comercial,
basta chamar a função:
DARUMA_FI_FECHACUPOMRESUMIDO("Forma de Pagamento", "Mensagem Promocional")
e pronto, a DARUMA32.DLL irá se encarregar de fechar o cupom pra
você automaticamente com o valor total da compra incluindo a mensagem
promocional passada como parâmetro.
........ x x x x ........
3. DARUMA: TEF, COMO IMPRIMIR
RAPIDAMENTE A RESPOSTA DO TREF SEM ERRAR!
TEF - Transferência Eletrônica de Fundos -
Para Imprimir a Resposta da Operadora de Cartão de Credito, sem
a necessidade de varrer arquivos, etc.. Você poderá economizará
muitas rotinas e muito código fonte, chamado apenas a função.
Daruma_TEF_ImprimirResposta( "Local do Arquivo de Resposta","Forma de Pagamento",
0 ou 1 se deseja travar o teclado ou não.
Exemplo: Vamos imaginar que temos um cupom
fiscal de 100 reais que esta sendo pago com a forma de Pagamento
cadastrada na Impressora "Cartão de Credito".
Após o fechamento do cupom fiscal e a comunicação
com a Operadora de Cartão, você irá receber um arquivo chamado
IntPos.001, então apenas chame a função:
Daruma_TEF_ImprimirResposta("c:\TefDial\Resp\Intpos.001","Cartão de Credito",
1)
E a DARUMA32.DLL irá se encarregar de imprimir
o arquivo de resposta pra você mais rápido que você controlar
esta impressão linha a linha, como saber se a Impressão foi OK?
simples, veja o que a função irá te retornar, se retornar diferente
de 1(um) é porque deu pau! caso contrário tudo OK!
........ x x x x ........
4. DARUMA: TEF, IMPRIMINDO
A SEGUNDA VIA SEM ERRO E RÁPIDO!
Deseja imprimir uma segunda via de um comprovante
de TEF? Simples, chame novamente a função.
Daruma_TEF_ImprimirResposta("c:\TefDial\Resp\Intpos.001","Cartão de Credito",
1)
E a função não irá abrir um novo Vinculado,
aproveitará o que já está aberto e imprimirá sua segunda via.
........ x x x x ........
5. DARUMA: COMO TRATAR
A RE-IMPRESSÃO DO TEF QUANDO OCORRER ERRO NA PRIMEIRA IMPRESSAO
DA RESPOSTA
Deseja Re-Imprimir a resposta do TEF no Relatório
Gerencial? Dicas Simples, chame novamente a função
Daruma_TEF_ImprimirResposta("c:\TefDial\Resp\Intpos.001","Cartão de Credito",
1) So que desta vez passando um espaço em branco na Forma de Pagamento,
assim:
Daruma_TEF_ImprimirResposta("c:\TefDial\Resp\Intpos.001"," ", 1)
E a DARUMA32.DLL entendera que você deseja
imprimir o IntPos.001 em um gerencial, neste caso se o vinculado
estiver aberto a DARUMA32.DLL fecha, e abre o gerencial e imprimir
a resposta do IntPos.001, caso contrario
apenas abre o Gerencial e Imprime a Resposta do IntPos.001
........ x x x x ........
6. DARUMA: TRAVANDO O TECLADO
PARA O TEF
Deseja controlar o travamento do Teclado enquanto
imprime o TEF? simples chame a função
Daruma_TEF_TravarTeclado(passe 0 ou 1 para travar ou não o teclado)
........ x x x x ........
7. DARUMA: ONDE ESTOU?
COMO FECHAR O VINCULADO OU O GERENCIAL SEM SABER DENTRO DE QUEM
VOCÊ ESTÁ!
Você não sabe se está com um Comprovante não
Fiscal Vinculado Aberto ou se esta com um Relatório Gerencial
Aberto e esta em duvida qual comando utiliza para Fechar o relatório,
neste caso faça o seguinte:
Chame a função Daruma_TEF_FecharRelatorio()
e a DARUMA32.DLL se encarrega de identificar pra você quem está
aberto e fechar, simples! Deixe a DARUMA32.DLL trabalhar por você!
........ x x x x ........
8. DARUMA: PERDI O "FOCO"
DE MINHA JANELA DE MINHA APLICACAO O QUE FAÇO?
Problemas com Foco na Aplicação? Se você estiver
perdendo o Foco na Janela, poderá utilizar também a DARUMA32.DLL
para te ajudar, Chame a Função Daruma_TEF_SetFocus("Titulo") e passe como parâmetro o Titulo da Janela
que deseja setar o foco, simples, fácil!
........ x x x x ........
9. DARUMA: TEF - COMO ESPERAR
A RESPOSTA SEM TRAVAR O COMPUTADOR OU DEIXAR A MAQUINA LENTA
Quando você realiza uma transação eletrônica
de Fundos, você efetua os seguintes passos:
a) Cria o Arquivo de texto solicitando uma
Transação eletrônica de fundos.
b) Cria um Thread, Loop, For, ou Timer, para
ficar monitorando durante 60 segundos ou menos se o arquivo de
resposta da Operadora de Cartão chegou.
Se você não desenhar a rotina de espera de
arquivo de uma forma adequada, com Threads, etc. Você simplesmente
irá travar seu programa ou deixa-lo demasiado lento pelo fato
de estar consumindo muita CPU.
Então quando você necessitar esperar um arquivo
de resposta da Operadora de TEF, faça o seguinte:
Execute o Passo a (acima descrito) apos isso
chame a função:
iRetorno = Daruma_TEF_EsperarArquivo("C:\TEF_DIAL\RESP\INTPOS.001","60","0") com isso
a DARUMA32.DLL estará esperando este arquivo para você, e note
que ela irá passar o controle de sua aplicação para dentro da
dll d maneira que seu programa somente continuará a executar as
linhas subseqüentes apos a execução da função e a espera do arquivo
de retorno ou não. Deixe que a DARUMA32.DLL assuma esta função
para você.
........ x x x x ........
10. DARUMA: TEF - O PAPEL
ACABOU NO MEIO DA IMPRESSAO DO TEF O QUE FAZER?
Necessita controlar pouco papel ou impressora
desligada na Transação de TEF? bem estes passos são essenciais
para a Homologação de seu software de Automação Comercial, por
isso você poderá utilizar o retorno que a Função Daruma_TEF_ImprimirTef
devolve, pois com este retorno sendo ele diferente de 1(um) você
poderá solicitar a Reimpressão do Cupom. e assim controlar se
a impressão do TEF aconteceu ou não, porque na Homologação o que
importa saber é se a impressão completa do TEF aconteceu ou não,
e por isso o retorno da função já é o suficiente para este controle.
Veja um exemplo de um pequeno Algoritmo de
como você poderá controlar isso:
iRetorno= Daruma_TEF_ImprimirResposta("c:\TefDial\Resp\Intpos.001","Cartão de Credito", 1)
'Verifica se a impressão foi OK e caso não tenha sido re-imprime no Gerencial
'passando apenas espaço em branco na forma de pagamento
if (iRetorno !=1)
{ Msgbox ("Problemas na Impressao de TEF")
iRetorno= Daruma_TEF_ImprimirResposta("c:\TefDial\Resp\Intpos.001"," ", 1)
}
........ x x x x ........
11. DARUMA: DEVOLUÇÃO DE
MERCADORIAS, O QUE FAZER E COMO FAZER NO ECF?
Necessita controlar a devolução de mercadoria
no ECF? bem utilize-se dos registradores
não fiscais que o ECF possui com ele você poderá contabilizar
tudo o que necessita em valores e separados por "títulos" que
você mesmo pode criar.
Para isso chame a função Darma_FI_NomeiaTotalizadorNãoSujeitoIcms("01","Devolucao")
com a função acima você programa um espaço
na memória do ECF para cadastrar valores nele seja para controle
fiscal ou administrativo.
Para fazer uso do totalizador, chame:Daruma_FI_RecebimentoNãoFiscal("01","10,00","Dinheiro")
E com isso você contabiliza ou soma o valor
de 10,00 reais ao totalizador chamado devolução.
Porém e se você necessitar imprimir o Texto
de devolução? bem neste você pode utilizar-se de um Comprovante
não Fiscal Vinculado, porque assim você poderá imprimir um texto
livre sem a necessidade de emissão de leitura X antes, como ?
Bem apos executar o Recebimento acima chame
as funções:
Daruma_FI_AbreComprovanteNãoFiscalVinculado("Dinheiro","","") passe apenas a forma de pagamento
e pronto você esta apto a imprimir texto livre o texto que você
desejar por 2 minutos, como? chame a função
Daruma_FI_UsaComprovanteNãoFiscalVinculado("Blablablabla") passe um texto de até 480 caracteres.
CUIDADO: Não
são todos os ECFs que permitem vincular em Dinheiro. A DARUMA32.DLL
permite.
........ x x x x ........
12. DARUMA: COMO SABER
SE A VENDA ESTA ABERTA OU "EM ABERTA"
Para saber se um cupom fiscal está aberto,
não necessita chamar a função de status, decodificar erro, etc..
apenas chame a função:
Daruma_FI_StatusCupomFiscal e pronto! A Função
retornará 0(zero) ou 1(um) indicando se esta aberto ou fechado.
........ x x x x ........
13. DARUMA: TEF EM SISTEMA
OPERACIONAL MS-DOS - COMO FAZER COM O ECF EM MS-DOS
Se você utiliza DOS,
faça uso do OBSERVER.EXE que permite que seu aplicativo em DOS
faça uso de Todo Potencial da DLL de comunicação, veja como é
Fácil enviar uma Venda de Item e um Fechamento do Cupom Fiscal
quando você utiliza o observer em seu aplicativo DOS em Clipper
por exemplo..Apenas crie o Arquivo e deixe o observer trabalhar
por Você!!
VAR_BUFFER_COMANDO := "1001;123;Caneta;TA;I;10;2;0,25;%;0000;"
COMUNICA_COM_ECF(VAR_BUFFER_COMANDO) /*Esta função completa
você poderá baixar em nosso site
VAR_BUFFER_COMANDO := "1012;Dinheiro;Obrigado,
volte sempre !!!;"
COMUNICA_COM_ECF(VAR_BUFFER_COMANDO)
Apenas com estes dois comandos acima você
terá seu aplicativo em DOS emitindo Cupom e Fechando o Cupom fiscal
Automaticamente!!
........ x x x x ........
14. DARUMA: NOVO CONCEITO DE ACESSO A PERIFÉRICOS, O QUE É
O FRAMEWORK!
Com a DARUMA32.DLL você pode ser acesso a
toda linha de produtos DARUMA, sem a necessidade de baixar diferentes
Driver para Diferentes produtos na DARUMA32.DLL possui suporte
a XML, .NET, C# e VB.NET Microsoft com código
fonte completo no site www.daruma.com.br.
........ x x x x ........
15. DARUMA: COMO ECONOMIZAR
ATÉ 40% DE PAPEL EM MEU ECF ATRAVÉS DE MEU APLICATIVO! ($$)
Para Economizar papel no ECF a dll DARUMA32.DLL
é a única dll de comunicação que permite Vender item em Uma Linha,
fazer comprovante Não Fiscal Vinculado com a forma de pagamento
Dinheiro a até mesmo vincular seus suprimentos.
Para efetuar a venda de item em apenas uma
Única Linha, chame função:
Daruma_FI_VendeItem( Código
do produto, Descrição, etc..)
O Código pode ser de até 6 Digitos e a descrição
de até 13 Digitos,
Ou o Código de até 13 Digitos e a descrição
de até 6 Digitos
Caso o item não se encaixe nas especificações
acima, não se preocupe a dll automaticamente joga o item em duas
linhas pra você!
........ x x x x ........
16. DARUMA: TEF - PROCESSO
COMPLETO, COMO FAZER?
Dica completa! TEF completo
com a DARUMA32.DLL, veja como!
Para fazer TEF com a Daruma, utilize as funções
de TEF (Daruma_TEF_ImprimirResposta) e deixe que a dll Administre
a Impressora Fiscal pra Você!! Deseja Re-Imprimir o Comprovante
de TEF em um Relatório Gerencial? Veja com é fácil com o código
fonte Abaixo! Apenas passe a forma de pagamento em Branco que
a Função irá Fechar seu Vinculado e Abrir o Gerencial imprimindo
a Resposta do TEF!!
Daruma_Retorno := Daruma_FI_VendeItem( pchar('1234567890123'), pchar('Caneta'), pchar('TA'), 'F',
pchar('1,500'), 2, pchar('0,25'), '%', pchar('0000') );
Daruma_Retorno:= Daruma_FI_FechaCupomResumido( pchar( 'Dinheiro' ),
pchar( 'Daruma32.dll - Obrigado, volte sempre !!!' ) );
Daruma_Retorno := Daruma_TEF_ImprimirResposta(pchar('c:\INTPOS.001'),pchar('Cartao'),'1');
Daruma_Retorno := Daruma_TEF_ImprimirResposta(pchar('c:\INTPOS.001'),pchar('Cartao'),'1');
if(Daruma_Retorno<>1) then
begin
ShowMessage('Impressora Não Reponde, Vou fechar o vinculado e Imprimir no Gerencial');
Daruma_Retorno := Daruma_TEF_ImprimirResposta(pchar('c:\INTPOS.001'),' ','1')
Daruma_Retorno := Daruma_TEF_ImprimirResposta(pchar('c:\INTPOS.001'),' ','1');
end;
Daruma_Retorno := Daruma_TEF_FechaRelatorio( );
........ x x x x ........
17. DARUMA: ERROS DO ECF,
COMO SABER MAIS DETALHES VIA APLICATIVO
Com a DARUMA32.DLL você poderá ter mais de
90 código de erros para serem decodificados
por seu aplicativo, deixando assim seu aplicativo mais depurado
e com mensagens mais assertivas ao serem comunicadas ao usuário
os possíveis erros no ponto de venda.
Para Isso chame a função:
Daruma_FI_RetornaErroExtendido(string)
Retorna o Erro Extendido do ECF, além do ST1
e ST2 retorna uma Tabela Completa de Erros.
Parâmetro:
String com 4 Posições que irá conter o Código
de Erro Extendido que o ECF retorna
Retorna 999 caso tenha a DLL retorne
TIME-OUT
Retorna a string original passada, com VAZIOS, caso NAO HAJA ERRO.
........ x x x x ........
18. DARUMA: ECF EM MS-DOS,
USANDO A DLL DE COMUNICAÇÃO E MS-DOS E NÃO FICANDO PRA TRÁS!
Se você é programador DOS como integrar seu
aplicativo DOS com a impressora fiscal? Bem, para isso você poderá
utilizar o Driver OBSERVER que compatibiliza seu aplicativo DOS
para utilizar a DARUMA32.DLL veja porque usar o Observer:
A) Porque com isso o Protocolo que você esta
usando no seu programa DOS poderá continuar sendo o mesmo quando
você migrar seu programa para Windows. Aproveitando todas as rotinas
de envio de comando, cultura e aprendizado de seus programadores
com este protocolo utilizado pelo Observer
B) Porque todas as EVOLUÇÕES e MELHORIAS e
FACILIDADES da DARUMA32.dll estarão disponíveis para seu Aplicativo
DOS, porque o OBSERVER utiliza-se da Dll de Comunicação com todas
as faciliadades que nela se encontra.
C) Porque agora para enviar os comandos para
o ECF através de seu aplivativo DOS você
utiliza-se das Funções de Alto-Nivel que a DARUMA32.dll contém,
basta passar o INDICE da função que você Obtem ao Lado do nome
da cada Função, neste Help, ou seja, com isso você consegue usar
funções como Daruma_FI_FechaCupomResumido antes não disponívies
no DOS, porém agora disponivels no OBSERVER.
D) Porque agora você não necessita se preocupar
com a passagem correta dos Parametros, como por exemplo na Descrição
da venda de um item, você nao necessita se preocupar com preenchimento
do restante da Descrição pois a DARUMA32.dll através do OBSERVER
faz isso para você!! Esta Facilidade antes estava disponível apenas
no Windows, mas agora está disponível também para Aplicativos
DOS.
........ x x x x ........
19. DARUMA: MINIIMPRESSORAS
(IMPRESSORAS NÃO FISCAIS) COM USAR E IMPRIMIR
Para Acesso a impressão de texto em MiniImpressoras,,
através da DARUMA32.DLL você tem acesso a porta Paralela e Serial mesmo em sistema operacional
protegido.
Para Imprimir um texto formatado voce poderá
utilizar as Tags de formatação que foram criadas para a linha
de impressoras MiniImpressora Não Fiscal, são elas:
<b></b> Para sinalizar Negrito
<i></i> Para sinalizar iTálico
<s></s> Para sinalizar Sublinhado
<e></e> Para sinalizar Expandido
<c></c> Para sinalizar Condensado
<n></n> Para sinalizar Normal
<l></l> Para Saltar Uma Linha
<cr></cr> Retornar o Carro de Impressao para o Começo.
<sl>NN</sl> Para Saltar Várias Linhas", 0)
<tc>C</tc> Riscar Linha com um Caracter Especifico
<ce></ce> Para Centralizar
<dt></dt> Para Imprimir Data Atual
<hr></hr> Para Imprimir Hora Atual
<sp>NN</sp> Inserir NN Espaços em Branco
<sn></sn> Sinal Sonoro, Apitar
<g></g> Abre a Gaveta
<a> Aguardar até o Término da Impressão
</a> Não Aguardar até o Término da Impressão
<< Quando desejar imprimir o Caracter "<"
>> Quando desenar imprimir o Caracter ">"
........ x x x x ........
20. DARUMA: BURLANDO A
PROTECAO NO XP, NT 2000 PARA USAR A MINIMPRESSORA
Para utilizar-se de miniImpressoras em Windows
2000, XP NT é necessário burlar a proteção (HAL) do sistema operacional
para ter acesso aos status mais definidos
da MiniImpressora Não Fiscal , como por exemplo:
Documento preparado para Autenticar ou Documento
Ausente para Autenticação, e assim por diante.
Veja como instalar o .SYS que burla esta proteção
e permite acesso ilimitado na Paralela com a DARUMA32.DLL:
O PROCESSO ABAIXO NÃO É
NECESSARIO CASO VOCE ESTEJA UTILIZANDO-SE DA PORTA SERIAL PARA
SE COMUNICAR OU A PARALELA NO W95 E W98
- O PROCESSO ABAIXO DEVE SER SEGUIDO APENAS NO CASO DE USO DA
PARALELA EM SISTEMA OPERACIONAIS PROTEGIDOS
COMO W2000, WXP, WNT, WxxSERVER.
Devido a existência
do HAL (Hardware Abstract Layer) existe a necessidade de se Burlar
esta "Camada" de comunicação para que Status como FINAL de PAPEL,
Operaçoes como Autenticação e Verificação se o papel está presente
para ser autenticado ou não, sejam utilizados e aceitos pelo HAL.
Por isso a dll faz uso de um serviço que fornece
um endereço protegido de comunicação com a PARALELA
chamado HWINTERFACE.SYS.
Passos Para a INSTALAÇÃO
DA DS300 na PARALELA para Uso da DARUMA32.DLL:
(Devem ser Executados nesta Ordem)
- Copie
o arquivo HWINTERFACE.SYS para o diretório
WINNT\SYSTEM32\DRIVERS, ou para o diretório WINDOWS\SYSTEM32\DRIVERS,
ou para qualquer outro diretório que você tenha instalado o
Windows: xxx\SYSTEM32\DRIVERS
- Após
a instalação faça dois cliques no arquivo DARUMA.REG que irá registrar
este serviço do Windows.
- Reinicie o computador (Válido somente para
W2000 porque no XP nao é Necessrio o re-boot)
- Pronto!! Você já pode usar a DARUMA32.DLL
na Porta Paralela de seu computador com todas as funções de
Autenticação, Staus, etc.. Tudo ON-LINE com a DS300.
|