Algumas informações sobre este manual

Daruma Framework
Informações Importantes sobre este Manual
Top Next

Manual Eletrônico Versão 2.58

Este manual é único para toda nossa linha de impressoras e terminais, não importando a linguagem de seu software, tampouco o Sistema Operacional. Porque somos hoje o único fabricante que oferece total suporte para plataformas DOS, Windows e Linux, com acesso local ou remoto, plataformas 32 ou 64 bits. Nossos drivers possuem total homogeneidade de informações, tornando o seu desenvolvimento simples, rápido e uniforme. Devemos ressaltar que os comandos listados nesse manual funcionarão corretamente quando seguidos os padrões a serem enviados pelo Desenvolvedor.

O nosso driver (DLL) é único, ou seja, um Framework, que pode ser utilizado em qualquer um de nossos produtos Fiscais ou não-fiscais, sendo eles térmicos ou matriciais ou ainda Terminais Autônomos (TA2000). Independente do modelo de nossos produtos, meio de acesso ou interface de comunicação.

Lembramos que depois de baixada a DLL diretamente do Portal Exclusivo de Desenvolvedores Daruma devemos alocá-la no mesmo caminho do Aplicativo que irá chamá-la, ou seja, mesma pasta. Não aconselhamos deixar a DLL nas pastas do Sistema Operacional, ou manter mais de uma DLL na mesma máquina.

Se você é Desenvolvedor em linguagens DOS ou Win16 bits, poderá utilizar o Observer que é o nosso driver voltado pata linguagens 16 bits e comunidades Clipper, Cobol e linguagens for DOS. Desenvolvedores que desejam utilizar a DLL, mas não podem devido à limitação que sua linguagem aplicada impôs. Poderão contar com a comodidade do Observer2 que na sua 2 geração já possibilita a troca de arquivos em ambiente Linux facilitando para você Desenvolvedor que tem uma aplicação que roda em Linux, porém não consegue instanciar o driver Linux.

observer9

Alguns motivos para você participar do nosso programa de Incentivo ao Desenvolvedor e adquirir hoje mesmo ECF para desenvolvimento e preço subsidiado:

1. Porque com uma impressora Daruma ao seu lado você poderá corrigir bug's, testar e aprimorar métodos e performance de sua aplicação.
2. Quando necessário apresentar seu projeto em ambiente real ao cliente, demonstrando a eficiência conjunta de sua aplicação + impressora. O cliente busca soluções conjuntas.
3. No caso de homologacão de TEF, não é aceito Emulador. Como você simularia uma queda de energia ? Como o hardware (Impressora) se comporta nesse retorno ? Pois teremos ausência de condutividade elétrica com o computador, logo falta de comunicação total.
4. Nos estados de Minas Gerais, Espírito Santo e Bahia o Software tem que ser Homologado e não é aceito Emulador durante a homologação;
5. Porque com o ECF ao seu lado você terá TOTAL realidade do que acontece no PDV, podendo assim validar e prestar suporte ao seu cliente em menor tempo e com eficiência.
6. Em ambientes remotos temos infra-estruturas de conectividade (acesso remoto) particulares ao negócio de cada cliente. Com uma Impressora podemos ter a mesma realidade do cliente, mesmo em ambiente remoto e customizado. Isso não é possível com Emuladores.

· Outras Generalidades deste manual:

100% auto-explicativo, de fácil pesquisa.
Objetivo, dinâmico.
Auto-suficiente.
Atende a todos os produtos.
Funções Únicas para Windows e Linux.

Nossos canais de Suporte Técnico Especializado a Desenvolvedores Daruma:

· Ligação gratuita via internet

Skype: suporte_daruma
Skype: suporte_desenvolvedores_daruma
Skype: desenvolvedores_suporte_daruma
Skype: daruma_suporte_alexandre
Skype: claudenir_andrade
Skype: suporte_ddc_daruma
Skype: ddc_suporte_daruma
Skype: suporte.daruma (suporte à CPU)

· Por email

suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.suporte@daruma.com.br
desenvolvedores.daruma@daruma.com.br
desenvolvedores@daruma.com.br
suporte.alexandre@daruma.com.br
ddc.suporte@daruma.com.br
suporte.ddc@daruma.com.br
suporte.daruma@daruma.com.br (suporte à CPU)

· Via site

http://www.daruma.com.br/

· Via site para desenvolvedores

http://www.desenvolvedoresdaruma.com.br/

· Por telefone

Desenvolvedores: 0800 770 3320
Fábrica(Demais equipamentos, Hardware e Cliente Final): 0800 772 5060


Lista dos Métodos disponíveis na DLL e seus índices

Lista dos Métodos da DLL Daruma e seus Índices
Previous Top Next

Índice Descrição do Método:
1 - Daruma_Registry_Porta
2 - Daruma_Registry_Path
3 - Daruma_Registry_Status
4 - Daruma_Registry_StatusFuncao
5 - Daruma_Registry_Retorno
6 - Daruma_Registry_ControlePorta
7 - Daruma_Registry_ModoGaveta
8 - Daruma_Registry_ConfigRede
9 - Daruma_Registry_Log
10 - Daruma_Registry_NomeLog
11 - Daruma_Registry_Separador
12 - Daruma_Registry_SeparaMsgPromo
13 - Daruma_Registry_VendeItemUmaLinha
14 - Daruma_Registry_XAutomatica
15 - Daruma_Registry_ZAutomatica
17 - Daruma_Registry_AlteraRegistry
18 - Daruma_Registry_ImprimeRegistry
19 - Daruma_Registry_RetornaValor
20 - Daruma_Registry_Default
21 - Daruma_Registry_TerminalServer
22 - Daruma_Registry_ErroExtendidoOk
23 - Daruma_Registry_AbrirDiaFiscal
24 - Daruma_Registry_IgnorarPoucoPapel
26 - Daruma_Registry_CNFNV_Personalizado
27 - Daruma_Registry_IgnoraCupomAberto
28 - Daruma_Registry_Velocidade
30 - Daruma_Registry_DUAL_Enter
31 - Daruma_Registry_DUAL_Porta
32 - Daruma_Registry_DUAL_Espera
33 - Daruma_Registry_DUAL_ModoEscrita
34 - Daruma_Registry_Produto
35 - Daruma_Registry_FS2000_CupomAdicional
36 - Daruma_Registry_Ap lMensagem1
37 - Daruma_Registry_AplMensagem2
38 - Daruma_Registry_TEF_NumeroLinhasImpressao
42 - Daruma_Registry_NumeroSerieNaoFormatado
45 - Daruma_Registry_FS2000_TempoEsperarCheque
46 - Daruma_Registry_DUAL_Velociade
47 - Daruma_Registry_DUAL_Tabulacao
48 - Daruma_Registry_DUAL_Termica
49 - Daruma_Registry_MFD_LeituraMFCompleta
52 - Daruma_Registry_MFD_ProgramarSinalSonoro
53 - Daruma_FIMFD_SinalSonoro
56 - Daruma_Registry_CupomAdicionaDll
57 - Daruma_Registry_CupomAdicionaDllConfig
60 - Daruma_Registry_MFDValorFinal
63 - Daruma_Registry_PCExpanionLogin
69 - Daruma_Registry_LogTamMaxLogMB
301 - Daruma_FI_ProgramaFormasPagamento
302 - Daruma_FI_ProgramaAliquota
303 - Daruma_FI_ProgramaHorarioVerao
304 - Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms
305 - Daruma_FI_ProgramaArredondamento
306 - Daruma_FI_ProgramaTruncamento
307 - Daruma_FI_LinhasEntreCupons
308 - Daruma_FI_EspacoEntreLinhas
310 - Daruma_FI_ProgramaOperador
312 - Daruma_FI_ProgramaVinculados
314 - Daruma_FI_ConfiguraHorarioVerao
313 - Daruma_FI_ProgFormasPagtoSemVincular
400 - Daruma_FI_CfgFechAutomaticoCupom
403 - Daruma_FI_CfgCalcArredondamento
404 - Daruma_FI_CfgHorarioVerao
405 - Daruma_FI_CfgSensorAut
407 - Daruma_FI_CfgEspacamentoCupons
409 - Daruma_FI_CfgLimiarNearEnd
410 - Daruma_FI_CfgPermMensPromCNF
411 - Daruma_FI_CfgImpEstGavVendas
412 - Daruma_FI_CfgCupomAdicional
602 - Daruma_FI_MapaResumo
603 - Daruma_FI_AberturaDoDia
604 - Daruma_FI_FechamentoDoDia
605 - Daruma_FI_RelatorioTipo60Analitico
606 - Daruma_FI_RelatorioTipo60Mestre
1000 - Daruma_FI_AbreCupom
1001 - Daruma_FI_VendeItem
1005 - Daruma_FI_CancelaItemAnterior
1006 - Daruma_FI_CancelaItemGenerico
1007 - Daruma_FI_IniciaFechamentoCupom
1008 - Daruma_FI_EfetuaFormaPagamento
1009 - Daruma_FI_EfetuaFormaPagamentoDescricaoForma
1010 - Daruma_FI_TerminaFechamentoCupom
1011 - Daruma_FI_FechaCupom
1012 - Daruma_FI_FechaCupomResumido
1013 - Daruma_FI_IdentificaConsumidor
1014 - Daruma_FI_CancelaCupom
1015 - Daruma_FI_AumentaDescricaoItem
1016 - Daruma_FI_UsaUnidadeMedida
1017 - Daruma_FI_EstornoFormasPagamento
1018 - Daruma_FI_EmitirCupomAdicional
1100 - Daruma_FI_ReducaoZ
1101 - Daruma_FI_LeituraX
1102 - Daruma_FI_LeituraMemoriaFiscalData
1103 - Daruma_FI_LeituraMemoriaFiscalReducao
1104 - Daruma_FI_LeituraMemoriaFiscalSerialData
1105 - Daruma_FI_LeituraMemoriaFiscalSerialReducao
1200 - Daruma_FI_RelatorioGerencial
1201 - Daruma_FI_FechaRelatorioGerencial
1202 - Daruma_FI_RecebimentoNaoFiscal
1203 - Daruma_FI_AbreComprovanteNaoFiscalVinculado
1204 - Daruma_FI_UsaComprovanteNaoFiscalVinculado
1205 - Daruma_FI_FechaComprovanteNaoFiscalVinculado
1206 - Daruma_FI_Sangria
1207 - Daruma_FI_Suprimento
1208 - Daruma_FI_AbreRelatorioGerencial
1210 - Daruma_FI_AbreRecebimentoNaoFiscal
1011 - Daruma_FI_EfetuaFormaPagamentoNaoFiscal
1300 - Daruma_FI_Autenticacao
1301 - Daruma_FI_VerificaDocAutenticacao
1302 - Daruma_FI_AutenticacaoStr
1310 - Daruma_FI_AcionaGaveta
1311 - Daruma_FI_VerificaEstadoGaveta
1312 - Daruma_FI_VerificaEstadoGavetaStr
1400 - Daruma_FI_VerificaImpressoraLigada
1401 - Daruma_FI_VerificaEstadoImpressora
1402 - Daruma_FI_RetornoImpressora
1403 - Daruma_FI_StatusComprovanteNaoFiscalVinculado
1404 - Daruma_FI_StatusCupomFiscal
1405 - Daruma_FI_StatusRelatorioGerencial
1406 - Daruma_FI_RetornoAliquotas
1407 - Daruma_FI_VerificaTotalizadoresParciais
1408 - Daruma_FI_SubTotal
1410 - Daruma_FI_DadosUltimaReducao
1411 - Daruma_FI_NumeroSerie
1412 - Daruma_FI_VersaoFirmware
1413 - Daruma_FI_CGC_IE
1414 - Daruma_FI_GrandeTotal
1415 - Daruma_FI_Descontos
1416 - Daruma_FI_Cancelamentos
1417 - Daruma_FI_NumeroCupom
1418 - Daruma_FI_NumeroOperacoesNaoFiscais
1419 - Daruma_FI_NumeroCuponsCancelados
1420 - Daruma_FI_NumeroReducoes
1421 - Daruma_FI_NumeroIntervencoes
1422 - Daruma_FI_NumeroSubstituicoesProprietario
1423 - Daruma_FI_UltimoItemVendido
1425 - Daruma_FI_NumeroCaixa
1426 - Daruma_FI_NumeroLoja
1427 - Daruma_FI_SimboloMoeda
1428 - Daruma_FI_FlagsFiscais
1429 - Daruma_FI_MinutosLigada
1430 - Daruma_FI_MinutosImprimindo
1431 - Daruma_FI_VerificaModoOperacao
1432 - Daruma_FI_VerificaEpromConectada
1433 - Daruma_FI_ValorPagoUltimoCupom
1434 - Daruma_FI_DataHoraImpressora
1435 - Daruma_FI_ContadoresTotalizadoresNaoFiscais
1437 - Daruma_FI_DataHoraReducao
1438 - Daruma_FI_DataMovimento
1439 - Daruma_FI_VerificaTruncamento
1440 - Daruma_FI_VerificaAliquotasIss
1441 - Daruma_FI_Acrescimos
1443 - Daruma_FI_VerificaRecebimentoNaoFiscal
1444 - Daruma_FI_VerificaTipoImpressora
1445 - Daruma_FI_VerificaIndiceAliquotasIss
1446 - Daruma_FI_ValorFormaPagamento
1447 - Daruma_FI_ValorTotalizadorNaoFiscal
1448 - Daruma_FI_VerificaFormasPagamentoEx
1449 - Daruma_FI_SaldoAPagar
1450 - Daruma_FI_Troco
1451 - Daruma_FI_RetornaAcrescimoNF
1452 - Daruma_FI_RetornaCFCancelados
1453 - Daruma_FI_RetornaCNFCancelados
1454 - Daruma_FI_RetornaCLX
1455 - Daruma_FI_RetornaCNFNV
1457 - Daruma_FI_RetornaCRO
1458 - Daruma_FI_RetornaCRZ
1459 - Daruma_FI_RetornaCRZRestante
1460 - Daruma_FI_RetornaCancelamentoNF
1461 - Daruma_FI_RetornaDescontoNF
1462 - Daruma_FI_RetornaGNF
1463 - Daruma_FI_RetornaTempoImprimindo
1464 - Daruma_FI_RetornaTempoLigado
1465 - Daruma_FI_RetornaTotalPagamentos
1466 - Daruma_FI_RetornaTroco
1467 - Daruma_FI_ClicheProprietarioEx
1468 - Daruma_FI_COO
1469 - Daruma_FI_VerificaModeloECF
1470 - Daruma_FI_VerificaDescricaoFormasPagamento
1471 - Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado
1473 - Daruma_FI_UltimaFormaPagamento
1479 - Daruma_FI_FlagsFiscaisStr
1481 - Daruma_FI_PalavraStatus
1482 - Daruma_FI_PalavraStatusBinario
1483 - Daruma_FI_LerAliquotasComIndice
1484 - Daruma_FI_VerificaDiaAberto
1485 - Daruma_FI_RetornaRegistradoresFiscais
1486 - Daruma_FI_VerificaTotalizadoresNaoFiscaisEx
1488 - Daruma_FI_VerificaXPendente
1489 - Daruma_FI_VerificaZPendente
1490 - Daruma_FI_VendaBruta
1493 - Daruma_FI_TipoUltimoDocumento
1494 - Daruma_FI_VerificaHorarioVerao
1495 - Daruma_FI_RetornaValorComprovanteNaoFiscal
1496 - Daruma_FI_RetornaIndiceComprovanteNaoFiscal
1497 - Daruma_FI_RetornaDescricaoCNFV
1498 - Daruma_FI_VendaBrutaAcumulada
1499 - Daruma_FI_RetornaRegistradoresNaoFiscais
1502 - Daruma_FI_RetornarVersaoDLL
1900 - Daruma_TEF_EsperarArquivo
1901 - Daruma_TEF_ImprimirResposta
1902 - Daruma_TEF_SetFocus
1903 - Daruma_TEF_TravarTeclado
1904 - Daruma_TEF_FechaRelatorio
1905 - Daruma_TEF_ImprimirRespostaCartao
2000 - Daruma_FIB_AbreBilhetePassagem
2001 - Daruma_FIB_VendeItem
4001 - Daruma_DUAL_ImprimirTexto
4002 - Daruma_DUAL_VerificaStatus
4003 - Daruma_DUAL_VerificaDocumento
4004 - Daruma_DUAL_Autenticar
4005 - Daruma_DUAL_AcionaGaveta
4008 - Daruma_DUAL_ImprimirArquivo
4009 - Daruma_DUAL_StatusGaveta
4012 - Daruma_DUAL_ImprimirCodigoBarras
4014 - Daruma_DUAL_VerificarGuilhotina
5000 - Daruma_FI2000_SelecionaBanco
5001 - Daruma_FI2000_SelecionaCidade
5002 - Daruma_FI2000_SelecionaData
5003 - Daruma_FI2000_SelecionaFavorecido
5004 - Daruma_FI2000_SelecionaValorChequeH
5005 - Daruma_FI2000_SelecionaValorChequeV
5006 - Daruma_FI2000_SelecionaTextoVersoCheque
5007 - Daruma_FI2000_LeituraCodigoMICr
5008 - Daruma_FI2000_LiberarCheque
5009 - Daruma_FI2000_CarregarCheque
5010 - Daruma_FI2000_CorrigirGeometriaCheque
5012 - Daruma_FI2000_CriaRelatorioGerencial
5013 - Daruma_FI2000_AbreRelatorioGerencial
5014 - Daruma_FI2000_VerificaRelatorioGerencial
5015 - Daruma_FI2000_StatusCheque
5016 - Daruma_FI2000_ImprimirCheque
5017 - Daruma_FI2000_ImprimirVersoCheque
5018 - Daruma_FI2000_DescontoSobreItemVendido
5019 - Daruma_FI2000_SegundaViaCNFVinculado
5020 - Daruma_FI2000_CancelamentoCNFV
5021 - Daruma_FI2000_AcrescimosICMSISS
5022 - Daruma_FI2000_CancelamentosICMSISS
5023 - Daruma_FI2000_DescontosICMSISS
5024 - Daruma_FI2000_LeituraInformacaoUltimoDoc
5025 - Daruma_FI2000_LeituraInformacaoUltimosCNF
6000 - Daruma_FIMFD_RetornaInformacao
6001 - Daruma_FIMFD_ImprimeCodigoBarras
6002 - Daruma_FIMFD_CasasDecimaisProgramada
6003 - Daruma_FIMFD_IndicePrimeiroVinculado
6004 - Daruma_FIMFD_DownloadDaMFD
6008 - Daruma_FIMFD_StatusCupomFiscal
6009 - Daruma_FIMFD_ProgramarGuilhotina
6013 - Daruma_FIMFD_ProgramaRelatoriosGerenciais
6014 - Daruma_FIMFD_AbreRelatorioGerencial
6015 - Daruma_FIMFD_VerificaRelatoriosGerenciais
6016 - Daruma_FIMFD_EmitirCupomAdicional
6017 - Daruma_FIMFD_AcionarGuilhotina
6018 - Daruma_FIMFD_EqualizarVelocidade
6019 - Daruma_FIMFD_ProgramarGuilhotina
6020 - Daruma_FIMFD_RetornarInfoDownloadMFD
6021 - Daruma_FIMFD_RetornarInfoDownloadMFDArquivo
6022 - Daruma_Sintegra_GerarRegistrosArq
6023 - Daruma_Sintegra_GerarRegistro10
6024 - Daruma_Sintegra_GerarRegistro11
6026 - Daruma_Sintegra_GerarRegistro60M
6027 - Daruma_Sintegra_GerarRegistro60A
6028 - Daruma_Sintegra_GerarRegistro60I
6029 - Daruma_Sintegra_GerarRegistro60R
6030 - Daruma_Sintegra_GerarRegistro90
6031 - Daruma_Framework_Teste_Consumo_MFD
6032 - Daruma_FIMFD_DescontoAcrescimoItem


Configurando a Daruma32.SO

Configurando a lib Daruma.SO para linux

A share library da Daruma veio para oferecer as mesmas funcionalidades e facilidades da Dll para Windows.

1. INSTALAÇÃO

A Share Library utiliza o mesmo processo de Registry para Windows, assim para se manter a compatibilidade e o source unificado será necessário os seguintes procedimentos:

mkdir -p /usr/local/share/Daruma

chmod 777 /usr/local/share/Daruma

chown -R root.users /usr/local/share/Daruma

Não se esqueça de dar permissão de leitura e escrita para a porta que será utilizada, por exemplo ttyS0, para o usuário que irá utilizar a library.

Ou para facilitar:

chmod 777 /dev/ttyS0

O diretório /usr/local/share/Daruma irá conter o "registry" da share library intitulado Daruma32.conf, o qual conterá todas as variáveis de utilização da biblioteca.

Por exemplo:

cp libDaruma32.so /usr/local/lib

ln -s /usr/local/lib/libDaruma32.so /usr/lib/local/libDaruma32.so

ldconfig -v | grep libDaruma32.so

Fazendo isso teremos um link simbólico para a share library com o nome

de libDaruma32.so, isso facilita quando for linkar o seu software com a

library.
library para o diretório correspondente e criar o atalho padrão, sem ser

necessário recompilar o seu software. Muito similar a Dll Windows.

Se você conseguir ver a library carregada com o comando
ldconfig -v | grep libDaruma32.so acima a parte mais "difícil" foi feita.

Caso não veja a libDaruma32.so com o comando ldconfig, verifique se o caminho /usr/local/lib está contido no arquivo /etc/ld.so.conf.

Agora é só linkar o seu programa com a library.

g++ -fwritable-strings seu_programa -lDaruma32

Pronto agora você vai poder usar toda a estrutura da share library de alto nível, usando as mesmos métodos da Dll para Windows, como por exemplo:

Daruma_FI_AbreCupom, Daruma_FI_VendeItem, Daruma_FI_NumeroCupom e assim por diante.


Configurando a Daruma32.DLL para trabalhar com W.T.S. (Utilizando o Observer).

Configurando a Daruma32.DLL para trabalhar com W.T.S.
(Utilizando o Observer) - Win9x até Win2000
Previous Top Next

A Daruma32.dll permite também comunicação remota, utilizando-se do Windows Terminal Service, para que isso seja possível descrevemos abaixo algumas configurações a serem feitas para um perfeito funcionamento. Lembrando que este procedimento aplica-se somente para os Sistemas Operacionais Win9x até Win2000 ou aplicações Win 16 bits.

1º) Preparando o nosso servidor.
1.1 Baixar a Daruma32.dll versão server, que está disponível em nossa página para down-load no link:
http://www.desenvolvedoresdaruma.com.br/home/downloads/Daruma32_Server.exe.

1.2 Entrar no aplicativo de que deverá estar no servidor. Isso deve ser feito para que seja criada a pasta Daruma (contendo todas as chaves para configuração), no registry conforme imagem abaixo:

Uma vez criada a pasta Daruma devemos alterar o valor da chave Terminal Server para 1(um). Você poderá clicar com o botão direito do mouse e escolhendo a opção modificar ou ainda dando um duplo clique, que também permitirá alterar o valor da chave.

Alterada essa chave o nosso servidor já esta configurado.

2º) Preparando a nossa estação.
2.1 Baixar a Daruma32.dll Versão Client, que está disponível em nossa página para down-load no link: http://www.desenvolvedoresdaruma.com.br/home/downloads/Daruma32_Windows.exe.
2.2 Baixar o Observer2 (driver) que fica monitorando o Endereço IP do Servidor. Para baixá-lo basta acessar o link: http://www.desenvolvedoresdaruma.com.br/home/downloads/Observer_Completo.exe.

2.3 Verificar incialmente a comunicação localmente na máquina está sendo realizada com sucesso, seguindo as informações abaixo na imagem. O Observer quando configurado localmente aparece no 'Status' o nome do dispositivo conectado, após você certificar que a impressora está conectada localmente vamos realizar alguns testes na aba 'Testar Observer'.

"Você poderá realizar qualquer testes utlizando as informações listadas nos tópicos do 'Testar Obverser', abaixo segue alguns exemplos de como realizar os testes utlizando o Daruma_FI_VendeItem, aonde você poderá passar as informações e clicar após programado no botão ENVIAR"

"Para encerrar o cupom iremos utilizar a função Daruma_FechaCupomResumido, onde podemos também alterar as opções e ENVIAR."

fecha

"Após a conclusão iremos verificar se a comunicação foi realizada com sucesso."

Após os testes a impressora estiver funcionando adequadamente, poderemos então retomar as configurações para trabalhar remotamente utilizando o Observer.

2.4 Tendo conseguido efetuar a venda sem maiores problemas, só résta configurar o Observer2 para passar a monitorar o End IP público do Servidor e também a Porta que será usada, que por Default é 1002. Conforme nos mostra a figura abaixo:

ob1

As informações acima são uma demonstração de como realizar as configurações.

2.5 Concluída a configuração. Pronto agora você já pode logar-se no servidor e entrar no aplicativo de automação comercial e enviar os primeiros comandos.

Observação: O endereço de IP a ser configurado no Observer2 deve ser o IP quente. Outro detalhe é que necessariamente ao dar um ping à partir do servidor e vice-versa, servidor e cliente deverão responder, caso isso não aconteça, então reveja as configurações de sua Ethernet ou VPN.


Configurando a Daruma32.DLL para trabalhar com W.T.S. (Utilizando o Windows 2003 Server)

Configurando a Daruma32.DLL para trabalhar com W.T.S.
(Para Servidores Windows 2003 Server)
Previous Top Next

A – Configuração do Servidor:

Para a realização da Comunicação entre as maquinas necessitamos primeiramente configurar o Servidor para a realização da comunicação, iremos utilizar o seguinte:

- Windows 2003;
- Daruma DLL – Ultima Versão – Versão Cliente (Client);
- Configurações Locais.

1 – Instalando a DLL:

A DLL – Daruma32.dll deverá estar localizada na pasta padrão indicada por nós desenvolvedores DARUMA.

Raiz: Windows\System32

2 – Configurações Locais:

Necessitamos configurar no servidor algumas opções para que a comunicação seja realizada com sucesso.

'Caso' você não utilizar as portas de comunicações da máquina, como por exemplo, COM1, LPT ou etc. aconselhamos desabilitar as portas nos 'Dispositivos de Hardware' (Segue a Tela Abaixo).

(Meu Computador – Propriedade – Hardware – Gerenciador de Dispositivo)
Após realizar essas opções adicionais, iremos configurar as propriedades do RDP – Remote Desktop Protocol (Sistema). Iremos fazer as seguintes configurações:

(Meu Computador – Propriedade – Remoto)

** Lembrando que, caso o Servidor esteja configurado no AD necessita ser configurado essa opção dentro do AD.

Realizados essas configurações no servidor estará funcionando corretamente. Por quê?

- Iremos acessar o aplicativo no caso o nosso exemplo (Framework) no servidor, sendo assim a DLL Cliente deverá estar aplicado no servidor.
- Sendo assim, o servidor estará sendo o ponto de escape para os clientes.

B – Configuração do Cliente:

- Windows XP;
- Acesso Remoto.

1 – Acesso Remoto:

Para realização da conexão remota ao servidor, iremos necessitar estar instalado o recurso de RDP na maquina do cliente. Para acessa-lo iremos procurar em 'Acessórios – Comunicação - Conexão de área de trabalho remota', logo após sua execução irá aparecer a seguinte tela:

Computar: IP do Servidor (Ex.: 10.0.0.1)
Nome de Usuário: Nome do Usuário do Servidor
Senha: Senha do Usuário do Servidor
Domínio: Caso haja um domínio (Ex.: Daruma)

Logo após iremos na 'ABA' – Recursos Locais

Iremos 'habilitar' a opção portas seriais

Feitos essas configurações no RDP, iremos realizar a comunicação com o servidor utilizando o IP do servidor (Computador).
Realizados essas configurações estaremos conectados nesse servidor e os aplicativos para a utilização da impressora que estará instalada e configurada no servidor deixando as estações dos clientes livres.

** Lembrando que o Firewall não interfere nas configurações.

C – Caso o Cliente utilize Domínio ou Fixo?

1 – Domínio:

No caso do cliente utilizar o domínio, deveremos ter ciência de qual IP iremos nos comunicar ao usar o RDP no cliente.

2 – Fixo:

No Caso do IP Fixo necessitamos configurar no dispositivo de Rede o IP do Servidor e do Cliente e certificar que ambos estão comunicando (Ping).

Observações Importantes:

O fato de ter VPN não obriga ter AD (Active Directory). AD é um recurso do Windows, para controle de diretório (acessos a objetos de rede).

Um exemplo claro é que posso ter VPN, por exemplo, em sistemas operacionais como às distribuições Linux que não tem o recurso especifico como o AD.

No servidor:

· O usuário deve estar no grupo com autorização para acesso remoto.

· O link tem que ser 'roteável' para rota externa. Executar os comandos 'ping' entre essas estações é vital e necessário.

· Deve ter haver todas as necessidades liberadas no caso de políticas (policies) dentro do 'Firewall'.

· O servidor preciso dar acesso a Remote Desktop.


Utlizando o FlagShip com Impressoras Daruma

Utilizando o FlagShip com Impressoras Daruma

Vantagens em utilizar o Observer2linux, na linguagem FlagShip.

Você que já possui um aplicativo pronto, escrito em clipper e que comunica com as nossas impressoras atrevés do Observer2 para windows poderá utilizar o mesmo fonte para o FlagShip, sem ter que alterar uma única linha de codigo sequer, no módulo fiscal.

Instruções de Instalação

1. Introdução;
Este manual de instalação do FlagShip, é voltado a você que é desenvolvedor em FlagShip e está interessado em desenvolver um aplicativo comercial, que se comunique com as nossas Impressoras Fiscais.

2. Pré-requisitos;
1) É necessário instalarmos a lib Daruma32.so.
Para baixar a lib acesse o seguinte link: Daruma32.so. ("Esta biblioteca será utilizada pelo driver Observer2 para Linux"), para você intalar ela deverá realizar o procedimento:

2.1 Crie o seguinte diretório;
mkdir -p usr/local/share/Daruma

2.2 Dê as permissões para este diretório e usuários;
chmod 777 usr/local/share/Daruma
chown -R root.users /usr/local/share/Daruma

2.3 Dadas as permissões, é hora de instalarmos e registramos a Daruma32.so;

2.3.1 Importante! O diretório /usr/local/share/Daruma irá conter o "registry" da Daruma32.so, este arquivo se chama Daruma32.conf, o qual conterá todas as variáveis de utilização da biblioteca;
2.3.2 Copie a lib para o diretório criado anteriormente: cp Daruma32.so /usr/local/lib ln -s /usr/local/lib/libDaruma32.so /usr/local/lib/libDaruma32.so;
2.3.3 Em seguida digite ldconfig -v | grep libDaruma32.so.
2.3.4 Se você conseguir ver a Daruma32.so carregada com o comando: ldconfig -v | grep libDaruma32.so acima a parte mais "difícil" foi feita. Caso não veja a Daruma32.so com o comando ldconfig, verifique se o caminho /usr/local/lib está contido no arquivo /etc/ld.so.conf

2.4 Concluída a instalação da lib é hora de você baixar o Observer2linux para baixá-lo acesse: Observer2linux;

O Observer2linux é uma ferramenta criada para permitir a utilização das facilidades implementadas na lib Daruma32.so, por programas escritos em linguagens que não acessam shared objects (.so).
Seu funcionamento é baseado na troca de informações, utilizando arquivos texto, veremos mais a fundo este assunto mais pra frente.

2.4.1 Crie o diretório para posterioemente copiar o Observer2linux: mkdir -p Observer2linux;
2.4.2 Copie o Observer2linux para o diretório que acaba de ser criado: cp Observer2linux /Observer2linux;
2.4.3 Uma vez copiado o Observer2linux, é hora de fazermos um teste e ver se esta tudo certo.

2.5 Criando um arquivo com um comando para Observer2linux;

2.5.1 Estando no diretório do Observer2linux, entre em qualquer editor disponível em seu Linux;
2.5.2 Já no editor digite: 1101; ou Daruma_FI_LeituraX;
2.5.3 Salve o arquivo com o nome:Daruma.cmd, se neste exatato momento a impressora começar a imprimir uma LeituraX, é bom sinal, funcionou o Observer2linux está pronto para ser usado.

Atenção se nada acontecer, é hora de verificar tudo, fazer um Check List!

2.5.4 Verifique se a Impressora esta on-line e com o cabo conectado nela e no micro;
2.5.5 Verifique se não esqueceu de dar alguma permissão ao usuário
2.5.6 Verifique também dentre os processos pelo comando ps -A | grep Observer2;
2.5.7 Verifique se o nome e extensão do arquivo, que contém o comando estão corretos, se ele foi realmente salvo e onde;
2.5.8 Se mesmo com tudos estando ok, não funcionou, por favor entre em contato com o nosso suporte ao desenvolvedor 0800 770 3320 ou mande-nos um e-mail para: suporte@daruma.com.br. Dê preferência entre em contato por telefone, ou ainda se preferir nos informe o seu telefone, que entraremos em contato.

2.6 Executando o Observer2linux em modo de teste;

2.6.1 Para isto deve-se primeiramente matar o processo do Observer2linux anteriormente executado e iniciar o Observer2linux da seguinte maneira: ./Observer --teste &, se estiver tudo devidamente instalado "Daruma32.so"+"Observer2linux", teremos como resultado uma LeituraX e o seguinte retorno do comando: 001;006;000;000

3. Instalando, testando o exemplo em FlagShip;

Quando baixar e abrir o fonte do exemplo em FlagShip, você notará que o nome do Prg é o mesmo do usado no exemplo em Clipper, isso porque há uma semelhança muito grande entre o Clipper e o FlagShip. Na verdade o exemplo em FlagShip re-utiliza todo o código escrito em Clipper. Pois bem sendo assim você que já escreveu um aplicativo para nossas impressoras em clipper poderá re-utilizar o código em FlagShip, alterando apenas na rotina de envio e espera de arquivo o path onde é gravado o arquivo de comando Daruma.cmd e onde o Observerlinux irá gravar o arquivo de retorno Daruma.ret, acompanhe essa mudança nos trechos tirados dos exemplos logo abaixo:

4. Exemplo em Clipper;

/*//////////////////////////////////////Função que envia os dados para o ECF////////////////////////////////////////*/

static function COMUNICA_COM_ECF(VAR_COMANDO_ECF)

Delete File("c:\DARUMA.CMD")
Delete File("c:\STATUS.TXT")
Delete File("c:\RETORNO.TXT")
Delete File("c:\DARUMA.RET")

/*Escreve comandos no Arquivo*/
H_Handle := fcreate("c:\DARUMA.CMD" )
FWrite( H_Handle , @VAR_COMANDO_ECF, Len( VAR_COMANDO_ECF) )
FClose( H_Handle )

VAR_ESPERA:=1
/*Espera que o Arquivo de Resposta Seja Criado*/
do while VAR_ESPERA > 0
if File("c:\DARUMA.RET")
VAR_ESPERA :=0
else
loop
end if
enddo

RET_TAM:=0
/*Espera o Arquivo ter um conteudo*/
do While RET_TAM = 0

H_Handle := Fopen("c:\DARUMA.RET")
RET_TAM = FSeek( H_Handle, 0, FS_END )
Fclose(H_Handle)

enddo

H_Handle:= Fopen("c:\DARUMA.RET")

POS_RET = 0
VAR_RET_CMD=" "
VAR_AUX =" "

if RET_TAM > 0
for POS_RET = 1 to RET_TAM - 1
fread( H_Handle, @VAR_AUX, 1)
if VAR_AUX <> chr(13)
VAR_RET_CMD= VAR_RET_CMD + VAR_AUX
end if
next
endif
fclose(H_Handle)

set color to n/bg
@ 23,0 clear to 23,80
@23,0 say "Comando Enviado: " + VAR_COMANDO_ECF
@24,0 say "Retorno: " + VAR_RET_CMD
VAR_BUFFER_RETORNO:=VAR_RET_CMD

/* if VAR_ESPERARTECLA <> 1
inkey(0)
end if
*/
return NIL

/*//////////////////////////////////Fim da Função que envia os dados para o ECF///////////////////////////////////*/

5. Exemplo em FlagShip;

/*//////////////////////////////////////Fun?o que envia os dados para o ECF///////////////////////////////////////*/

static function COMUNICA_COM_ECF(VAR_COMANDO_ECF)

Delete File("/Observer2/Daruma.cmd")
Delete File("/Observer2/Status.txt")
Delete File("/Observer2/Retorno.txt")
Delete File("/Observer2/Daruma.ret")

/*Escreve comandos no Arquivo*/

H_Handle := fcreate("/Observer2/Daruma.cmd" )
FWrite( H_Handle , @VAR_COMANDO_ECF, Len( VAR_COMANDO_ECF) )
FClose( H_Handle )

VAR_ESPERA:=1
/*Espera que o Arquivo de Resposta Seja Criado*/

do while VAR_ESPERA > 0
if File("/Observer2/Daruma.ret")
VAR_ESPERA :=0
else
loop
end if
enddo

RET_TAM:=0
/*Espera o Arquivo ter um conteudo*/

do While RET_TAM = 0

H_Handle := Fopen("/Observer2/Daruma.ret")
RET_TAM = FSeek( H_Handle, 0, FS_END )
Fclose(H_Handle)
enddo

H_Handle:= Fopen("/Observer2/Daruma.ret")

POS_RET = 0
VAR_RET_CMD=" "
VAR_AUX =" "

if RET_TAM > 0
for POS_RET = 1 to RET_TAM - 1
fread( H_Handle, @VAR_AUX, 1)
if VAR_AUX <> chr(13)
VAR_RET_CMD= VAR_RET_CMD + VAR_AUX
end if
next
endif
fclose(H_Handle)

set color to n/bg
@ 23,0 clear to 23,80
@23,0 say "Comando Enviado: " + VAR_COMANDO_ECF
@24,0 say "Retorno: " + VAR_RET_CMD
VAR_BUFFER_RETORNO:=VAR_RET_CMD

if VAR_ESPERARTECLA <> 1
inkey(0)
end if

return NIL

/*//////////////////////////////////Fim da Fun?o que envia os dados para o ECF///////////////////////////////////*/

*Muito bem agora que você já viu o que mudou e foi apenas o pah (caminho), em relação ao trecho de código de escrita e leitura de arquivo de comando. Vejamos como instalar o exemplo e testá-lo.

6. Compilando o ".PRG" com FlagShip;

Para você compilar o aplicativo Daruma32.prg, com o compilador FlagShip para Linux, observe
a seguinte mudança no código:
Foi alterado somente o Path, onde o Aplicativo em FlagShip irá criar, e apagar, os seguintes
arquivos:
Daruma.cmd, Daruma.ret, Status.txt, Retorno.txt

* Atenção: O arquivo Daruma.cmd, deve ser criado no mesmo diretório, onde o Observer2 para
Linux está configurado.

É possível compilar de duas formas, na forma dinâmica e estática, conforme a parametrização.

6.1 Compilando o Daruma32.prg de forma dinâmica;

Para rodar o executável é necessário ter o FlagShip instalado em seu computador. Para compilar
o projeto digite os comando abaixo:

# FlagShip Daruma32.prg -o Daruma32

6.2 Compilando o Daruma32.prg de forma estática;

Para rodar o executável não é necessário ter o FlagShip instalado, pois as lib's necessárias já
estão incorporadas, neste caso, o FlagShip roda sem problemas, desde que a versão do GLib_C, seja a
mesma, veja no item 5.3 como verificar a versão da Glib_C, para compilar digite os comandos abaixo:
# FlagShip Daruma32.prg -stat -o Daruma32
*Atenção: é recomendado ter a versão "glibc-2.3.3" ou superior

6.2.1 Verificando a versão da GLib_C;

Para verificar se o GLib_C está instalado, e qual sua versão, execute a linha de comando abaixo:

# rpm -qa | grep -i glib ==> "a minha por exemplo é glibc-2.3.3"

7. Como executar nosso programa em FlagShip;

É possível executar o aplicativo tanto modo gráfico, como em modo terminal (texto)
Para rodar o aplicativo, entre no diretório onde se encontra o aplicativo, e digitar os comandos
abaixo:
# ./Daruma32

7.1 Como executar no modo texto;

Essa opção irá executar o aplicativo, no terminal de comandos, para fazer essa escolha basta
digitar os comandos abaixo:
# ./Daruma32 -io=t


Fazendo um Cupom Fiscal com o FlagShip com Impressoras Daruma

Ulizando o FlagShip com Impressoras Daruma

Já com o exemplo em FlagShip inicializado é hora de você que está começando agora a desenvolver para ECF (emissor de cupom fiscal), é necessário você seguir alguns processos importantes.

1. Qual é o primeiro documento emitido quando da abertura do movimento fiscal?

É uma LeituraX. É um relatório que contém todas as informações decorrentes do movimento realizado no PDV(ponto-de-venda), onde esta o ECF. Sendo assim para abrir o movimento, bastando para isso enviar o comando de LeituraX. Então como enviar o comando?

Existem duas maneiras, que se aplicam a todos os comandos existentes nesse help.

1º) Crie um arquivo com comando, passando nome do Método->Daruma_FI_LeituraX;
2ª) Outra forma, ao invéz de invocar o método pelo seu nome, é passado apenas o seu índice, seguido do(s) parâmetro(s): 1101;

Onde 1101 é o índice do método LeituraX;
Ponto-e-vígula é o separador padrão usado para separar o índice dos parâmetros;

2. Estando com o dia aberto, é hora de partirmos para o primeiro cupom fiscal;

Abaixo listarei os comandos usados para a emissão de nosso primeiro cupom fiscal:

2.1 1000; (parâmetro opcional); ou Daruma_FI_AbreCupom;(parâmetro opcional);
2.2 1001;123;mamao;FF;I;1,00;2;0,10;%;0,00; ou Daruma_FI_VendeItem;123;mamao;FF;I;1,00;2;0,10;%;0,00;
2.3 1012;dinheiro;Obrigado, Volte Sempre!!!; ou Daruma_FI_FechaCupomResumido;dinheiro;Obrigado, Volte Sempre!!!;

O exemplo posto anteriormente é suficiente para que seja emitido um cupom fiscal, lebrando que trata-se de um exemplo, e cada comando deverá ser preferêncialmente escrito em um arquivo, visando facilitar o tratamento dos arquivos de retorno.
Por consequência teremos três arquivos de retorno, porém você deverá abrir cada um e certificar-se de que o retorno está ok, como o que é mostrado a seguir.

3. Lendo o arquivo de retorno e verificando se correu tudo dentro do esperado, durante a execução do arquivo de comando Daruma.cmd;

3.1 Para cada comando Daruma.cmd enviado, você receberá um arquivo de retorno Daruma.ret, que conterá a seguinte estrutura.

exemplo: 001;006;000;000

3.2 Onde 001 é o byte do tipo inteiro que nos indica que o método foi enviado com sucesso para o ECF. Importante!!! Qualquer valor diferente de 1(um), chame o método Daruma_FI_RetornoImpressora(Índice 1402).

3.3 006 É o ACK.

3.4 000: Equivale ao byte de Status 1, para ver a tabela de valores deste byte, clique aqui:Daruma FrameworkTabela de Retornos ST1 e ST2.
3.5 000: Equivale ao byte de Status 2, para ver a tabela de valores deste byte, clique aqui:Daruma FrameworkTabela de Retornos ST1 e ST2.


O Quê é o Driver Daruma Observer?

O Que é o Driver Observer2?
Previous Top Next

O Driver Observer2 é o Único driver Desenvolvido no mercado de automação comercial, que permite o uso de um Único Protocolo entre os aplicativos DOS e Windows e ainda Linux que não conseguem instânciar uma biblioteca no Linux (Daruma32.SO).
Este Driver reside no windows, permitindo que Aplicativos DOS/Win 16 bit´s, possam Acessar ao ECF com maior Facilidade tendo em vista a necessidade de se ter windows nos Equipamentos para a Realização do TEF. Com isso Desenvolvemos o Observer2 que ficará residente na área de Relógio do Windows esperando que seja enviado comandos para ele.

· Porque usar o Observer2 em meu programa DOS?
1) 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 Observer2.
2) Porque todas as EVOLUÇÕES e MELHORIAS e FACILIDADES da Daruma32.dll estarão disponíveis para seu Aplicativo DOS, porque o Observer2 utiliza-se da Dll de Comunicação com todas as faciliadades que nela se encontra.
3) Porque agora para enviar os métodos para o ECF através de seu aplivativo DOS você utiliza-se dos Métodos de Alto-Nível que a Daruma32.dll contém, basta passar o ÍNDICE ou o nome do mesmo o índice você Obtem ao Lado do nome da cada Método, neste Help, ou seja, com isso você consegue usar métodos como por exemplo Daruma_FI_FechaCupomResumido antes não disponívies no DOS, porém agora disponivels no Observer2.
4) Porque agora você não necessita se preocupar com a passagem correta dos Parâmetros, como por exemplo na Descrição da venda de um ítem, você não necessita se preocupar com preenchimento do restante da Descrição pois a Daruma32.dll através do Observer2 faz isso para você!! Esta Facilidade antes estava disponível apenas no Windows, mas agora está disponível também para Aplicativos DOS/Win 16 bit´s.
5) Agora você também consegue enviar não somente um método por vez, mas sim um lote, todos os métodos que necessitar. Assim sendo você poderá enviar "todos" os itens em um único arquivo. Obs.: Para cada comando dentro do lote de comandos, haverá um retorno próprio, por exemplo se no arquivo de lote de comandos tivermos dois itens então teremos dois retornos.
6) Porque em ambiente Linux mesmo você não conseguindo instânciar um shared object ainda assim você poderá trabalhar com troca de arquivo.

Ao Instalar o Daruma Observer2 ele ficará residente com o Logo da DARUMA no Relógio do Windows, área denominada como Área de Notificação do Windows. Ao passar o mouse por cima aparecerá o Nome do Driver e sua versão.
observer6
Após isso este driver ficará Observando um diretório pré-configurado em busca de Arquivos de métodos, o Valor DEFAULT deste Diretorio e deste Arquivo é C:\DARUMA.CMD, porém você poderá configurar no Menú do Proprio Driver ou através de Comandos.

Sua aplicação fica no Aguardo do Arquivo de Resposta, o Nome e Path DEFAULT deste arquivo de Reposta é C:\DARUMA.RET, porém você poderá configurar no Menu do Próprio Driver ou através de Comandos.

RET;ACK;ST1;ST2;
ou
RET;ACK;ST1;ST2;INFORMAÇÃO;

RET - Retorno do Método.
ACK - Byte Indicativo de Recebimento OK de Comunicação com a Impressora.
ST1 - Primeiro Byte que contém Erros ou avisos do ECF.
ST2 - Segundo Byte que contém Erros ou avisos do ECF.
INFORMAÇÃO - Informação desejada caso o método enviado requera uma informação além do ACK ST1 e ST2, como por exemplo, Número de Série do ECF, Data e Hora do ECF, SubTotal, Número do Cupom..

4) SEMPRE o valor será terminado em ; (ponto e Virgula) e no formato de 3 Dígitos, por exemplo:

Exemplo 1) 001;006;064;001;
001 - Indica que o Método Devolveu 1(indicativo de OK).
006 - ACK indica que o Protocolo de Comunicação está OK.
064 - Indica que o ECF está com Pouco Papel - Veja Tabela de Erro.
001 - Indica que o Método não Foi Executado - Veja Tabela de Erro.

Exemplo 2) -27;006;064;000;
-27 - Indica que o Método conseguiu enviar o comando para o ECF porém o ECF contém erro ou avisos, isso acontece porque a chave StatusFunção está ligada.
006 - ACK indica que o Protocolo de Comunicacao está OK.
064 - Indica que o ECF esta com Pouco Papel - Veja Tabela de Erro.
001 - Indica que o Método não Foi Executado - Veja Tabela de Erro.

Exemplo 3) Exemplo de Resposta a um método de Solicitação do Número do Cupom do ECF:
001;006;000;000;00028;
001 - Indica que a Função Devolveu 1(indicativo de OK).
006 - ACK indica que o Protocolo de Comunicação está OK.
000 - Indica que Não Existe Erro - Veja Tabela de Erro.
000 - Indica que Não Existe Erro - Veja Tabela de Erro.
00028 - Número do Cupom.


Graficamente como Funciona o Observer

Veja Graficamente como Funciona o Driver DARUMA Observer2

OBSERVERJPG

O Driver Observer2 basicamente Varre o Diretório que nele foi configurado, no Menu TOOLS-> CONFIGURAÇÕES você pode configurar o nome do arquivo que você deseja que seja o arquivo de comado e o nome do arquivo que você deseja que seja o arquivo de resposta, poderá configurar também o path de entrada (onde os arquivos de comandos serão criados) e o path de saida (onde os arquivos de resposta do Observer2) serão criados.


Instalando o Driver Observer no Sistema Operacional Windows

Instalando o Driver Observer2

A) Como realizar a instalação do Observer?

1) Para proceder a instalação do Driver Observer2, você deve baixar o Arquivo Observer2.ZIP em nossa Página no link:
http://www.desenvolvedoresdaruma.com.br/home/downloads/Observer_completo.exe, e em seguida descompacte em uma pasta de sua preferência.

1.1) Recomendamos que a extração dos arquivos seja realizado na Raiz da máquina (C:\).

2) Ao descompactar você irá encontrar os seguintes Arquivos:

observer

2.1) O Observer é composto por diversos arquivos de configuração, exemplos entre outros que serão explicado no próximo sub-título, os arquivos extraidos do site da Daruma são:

DARUMA32;
Daruma32.dll;
DARUMA32.exe;
Daruma.lib;
Daruma32.prg;
MFC71.dll;
msvcr71.dll;
Observer2.exe.

3) Deixar a ECF (emissor cupom fiscal), ou entao DUAL, devidamente conectada ao computador e ligada; Por último dar um duplico clique no Observer2.exe.

3.1) Ao executar o Observer2.exe você irá perceber que apareceu o seguinte icone iconeobserver na área localizada do Windows como IconTray:

observer6

B) Qual o conteúdo que acompanha o Observer?

1) Conforme disposto acima, iremos explicar abaixo quais as funções de cada integrante que acompanha o Observer2:

DARUMA32: Executa através de um atalha o aplicativo em Clipper, que simula as apilicaçções e funções utilizando os comandos na impressora fiscal, este aplicativo é para ser testado junto ao Observer e ver como é realizado a funcionabilidade do Observer.

Daruma32.dll: DLL (Dynamic Lib Library) desenvolvida pela Daruma e utilizada no Observer. Esta dll é quem faz a interface com a Impressora e devolve os retornos para o Observer2, que por sua vez devolve o retorno para a sua aplicação através do DARUMA.RET. Está DLL deve ser devidamente atualizada sempre que possível, localizada no link:

http://www.desenvolvedoresdaruma.com.br/home/downloads/Daruma32_Windows.exe

DARUMA32.exe: Executável da versão Clipper desenvolvida pelos Desenvolvedores da Daruma, software de automação para a realização de testes com a impressora.

Daruma.lib: Biblioteca de informação necessária para o funcionamento das operações realizadas em Clipper e funcionabilidade do aplicativo.

Daruma32.prg: Código Fonte da aplicação em Clipper, extremamente útil para verificar como se envia os comandos para o observer e como se lê os retornos devolvidos pelo observer2. Dica no final deste fonte, você encontrará a função que envia os comandos e a função que lê os retornos.

MFC71.dll: DLL (Dynamic Lib Library) necessária para acessar os arquivos de sistema do Windows.

msvcr71.dll: DLL (Dynamic Lib Library) necessária para acessar os arquivos de sistema do Windows.

Observer2.exe: O principal executável, ao executar o Observer2.exe você estará realizando a comunicação entre o ECF e a máquina. Necessário sempre estar disposto em açao para executar os comandos com a impressora.

2) Configurando o Observer2.exe:

2.1) Ao Iniciar você verá que o mesmo ficará executado na Barra de Notificações do Windows (IconTray), conforme figura Abaixo.

observer6

2.2) Para Configurar o Observer2 basta dar um duplo-clique no Ícone (conforme fígura acima):

observer2

DISPOSITIVO

Status:

Incialmente irá aparecer a palavra Carregando, após carregar a impressora irá aparecer a informação acima, caso apareça ECF não identificada é necessário verificar as conexões com a impressora para segurar que o dispositivo está devidamente conectado.

Dispositivo:

Produto: Selecione o Produto a ser utilizado, no caso da impressora FS345 ou FS600 o produto fica sendo como FS345.
Porta: A porta aonde está localizada o Cabo de comunicação.

Log:

Gravar Log: Ao acionar o CheckBox, o LOG referente ao Observer será gravado no endereço disponível abaixo, configurado na opção Path.
Path: Indica o caminho aonde será salvo o LOG do Observer.

Inicializaçao:

Modo de Execução: Indica o modo de execução ao ser inicializado o Observer.
Exibir Janela de inicialização: Ao marcar o checkbox, irá exibir uma janela de inicialização do aplicativo.

Caracteres - Arquivos:

Separador: Dispões dos paramêtros ultilizados.
Terminador de Linha 1: Comandos de encerramentos das linhas de executação.
Terminador de Linha 2: Comandos de encerramentos das linhas de executação.

Funcionamento:

Modo Arquivo: Modo ultilizado para realizar a comunicação local do aplicativo em DOS, utilizando as funções de Entrada e Saída de informação.
Modo Terminal: Modo ultilizado para realizar comunicação remota. (W.T.S. ultilizando o Observer)
Arquivo de Entrada: Arquivo localizado no caminho especializado aonde o Observer irá realizar a entrada de comandos na impressora.
Arquivo de Saída: Arquivo localizado no caminho especializado aonde o Observer irá realizar a saída de comandos na impressora.
Endereço Host: Endereço disponibilizado em Modo Terminal para a realização de comunicação remota.
Porta Host: Disponibilizado em Modo Terminal, indica a Porta em que o Hospedeiro (Host) está aberta para a realização de comunicação via remota.

Configuração de Processamento:

Prioridade: Indica a prioridade de processamento do Observer.
Latencia: Indica a velocidade de comunicação da troca de informações no Observer.

TESTAR OBSERVER

Nesta opção do Observer é possível testar suas funções seguindo os exemplos dos comandos localizados nos Índices abaixo:

testarobserver

Dicas:

I) Caso você necessite ou deseje que o Observe 2 entre automáticamente ao inicializar o Windows, você pode criar um atalho na pasta Iniciar de seu computador.

II) Para verificar nosso exemplo Completo em Clipper com Fonte Aberto. Para baixá-lo acesse: http://www.desenvolvedoresdaruma.com.br/home/downloads/fontes_clipper.exe

III) Para acessar nosso HELP onde contém todos os índices dos métodos que você deve chamar desde seu aplicativo DOS/Win 16 bit´s. Para baixá-lo acesse: http://www.desenvolvedoresdaruma.com.br/home/downloads/Daruma32_Help_Chm.exe

IV) Para baixar o Observer2 acesse: http://www.desenvolvedoresdaruma.com.br/home/downloads/Observer_completo.exe

V) Observer2 deverá permanecer o tempo todo com a opção Modo Arquivo configurada, caso contrário ele para de varrer o diretório e passa para o Modo Terminal Server.

VI) Eventualmente, caso o comando Daruma.cmd perder-se durante o processo de entrada de dados na impressora, podemos seguir o procedimento abaixo:

1 - Criar um DARUMA.CMX e somente após ter certeza de que acabou de escrever o comando, renomear o arquivo para DARUMA.CMD.

Caso o Arquivo de Retorno, o Daruma.ret retornar zerado,

2 - Necessitamos verificar se de fato o aplicativo está aguardando que o DARUMA.RET fosse criado e que tivesse conteúdo (Conforme nosso exemplo em Clipper localizado no link acima (II).
3 - Não se esqueça de sempre apagar o Daruma.ret após a execução do comando.

VII) Você poderá customizar o path para troca de arquivos de comando, bem como os nomes dos mesmos.

VIII) Caso o Retorno dos arquivos de Saída, volte com os números zerados, recomendamos você atualizar a DLL para a mais atual disponível em nosso site e caso contrário continue com o problema aumentar a Latencia para 100.

DLL: http://www.desenvolvedoresdaruma.com.br/home/downloads/Daruma32_Windows.exe

IX) Para evitar lentidão da troca de arquivos entre outros no Observer2 recomendamos que seja verificado em nosso código fonte as opções de Entrada/Saída de arquivos evitando erros, lentidão entre outros problemas, onde solicitamos que seja construido de forma paralela ou semelhamente ao nosso código disponibilizado no arquivo Daruma32.prg ou abaixo:

/*////////////////////////////////////////Função que envia os dados para o ECF/////////////////////////////////////////*/

static function COMUNICA_COM_ECF(VAR_COMANDO_ECF)

Delete File("c:\DARUMA.CMD")
Delete File("c:\STATUS.TXT")
Delete File("c:\RETORNO.TXT")
Delete File("c:\DARUMA.RET")

/*Escreve comandos no Arquivo*/
H_Handle := fcreate("c:\DARUMA.CMD" )
FWrite( H_Handle , @VAR_COMANDO_ECF, Len( VAR_COMANDO_ECF) )
FClose( H_Handle )

VAR_ESPERA:=1
/*Espera que o Arquivo de Resposta Seja Criado*/
do while VAR_ESPERA > 0
if File("c:\DARUMA.RET")
VAR_ESPERA :=0
else
loop
end if
enddo

RET_TAM:=0
/*Espera o Arquivo ter um conteudo*/
do While RET_TAM = 0

H_Handle := Fopen("c:\DARUMA.RET")
RET_TAM = FSeek( H_Handle, 0, FS_END )
Fclose(H_Handle)

enddo

H_Handle:= Fopen("c:\DARUMA.RET")

POS_RET = 0
VAR_RET_CMD=" "
VAR_AUX =" "

if RET_TAM > 0
for POS_RET = 1 to RET_TAM - 1
fread( H_Handle, @VAR_AUX, 1)
if VAR_AUX <> chr(13)
VAR_RET_CMD= VAR_RET_CMD + VAR_AUX
end if
next
endif
fclose(H_Handle)

set color to n/bg
@ 23,0 clear to 23,80
@23,0 say "Comando Enviado: " + VAR_COMANDO_ECF
@24,0 say "Retorno: " + VAR_RET_CMD
VAR_BUFFER_RETORNO:=VAR_RET_CMD

if VAR_ESPERARTECLA <> 1
inkey(0)
end if

return NIL

Qualquer dúvida favor entrar em contato com o Suporte ao Desenvolvedor por um de nossos canais listados a seguir:

· Ligação gratuita via internet

Skype: suporte_daruma
Skype: suporte_desenvolvedores_daruma
Skype: desenvolvedores_suporte_daruma
Skype: daruma_suporte_alexandre
Skype: claudenir_andrade
Skype: suporte_ddc_daruma
Skype: ddc_suporte_daruma
Skype: suporte.daruma (suporte à CPU)

· Por email

suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.suporte@daruma.com.br
desenvolvedores.daruma@daruma.com.br
desenvolvedores@daruma.com.br
suporte.alexandre@daruma.com.br
ddc.suporte@daruma.com.br
suporte.ddc@daruma.com.br
suporte.daruma@daruma.com.br (suporte à CPU)

· Por telefone

Desenvolvedores: 0800 770 3320


Instalando o Driver Linux Observer 2.0

Instalando o Driver Linux Observer 2

LINUX Observer 2

1. Introdução;

O Linux Observer 2.0 é uma ferramenta criada para permitir a utilização das facilidades implementadas na Daruma32.so, por programas escritos em linguagens que não acessam shared objects (.so).

Seu funcionamento é baseado na troca de informações utilizando arquivos texto.

2. Pré-requisitos;

Para que o Observer funcione adequadamente, e necessário certificar-se que a
Daruma32.so está corretamente instalada.
Para isto, como root, deve-se executar o seguinte comando:

ldconfig -v | grep Daruma32

O retorno experado é:
libDaruma32.so -> libDaruma32.so

No caso de não aparecer ao menos uma vez o retorno acima, você deve seguir as instruções de instalacao específicas da Daruma32.so, contida no arquivo LEIAME.txt da SO Configurando a Daruma32.SO.

3. Instalação e Inicializacao do Observer;

Para utilizar o Observer não é necessário nenhum procedimento de instalação ou compilação.
Deve-se apenas dar permissão de execucao ao arquivo binário Observer da seguinte forma:

chmod 777 Observer

Em seguida deve-se executar o Observer conforme mostrado abaixo:

./Observer &

Este comando fará com que o Observer seja executado em segundo plano, e retornara o
ID do Processo (PID).

[1] 123 (Supondo que o ID gerado seja 123)

Para certificar-se de que o Observer está sendo executado, deve-se executar no shell a seguinte linha de comando:

ps -A | grep Observer

O retorno esperado é: 123 pts/1 00:01:00 Observer

Com isto o Observer irá esperar no mesmo diretório onde ele se encontra um arquivo chamado Daruma.cmd, que deverá ser gerado pelo seu software para comunicacao com a SO.

Este arquivo deverá conter o nome do método ou seu índice, e os parâmetros separados por ";", como mostrado no exemplo abaixo:

Se você deseja chamar a funcao Daruma_FI_AbreCupom que possui como parâmetro apenas o CGC (opcional), deve-se escrever no arquivo Daruma.cmd a seguinte linha:

Daruma_FI_AbreCupom;01234561234-00;

Este método será executado pela impressora, e gerará um arquivo de retorno (Daruma.ret). Este arquivo contém o retorno da chamada, Ack,ST1 ST2, e algum retorno adicional, caso o método possua.
Sempre separados por ";". Abaixo segue um exemplo de um arquivo de Retorno: 001;006;000;000;

4. Verificando a versão;

Para verificar a versão do Observer deve-se executar o Observer com a opção --versao(sem acento) da seguinte forma:

./Observer --versao

5. Execução em modo teste;

Quando o Observer e executado em modo teste, inicialmente ele emite uma LeituraX, e em seguida, a cada comando, o retorno e mostrado na shell onde foi executado o Observer.

Para isto deve-se iniciar o Observer da seguinte maneira:
./Observer --teste &

6. Alterando o caminho dos arquivos de entrada e saída;

Para alterar o caminho onde sera lido o arquivo de entrada e gerado o arquivo de saída deve-se iniciar o Observer, passando como parametro o path, da seguinte maneira:
./Observer /path_de_entrada/nome_arquivo_cmd /path_de_saida/nome_arquivo_ret &

Exemplifimando melhor:

Imagine que você configurou o diretório de entrada como sendo DarumaIn e o diretório de saída DarumaOut, e os nomes dos arquivos dos arquivos, (entrada) Daruma.cmd e Daruma (saída) Daruma.ret, ficaria assim:

./Observer /DarumaIn/Daruma.cmd /DarumaOut/Daruma.ret &

OBS: o Sinal de "&" é para deixar o Observer em back ground, liberando o console para você trabalhar.

7. Parando o Observer;

Você poderá apenas escrever um arquivo de comando contendo a palavre exit exemplo:exit;
Com isso você terá o processo matado, da mesma forma que acontece utilizando o kill do linux, com a diferença de não ter que se preocupar com o ID.

Para parar o Observer e necessário matar o processo iniciado anteriormente.

Para isto, devemos inicialmente descobrir qual o ID do processo, utilizando o comando abaixo:

ps -A | grep Observer

O retorno gerado devera mostrado no padrao abaixo:

123 pts/1 01:05:56 Observer
|
|---------------------------> ID do Processo

Em seguida deve-se matar o processo utilizando o comando kill conforme exemplo abaixo:

kill 123


Preparando seu Aplicativo para o Observer

Preparando seu Aplicativo para o Observer2

1) Primeiro Passo é ter o Driver Observer2 presente no computador, conforme figura Abaixo, ele estará presente com o Logo da DARUMA na Área de Relógio.

observer6

2) Segundo Passo é criar o Arquivo de Comando no Diretório Configurado para a Recepção de Arquivos de Comando. Para enviar um método para o ECF, use este mesmo manual. Basta você passar o índice do Método desejado com os Parâmetros separados por ; (ponto-e-vírgula) e terminado por ; (ponto-e-virgula).

· Por exemplo:

Você pode simplesmente entrar com a descrição do método ou o seu respectivo índice.
Daruma_FI_AbreCupom;10.123.154-98; ou então
1000;10.123.154-98; (Indica que esta desejando abrir o Cupom fiscal e o Parâmetro é o CNPJ ou CPF)

Daruma_FI_AbreCupom;;
1000;; (indica que deseja abrir o cupom fiscal e não deseja passar o parâmetro, ou seja o parâmetro é opcional)

Daruma_FI_VendeItem;123;Lapis;FF;I;10;2;0,25;%;0000; ou então
1001;123;Lapis;FF;I;10;2;0,25;%;0000; (Exemplo de VENDA DE ITEM)

Daruma_FI_CancelaItemAnterior; ou então
1005; (Indica que desejo cancelar o Item Anterior, ou seja, com os métodos sem parâmetros, apenas coloca-se o índice do Método desejado e finaliza-se com ;

Assinando individualmente os arquivos com os comandos:

Antes de abordar este assunto, vou dar um histórico do motivo que levou-nos a disponibilizar este recurso.

A necessidade de saber se o arquivo retornado Daruma.ret, pertence ao último arquivo de comando escrito anteriormente, foi que levou-nos a criar esta funcionalidade. Além disso a possibilidade de validar com uma criptografia, também foi um dos motivos.

Vejamos então como é que podemos utilizar este recurso:

1. O que é obrigatório na assinatura? R: Deve estar entre colchetes.
2. O que não pode fazer parte da assinatura? R: Não pode-se interir mais que 50 caracteres.
3. Onde a assinatura deve estar dentro do arquidvo de comando? R: Sempre antes do índice, ou Descritivo.
4. A assinatura é obrigatória? R: Não, não é obrigatória.

Na prática você escreve o arquivo de comando Daruma.cmd com o seguinte conteúdo:

[assinatura]+indice ou descritivo+parâmetros.
[abc123]1101; ou
[abc123]Daruma_FI_LeituraX;

Como podemos ver anteriormente, a assinatura deve estar entre [colchetes], outro detalhe importante é que a assinatura pode conter caracteres alfa e tembém numéricos, ou seja, com isso, você poderá fazer uma assinatura para cada arquivo de Comando.

Misturando estas combinações é possível criar centenas de assinaturas e/ou criptografias, deixando ainda mais segura a troca de arquivos.

Na sequência vejamos alguns exemplos:

1)[a1]Daruma_FI_AbreCupom;;
2)[b2]Daruma_FI_VendeItem;123;caneta;II;I;1,00;2;1,00;%;0,00;
3)[c3]Daruma_FI_FechaCupomResumido;Dinheiro;Agradecemos pela preferência;

Conteúdo dos arquivos que serão devolvidos pelo Observer:

1)[a1]001;006;000;000;
2)[b2]001;006;000;000;
3)[c3]001;006;000;000;

O exemplo anterior o objetivo foi mostrar em três arquivos de comando, que para cada arquivo foi criada uma assinatura, e a mesma assinatura, foi inserida no arquivo retornado pelo Observer, dessa forma, torna-se fácil saber a que arquivo de comando pertence o arquivo de retorno.

Observação: Utilize na assinatura no máximo 50 carácteres.

Outras informações indispensáveis para utilização do driver Observer

Neste Manual você indentifica o Índice dos Métodos que deseja Assim como na DLL, aqui também você não necessita passar a quantidade exata de casas, pois o Observer2 utiliza-se da dll e preenche para você!!!

CADA MÉTODO CONTÉM UM ÍNDICE QUE VOCÊ ENCONTRA AQUI NESTE MESMO MANUAL.

POR EXEMPLO O MÉTODO DE ABERTURA DE CUPOM:, EXEMPLO QUE UTILIZAMOS ACIMA COM O INDICE 1000:

observer10

3) Sua aplicação deverá esperar um retorno do ECF, no memo formato da dll de comunicação (Retorno.txt).

RET;ACK;ST1;ST2;
ou
RET;ACK;ST1;ST2;INFORMAÇÃO;

RET - Retorno do Método (SEMPRE UM INTEIRO).
ACK - Byte Indicativo de Recebimento OK de Comunicação com a Impressora.
ST1 - Primeiro Byte que contém Erros ou avisos do ECF.
ST2 - Segundo Byte que contém Erros ou avisos do ECF.
INFORMAÇÃO - Informação desejada caso o método enviado requera uma informação além do ACK ST1 e ST2, como por exemplo, Número de Série do ECF, Data e Hora do ECF, SubTotal, Número do Cupom..

4) SEMPRE o valor será terminado em ; (ponto e Virgula) e no formato de 3 Dígitos, por exemplo:

Exemplo 1) 001;006;064;001;
001 - Indica que o Método Devolveu 1(indicativo de OK).
006 - ACK indica que o Protocolo de Comunicação está OK.
064 - Indica que o ECF está com Pouco Papel - Veja Tabela de Retornos.
001 - Indica que o Método não Foi Executado - Veja Tabela de Retornos.

Exemplo 2) -27;006;064;000;
-27 - Indica que o Método conseguiu enviar o comando para o ECF porém o ECF contém erro ou avisos, isso acontece porque a chave StatusFunção está ligada.
006 - ACK indica que o Protocolo de Comunicacao está OK.
064 - Indica que o ECF esta com Pouco Papel - Veja Tabela de Retornos.
001 - Indica que o Método não Foi Executado - Veja Tabela de Retornos.

Exemplo 3) Exemplo de Resposta a um método de Solicitação do Número do Cupom do ECF:
001;006;000;000;00028;
001 - Indica que a Função Devolveu 1(indicativo de OK).
006 - ACK indica que o Protocolo de Comunicação está OK.
000 - Indica que Não Existe Erro - Veja Tabela de Retornos.
000 - Indica que Não Existe Erro - Veja Tabela de Retornos.
00028 - Número do Cupom.

5) Saindo o Observer2.

Para sair do Observer2, basta você escrever um arquivo de comando contendo apenas a palavra exit, exemplo:exit; - Apenas isso e pronto o Observer2 será finalizado.

Outra maneira para sair do Observer2, seria apenas dar um duplo clique em seu ícone na barra de tarefas e clicar no botão Sair, como nos mostra a figura a seguir:


Trabalhando com Comandos em Lote, usando o Mapeamento de Unidade

Trabalhando com Comandos em Lote, usando o Mapeamento de Unidade
Previous Top Next

Utilizar os Arquivos em Lote é uma prática interessante, em casos onde há regime especial ou seja, não é obrigatória venda em concomitância.

Pensando nisso, foram criados alguns métodos para que você desenvolvedor possa continuar a mandar os comandos normalmente e a dll é quem gerencia em um nível mais baixo, gerando um lote com os comandos.

Para utilizar essa solução, siga os passos abaixo:

1. Instale o Observer na máquina cliente;
2. Crie uma pasta e deixe-a 100% compartilhada, esta pasta será usada para a troca de arquivos;
3. Configure o Observer2 para olhar para esta pasta saiba mais sobre o Observer2 clicando aqui; Instalando o Driver Observer2
4. Copie a Daruma32.dll Versão Server, na máquina, onde estará instalado o aplicativo de automação;
5. Mapeie a pasta, anteriormente criada;
6. Supondo que você tenha escolhido a letra B:\ para o mapeamento, então execute o método Daruma_Registry_PathLote(Índice 60) para alterar a chave PathLote para a letra que você escolheu para o mapeamento;
7. Agora é só executar o método Daruma_Registry_ComandosEmLote(Índice 58) e passar todos os comandos que irão estar no arquivo de lote;
8. Para finalizar o lote, utilize o método Daruma_Registry_FinalLote(Índice 59), quando for executado este método, pronto, o lote será enviado para a unidade mapeada e o Observer, na máquina cliente irá executar os comandos na impressora.

Pré-Requisitos:

1. Observer2 devidamente instalado no PDV, sem este driver torna-se impossível: veja mais sobre o Observer2:Instalando o Driver Observer2;

2. E os procedimentos de criação, permissão do compartilhamento;

3. O PDV(ponto de venda)deverá uma impressora fiscal ou não fiscal Daruma.


Trabalhando com o Observer linux em rede

Trabalhando com o Observer linux em rede

Para trabalhar com o Observer linux em rede, iremos utilizar o sistema de compartilhamento de diretórios e arquivos NFS Network File System.

O NFS permite se acessar uma máquina remota, montando-a em sua própria como um dispositivo qualquer, permitindo assim um acesso simples, como a um diretório local.

Esta forma de se utilizar o driver Observer linux visa possibilitar que apenas um aplicativo rodando no servidor, atenda uma série de pontos de venda, facilitando assim a manutenção do aplicativo comercial.

· Pré-Requisitos:

1. Observer linux devidamente instalado nos PDV's, sem este driver torna-se impossível: veja mais sobre o Observer:Instalando o Driver Linux Observer 2.0;

2. A lib utilizada pelo Observer linux a Daruma32.SO:Configurando a Daruma32.SO devidamente instalada, que sem ela tambem torna-se impossivel;

3. E os procedimentos de criação, permissão e montagem dos compartilhamentos vistos a seguir:Observer com Network File System (NFS);

4. Cada PDV(ponto de venda)deverá uma impressora fiscal.

5. O Serviço NFS (como servidor) deverá estar habilitado, em todos os PDV's.


Observer com Network File System (NFS)

Trabalhando com o Observer Linux em Rede

Montando o Serviço de NFS

· Configurando o Servidor:

1)Criar o(s) seguinte(s) diretório(s) (aqui é apenas um nome sugestivo de exemplo);
1.1)mkdir /mnt/PDV1 ou um diretório para cada PDV que fará parte da rede;

2)Dar permissão todal para o(s) mesmo(s);
2.1)chmod 777 /mnt/PDV1;

3)Confira se a comunicação está ok, dando um ping, no IP Host de seu(s) PDV(s);

4)Monte o compartilahmento do(s) ponto(s) de venda seguindo os comandos abaixo:
4.1)mount -t nfs IPPDV1:/mnt/Compartilhado_PDV1/ /mnt/PDV1

Observação:IPPDV1 é o IP Host do PDV1, caso hajam mais PDV'S, basta criar mais diretórios e seguir a risca os mesmos passos para cada um deles.

· Configurando o(s) PDV (ponto de venda):

1)Criar o seguinte diretório (aqui é apenas um nome sugestivo de exemplo);
1.1)mkdir /mnt/Compartilhado_PDV1;

2)Dar permissão todal para o mesmo;
2.1)chmod 777 /mnt/Compartilhado_PDV1;

3)Copie o Observer para o diretório que acaba de ser criado - veja mais sobre o Observer clicando no link a seguir:Instalando o Driver Linux Observer 2.0;

4)Compartilhe o diretório criado anteriormente, editando o seguite arquivo;
4.1)vi /etc/exports, adicionando a seguinte linha: /mnt/Compartilhado_PDV1 *(rw,no_root_squash);

5)Para que as configurações tenham efeito, re-inicie o sistema NFS, se preferir o SO;
5.1)Confira se o diretório foi compartilhado, utilizando o comando:exportfs;

6)Execute o Observer;
6.1) ./Observer &;

7)Teste para ver se o Observer linux esta ok;
7.1)no diretório criado/compartilhado anteriormente crie um arquivo contendo o seguinte comando: vi /Compartilhado_PDV1/Daruma.cmd;
7.2)Escreva o seguite dentro dele:Daruma_FI_LeituraX;

Se como resultado dessa ação for impressa uma LeituraX é bom sinal, então daqui em diante será com seu aplicativo. Lembrando que o gerenciamento de onde será escrito o comando, fica 100% por conta do aplicativo comercial.

Por exemplo se você quizer escrever um arquivo de comando para o PDV1 então deverá fazê-lo:Compartilhado_PDV1, caso queira no PDV2 então Compartilhado_PDV2.

Para facilitar o controle de pra quem enviar o comando, procure sempre nomear os diretórios conforme o número do PDV(ponto de venda), dessa forma quando enviado um arquivo de comando no ODV1 por exemplo, a reposta devolvida pelo Observer, será escrita no mesmo diretório, ou seja neste nosso exemplo PDV1.


Configuração do Observer

Métodos de Configuração do Observer2

reg
O Driver Observer2 é o Único driver Desenvolvido no mercado de automação comercial, que permite o uso de um Único Protocolo entre os aplicativos DOS e Windows.
Este Driver reside no windows, permitindo que Aplicativos DOS/Win 16 bit´s, possam Acessar ao ECF com maior Facilidade tendo em vista a necessidade de se ter windows nos Equipamentos para a Realização do TEF. Com isso Desenvolvemos o Observer2 que ficará residente na área de Relógio do Windows esperando que seja enviado métodos para ele.

O Driver é Totalmente configurável através do Registry, porém voce poderá setar as configurações do Observer2 no Início de seu aplicativo basta chamar os métodos de Configuração do Registry.

· Estas são as Chaves Existentes para a Configuração do Observer2 e estes são os seus Valores DEFAULT:
[HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA]
[HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\OBSERVER]

Local_Execucao = 1
Log = 0
Log_Path = C:\Observer.log
Path_Entrada = C:\DARUMA.CMD
Path_Log_Aquivo = C:\OBSERVER.LOG
Path_Saida = C:\DARUMA.RET
Produto = FS345
Protocolo = 0
Separador = ;


Daruma_Observer_Registry_Execucao (Índice 53)

Método: Daruma_Observer_Registry_Execucao (Índice 53)
Previous Top Next

· Definição do Método:
Configura o Local em que o Observer2 ficará em execução.

· Parâmetros:
String: com o Valor do Local desejado ("1" ou "2" ou "3")
1 - Relogio (Área de Notificação do Windows)
2 - Minizado na Barra de Tarefas
3 - Maximizado na Tela (Centralizado na Tela)

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Valor default da Chave = 1


Daruma_Observer_Registry_Log (Índice 58)

Método: Daruma_Observer_Registry_Hibernar_TimeOut (Índice 55)
Previous Top Next

· Definição do Método:
Configura se o Observer2 irá Fazer Log dos comandos enviados e Recebidos ou não.

· Parâmetros:
String: com o Valor desejado ("0" ou "1").
0 - Nao Faz Log.
1 - Faz Log.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
· Valor default da Chave = 0


Daruma_Observer_Registry_Log_Path (Índice 59)

Método: Daruma_Observer_Registry_Log_Path (Índice 59)
Previous Top Next

· Definição do Método:
Configura o Path + nome do Log desejado, esta chave só tem Efeito caso a Chave LOG estiver Ligada.

· Parâmetros:
String: com o Valor desejado ( Exemplo "C:\OBSERVER.LOG").

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
· Valor default da Chave = C:\Observer.log


Daruma_Observer_Registry_Entrada (Índice 50)

Método: Daruma_Observer_Registry_Entrada (Índice 50)
Previous Top Next

· Definição do Método:
Configura o Path + Nome do Arquivo de Comando que o Observer2 deverá esperar.

· Parâmetros:
String: com o Valor desejado ("C:\DARUMA.CMD")

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
· Valor default da Chave = C:\DARUMA.CMD


Daruma_Observer_Registry_Saida (Índice 52)

Método: Daruma_Observer_Registry_Saida (Índice 52)
Previous Top Next

· Definição do Método:
Configura o Path + Nome do Arquivo de RESPOSTA que o Observer2 irá Criar.

· Parâmetros:
String: com o Valor desejado ("C:\DARUMA.RET")

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
· Valor default da Chave =C:\DARUMA.RET


Daruma_Observer_Registry_Produto (Índice 61)

Método: Daruma_Observer_Registry_Produto (Índice 61)
Previous Top Next

· Definição do Método:
Configura o Produto que será Usado com o Observer2.

· Parâmetros:
String: com o Valor desejado ("FS345")

Lista de Produtos
"FS345" - ECF Varejo.
"FS318" - ECF Restaurante.
"FS2000" - ECF Varejo Duas Estações.
"TA1000" - MicroTerminal Daruma.
"DS300" - MiniImpressora - Não Fiscal.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
· Valor default da Chave = FS345


Daruma_FI_ConfiguraHorarioVerao(Índice 314)

Método: Daruma_FI_ConfiguraHorarioVerao[Índice: 314]
Previous Top Next

· Definição do Método:
Automatiza o processo de programação de entrada e saída no Horário de Verão.

· Parâmetros do Método: (03 Parâretros).
1. Data Entrada: String com 6(seis) bytes com a data de início do horário de verão no seguinte formato:ddmmnn.
2. Data Saída:String com 6(seis) bytes com a data de saída do horário de verão no seguinte formato:ddmmnn.
3. Flag de Controle: String com 1(um) byte com 1(um) para habilitar e 0(zero) para desabilitar.

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Data_Entrada As String
Dim Str_Data_Saida As String
Dim Str_Controle As String
Str_Data_Entrada = Data_Entrada.Text
Str_Data_Saida = Data_Saida.Text
Str_Controle = Controle.Text
Int_Retorno = Daruma_FI_ConfiguraHorarioVerao(Str_Data_Entrada, Str_Data_Saida, Str_Controle)

· Exemplo em Delphi 7.0:
var
Str_Data_Entrada: String;
Str_Data_Saida: String;
Str_Controle: String;
begin
Str_Data_Entrada:= Data_Entrada.Text;
Str_Data_Saida:= Data_Saida.Text;
Str_Controle:= Controle.Text;
Int_Retorno:= Daruma_FI_ConfiguraHorarioVerao(pchar(Str_Data_Entrada), pchar(Str_Data_Saida), pchar(Str_Controle));


Daruma_FI_AbreCupom(Índice 1000)

Método: Daruma_FI_AbreCupom [Índice: 1000]
Previous Top Next

· Definição do Método:
Abre o cupom fiscal na impressora fiscal Daruma.

· Parâmetros do Método: (1 Parâmetro, opcional).
CPF ou CNPJ: Variável String de até 29 caracteres com o CPF ou CNPJ.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- A identificação do consumidor irá ser exibida no Cupom Fiscal, após a finalização da Venda, podemos usar para esse método a Função Daruma_FI_IdentificaConsumidor.
- A DLL Suporta até 999 itens dentro do cupom fiscal, ou seja, só é possível vender até 999 itens.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_CPF_ou_CNPJ As String
Dim Int_Retorno as Integer

Str_CPF_ou_CNPJ = "45.543.915.730-08"
Int_Retorno = Daruma_FI_AbreCupom(Str_CPF_ou_CNPJ)

· Exemplo em Delphi 7.0:
var Str_CPF_ou_CNPJ: String;

Str_CPF_ou_CNPJ := '45.543.915.730-08';
Int_Retorno := Daruma_FI_AbreCupom( pchar( Str_CPF_ou_CNPJ ) );

· Exemplo em Java:
int retorno;

byte[] abrecupom = new byte[29];
retorno = FISCAL.Daruma_FI_AbreCupom("126.393.858-28");


Daruma_FI_VendeItem(Índice 1001)

Método: Daruma_FI_VendeItem [Índice: 1001]
Previous Top Next

· Definição do Método:
Vende o item na impressora fiscal.

· Parâmetros do Método: (9 Parâmetros).
1. Código: String com até 14 caracteres contendo o código do produto.
2. Descrição: String até 29 caracteres com a descrição do produto.
3. Alíquota: String com o valor ou o índice da alíquota tributária. Se for o valor deve ser informado com o tamanho de 4 caracteres ou 5 com a vírgula. Se for o índice da alíquota deve ser 2 caracteres. Ex. (18,00 para o valor ou 1800).
4. Tipo Quantidade: 1 (um) caráctere indicando o tipo de quantidade. 'I' - Inteira e 'F' - Fracionária.
5. Quantidade: String com até 4 dígitos para quantidade inteira e 7 dígitos para quantidade fracionária. Na quantidade fracionária são 3 casas decimais.
6. Casas Decimais: Inteiro indicando o número de casas decimais para o valor unitário (2 ou 3).
7. Valor Unitário: String até 8 dígitos para valor unitário.
8. Tipo Desconto: 1 (um) caráctere indicando a forma do desconto. '$' desconto por valor e '%' desconto percentual.
9. Valor Desconto: String com até 8 dígitos para desconto por valor (2 casas decimais) e 4 dígitos para desconto percentual (2 casas decimais). Importante! Caso seja passado um sinal de subtração antes do valor exemplo: (-1,00), será aplicada a lógica inversa e ao invéz de um desconto será feito um acréscimo.

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Arredondamento: As impressoras MFD FS600 E 2100T, apenas truncam. Sendo assim foi criado o médodo Daruma_Registry_MFDValorFinal(Índice 66). Com este método, o problema de divergir o valor da impressora, comparando-o com o valor da balança (supermercados), ou bomba de combustível (posto de gasolina), pode ser contornado.
- No último paramêtro (Valor Desconto), caso seja passado um valor negativo exe.:(-1,00), será aplicada a lógica inversa e ao invéz de um desconto, será feito um acréscimo no valor do ítem.
- A DLL Suporta até 999 itens dentro do cupom fiscal, ou seja, só é possível vender até 999 itens.
- Acentuação e/ou caracteres especiais, não são aceitos na descrição do item.
- Na impressora Duas Estações FS2000, para se vender em apenas uma linha voce não poderá ter um Código maior que 6 digitos e a descrição maior que 14 caracteres. EX.:Código->123456 Descrição->Laranja Baiana. Uma combinação dessas permitira que a venda sai em uma única linha.
- O valor do desconto nunca poderá ser igual ou maior do que o valor do item.
- Caso a venda seja de um ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço, então o desconto não será permitido. Importante para habilitar o desconto sobre serviço é preciso que seja feito por meio de IT(interveção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja hebilitado para desconto em serviço então para um cupom onde os itens sejam com alícota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.
- Este é o único comando a ser usado para vendas em caso de impressoras térmicas (FS600 e FS2100t).

- Alíquotas de mesmo valor: Imagine que há duas alíquotas com o valor 12% cadastradas na impressora. Se você informar o valor 1200 ou 12,00 no parâmetro "alíquota" o Método irá imprimir o item usando a alíquota cadastrada de ICMS ou ISS. o Método lê as alíquotas da impressora cadastrada, devolvendo ao desenvolvedor o valor com a aliquota programada. Para usar a alíquota de ISS ou ICMS você deverá passar o valor com, por exemplo, 1200 ou 12,00.
- Outra maneira de fazer quando você tiver duas alíquotas de mesmo valor Ex: duas de 10,00% sendo que uma refere-se a ICMS e a outra a ISS e você quizer usar a que vem na 2ª (segunda) posição, ou seja a de ISS neste caso então você poderá fazer isto passando apenas a letra 'II' para ICMS ou 'S' para ISS, Ex: "I10,00" ou "S10,00".
- Na FS345 versão 1.11 (somente nesta versão), você deve passar no parâmetro descrição até 7 caracteres e não podera dar desconto, para dar desconto e vender um item que tenha uma descrição maior do que 7 caracteres, tenha desconto no item use o Método Daruma_FI_VendeItemTresDecimais. Esta regra só é válida para a versão 1.11.
- Para vender item em uma única linha você deverá passar o item com o código de até 13 caracteres e a descrição de até 6 caracteres ou vice-versa. Caso não se cumpra ésta condição, então será vendido automáticamente em 2 linhas.
- Caso o item tenha desconto ou três decimais também será vendido automáticamente em 2 linhas.
- Se o cupom estiver fechado o Framework abrirá o cupom para você.
- Para dar um desconto sobre serviço, a impressora deverá ser programada por meio de I.T.(interveção técnica), caso contrário não será possível.
- Nossas impressoras já veem com três aliquotas pré-programadas que são:
· Isento (duas letras II maiúsculas).
· Não tributado (duas letras NN maiúsculas).
· Substituição tributária (duas letras FF maiúsculas).

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo As String
Dim Str_Descricao As String
Dim Str_Aliquota As String
Dim Str_Tipo_de_Quantidade As String
Dim Str_Quantidade As String
Dim Int_Casas_Decimais As Integer
Dim Str_Valor_Unitario As String
Dim Str_Tipo_de_Desconto As String
Dim Str_Valor_do_Desconto As String
Dim Int_Retorno as Integer

Str_Codigo = "987654"
Str_Descricao = "bolacha"
Str_Aliquota = "II"
Str_Tipo_de_Quantidade = "I"
Str_Quantidade = "1"
Int_Casas_Decimais = "2"
Str_Valor_Unitario = "0,10"
Str_Tipo_de_Desconto = "$"
Str_Valor_do_Desconto = "0,00"

Int_Retorno = Daruma_FI_VendeItem(Str_Codigo, Str_Descricao, Str_Aliquota, Str_Tipo_de_Quantidade, _
Str_Quantidade, Int_Casas_Decimais, Str_Valor_Unitario, _
Str_Tipo_de_Desconto, Str_Valor_do_Desconto)

· Exemplo em Delphi 7.0:
var
Str_Codigo: String;
Str_Descricao: String;
Str_Aliquota: String;
Str_Tipo_de_Quantidade: String;
Str_Quantidade: String;
Int_Casas_Decimais: Integer;
Str_Valor_Unitario: String;
Str_Tipo_de_Desconto: String;
Str_Valor_do_Desconto: String;

begin
Str_Codigo := '987654';
Str_Descricao := 'bolacha';
Str_Aliquota := 'II';
Str_Tipo_de_Quantidade := 'I';
Str_Quantidade := '1';
Int_Casas_Decimais := 2;
Str_Valor_Unitario := '0,10';
Str_Tipo_de_Desconto := '$';
Str_Valor_do_Desconto := '0,00';
Int_Retorno := Daruma_FI_VendeItem(pchar( Str_Codigo ), pchar( Str_Descricao ), pchar( Str_Aliquota ), pchar( Str_Tipo_de_Quantidade ), pchar( Str_Quantidade ), Int_Casas_Decimais, pchar( Str_Valor_Unitario ), pchar( Str_Tipo_de_Desconto ), pchar( Str_Valor_do_Desconto ) );

· Exemplo em Java:

String codigo = "123456789";
String descricao = "bolacha";
String aliquota = "17,00";
String tipodequantidade = "I";
String quantidade = "1";
short casasdecimais = (short)1;
String valorunitario = "1.450,00";
String desconto = "$";
String valordesconto = "0,00";
int retorno;

retorno = FISCAL.Daruma_FI_VendeItem(codigo, descricao, aliquota, tipodequantidade,
quantidade, casasdecimais, valorunitario, desconto, valordesconto);


Daruma_FI_CancelaCupom(Índice 1014)

Método: Daruma_FI_CancelaCupom [Índice: 1014]
Previous Top Next

· Definição do Método:
Cancela o último cupom emitido.

· Parâmetros do Método:
Não há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Não poderá ter ocorrido ReduçãoZ e nem LeituraX após a emissão do cupom.
- Você não podera ter emitido um outro cupom fiscal, sangria, suprimento.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CancelaCupom()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_CancelaCupom();

· Exemplo em Java:
int retorno;

retorno = FISCAL.Daruma_FI_CancelaCupom();


Daruma_FI_CancelaItemAnterior(Índice 1005)

Método: Daruma_FI_CancelaItemAnterior [Índice: 1005]

Previous Top Next

· Definição do Método:
Cancela o último item vendido.

· Parâmetros do Método:
Não há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar aberto.
- Ao menos um item deve ter sido vendido.
- Não deve ter sido cancelado nenhum item imediatamente anterior.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CancelaItemAnterior

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_CancelaItemAnterior();

· Exemplo em Java:
int retorno;
retorno = FISCAL.Daruma_FI_CancelaItemAnterior();


Daruma_FI_CancelaItemGenerico(Índice 1006)

Método: Daruma_FI_CancelaItemGenerico [Índice: 1006]

Previous Top Next

· Definição do Método:
Cancela qualquer item dentre os cem (100) últimos itens vendidos.

· Parâmetros do Método: (1 Parâmetro)
Número Item: String com o número do item a ser cancelado com no máximo 3 dígitos.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar aberto
- Ao menos 1(um) item deve ter sido vendido
- O item não pode ter sido cancelado anteriormente e nem fora da faixa dos últimos itens vendidos.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Numero_Item As String

Numero_Item = "01"
Int_Retorno = Daruma_FI_CancelaItemGenerico(Numero_Item)

· Exemplo em Delphi 7.0:
var
Str_NumeroItem: String;
begin
Str_NumeroItem := '01';

Int_Retorno:=Daruma_FI_CancelaItemGenerico( pchar( NumeroItem ) );
FormPrincipal.Daruma_Analisa_Retorno();

· Exemplo em Java:
int retorno;

byte[] erroextendido = new byte[3];
retorno = FISCAL.Daruma_FI_CancelaItemGenerico("Numero do Item");


Daruma_FI_IniciaFechamentoCupom(Índice 1007)

Método: Daruma_FI_IniciaFechamentoCupom [Índice: 1007]
Previous Top Next

· Definição do Método:
Inicia o fechamento do cupom com o uso das formas de pagamento.

· Parâmetros do Método: (3 Parâmetros)
1. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
2. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
3. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual (2 casas decimais).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O valor do desconto "nunca" poderá ser igual ou maior do que o valor do cupom.
- Caso a venda seja de 1(um) ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço você poderá receber erro 24 ou 44, então o desconto não será permitido. Importante para habilitar o desconto sobre serviço é preciso que seja feito por meio de IT(interveção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja habilitado para desconto em serviço então para um cupom onde os itens sejam com alíquota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.

· Dica:
- Para dar acrescimos e desconto no mesmo cupom, lançando o movimento no Sub-Total do Cupom-Fiscal basta chamar a função mais de uma vez conforme a necessidade, passando Acrescimo ou Desconto conforme solicitado. Segue o exemplo abaixo.

Desenvolvedor
Ligação Gratuíta: 0800 770 3320
Suporte por Skype:
suporte_daruma
desenvolvedores_daruma
suporte_desenvolvedores_daruma
desenvolvedores_suporte_daruma
CNPJ: 45.170.289/0001-25 IE: 688.023.460.111
IM: 3633/72
27/01/2008 11:46:12 CCF:001819 COO:002539
 CUPOM FISCAL
ITEM CÓDIGO DESCRIÇÃO QTD.UN.VL UNIT( R$) ST VL ITEM( R$)
001 7896003704549 bolacha 1unx10,00 I1 10,00€
Subtotal R$ 10,00
ACRÉSCIMO +1,00€
Subtotal R$ 11,00
DESCONTO -0,50
TOTAL R$ 10,50
Dinheiro 15,00
TROCO R$ 4,50
------------------------------------------------
Obrigado Volte Sempre!!!
DARUMA32 FrameWork Mensagem Não Programada
DARUMA32 FrameWork Mensagem Não Programada
CNPJ/CPF Consumidor: 45.543.915/0030-08
1A8 84084 38074 82D026 63 7D01C0 5A07E 08B90 47F
DARUMA AUTOMAÇÃO FS600
ECF-IF VERSÃO:01.04.00 ECF:001 Lj:
AAAAAAAAABGAHJJFEF 27/01/2008 11:46:43
FAB:DR0207BR000000099431 BR

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Acrescimo_ou_Desconto As String
Dim Str_Tipo_do_Acrescimo_ou_Desconto As String
Dim Str_Valor_do_Acrescimo_ou_Desconto As String

Str_Acrescimo_ou_Desconto = "D"
Str_Tipo_do_Acrescimo_ou_Desconto = "$"
Str_Valor_do_Acrescimo_ou_Desconto = "0,01"
Int_Retorno = Daruma_FI_IniciaFechamentoCupom(Str_Acrescimo_ou_Desconto, _
Str_Tipo_do_Acrescimo_ou_Desconto, Str_Valor_do_Acrescimo_ou_Desconto)

· Exemplo em Delphi 7.0:
var
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_do_Acrescimo_Desconto: String;
Str_Valor_do_Acrescimo_Desconto: String;
begin
Str_Acrescimo_ou_Desconto:='D';
Str_Tipo_do_Acrescimo_Desconto:='$';
Str_Valor_do_Acrescimo_Desconto:='0,01';

Int_Retorno =: Daruma_FI_IniciaFechamentoCupom( pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Tipo_do_Acrescimo_Desconto ), pchar( Str_Valor_do_Acrescimo_Desconto ) );

· Exemplo em Java:
String acrescimodesconto = "D";
String tipoacrescimodesconto = "$";
String valoracrescimodesconto = "0,01";
int retorno;

retorno = FISCAL.Daruma_FI_IniciaFechamentoCupom(acrescimodesconto,
tipoacrescimodesconto , valoracrescimodesconto);


Daruma_FI_EfetuaFormaPagamento(Índice 1008)

Método: Daruma_FI_EfetuaFormaPagamento [Índice 1008]
Previous Top Next

· Definição do Método:
Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s) nessa forma.

· Parâmetros do Método: (2 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Valor Forma Pagamento: String com o valor da forma de pagamento com até 14 dígitos.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O fechamento do cupom com formas de pagamento deve ter sido iniciado.
- Se a forma de pagamento não estiver cadastrada na impressora o item será registrado como a forma 'Dinheiro'. Para cadastrar a forma de pagamento você deve usar o Método:Daruma_FI_ProgramaFormasPagamento(Índice 301) e isso imediatamente após uma ReduçãoZ. para as impressoras FS345, FS600 versão 01.00.00, 01.01.00, nas versões FS600 - 01.02.00 acima não necessita Redução Z.
- Lembrando que após cadastrada a forma de pagamento não podemos exclui-lás ou altera-lás somente via software de intervenção técnica.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_da_Forma_Pagamento As String
Dim Str_Valor_da_Forma_Pagamento As String
Str_Descriçca_da_Forma_Pagamento = "Dinheiro"
Str_Valor_da_Forma_Pagamento = "0,50"
Int_Retorno = Daruma_FI_EfetuaFormaPagamento(Str_Descricao_da_Forma_Pagamento, _
Str_Valor_da_Forma_Pagamento)

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma_Pagamento: String;
Str_Valor_da_Forma_Pagamento: String;
begin
Str_Descricao_da_Forma_Pagamento := 'Dinheiro';
Str_Valor_da_Forma_Pagamento := '0,50';
Int_Retorno := Daruma_FI_EfetuaFormaPagamento( pchar( Str_Descricao_da_Forma_Pagamento ), pchar( Str_Valor_da_Forma_Pagamento ) );

· Exemplo em Java:
String formapagamento = "Dinheiro";
String valorformapagamento = "1.500,00";
int retorno;

retorno = FISCAL.Daruma_FI_EfetuaFormaPagamento(formapagamento, valorformapagamento);


Daruma_FI_EfetuaFormaPagamentoDescricaoForma(Índice 1009)

Método: Daruma_FI_EfetuaFormaPagamentoDescricaoForma [Índice 1009]

Previous Top Next

· Definição do Método:
Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s). Permite a impressão de comentários na(s) forma(s) de pagamento.

· Parâmetros do Método: (3 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Valor Forma Pagamento: String com o valor da forma de pagamento com até 14 dígitos.
3. Descrição Forma Pagamento: String com a descrição da forma de pagamento com no máximo 48 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O fechamento do cupom com formas de pagamento deve ter sido iniciado.
- O texto livre será impresso 1(uma) linha após a forma de pagamento.
- Se a forma de pagamento não estiver cadastrada na impressora, o Método retorna erro. Para cadastrar a forma de pagamento você deve usar o Método:Daruma_FI_ProgramaFormasPagamento(Índice 301) e isso emediatamente após uma ReduçãoZ.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_da_Forma_Pagamento As String
Dim Str_Valor_da_Forma_Pagamento As String
Dim Str_Texto_Livre As String

Str_Descricao_da_Forma_Pagamento = "Dinheiro"
Str_Valor_da_Forma_Pagamento = "0,50"
Str_Texto_Livre = "Texto Livre com ate 48 caracteres!!!"
Int_Retorno = Daruma_FI_EfetuaFormaPagamentoDescricaoForma _
(Str_Descricao_da_Forma_Pagamento, Str_Valor_da_Forma_Pagamento, Str_Texto_Livre)

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma_Pagamento: String;
Str_Valor_da_Forma_Pagamento: String;
Str_Texto_Livre: String;
begin
Str_Descricao_da_Forma_Pagamento := 'Dinheiro';
Str_Valor_da_Forma_Pagamento := '0,50';
Str_Texto_Livre := 'Texto Livre com ate 48 caracteres!!!';

Int_Retorno := Daruma_FI_EfetuaFormaPagamentoDescricaoForma( pchar( Str_Descricao_da_Forma_Pagamento ), pchar( Str_Valor_da_Forma_Pagamento ), pchar( Str_Texto_Livre ) );


Daruma_FI_FechaCupomResumido(Índice 1012)

Método: Daruma_FI_FechaCupomResumido [Índice 1012]
Previous Top Next

· Definição do Método:
Permite fechar o cupom de forma resumida, ou seja, sem acréscimo ou desconto no cupom e com apenas uma forma de pagamento. Esse Método lê o subtotal do cupom para fechá-lo.

· Parâmetros do Método: (2 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Mensagem Promocional: String com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Acentuação e/ou caracteres especiais, não são aceitos na mensagem promocional.
- O cupom deve estar aberto.
- Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado.
- A utilização desse Método elimina a obrigatoriedade de uso das Método Daruma_FI_IniciaFechamentoCupom, Daruma_FI_EfetuaFormaPagamento e Daruma_FI_TerminaFechamentoCupom, que estão implementadas internamente no Método.
- Se a forma de pagamento não estiver cadastrada na impressora, o Método retorna erro. Para cadastrar a forma de pagamento você deve usar o Método:Daruma_FI_ProgramaFormasPagamento(Índice 301) e isso emediatamente após uma ReduçãoZ.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_da_Forma_de_Pagamento As String
Dim Str_Mensagem_Promocional As String

Str_Descricao_da_Forma_Pagamento = "Dinheiro"
Str_Mensagem_Promocional = "Obrigado Volte Sempre!!!"
Int_Retorno = Daruma_FI_FechaCupomResumido(Str_Descricao_da_Forma_Pagamento, Str_Mensagem_Promocional)

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma_de_Pagamento: String;
Str_Mensagem_Promocional: String;
begin
Str_Descricao_da_Forma_de_Pagamento := 'Dinheiro';
Str_Mensagem_Promocional:= 'Obrigado Volte Sempre';

Int_Retorno:=Daruma_FI_FechaCupomResumido( pchar( Str_Descricao_da_Forma_Pagamento ), pchar( Str_Mensagem_Promocional ) );

· Exemplo em Java:
String descricaoformapgamento = "Cheque";
String mensagempromocional = " Volte Sempre ";
int retorno;

retorno = FISCAL.Daruma_FI_FechaCupomResumido(descricaoformapgamento, mensagempromocional);


Daruma_FI_FechaCupom(Índice 1011)

Método: Daruma_FI_FechaCupom [Índice 1011]
Previous Top Next

· Definição do Método:
Fecha o cupom fiscal com a impressão da mensagem promocional.
IMPORTANTE! Com este Método você não poderá informar com mais de um meio de pagamento.

· Parâmetros do Método: (6 Parâmetros)
1. Forma Pagamento: String com o nome da forma de pagamento com no máximo 16 caracteres.
2. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
3. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
4. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual.
5. Valor Pago: String com o valor pago com no máximo 14 dígitos.
6. Mensagem Promocional: String com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Acentuação e/ou caracteres especiais, não são aceitos na mensagem promocional.
- O cupom deve estar aberto.
- Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado.
- A utilização desse Método elimina a obrigatoriedade de uso das Método Daruma_FI_IniciaFechamentoCupom, Daruma_FI_EfetuaFormaPagamento e Daruma_FI_TerminaFechamentoCupom, que estão implementadas internamente no Método.
- O valor do acréscimo ou desconto nunca poderá ser igual ou maior do que o valor do item.
- Caso a venda seja de um ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço você poderá receber erro 24 ou 44, então o desconto não será permitido. Importante para habilitar o desconto sobre serviço é preciso que seja feito por meio de IT(intervenção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja habilitado para desconto em serviço então para um cupom onde os itens sejam com alícota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.
- Se a forma de pagamento não estiver cadastrada na impressora, o Método retorna erro. Para cadastrar a forma de pagamento você deve usar o Método:Daruma_FI_ProgramaFormasPagamento(Índice 301) e isso imediatamente após uma ReduçãoZ.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_da_Forma_Pagamento As String
Dim Str_Acrescimo_ou_Desconto As String
Dim Str_Tipo_Acrescimo_ou_Desconto As String
Dim Str_Valor_Acrescimo_ou_Desconto As String
Dim Str_Valor_Pago As String
Dim Str_Mensagem_Promocional As String

Str_Descricao_da_Forma_Pagamento = "Dinheiro"
Str_Acrescimo_ou_Desconto = "D"
Str_Tipo_Acrescimo_ou_Desconto = "$"
Str_Valor_Acrescimo_ou_Desconto = "0,01"
Str_Valor_Pago = "0,50"
Str_Mensagem_Promocional = "Obrigado Volte Sempre!!!"
Int_Retorno = Daruma_FI_FechaCupom(Str_Descricao_da_Forma_Pagamento, _
Str_Acrescimo_ou_Desconto, Str_Tipo_Acrescimo_ou_Desconto, _
Str_Valor_Acrescimo_ou_Desconto, Str_Valor_Pago, Str_Mensagem_Promocional)

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma_Pagamento: String;
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_Acrescimo_ou_Desconto: String;
Str_Valor_Acrescimo_ou_Desconto: String;
Str_Valor_Pago: String;
Str_Mensagem_Promocional: String;
begin
Str_Descricao_da_Forma_Pagamento: = 'Descricao';
Str_Acrescimo_ou_Desconto := 'D';
Str_Tipo_Acrescimo_ou_Desconto := '$';
Str_Valor_Acrescimo_ou_Desconto := '0,01';
Str_Valor_Pago := '0,50';
Str_Mensagem_Promocional := 'Obrigado Volte Sempre!!!';

Int_Retorno := Daruma_FI_FechaCupom( pchar( Str_Descricao_da_Forma_Pagamento ), pchar( Str_AcrescimoDesconto ), pchar( Str_Tipo_Acrescimo_ou_Desconto ), pchar( Str_Valor_Acrescimo_ou_Desconto ), pchar( Str_Valor_Pago ), pchar( Str_Mensagem_Promocional ) );


Daruma_FI_TerminaFechamentoCupom(Índice 1010)

Método: Daruma_FI_TerminaFechamentoCupom [Índice 1010]
Previous Top Next

· Definição do Método:
Termina o fechamento do cupom com mensagem promocional.

· Parâmetros do Método: (1 Parâmetro)
Mensagem Promocional: String com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Acentuação e/ou caracteres especiais, não são aceitos na mensagem promocional.
- A forma de pagamento deve ter sido efetuada.
- Na impressora fiscal Daruma, serão impressas 8 linhas de texto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Mensagem_Promocional As String

Str_Mensagem_Promocional = "Obrigado Volte Sempre!!!"
Int_Retorno = Daruma_FI_TerminaFechamentoCupom(Str_Mensagem_Promocional)

· Exemplo em Delphi 7.0:
var
Str_Mensagem_Promocional: String;
begin
Str_Mensagem_Promocional := 'Obrigado Volte Sempre!!!';

Int_Retorno := Daruma_FI_TerminaFechamentoCupom( pchar( Str_Mensagem_Promocional ) );

· Exemplo em Java:
String mensagempromocional = " Volte Sempre ";
int retorno;

retorno = FISCAL.Daruma_FI_TerminaFechamentoCupom(mensagempromocional);


Daruma_FI_EstornoFormasPagamento(Índice 1017)

Método: Daruma_FI_EstornoFormasPagamento [Índice 1017]
Previous Top Next

· Definição do Método:
Permite estornar valores de uma forma de pagamento e transferir em outra forma.

· Parâmetros do Método: (3 Parâmetros)
1. Forma Pagamento Origem: String com a forma de pagamento de onde o valor será estornado, com até 16 caracteres.
2. Forma Pagamento Destino: String com a forma de pagamento onde o valor será transferido, com até 16 caracteres.
3. Valor Forma Pagamento: String com o valor a ser estornado com até 14 dígitos. Passando o valor total da forma de pagamento de origem, não podendo ser maior ou menor do que o de origem.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método só pode ser executado após o fechamento do cupom fiscal.
- Este Método não é compatível com a Impressora de Duas Estações FS2000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Forma_de_Origem As String
Dim Str_Nova_Forma As String
Dim Str_Valor_Total_Pago As String

Str_Forma_de_Origem = "Dinheiro"
Str_Nova_Forma = "Cheque"
Str_Valor_Total_Pago = "0,50"
Int_Retorno = Daruma_FI_EstornoFormasPagamento _
(Str_Forma_de_Origem, Str_Nova_Forma, Str_Valor_Total_Pago)

· Exemplo em Delphi 7.0:
var
Str_Forma_de_Origem: String;
Str_Nova_Forma: String;
Str_Valor_Total_Pago: String;
begin
Str_Forma_de_Origem:= 'Dinheiro';
Str_Nova_Forma:= 'Cheque';
Str_Valor_Total_Pago:= '0,50';

Int_Retorno := Daruma_FI_EstornoFormasPagamento( pchar( Str_Forma_de_Origem ), pchar( Str_Nova_Forma ), pchar( Str_Valor_Total_Pago ) );


Daruma_FI_IdentificaConsumidor(Índice 1013)

Método: Daruma_FI_IdentificaConsumidor [Índice 1013]

Previous Top Next

· Definição do Método:
Imprime a Identificação do Consumidor, este método deve ser enviado imediatamente antes do método de TerminaFechamentoCupom, onde será impresso a mensagem Promocional.

· Parâmetros do Método: (3 Parâmetros)
1. Nome: Nome do Consumidor com até 48 caracteres;
2. Endereço: Endereço do Consumidor com até 48 caracteres;
3. CNPJ ou CPF: Até 42 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Nome e endereço somente são aceitos caso o campo CPF/CNPJ não seja NULO
- O Comando deve ser enviado durante a emissão e antes do encerramento do Cupom Fiscal
- Estes Campos são Formatados automaticamente pelo ECF que imprimirá antes da Mensagem Promocional o seguinte:

· Exemplo:
-------------------------------------------------------
Nome: Daruma Automção S.A.
Endereço: Av. Independencia 3.500 Tatuapé
Nº Doc: NNNNNNNN
--------------------------------------------------------

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome_do_Consumidor As String
Dim Str_Endereco As String
Dim Str_CPF_ou_CNPJ As String

Str_Nome_do_Consumidor = "Daruma Automação S.A."
Str_Endereco = "Av. Independencia 3.500 Tatuapé"
Str_CPF_ou_CNPJ = "NNN.NNN.NNN-NN"
Int_Retorno = Daruma_FI_IdentificaConsumidor(Str_Nome_do_Consumidor, _
Str_Endereco, Str_CPF_ou_CNPJ)

· Exemplo em Delphi 7.0:
var
Str_Nome_do_Consumidor: String;
Str_Endereco: String;
Str_CPF_ou_CNPJ: String;
begin
Str_Consumidor := 'Daruma Automação S.A.';
Str_Endereco := 'Av. Independencia 3.500 Tatuapé';
Str_CPF_ou_CNPJ := 'NNN.NNN.NNN-NN';

Int_Retorno:=Daruma_FI_IdentificaConsumidor( pchar( Str_Nome_Consumidor ), pchar( Str_Endereco ), pchar( Str_CPF_ou_CNPJ ) );

· Exemplo em Java:
String nome = "Daruma";
String endereco = "Av. Independencia 3.500 Tatuapé";
String CPFCNPJ = "123.456.789-65" ;
int retorno;

retorno = FISCAL.Daruma_FI_IdentificaConsumidor(nome, endereco, CPFCNPJ);


Daruma_FI_EmitirCupomAdicional(Índice 1018)

Método: Daruma_FI_EmitirCupomAdicional [Índice 1018]
Previous Top Next

· Definição do Método:
Emite um resumo do Cupom Fiscal Realizado Anteriormente, com Número do cupom, Valor e Data.
Este resumo pode ser utilizado para Controle interno.

· Parâmetros do Método:
Não Há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Para utilização deste Método, você deverá necessáriamente chamar o Método Daruma_FI_CfgCupomAdicional antes.
- Este Método enibe a pré-impressão automática do cliche do próximo cupom, implicando diretamente e um gasto Maior - tanto de Bobina Quanto de Tempo na emissão do cupom fincal.
- Este Método não é compatível com a Impressora de Duas Estações FS2000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_EmitirCupomAdicional()

· Exemplo em Delphi 7.0:
begin
Int_Retorno:=Daruma_FI_EmitirCupomAdicional();


Daruma_FI_UsaUnidadeMedida(Índice 1016)

Método: Daruma_FI_UsaUnidadeMedida [Índice 1016]
Previous Top Next

· Definição do Método:
Imprime a unidade de medida após a quantidade do produto na venda de item.

· Parâmetros do Método: (1 Parâmetro)
Tipo Unidade Medida: String com a unidade de medida até 2 caracteres OBRIGATORIAMENTE.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- É necessário SEMPRE Abrir o cupom fiscal para usar o método (Daruma_FI_AbreCupom)
- Este Método deve ser usado antes do envio do Método Daruma_FI_VendeItem.
- Este Método tem validade, somente para a impressão de um item, voltando ao default que é a impressão de 2 (dois) espaços em branco após a quantidade do item vendido.
- Este Método é incompatível com a FS345 versao 1.11.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Unidade_de_Medida As String

Str_Unidade_de_Medida = "UN"
Int_Retorno = Daruma_FI_UsaUnidadeMedida(Str_Unidade_de_Medida)

· Exemplo em Delphi 7.0:
var
Str_UnidadeMedida: String;
begin
Str_Unidade_de_Medida := 'UN';

Int_Retorno := Daruma_FI_UsaUnidadeMedida( pchar( Str_Unidade_de_Medida ) );


Daruma_FI_AumentaDescricaoItem(Índice 1015)

Método: Daruma_FI_AumentaDescricaoItem [Índice 1015]
Previous Top Next

· Definição do Método:
Este Método permite aumentar a descrição do item até 200 caracteres.

· Parâmetros do Método: (1 Parâmetro)
Descrição: String com a descrição do item com até 200 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método só irá funcionar corretamente nas impressoras térmicas, se a chave MFDTamMinDescProd no regsitry, estiver setada para 00(zero zero). Para alterar o valor desta chave, utilize o método: Daruma_Registry_AlteraRegistry (Índice 17), passando como parâmetro o nome da chave e o novo valor para a mesma. Exemplo Daruma_Registry_AlteraRegistry("MFDTamMinDescProd", "00").
- Acentuação e/ou caracteres especiais, não são aceitos na descrição do item.
- Este método só pode ser executado, antes da abertura do cupom fiscal.
- Este Método deve ser usada antes do Método Daruma_FI_VendeItem, pois assim, o item será impresso com a nova descrição.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_Extendida As String

Str_Descricao_Extendida ="Protetor de carter, para Audi A3 - compativel apenas com o modelo Turbo, fabricado a partir de 2004."
Int_Retorno = Daruma_FI_AumentaDescricaoItem(Str_Descricao_Extendida)

· Exemplo em Delphi 7.0:
var
Str_Descricao: String;='Protetor de carter, para Audi A3 - compativel apenas com o modelo Turbo, fabricado a partir de 2004.';
begin
Str_Descricao := '';

Int_Retorno := Daruma_FI_AumentaDescricaoItem( pchar( Str_Descricao_Extendida ) );


Daruma_FI_AbreComprovanteNaoFiscalVinculado(Índice 1203)

Método: Daruma_FI_AbreComprovanteNaoFiscalVinculado [Índice 1203]
Previous Top Next

· Definição do Método:
Abre o comprovante não fiscal vinculado.

Parâmetros do Método: (3 Parâmetros)
1. Deve estar programado na Impressora a Forma de Pagamento. (Daruma_FI_ProgramaFormasPagamento)
2. Forma Pagamento: Forma de pagamento com até 16 caracteres.
3. Valor: Valor pago na forma de pagamento com até 14 dígitos (2 casas decimais).
4. Número Cupom: Número do cupom a que se refere o comprovante com até 6 dígitos.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- A forma de pagamento deve ter sido utilizada no cupom, mesmo sendo a forma de Pagamento "Dinheiro".
- Só pode ser emitido 1(um) comprovante não fiscal por forma de pagamento.
- Os parâmetros "Valor" e "Numero do Cupom" tornam-se obrigatórios se for abrir um vinculado à partir de um recebimento não fiscal, se o comprovante emitido não for referente a Última Forma de Pagamento do Cupom Fiscal. Ou seja, se você teve "Dinheiro" e "Cheque" no último Cupom Fiscal, então para abrir um vinculado em Dinheiro terá de passar o Valor da primeira forma de pagamento.
- A FS600 e FS2100T, não permitem a utilização da forma de pagamento dinheiro, para a abertura de vinculados
- A não irá funcionar a abertura de vinculados à partir de acumuladores negativos ex.: Sangria.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Forma_de_Pagamento As String
Dim Str_Valor_Pago As String
Dim Str_Numero_do_Cupom As String

Str_Forma_de_Pagamento ="Dinheiro "
Str_Valor_Pago = ""
Str_Numero_do_Cupom = ""
Int_Retorno = Daruma_FI_AbreComprovanteNaoFiscalVinculado _
(Str_Forma_de_Pagamento, Str_Valor_Pago, Str_Numero_do_Cupom)

· Exemplo em Delphi 7.0:
var
Str_Forma_de_Pagamento: String;
Str_Valor_Pago: String;
Str_Numero_do_Cupom: String;
begin
Str_Forma_de_Pagamento := 'Dinheiro';
Str_Valor_Pago := '';
Str_Numero_do_Cupom := '';

Int_Retorno := Daruma_FI_AbreComprovanteNaoFiscalVinculado( pchar( Str_Forma_de_Pagamento ), pchar( Str_Valor_Pago ), pchar( Str_Numero_do_Cupom ) );

· Exemplo em Java:
String formapagamento = "Cheque";
String valor = "1.450,00";
String numerocupom = "002586";
int retorno;

retorno = FISCAL.Daruma_FI_AbreComprovanteNaoFiscalVinculado(formapagamento, valor, numerocupom);


Daruma_FI_UsaComprovanteNaoFiscalVinculado(Índice 1204)

Método: Daruma_FI_UsaComprovanteNaoFiscalVinculado [Índice 1204]
Previous Top Next

· Definição do Método:
Imprime o comprovante não fiscal vinculado.

· Parâmetros do Método: (1 Parâmetro)
Texto: String com o Texto a ser impresso no comprovante não fiscal vinculado com até 618 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Na impressora fiscal Daruma, só pode ser usado durante 2(dois) minutos após a abertura do comprovante não fiscal vinculado. Se esse tempo for ultrapassado o comprovante é fechado automaticamente.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Texto_Livre As String

Str_Texto_Livre = "Texto Livre com até 618 caracteres"
Int_Retorno = Daruma_FI_UsaComprovanteNaoFiscalVinculado(Str_Texto_Livre)

· Exemplo em Delphi 7.0:
var
Str_Texto_Livre: String;
begin
Str_Texto_Livre := 'Texto Livre com até 618 caracteres';

Int_Retorno := Daruma_FI_UsaComprovanteNaoFiscalVinculado( pchar( Str_Texto_Livre ) );
end;

· Exemplo em Java:
String texto = "Texto Livre com até 618 caracteres";
int retorno;

retorno = FISCAL.Daruma_FI_UsaComprovanteNaoFiscalVinculado(texto);


Daruma_FI_FechaComprovanteNaoFiscalVinculado(Índice 1205)

Método: Daruma_FI_FechaComprovanteNaoFiscalVinculado [Índice 1205]
Previous Top Next

· Definição do Método:
Encerrar o comprovante não fiscal vinculado.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O comprovante não fiscal vinculado deve ter sido aberto. Você poderá verificar o status através do método:Daruma_FI_StatusComprovanteNaoFiscalVinculado(Índice 1403).

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_FechaComprovanteNaoFiscalVinculado()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_FechaComprovanteNaoFiscalVinculado();

· Exemplo em Java:
int retorno = 0;
FISCAL.Daruma_FI_FechaComprovanteNaoFiscalVinculado();


Daruma_FI_AbreRelatorioGerencial(Índice 1208)

Método: Daruma_FI_AbreRelatorioGerencial [Índice 1208]
Previous Top Next

· Definicao do Método:
Abre o Relatório Gerencial.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método apenas Abre o Relatório Gerencial, deixando-o pronto para que seja utilizado o Método Daruma_FI_RelatorioGerencial.
- Nas Impressoras FS345 e FS2000 o gerencial uma vez aberto permanecerá 10(dez) Minutos e se auto-fechara.
- Nas Impressoras FS600 e FS2000T o gerencial permanecerá apenas 2(dois) Minutos aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_AbreRelatorioGerencial()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_AbreRelatorioGerencial();

· Exemplo em Java:
int retorno = 0;
FISCAL.Daruma_FI_AbreRelatorioGerencial();


Daruma_FI_FechaRelatorioGerencial(Índice 1201)

Método: Daruma_FI_FechaRelatorioGerencial [Índice 1201]
Previous Top Next

· Definição do Método:
Encerra o Relatório Gerencial.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O relatório gerencial deve estar aberto. Você poderá verificar o status através do método:Daruma_FI_StatusRelatorioGerencial(Índice 1405).

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_FechaRelatorioGerencial()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_FechaRelatorioGerencial();

· Exemplo em Java:
int retorno = 0;
FISCAL.Daruma_FI_FechaRelatorioGerencial();


Daruma_FI_AbreRecebimentoNaoFiscal(Índice 1210)

Método: Daruma_FI_AbreRecebimentoNaoFiscal [Índice 1210]

Previous Top Next

· Definição do Método:
Abre o recebimento não fiscal "CNFNV".

· Parâmetros do Método: (6 Parâmetros)
1. Descrição do Totalizador: Neste parâmetro você deve passar o descrição do totalizador com até 15 caracteres.
2. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
3. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
4. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual.
5. Valor do Recebimento: String com o valor da forma de pagamento com até 14 dígitos.
6. Texto Livre. String com até 7 linhas 48 caracteres, totalizando 336. Importante! O texto passado neste parâmetro, sairá impresso no fechamento do recebimento. Outra coisa é que poderão serem usadas as tags DHTML. Por exemplo para negrito <b></b>, e x p a n d i d o <e></e> e sublinhado <s></s>, uma de cada vez, até mesmo qualquer combinação entre elas, ex.:<b><e><s>Observação</s></e></b>. - Na impressora FS345 (matricial), o parâmetro sexto, não suporta as 7 linhas de texto e sim somente 40 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método não poderá ser aplicado para Sangria ou Suprimento.
- Este Método abre o recebimento não fiscal que permanece aberto até que seja chamado o Método Daruma_FI_EfetuaFormaPagamentoNaoFiscal

Importante! verifique o status do recebimento antes de tentar abrí-lo através do Método:Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado(Índice 1471).

- Este Método deverá ser usado sempre que for preciso informar mais de uma forma de pagamento, no Recebimento.
- Não existe Método para fechamento deste Método, o mesmo se fechará automaticamente, quando o total do recebimento for pago.
- Caso seja passado no parâmetro Índice do Totalizador Sangria, o Método será executado, porém o cupom será fechado automaticamente.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_do_Totalizador As String
Dim Str_Acrescimo_ou_Desconto As String
Dim Str_Tipo_Acrescimo_ou_Deconto As String
Dim Str_Valor_do_Acrescimo_ou_Desconto As String
Dim Str_Valor_do_Recebimento As String
Dim Str_Texto_Livre As String

Str_Descricao_do_Totalizador = "Conta de Luz"
Str_Acrescimo_ou_Desconto = "D"
Str_Tipo_Acrescimo_ou_Deconto = "$"
Str_Valor_Acrescimo_ou_Desconto = "0,01"
Str_Valor_do_Recebimento = "0,09"
Str_Texto_Livre = "Referente ao pagamento da 1 primeira parcela."
Int_Retorno = Daruma_FI_AbreRecebimentoNaoFiscal(Str_Descricao_do_Totalizador, Str_Acrescimo_ou_Desconto, Str_Tipo_Acrescimo_ou_Deconto, Str_Valor_Acrescimo_ou_Desconto, Str_Valor_do_Recebimento, Str_Texto_Livre)

· Exemplo em Delphi 7.0:
var
Str_Descricao_do_Totalizador: String;
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_Acrescimo_ou_Desconto: String;
Str_Valor_Acrescimo_ou_Desconto: String;
Str_Valor_do_Recebimento: String;
Str_Texto_Livre: String;
begin
Str_Descricao_do_Totalizador := 'Conta de Luz';
Str_Acrescimo_ou_Desconto := 'D';
Str_Tipo_Acrescimo_ou_Desconto := '$';
Str_Valor_Acrescimo_ou_Desconto := '0,01';
Str_Valor_do_Recebimento := '0,09';
Str_Texto_Livre := 'Referente ao pagamento da 1 primeira parcela.';

Int_Retorno := Daruma_FI_AbreRecebimentoNaoFiscal( pchar( Str_Descricao_do_Totalizador ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Tipo_Acrescimo_ou_Desconto ), pchar( Str_Valor_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Recebimento ), pchar( Str_Texto_Livre ) );

· Exemplo em Java:
String descricaototalizador = "Conta de Luz";
String acrescimodesconto = "D";
String tipoacrescimodesconto = "$";
String valoracrescimodesconto = "0,00";
String valorrecebimneto = "7,00";
String textolivre = "Referente ao pagamento da 1 primeira parcela";
int retorno;

retorno = FISCAL.Daruma_FI_AbreRecebimentoNaoFiscal(descricaototalizador, acrescimodesconto, tipoacrescimodesconto, valoracrescimodesconto, valorrecebimneto, textolivre);


Daruma_FI_EfetuaFormaPagamentoNaoFiscal(Índice 1211)

Método: Daruma_FI_EfetuaFormaPagamentoNaoFiscal [Índice 1211]
Previous Top Next

· Definição do Método:
Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s) nessa forma.

· Parâmetros do Método: (3 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Valor Forma Pagamento: String com o valor da forma de pagamento com até 14 dígitos.
3. Observação Livre: String com até 48 caracteres, na FS345 e até 82 na FS600/FS2100T.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O fechamento do comprovante não fiscal acontecerá automaticamente assim que o total do comprovante não fiscal seja atingido.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Forma_de_Pagamento As String
Dim Str_Valor_da_Forma_Pagamento As String
Dim Str_Texto_Livre As String

Str_Forma_de_Pagamento = "Dinheiro"
Str_Valor_da_Forma_Pagamento = "0,09"
Str_Texto_Livre = "Parcela paga em 28/12/2004"
Int_Retorno = Daruma_FI_EfetuaFormaPagamentoNaoFiscal(Str_Forma_de_Pagamento, _
Str_Valor_da_Forma_Pagamento, Str_Texto_Livre)

· Exemplo em Delphi 7.0:
var
Str_Forma_de_Pagamento: String;
Str_Valor_da_Forma_Pagamento: String;
Str_Texto_Livre: String;
begin
Str_Forma_de_Pagamento := 'Dinheiro';
Str_Valor_da_Forma_Pagamento := '0,09';
Str_Texto_Livre := '28/12/2004';

Int_Retorno := Daruma_FI_EfetuaFormaPagamentoNaoFiscal( pchar( Str_Forma_de_Pagamento ), pchar( Str_Valor_da_Forma_Pagamento ), pchar( Str_Texto_Livre ) );

· Exemplo em Java:
String formapagamento = "Dinheiro";
String valorformapagamento = "5,00";
String textolivre = "Parcela paga em: 28/12/2004";
int retorno;

retorno = FISCAL.Daruma_FI_EfetuaFormaPagamentoNaoFiscal(formapagamento, valorformapagamento, textolivre);


Daruma_FI_LeituraMemoriaFiscalData(Índice 1102)

Método: Daruma_FI_LeituraMemoriaFiscalData [Índice 1102]
Previous Top Next

· Definição do Método:
Emite a leitura da memória fiscal da impressora por intervalo de datas.

· Parâmetros do Método: (2 Parâmetros)
1. Data Inicial: String com a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
2. Data Final: String com a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

· Este Método retornará um dos Valores Inteiros listados Abaixo: 0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método:Daruma_FI_StatusCupomFiscal(Índice 1404).
- Para realizar a Leitura da Memoria Fiscal Detalhada você poder configurar no registro (REGEDIT) a chave: MFDLeituraMFCompleta = '1'

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Data_Inicial As String
Dim Str_Data_Final As String

Str_Data_Inicial = "28/12/2004"
Str_Data_Final = "28/12/2004"
Int_Retorno = Daruma_FI_LeituraMemoriaFiscalData(Str_Data_Inicial, Str_Data_Final)

· Exemplo em Delphi 7.0:
var
Str_Data_Inicial: String;
Str_Data_Final: String;
begin
Str_Data_Inicial := '28/12/2004';
Str_Data_Final := '28/12/2004';

Int_Retorno := Daruma_FI_LeituraMemoriaFiscalData( pchar( Str_Data_Inicial ), pchar( Str_Data_Final ) );

· Exemplo em Java:
String datainicial = "100108";
String datafinal = "100208";
int retorno;

retorno = FISCAL.Daruma_FI_LeituraMemoriaFiscalData(datainicial, datafinal);


Daruma_FI_LeituraMemoriaFiscalReducao(Índice 1103)

Método: Daruma_FI_LeituraMemoriaFiscalReducao [Índice 1103]
Previous Top Next

· Definição do Método:
Emite a leitura da memória fiscal da impressora por intervalo de reduções.

· Parâmetros do Método: (2 Parâmetros)
1. Redução Inicial: String com o Número da redução inicial com até 4 dígitos.
2. Redução Final: String com o Número da redução final com até 4 dígitos.

· Este Método retornará um dos Valores Inteiros listados Abaixo: 0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método:Daruma_FI_StatusCupomFiscal(Índice 1404).
- Para realizar a Leitura da Memoria Fiscal Detalhada você poder configurar no registro (REGEDIT) a chave: MFDLeituraMFCompleta = '1'

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Reducao_Inicial As String
Dim Str_Reducao_Final As String

Str_Reducao_Inicial = "01"
Str_Reducao_Final = "02"

Int_Retorno = Daruma_FI_LeituraMemoriaFiscalReducao _
(Str_Reducao_Inicial, Str_Reducao_Final)

· Exemplo em Delphi 7.0:
var
Str_Reducao_Inicial: String;
Str_Reducao_Final: String;
begin
Str_Reducao_Inicial := '01';
Str_Reducao_Final := '02';

Int_Retorno := Daruma_FI_LeituraMemoriaFiscalReducao( pchar( Str_Reducao_Inicial ), pchar( Str_Reducao_Final ) );

· Exemplo em Java:
String reducaoinicial = "10";
String reducaofinal = "20";
int retorno;

retorno = FISCAL.Daruma_FI_LeituraMemoriaFiscalReducao(reducaoinicial, reducaofinal);


Daruma_FI_LeituraMemoriaFiscalSerialData(Índice 1104)

Método: Daruma_FI_LeituraMemoriaFiscalSerialData [Índice 1104]
Previous Top Next

· Definição do Método:
Recebe os dados da memória fiscal por intervalo de datas pela serial e grava em arquivo texto.

· Parâmetros do Método: (2 Parâmetros)
1. Data Inicial: String com a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
2. Data Final: String com a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

· Este Método retornará um dos Valores Inteiros listados Abaixo: 0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método:Daruma_FI_StatusCupomFiscal(Índice 1404).
- Para realizar a Leitura da Memoria Fiscal Detalhada você poder configurar no registro (REGEDIT) a chave: MFDLeituraMFCompleta = '1'

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Data_Inicial As String
Dim Str_Data_Final As String

Str_Data_Inicial = "28/12/2004"
Str_Data_Final = "28/12/2004"

Int_Retorno = Daruma_FI_LeituraMemoriaFiscalSerialData _
(Str_Data_Inicial, Str_Data_Final)

Shell "notepad C:\retorno.txt", vbMaximizedFocus

· Exemplo em Delphi 7.0:
var
Str_Data_Inicial: String;
Str_Data_Final: String;
begin
Str_Data_Inicial := '28/12/2004';
Str_Data_Final := '28/12/2004';

Int_Retorno := Daruma_FI_LeituraMemoriaFiscalSerialData( pchar( Str_Data_Inicial ), pchar( Str_Data_Final ) );

· Exemplo em Java:
String datainicial = "100108";
String datafinal = "100208";
int retorno;

retorno = FISCAL.Daruma_FI_LeituraMemoriaFiscalSerialData(datainicial, datafinal);


Daruma_FI_LeituraMemoriaFiscalSerialReducao(Índice 1105)

Método:Daruma_FI_LeituraMemoriaFiscalSerialReducao [Índice 1105]
Previous Top Next

· Definição do Método:
Recebe os dados da leitura da memória fiscal, por intervalo de reduções, pela serial e grava em arquivo texto.

· Parâmetros do Método: (2 Parâmetros)
1. Redução Inicial: String com o Número da reducao inicial com até 4 dígitos.
2. Redução Final: String com o Número da reducao final com até 4 dígitos.

· Este Método retornará um dos Valores Inteiros listados Abaixo: 0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método: Daruma_FI_StatusCupomFiscal(Índice 1404).
- Para realizar a Leitura da Memoria Fiscal Detalhada você poder configurar no registro (REGEDIT) a chave: MFDLeituraMFCompleta = '1'

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Reducao_Inicial As String
Dim Str_Redcucao_Final As String

Str_Rd_Inicial = "01"
Str_Rd_Final = "02"

Int_Retorno = Daruma_FI_LeituraMemoriaFiscalSerialReducao _
(Str_Reducao_Inicial, Str_Reducao_Final)

Shell "notepad C:\retorno.txt", vbMaximizedFocus

· Exemplo em Delphi 7.0:
var
Str_Reducao_Inicial: String;
Str_Reducao_Final: String;
begin
Str_Reducao_Inicial := '01';
Str_Reducao_Final := '02';

Int_Retorno := Daruma_FI_LeituraMemoriaFiscalSerialReducao( pchar( Str_Reducao_Inicial ), pchar( Str_Reducao_Final ) );

· Exemplo em Java:
String datainicial = "10";
String datafinal = "20";
int retorno;

retorno = FISCAL.Daruma_FI_LeituraMemoriaFiscalSerialReducao(datainicial, datafinal);


Daruma_FI_LeituraX(Índice 1101)

Método:Daruma_FI_LeituraX [Índice 1101]
Previous Top Next

· Definição:
Emite a Leitura X na impressora.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método: Daruma_FI_StatusCupomFiscal(Índice 1404).

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_LeituraX()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_LeituraX();

· Exemplo em Java:
int retorno = 0;
FISCAL.Daruma_FI_LeituraX();


Daruma_FI_LeituraxSerial(Índice 0000)

Método:Daruma_FI_LeituraXSerial [Índice 0000]
Previous Top Next

· Definição do Método:
Recebe os dados da leiturax pela serial e grava em arquivo texto.

· Parâmetros do Método:
Não há.

Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método: Daruma_FI_StatusCupomFiscal(Índice 1404).

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_LeituraXSerial()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_LeituraXSerial();

· Exemplo em Java:
int retorno = 0;
FISCAL.Daruma_FI_LeituraXSerial();


Daruma_FI_RecebimentoNaoFiscal(Índice 1202)

Método: Daruma_FI_RecebimentoNaoFiscal [Índice 1202]
Previous Top Next

· Definição do Método:
Imprime o comprovante não fiscal não vinculado.

· Parâmetros do Método: (3 Parâmetros)
1. Descrição do Totalizador: String com a descrição do totalizador com até 15 caracteres.
2. Valor Recebimento: String com o Valor do recebimento com até 14 dígitos (duas casas decimais).
3. Forma Pagamento: String com a Forma de pagamento com até 16 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método não poderá ser aplicado para Sangria ou Suprimento.
- Este Método é único, ou seja você não precisará chamar outro método para encerrá-lo.
- Caso você necessite informar mais de uma forma de pagamento então deve-se usar o Método Daruma_FI_AbreRecebimentoNaoFiscal.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_do_Totalizador As String
Dim Str_Valor_do_Recebimento As String
Dim Str_Forma_de_Pagamento As String

Str_Descricao_do_Totalizador = "Conta de Luz"
Str_Valor_do_Recebimento = "0,10"
Str_Forma_de_Pagamento = "Dinheiro"

Int_Retorno = Daruma_FI_RecebimentoNaoFiscal(Str_Descricao_do_Totalizador, Str_Valor_do_Recebimento, Str_Forma_de_Pagamento)

· Exemplo em Delphi 7.0:
var
Str_Descricao_do_Totalizador: String;
Str_Valor_do_Recebimento: String;
Str_Forma_de_Pagamento: String;
begin
Str_Indice_do_Totalizador := 'Conta de Luz';
Str_Valor_do_Recebimento := '0,10';
Str_Forma_de_Pagamento := 'Dinheiro';

Int_Retorno := Daruma_FI_RecebimentoNaoFiscal( pchar( Str_Descricao_do_Totalizador ), pchar( Str_Valor_do_Recebimento ), pchar( Str_Forma_de_Pagamento ) );


Daruma_FI_ReducaoZ(Índice 1100)

Método:Daruma_FI_ReducaoZ [Índice 1100]
Previous Top Next

· Definição do Método:
Emite a ReduçãoZ na impressora.

· Parâmetros do Método: (2 Parâmetros opcionais)
1. Data: String com a Data atual da impressora no formato ddmmaa. Opcional
2. Hora: String com a Hora a ser alterada no formato hhmmss. Opcional

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Importante!!!: Caso ja tenha sido efetuada uma ReducaoZ no dia, caso seja afetuada outra, isso fará com que a Impressora fique Inoperante até às 0:00. Horário este controlado pelo relógio interno da própria Impressora.
- Se o flag ZAutomatica estiver setado pra 1(um) no registry, então em havendo uma ReduçãoZ pendende, a mesma será impressa automaticamente, mas somente se ZAutomatica estiver setado pra 1(um).
- Nas Impressoras fiscais Térmicas, FS600 e Fs2100T, como há a compactação dos dados na MFD, então o tempo de retorno deste método é maior, do que, em impressoras matriciais, assim sendo, após o envio deste método aguarde até que a função retorne o processo para o seu software.

· Recomendações:
- Aconselhamos aos programadores a deixar que a Daruma32.dll, estipule os parâmetros de Data e Hora, evitando algum conflito ou falha na redução devido aos parametros passados incorretos ou fora de sincronizo.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Confirma As String
Str_Confirma = MsgBox("Tem Certeza que Deseja Efetuar a ReducaoZ?", _
vbQuestion + vbYesNo, "Daruma Framework")
If Str_Confirma = vbYes Then
Int_Retorno = Daruma_FI_ReducaoZ(" ", " ")

· Exemplo em Delphi 7.0:
var
Int_Confirma: Integer;
begin

int_Confirma:= Application.MessageBox ('Tem Certeza que Deseja Efetuar a ReducaoZ?' , 'Daruma Framework',mb_YesNo+mb_DefButton2+mb_IconQuestion);
if (int_Confirma = 6) then //Int_Confirma = 6(Sim), = 7(Não), é o valor de retorno do Application.MessageBox
Int_Retorno := Daruma_FI_ReducaoZ(' ', ' ')
Else
exit;

end;

· Exemplo em Java:
int retorno;
retorno = FISCAL.Daruma_FI_ReducaoZ("" , "");


Daruma_FI_ReducaoZAjustaDataHora(Índice 1106)

Método:Daruma_FI_ReducaoZAjustaDataHora [Índice 1106]
Previous Top Next

· Definição do Método:
Emite a ReduçãoZ na impressora. Permite ajustar o relógio interno da impressora em até 5 minutos.

· Parâmetros do Método: (2 Parâmetros)
1. Data: String com a Data atual da impressora no formato ddmmaa.
2. Hora: String com a Hora a ser alterada no formato hhmmss.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Importantíssimo este método não aceita separadores, você deverá passar apenas 12bytes.
- Se os valores estiverem fora dessa faixa serão limitados a 5 minutos.

· Recomendações:
- Aconselhamos aos programadores a deixar que a Daruma32.dll, estipule os parâmetros de Data e Hora, evitando algum conflito ou falha na redução devido aos parametros passados incorretos ou fora de sincronizo.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Data As String
Dim Str_Hora As String

Str_Data = " "
Str_Hora = " "
Int_Retorno = Daruma_FI_ReducaoZAjustaDataHora(Str_Data, Str_Hora)

· Exemplo em Delphi 7.0:
var
Str_Data: String;
Str_Hora: String;
begin
Str_Data := ' ';
Str_Hora := ' ';

Int_Retorno := Daruma_FI_ReducaoZAjustaDataHora( pchar( Str_Data ), pchar( Str_Hora ) );

· Exemplo em Java:
int retorno;
String data = "";
String hora = "";
retorno = FISCAL.Daruma_FI_ReducaoZAjustaDataHora(data, hora);


Daruma_FI_RelatorioGerencial(Índice 1200)

Método: Daruma_FI_RelatorioGerencial [Índice 1200]

Previous Top Next

· Definição do Método:
Abre e Imprime Imprime o Relatório Gerencial.

Parâmetros do Método: (1 Parâmetro)
Texto: String com o Texto a ser impresso no relatório com até 618 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Se o Relatorio Gerencial estiver aberto este Método imprime o texto que você deseja, e se desejar continuar imprimindo mais texto, continue Chamando este Método, que uma vez aberto o Gerencial, o mesmo não será Aberto novamente até que seja chamada a Método.
- Para fechar o Relatório, chame o Método:Daruma_FI_FechaRelatorioGerencial.
- Se qualquer Método diferente da Daruma_FI_RelatorioGerencial for chamado com o relatório aberto, efetuará seu fechamento automaticamente.
- Uma vez aberto o Relatório Gerencial, você terá 10(dez) minutos para a impressão de Texto Livre.
- Caso você se esqueça de fechar o Relatório Gerencial o mesmo será fechado automaticamente após 10(dez) minutos contando a partir de sua abertura.
- Nas Impressoras Térmicas FS600 e FS2000T o gerencial permanecerá aberto por 2(dois) Minutos.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Texto_Livre As String

Str_Texto_Livre = "Texto Livre com até 600 caracteres"

Int_Retorno = Daruma_FI_RelatorioGerencial(Str_Texto_Livre)

· Exemplo em Delphi 7.0:
var
Str_Texto_Livre: String;
begin
Str_Texto_Livre := 'Texto Livre com até 600 caracteres';

Int_Retorno := Daruma_FI_RelatorioGerencial( pchar( Str_Texto_Livre ) );

· Exemplo em Java:
int retorno;

retorno = FISCAL.Daruma_FI_RelatorioGerencial("teste com o .JAR no exemplo java");


Daruma_FI_Sangria(Índice 1206)

Método: Daruma_FI_Sangria [Índice 1206]
Previous Top Next

· Definição do método:
Faz uma sangria na impressora (retirada de dinheiro).

Parâmetros do Método: (1 Parâmetro)
Valor: String com o Valor da sangria com até 14 dígitos (2 casas decimais).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Não será possível informar mais de uma forma de pagamento no casa de uma Sangria.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Valor_da_Sangria As String

Str_Valor_da_Sangria = "0,10"

Int_Retorno = Daruma_FI_Sangria(Str_Valor_da_Sangria)

· Exemplo em Delphi 7.0:
var Str_Valor_da_Sangria: String;
begin
Str_Valor_da_Sangria := '0,10';

Int_Retorno := Daruma_FI_Sangria( pchar( Str_Valor_da_Sangria ) );

· Exemplo em Java:
String valor = "1,00";
int retorno;

retorno = FISCAL.Daruma_FI_Sangria(valor);


Daruma_FI_Suprimento(Índice 1207)

DarumaFramework
Método: Daruma_FI_Suprimento [Índice 1207]
Previous Top Next

· Definição do Método:
Faz um suprimento na impressora (entrada de dinheiro).

· Parâmetros do Método: (2 Parâmetros)
1. Valor: String com o Valor do suprimento com até 14 dígitos (2 casas decimais).
2. Forma Pagamento: String com a Forma de pagamento com até 16 caracteres. Se não for informada, o suprimento será feito em Dinheiro. ATENÇÃO: Nas impressoras matriciais (FS345) esse parâmetro é obrigatório ser informado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Valor_do_Suprimento As String
Dim Str_Forma_de_Pagamento As String

Str_Valor_do_Suprimento = "0,10"
Str_Forma_de_Pagamento = "Dinheiro"

Int_Retorno = Daruma_FI_Suprimento(Str_Valor_do_Suprimento, Str_Forma_de_Pagamento)

· Exemplo em Delphi 7.0:
var
Str_Valor_do_Suprimento: String;
Str_Forma_de_Pagamento: String;
begin
Str_Valor_do_Suprimento := '0,10';
Str_Forma_de_Pagamento := 'Dinheiro';

Int_Retorno := Daruma_FI_Suprimento( pchar( Str_Valor_do_Suprimento ), pchar( Str_Forma_de_Pagamento ) );

· Exemplo em Java:
String formapagamento = "dinheiro";
String valor = "1,00";
int retorno;

retorno = FISCAL.Daruma_FI_Suprimento(valor, formapagamento);


Daruma_FI_VerificaDocAutenticacao(Índice 1301)

Método: Daruma_FI_VerificaDocAutenticacao [Índice 1301]
Previous Top Next

· Definição do Método:
Verifica se existe documento para ser Autenticado, este Método pode ser útil antes do envio da autenticação, ou seja, você apenas envia o método para a Autenticação quando tiver a certeza que o documento esta presente.

· Uma prática interessante a ser aplicada é a seguinte:
1) Chamar a Funcao Daruma_FI_VerificaDocAutenticação.
2) Retornou igual a 1(um)?.
3) Se sim, chamar o método Daruma_FI_Autentica.
4) Caso contrário Voltar ao passo 1.

Com isso você garante que o método de Autenticação somente será chamado quando o documento estiver presente.

· Parâmetros do Método:
Não há.

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_VerificaDocAutenticacao()
If Int_Retorno = 1 Then
MsgBox "1 = Documento Posicionado"
Else
MsgBox "0 = Documento Ausente"
End If

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_VerificaDocAutenticacao();
if Int_Retorno = 1 Then
begin
Application.MessageBox('1 = Documento Posicionado!', 'Daruma Framework', mb_ok);
end
else
begin
Application.MessageBox('0 = Documento Não Posicionado!', 'Daruma Framework', mb_ok);
end;


Daruma_FI_Autenticacao(Índice 1300)

Método: Daruma_FI_Autenticacao [Índice 1300]
Previous Top Next

· Definição do Método:
Permite a autenticação de documentos.

· Parâmetros do Método:
Não Há.

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Para autenticar documentos na impressora fiscal FS2100T, você deve estar com o cupom fiscal aberto.
- Deverá ser executada imediatamente após um recebimento não fiscal ou o término de um cupom fiscal.
- Poderá ser repetido até 4 vezes para cada recebimento, após isso o método será ignorado.
- Na impressora fiscal Daruma, serão aguardados 5 segundos para o posicionamento do documento e autenticará no documento a data, hora, número da loja, número do caixa e o número do último cupom fiscal. Se decorrido os 5 segundos sem o posicionamento do documento.

Exemplos:
· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_Autenticacao()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_Autenticacao();

end;


Daruma_FI_AutenticacaoStr(Índice 1302)

Método: Daruma_FI_AutenticacaoStr [Índice 1302]
Previous Top Next

· Definição do Método:
Permite a autenticação de documentos com a adição de uma String de até 13 caracteres.

· Parâmetros do Método: (1 Parâmetro)
String: de até 13 caracteres.

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Para autenticar documentos na impressora fiscal FS2100T, você deve etar com o cuporm fiscal aberto.
- Este Método permite ao usuário entrar com até 13 caracteres onde poderá utilizar para texto livre, observações ou até mesmo uma criptografia.
- Deverá ser executada imediatamente após um recebimento não fiscal ou o término de um cupom fiscal.
- Poderá ser repetido até 4 vezes para cada recebimento, após isso o método será ignorado.
- Na impressora fiscal Daruma, serão aguardados 5 segundos para o posicionamento do documento e autenticará no documento a data, hora, número da loja, número do caixa e o número do último cupom fiscal. Se decorrido os 5 segundos sem o posicionamento do documento.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_AutenticacaoStr As String

Str_AutenticacaoStr = "Framework"
Int_Retorno = Daruma_FI_AutenticacaoStr(Str_AutenticacaoStr)

· Exemplo em Delphi 7.0:
var Str_Autenticacao_Str: String;
begin
Str_AutenticacaoStr := AutenticacaoStr.Text;

Int_Retorno := Daruma_FI_AutenticacaoStr( pchar( Str_AutenticacaoStr ) );


Daruma_FI_VerificaEstadoGaveta(Índice 1311)

Método: Daruma_FI_VerificaEstadoGaveta [Índice 1311]
Previous Top Next

· Definição do Método:
Retorna se a gaveta está fechada ou aberta.

· Parâmetros da Método:
Estado: INTEIRO com a Variável para receber o estado da gaveta, onde:
- Estado = 0 sensor em nível 0 (fechada)
- Estado = 1 sensor em nível 1 (aberta)

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Estado_Gaveta As Integer

Int_Estado_Gaveta = 0

Int_Retorno = Daruma_FI_VerificaEstadoGaveta(Int_Estado_Gaveta)
If Int_Estado_Gaveta = 1 Then
MsgBox "1 = Gaveta Aberta"
Else
MsgBox "0 = Gaveta Fechada"
End If

· Exemplo em Delphi 7.0:
var Int_Estado_Gaveta: Integer;
begin
Int_Estado_Gaveta := 0;
Int_Retorno := Daruma_FI_VerificaEstadoGaveta( Int_Estado_Gaveta);
if Int_Estado_Gaveta = 1 Then
begin
Application.MessageBox('1 = Gaveta Aberta!', 'Daruma Framework', mb_ok);
end
else
begin
Application.MessageBox('0 = Gaveta Fechada!', 'Daruma Framework', mb_ok);
end;


Daruma_FI_VerificaEstadoGavetaStr(Índice 1312)

Método: Daruma_FI_VerificaEstadoGavetaStr [Índice 1312]
Previous Top Next

· Definição do Método:
Retorna se a gaveta está fechada ou aberta.

· Parâmetros da Método:
Estado: String com a Variável para receber o estado da gaveta, onde:
- Estado = 0 sensor em nível 0 (fechada)
- Estado = 1 sensor em nível 1 (aberta)

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Estado_Gaveta As String

Str_Estado_Gaveta = Space(1)

Int_Retorno = Daruma_FI_VerificaEstadoGavetaStr(Str_Estado_Gaveta)
If Str_Estado_Gaveta = 1 Then
MsgBox "1 = Gaveta Aberta!"
Else
MsgBox "0 = Gaveta Fechada!"
End If

· Exemplo em Delphi 7.0:
var Str_Estado_Gaveta: String;
begin
SetLength (Str_Estado_Gaveta,1);

Int_Retorno := Daruma_FI_VerificaEstadoGavetaStr( Str_Estado_Gaveta );
if Str_Estado_Gaveta = '1' Then
begin
Application.MessageBox('1 = Gaveta Aberta!', 'Daruma Framework', mb_ok);


Daruma_FI_AcionaGaveta(Índice 1310)

Método: Daruma_FI_AcionaGaveta [ndice 1310]
Previous Top Next

· Definição do Método:
Abre a gaveta de dinheiro(Caixa).

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_AcionaGaveta()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_AcionaGaveta();

· Exemplo em Java:
int retorno = 0;

retorno = FISCAL.Daruma_FI_AcionaGaveta();


Daruma_FI_AberturaDoDia(Índice 603)

Método: Daruma_FI_AberturaDoDia [Índice 603]
Previous Top Next

· Definição do Método:
Faz a abertura do caixa emitindo um suprimento e uma LeituraX. Obs.: Na FS600 (MFD), não será emitida a LeituraX.

· Parâmetros da Método: (2 Parâmetros)
1. Valor: String com o Valor do suprimento com até 14 dígitos (2 casas decimais). Informe o valor "0" para não fazer suprimento.
2. Forma Pagamento: String com a Forma de pagamento com até 16 caracteres. Se não for informado, o suprimento será feito em Dinheiro.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- No caso de ter sido emitida uma LeituraX, no dia então será feito apenas um suprimento.
- Nas Impressoras Térmicas MFD´s FS600 e FS2000T a abertura do dia da-se à partir da emissão de qualquer documento salvo uma LeituraX.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Valor_do_Suprimento As String
Dim Str_Forma_de_Pagamento As String

Str_Valor_do_Suprimento = "0,10"
Str_Forma_de_Pagamento = "Dinheiro"
Int_Retorno = Daruma_FI_AberturaDoDia(Str_Valor_do_Suprimento, Str_Forma_de_Pagamento)

· Exemplo em Delphi 7.0:
var
Str_Valor_do_Suprimento: String;
Str_Forma_de_Pagamento: String;
begin
Str_Valor_do_Suprimento := '0,10';
Str_Forma_de_Pagamento := 'Dinheiro';

Int_Retorno := Daruma_FI_AberturaDoDia( pchar( Str_Valor_do_Suprimento ), pchar( Str_Forma_de_Pagamento ) );


Daruma_FI_FechamentoDoDia(Índice 604)

Método: Daruma_FI_FechamentoDoDia [Índice 604]
Previous Top Next

· Definição do Método:
Faz o fechamento do dia. Esse Método grava o COO final e o Grande Total final que serão usados na Método Daruma_FI_RelatorioTipo60Mestre.

· Parâmetros da Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método deverá ser aplicado sempre antes do encerramento do dia fiscal.
- Nunca emita nenhum relatório, antes de executar este Método.

Exemplos:
· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_FechamentoDoDia()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_FechamentoDoDia();


Daruma_FI_ImprimeConfiguracoesImpressora(Índice 607)

Método: Daruma_FI_ImprimeConfiguracoesImpressora [Índice 607]
Previous Top Next

· Definição do Método:
Imprime configurações da impressora fiscal em um relatório gerencial. Será emitida uma leitura X antes. Veja abaixo em "Observações" as informações que serão impressas.

· Parâmetros da Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Serão impressas as seguintes configurações:

Data da impressora 27/06/2001
Hora da impressora 11:38:37
Versão do firmware 120
Versão da dll 1.9
log da dll Desabilitado
Lin. Imp. após pouco papel 0000
Tipo Impressora fiscal + gaveta+autenticação
GravaStatus NÃO
Grava Retorno NÃO
Status Método NÃO
Controle Porta NÃO
Modo gaveta 0

Exemplos:
· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_ImprimeConfiguracoesImpressora()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_ImprimeConfiguracoesImpressora();


Daruma_FI_SaltarLinhas

Método: Daruma_FI_SaltarLinhas [Índice 1020]
Previous Top Next

· Definição do Método:
Permite saltar linhas entre documentos.

· Parâmetros do Método: (1 Parâmetro)
1. NumeroLinhas: Inteiro com o número de linhas que deseja saltar.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Esse método pode ser executado nos documentos fiscais e não-fiscais, aberto ou fechado.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Int_Linhas as Integer;

Int_Linhas = 3
Int_Retorno = Daruma_FI_SaltarLinhas(Int_Linhas)

· Exemplo em Delphi 7.0:
Var Int_Linhas :Integer;
begin
Int_Linhas:= 3;
Int_Retorno:= Daruma_FI_SaltarLinhas(Int_Linhas);


Daruma_FI_ProgramaAliquota(Índice 302)

Método: Daruma_FI_ProgramaAliquota [Índice 302]
Previous Top Next

· Definição do Método:
Programa alíquota tributária na Impressora Fiscal.

· Parâmetros do Método: (2 Parâmetros)
1. Alíquota: String com o valor da alíquota a ser programada.
2. Vínculo: INTEIRO com o valor 0 (zero) para vincular a alíquota ao ICMS e 1 (um) para vincular ao ISS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX, ou qualquer outro documento.
- Nas Impressoras Daruma, você "não precisa" carregar diariamente as Alíquotas.
- Na hora de passar o valor da alíquota você, não deve utilizar nenhum tipo de separador.
- Lembrando que após cadastrada a Alíquota não podemos exclui-lás ou altera-lás somente via software de intervenção técnica.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Valor_da_Aliquota As String
Dim Int_Tipo_da_Aliquota As Integer

Str_Valor_da_Aliquota = "1800"
Int_Tipo_da_Aliquota = "0"
Int_Tipo_da_Aliquota = CInt(TX_Tipo_da_Aliquota.Text)
Int_Retorno = Daruma_FI_ProgramaAliquota(Str_Valor_da_Aliquota, _
Int_Tipo_da_Aliquota)

· Exemplo em Delphi 7.0:
var
Str_Valor_da_Aliquota: String;
Int_Tipo_da_Aliquota: Integer;
begin
Str_Valor_da_Aliquota := '1800';
Int_Tipo_da_Aliquota :='0'
Int_Tipo_da_Aliquota := StrToInt(Trim(Tipo_da_Aliquota.Text));

Int_Retorno := Daruma_FI_ProgramaAliquota( pchar( Str_Valor_da_Aliquota ), Int_Tipo_da_Aliquota );

· Exemplo em Java:
String valoraliquota = "18,00";
int tipoaliquota = 0;
int retorno;

retorno = FISCAL.Daruma_FI_ProgramaAliquota(valoraliquota, nt = tipoaliquota);


Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms(Índice 304)

Método: Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms [Índice 304]
Previous Top Next

· Definição do Método:
Programa Totalizador Não Sujeito ao ICMS. Equivale a por exemplo Conta de Luz, Água, Telefone, etc.

· Parâmetros do Método: (2 Parâmetros)
1. Indice: INTEIRO com a posição em que o totalizador será programado.
2. Totalizador: String até 21 caracteres com o nome do totalizador.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado.
- Nas impressoras fiscais FS600(MFD) e FS2100T(MFD), só serão aceitos no máximo 15 carácteres na descrição do totalizador não fiscal.
- Lembrando que após cadastrada a forma de recebimentos não podemos exclui-lás ou altera-lás somente via software de intervenção técnica.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Indice_do_Totalizador As Integer
Dim Str_Nome_do_Totalizador As String

Int_Indice_do_Totalizador = "00"
Int_Indice_do_Totalizador = CInt(TX_Indice_do_Totalizador.Text)
Str_Nome_do_Totalizador = "Conta de Luz"
Int_Retorno = Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms _
(Int_Indice_do_Totalizador, Str_Nome_do_Totalizador)

· Exemplo em Delphi 7.0:
var
Int_Indice_do_Totalizador: Integer;
Str_Nome_do_Totalizador: String;
begin
Int_Indice_do_Totalizador :='00'
Int_Indice_do_Totalizador := StrToInt(Trim(Indice_do_Totalizador.Text));
Str_Nome_do_Totalizador := 'Conta de Luz';

Int_Retorno := Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms( Int_Indice_do_Totalizador, pchar( Str_Nome_do_Totalizador ) );

· Exemplo em Java:
int indicetotalizador = 00;
String nometotalizador = "CONTAS A PAGAR";
int retorno;

retorno = FISCAL.Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms(indicetotalizador, nometotalizador);


Daruma_FI_ProgramaFormasPagamento(Índice 301)

Método:Daruma_FI_ProgramaFormasPagamento [Índice 301]
Previous Top Next

· Definição do Método:
Realiza o casdastro das formas de pagamento na impressora fiscal, este Método deve ser enviado somente após a realização de uma ReduçãoZ que é efetuado pela DLL de forma Automática dependendo de como estiver a Chave do Registry Daruma_Registry_ZAutomatica.

· Parâmetros do Método: (1 Parâmetro)
String contendo as formas de Pagamento desejadas, separadas por PONTO-E-VÍRGULA, cada forma de pagamento deve ter o tamanho de até 16 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Nas Impressoras Térmicas MFD's FS600 e FS2000T as descrições das formas de pagamentos poderão ser de no máximo 15 caracteres.
- Quando é executado este método automaticamente a dll cria o compravente não fiscal vinculado para cada forma de pagamento programada. Dispensando com isso a programação dos Comprovantes Não Fiscais Vinculados.
- O cupom fiscal deve estar fechado.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.
- Nas Impressoras Térmicas MFD´s FS600 e FS2000T as formas não serão vinculáveis. Para torná-las a vinculáveis na é preciso que seja feita uma Intervenção Técnica. Vide conênio 85/01.
- Lembrando que após cadastrada a forma de pagamento não podemos exclui-lás ou altera-lás somente via software de intervenção técnica.

· Recomendações:
- Recomendamos antes de realizar a função Daruma_FI_ProgramaFormasPagamento, verificar aonde está vinculado a primeiro índice na impressora fiscal (Metodo Disponivél nas Impressoras Térmicas com MFD), utilizando a função Daruma_FIMFD_IndicePrimeiroVinculado.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_das_Formas_Pagamento As String

Str_Descricao_das_Formas_Pagamento = "Cartao;Cheque;Redecard;"
Int_Retorno = Daruma_FI_ProgramaFormasPagamento(Str_Descricao_das_Formas_Pagamentto)

· Exemplo em Delphi 7.0:
var
Str_Descricao_das_Formas_Pagamento: String;
begin
Str_Descricao_das_Formas_Pagamento := 'Cartao;Cheque;Redecard;';

Int_Retorno := Daruma_FI_ProgramaFormasPagamento( pchar( Str_Descricao_das_Formas_Pagamento ) );


Daruma_FI_ProgramaOperador(Índice 310)

Método: Daruma_FI_ProgramaOperador [Índice 310]
Previous Top Next

· Definição do Método:
Programa o Operador no ECF, essa programação pode ser feita a qualquer momento do dia.

· Parâmetros do Método: (1 Parâmetro)
Operador: String com até 20 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método poderá ser chamado a qualquer momento do dia.
- Lembrando que após cadastrada o operador não podemos exclui-lás ou altera-lás somente via software de intervenção técnica.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome_do_Operador As String

Str_Nome_do_Operador = "Operador 01"
Int_Retorno = Daruma_FI_ProgramaOperador(Str_Nome_do_Operador)

· Exemplo em Delphi 7.0:
var
Str_Nome_do_Operador: String;
begin
Str_Nome_do_Operador := 'Operador 01';

Int_Retorno := Daruma_FI_ProgramaOperador( pchar( Str_Nome_do_Operador ) );


Daruma_FI_ProgramaArredondamento(Índice 305)

Método:Daruma_FI_ProgramaArredondamento [Índice 305]
Previous Top Next

· Definição do Método:
Programa o modo arrendondamento na impressora.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado.
- Será executada somente após uma ReduçãoZ.
- Este método não está disponível para a FS2000.
- Este método não está disponível para a FS600, somente nas versões 01.04.00 acima usando o Flag MFDArredondamentoAutomatico = '1'.
- Este método não está disponível para a FS2100, somente nas versões 01.04.00 acima usando o Flag MFDArredondamentoAutomatico = '1'.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_ProgramaArredondamento()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_ProgramaArredondamento();


Daruma_FI_ProgramaTruncamento(Índice 306)

Método: Daruma_FI_ProgramaTruncamento [Índice 306]
Previous Top Next

· Definição do Método:
Programa o modo truncamento na impressora.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado.
- Será executada somente após uma ReduçãoZ.
- Este método não está disponível para a FS2000, pelo fato da mesma não permitir arredondamento, vide convênio 85/01.
- Este método não está disponível para a FS600, pelo fato da mesma não permitir arredondamento, vide convênio 85/01.
- Este método não está disponível para a FS2100T, pelo fato da mesma não permitir arredondamento, vide convênio 85/01.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_ProgramaTruncamento()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_ProgramaTruncamento();


Daruma_FI_LinhasEntreCupons(Índice 307)

Método: Daruma_FI_LinhasEntreCupons [Índice 307]
Previous Top Next

· Definição do Método:
Programa o espaçamento de linhas entre os cupons.

· Parâmetros do Método: (1 Parâmetro)
Linhas: INTEIRO entre 0 e 15 indicando o número de linhas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O espaçamento ideal entre os cupons é de 7 linhas.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Linhas_Entre_Cupons As Integer

Int_Linhas_Entre_Cupons = "15"
Int_Linhas_Entre_Cupons = CInt(TX_Linhas_Entre_Cupons.Text)
Int_Retorno = Daruma_FI_LinhasEntreCupons(Int_Linhas_Entre_Cupons)

· Exemplo em Delphi 7.0:
var
Int_Linhas_Entre_Cupons: Integer;
begin
Int_Linhas_Entre_Cupons :='15'
Int_Linhas_Entre_Cupons := StrToInt(Trim(Linhas_Entre_Cupons.Text));
Int_Retorno := Daruma_FI_LinhasEntreCupons( Int_Linhas_Entre_Cupons );


Daruma_FI_EspacoEntreLinhas(Índice 308)

Método: Daruma_FI_EspacoEntreLinhas [Índice 308]
Previous Top Next

· Definição do Método:
Programa o espaçamento entre as linhas impressas no cupom.

· Parâmetros do Método: (1 Parâmetro)
Dots: INTEIRO entre 0 e 255 indicando o espaço (dots) entre as linhas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O espaçamento ideal entre linhas é de 15 (dots).

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Espaco_Entre_linhas As Integer

Int_Espaco_Entre_linhas = "15"
Int_Espaco_Entre_Linhas = CInt(TX_Espaco_Entre_Linhas.Text)
Int_Retorno = Daruma_FI_EspacoEntreLinhas(Int_Espaco_Entre_linhas)

· Exemplo em Delphi 7.0:
var
Int_Espaco_Entre_Linhas: Integer;
begin
Int_Espaco_Entre_Linhas :='15'
Int_Espaco_Entre_Linhas := StrToInt(Trim(Espaco_Entre_Linhas.Text));
Int_Retorno := Daruma_FI_EspacoEntreLinhas( Int_Espaco_Entre_Linhas );


Daruma_FI_ProgramaHorarioVerao(Índice 303)

Método: Daruma_FI_ProgramaHorarioVerao [Índice 303]
Previous Top Next

· Definição do Método:
Programa e desprograma o horário de verão. Se a impressora já estiver no horário de verão o mesmo será desprogramado atrasando o relógio em 1 (uma) hora, caso contrário será adiantado 1 (uma) hora.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- A programação do horário de verão será realizada somente após uma ReduçãoZ. Para desprogramar, o Método somente será aceito 1 (uma) hora após a ReduçãoZ e não pode ter havido movimento na impressora nesse período.
- Você poderá deixar a entrada e saída do horário de verão automatizada. Para isso basta seguir as instruções abaixo:
1. Entre no registry no seguinte path: HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF;
2. Sete o flag ControlaHorarioVerao para 1(um);
3. Insira uma data válida no flag:DataEntradaHorarioVerao ex.:091205;
4. Insira uma data válida no flag:DataSaidadaHorarioVerao ex.:091205.

Dessa maneira conforme você programou a Daruma32.dll quando verificar que chegou a data prevista em sua programação, irá fazer o ajuste automaticamente, tanto para a entrada quanto para a saída do mesmo.
Importante: Para que a saída do horário de verão seja aceita, é fundamental que a ReduçãoZ que antecede a data de saída do horário de verão seja feita ao final do período do dia anterior ao retorno ao horário normal. Exemplificando melhor: se o horário de verão for terminar no dia 100306, então a ReduçãoZ do dia 090306 deve ter sido emitida ainda no dia 090306.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_ProgramaHorarioVerao()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_ProgramaHorarioVerao();


Daruma_FI_EqualizaFormasPgto(Índice 309)

Daruma_FI_EqualizaFormasPgto [Índice 309]
Previous Top Next

· Definição do Método:
Equaliza as formas de pagamento.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado.

· Exemplo de aplicação do Método:
- Imagine que você tenha uma forma de pagamento com a descrição vCartao (V = Vinculado), porém não tem o par dela nos vinculados. E néssa hora que este Método torna-se indispensável, pelo fato de que quando executado ele criará o Vinculado que estava faltando, para fazer par com a forma de pagamento que havia sido programada. Sendo assim passaríamos a ter nos meios de pagamento vCartao e agora também nos vinculados Cartao e só assim poderia-se fazer um Comprovante não Fiscal Vinculado à partir da forma de pagamento vCartao (V = Vinculado).

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_EqualizaFormasPgto()

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_EqualizaFormasPgto();


Daruma_FI_ProgramaVinculados(Índice 312)

Método: Daruma_FI_ProgramaVinculados [Índice 312]

Previous Top Next

· Definição do Método:
Programa comprovante não fiscal vinculado.

· Parâmetros do Método: (1 Parâmetro)
String: Com a descrição do vinculado com até 16 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método só deverá ser usado em casos onde já exitir a forma de pagamento e ela tenha uma letra v minúscula antes da descrição. Importante! a dll possui uma inteligência própria em relação a esta situação. Ou seja se existir uma forma de pagemento programada e que tenha o vZinho de vínculável ex.: vTEF e ainda não tenho o vinculado com a mesma descrição nos "CNFV", então a dll irá criar automaticamente o vinculado.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_do_Vinculado As String

Str_Descricao_do_Vinculado = "TEF"
Int_Retorno = Daruma_FI_ProgramaVinculados(Str_Descricao_do_Vinculado)

· Exemplo em Delphi 7.0:
var Str_Descricao_do_Vinculado: String;
begin
Str_Descricao_do_Vinculado := 'TEF';

Int_Retorno := Daruma_FI_ProgramaVinculados( pchar( Str_Descricao_do_Vinculado ) );


Daruma_FI_ProgramaFormasPgtoSemVincular(Índice 313)

Método: Daruma_FI_ProgramaPgtoSemVincular [Índice 313]
Previous Top Next

· Definição do Método:
Programa forma de pagamento sem vincular.

· Parâmetros do Método: (1 Parâmetro)
String: Com a descrição da forma de pagamento com até 16 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Quando é executado esta método, o vinculado que seria gerado automaticamente como acontece com a função Daruma_FI_ProgramaFormasPagemento, deixa de ser programado. Portando se você necessita de programar uma forma de pagamento avulsa "sem o vinculado", deverá usar este método.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.
- Este Método deverá ser aplicado sempre que a impressora já tiver o comprante vinculado e não tiver a forma de pagamento com a mesma descrição. Assim sendo você necessita criar uma forma de pagamento com a mesma descrição, deixando-a em concomitância com o vinculado, para que você possa gerar um CNFV, a partir da forma de pagamento.
- Lembrando que após cadastrada a forma de pagamento sem vincular não podemos exclui-lás ou altera-lás somente via software de intervenção técnica.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_da_Forma_Pagamento As String

Str_Descricao_da_Forma_Pagamento = "Redecard"
Int_Retorno = Daruma_FI_ProgFormasPagtoSemVincular(Str_Descricao_da_Forma_Pagamento)

· Exemplo em Delphi 7.0:
var Str_Descricao_da_Forma_Pagamento: String;
begin
Str_Descricao_da_Forma_Pagamento := 'Redecard';

Int_Retorno := Daruma_FI_ProgFormasPagtoSemVincular( pchar( Str_Descricao_da_Forma_Pagamento ) );


Daruma_FI_CfgFechaAutomaticoCupom(Índice 400)

Método:Daruma_FI_CfgFechaAutomaticoCupom [Índice 400]
Previous Top Next

· Definição do Método:
Permite que você configure o ECF para que quando tenha um Cupom Fiscal Aberto, ao Ligar e Desligar a mesma possa fechar o cupom automaticamente sem a intervenção do Software Aplicativo, permitindo eliminar situações de travamento. Este recurso foi descontinuado nas impressoras FS600 e FS2100T. Ambas térmicas.

· Parâmetros do Método: (1 Parâmetro)
1 - Não fecha o Cupom Fiscal Automacamente, isso fica a cargo do aplicativo.
0 - Fecha o Cupom Fiscal Automaticamente ao Ligar e Desligar o ECF.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.
- Este Método irá configurar diretamente a impressora.
- O Default da dll irá setar pra 0 este recurso. Para habilitá-lo, você deverá chamar este método no start-up de sua aplicação.
- Este método é incompatível com a impressora FS2000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgFechaAutomaticoCupom("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_CfgFechaAutomaticoCupom('1');


Daruma_FI_CfgImpEstGavVendas(Índice 411)

Método: Daruma_FI_CfgImpEstGavVendas [Índice 411]
Previous Top Next

· Definição do Método:
Imprime na LeituraX e na ReduçãoZ quantas vezes a Gaveta foi Aberta.

· Parâmetros do Método: (1 Parâmetro)
0 - Não Imprime na LeuturaX e na ReduçãoZ quantas Vezes a Gaveta foi Aberta.
1 - Imprime na LeituraX e na ReduçãoZ quantas Vezes a Gaveta foi Aberta.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgImpEstGavVendas("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_CfgImpEstGavVendas('1');


Daruma_FI_CfgCalcArredondamento(Índice 403)

Método: Daruma_FI_CfgCalcArredondamento [Índice 403]
Previous Top Next

· Definição do Método:
Configura o ECF para Calcular valores com a Regra de Arredondamento, ou seja, caso o valor calculado resulte de 5(incluindo o 5) pra cima será arredondado a ultima casa para o valor superior. Exemplos R$1,347 será R$1,35

· Parâmetros do Método: (1 Parâmetro)
0 - Não realiza os Cálculos por arredondamento e sim por truncamento.
1 - Realiza os Cálculos por arredondamento.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado.
- Será executada somente após uma ReduçãoZ.
- Este método não está disponível para a FS2000, vide convênio 85/01.
- Este método não está disponível para a FS600, vide convênio 85/01.
- Este método não está disponível para a FS2100T, vide convênio 85/01.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgCalcArredondamento("1")

· Exemplo em Delphi 7.0:
Int_Retorno = Daruma_FI_CalcArredondamento('1');


Daruma_FI_CfgHorarioVerao(Índice 404)

Método: Daruma_FI_CfgHorarioVerao [Índice 404]
Previous Top Next

· Definição do Método:
Configura o ECF para trabalhar com Horário de Verão.

· Parâmetros do Método: (1 Parâmetro)
1 - Comanda o ECF para entrar em Horario de Verão, ou seja, Automaticamente será Adiantado 1(uma) hora no Relógio da Impressora
0 - Comanda o ECF para SAIR do horario de Verão, ou seja atrasa o Relógio em 1(uma) hora.

· Observações:
Este Método só serão executados caso não tenha uma Venda no Dia, ou seja, Entre um a Redução Z (fechamento de Dia) e uma X (abertura de Dia). Para SAIR do horario de verão, você deve realizar uma Redução Z e ESPERAR 1(uma) hora antes de enviar o método, isso se deve pelo fato que uma vez que a Z foi Executada, o Horário em que a Z foi executada ficou gravado na Memória Fiscal que não Permitirá que o Relógio do ECF volte 1(uma) hora atrás da hora que já foi gravada na Memória Fiscal, por isso a necessidade de se esperar 1(uma) hora para SAIR do Horario de Verão.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.
- Você poderá deixar a entrada e saída do horário de verão automatizada. Para isso basta seguir as instruções abaixo:
1. Entre no registry no seguinte path: HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF;
2. Sete o flag ControlaHorarioVerao para 1(um);
3. Insira uma data válida no flag:DataEntradaHorarioVerao ex.:091205;
4. Insira uma data válida no flag:DataSaidadaHorarioVerao ex.:091205.

Dessa maneira conforme você programou a Daruma32.dll quando verificar que chegou a data prevista em sua programação, irá fazer o ajuste automaticamente, tanto para a entrada quanto para a saída do mesmo.
Importante: para que a saída do horário de verão seja aceita, é fundamental que a ReduçãoZ que antecede a data de saída do horário de verão seja feita ao final do período do dia anterior ao retorno ao horário normal. Exemplificando melhor: se o horário de verão for terminar no dia 100306, então a ReduçãoZ do dia 090306 deve ter sido emitida ainda no dia 090306.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgHorarioVerao("1")

· Exemplo em Delphi 7.0:
Int_Retorno = Daruma_FI_CfgHorarioVerao('1');


Daruma_FI_CfgSensorAut(Índice 405)

Método: Daruma_FI_CfgSensorAut [Índice 405]
Previous Top Next

· Definição do Método:
Permite que você configure o ECF para ter o Sensor de Autenticação Habilitado ou não, permitindo que você utilize a Método Daruma_FI_VerificaDocAutenticacao para verificar se o Documento está presente ou não para ser Autenticado.

Parâmetros do Método: (1 Parâmetro)
0 - Sensor de Autenticação Desabilitado.
1- Sensor de Autenticação Habilitado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.
- Este método é imcompatível com a impressora FS2000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgSensorAut("1")

· Exemplo em Delphi 7.0:
Int_Retorno = Daruma_FI_CfgSensorAut('1')


Daruma_FI_CfgCupomAdicional(Índice 412)

Método: Daruma_FI_CfgCupomAdicional [Índice 412]
Previous Top Next

· Definição do Método:
Permite que você configure o ECF para a Emissão de um Cupom Adicional a cada Cupom Fiscal Emitido.

· Parâmetros do Método: (1 Parâmetro)
0 - Emissão do Cupom Adicional Desablitado.
1 - Emissão do Cupom Adicional Hablitado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- O Default da dll irá setar pra 0 este recurso. Para habilitá-lo, você deverá chamar este método na incialização de sua aplicação.
- Este Método não é compatível com a Impressora de Duas Estações FS2000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgCupomAdicional("1")

· Exemplo em Delphi 7.0:
Int_Retorno = Daruma_FI_CfgCupomAdicional('1')


Daruma_FI_CfgEspacamentoCupons(Índice 407)

Método: Daruma_FI_CfgEspacamentoCupons [Índice 407]
Previous Top Next

· Definição do Método:
Configura o Número de Linhas entre cupons, isso permite uma economia de Bobina e um controle do avanço entre os documentos.

· Parâmetros do Método: (1 Parâmetro)
2(Dois) dígitos com o número de linhas que você deseja avançar após a emissão de qualquer Documento.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
-Este Método irá configurar diretamente a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:

Dim Str_Valor As String

Str_Valor = InputBox("Entre com o número de linhas", "Daruma_Framework", "15")
Int_Retorno = Daruma_FI_CfgEspacamentoCupons(Str_Valor)

· Exemplo em Delphi 7.0:

var
Str_Valor:String;
begin
Str_Valor:= InputBox('Entre com o número de linhas', 'Daruma_Framework', '15');
Int_Retorno:= Daruma_FI_CfgEspacamentoCupons(Str_Valor);


Daruma_FI_CfgLimiarNearEnd(Índice 409)

Método: Daruma_FI_CfgLimiarNearEnd [Índice 409]
Previous Top Next

· Definição do Método:
Permite Configurar quantas linhas você deseja atrasar o sensor de Pouco Papel, ou seja, você pode indicar que o sensor de pouco papel só comece a sinalizar pouco papel quando a bobina estiver bem próxima do final, por Exemplos, em bobina de 22MM o valor de 0450 indica que o ECF irá sinalizar pouco papel quanto realmente estiver bem próximo do final da bobina. Isso economiza mais Papel através de um Aproveitamento melhor do Sinal de "Pouco Papel"

· Parâmetros do Método: (1 Parâmetro)
String com 4(quatro) dígitos que indica quantas linhas o sinal de pouco papel deve ser Atrasado, o Valor 0000 indica que o sinal fica desabilitado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- O valor configurado irá funcionar como um adiador do retorno de pouco papel. Por exemplo se você estiver com o valor de 0450 linhas, isso quer dizer que aproximadamente 0450 linhas após a bobina ter passado pelo sensor é que ela passará a devolver o status de pouco papel.
- Este método não é compatível com a impressora FS2000 e impressoras térmicas com MFD.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Numero_Linhas As String

Str_Numero_Linhas = InputBox("Entre com o número de linhas para o aviso de Pouco Papel:", "Daruma Framework", "0450")
Int_Retorno = Daruma_FI_CfgLimiarNearEnd(Str_Numero_Linhas)

· Exemplo em Delphi 7.0:
var
Str_Numero_Linhas: String;
begin
Str_Numero_Linhas := InputBox('Entre com o número de linhas para o aviso de Pouco Papel:', 'Daruma Framework', '0450');
if Str_Numero_Linhas:= '' Then
Close;

Int_Retorno := Daruma_FI_CfgLimiarNearEnd(Str_Numero_Linhas);


Daruma_FI_CfgPermMensPromCNF(Índice 410)

Método: Daruma_FI_CfgPermMensPromoCNF [Índice 410]
Previous Top Next

· Definição do Método:
Permite o Uso da Mensagem Promocional no Comprovante Não Fiscal Não Vinculado.

· Parâmetros do Método: (1 Parâmetro)
0 - Não exibe a Mensagem Promocional.
1 - Exide a Mensagem Promocional.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- O Default da dll irá setar pra 0 este recurso. Para habilitá-lo, você deverá chamar este método no start-up de sua aplicação.
- Este método não é compatível com a impressora FS2000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgPermMensPromCNF("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_CfgPermMensPromCNF('1');


Regra de Configuração do Registry

Regra de Configuração do Registry - Daruma Registry

Métodos de Configuração do Registry, Regra Geral:
Todas os Métodos Referentes a Configuração do Registry da Impressora sempre recebem como parâmetro uma String, que pode ser (0 zero, indicando desligado) ou (1 um, indicando Ligado) ou em algumas Método haverá a necessidade que você passe uma String como por Exemplo Porta que pode ser "Default" ou a Porta Serial Desejada exemplo COM1.

Todos os Métodos sempre devolvem um inteiro:
1 - OK
-4 - Não OK, Chave não Encontrada.

Se em algum Método de configuração do Registry da dll você passar a variável com valor NULO ou VAZIA a dll se encarrega de gravar no Registry o Valor Default correspondente a Chave que você está trabalhando.

Estes São os Valores DEFAULT do Registry:

[HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA]
[HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF]
Porta= DEFAULT
Path= C:\
Status= 0
StatusFuncao= 0
Retorno= 0
ControlePorta= 1
ModoGaveta= 0
ConfigRede= 0
Log= 0
NomeLog= C:\Daruma32.log
Separador= ,
SeparaMsgPromo= 1
Vende1Linha = 1
XAutomatica = 0
ZAutomatica = 1
AbrirDiaFiscal =1
ErroExtendidoOk=000
IgnorarPoucoPapel=1


Valores do Registry para o ECF

· Definições:
Estas são as Chaves e os Valores Adotados para a Configuração do Registry para se trabalhar com o ECF:

[HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF]
Porta= DEFAULT
Path= C:\
Status= 0
StatusFuncao= 0
Retorno= 0
ControlePorta= 1
ModoGaveta= 0
ConfigRede= 0
Log= 0
NomeLog= C:\Daruma32.log
Separador= ,
SeparaMsgPromo= 1
Vende1Linha= 1
XAutomatica= 0
ZAutomatica = 1
AbrirDiaFiscal=1
ErroExtendidoOk=000
IgnorarPoucoPapel=1
AplMensagem1= DARUMA32 FrameWork Mensagem Não Programada
AplMensagem2= DARUMA32 FrameWork Mensagem Não Programada
TipoUltimoDocumento= Nesta Chave fica armazenado a sigla com o tipo do último documento que foi emitido no ECF
Velocidade=9600
TerminalServer=0
PortaServidor=1002
Tarantella=0
TempoEsperaCheque=5
MFDTamMinDescProd=15
ThreadNoStartUp=1
CupomAdicionaDll=1
CupomAdicionaDllConfig=11111111111111111

· CHAVE:
DARUMA\ECF - Nesta Chave Você encontrará as configurações para que a dll trabalhe com nosso ECF.

VALORES:

Observação Geral: Caso queira alterar o valor de qualquer Chave da Pasta Daruma no Registry, então pode-se usar de forma genérica o método Daruma_Registry_AlteraRegistry (Índice 17), bastando passa o nome da Chave a ser alterada e o seu novo valor.

Porta: Indica a porta serial de comunicação entre a impressora e o micro. Se o valor for igual a "DEFAULT", a DLL buscará a porta onde estiver a impressora, automaticamente. Caso você esteja trabalhando com uma Impressora de outro fabricante então este flag deverá estar com DS300 setado como produto;

Path: Configura o diretório onde será criado o arquivo "STATUS.TXT", "RETORNO.TXT" e "Daruma32.LOG". O path default é o diretório raiz na unidade C:\;

Separador: Permite que você configure o caráctere separador dos dados que serão retornados, como formas de Pagamento, etc.. permitindo maior flexibilidade do software de frente de caixa obter os dados sem que tenha que obedecer uma formatação especifica da dll, com tamanhos fixos pois ao configurar o separador você programara a busca e separação dos dados pelo separador e não mais pelo tamanho fixo definido pela dll. O Default é "," (Virgula);

Status: Se essa opção estiver com o valor 1, os Métodos da DLL irão gravar o status da impressora (ACK, ST1 e ST2) no arquivo chamado "STATUS.TXT". O valor default dessa opção é 0, com o status da impressora sendo retornado através da Método Daruma_FI_RetornoImpressora;

Retorno: Se essa opção estiver com o valor 1, os Métodos de Informações da dll como Daruma_FI_NumeroCupom( Str_NumeroCupom) da DLL irão gravar o retorno no arquivo chamado "RETORNO.TXT ". O valor default dessa opção é 0, com as informações sendo retornadas através das variáveis passadas como parâmetro nos Métodos;

StatusFuncao: Esta chave configura a DLL para retornar o valor –27 nas Método, quando o status da impressora (ACK, ST1, ST2) for diferente de 006,000,000. Com essa configuração a Método Daruma_FI_RetornoImpressora poderá ser executada somente quando o retorno for –27. O valor um "1" habilita e o valor zero "0" desabilita essa configuração. O valor default é zero "0";

ControlePorta: Se estiver com o valor 0, a abertura e o fechamento da porta serão controlados pelo programador. Se estiver com o valor 1, serão controlados pela DLL. A DLL irá abrir e fechar a porta automaticamente em cada Método. É recomendável que o controle da porta seja realizado pela DLL;

ModoGaveta: Em alguns modelos de gaveta, este sinal poderá vir invertido, ou seja, o sinal que corresponde a "gaveta aberta", pode ser o sinal para "gaveta fechada". Neste caso habilite esta chave, substituindo o valor 0 (zero) para (1) um. Veja a Método Daruma_FI_VerificaEstadoGaveta para maiores informações;

Log: Se essa opção estiver com o valor 1, a DLL irá criar um arquivo de log chamado "Daruma32.LOG" com todas os Métodos executados, seus parâmetros e valores de retorno;

NomeLog: Nome do Arquivo de Log que você deseja Criar, possibilitando que o Arquivo de Log seja Personalizado de acordo com seu aplicativo. Este arquivo será gravado no path indicado no value Path e somente será válido que o value Log for igual a 1(um);

SeparaMsgPromo: Por questões de layout do cupom, adicionamos antes da mensagem promocional uma linha separatoria deixando mais clara o que é mensagem promoicional e o que é Total do Cupom, caso você necessite utilizar o buffer de 620 bytes da mensagem promocional e não deseja que apareça esta linha separatória, configure esta chave para "0" (zero), seu Default é "1"(um);

Vende1Linha: Permite que a Método Daruma_FI_VendeItem tente imprimir a venda item em uma linha apenas, com isso você terá uma econômia no cupom fiscal de até 40%, ou seja, com esta chave a 1(um) esta "inteligência" é ativada, caso contrário todos os itens serão vendidos em duas linhas. O Valor default desta Chave é 1(um);

XAutomatica: A Dll irá efetuar uma LeituraX automaticamente ao perceber que existe esta necessidade, por quê? porque no ECF Daruma existe o conceito da Abertura de Dia, ou seja, o Dia na Impressora é aberto com uma LeituraX, e ao enviar o primeiro método que gera impressão para o ECF, e o ECF tiver uma ReduçãoZ Pendente e esta chave estiver a 1(um) então a dll irá efetuar a LeituraX automaticamente. Importante! Nas Impressoras Térmicas MFD´s FS600 eFS2000T a abertura do dia não acontece por meio de impressão de uma LeituraX e sim por qualquer dopcumentos ex.: sangria suprimento ou até mesmo um cupom fiscal;

ZAutomatica: O Mesmo que acontece com a ReduçãoZ, a Impressora Daruma trabalha com o Conceito de não permitir que a ReduçãoZ aconteça automaticamente, por isso você deve "setar" esta chave para 1(um) caso você deseje que a ReduçãoZ passe a ser executada de forma automatica;

AbrirDiaFiscal: A Impressora Daruma, necessita que seja efetuado uma LeituraX para a emissão do primeiro Cupom Fiscal, por isso foi criado esta chave para que você possa configurar o que deseja, se a dll faz a LeituraX automaticamente ou não, você poderá escolher a opção desejada apenas colocando 0(nao) ou 1(um) nesta chave. Com a Chave a 1(um) ao solicitar uma Venda, através das Método Daruma_FI_AbreCupom ou Daruma_FI_VendeItem. Importante! Nas Impressoras Térmicas MFD´s FS600 eFS2000T a abertura do dia não acontece por meio de impressão de uma LeituraX e sim por qualquer dopcumentos ex.: sangria suprimento ou até mesmo um cupom fiscal;

ErroExtendidoOk: A Método Daruma_FI_RetornaErroExtendido, devolve para o aplicativo o erro sinalizado pelo ECF, com esta chave você poderá configurar qual o valor que você deseja retornar caso o ECF retorne OK, o default desta chave é "000" para Tudo OK com o ECF na chamada da Método Daruma_FI_RetornaErroExtendido;

IgnorarPoucoPapel: Esta Chave tem por Default o Valor 1(um) ou seja, não trata o pouco papel, assim sendo quando o ECF indicar Pouco Papel a dll não ira retonar o -27 (caso seja programado para isso no Método. Daruma_Registry_StatusFuncao) e tampouco retornará 64 no Byte de Status 2, conforme tabela de decodificação de Erro;

AplMensagem1: Esta Chave armazena uma mensagem com a identificação do aplicativo exemplo:Aplicativos Comerciais versão 1.00. Ela esta presente no final de todos os documentos emitidos nas MFD (impressoras térmicas), e é uma exigência do fisco. Caso você ainda não tenha programado esta mensagem podera fazer isso através do método Daruma_Registry_AplMensagem1(Índice 36);

AplMensagem2: Esta Chave armazena uma mensagem com a identificação do aplicativo exemplo:Aplicativos Comerciais versão 1.00. Ela esta presente no final de todos os documentos emitidos nas MFD (impressoras térmicas), e é uma exigência do fisco. Caso você ainda não tenha programado esta mensagem podera fazer isso através do método Daruma_Registry_AplMensagem2(Índice 37);

TipoUltimoDocumento: Sempre que houver a secessidade de você saber qual o tipo do último documento emitido, bastara ler o conteudo desta Chave com a função Daruma_Registry_RetornaValor(Índice 19), alguns exemplo de siglas: CNV(Comprovante Não Vinculado), LXX(LeituraX), CPF(Cupom Fiscal);

Velocidade: Esta Chave visa permitir ao aplicativo poder trabalhar com uma velocidade maior ou menor na porta serial somente nas impressoras MFD´s. A velocidade default na FS600 é 9600, caso queira alterar para 38400 "velocidade máxima", basta executar o método Daruma_Registry_Velocidade(Índice 28);

TerminalServer: Esta Chave tem por default valor 0(zero), caso seja alterado para 1, etão a Dll (server), passará a não mais escrever na porta local e sim no EndereçoIP, que inviou o método. Importante o valor dessa Chave deverá permanecer setedo sempre em 0(zero) e somente se você estiver em uma máquina com sistema operacional windows versão server e de fato for trabalhar com comunicação via Terminal Serever, ai sim você deverá alterar o valor da mesma;

PortaServidor: Caso vecê esteja comunicando com o ECF via Terminal Server, então poderá customizar a porta de comunicação que por default é 1002;

TempoEsperaCheque: Nesta é Configurado o tempo que a função Daruma_FI2000_ImprimirCheque(Índice 5016), irá aguardar pelo posicionamento do cheque na hora da impressão.

Tarantella: Esta Chave deverá ser setada em concomitância com a Chave Terminal Server. Porém ao invés de trabalhar por endereçamento de IP, você trabalha com mapeamento de unidade e com troca de arquivos. Nesta modalidade, o Observer necessariamente ira aguardar por comandos, que serão escritos pela dll server, na unidade mapeada no servidor.

MFDTamMinDescProd: Nas MFD´s FS600 e FS2110T. É possível determinar o tamanho mínimo que se quer obter na descrição. Quando é definido que a venda será feita em 1Linha, então também há uma tolerância em relação ao tamanho a ser mantido na descrição, se você definir que irá trabalhar com uma descrição de no mínimo 15 caracteres, então a Dll para manter a descrição com no mínimo 15 caracteres e cortar os caracteres que excederem o número previamente definido nesta Chave. Importante: Nas MFD´s FS600 e FS2100T para um código de 13 caracteres o tamanho máximo que poderá ter uma descrição, visando economia de bobina e por isso manter a venda em uma linha deverá ser de até 20 caracteres e para um código de 1 caractere a descrição poderá ter até 32 caracteres;

ThreadNoStartUp: Esta chave setada em 1(um) tem por objetivo libarar o processo para o aplicativo durante o StartUp da Dll. Caso seja setada pra 0(zero) então quando o aplicativo for startado o processo será bloqueado pela Dll e devolvido somente após o StartUp da Dll.

NumeroSerioNaoFormatado: Esta chave setada em 1(um) tem por objetivo devolver o número do série da impressora sem a formatação "zeros à esquerda", caso esteja setada para 0 (zero) então quando solicitdado o número de série, será devolvido com a formatação "zeros à esquerda".

LinhasTEF: O númeto de linhas que estiver setado nesta chave, será o número de linhas impressas por buffer no método Daruma_TEF_ImprimirResposta, o valor default para esta chave é 2.

MFDLeituraMFCompleta: Esta chave setada em 1(um) tem por objetivo permitir que a leitura da memória fiscal nos ECF's FS600 e FS2100T, ocorra de forma completa, do contrário será simplificada.

CupomAdicionaDll: Esta chave setada em 1(um) tem por objetivo fazer a impressão do cupom adicional. Obs.: Este cupom adicional é criado pela dll, sendo assim se você faz comunicação direta, infelizmente não terá como imprimí-lo.

CupomAdicionaDllConfig: Esta chave possui um único parâmetro, que é composto de 10(dez)bytes, sendo que o décimo esta reservado para uso futuro, para ver os valores de configuração clique no link a seguir:Daruma_Registry_CupomAdicionalDllConfig(Índice 57)

MaxFechamentoAutomatico: Este método permite que seja fixado um valor mínimo, visando suprir o saldo devedor em casos onde pequenas diferênças no fechamento do cupom, como por exemplo 0,01 centavo.


Daruma_Registry_AlterarRegistry(Indice 83)

Método: Daruma_Registry_AlterarRegistry(Indice 83) [Índice 83]
Previous Top Next

· Definição do Método:
Permite a Alteração das chaves do registry, ou seja, dispensando a utilização de um método específico.

· Parâmetros da Método: (3 Parâmetros)
1. String com o nome do Produto que deseja alterar.
2. String com o nome da Chave que deseja alterar.
3. String com o Valor da Chave que deseja alterar.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observação:
- Este método não deverá ser utilizado, quando se tratar de alterar a velocidade de comunicação com a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome_do_Produto As String
Dim Str_Nome_da_Chave As String
Dim Str_Valor_da_Chave As String

Str_Nome_do_Produto = InputBox("Entre com o nome do Produto que você deseja Alterar:", "Daruma Framework", "ECF")
Str_Nome_da_Chave = InputBox("Entre com o nome da Chave que você deseja Alterar:", "Daruma Framework", "Log")
Str_Valor_da_Chave = InputBox("Entre com um novo Valor para Chave:", "Daruma Framework", "1")
If Str_Nome_do_Produto = "" Or Str_Nome_da_Chave = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_AlteraRegistry(Str_Nome_da_Chave, Str_Valor_da_Chave)

· Exemplo em Delphi 7.0:
var
Str_Nome_do_Produto: String;
Str_Nome_da_Chave: String;
Str_Valor_da_Chave: String;
begin
Str_Nome_do_Produto := InputBox('Daruma Framework', 'Entre com o Nome do Produto:', 'ECF');
Str_Chave := InputBox('Entre com o Nome da Chave para Saber o seu Valor:', 'Daruma Framework', 'Log');
Str_Chave_Valor := InputBox('Entre com o Valor da Chave:', 'Daruma Framework', '1');
if (Str_Nome_do_Produto = '')or(Str_Chave = '') Then
Exit;

Int_Retorno := Daruma_Registry_AlterarRegistry(Str_Nome_do_Produto, Str_Chave, Str_Chave_Valor);
Application.MessageBox(pchar(Str_Nome_do_Produto + ' \ ' + Str_Chave + ' \ ' + Str_Chave_Valor), 'Daruma Framework', mb_ok + 32);
Daruma_Analisa_Retorno();

end;


Daruma_Registry_AlteraRegistry (Índice 17)

Método: Daruma_Registry_AlteraRegistry [Índice 17]
Previous Top Next

· Definição do Método:
Permite a Alteração das chaves do registry, ou seja, dispensando a utilização de um método específico.

· Parâmetros da Método: (2 Parâmetros)
1. String com o nome da Chave que deseja Alterar.
2. String com o Valor da Chave que deseja Alterar.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observação:
- Este método não deverá ser utilizado, quando se tratar de alterar a velocidade de comunicação com a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome_da_Chave As String
Dim Str_Valor_da_Chave As String

Str_Nome_da_Chave = InputBox("Entre com o nome da Chave que você deseja Alterar:", "Daruma Framework", "Porta")
Str_Valor_da_Chave = InputBox("Entre com um novo Valor para Chave:", "Daruma Framework", "Default")
If Str_Nome_da_Chave = "" Or Str_Valor_da_Chave = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_AlteraRegistry(Str_Nome_da_Chave, Str_Valor_da_Chave)

· Exemplo em Delphi 7.0:
var
Str_Nome_da_Chave:String;
Str_Valor_da_Chave:String;
begin
Str_Nome_da_Chave:= InputBox('Entre com o nome da Chave que você deseja Alterar:', 'Daruma Framework', 'Porta');
Str_Valor_da_Chave:= InputBox('Entre com um novo Valor para Chave:", 'Daruma Framework", 'Default');
If Str_Nome_da_Chave:= "" Or Str_Valor_da_Chave = "" Then
Close;
End If

Int_Retorno := Daruma_Registry_AlteraRegistry(Str_Nome_da_Chave, Str_Valor_da_Chave);


Daruma_Registry_RetornaValor(Índice 19)

Método: Daruma_Registry_RetornaValor [Índice 19]
Previous Top Next

· Definição do Método:
Retorna o Valor de uma Chave do Registry da DARUMA32.dll.

· Parâmetros da Método: (1 Parâmetro)
String com o Nome do produto que podem ser:
ECF - Refere-se a Impressora Fiscal.
DUAL - Refere-se a Impressora Não Fiscal, Mini-impressora.
ECFR - Refere-se a Impressora Fiscal para Restaurantes.
ECFB - Refere-se a Impressora Fiscal para Bilhete de Passagem Rodoviária
TA1000 - Refere-se ao MicroTerminal TA1000

1. String com o Nome da Chave do produto
2. String por Referência com 50 espaços alocados para que possa retornar na variável o valor da Chave que você deseja.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome_do_Produto As String
Dim Str_Chave As String
Dim Str_Retorno As String

Str_Retorno = Space(50)
Str_Nome_do_Produto = InputBox("Entre com o Nome do Produto:", "Daruma Framework", "ECF")
Str_Chave = InputBox("Entre com o Nome da Chave para Saber o seu Valor:", "Daruma Framework", "Log")

If Str_Nome_do_Produto = "" Or Str_Chave = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_RetornaValor(Str_Nome_do_Produto, Str_Chave, Str_Retorno)
MsgBox Str_Nome_do_Produto + " \ " + Str_Chave + " = " + Str_Retorno, vbInformation, "Daruma Framwork"

· Exemplo em Delphi 7.0:
var
Str_Nome_do_Produto: String;
Str_Chave: String;
Str_Retorno: String;
begin
Str_Retorno := StringOFChar(#0,50);
Str_Nome_do_Produto := InputBox('Entre com o Nome do Produto:', 'Daruma Framework', 'ECF');
Str_Chave := InputBox('Entre com o Nome da Chave para Saber o seu Valor:', 'Daruma Framework', 'Log');
if (Str_Nome_do_Produto = '')or(Str_Chave = '') Then
Exit;

Int_Retorno := Daruma_Registry_RetornaValor(Str_Nome_do_Produto, Str_Chave, Str_Retorno);
Application.MessageBox(pchar(Str_Nome_do_Produto + ' \ ' + Str_Chave + ' = ' + Str_Retorno), 'Daruma Framework', mb_ok + 32);


Daruma_Registry_Porta(Índice 1)

Método: Daruma_Registry_Porta [Índice 1]
Previous Top Next

· Definição do Método:
Este Método permite Configurar a porta serial da impressora, ou simplesmente indicar para a dll que localize para você onde a impressora está conectada, a dll buscará da COM1 até a COM15.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações: (1 Parâmetro)
Valor default da Chave = "DEFAULT".

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Porta As String

Str_Porta = InputBox("Entre com o Nome da Porta onde está a Impressora:", "Daruma Framework", "Default")
If Str_Porta = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_Porta(Str_Porta)

· Exemplo em Delphi 7.0:
var
Str_Porta: String;
begin
Str_Porta := InputBox('Entre com o nome da Porta onde está a Impressora:', 'Daruma Framework', 'Default');
if Str_Porta = '' Then
Exit;

Int_Int_Retorno := Daruma_Registry_Porta( pchar(Str_Porta) );


Daruma_Registry_Path(Índice 2)

Método: Daruma_Registry_Path [Índice 2]
Previous Top Next

· Definição do Método:
Configura o Path onde será criado os arquivos de retorno, resposta, relatorios Tipo 60 e Log da dll. Quando a dll tiver como dispositivo de "OutPut" um arquivo texto este será criado no path em que está configurado nesta chave.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações: (1 Parâmetro)
Valor default da Chave = "C:\".

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Path As String

Str_Path = InputBox("Entre com o Path:", "Daruma Framework", "C:\")

If Str_Path = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_Path(Str_Path)

· Exemplo em Delphi 7.0:
var
Str_Path: String;
begin
Str_Path := InputBox('Entre com o Path:', 'Daruma Framework', 'C:\');
if Str_Path = '' Then
Exit;

Int_Retorno := Daruma_Registry_Path( pchar(Str_Path) );


Daruma_Registry_Status(Índice 3)

Método: Daruma_Registry_Status [Índice 3]
Previous Top Next

· Definição do Método:
Configura se o status da Impressora será retornado na Variável (por referência) ou em arquivo Texto (STATUS.txt).

· Parâmetros do Método:
0 - Não Retornará em Arquivo Texto.
1 - Retorna em Arquivo Texto.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações: (1 Parâmetro)
Valor default da Chave = "0".

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_Status("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_Status('1')


Daruma_Registry_StatusFuncao(Índice 4)

Método: Daruma_Registry_StatusFuncao [Índice 4]
Previous Top Next

· Definição do Método:
Este método possibilita a você um tratameto dos retornos (erros)de maneira simplificada. Por exemplo ao invéz de você ler o inteiro que é retornado em cada método e também o ACK, ST1 e ST2, você le-rá apenas o iRetorno e sómente se o iRetorno for diferente de 1(um) ai sim você terá de ler os demais bytes com o detalhe que para ler os demais bytes você usará o método:Daruma_FI_RetornoImpressora(Índice 1402).

· Parâmetros do Método: (1 Parâmetro)
0 - A Método terá sua tabela de Retorno normal.
1 - A Método retornará -27 caso o ECF sinalize valores de status diferentes de OK.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- Caso o Método envie o método para o ECF e seja detectado um Erro na execução do método sinalizado pelo ECF ou um 'Warning' (Sinalização de Erro) sinalizado pelo ECF (Pouco Papel, por Exemplo), isso será sinalizado no retorno da propria Método, com o valor de -27
- Valor default da Chave = "0".

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_StatusFuncao("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_StatusFuncao('1');


Daruma_Registry_Retorno(Índice 5)

Método: Daruma_Registry_Retorno [Índice 5]
Previous Top Next

· Definição do Método:
Permite configurar como será o retorno de informações da impressora, por Exemplos, número de série do ECF poderá vir na Variável por Referência ou em arquivo texto, RETORNO.TXT.

· Parâmetros do Método: (1 Parâmetro)
0 - Retorna as informações na Variável.
1 - Não retorna as informações na Variável passada e sim no arquivo Texto RETORNO.TXT.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
Valor default da Chave = "0".

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_Retorno("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_Retorno('1');


Daruma_Registry_ControlePorta(Índice 6)

Método: Daruma_Registry_ControlePorta [Índice 6]
Previous Top Next

· Definição do Método:
Permite configurar como será realizado o controle da Porta Serial, pelo Aplicativo ou pela Dll é aconselhado que seja sempre pela dll pois isso possibilita trabalhar sem problemas em tempo de DEBUG do software.

· Parâmetros do Método: (1 Parâmetro)
1 - Todo este controle fica a cargo da dll de comunicação Daruma32.dll.
0 - O Aplicativo Controla a porta Serial e deve chamar as Método de Abertura e Fechamento de porta.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
Valor default da Chave = "1".

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_ControlePorta("1")

· Exemplo em Delphi 7.0:
Int__Retorno := Daruma_Registry_ControlePorta('1');


Daruma_Registry_ModoGaveta(Índice 7)

Método: Daruma_Registry_ModoGaveta [Índice 7]
Previous Top Next

· Definição do Método:
Permite inverter o sinal da Gaveta com a Lógica Negativa, se a gaveta estiver devolvendo o sinal de Aberta mesmo que ela estaja fechada, inverta o valor desta chave para obter o resultado correto, isso foi implementado devido o fato de muitas gavetas estarem saindo com problemas no sinal lógico.

· Parâmetros do Método: (1 Parâmetro)
1 - Lógica Invertida.
0 - Lógica normal.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
Valor default da Chave = "0".
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_ModoGaveta("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_ModoGaveta('1');


Daruma_Registry_Log(Índice 9)

Método: Daruma_Registry_Log [Índice 9]
Previous Top Next

· Definição do Método:
Configura se deseja que a dll faça log de todas as ações, parâmetros e retornos. Será criado o Arquivo Daruma32.log no Path que esta configurado como valor da Chave Path.

· Parâmetros do Método: (1 Parâmetro)
0 - Não Cria o Log.
1 - Cria Log com todas as ações.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- Valor Default da Chave = "0".
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_Log("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_Log('1');


Daruma_Registry_NomeLog(Índice 10)

Método: Daruma_Registry_NomeLog [Índice 10]
Previous Top Next

· Definição do Método:
Configurar o Nome do Arquivo Log que será Criado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações: (1 Parâmetro)
- Valor default da Chave = "Daruma32.Log".

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome_Log As String

Str_Nome_Log = InputBox("Entre com um Nome para o Log:", "Daruma Framework", "Daruma32.log")

If Str_Nome_Log = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_NomeLog(Str_Nome_Log)

· Exemplo em Delphi 7.0:
var
Str_Nome_Log: String;
begin
Str_Nome_Log := InputBox('Entre com um Nome para o Log:', 'Daruma Framework', 'Daruma32.log');
if Str_Nome_Log = '' Then
Exit;

Int_Retorno := Daruma_Registry_NomeLog( pchar(Str_Nome_Log) );


Daruma_Registry_Separador(Índice 11)

Método: Daruma_Registry_Separador [Índice 11]
Previous Top Next

· Definição do Método:
Indica qual será o caráctere de Separação que você utilizará para o retorno de dados que seja necessário a sepraração por este caráctere facilitando que o software possa utilizar e separar a informação, por Exemplos: Retorno de Formas de Pagamento irá retornar "Dinheiro, Cheque, Cartao" com estes dados separado por Vírgula você terá uma maior facilidade de separar e utilizar os dados sem a necessidade de estar amarrado a um tamanho fixo dos dados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações: (1 Parâmetro)
O Valor Default é = "," ( Vírgula )

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Separador As String

Str_Separador = InputBox("Entre com o Tipo de Separador:", "Daruma Framework", ",")

If Str_Separador = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_Separador(Str_Separador)

· Exemplo em Delphi 7.0:
Str_Separador: String;
begin
Str_Separador := InputBox('Entre com o Tipo de Separador:', 'Daruma Framework', ',');
if Str_Separador = '' Then
Exit;

Int_Retorno := Daruma_Registry_Separador( pchar(Str_Separador) );


Daruma_Registry_SeparaMsgPromo(Índice 12)

Método: Daruma_Registry_SeparaMsgPromo [Índice 12]
Previous Top Next

· Definição do Método:
Indica se você deseja que antes da mensagem promocional seja traçado uma linha separadora, para deixar mais claro no cupom fiscal o que é mensagem promocional e o que é subtotal.

· Parâmetros do Método: (1 Parâmetro)
0 - Não inclui a linha Separadora na Mensagem Promocional.
1 - Inclui a linha Separadora na Mensagem Promocional.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
O Valor Default desta chave é 1(um).
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_SeparaMsgPromo("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_SeparaMsgPromo('1');


Daruma_Registry_Vende1Linha(Índice 13)

Método: Daruma_Registry_Vende1Linha [Índice 13]
Previous Top Next

· Definição do Método:
Permite que a Método Daruma_FI_VendeItem tente imprimir a venda do item em uma linha apenas, com isso você terá uma economia no cupom fiscal de até 40%, ou seja, com esta chave a 1(um) esta "inteligência" é ativada, caso contrario todos os itens serão vendidos em duas linhas. O Valor default desta Chave é 1(um).

· Parâmetros da Método: (1 Parâmetro)
0 - Não tentar Imprimir a venda do Item em uma Linha, neste caso sempre será em duas linhas.
1 - Irá tentar vender e imprimir a venda do item em uma linha, sempre que possivel.

· Observações:
O Valor Default desta chave é 1(um).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_VendeItemUmaLinha("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_VendeItemUmaLinha('1');


Daruma_Registry_XAutomatica(Índice 14)

Método: Daruma_Registry_XAutomatica [Índice 14]
Previous Top Next

· Definição do Método:
A Dll irá efetuar uma LeituraX automaticamente ao perceber que existe esta necessidade, por quê? porque no ECF Daruma existe o conceito da Abertura de Dia, ou seja, o Dia na Impressora é aberto com uma LeituraX, e ao enviar o primeiro método para o ECF, e o ECF tiver uma ReduçãoZ Pendente e está chave estiver a 1(um) então a dll irá efetuar a X automaticamente.

· Parâmetros da Método: (1 Parâmetro)
0 - Não efetua a Leitura X Automaticamente, deixa isso a cargo da aplicação.
1 - Irá efetuar a Leitura X Automaticamente ao perceber que existe uma LeituraX Pendente para Abrir o Dia.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- O Valor Default desta chave é 1(um).
- Nas Impressoras Térmicas MFD´s FS600 e FS2000T o dia não é aberto à partir de uma LeituraX e sim à partir do primeiro documento ser emitido seja ele fiscal ou não.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_XAutomatica("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_XAutomatica('1');


Daruma_Registry_ZAutomatica(Índice 15)

Método: Daruma_Registry_ZAutomatica [Índice 15]
Previous Top Next

· Definição do Método:
Emite a ReduçãoZ automaticamente quando existe uma pendência acumulada.

· Parâmetros da Método: (1 Parâmetro)
0 - Não efetua a Redução Z Automaticamente, deixa isso a cargo da aplicação.
1 - Irá efetuar a Redução Z Automaticamente ao perceber que existe uma ReduçãoZ Pendente para Abrir o Dia.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- O Valor Default desta chave é 1(UM).
Atenção! que Este Método anula completamente os valores da dll de ZAutomatica e programa manualmente para passar os Valores a 1(um) para a dll Fazer Automaticamente ou 0(zero) para anular o comando.

· Recomendações:
A Impressora Daruma trabalha com o Conceito de não permitir que a Redução Z aconteça automaticamente, por isso você deve configurar esta chave para 0(Zero) caso você deseje que a Redução Z passe a ser executada de forma manual.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_ZAutomatica("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_ZAutomatica('1');


Daruma_Registry_TerminalServer(Índice 21)

Método: Daruma_Registry_TerminalServer [Índice 21]
Previous Top Next

· Definição do Método:
Esta Chave indica para a Dll que deverá trabalhar através de Endereço IP e não através de Porta Serial.

Parâmetros da Método: (1 Parâmetro)
0 - Trabalha com Porta Serial Local.
1 - Trabalha com Terminal Server - Através do Endereço IP do Servidor.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- O Valor Default desta chave é 0(Zero).
- Esta Chave só deve ser alterada quando utilizada a DLL Versão SERVER, que deverá ser Copiada no Servidor. Para Mais informação em como utilizar o ECF com Terminal Sever verifique o topido específico neste Help.
- Caso esta Chave esteja configurada para 1(um) e você não estiver utilizando-se da Arquitetura Terminal Server, então a - Comunicação não poderá ser efetuada com o ECF devolvendo (ZERO) mas Método que você chamar, ou seja, Erro de Comunicação.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_TerminalServer("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_TerminalServer('1');


Daruma_Registry_AbrirDiaFiscal(Índice 23)

Método: Daruma_Registry_AbrirDiaFiscal [Índice 23]
Previous Top Next

· Definição do Método:
A Impressora Daruma, necessita que seja efetuado uma LeituraX para a emissão do primeiro Cupom Fiscal, por isso foi criada esta chave, para que você possa configurar o que deseja, se a dll faz a LeituraX automaticamente ou não, você poderá escolher a opção desejada apenas colocando 0(não) ou 1(um) nesta chave. Com a Chave a 1(um) ao solicitar uma Venda, através das Método Daruma_FI_AbreCupom ou Daruma_FI_VendeItem.

· Parâmetros da Método: (1 Parâmetro)
0 - Não efetua a LeituraX Automaticamente, deixa isso a cargo da aplicação.
1 - Irá efetuar a LeituraX Automaticamente ao perceber que existe uma LeituraX Pendente para Abrir o Dia.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- O Valor Default desta chave é 1(um).
- Nas Impressoras Térmicas MFD´s FS600 e FS2100T o dia não é aberto à partir de uma LeituraX e sim à partir do primeiro documento ser emitido seja ele fiscal ou não.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_AbrirDiaFiscal("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_AbrirDiaFiscal('1');


Daruma_Registry_IgnorarPoucoPapel(Índice 24)

Método: Daruma_Registry_IgnorarPoucoPapel [Índice 24]
Previous Top Next

· Definição do Método:
Esta Chave tem por Default o Valor 1(um) ou seja, não trata o pouco papel, sendo assim quando o ECF indicar Pouco Papel a dll nao ira retonar o -27 (caso seja programado para isso na Funcao Daruma_Registry_StatusFuncao) e tampouco retornará 64 no Byte de Status 2, conforme tabela de decodificação de Erro.

· Parâmetros da Método: (1 Parâmetro)
0 - Passa a considerar o Sinal de Pouco Papel, devolvendo -27 na Funcao ou 64 no Bit de Status.
1 - Passa a Não considerar o sinal de pouco papel, devolvendo sempre 1(um) na Método quando o ECF sinalizar POUCO PAPEL.

· Observações:
- O Valor Default desta chave é 1(UM).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

1: OK, Sucesso ao Configurar o Registry.
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_IgnorarPoucoPapel("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_IgnorarPoucoPapel('1');


Daruma_Registry_ImprimeRegistry(Índice 18)

Método: Daruma_Registry_ImprimeRegistry [Índice 18]
Previous Top Next

· Definição do Método:
Imprime a Configuração Atual do Registry, passe o produto como Referência que será impressor no Relatório Gerencial as configurações do Registry do produto passado como parâmetro..

· Parâmetros da Método: (1 Parâmetro)
String com o Nome do Produto que podem ser as seguintes Strings:
ECF - Refere-se a Impressora Fiscal.
DUAL - Refere-se a Impressora Não Fiscal, Miniimpressora.
ECFR - Refere-se a Impressora Fiscal para Restaurantes.
ECFB - Refere-se a Impressora Fiscal para Bilhete de Passagem Rodoviaria
TA1000 - Refere-se ao MicroTerminal TA1000

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Produto As String
Str_Produto = InputBox("Entre com o nome do Produto a ser impresso:", "Daruma Framework", "ECF")
If Str_Produto = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_ImprimeRegistry(Str_Produto)

· Exemplo em Delphi 7.0:
var
Str_Produto: String;
begin
Str_Produto := InputBox('Entre com o nome do Produto a ser impresso:', 'Daruma Framework', 'ECF' );
if Str_Produto = '' Then
Exit;

Int_Retorno := Daruma_Registry_ImprimeRegistry( pchar(Str_Produto) );


Daruma_Registry_Default(Índice 20)

Método: Daruma_Registry_Default [Índice 20]
Previous Top Next

· Definição do Método:
Zera as Configurações realizadas no Registry deixando o Registry com seus Valores Default.

· Parâmetros da Método:
Não Há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_Default()

· Exemplo em Delphi 7.0:
int_Retorno := Daruma_Registry_Default();


Daruma_Registry_ErroExtendidoOk(Índice 22)

Método: Daruma_Registry_ErroExtendidoOk [Índice 22]
Previous Top Next

· Definição do Método:
O Método Daruma_FI_RetornaErroExtendido, devolve para o aplicativo o erro sinalizado pelo ECF, com esta chave você poderá configurar qual o valor que você deseja retornar caso o ECF retorne OK, o default desta chave é "000" para Tudo OK com o ECF na chamada dO Método Daruma_FI_RetornaErroExtendido.

· Parâmetros do Método: (1 Parâmetro)
Código com três dígitos que você deseja que seja retornado, por Exemplo, se você deseja que seja retornando "000" quando o ECF retornar OK, você deve passar "000" no parâmetro deste Método.

· Observações:
- O Valor Default desta chave é "000".
- O erro extendido é apenas um complemento ao ST1 e ST2. Portanto mesmo que você esteja utilizando este método ainda assim deverá ter em sua rotina o método Daruma_FI_RetornoImpressora.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Valor_do_ErroExt As String

Str_Valor_do_ErroExt = InputBox("Entre com um Valor para o Erro Extendido:", "Daruma Framework", "000")

If Str_Valor_do_ErroExt = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_ErroExtendidoOk(Str_Valor_do_ErroExt)

· Exemplo em Delphi 7.0:
var
Str_Valor_do_ErroExt: String;
begin
Str_Valor_do_ErroExt := InputBox('Entre com um Valor para o Erro Extendido:', 'Daruma Framework', '000');
if Str_Valor_do_ErroExt = '' Then
Exit;

Int_Retorno := Daruma_Registry_ErroExtendidoOk( pchar(Str_Valor_do_ErroExt) );


Daruma_Registry_Velocidade(Índice 28)

Método: Daruma_Registry_Velocidade [Índice 28]
Previous Top Next

· Definição do Método:
Este Método permite a você configurar a velocidade na FS600 da porta serial de 9600 à 115200.

· Parâmetros do Método: (1 Parâmetro)
Velocidade: Variável String com a velocidade a ser programada no ECF.

· Observações:
O Valor Default desta chave é "9600".

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_Velocidade("9600")

· Exemplo em Delphi 7.0:
Int_Retorno: = Daruma_Registry_Velocidade('9600');


Daruma_Registry_Produto(Índice 34)

Método: Daruma_Registry_Produto [Índice 34]
Previous Top Next

· Definição do Método:
Este Método permite Configurar o modelo de ECF que está conectado na porta serial, ou simplesmente indicar para a dll identique o Produto.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações: (1 Parâmetro)
Valor default da Chave = "DEFAULT".

Exemplos:

· Exemplo em Visual Basic 6.0:

Int_Retorno = Daruma_Registry_Produto("FS345")

· Exemplo em Delphi 7.0:

Int_Retorno:= Daruma_Registry_Velocidade('FS345');


Daruma_Registry_AplMensagem1(Índice 36)

Método: Daruma_Registry_AplMensagem1 [Índice 36]
Previous Top Next

· Definição do Método:
Este Método possibilita a programação da mensagem do software aplicativo.

· Parâmetros do Método: (1 Parâmetro)
Mensagem do aplicativo com 42 bytes.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- Caso a Mensagem não esteja programada o ECF acusará erro 180, vide tabela de erros Daruma_FI_RetornaErroExtendido(Índice 1470 )
- Esta mensagem é exigida pela legistação e será impressa em todos os comandos que concentram valores exemplos: cupom fiscal, recebimento não fiscal, sangria e suprimento.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_AplMensagem_1 As String
Str_AplMensagem_1 = InputBox("Entre com a Mensagem de seu Aplicativo:", "Daruma Framework", "DARUMA32 FrameWork Mensagem Não Programada")
If Str_AplMensagem_1 = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_AplMensagem1(Str_AplMensagem_1)

· Exemplo em Delphi 7.0:
var
Str_AplMensagem_1: String;
begin
Str_AplMensagem_1:= InputBox('Entre com a Mensagem de seu Aplicativo:', 'Daruma Framework', 'DARUMA32 FrameWork Mensagem Não Programada');
If Str_AplMensagem_1 = '' Then
Exit;
Int_Retorno := Daruma_Registry_AplMensagem1(pchar(Str_AplMensagem_1));


Daruma_Registry_AplMensagem2(Índice 37)

Método: Daruma_Registry_AplMensagem2 [Índice 37]
Previous Top Next

· Definição do Método:
Este Método possibilita a programação da mensagem do software aplicativo.

· Parâmetros do Método: (1 Parâmetro)
Mensagem do aplicativo com 42 bytes.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- Caso a Mensagem não esteja programada o ECF acusará erro 180, vide tabela de erros Daruma_FI_RetornaErroExtendido(Índice 1470 )
- Esta mensagem é exigida pela legistação e será impressa em todos os comandos que concentram valores exemplos: cupom fiscal, recebimento não fiscal, sangria e suprimento.

Exemplos:

· Exemplo em Visual Basic 6.0:
Private Sub MN_Daruma_Registry_AplMensagem_2_Click()
Dim Str_AplMensagem_2 As String
Str_AplMensagem_2 = InputBox("Entre com a Mensagem de seu Aplicativo:", "Daruma Framework", "DARUMA32 FrameWork Mensagem Não Programada")
If Str_AplMensagem_2 = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_AplMensagem2(Str_AplMensagem_2)

· Exemplo em Delphi 7.0:
var
Str_AplMensagem_2: String;
begin
Str_AplMensagem_2:= InputBox('Entre com a Mensagem de seu Aplicativo:', 'Daruma Framework', 'DARUMA32 FrameWork Mensagem Não Programada');
If Str_AplMensagem_2 = '' Then
Exit;
Int_Retorno := Daruma_Registry_AplMensagem1(pchar(Str_AplMensagem_2));


Daruma_Registry_TEF_NumeroLinhasImpressao(Índice 38)

Método: Daruma_Registry_TEF_NumeroLinhasImpressao[Índice 38]
Previous Top Next

· Definição do Método:
Este Método possibilita a programação da mensagem do software aplicativo.

· Parâmetros do Método: (1 Parâmetro)
Numero Linhas. String contendo o número de linhas para impressão por vez, o valor Default para esta chave é 16.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Numero_Linhas_Impressao As String
Str_Numero_Linhas_Impressao = InputBox("Entre com o Numero de Linhas para Impressao:", "Daruma Framework", "2")
If Str_Numero_Linhas_Impressao = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_TEF_NumeroLinhasImpressao(Str_Numero_Linhas_Impressao)

· Exemplo em Delphi 7.0:
var
Str_Numero_Linhas_Impressao: String;
begin
Str_Numero_Linhas_Impressao:= InputBox('Entre com o Numero de Linhas para Impressao:', '2');
If Str_Numero_Linhas_Impressao = '' Then
Exit;
Int_Retorno := Daruma_Registry_TEF_NumeroLinhasImpressao(pchar(Str_Numero_Linhas_Impressao));


Daruma_Registry_NumeroSerieNaoFormatado(Índice 42)

Método: Daruma_Registry_NumeroSerieNaoFormatado[Índice 42]
Previous Top Next

· Definição do Método:
Este Método permite configurar se o número de série da impressora será devolvido com ou sem os zeros à esquerda.

· Parâmetros do Método: (1 Parâmetro)
Numero de Serie. Variável String com 0(para não devolver o número de série formatado ou seja sem os zeros à esquerda), ou -1(-um - para retornar o número de série com os zeros à esquerda).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_NumeroSerieNaoFormatado("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_NumeroSerieNaoFormatado('1');


Daruma_Registry_NumeroLinhasImpressao(Índice 38)

Método: Daruma_Registry_NumeroLinhasImpressao [Índice 38]
Previous Top Next

· Definição do Método:
Este Método permite ajustar o número de linhas a serem impressas por vez, durante a impressão de resposta de TEF.

· Parâmetros do Método: (1 Parâmetro)
Linhas para Impressão. Variável String com o 2(dois) bytes contendo o número de linhas a serem impressas no buffer coloque um valor entre 01 a 16.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- O número máximo de linhas a serem impressas não poderá ser maior do que 16.

Exemplos:

· Exemplo em Visual Basic 6.0:

Int_Retorno = Daruma_Registry_NumeroLinhasImpressao("1")

· Exemplo em Delphi 7.0:

Int_Retorno:= Daruma_Registry_NumeroLinhasImpressao('1');


Daruma_Registry_MFD_ProgramarSinalSonoro(Índice 52)

Método: Daruma_Registry_MFD_ProgramarSinalSonoro [Índice 52]
Previous Top Next

· Definição do Método:
Este Método permite programar chaves no registry, onde cada uma equivale a um tipo de cupom, podendo ser cupom fiscal, não fiscal (vinculado), não fiscal não vinculado e relatório gerencial.

· Parâmetros do Método: (2 Parâmetros)
Chave String com o nome da Chave do Registry que você deseja programar;
Valor String com 0 (desabilitar) 1(habilitar).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- Este método aplica-se para as impressoras FS600 e FS2100T (ambas térmicas);
- Para alterar as chaves siga a sequência abaixo:
BuzzerCF você irá habilitar para para seja emitido o sinal sonoro ao término do cupom fiscal;
BuzzerCNF você irá habilitar para para seja emitido o sinal sonoro ao término do cupom não fiscal;
BuzzerCNFV você irá habilitar para para seja emitido o sinal sonoro ao término do cupom não fiscal vinculado;
BuzzerRG você irá habilitar para para seja emitido o sinal sonoro ao término do relatório gerencial;

Importante: Para que o sinal sonoro seja emitido, você deverá previamente programá-lo com pelo menos um 'beep' através do método: Daruma_FIMFD_SinalSonoro (Índice 53).

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Chave As String
Dim Str_Valor As String

Str_Chave = InputBox("Entre com o indice da Chave que você deseja habilitar o sinal sonoro ex.:Se passado 1=(BuzzerCF), 2=(BuzzerCNFV), 3=(BuzzerCNF) ou 4=(BuzzerRG)::", "Daruma Framework", "1")
Str_Valor = InputBox("Entre com o número de beeps, podendo ser de 1 a 99 beeps:", "Daruma Framework", "1")
If Str_Chave = "" Or Str_Valor = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_MFD_ProgramarSinalSonoro(Str_Chave, Str_Valor)

· Exemplo em Delphi 7.0:
var
Str_Chave:string;
Str_Valor:string;
begin
Str_Chave := InputBox('Daruma Framework', 'Entre com o indice da Chave que você deseja habilitar o sinal sonoro ex.:Se passado 1=(BuzzerCF), 2=(BuzzerCNFV), 3=(BuzzerCNF) ou 4=(BuzzerRG):', '1');
Str_Valor := InputBox('Daruma Framework', 'Entre com o número de beeps, podendo ser de 1 a 99 beeps:', '1');
if (Str_Chave = '')or(Str_Valor = '') Then
Exit;
Int_Retorno := Daruma_Registry_MFD_ProgramarSinalSonoro(Str_Chave,Str_Valor);


Daruma_Registry_MFD_LeituraMFCompleta(Índice 49)

Método: Daruma_Registry_MFD_LeituraMFCompleta [Índice 49]
Previous Top Next

· Definição do Método:
Este Método permite programar a chave no registry, que controla se a Leitura da MF nas impressoras MFD's FS600 e FS2100T, será completa ou não.

· Parâmetros do Método: (1 Parâmetro)
Valor String com 0 (simplificada) 1(completa).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- Ligue este flag para poder efetuar a leitua completa da memória fiscal nas impressoras FS600 (MFD) e FS2100T que também é (MFD).
- Para fazer a leitura da memória fiscal você poderá usar um dos métodos a seguir:
Daruma_FI_LeituraMemoriaFiscalData;
Daruma_FI_LeituraMemoriaFiscalReducao;
Daruma_FI_LeituraMemoriaSerialData;
Daruma_FI_LeituraMemoriaSerialRecucao;

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_MFD_LeituraMFCompleta("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_MFD_LeituraMFCompleta('1');


Daruma_Registry_CupomAdicionalDll(Índice 56)

Método: Daruma_Registry_CupomAdicionaDll [Índice 56]
Previous Top Next

· Definição do Método:
Este Método permite programar a chave no registry (CupomAdicionalDll), que controla se a impressão do cupom adicional automática, após cada cupom fiscal, nas impressoras MFD's FS600 e FS2100T, será completa ou não.

· Parâmetros do Método: (1 Parâmetro)
Valor String com 0 (não imprime) e CupomAdicional = 1(um) (imprime) .

· Este Método retornará um dos Valores Inteiros listados Abaixo:-
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observação:
- Para que seja impresso o cupom adicional feito pela dll é preciso colocar o valor 2(dois) no flag CupomAdicional e valor 1(um) no flag CupomAdicionalDll.

· Exemplo de um cupom adicional, recuperado da MFD:

DARUMA TELEC. INFORMÁTICA S/A
DARUMA TESTES
AV. INDEPENDÊNCIA,3500
TAUBATÉ-SP CEP:12032-000
TEL:(12)3609-5000
CNPJ: 45.170.289/0001-25
IE:   688.023.460.111
23/12/2006 15:33:55V       GNF:000018 COO:000204
GRG:000010                 CER:0005
   RELATÓRIO GERENCIAL  
     Cupom Adicional    

1)23/12/2006 15:33:41        2)CCF:000125 3)COO:000203
4)Qt Itens Vend:001 5)Qt Itens Canc:000 6)Tempo:00011s
7)Valor:R$ 4,90 8)Aliquotas:18,00
9)Dinheiro:R$    4,90
10)23/12/2006 15:33:41
11)Plataf:PT14 12)Poltr:13C
13)Orig:Taubaté 14)Dest:Foz do Iguaçu
15)Percurso:740KM 16)RG:72009528
  DARUMA32 FrameWork Mensagem Não Programada
   DARUMA32 FrameWork Mensagem Não Programada
DARUMA AUTOMAÇÃO     FS600
ECF-IF    VERSÃO:01.03.00     ECF:001    Lj:A-01
AAAAAAAAAAAAACIJGF          23/12/2006 15:33:57V
FAB:DR0206BR000000090258

Como pode ser visto no exemplo acima, as informações contidas no cupom adicional são:

1. Data e Hora da Emissão;
2. CFF Contador Cupom Fiscal;
3. COO Contador Ordem Operação;
4. Qtde Itens Vendidos;
5. Qtde de Itens Cancelados;
6. Tempo de Impressão;
7. Valor Total do Cupom;
8. Alíquotas usadas, menos Isento, Não Tributado e Substituição Tributária;
9. Forma de Pagamento x Valor;
10. Reservado para uso futuro;
11. Data e Hora Embarque;
12. Plataforma;
13. Poltrona;
14. Cidade de Origem;
15. Cidade de Destino;
16. Percurso;
17. RG do Passageiro.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_CupomAdicionalDll("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_CupomAdicionalDll('1');


Daruma_Registry_CupomAdicionalDllConfig(Índice 57)

Método: Daruma_Registry_CupomAdicionaDllConfig [Índice 57]
Previous Top Next

· Definição do Método:
Este Método permite programar a chave no registry (CupomAdicionalDllConfig), que define os dados que serão impressos no cupom adicional, após cada cupom fiscal, nas impressoras MFD's FS600 e FS2100T.

· Parâmetros do Método: (1 Parâmetro)
Valor String: 19 bytes, na seguinte ordem:

1. Data e Hora da Emissão;
2. CFF Contador Cupom Fiscal;
3. COO Contador Ordem Operação;
4. Qtde Itens Vendidos;
5. Qtde de Itens Cancelados;
6. Tempo de Impressão;
7. Valor Total do Cupom;
8. Alíquotas usadas, menos Isento, Não Tributado e Substituição Tributária;
9. Forma de Pagamento x Valor;
10. Reservado para uso futuro;
11. Data e Hora Embarque;
12. Plataforma;
13. Poltrona;
14. Cidade de Origem;
15. Cidade de Destino;
16. Percurso;
17. RG do Passageiro;
18. Aciona Guilhotina entre o Cupom Fiscal e Cupom Adicional;
19. Imprime código de Barras no cupom adicional, e você pode escolher o tipo do código de barras utilizando o método
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional.
20. Imprime um Campo Livre, caso seja previamente executado o método Daruma_FIMFD_CupomAdicionalCampoLivre;
21. Imprime a Identificação do cliente se o valor for 2(dois).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Exemplo de um cupom adicional, recuperado da MFD:

1)23/12/2006 15:33:41        2)CCF:000125 3)COO:000203
4)Qt Itens Vend:001 5)Qt Itens Canc:000 6)Tempo:00011s
7)Valor:R$ 4,90 8)Aliquotas:18,00
9)Dinheiro:R$    4,90
10)23/12/2006 15:33:41
11)Plataf:PT14 12)Poltr:13C
13)Orig:Taubaté 14)Dest:Foz do Iguaçu
15)Percurso:740KM 16)RG:72009528
  DARUMA32 FrameWork Mensagem Não Programada
   DARUMA32 FrameWork Mensagem Não Programada
DARUMA AUTOMAÇÃO     FS600
ECF-IF    VERSÃO:01.03.00     ECF:001    Lj:A-01
AAAAAAAAAAAAACIJGF          23/12/2006 15:33:57V
FAB:DR0206BR000000090258
FAB:DR0206BR000000080835

· Observações:
- Para que seja impresso o cupom adicional feito pela dll é preciso colocar o valor 2(dois) no flag CupomAdicional e valor 1(um) no flag CupomAdicionalDll.
- O Cupom Adicional será impresso no documento Relatório Gerencial X, caso você queria alterar o Titulo do Relatório Gerencial X você deverá cadastrar um Relatório Gerencial específico utilizando o método Daruma_FIMFD_ProgramaRelatoriosGerenciais ou alterar a chave do registro "CupomAdicionalDllTitulo" utilizando o método Daruma_Registry_AlteraRegistry.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_CupomAdicionalDllConfig("1111111111111111111")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_CupomAdicionalDllConfig('1111111111111111111');


Daruma_Registry_ComandosEmLote(Índice 58)

Método: Daruma_Registry_ComandosEmLote [Índice 58]
Previous Top Next

· Definição do Método:
Este Método permite tratalhar com comandos em Lote.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Observação:
- Este método só deve ser utilizado, se você pretende trabalhar com mapeamento de unidade e bufferizando os comandos.

- Leia mais em: Trabalhando com Mapeamento de Unidade e Bufferizando os Comandos.


Daruma_Registry_FinalLote(Índice 59)

Método: Daruma_Registry_FinalLote [Índice 59]
Previous Top Next

· Definição do Método:
Este Método finaliza o Lote com os comandos.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Observação:
- Este método só deve ser utilizado, se você pretende trabalhar com mapeamento de unidade e bufferizando os comandos.

- Leia mais em: Trabalhando com Comandos em Lote, usando o Mapeamento de Unidade.


Daruma_Registry_PathLote(Índice 60)

Método: Daruma_Registry_PathLote [Índice 60]
Previous Top Next

· Definição do Método:
Este Método permite tratalhar configurar o Path onde serão escritos os comandos em Lote.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Observação:
- Este método só deve ser utilizado, se você pretende trabalhar com mapeamento de unidade e bufferizando os comandos.

- Leia mais em:Trabalhando com Comandos em Lote, usando o Mapeamento de Unidade.


Daruma_Registry_PCExpanionLogin(Índice 63)

Método: Daruma_Registry_PCExpanionLogin [Índice 63]
Previous Top Next

· Definição do Método:
Este Método permite a utilização de mais de um ECF no mesmo computador.

Com a chegada do PCExpanion (um multiplicador de PC's), tornou-se necessário que em um mesmo computador, se possa logar-se em cada uma das impressoras, cada qual em uma porta serial.

· Parâmetros do Método: (1 Parâmetro)
Login: String, com o nome que será usado como login.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- Mesmo que você não possua um PCExpanion, ainda assim será possível trabalhar com mais de um ECF no mesmo micro, bastando para isso, você usar este método para logar-se em cada impressora.

· Exemplo de utilização:
Suponha que você têm uma impressora na porta serial COM1 e outra na COM2, assim sendo, você executaria o método Daruma_Registy_PCExpanionLogin passando PDV1 para comunicar-se com o ECF que esta na COM1 e novamente executar o método, passando PDV2 para comunicar-se com o ECF que esta na COM2.

· No exemplo citado acima, ficaria assim:

Daruma_Registy_PCExpanionLogin("PDV1")
Daruma_Registy_PCExpanionLogin("PDV2")

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Flag_Login As String
Str_Flag_Login = InputBox("Entre com o Login:", "Daruma Framework", "PDV1")
If (Str_Flag_Login = " ") Then
Exit Sub
Int_Retorno = Daruma_Registry_PCExpanionLogin(Str_Flag_Login)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Flag_Login: String;
begin
Str_Flag_Login:= InputBox('Daruma Framework','Entre com o Login:', 'PDV1');
if (Str_Flag_Login= ' ') then
Exit;
Int_Retorno := Daruma_Registry_PCExpanionLogin(pchar(Str_Flag_Login));
Daruma_Analisa_Retorno();
end;


Daruma_Registry_MFDValorFinal(Índice 66)

Método: Daruma_Registry_MFDValorFinal [Índice 66]
Previous Top Next

· Definição do Método:
Este Método permite passar o valor final que se pretende obter.

Esta solução vem de encontro com a necessidade de aproximar valores, quando a balança do supermercado ou bomba de combustível, que arredonda os valores. Isto porque os ECF's com tecnologia MFD não permitem arredondamento, então, como forma de contornar este problema você deve utilizar este metodo.

· Parâmetros do Método: (1 Parâmetro)
ValorPretendido String com o valor pretendido.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
- Se a chave está setada e o número de casas decimais da quantidade da impressora MFD é maior que 3(três) e o tipo de quantidade passada para a função Daruma_FI_VendeItem(Índice 1001), for fracionário ("f" ou "F"), a DLL se encarregará de ajustar a quantidade para um novo valor, a fim de atingir o valor setado na chave MFDValorFinal do registro path HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF chave MFDValorFinal.
- Assim que a venda do item é finalizada, a chave MFDValorFinal é automaticamente setada para "0" (zero).

· Exemplo de utilização:
Suponha que você têm um ítem que custa 1,556 e a impressora esteja programada para trabalhar com 4 casas decimais na quantidade e a quantidade seja de 1,9568.

Se multiplicarmos um pelo outro temos: R$:3,0447808 ao truncar a impressora deixa o valor de calcula o valor R$3,04.

Já se observarmos na balança ou na bomba, após arredondado o valor, obten-se o valor R$3,05.
Por fazer o arredondamento, o valor não bate com o valor calculado pela impressora, mas se antes de enviar o comando de venda de ítem você passar o valor que se pretende alcançar neste método, a dll irá incrementar a quantidade, de maneira a alcançar o valor passado como parâmetro.

· No exemplo citado acima, ficaria assim:

Daruma_Registry_MFDValorFinal('3,05')
Daruma_FI_VendeItem('123','teste','II','F','1,9568',2,'1,556','%','0,10')

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_ValorFinal As String

Str_ValorFinal = InputBox("Entre com o Valor Final:", "Daruma Framework", "00000000000000000,00")
If (Str_ValorFinal = " ") Then
Exit Sub
Int_Retorno = Daruma_Registry_MFDValorFinal(Str_ValorFinal)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_ValorFinal: String;
begin
Str_ValorFinal:= InputBox('Daruma Framework','Entre com o Valor Final:', '00000000000000000,00');
if (Str_ValorFinal= ' ') then
Exit;
Int_Retorno := Daruma_Registry_MFDValorFinal(pchar(Str_ValorFinal));
Daruma_Analisa_Retorno();

end;


Daruma_Registry_LogTamMaxMB(Índice 69)

Método: Daruma_Registry_LogTamMaxMB [Índice 69]
Previous Top Next

· Definição do Método:
Este Método permite programar o tamanho máximo em mega bytes para o log. O Tamanho DEFAULT para o log é de 5MB.

· Parâmetros do Método: (1 Parâmetro)
TamanhoMB String com o tamanho maximo que ira ter o log.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observações:
Com este método, o log quando atingir o tamanho que foi especificado no parametro.
Indica o número máximo de MB (MegaBytes) que o arquivo de log poderá ter.

Quando o arquivo Daruma32.log atingir este tamanho, será criada uma cópia com nome

Daruma_DDMMAA_HHMM.log
a)DDMMAA = Data do sistema
b)HHMM = Hora do sistema.

Após a cópia, o arquivo Daruma.log é recriado, com conteúdo vazio.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_LogTamMaxMB As String

Str_LogTamMaxMB = InputBox("Entre com o Tamanho Máximo que você quer que tenha o Daruma32.log:", "Daruma Framework", "5")
If (Str_LogTamMaxMB = "") Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_LogTamMaxMB(Str_LogTamMaxMB)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_LogTamMaxMB: String;
begin
Str_LogTamMaxMB:= InputBox('Daruma Framework','Entre com o Tamanho Máximo que você quer que tenha o Daruma32.log:', '5');
if (Str_LogTamMaxMB= ' ') then
Exit;
Int_Retorno := Daruma_Registry_LogTamMaxMB(pchar(Str_LogTamMaxMB));
Daruma_Analisa_Retorno();

end;


Daruma_Registry_SintegraSeparador(Índice 70)

Método: Daruma_Registry_SintegraSeparador [Índice 70]
Previous Top Next

· Definição do Método:
Este método permite que seja cofigurado um separador específico para os dados retornados nos métodos para o sintegra.

· Parâmetros do Método: (1 Parâmetro).
Flag: String, com o separador a ser fixado no registry.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Separador As String

Str_Separador = InputBox("Entre com o Separador:", "Daruma Framework", ";")
If Str_Separador = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_SintegraSeparador(Str_Separador)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Separador: String;
begin
Str_Separador:= InputBox('Daruma Framework','Entre com o Separador:', ';');
if (Str_Separador = '') then
Exit;

Int_Retorno := Daruma_Registry_SintegraSeparador(pchar(Str_Separador));
Daruma_Analisa_Retorno();
end;


Daruma_Registry_SintegraPath(Índice 71)

Método: Daruma_Registry_SintegraPath [Índice 71]
Previous Top Next

· Definição do Método:
Este método permite que seja cofigurado o path (caminho), onde será gravado o arquivo do sintegra específico para os dados retornados nos métodos para o sintegra.

· Parâmetros do Método: (1 Parâmetro).
Flag: String, com o separador a ser fixado no registry.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Separador As String

Str_Separador = InputBox("Entre com o Separador:", "Daruma Framework", ";")
If Str_Separador = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_SintegraPath(Str_Path)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Separador: String;
begin
Str_Separador:= InputBox('Daruma Framework','Entre com o Separador:', ';');
if (Str_Separador = '') then
Exit;

Int_Retorno := Daruma_Registry_SintegraPath(pchar(Str_Path));
Daruma_Analisa_Retorno();
end;


Daruma_Registry_MFD_LegendaInmetro(Índice 80)

Método: Daruma_Registry_MFD_LegendaInmetro[Índice 80]
Previous Top Next

· Definição do Método:
Este Método permite programar a chave no registry, que controla se será impresso a Legenda do Inmetro na unidade de medida do item nas impressoras MFD's.
Identificando a unidade de medida corretamente de acordo com a portaria deo Inmetro específica, que é por exemplo: KG/R$, LT/R$, UN/R$, MT/R$ e assim por diante.

· Parâmetros do Método: (1 Parâmetro)
Valor String com 0 (Desligada) 1(Ligada).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_MFD_LegendaInmetro("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_Registry_MFD_LegendaInmetro('1');


Daruma_Registry_SintegraUF(Índice 74)

Método: Daruma_Registry_SintegraUF[Índice 74]
Previous Top Next

· Definição do Método:
Este método permite que seja configurado a Unidade Federativa(UF) que alimentará o arquivo SINTEGRA.TXT, quando utilizado o método Daruma_Sintegra_GerarRegistrosArq (Índice 6022).

· Parâmetros do Método: (1 Parâmetro).
Flag: String, com o separador a ser fixado no registry.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_UF As String

Str_UF = InputBox("Entre com o Separador:", "Daruma Framework", ";")
If Str_UF = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_SintegraUF(Str_UF)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_UF: String;
begin
Str_UF:= InputBox('Daruma Framework','Entre com o Separador:', ';');
if (Str_UF = '') then
Exit;

Int_Retorno := Daruma_Registry_SintegraPath(pchar(Str_UF));
Daruma_Analisa_Retorno();
end;


Daruma_FI_StatusCupomFiscal(Índice 1404)

Método: Daruma_FI_StatusCupomFiscal [Índice 1404]
Previous Top Next

· Definição do Método:
Retorna o status Cupom Fiscal, se o mesmo esta Aberto ou Fechado.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Devolverá 0(zero) para Cupom Fechado e 1(um) para Cupom Aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_StatusCupomFiscal(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);

Int_Retorno := Daruma_FI_StatusCupomFiscal( pchar( Str_Informacao ) );


Daruma_FI_StatusRelatorioGerencial(Índice 1405)

Método: Daruma_FI_StatusRelatorioGerencial [Índice 1405]
Previous Top Next

· Definição do Método:
Retorna o status do Relatório Gerencial, se o mesmo esta Aberto ou Fechado.

· Parâmetros do Método:
Variável por referência com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Devolverá 0(zero) para Relatório Fechado e 1(um) para Relatório Aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_StatusRelatorioGerencial(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_StatusRelatorioGerencial( pchar(Str_Informacao) );


Daruma_FI_StatusComprovanteNaoFiscalVinculado(Índice 1403)

Método: Daruma_FI_StatusComprovanteNaoFiscalVinculado [Índice 1403]
Previous Top Next

· Definição do Método:
Retorna o status do Comprovante Não Fiscal Vinculado, se o mesmo esta Aberto ou Fechado.

· Parâmetros do Método:
Variável por referência com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Devolverá 0(zero) para Vinculado Fechado e 1(um) para Vinculado Aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_StatusComprovanteNaoFiscalVinculado(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_StatusComprovanteNaoFiscalVinculado( pchar(Str_Informacao) );


Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado(Índice 1471)

Método: Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado [Índice 1471]
Previous Top Next

· Definição do Método:
Retorna o status do Comprovante Não Fiscal Não Vinculado, se o mesmo esta Aberto ou Fechado.

· Parâmetros do Método:
Variável por referência com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Devolverá 0(zero) para Recebimento Fechado e 1(um) para Recebimento Aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado( pchar(Str_Informacao) );


Daruma_FI_VerificaImpressoraLigada(Índice 1400]

Método: Daruma_FI_VerificaImpressoraLigada [Índice 1400]
Previous Top Next

· Definição do Método:
Verifica se a impressora está ligada ou conectada no computador.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_VerificaImpressoraLigada()
If Int_Retorno = 1 Then
TX_Retorno.Text = " 1 - Impressora Ligada !!!"
Else
TX_Retorno.Text = " 0 - Impressora Desligada !!!"
End If

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_VerificaImpressoraLigada();
If Int_Retorno = 1 Then
Edit1.Lines.Text:= (' 1 - Impressora Ligada !!')
else
Edit1.Lines.Text:= (' 0 - Impressora Desligada !!');


Daruma_FI_VerificaModeloECF(Índice 1469)

Método: Daruma_FI_VerificaModeloECF [Índice 1469]
Previous Top Next

· Definição do Método:
Retorna no "Int_Retorno" com Modelo do ECF, conforme lista abaixo.

· Valores Retornados no Int_Retorno:
1 - FS345 - Impressora de varejo.
2 - FS318 - Impressora para restaurantes.
3 - FS2000 - Impressora de duas estações.
4 - FS600 - MFD (térmica) - Impressora de varejo .
5 - FS700 - MFD (térmica) - Impressora de varejo .

· Parâmetros do Método:
Nenhum.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_VerificaModeloECF()
TX_Retorno.Text = Int_Retorno
Int_MostrarRetorno

· Exemplo em Delphi 7.0:
var Int_Informacao: Integer;
begin
Int_Retorno := Daruma_FI_VerificaModeloECF();
Edit1.Lines.Text := IntToStr(Int_Informacao);


Daruma_FI_VerificaHorarioVerao(Índice 1500)

Método: Daruma_FI_VerificaHorarioVerao [Índice 1500]
Previous Top Next

· Definição do Método:
Retorna se o relógio da impressora está em horário de verão.
0 - Relógio da Impressora não programado para horário de verão.
1 - Relógio da Impressora programado para horário de verão.

· Parâmetros do Método:
Variável por referência com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- A programação do horário de verão será realizada somente após uma ReduçãoZ. Para desprogramar, o Método somente será aceito, 1 (uma) hora após a ReduçãoZ e não pode ter havido movimento na impressora nesse período.
- Você poderá deixar a entrada e saída do horário de verão automatizada. Para isso basta seguir as instruções abaixo:
1. Entre no registry no seguinte path: HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF;
2. Configure o flag ControlaHorarioVerao para 1(um);
3. Insira uma data válida no flag:DataEntradaHorarioVerao ex.:091205;
4. Insira uma data válida no flag:DataSaidadaHorarioVerao ex.:091205.

Dessa maneira conforme você programou a Daruma32.dll quando verificar que chegou a data prevista em sua programação, irá fazer o ajuste automaticamente, tanto para a entrada quanto para a saída do mesmo.
Importante: Para que a saída do horário de verão seja aceita, é fundamental que a ReduçãoZ que antecede a data de saída do horário de verão seja feita ao final do período do dia anterior ao retorno ao horário normal. Exemplificando melhor: se o horário de verão for terminar no dia 100306, então a ReduçãoZ do dia 090306 deve ter sido emitida ainda no dia 090306.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_VerificaHorarioVerao(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_VerificaHorarioVerao(Str_Informacao);
Edit1.Text := (Str_Informacao);


Daruma_FI_VerificaDiaAberto(Índice 1484)

Método: Daruma_FI_VerificaDiaAberto [Índice 1484]
Previous Top Next

· Definição do Método:
Retorna se a o dia está aberto.
1(um) Se o dia estiver Aberto e 0(zero) Se o dia estiver Fechado.

· Parâmetros do Método:
Variável por referência com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observação:
- Na FS600 e FS2100T não há necessidade de executar este comando.
- O dia só irá retornar aberto, caso seja emitido uma LeituraX (Daruma_FI_LeituraX) na impressoa fiscal, devido ao fato da necessidade das impressoras FS345 iniciar o dia com uma LeituraX, pois caso contrário o dia não irá iniciar.

· Dica:
Se você executar este método após a 0:00 (meia-noite), e ainda não tiver efetuado a ReduçãoZ (a impressora permite que você faça a ReduçãoZ até às 2 da manhã), este método irá retornar 0(zero). Chame o método Daruma_FI_DataMovimento, e se você receber a data do movimento atual e não 6(seis) bytes zerados, é porque você ainda esta com o dia aberto e ainda poderá enviar comandos de venda até que o ECF sinalize ReduçãoZ Pendente.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_VerificaDiaAberto(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_VerificaDiaAberto(Str_Informacao);
Edit1.Text := (Str_Informacao);


Daruma_FI_VerificaZPendente(Índice 1489)

Método: Daruma_FI_VerificaZPendente [Índice 1489]
Previous Top Next

· Definição do Método:
Retorna se a ReduçãoZ está pendente.
1(um) para ReduçãoZ Pendente e 0(zero) para ReduçãoZ já executada.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_VerificaZPendente(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_VerificaZPendente(Str_Informacao);
Edit1.Text := (Str_Informacao);


Daruma_FI_VerificaXPendente(Índice 1488)

Método: Daruma_FI_VerificaXPendente [Índice 1488]
Previous Top Next

· Definição do Método:
Retorna se a LeituraX está pendente.
1(um) para LeituraX Pendente e 0(zero) para LeituraX já executada.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_VerificaXPendente(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_VerificaXPendente(Str_Informacao);
Edit1.Text := (Str_Informacao);


Daruma_FI_VerificaTipoImpressora(Índice 1444)

Método: Daruma_FI_VerificaTipoImpressora [Índice 1444]
Previous Top Next

· Definição do Método:
Retorna o tipo de impressora.

· Parâmetros do Método:
Tipo Impressora: Variável inteira para receber o tipo da impressora (veja abaixo em "Observações" os valores retornados).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Observações:
- O valor do tipo de impressora pode ser:
1 - Impressora fiscal, gaveta, autenticaçao.
2 - Impressora fiscal, gaveta, cutter.
3 - Impressora fiscal, presenter, autenticaçao.
4 - Impressora fiscal, presenter, cutter.
5 - Impressora bilhete de passagem, gaveta, autenticaçao.
6 - Impressora bilhete de passagem, gaveta, cutter.
7 - Impressora bilhete de passagem, presenter, autenticaçao.
8 - Impressora bilhete de passagem, presenter, cutter.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Informacao = 0
Int_Retorno = Daruma_FI_VerificaTipoImpressora(Int_Informacao)
TX_Retorno.Text = Int_Informacao

· Exemplo em Delphi 7.0:
var Int_Informacao: Integer;
begin
Int_Informacao := 0;
Int_Retorno := Daruma_FI_VerificaTipoImpressora( Int_Informacao);
Edit1.Text := (Str_Informacao);


Daruma_FI_VerificaDescricaoFormasPagamento(Índice 1470)

Método: Daruma_FI_VerificaDescricaoFormasPagamento[Índice 1470]
Previous Top Next

· Definição do Método:
Retorna Apenas a Descrição das Formas de Pagamento que Estão Programadas no ECF.

· Parâmetros do Método:
Formas Pagamento: Variável String por referência com 275(duzentas e setenta e cinco) posições para receber as formas programadas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna as informações das formas de pagamento na seguinte ordem:

Descrição da forma de pagamento.....................: 16 bytes
+ 1 caráctere Separador, conforme configurado no Registry com o Método Daruma_Registry_Separador.

- São retornadas 16 formas de pagamento :

Ticket, Dinheiro, Cartao, A vista, TEF, Teste1, Teste2, Pagamento Tipo H, Pagamento Tipo I, Pagamento Tipo J, Pagamento Tipo K, Pagamento Tipo L, Pagamento Tipo M, Pagamento Tipo N, Pagamento Tipo O, Pagamento Tipo P.

- A impressora permite programar até 16 formas de pagamento, as formas que não estiverem programadas estarão com os valores zerados e a descrição em branco (veja Exemplos acima). Para programar as formas de pagamento utilize o método :Daruma_FI_ProgramaFormasPagamento(Índice 301).

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(275)
Int_Retorno = Daruma_FI_VerificaDescricaoFormasPagamento(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,275);
Int_Retorno := Daruma_FI_VerificaDescricaoFormasPagamento(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VerificaFormasPagamentoEx(Índice 1448)

Método: Daruma_FI_VerificaFormasPagamentoEx [Índice 1448]
Previous Top Next

· Definição do Método:
Retorna as formas de pagamento e seus valores acumulados.

· Parâmetros do Método:
Formas Pagamento: Variável String por referência com 1027(uma mil e vinte e sete) posições para receber as formas programadas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna as informações das formas de pagamento na seguinte ordem:

Descrição da forma de pagamento.....................: 16 bytes
Valor acumulado (2 casas decimais)..................: 20 bytes
Valor recebido no último cupom (2 casas decimais)...: 20 bytes
Valor indicando se a forma foi usada para a emissão
+ 1 caráctere Separador, conforme configurado no Registry com o Método Daruma_Registry_Separador.

- São retornadas 16 formas de pagamento mais a forma "Valor Recebido" e "Troco" obedecendo a ordem descrita anteriormente. As formas de pagamento são separadas por vírgula. Veja Exemplos a seguir:

Ticket 0000000000000000000000000000000000000000,
Dinheiro 0000000000000002000000000000000000010000,
Cartao 0000000000000000000000000000000000000000,
A vista 0000000000000000000000000000000000000000,
TEF 0000000000000000000000000000000000000000,
Teste1 0000000000000000000000000000000000000000,
Teste2 0000000000000000000000000000000000000000, 0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
Valor Recebido 0000000000000002000000000000000000010000,
Troco 0000000000000001945000000000000000009725,

- A impressora permite programar até 16 formas de pagamento, as formas que não estiverem programadas estarão com os valores zerados e a descrição em branco (veja Exemplos acima). Para programar as formas de pagamento utilize o método:Daruma_FI_ProgramaFormasPagamento(Índice 301).

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(1000)
Int_Retorno = Daruma_FI_VerificaFormasPagamentoEx(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,1027);
Int_Retorno := Daruma_FI_VerificaFormasPagamentoEx(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VerificaEstadoImpressora(Índice 1401)

Método: Daruma_FI_VerificaEstadoImpressora [Índice 1401]
Previous Top Next

· Definição do Método:
Retorna o estado da impressora.

Parâmetros do Método:
1. ACK: Variável inteira para receber o primeiro byte.
2. ST1: Variável inteira para receber o segundo byte.
3. ST2: Variável inteira para receber o terceiro byte.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método devolve o status da impressora.
- Recomenda-se usar este método em concomitância com a chave StatusFuncao seteda pra 1(um) no registry, assim sendo você só irá chamar este método quando o iRet retornar diferente de 1(um).

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Estado_Ack As Integer
Dim Int_Estado_St1 As Integer
Dim Int_Estado_St2 As Integer
Int_Estado_Ack = 0
Int_Estado_St1 = 0
Int_Estado_St2 = 0
Int_Retorno = Daruma_FI_VerificaEstadoImpressora(Int_Estado_Ack, Int_Estado_St1, Int_Estado_St2)
TX_Retorno.Text = " Ack=" + CStr(Int_Estado_Ack) + " St1=" + CStr(Int_Estado_St1) + " St2=" + CStr(Int_Estado_St2)

· Exemplo em Delphi 7.0:
var
Int_Daruma_ACK: Integer;
Int_Daruma_ST1: Integer;
Int_Daruma_ST2: Integer;
begin
Int_Daruma_ACK := 0;
Int_Daruma_ST1 := 0;
Int_Daruma_ST2 := 0;
Int_Retorno:= Daruma_FI_VerificaEstadoImpressora( Int_Daruma_ACK, Int_Daruma_ST1, Int_Daruma_ST2 );
Edit1.Lines.Text := (' ACK=' + IntToStr(Int_Daruma_ACK) + ' ST1=' + IntToStr(Int_Daruma_ST1) + ' ST2=' + InttoStr(Int_Daruma_ST2));


Daruma_FI_VerificaAliquotasIss(Índice 1440)

Método: Daruma_FI_VerificaAliquotasIss [Índice 1440]
Previous Top Next

· Definição do Método:
Retorna as alíquotas de vinculação ao ISS.

· Parâmetros do Método:
Aliquotas Iss: Variável String por referência com 79(setenta e nove) posições para receber as alíquotas vinculadas ao ISS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- As alíquotas retornadas estarão separadas por vírgula. Ex.: 1800,1200,1500;
- Para isento utilize II;
- Para não tributado NN;
- Para substituição FF.
Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(79)
Int_Retorno = Daruma_FI_VerificaAliquotasIss(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,79);
Int_Retorno := Daruma_FI_VerificaAliquotasIss(Str_Informacao);


Daruma_FI_VerificaIndiceAliquotasIss(Índice 1445)

Método: Daruma_FI_VerificaIndiceAliquotasIss [Índice 1445]
Previous Top Next

· Definição:
Retorna os índices das alíquotas de ISS.

· Parâmetros do Método:
Índice Alíquotas: Variável String por referência com o tamanho de 48(quarenta e oito) posições para receber os índices das alíquotas de ISS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Os índices retornados estarão separados por vírgula. Ex.: 02, 03, 04.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(48)
Int_Retorno = Daruma_FI_VerificaIndiceAliquotasIss(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,48);
Int_Retorno := Daruma_FI_VerificaIndiceAliquotasIss(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VerificaTotalizadoresNaoFiscaisEx(Índice 1486)

Método: Daruma_FI_VerificaTotalizadoresNaoFiscaisEx [Índice 1486]
Previous Top Next

· Definição do Método:
Retorna a descrição dos totalizadores não fiscais programados na impressora com o Método
Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms

· Parâmetros do Método:
Totalizadores: Variável String por referência com 300(trezentas) posições para receber a descrição dos totalizadores não fiscais programados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Os totalizadores virão separados por vírgula;
- Este Método retorna somente os 16 primeiros cadastrados;
- Ex. Sangria, Suprimento, Conta de Luz, etc...
- Nas impressoras FS600(MFD) e FS2100T(MFD) só retornará 15 caracteres da descrição, isso porquê é o máximo de caracteres que é permito na descrição, fica limitado a 15.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(300)
Int_Retorno = Daruma_FI_VerificaTotalizadoresNaoFiscaisEx(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,300);
Int_Retorno := Daruma_FI_VerificaTotalizadoresNaoFiscaisEx(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VerificaEpromConectada(Índice 1432)

Método: Daruma_FI_VerificaEpromConectada [Índice 1432]
Previous Top Next

· Definição do Método:
Verifica se a Eprom está conectada.

· Parâmetros do Método:
FlagEprom: Variável String por referência com 2(duas) posições para receber o flag de Eprom conectada. Onde:
1 - Eprom conectada.
0 - Eprom desconectada.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_VerificaEpromConectada(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_VerificaEpromConectada(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VerificaRecebimentosNaoFiscal(Índice 1443)

Método: Daruma_FI_VerificaRecebimentoNaoFiscal [ndice 1443]
Previous Top Next

· Definição do Método:
Retorna os recebimentos não fiscais não vinculados programados na impressora.

· Parâmetros do Método:
Recebimentos: Variável String por referência com 2200(duas mil e duzentas) posições para receber as informações.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:

- Este Método retorna as informações para os 50 totalizadores não fiscais não vinculados na seguinte ordem:

Valor indicando quantas vezes cada recebimento foi utilizado: 4 bytes
Valor acumulado para cada recebimento (2 casas decimais)....: 20 bytes

000100000000000000001000Conta de Luz ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000

- A impressora permite programar até 50 totalizadores não fiscais não vinculados, os totalizadores que não estiverem programados estarão com os valores zerados e a descrição em branco (veja Exemplos acima).

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2200)
Int_Retorno = Daruma_FI_VerificaRecebimentoNaoFiscal(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2200);
Int_Retorno := Daruma_FI_VerificaRecebimentoNaoFiscal(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VerificaTruncamento(Índice 1439)

Método: Daruma_FI_VerificaTruncamento [Índice 1439]
Previous Top Next

· Definição do Método:
Retorna 1 se a impressora estiver no modo truncamento e 0 se estiver no modo arredondamento.

· Parâmetros do Método:
Truncamento: Variável String por referência com 2(duas) posições para receber o retorno. Onde:
1 - Impressora programada para Truncar.
0 - Impressora programada para Arredondar.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Seguindo o Modelo de Impressoras Térmicas com MFD não é necessário o uso desta função, isso porque as impressoras citadas acima só truncam e isto esta presvito no convênio 85/01.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_VerificaTruncamento(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_VerificaTruncamento(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VerificaModoOperacao(Índice 1431)

Método: Daruma_FI_VerificaModoOperacao [Índice 1431]
Previous Top Next

· Definição do Método:
Verifica se a impressora está em modo normal ou em intervenção técnica.

· Parâmetros do Método:
Modo Operação: Variável String por referência com 2(duas) posições para receber o modo de operação da impressora. Onde:
1 - Modo normal
0 - Intervenção técnica.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_VerificaModoOperacao(Str_Informacao)
If Str_Informacao = 1 Then
TX_Retorno.Text = " 1 - Impressora em Modo Operacional !!!"
Else
TX_Retorno.Text = " 0 - Impressora em Modo de Intervenção Técnica !!!"
End If

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_VerificaModoOperacao(Str_Informacao);
if Str_Informacao = '1' Then
begin
Edit1.Lines.Text := (' 1 - Impressora em Modo Operacional !!');
end
else
begin
Edit1.Lines.Text := (' 0 - Impressora em Modo de Intervencao Tecnica !!');
end;


Daruma_FI_VerificaTotalizadoresParciais(Índice 1407)

Método: Daruma_FI_VerificaTotalizadoresParciais [Índice 1407]
Previous Top Next

· Definição do Método:
Retorna os totalizadores parciais cadastrados na impressora com as seguintes informações:

· Parâmetros do Método:
Totalizadores: Variável String por referência com o tamanho de 445(quatrocentos e quarenta e cinco) posições para receber os totalizadores parciais cadastrados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Observações:
- São retornadas as seguintes informações separadas por vírgulas:

Totalizadores parciais tributados..........: 224 bytes
Isenção....................................: 14 bytes
Não insidência.............................: 14 bytes
Substitução................................: 14 bytes
Totalizadores parciais não sujeitos ao ICMS: 126 bytes
Sangria....................................: 14 bytes
Suprimento.................................: 14 bytes
Grande Total...............................: 18 bytes
Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(445)
Int_Retorno = Daruma_FI_VerificaTotalizadoresParciais(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_VerificaModoOperacao(Str_Informacao);
if Str_Informacao = '1' Then
begin
Edit1.Lines.Text := (' 1 - Impressora em Modo Operacional !!');
end
else
begin
Edit1.Lines.Text := (' 0 - Impressora em Modo de Intervencao Tecnica !!');
end;


Daruma_FI_ClicheProprietarioEx(Índice 1467)

Método: Daruma_FI_ClicheProprietarioEx [Índice 1467]
Previous Top Next

· Definição do Método:
Retorna o clichê do proprietário cadastrado na impressora.

· Parâmetros do Método:
ClicheProprietário: Variável String por referência com 400(quatrocentas) posições para receber clichê cadastrado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(400)
Int_Retorno = Daruma_FI_ClicheProprietario(Str_Informacao)
TX_Retorno.Text = Str_Informacao
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,400);
Int_Retorno := Daruma_FI_ClicheProprietarioEx(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_NumeroCaixa(Índice 1425)

Método: Daruma_FI_NumeroCaixa [Índice 1425]
Previous Top Next

· Definição do Método:
Retorna o número do caixa cadastrado na impressora.

· Parâmetros do Método:
Número Caixa: Variável String por referência com 4(quatro) posições para receber o número do caixa cadastrado na impressora.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(04)
Int_Retorno = Daruma_FI_NumeroCaixa(Str_Informacao)
TX_Retorno.Text = Str_Informacao
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_NumeroCaixa(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_NumeroLoja(Índice 1426)

Método: Daruma_FI_NumeroLoja [Índice 1426]
Previous Top Next

· Definição do Método:
Retorna o número da loja cadastrado na impressora.

· Parâmetros do Método:
Número Loja: Variável String por referência com 4(quatro) posições para receber o número da loja cadastrado na impressora.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método foi criado por questões de compatibilidade com softwares de mercado.
- Na impressora FS345 o número da Loja não esta presente em sua memória, por isso o Número da Loja que será retornado é fixo em:0000.
- Nas impressoras FS600/FS2100T, o número da loja foi incluíndo na memória da impressora e quando for cadastrado por meio de intervenção técnica, então retornará o mesmo.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(04)
Int_Retorno = Daruma_FI_NumeroLoja(Str_Informacao)
TX_Retorno.Text = Str_Informacao
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_NumeroLoja(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_NumeroSerie(Índice 1411)

Método: Daruma_FI_NumeroSerie [Índice 1411]
Previous Top Next

· Definição do Método:
Retorna o número de série da impressora.

· Parâmetros do Método:
Número Série: Variável String por referência com o tamanho de 15(quinze) posições para receber o número de série.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Observação: Para atender as regras do PAF-ECF é necessário o Número de Série com 21 posições, utilize o comando Daruma_FIMFD_RetornaInformacao (Índice 6000)

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(15)
Int_Retorno = Daruma_FI_NumeroSerie(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,15);
Int_Retorno := Daruma_FI_NumeroSerie(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RegistraNumeroSerie(Índice 1491)

Método: Daruma_FI_RegistraNumeroSerie [Índice 1491]
Previous Top Next

· Definição do Método:
Ao chamar este método o Número de série do ECF será lido do ECF e Criptografado através do algoritmo de RIJNDAEL de 128 bytes.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Exemplos:
Vamos supor que o número de série do ECF seja 0000000010 ao utilizar o FrameWork Daruma ele se transforma em: 9619EFDF5C7991185D94BFCE1D4E6DBB5AC9DB2CE6BC6A09

Se o Número de série for 0000000011 a criptografia final será: 31AD8F505D239B55A4E0876A59B3A4F2DEA4FC117A62B78E

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_RegistraNumeroSerie()

· Exemplo em Delphi 7.0:
Int_Retorno:= Daruma_FI_RegistraNumeroSerie();


Daruma_FI_VerificaNumeroSerie(Índice 1492)

Método: Daruma_FI_VerificaNumeroSerie [Índice 1492]
Previous Top Next

· Definição do Método:
Este método irá devolver 0(zero) ou 1(um) - Zero indica que o número de série não bate com a Criptografia Armazenada pelo Método Daruma_FI_RegistraNumeroSerie(), 1(um) indica que o ECF é válido pois o número de série bate com o que foi Criptografado pelo Método Daruma_FI_RegistraNumeroSerie.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_VerificaNumeroSerie()

· Exemplo em Delphi 7.0:
Int_Retorno:= Daruma_FI_VerificaNumeroSerie();


Daruma_FI_RetornaSerialCriptografada(índice 1490)

Método: Daruma_FI_RetornaSerialCriptografado [Índice 1490]
Previous Top Next

· Definição do Método:
Com este Método você irá receber o Número de Série e também a Criptografia do mesmo.

· Parâmetros do Método:
Número Série Criptografado: Variável String por referência com o tamanho de 48(quarenta e oito) posições para receber o número de série criptografado.
Número Série: Variável String por referência com o tamanho de 15(quinze) posições para receber o número de série.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Exemplos:
Vamos supor que o número de série do ECF seja 0000000010 ao utilizar o FrameWork Daruma ele se transforma em: 9619EFDF5C7991185D94BFCE1D4E6DBB5AC9DB2CE6BC6A09

Se o Número de série for 0000000011 a criptografia final será: 31AD8F505D239B55A4E0876A59B3A4F2DEA4FC117A62B78E

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_SerialCriptografado As String
Dim Str_NumeroSerial As String
Str_SerialCriptografado = Space(48)
Str_NumeroSerial = Space(20)
Int_Retorno = Daruma_FI_RetornaSerialCriptografado(Str_SerialCriptografado, Str_NumeroSerial)
MsgBox "Serial Criptografado = " + Str_SerialCriptografado + Chr(13) + Chr(10) _
+ "Numero Serial = " + Str_NumeroSerial, , "Daruma Framework"

· Exemplo em Delphi 7.0:
var Str_SerialCriptografado: String;
Str_NumeroSerial: String;
begin
SetLength (Str_SerialCriptografado,48);
SetLength (Str_NumeroSerial,20);
Int_Retorno:= Daruma_FI_RetornaSerialCriptografado(Str_SerialCriptografado, Str_NumeroSerial);
Application.MessageBox(pchar('Serial Criptografado = ' + Str_SerialCriptografado + #13 +
'Numero Serial = ' + Str_NumeroSerial
), 'Daruma Framework Retorno do método', mb_ok);

end;


Daruma_FI_VersaoFirmware(Índice 1412)

Método: Daruma_FI_VersaoFirmware [Índice 1412]
Previous Top Next

· Definição do Método:
Retorna a versão do firmware da impressora.

· Parâmetros do Método:
Versão Firmware: Variável String por referência com o tamanho de 4(quatro) posições para receber a versão do firmware.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observação:
Ao ultilizar este comando na impressora térmica FS600 o retorna será equivalente à 1.20, como retorna nas impressoras matriciais Daruma, para verificar a real versão do firmware da impressora térmica FS600 é necessário acessar com a função Daruma_FIMFD_RetornaInformacao passando índice 83.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_VersaoFirmware(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_VersaoFirmware(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_CGC_IE(Índice 1413)

Método: Daruma_FI_CGC_IE [Índice 1413]
Previous Top Next

· Definição do Método:
Retorna o CGC e a Inscrição Estadual do cliente/proprietário cadastrado na impressora.

· Parâmetros do Método:
CGC: Variável String por referência com 18(dezoito) posições para receber o CGC.
IE: Variável String por referência com 15 posições para receber a Inscrição Estadual.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_CGC As String
Dim Str_IE As String
Str_CGC = Space(18)
Str_IE = Space(18)
Int_Retorno = Daruma_FI_CGC_IE(Str_CGC, Str_IE)
TX_Retorno.Text = " CGC:" + Str_CGC
TX_Retorno.Text = TX_Retorno.Text + " IE:" + Str_IE

· Exemplo em Delphi 7.0:
var
Str_CGC: String;
Str_IE: String;
begin
SetLength (Str_CGC,18);
SetLength (Str_IE,18);

Int_Retorno := Daruma_FI_CGC_IE(Str_CGC, Str_IE);

Edit1.Lines.Text := Pchar(' CGC:' + Str_CGC );

Edit1.Lines.Text := Edit1.Lines.Text + ' IE:' + Str_IE;


Daruma_FI_NumeroCupom(Índice 1417)

Método: Daruma_FI_NumeroCupom [Índice 1417]
Previous Top Next

· Definição do Método:
Retorna o número do cupom.

· Parâmetros do Método:
Número Cupom: Variável String por referência com 6(seis) posições para receber o número do cupom.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Quando este médodo e execudado antes do cupom ser aberto, então o número retornado e o do próximo cupom.
- Quando este método e executado com o cupom aberto, então será retornado o número do cupom aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(6)
Int_Retorno = Daruma_FI_NumeroCupom(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,6);
Int_Retorno := Daruma_FI_NumeroCupom(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_COO(Índice 1468)

Método: Daruma_FI_COO [Índice 1468]
Previous Top Next

· Definição do Método:
Retorna o número do cupom INICIAL e ATUAL do DIA em que não foi efetuando a ReduçãoZ.

· Parâmetros do Método: (2 Parâmetros)
1. Número Cupom INICIAL: Variável String por referência com 6(seis) posições para receber o número do Primeiro Cupom do DIA.
2. Número Cupom FINAL: Variável String por referência com 6(seis) posições para receber o número do último cupom Emitido.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_COO_Inicial As String
Dim Str_COO_Final As String
Str_COO_Inicial = Space(6)
Str_COO_Final = Space(6)
Int_Retorno = Daruma_FI_COO(Str_COO_Inicial, Str_COO_Final)
TX_Retorno.Text = " COO Inicial:" + Str_COO_Inicial + " COO Final:" + Str_COO_Final

· Exemplo em Delphi 7.0:
var
Str_COO_Inicial: String;
Str_COO_Final: String;
begin
SetLength (Str_COO_Inicial,6);
SetLength (Str_COO_Final,6);
Int_Retorno := Daruma_FI_COO (Str_COO_Inicial, Str_COO_Final);
Edit1.Lines.Text := pchar(' COO Inicial:' + Str_COO_Inicial + ' COO Final:' + Str_COO_Final);


Daruma_FI_MinutosImprimindo(Índice 1430)

Método: Daruma_FI_MinutosImprimindo [Índice 1430]
Previous Top Next

· Definição do Método:
Retorna o tempo em minutos que a impressora está ou esteve imprimindo.

· Parâmetros do Método:
Minutos Imprimindo: Variável String por referência com 4(quatro) posições para receber os minutos em impressão.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_MinutosImprimindo(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_MinutosImprimindo(Str_Informacao);
Edit1.lines.Text := (Str_Informacao);


Daruma_FI_MinutosLigada(Índice 1429)

Método: Daruma_FI_MinutosLigada [Índice 1429]
Previous Top Next

· Definição do Método:
Retorna o tempo em minutos que a impressora está ligada.

· Parâmetros do Método:
Minutos Ligada: Variável String por referência com 4(quatro) posições para receber os minutos em que a impressora está ligada.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Obsercação:
- Na FS600 este método retornará sempre zero.
Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_MinutosLigada(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_MinutosLigada(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_NumeroSubstituicoesProprietario(Índice 1422)

Método: Daruma_FI_NumeroSubstituicoesProprietario [ndice 1422]
Previous Top Next

· Definição do Método:
Retorna o número de substituições de proprietário.

· Parâmetros do Método:
Substituições: Variável String por referência com 4(quatro) posições para receber o número de substituições.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_NumeroSubstituicoesProprietario(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_NumeroSubstituicoesProprietario(Str_Informacao);
Edit1.lines.Text := (Str_Informacao);


Daruma_FI_NumeroIntervencoes(Índice 1421)

Método: Daruma_FI_NumeroIntervencoes [Índice 1421]
Previous Top Next

· Definição do Método:
Retorna o número de intervenções técnicas realizadas na impressora.

· Parâmetros do Método:
Intervenções: Variável String por referência com 4(quatro) posições para receber o número de intervenções.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_NumeroIntervencoes(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_NumeroIntervencoes(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_NumeroReducoes(Índice 1420)

Método: Daruma_FI_NumeroReducoes [Índice 1420]
Previous Top Next

· Definição do Método:
Retorna o número de reduções Z realizadas na impressora.

· Parâmetros do Método:
Reduções: Variável String por referência com 4(quatro) posições para receber o número de Reduções Z.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_NumeroReducoes(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_NumeroReducoes(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_NumeroCuponsCancelados(Índice 1419)

Método: Daruma_FI_NumeroCuponsCancelados [Índice 1419]
Previous Top Next

· Definição do Método:
Retorna o número de cupons cancelados.

· Parâmetros do Método:
Cupons Cancelados: Variável String por referência com o tamanho de 4(quatro) posições para receber o número de cupons cancelados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_NumeroCuponsCancelados(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_NumeroCuponsCancelados(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_NumeroOperacoesNaoFiscais(Índice 1418)

Método: Daruma_FI_NumeroOperacoesNaoFiscais [Índice 1418]
Previous Top Next

· Definição do Método:
Retorna o número de operações não fiscais executadas na impressora.

· Parâmetros do Método:
Operações: Variável String por referência com 6(seis) posições para receber o número de operações.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(6)
Int_Retorno = Daruma_FI_NumeroOperacoesNaoFiscais(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,6);
Int_Retorno := Daruma_FI_NumeroOperacoesNaoFiscais(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_DataHoraImpressora(Índice 1434)

Método: Daruma_FI_DataHoraImpressora [Índice 1434]
Previous Top Next

· Definição do Método:
Retorna a data e a hora atual da impressora.

· Parâmetros do Método:
1. Data: Variável String por referência com 6(seis) posições para receber a data atual da impressora no formato ddmmaa.
2. Hora: Variável String por referência com 6(seis) posições para receber a hora atual da impressora no formato hhmmss.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Data As String
Dim Str_Hora As String
Str_Data = Space(6)
Str_Hora = Space(6)
Int_Retorno = Daruma_FI_DataHoraImpressora(Str_Data, Str_Hora)
TX_Retorno.Text = " Data:" + Str_Data + " Hora:" + Str_Hora

· Exemplo em Delphi 7.0:
var
Str_Data: String;
Str_Hora: String;
begin
SetLength (Str_Data,6);
SetLength (Str_Hora,6);
Int_Retorno := Daruma_FI_DataHoraImpressora(Str_Data, Str_Hora );
Edit1.Lines.Text := Pchar(' Data: ' + Str_Data + ' Hora: ' + Str_Hora);


Daruma_FI_DataHoraReducao(Índice 1437)

Método: Daruma_FI_DataHoraReducao [Índice 1437]
Previous Top Next

· Definição do Método:
Retorna a data e a hora da última Redução Z.

· Parâmetros do Método:
1. Data Redução: Variável String por referência com 6(seis) posições para receber a data da última redução no formato ddmmaa.
2. Hora Redução: Variável String por referência com 6(seis) posições parar eceber a hora da última redução no formato hhmmss.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Data_Rdz As String
Dim Str_Hora_Rdz As String
Str_Data_Rdz = Space(6)
Str_Hora_Rdz = Space(6)
Int_Retorno = Daruma_FI_DataHoraReducao(Str_Data_Rdz, Str_Hora_Rdz)
TX_Retorno.Text = " Data:" + Str_Data_Rdz + " Hora:" + Str_Hora_Rdz

· Exemplo em Delphi 7.0:
var
Str_Data_Rdz: String;
Str_Hora_Rdz: String;
begin
SetLength (Str_Data_Rdz,6);
SetLength (Str_Hora_Rdz,6);
Int_Retorno := Daruma_FI_DataHoraReducao(Str_Data_Rdz, Str_Hora_Rdz );
Edit1.Lines.Text := pchar(' Data:' + Str_Data_Rdz + ' Hora:' + Str_Hora_Rdz);


Daruma_FI_DataMovimento(Índice 1438)

Método: Daruma_FI_DataMovimento [Índice 1438]
Previous Top Next

· Definição do Método:
Retorna a data do último movimento.

· Parâmetros do Método:
Data Movimento: Variável por referência 6(seis) posições para receber a data do movimento no formato ddmmaa.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observação:
- Este método retornará na FS600 - 010100 caso o dia não tenha sido aberto.
- Já na FS345 será retornado 000000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Data_Mov As String
Str_Data_Mov = Space(6)
Int_Retorno = Daruma_FI_DataMovimento(Str_Data_Mov)
TX_Retorno.Text = " Data:" + Str_Data_Mov

· Exemplo em Delphi 7.0:
var
Str_Data_Mov: String;
begin
SetLength (Str_Data_Mov,6);
Int_Retorno := Daruma_FI_DataMovimento(Str_Data_Mov);
Edit1.Lines.Text := (' Data: ' + Str_Data_Mov);


Daruma_FI_ContadoresTotalizadoresNaoFiscais(Índice 1435)

Método: Daruma_FI_ContadoresTotalizadoresNaoFiscais [Índice 1435]
Previous Top Next

· Definição do Mátodo:
Retorna o número de vezes em que os totalizadores não sujeitos ao ICMS foram usados.

· Parâmetros do Método:
Contadores: Variável por referência com 44(quarenta e quatro) posições para receber os contadores dos totalizadores.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- A impressora fiscal Daruma, permite a programação de até 50 totalizadores não fiscais, porém esse Método retorna somente os contadores dos 9 primeiros totalizadores cadastrados.
- O conteúdo da variável retornada será 36 dígitos separados de 4 em 4 por vírgura que representam os 9 primeiros totalizadores.
Ex.: "0001, 0003, 0001, 0005, 0004, 0002, 0003, 0004, 0007"
- O primeiro valor corresponde ao número de vezes que o totalizador 01 foi usado, o segundo corresponde ao totalizador 02 e assim sucessivamente. A contagem Inicia-se do contador 03 em diante pois o 01 e 02 sempre sera Sangria e Suprimento.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(44)
Int_Retorno = Daruma_FI_ContadoresTotalizadoresNaoFiscais(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,44);
Int_Retorno := Daruma_FI_ContadoresTotalizadoresNaoFiscais(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_LerAliquotasComIndice(Índice 1483)

Método: Daruma_FI_LerAliquotasComIndice [Índice 1483]
Previous Top Next

· Definição do Método:
Retorna as alíquotas cadastradas na impressora com o Indice indicativo se a mesma esta cadastrada no ISS ou no ICMS.

· Parâmetros do Método:
Alíquotas: Variável por referência com o tamanho de 300(trezentas) posições para receber as alíquotas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Inicio com S significa que é ISS.
- Inicio com T significa que é ICMS.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(300)
Int_Retorno = Daruma_FI_LerAliquotasComIndice(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,300);
Int_Retorno := Daruma_FI_LerAliquotasComIndice(Str_Informacao);
Edit1.lines.Text := (Str_Informacao);


Daruma_FI_VendaBruta(Índice 1490)

Método: Daruma_FI_VendaBruta [Índice 1490]
Previous Top Next

· Definição do Método:
Retorna o valor Total Bruto Vendido até o momento do referido movimento.

· Parâmetros do Método:
Venda Bruta: Variável por referência com 18(dezoito) posições para receber o valor da venda bruta com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(18)
Int_Retorno = Daruma_FI_VendaBruta(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,18);
Int_Retorno := Daruma_FI_VendaBruta(Str_Informacao );
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VendaBrutaAcumulada(Índice 1498)

Método: Daruma_FI_VendaBrutaAcumulada [Índice 1498]
Previous Top Next

· Definição do Método:
Retorna o Valor da Venda Bruta Acumulada na Memória Fiscal do ECF, referente ao último movimento.

· Parâmetros do Método:
Venda Bruta Acumulada: Variável por referência com 18(dezoito) posições para receber o valor da venda bruta acumulada na MF até a última ReduçãoZ com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método deve ser executado imediatamente após o dia fiscal ter sido iniciado.
- Este método não deve ser utilizado após o dia fiscal ter sido iniciado.
- Para pegar a venda bruta após cada cupom utilize o método: Daruma_FI_VendaBruta(Índice 1490).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,20);
Int_Retorno := Daruma_FI_VendaBrutaAcumulada(Str_Informacao );
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_GrandeTotal(Índice 1414)

Método: Daruma_FI_GrandeTotal [Índice 1414]
Previous Top Next

· Definição do Método:
Retorna o valor do Grande Total da impressora.

· Parâmetros do Método:
Grande Total: Variável por referência com 18(dezoito) posições para receber o valor do grande total com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(18)
Int_Retorno = Daruma_FI_GrandeTotal(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,18);
Int_Retorno := Daruma_FI_GrandeTotal(Str_Informacao );
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_Descontos(Índice 1415)

Método: Daruma_FI_Descontos [Índice 1415]
Previous Top Next

· Definição do Método:
Retorna a valor acumulado dos descontos.

· Parâmetros do Método:
Descontos: Variável por referência com 14(quatorze) posições para receber o valor dos descontos com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_Descontos(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_Descontos(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_Acrescimos(Índice 1441)

Método: Daruma_FI_Acrescimos [Índice 1441]
Previous Top Next

· Definição do Método:
Retorna a valor acumulado dos acrescimos.

· Parâmetros do Método:
Descontos: Variável por referência com 14(quatorze) posições para receber o valor dos descontos com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observação:
- Este método só irá retornar valores, se a impressora for uma FS600 ou uma FS2100T. Portanto não retornará acréscimos na FS345.
- Não é armazenado o valor dos acréscimos (IOF), na MF do ECF FS345, porque a FS345 foi homologada em um convênio que não exigia que armazene os acréscimos. Assim sendo o valor retornado será sempre 00000000000000.
- Este método irá retornar o valor acumulado dos acrescimos, somente na impressoras FS600 e FS2100T Térmicas, quando houver.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_Descontos(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_Descontos(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_Cancelamentos(Índice 1416)

Método: Daruma_FI_Cancelamentos [Índice 1416]
Previous Top Next

· Definição do Método:
Retorna o valor acumulado dos itens e dos cupons cancelados, referente ao movimento atual.

· Parâmetros do Método:
Cancelamentos: Variável por referência com 14(quatorze) posições para receber o valor dos cancelamentos com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_Cancelamentos(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_Cancelamentos(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_DadosUltimaReducao(Índice 1410)

Método: Daruma_FI_DadosUltimaReducao [Índice 1410]
Previous Top Next

· Definição do Método:
Retorna os dados da impressora no momento da última Redução Z.

· Parâmetros do Método:
Dados Redução: Variável por referência com o tamanho de 631(seiscentos e trinta e um) posições para receber os dados da última redução.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método só irá retornar valores, no campo acréscimos, se a impressora for uma FS600 ou uma FS2100T. Portanto não retornará acréscimos na FS345.
- Não é armazenado o valor dos acréscimos (IOF), na MF do ECF FS345, porque a FS345 foi homologada em um convênio que não exigia que armazene os acréscimos. Assim sendo o valor retornado será sempre 00000000000000
- São retornados os valores das seguintes informações separados por vírgulas:

Observação: O campo Data de Impressão, irá conter a data de impressão, somente quando for uma FS345, quando for uma FS600 ou 2100T, a data retornada será a data do movimento.
Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(631)
Int_Retorno = Daruma_FI_DadosUltimaReducao(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,631);
Int_Retorno := Daruma_FI_DadosUltimaReducao(Str_Informacao);
Edit1.lines.Text := (Str_Informacao);


Daruma_FI_SubTotal(Índice 1408)

Método: Daruma_FI_SubTotal [Índice 1408]
Previous Top Next

· Definição do Método:
Retorna o valor do subtotal do cupom.

· Parâmetros do Método:
SubTotal: Variável por referência com o tamanho de 14(quatorze) posições para receber o subtotal do cupom.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_SubTotal(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_Subtotal(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_Troco(Índice 1450)

Método: Daruma_FI_Troco [Índice 1450]
Previous Top Next

· Definição do Método:
Retorna o valor do Troco do cupom.

· Parâmetros do Método:
Troco: Variável por referência com o tamanho de 18(dezoito) posições para receber o troco do cupom.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom deverá estar aberto;
- Este método deve ser executado, emediatamente após o método Daruma_FI_EfetuaFormaPagamento;
- Caso este método seja executado como cupom fechado, será devolvido zero no valor retornado.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(18)
Int_Retorno = Daruma_FI_Troco(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,18);
Int_Retorno := Daruma_FI_Troco(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_SaldoAPagar(Índice 1449)

Método: Daruma_FI_SaldoAPagar [Índice 1449]
Previous Top Next

· Definição do Método:
Retorna o valor do Saldo a Pagar do cupom.

· Parâmetros do Método:
Saldo: Variável por referência com o tamanho de 18(dezoito) posições para receber o saldo do cupom.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(18)
Int_Retorno = Daruma_FI_SaldoAPagar(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,18);
Int_Retorno := Daruma_FI_SaldoAPagar(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornoAliquotas (Índice 1406)

Método: Daruma_FI_RetornoAliquotas [Índice 1406]
Previous Top Next

· Definição do Método:
Retorna as alíquotas cadastradas na impressora.

· Parâmetros do Método:
Alíquotas: Variável por referência com o tamanho de 79(setenta e nove) posições para receber as alíquotas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- As alíquotas retornadas estarão separadas por vírgula. Ex.: 1200, 1700, 0500, 1800

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(79)
Int_Retorno = Daruma_FI_RetornoAliquotas(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,79);
Int_Retorno := Daruma_FI_RetornoAliquotas(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_ValorPagoUltimoCupom (Índice 1433)

Método: Daruma_FI_ValorPagoUltimoCupom [Índice 1433]
Previous Top Next

· Definição do Método:
Retorna o valor pago no último cupom.

· Parâmetros do Método:
Valor: Variável por referência com 14(quatorze) posições para receber o valor pago no último cupom.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:

- Valor pago no último cupom é diferente do valor total do cupom.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_ValorPagoUltimoCupom(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_ValorPagoUltimoCupom(Str_Informacao);
Edit1.lines.Text := (Str_Informacao);


Daruma_FI_UltimaFormaPagamento (Índice 1473)

Método: Daruma_FI_UltimaFormaPagamento [Índice 1473]
Previous Top Next

· Definição do Método:
Retorna a última forma de pagamento e também o valor que foi pago.

· Parâmetros do Método:
- Forma Pagamento: Variável por referência com 16(dezeseis) posições para a descrição da Forma de Pagamento.
- Valor: Variável por referência com 14(quatorze) posições para receber o valor pago.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_Forma As String
Dim Str_Valor_Forma As String
Str_Descricao_Forma = Space(16)
Str_Valor_Forma = Space(14)

Int_Retorno = Daruma_FI_UltimaFormaPagamento(Str_Descricao_Forma, Str_Valor_Forma)
TX_Retorno.Text = Str_Descricao_Forma + " = " + Str_Valor_Forma

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma: String;
Str_Valor_da_Forma: String;
begin
SetLength (Str_Descricao_da_Forma,16);
SetLength (Str_Valor_da_Forma,14);
Int_Retorno := Daruma_FI_UltimaFormaPagamento(Str_Descricao_da_Forma, Str_Valor_da_Forma);
Edit1.Lines.Text := pchar(Str_Descricao_da_Forma + ' = ' + Str_Valor_da_Forma);


Daruma_FI_ValorFormaPagamento (Índice 1446)

Método: Daruma_FI_ValorFormaPagamento [Índice 1446]
Previous Top Next

· Definição do Método:
Retorna o valor acumulado em uma determinada forma de pagamento.

· Parâmetros do Método:
Forma Pagamento: Variável por referência com até 16(dezeseis) posições com a descrição da Forma de Pagamento que deseja retornar o seu valor.
- Valor: Variável por referência com 14(quatorze) posições para receber o total acumulado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_Forma As String
Dim Str_Valor_Forma As String
Str_Descricao_Forma = Space(16)
Str_Valor_Forma = Space(14)
Str_Descricao_Forma = InputBox("Entre com a Forma de Pagamento a ser consultada:", "Daruma Framework", "Dinheiro")
Int_Retorno = Daruma_FI_ValorFormaPagamento(Str_Descricao_Forma, Str_Valor_Forma)
TX_Retorno.Text = Str_Descricao_Forma + " = " + Str_Valor_Forma

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma: String;
Str_Valor_da_Forma: String;
begin
SetLength (Str_Descricao_da_Forma,16);
SetLength (Str_Valor_da_Forma,14);
Str_Descricao_da_Forma := InputBox('Entre com a Forma de Pagamento a ser consultada:', 'Daruma Framework', 'Dinheiro');
if Str_Descricao_da_Forma = '' Then
Exit;
Int_Retorno := Daruma_FI_ValorFormaPagamento((Str_Descricao_da_Forma),(Str_Valor_da_Forma)) ;
Edit1.Lines.Text := (pchar(Str_Descricao_da_Forma + ' = ' + Str_Valor_da_Forma));


Daruma_FI_ValorTotalizadorNaoFiscal (Índice 1447)

Método: Daruma_FI_ValorTotalizadorNaoFiscal [Índice 1447]
Previous Top Next

· Definição do Método:
Retorna o valor acumulado em um determinado totalizador não fiscal.

· Parâmetros do Método:
Totalizador: Variável por referência com até 19(dezenove) posições com a descrição do Totalizador.
Valor: Variável por referência com 14(quatorze) posições para receber a informação.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.
-25: Totalizador não programado.
Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Totalizador_Nao_Fiscal As String
Dim Str_Valor_Totalizador As String
Str_Totalizador_Nao_Fiscal = Space(19)
Str_Valor_Totalizador = Space(14)
Str_Totalizador_Nao_Fiscal = InputBox("Entre com a Descrição do Totalizador a ser consultado:", "Daruma Framework", "Conta de Luz")
Int_Retorno = Daruma_FI_ValorTotalizadorNaoFiscal(Str_Totalizador_Nao_Fiscal, Str_Valor_Totalizador)
TX_Retorno.Text = Str_Totalizador_Nao_Fiscal + " = " + Str_Valor_Totalizador

· Exemplo em Delphi 7.0:
var
Str_Totalizador_Nao_Fiscal: String;
Str_Valor_do_Totalizador: String;
begin
SetLength (Str_Totalizador_Nao_Fiscal,19);
SetLength (Str_Valor_do_Totalizador,14);
Str_Totalizador_Nao_Fiscal := InputBox('Entre com a Descricao do Totalizador a ser consultado:', 'Daruma Framework', 'Conta de Luz');
Int_Retorno := Daruma_FI_ValorTotalizadorNaoFiscal((Str_Totalizador_Nao_Fiscal),(Str_Valor_do_Totalizador) );
Edit1.Lines.Text := pchar(Str_Totalizador_Nao_Fiscal + ' = ' + Str_Valor_do_Totalizador);


Daruma_FI_UltimoItemVendido (Índice 1423)

Método: Daruma_FI_UltimoItemVendido [Índice 1423]
Previous Top Next

· Definição do Método:
Retorna o número do último item vendido.

· Parâmetros do Método:
Último Item: Variável por referência com 4(quatro) posições para receber o número do último item vendido.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_UltimoItemVendido(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_UltimoItemVendido(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_TipoUltimoDocumento (Índice 1493)

Método: Daruma_FI_TipoUltimoDocumento [Índice 1493]

Previous Top Next

· Definição do Método:
Retorna o tipo do último cupom emitido.

· Que poderá ser:

CPF Cupom Fiscal
CNF Comprovante Não Fiscal
LXG Leitura X Gerencial
LRG Leitura X Relatorio Gerencial
CNV comprovante Não Fiscal Vinculado (TEF)
LMF Leitura Memória Fiscal
LXX Leitura X comum, sem relatorio gerencial
LRZ Redução Z

· Parâmetros do Método:
Último Item: Variável por referência com 3(três) posições para receber o número do último item vendido.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Exemplo:
Se o último documento emitido tiver sido uma ReduçãoZ então o retorno será este: LRZ

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(3)
Int_Retorno = Daruma_FI_TipoUltimoDocumento(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_TipoUltimoDocumento(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_MapaResumo(Índice 602)

Método: Daruma_FI_MapaResumo [Índice 602]
Previous Top Next

· Definição do Método:
Gera o relatório "Mapa Resumo" referênte ao movimento do dia. As informações serão geradas no arquivo RETORNO.TXT no diretório configurado no parâmetro "path" na chave do Registry. O diretório default configurado é o diretório raiz (C:\).

· Parâmetros da Função:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método só irá retornar valores, se a impressora for uma FS600 ou uma FS2100T. Portanto não retornará acréscimos na FS345.
- Não é armazenado o valor dos acréscimos (IOF) na MF do ECF FS345, porque a FS345 foi homologada em um convênio que não exigia que se armazenasse os acréscimos. Assim sendo o valor retornado será sempre 00000000000000.
- Nas impressoras FS345 é necessário habilitar o FLAG no registro(REGEDIT) chamado 'CRZCompativel' = '1', ou usar a função Daruma_Registry_AlteraRegistry, passando a chave referente.
- As informações contidas no mapa resumo podem variar de Estado para Estado. Essa função gera o relatório com as informações padrões que são usadas na maioria dos Estados. O relatório gerado terá o seguinte layout:

Contador de Redução Z..: 0480

COO....................: 000110

Venda Bruta............: 0,00

Venda Líquida..........: 0,00

Cancelamentos..........: 0,00

Acréscimos.............: 0,00

Descontos..............: 0,00

ISS....................: 0,00

Isenção................: 0,00 - II

Não Incidência.........: 0,00 - NN

Substituição Tributária: 0,00 - FF

1200...................: 0,00 - Aliquota

- Após a linha "Substituição Tributária" serão gravadas as informações de vendas referente as alíquotas de ICMS. Portanto, o número de linhas irá variar de acordo com o número de alíquotas de ICMS cadastradas na impressora.

- As informações contidas no mapa resumo serão referentes aos dados da última redução Z, portanto, para gerar o mapa resumo referente ao movimento do dia você deve executar essa função após a redução Z, caso contrário o mapa resumo será gerado com as informações referente ao movimento do dia anterior, para isso você mesmo podera efetuar a Redução Z Daruma_Registry_ZAutomatica configurando a Chave para o Valor 1(um).

- Lembrando que a DLL gera esse Layout, não tendo como alterá-lo.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_MapaResumo()

Shell "notepad C:\retorno.txt", vbMaximizedFocus

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_MapaResumo();
WinExec('c:\windows\NOTEPAD.EXE C:\retorno.txt',SW_SHOWNORMAL);


Daruma_FI_RelatorioTipo60Analitico(Índice 605)

Método: Daruma_FI_RelatorioTipo60Analitico [Índice 605]
Previous Top Next

· Definição do Método:
Gera o relatório "Tipo 60 analítico" exigido pelo convênio de ICMS 85/2001. As informações serão geradas no arquivo RETORNO.TXT no diretório configurado no parâmetro "path" na Chave do Registry. O diretório default é o diretório raiz (C:\).

· Parâmetros da Função:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:

- O relatório gerado terá o seguinte layout:

Tipo do relatório.........: 60

Subtipo...................: A

Data de emissão...........: 09/09/05

Número de série...........: 000000000036861

Cancelamentos.............: 0,00

Descontos.................: 0,00

F.........................: 0,00

I.........................: 0,00

N.........................: 0,00

1200......................: 0,00

ISS.......................: 0,00

- Após a linha "N..." serão gravadas as informações de vendas referentes às alíquotas tributárias. Portanto, o número de linhas irá variar de acordo com o número de alíquotas cadastradas na impressora.

- Nas impressoras FS345 é necessário habilitar o FLAG no registro(REGEDIT) chamado 'CRZCompativel' = '1', ou usar a função Daruma_Registry_AlteraRegistry, passando a chave referente.

- As informações contidas no relatório Tipo 60 Analítico são referentes aos dados da última Redução Z. Portanto, para gerar o relatório referente ao movimento do dia você deve executar esse método após a Redução Z, caso contrário as informações geradas serão referentes ao movimento do dia anterior, para isso você mesmo podera efetuar a Redução Z configurando Daruma_Registry_ZAutomatica o a Chave para o Valor 1(um).

- Lembrando que a DLL gera esse Layout, não tendo como alterá-lo.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_RelatorioTipo60Analitico()

Shell "notepad C:\retorno.txt", vbMaximizedFocus

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_RelatorioTipo60Analitico();
WinExec('c:\windows\NOTEPAD.EXE C:\retorno.txt',SW_SHOWNORMAL);


Daruma_FI_RelatorioTipo60Mestre(Índice 606)

Método: Daruma_FI_RelatorioTipo60Mestre [Índice 606]
Previous Top Next

· Definição do Método:
Gera o relatório "Tipo 60 Mestre" exigido pelo convênio de ICMS 85/2001. As informações serão geradas no arquivo RETORNO.TXT no diretório configurado no parâmetro "path" na chave do registry. O diretório default é o diretório raiz (C:\).

· Parâmetros da Função:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:

- O relatório gerado terá o seguinte layout:

Tipo do relatório.........: 60

Subtipo...................: M

Data de emissão...........: 09/09/05

Número de série...........: 000000000036861

Número do equipamento.....: 0013

Modelo do documento fiscal: 2D

COO inicial...............: 000111

COO final.................: 000125

Contador de reduções......: 0480

Reinicio de Operacao......: 0388

Venda Bruta...............: 0,00

Totalizador geral.........: 4.135.406,04

- As informações contidas no relatório Tipo 60 Mestre são alimentadas pelo Método Daruma_FI_AberturaDoDia e pelo outro Método Daruma_FI_FechamentoDoDia: e (veja esses métodos para maiores informações). O Método Daruma_FI_RelatorioTipo60Mestre deve ser executado após Daruma_FI_FechamentoDoDia() e o método ou após a Redução Z (caso a redução tenha sido executada automaticamente pela impressora).

- Nas impressoras FS345 é necessário habilitar o FLAG no registro(REGEDIT) chamado 'CRZCompativel' = '1', ou usar a função Daruma_Registry_AlteraRegistry, passando a chave referente.

- Lembrando que a DLL gera esse Layout, não tendo como alterá-lo.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_RelatorioTipo60Mestre()

Shell "notepad C:\retorno.txt", vbMaximizedFocus

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_RelatorioTipo60Mestre();
WinExec('c:\windows\NOTEPAD.EXE C:\retorno.txt',SW_SHOWNORMAL);


Daruma_FI_FlagsFiscais(Índice 1428)

Método: Daruma_FI_FlagsFiscais [Índice 1428]
Previous Top Next

· Definiçãdo do Método:
Retorna um número referênte ao flag fiscal da impressora. Veja discriminação abaixo.

· Parâmetros do Método:
FlagFiscal: Variável inteira para receber um número representando o flag fiscal da impressora. Veja discriminação abaixo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Discriminação dos valores para o flag fiscal:

Descrição Valor
Cupom fiscal aberto 1
Fechamento de formas de pgto iniciado 2
Horário de verão selecionado 4
Já houve redução Z no dia 8
Permite cancelar cupom fiscal 32
Memória fiscal sem espaço 128

- Os valores podem vir somados o que indica mais de um estado.
- Por Exemplos se o cupom estiver aberto e o horário de verão selecionado então o flag virá = 37.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Informacao = 0
Int_Retorno = Daruma_FI_FlagsFiscais(Int_Informacao)
TX_Retorno.Text = Int_Informacao

· Exemplo em Delphi 7.0:
var Int_Informacao: Integer;
begin
Int_Informacao:= 0;
Int_Retorno := Daruma_FI_FlagsFiscais( Int_Informacao );
Edit1.Lines.Text := IntToStr(Int_Informacao);


Daruma_FI_PalavraStatus(Índice 1481)

Método: Daruma_FI_PalavraStatus [Índice 1481]
Previous Top Next

· Definição do Método:
Retorna o Status do ECF em Bytes 12 Bytes)

· Parâmetros do Método:
String com 12 Posições para receber a palavra de status Ex. A4C60C000000.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna 12 Caracteres ASCII no Seguinte Formato.

Byte 1 (S1) - S1 Significa STATUS 1
Byte 2 (S2)
Byte 3 (S3)
Byte 4 (S4)
Byte 5 (S5)
Byte 6 (S6)
Byte 7 (S7)
Byte 8 (S8)
Byte 9 (S9)
Byte 10 (S10)
Byte 11 (S11)
Byte 12 (S12)

Para Analisar Cada Byte Siga a Seguinte Tabela Abaixo:

Bit Descrição de S1
b3 0 = Gaveta do caixa fechada
1 = Gaveta do caixa aberta
b2 0 = Impressora operacional
1 = Impressora em falha mecânica
b1 0 = Documento posicionado para autenticação
1 = Sem documento em posição de autenticação
b0 0 = Papel presente
1 = Fim da bobina de papel

Bit Descrição de S2
b3 0 = Impressora On Line
1 = Impressora Off Line
b2 0 = Periférico conectado na Interface Auxiliar
1 = Nenhum periférico conectado
b1 0 = Não há redução Z pendente
1 = Redução Z do período anterior ainda pendente
b0 0 = Near End não detectado
1 = Detectado proximidade de Fim de Papel

Bit Descrição de S3
b3 0 = Impressora em modo manutenção
1 = Impressora em modo operação
b2 0 = Sensor de autenticação desabilitado
1 = Sensor de autenticação ativo
b1 0 = Guilhotina desabilitada
1 = Guilhotina habilitada
b0 0 = Fechamento automático de C.F. desabilitado
1 = Fechamento automático de C.F. habilitado

Bit Descrição de S4
b3 0 = Relatório gerencial não aberto
1 = Relatório gerencial aberto
b2 0 = Cupom Fiscal não aberto
1 = Cupom Fiscal aberto
b1 0 = Buffer de comunicação não vazio
1 = Buffer de comunicação vazio
b0 0 = Impressão encerrada
1 = Impressão em andamento

Bit Descrição de S5
b3 0 = Jumper de operação instalado
1 = Jumper de operação removido (deslacrado)
b2 0 = Impressora operacional
1 = Impressora em Erro Fiscal (bloqueada)
b1 0 = MF presente
1 = MF ausente ou não inicializada
b0 0 = Modo normal
1 = Modo treinamento

Bit Descrição de S6
b3 0 = Configuração da IF habilitada
1 = Configuração da IF inibida até a próxima Redução Z
b2 0 = Leitura X do início do dia ainda não emitida
1 = Leitura X do início do dia já emitida
b1 0 = Impressora em operação
1 = Redução Z de hoje já emitido (IF travada até 0h)
b0 0 = Fita detalhe OK
1 = Fim do papel da fita detalhe

Bit Descrição de S7
b3 Sempre zero
b Sempre zero
b1 Sempre zero
b0 Sempre zero

Bit Descrição de S8
b3 Sempre zero
b2 Sempre zero
b1 0 = Não ocorreu queda de energia
1 = Ocorreu queda de energia
b0 0 = Impressão encerrada
1 = Impressão em andamento ou pendente

Bit Descrição de S9
b3 Sempre zero
b2 Sempre zero
b1 Sempre zero
b0 0 = Totalizadores Fiscais OK
1 = Erro nos totalizadores fiscais

Bit Descrição de S10
b3 0 = MF OK
1 = Erro na Leitura da MF ou MF substituída
b2 0 = Gravação da MF OK
1 = Erro na gravação da MF
b1 0 = Relógio interno OK
1 = Erro no relógio interno
b0 0 = Clichê do proprietário OK
1 = Clichê do proprietário danificado

Bit Descrição de S11
b3 Sempre zero
b Sempre zero
b1 Sempre zero
b0 Sempre zero

Valor Descrição de S12
0 Impressora OK
1 Falha no tacogerador
2 Falha no sensor de margem
4 Falha de guilhotina
5 Firmware inválido
Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(12)
Int_Retorno = Daruma_FI_PalavraStatus(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,12);
Int_Retorno := Daruma_FI_PalavraStatus(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_FlagsFiscaisStr(Índice 1479)

Método: Daruma_FI_FlagsFiscaisStr [Índice 1479]
Previous Top Next

· Definiçãdo do Método:
Retorna um número referente ao flag fiscal da impressora. Veja discriminação abaixo.

· Parâmetros do Método:
FlagFiscal: Variável string por referência para receber um número representando o flag fiscal da impressora. Veja discriminação abaixo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Discriminação dos valores para o flag fiscal:

Descrição Valor
Cupom fiscal aberto 1
Fechamento de formas de pgto iniciado 2
Horário de verão selecionado 4
Já houve redução Z no dia 8
Permite cancelar cupom fiscal 32
Memória fiscal sem espaço 128

- Os valores podem vir somados o que indica mais de um estado.
- Por Exemplos se o cupom estiver aberto e o horário de verão selecionado então o flag virá = 37.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Informacao = 0
Int_Retorno = Daruma_FI_FlagsFiscaisStr(Int_Informacao)
TX_Retorno.Text = Int_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);

Int_Retorno := Daruma_FI_FlagsFiscaisStr( Str_Informacao );
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_SimboloMoeda(Índice 1427)

Método: Daruma_FI_SimboloMoeda [Índice 1427]
Previous Top Next

· Definição do Método:
Retorna o símbolo da moeda cadastrada na impressora.

· Parâmetros do Método:
Símbolo Moeda: Variável por refêrencia com 2(duas) posições para receber o símbolo da moeda.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(2)
Int_Retorno = Daruma_FI_SimboloMoeda(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FI_SimboloMoeda(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornoImpressora(Índice 1402)

Método: Daruma_FI_RetornoImpressora [Índice 1402]
Previous Top Next

· Definição do Método:
Lê o retorno da impressora referente ao último método enviado.

· Parâmetros do Método:
1. ACK: Variável INTEIRA para receber o primeiro byte.
2. ST1: Variável INTEIRA para receber o segundo byte.
3. ST2: Variável INTEIRA para receber o terceiro byte.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método deve ser usado após a execução de qualquer outro Método. Este Método devolve Retorno da Impressora ou seja os valores do ST1 e do ST2 .

Exemplos:

· Exemplo em Visual Basic 6.0:
Global Int_Retorno As Integer
Global Int_Ack As Integer
Global Int_St1 As Integer
Global Int_St2 As Integer
Global Str_ErroExtendido As String

Public Function Daruma_MostrarRetorno()

Int_Ack = 0
Int_St1 = 0
Int_St2 = 0
Daruma_FI_RetornoImpressora Int_Ack, Int_St1, Int_St2

Str_ErroExtendido = Space(4)
Daruma_FI_RetornaErroExtendido Str_ErroExtendido

MsgBox "Retorno do Método = " + CStr(Int_Retorno) + Chr(13) + Chr(10) _
+ "Ack = " + CStr(Int_Ack) + Chr(13) + Chr(10) _
+ "St1 = " + CStr(Int_St1) + Chr(13) + Chr(10) _
+ "St2 = " + CStr(Int_St2) + Chr(13) + Chr(10) _
+ "Erro Extendido = " + Str_ErroExtendido, , "Daruma Framework Retorno do Método"

End Function

· Exemplo em Delphi 7.0:
Var Daruma_ACK,Daruma_ST1,Daruma_ST2:Integer;
begin
Daruma_Ack := 0;
Daruma_ST1 := 0;
Daruma_ST2 := 0;
Int_Retorno:= Daruma_FI_RetornoImpressora( Daruma_ACK, Daruma_ST1, Daruma_ST2 );


Daruma_FI_RetornaErroExtendido(Índice 1472)

Método: Daruma_FI_RetornaErroExtendido [Índice 1472]
Previous Top Next

· Definição do Método:
Retorna o Erro Extendido do ECF, além do ST1 e ST2 retorna uma Tabela Completa de Erros.

· Parâmetros do Método:
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 NÃO HAJA ERRO.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Tabela de Erro Retornada:
================================================================
00 IF em modo Manutenção. Foi ligada sem o Jumper de Operação
01 Método disponível somente em modo Manutenção
02 Erro durante a gravação da Memória Fiscal
03 Memória Fiscal esgotada
04 Erro no relógio interno da IF
05 Falha mecânica na IF
06 Erro durante a leitura da Memória Fiscal
07 Metodo permitido apenas em modo fiscal (IF sem jmper)
08 Relatório Gerêncial não aberto
10 Documento sendo emitido
11 Documento não foi aberto
12 Não existe documento a cancelar
13 Dígito não numérico não esperado, foi encontrado nos Parâmetros do Método
14 Não há mais memória disponível para esta operação/Não há nenhuma posição de méria disponível.
15 Item a cancelar não foi encontrado
16 Erro de sintaxe no método
17 "Estouro" de capacidade numérica (overflow)
18 Selecionado totalizador tributado com alíquota de imposto não definida
19 Memória Fiscal vazia
20 Não existem campos que requerem atualização
21 Detectado proximidade do final da bobina de papel
22 Cupom de Redução Z já foi emitido. IF inoperante até 0:00h do próximo dia
23 Redução Z do período anterior ainda pendente. IF inoperante
24 Valor de desconto ou acréscimo inválido (limitado a 100%)
25 Caráctere inválido foi encontrado nos Parâmetros do Métodos
26 Médoto não pode ser executado
27 Impressora fora de Linha/Nenhum periférico conectado a interface auxiliar
28 Foi encontrado um campo em zero
29 Documento anterior não foi Cupom Fiscal. Não pode emitir Cupom Adicional
30 Acumulador Não Fiscal selecionado não é válido ou não está disponível
31 Não pode autenticar. Excedeu 4 repetições ou não é permitida nesta fase
32 Cupom adicional inibido por configuração
35 Relógio Interno Inoperante
36 Versão do firmware gravada na Memória Fiscal não é a esperada
37 Alíquota de imposto informada já está carregada na memória
38 Forma de pagamento selecionada não é válida
39 Erro na seqüência de fechamento do Cupom Fiscal
40 IF em Jornada Fiscal. Alteração da configuração não é permitida
41 Data inválida. Data fornecida é inferior à última gravada na Memória Fiscal
42 Leitura X inicial ainda não foi emitida
43 Não pode emitir Comprovante Vinculado
44 Cupom de Orçamento não permitido para este estabelecimento(Mensagem do Aplicativo Não Programada)
45 Campo obrigatório em branco
48 Não pode estornar
49 Forma de pagamento indicada não encontrada
50 Fim da bobina de papel
51 Nenhum usuário cadastrado na MF
52 MF não instalada ou não inicializada
56 Documento já aberto
61 Queda de energia durante a emissão de Cupom Fiscal
75 Operação com ISS não permitida (se a sua impressora for uma FS600 ou FS2100T, então será preciso ter uma inscrição municipal gravada em sua impressora para que seja possível programar/utilizar alíquota de serviço).
76 Desconto em ISS não permitido neste ECF (a programação deverá ser feita por meio de intervenção técnica e caso o Estado permita)
77 Acréscimo em IOF inibido
80 Periférico na interface auxiliar não pode ser reconhecido
81 Solicitado preenchimento de cheque de banco desconhecido
82 Solicitado transmissão de mensagem nula pela interface auxiliar
83 Extenso do cheque não cabe no espaço disponível
84 Erro na comunicação com a interface auxiliar
85 Erro no dígito verificador durante comunicação com a PertoCheck
86 Falha na carga de geometria de folha de cheque
87 Parâmetros do Método: invállido para o campo de data do cheque
90 Sequência de validação de número de série inválida
180 Mensagem do aplicativo não programada. (Esta mensagem não é opcional e sim uma exigência da legislação e deverá ser programada para que o ECF seja liberado para a emissão de documentos fiscais. Para programar a mensagem use os métodos:Daruma_Registry_AplMensagem1(Índice 36) e método:Daruma_Registry_AplMensagem2(Índice 37).
181 Não é possivel realizar Redução Z entre 00:00am e 02:00am (Meia Noite e Duas da Manhã) nesta versão de firmware da FS600 (está limitação existe nas versões 1.1 pra baixo.
182 Tampa aberta.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaErroExtendido(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaErroExtendido(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaAcrescimoNF(Índice 1451)

Método: Daruma_FI_RetornaAcrescimoNF [Índice 1451]
Previous Top Next

· Definição do Método:
Retorna o valor acumulado no totalizador de Acrescimos Não Fiscais. (14 Posições).

· Parâmetros do Método:
String: Variável por referência com o tamanho de 14(quatorze) posições para receber o acrescimoNF.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_RetornaAcrescimoNF(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_RetornaAcrescimoNF(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCFCancelados(Índice 1452)

Método: Daruma_FI_RetornaCFCancelados [Índice 1452]
Previous Top Next

· Definição do Método:
Retorna a Quantidade de Cupons Fiscais Cancelados (4 dígitos).

· Parâmetros do Método:
String: Variável por referência com o tamanho de 4(quatro) posições para receber os CFcancelados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaCFCancelados(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaCFCancelados(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCNFCancelados(Índice 1453)

Método: Daruma_FI_RetornaCNFCancelados [Índice 1453]
Previous Top Next

· Definição do Método:
Retorna a Quantidade de Cupons Nao Fiscais Cancelados (4 dígitos)

· Parâmetros do Método:
String: Variável por referência com o tamanho de 4(quatro) posições para receber os CNFcancelados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaCNFCancelados(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaCNFCancelados(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCLX(Índice 1454)

Método: Daruma_FI_RetornaCLX [Índice 1454]
Previous Top Next

· Definição do Método:
Retorna contador de LeituraX - Quantidade de Vezes em foram emitidas LeituraX no dia.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 4(quatro) posições para receber o CLX contador de leiturasX's emitidas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método não está disponível para a FS600 e FS2100T e retornará sempre 0000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaCLX(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaCLX(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCNFNV(Índice 1455)

Método: Daruma_FI_RetornaCNFNV [Índice 1455]
Previous Top Next

· Definição do Método:
Retorna o Valor Acumulado nos Comprovantes Não Fiscais Não Vinculados (14 dígitos) em cada sequência e por sua vez um contador de 4 dígitos indicando a quantidade de vezes em que foram utilizados no ECF.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 304(trezentas e quatro) posições para receber o CNFNV contador de comprovantes não fiscais não vinculados emitidos.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna os 16 Totalizadodes Não Fiscais Não Vinculados (CNFNV) na seguinte Ordem
16 Blocos composto de: 14 bytes
Valor Acumulado no Comprovante Não Fiscal Não Vinculado..........: 14 bytes - Recebimento Não Fiscal.
Contador deste Comprovante indicando a quant. de vezes utilizado.: 4 bytes
+ 1 caráctere Separador conforme configurado no Registry com o Método Daruma_Registry_Separador.

Retorno do Método:
000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(304)
Int_Retorno = Daruma_FI_RetornaCNFNV(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,304);
Int_Retorno := Daruma_FI_RetornaCNFNV(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCNFV(Índice 1456)

Método: Daruma_FI_RetornaCNFV [Índice 1456]
Previous Top Next

· Definição do Método:
Retorna o Valor Acumulado nos Comprovantes Não Fiscais Vinculados (14 dígitos) em cada sequência e por sua vez um contador de 4 dígitos indicando a quantidade de vezes em que foram utilizados no ECF.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 304(trezentas e quatro) posições para receber o CNFV contador de comprovantes não fiscais vinculados emitidos.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna os 16 Totalizadodes Não Fiscais Vinculados (CNFV) na seguinte Ordem
16 Blocos composto de: 14 bytes.
Valor Acumulado no Comprovante Não Fiscal Vinculado..........: 14 bytes
Contador deste Comprovante indicando a quant. de vezes utilizado.: 4 bytes
+ 1 caráctere Separador conforme configurado no Registry com o Método Daruma_Registry_Separador.

· Retorno do Método:
000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,000000000000000000,

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(304)
Int_Retorno = Daruma_FI_RetornaCNFV(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,304);
Int_Retorno := Daruma_FI_RetornaCNFV(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaDescicaoCNFV(Índice 1497)

Método: Daruma_FI_RetornaDescricaoCNFV [Índice 1497]
Previous Top Next

· Definição do Método:
Retorna o Valor Acumulado nos Comprovantes Não Fiscais Vinculados (14 dígitos) em cada sequência e por sua vez um contador de 4 dígitos indicando a quantidade de vezes em que foram utilizados no ECF.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 336 (trezentas e trinta e seis) posições para receber as descrições dos CNFV comprovantes não fiscais vinculados cadastrados, no ECF.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna os 16 Descrições dos Comprovantes Não Fiscais Vinculados (CNFV) na seguinte Ordem
16 Blocos composto de: 21 bytes para cada descrição.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(336)
Int_Retorno = Daruma_FI_RetornaDescricaoCNFV(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,336);
Int_Retorno := Daruma_FI_RetornaDescricaoCNFV(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCRO(Índice 1457)

Método: Daruma_FI_RetornaCRO [Índice 1457]
Previous Top Next

· Definição do Método:
Retorna a quantidade de Vezes em que se Reiniciou a Operação no ECF.
CRO - Contador de Reinício de Operação - Geralmente quando se cadastra um Novo Usuário no ECF.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 4(quatro) posições para receber o CRO contador de re-inicío de operações.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaCRO(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaCRO(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCRZ(Índice 1458)

Método: Daruma_FI_RetornaCRZ [Índice 1458]
Previous Top Next

· Definição do Método:
Retorna a quantidade de Vezes em que se Realizou uma Redução Z.
CRZ - Contador de Redução Z.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 4(quatro) posições para receber o CRZ contador de ReduçõesZ's emitidas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaCRZ(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaCRZ(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCRZRestante(Índice 1459)

Método: Daruma_FI_RetornaCRZRestante [Índice 1459]
Previous Top Next

· Definição do Método:
Retorna a quantidade Redução Z Restante.
CRZ - Contador de Redução Z.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 4(quatro) posições para receber o CRZRestante contador de ReduçõesZ's restantes.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaCRZRestante(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaCRZRestante(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaCancelamentoNF(Índice 1460)

Método: Daruma_FI_RetornaCancelamentoNF [Índice 1460]
Previous Top Next

· Definição do Método:
Retorna o Valor acumulado que indica o Total em Reais dos cancelamentos não fiscais Realizados

· Parâmetros do Método:
String: Variável por referência com o tamanho de 14(quatorze) posições para receber os CancelamentosNF.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_RetornaCancelamentoNF(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_RetornaCancelamentoNF(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaDescontoNF(Índice 1461)

Método: Daruma_FI_RetornaDescontoNF [Índice 1461]
Previous Top Next

· Definição do Método:
Retorna o Valor acumulado que indica o Total em Reais dos descontos não fiscais Realizados.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 14(quatorze) posições para receber os DescontosNF.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_RetornadescontoNF(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_RetornaDescontoNF(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaTempoLigado(Índice 1464)

Método: Daruma_FI_RetornaTempoLigado [Índice 1464]
Previous Top Next

· Definição do Método:
Retona o Tempo em que esteve Ligada (tempo em Minutos)

· Parâmetros do Método:
String: Variável por referência com o tamanho de 4(quatro) posições para receber o tempo em que a impressora permaneceu ligada.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaTempoLigado(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaTempoLigado(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaGNF(Índice 1462)

Método: Daruma_FI_RetornaGNF [Índice 1462]
Previous Top Next

· Definição do Método:
Retorna a quantidade de vezes em que foram emitidos Documentos Não Fiscais. (O que não é Cupom Fiscal)
Ex: Relatorio Gerencial, Vinculado, Receber valor agua, (recebimento não fiscal), Sangria, Suprimento, etc..
GNF - Geral Não Fiscal

· Parâmetros do Método:
String: Variável por referência com o tamanho de 6(seis) posições para receber os GNF's.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(6)
Int_Retorno = Daruma_FI_RetornaGNF(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,6);
Int_Retorno := Daruma_FI_RetornaGNF(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaTempoImprimindo(Índice 1463)

Método: Daruma_FI_RetornaTempoImprimindo [Índice 1463]
Previous Top Next

· Definição do Método:
Retona o Tempo em que esteve imprimindo documentos (tempo em Minutos)

· Parâmetros do Método:
String: Variável por referência com o tamanho de 4(quatro) posições para receber o tempo em que a impressora ficou imprimindo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaTempoImprimindo(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaTempoImprimindo(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaTotalPagamentos(Índice 1465)

Método: Daruma_FI_RetornaTotalPagamentos [Índice 1465]
Previous Top Next

· Definição do Método:
Retorna o Total contabilizado em Reais nas 16 Formas de Pagamento do ECF.
Retorna em Blocos de 14 dígitos o valor acumulado de cada forma de pagamento.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 304(trezentas e quatro) posições para receber os totais acumulados nas formas de pagamento que foram utlizadas no período.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna o Valor das 14 Formas de Pagamento na seguinte Ordem
16 Blocos composto de:
Valor Acumulado na Forma de Pagamento.........: 14 bytes
+ 1 caráctere Separador, conforme configurado no Registry com o Método Daruma_Registry_Separador.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(304)
Int_Retorno = Daruma_FI_RetornaTotalPagamentos(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,304);
Int_Retorno := Daruma_FI_RetornaTotalPagamentos(Str_Informacao);
Edit1.Lines.Text := (pchar(Str_Informacao));


Daruma_FI_RetornaTroco(Índice 1466)

Método: Daruma_FI_RetornaTroco [Índice 1466]
Previous Top Next

· Definição do Método:
Retorna o Valor Acumulado no acumulador Troco da Impressora, com 14 dígitos.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 14(quatorze) posições para receber o valor do troco.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este acumulador Troco é incrementado ao longo do movimento do dia e zerado após a emissão da ReduçãoZ.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(14)
Int_Retorno = Daruma_FI_RetornaTroco(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FI_RetornaTroco(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaRegistradoresNaoFiscais(Índice 1499)

Método: Daruma_FI_RetornaRegistradoresNaoFiscais [Índice 1499]
Previous Top Next

· Definição do Método:
Retorna o Valor da CADA Registrador não Fiscal do ECF. Veja a descrição Abaixo

· Parâmetros do Método:
String: com 950(novecantas e cinquenta) posições onde a dll irá retornar o valor de CADA TOTALIZADOR ou REGISTRADOR não fiscal do ECF.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:

- Este Método retorna as informações dos Registradores não Fiscais, cada registrador separado pelo caractere 'Separador' que você escolher ou programa na dll (o Default é ";") (caractere 'Separador' conforme configurado no Registry com o Método Daruma_Registry_Separador.)

CAMPO | Tamanho | Separador | Tamanho ToTal
COO Inicial | 5 | 1 | 6 Pocições
COO Final | 5 | 1 | 6 Posições
Contador Geral Não Fiscal | 6 | 1 | 7 Posições
Número de Cupons Fisca Cancelado | 4 | 1 | 5 Posições
Número de Cupom NFiscal Cancelado | 4 | 1 | 5 Posições
Contador de Leitura X Efetuada | 4 | 1 | 5 Posições
Zeros Para Uso Futuro | 4 | 1 | 5 Posições
Contador de Reinicio de Operação | 4 | 1 | 5 Posições
Contador de Redução Z | 4 | 1 | 5 Posições
Redução Z Restante | 4 | 1 | 5 Posições
Total de Cada Forma de Pagamento (16 Formas de Pagamento com 14 Posições cada uma, indicando o Valor Acumulado até o momento) | 16 * 14 | 1 | 225 Posições
Troco Acumulado | 14 | 1 | 15 Posições
Contador de Uso e Valor Acumulado dos Comprovantes Não Fiscais Não Vinculado ( 16 Totalizadores, cada um deles com 14 Posições indicando o Valor Acumulado + 4 Posições indicando a Quantidade de Vezes em que foi Utilizado) | 16 *( 14 + 4 ) | 1 | 289 Posições
Valor de Desconto Não Fiscal | 14 | 1 | 15 Posições
Acrescimo Não Fiscal | 14 | 1 | 15 Posições
Cancelamento Não Fiscal | 14 | 1 | 15 Posições
Contador de Uso e Valor Acumulado dos Comprovantes Não Fiscais Vinculado ( 16 Totalizadores, cada um deles com 14 Posições indicando o Valor Acumulado + 4 Posições indicando a Quantidade de Vezes em que foi Utilizado) | 16 *( 14 + 4 ) | 1 | 289 Posições
Tempo do ECF Ligada (em Minutos) | 4 | 1 | 5 Posições
Tempo do ECF Imprimindo | 4 | 1 | 5 Posições
Zeros Para Uso Futuro | 10 | 1 | 11 Posições
Zeros Para Uso Futuro | 10 | 1 | 11 Posições
Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(950)
Int_Retorno = Daruma_FI_RetornaRegistradoresNaoFiscais(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,950);
Int_Retorno := Daruma_FI_RetornaREgistradoresNaoFiscais( Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaRegistradoresFiscais(Índice 1485)

Método: Daruma_FI_RetornaRegistradoresFiscais [Índice 1485]
Previous Top Next

· Definição do Método:
Retorna o Valor da CADA Registrador Fiscal do ECF. Veja a descrição Abaixo

· Parâmetros do Método:
String: com 400(quatrocentas) posições onde a dll irá retornar o valor de CADA TOTALIZADOR ou REGISTRADOR não fiscal do ECF.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna as informações dos Registradores Fiscais, cada registrador separado pelo caractere 'Separador' que você escolher ou programa na dll (o Default é ";") (caractere 'Separador' conforme configurado no Registry com o Método Daruma_Registry_Separador.)

CAMPO | Tamanho | Separador | Tamanho ToTal
GT Inicial (Grande Total do Começo do DIA) | 18 | 1 | 19 Pocições
Valor dos Descontos | 14 | 1 | 15 Posições
Valor dos Cancelamentos | 14 | 1 | 15 Posições
Valor dos Isentos ( II ) | 14 | 1 | 15 Posições
Valor dos Não Incidentes ( NN ) | 14 | 1 | 15 Posições
Valor da Substituição ( FF ) | 14 | 1 | 15 Posições
Valor de Cada Aliquota (16 Aloquotas com 14 Posições cada uma indicando o Valor Acumulado em Cada uma delas) | 16*14 | 1 | 225 Posições
Acrescimo IOF (Imposto Operação Financeira) | 14 | 1 | 15 Posições
Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(400)
Int_Retorno = Daruma_FI_RetornaRegistradoresFiscais(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,400);
Int_Retorno := Daruma_FI_RetornaRegistradoresFiscais(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_RetornaValorComprovanteNaoFiscal(Índice 1495)

Método: Daruma_FI_RetornaValorComprovanteNaoFiscal [Índice 1495]

Previous Top Next

· Definição do Método:
Retorna o Valor de um Comrpovante Não Fiscal do ECF. Veja a descrição Abaixo

· Parâmetros do Método:
String: com o índice do Comprovante Não Fiscal, que se deseja saber o total acumulado.
String: com 14(quatroze) posições onde a dll irá retornar o valor acumulado do TOTALIZADOR indicado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Indice_CNF As String
Str_Informacao = Space(14)
Str_Indice_CNF = InputBox("Entre com o Índice do Comprovante Não Fiscal para saber o Total Acumulado:", "Daruma Framework", "03")
Int_Retorno = Daruma_FI_RetornaValorComprovanteNaoFiscal(Str_Indice_CNF, Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Indice_CNF: String;
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Str_Indice_CNF := InputBox('Entre com o Indice do Comprovante Nao Fiscal para saber o Total Acumulado:', 'Daruma Framework', '03');
Int_Retorno := Daruma_FI_RetornaValorComprovanteNaoFiscal(Str_Indice_CNF, Str_Informacao);
Edit1.Lines.Text:= (pchar(Str_Informacao));


Daruma_FI_RetornaIndiceComprovanteNaoFiscal(Índice 1496)

Método: Daruma_FI_RetornaIndiceComprovanteNaoFiscal [Índice 1496]
Previous Top Next

· Definição do Método:
Retorna o Índice de um Comprovante Não Fiscal do ECF. Veja a descrição Abaixo

· Parâmetros do Método:
String: com a descrição do Comprovante Não Fiscal, que se deseja saber o seu Índice
String: com 2(duas) posições para receber o índice do Comprovante selecionado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_CNF As String
Str_Informacao = Space(2)
Str_Descricao_CNF = InputBox("Entre com a Descrição do Comprovante Não Fiscal para saber o Índice:", "Daruma Framework", "Conta de Luz")
Int_Retorno = Daruma_FI_RetornaIndiceComprovanteNaoFiscal(Str_Descricao_CNF, Str_Informacao)
TX_Retorno.Text = CStr(CInt(Str_Informacao))

· Exemplo em Delphi 7.0:
var
Str_Descricao_CNF: String;
str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Str_Descricao_CNF:= InputBox('Entre com a Descricao do Comprovante Nao Fiscal para saber o Indice:', 'Daruma Framework', 'Conta de Luz');
Int_Retorno := Daruma_FI_RetornaIndiceComprovanteNaoFiscal (Str_Descricao_CNF , Str_Informacao);
Edit1.Lines.Text :=(pchar(Str_Informacao));

end;


Daruma_FI_RetornarVersaoDLL(Índice 1502)

Método: Daruma_FI_RetornarVersaoDLL [Índice 1502]
Previous Top Next

· Definição do Método:
Retorna a versão da DLL, válido para o produto fiscal.

· Parâmetros do Método:
String: com 8(oito) posições para receber a versão fiscal da DLL.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Informacao As String
Str_Informacao = Space(10)
Int_Retorno = Daruma_FI_RetornarVersaoDll( Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var Str_Informacao: String;
begin
SetLength (Str_Informacao,10);
Int_Retorno := Daruma_FI_RetornarVersaoDll(Str_Informacao);
Edit1.Lines.Text := Str_Informacao;
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FI_CupomMania(Índice 0000)

Método: Daruma_FI_CupomMania[Índice 0000]
Previous Top Next

· Definição do Método:
Retorna o Total de ISS e ICMS contabilizado no último cupom.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 13(treze) posições para receber o total de ISS acumulados do último cupom fiscal.
String: Variável por referência com o tamanho de 13(treze) posições para receber o total de ICMS acumulados do último cupom fiscal.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna o Valor do total de ICMS e ISS referente ao último cupom de a chave CupomMania estiver habilitada.
- Para habilitar a chave CupomMania no Registry utilize o método Daruma_Registry_AlterarRegistry(Indice 83).

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(304)
Int_Retorno = Daruma_FI_RetornaTotalPagamentos(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,304);
Int_Retorno := Daruma_FI_RetornaTotalPagamentos(Str_Informacao);
Edit1.Lines.Text := (pchar(Str_Informacao));


Daruma_FIMFD_DownloadDaMFD (Índice 6004)

Método: Daruma_FIMFD_DownLoadDaMFD [Índice: 6004]
Previous Top Next

· Definição do Método:
Este método gera um arquivo com o nome de 'Retorno.txt' no path que estiver configurado no registry Daruma_Registry_Path(Índice 2), com a 2ª(segunda) via dos cupons que estão no 'range' informado desde o COO inicial até o COO final ou Data Inicial até a Data Final.

· Parâmetros do Método:
COO Inicial. String com o número do primeiro COO.
COO Final. String com o número do último COO.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O Download da MFD só será possível na FS600/FS2100T versão de firmware 1.01 ou superior.
- Nas versões 01.02.00 abaixo não é possivel passar a DATA, somente COO (6 posições).
- 01.03.00 acima já é possível passar o COO e a DATA, diferenciando eles como: COO - 000000 / Data 00/00/00

· Exemplo de retorno:
No exemplo abaixo é de um Suprimento(COO->004417). Como se pode ver é fielmente a imagem do cupom.

DARUMA TELEC. INFORMÁTICA S/A
DARUMA
AV. INDEPENDÊNCIA,3500
TAUBATÉ-SP CEP:12032-000
TEL:0800 770 3320
CNPJ: 45.170.289/0001-25 IE: 688.023.460.111
09/01/2008 08:28:02 COO:004417
 REDUÇÃO Z 
MOVIMENTO DO DIA: 08/01/2008
------------------ CONTADORES ------------------
Geral de Operação Não-Fiscal: 001290
Contador de Reinício de Operação: 005
Contador de Reduções Z: 0131
Contador de Cupom Fiscal: 002821
Contador de Fita-Detalhe: 000000
Comprovante de Crédito ou Débito: 0000
Geral de Relatório Gerencial: 000691
Geral Oper. Não-Fiscal Canc.: 0000
Cupom Fiscal Cancelado: 0001
------------ TOTALIZADORES FISCAIS -------------
TOTALIZADOR GERAL: 44457,77
VENDA BRUTA DIÁRIA: 348,50
CANCELAMENTO ICMS: 174,00
DESCONTO ICMS: ***********,**
Total de ISSQN: ***********,**
CANCELAMENTO ISSQN: ***********,**
DESCONTO ISSQN: ***********,**

VENDA LÍQUIDA: 174,50
ACRÉSCIMO ICMS: ***********,**
ACRÉSCIMO ISSQN: ***********,**
--------------------- ICMS ---------------------
Totalizador Base Cálculo( R$) Imposto( R$)
T25,00% 0,00 0,00
T18,00% 0,00 0,00
T12,00% 0,00 0,00
T07,00% 0,00 0,00
T05,00% 0,00 0,00
T17,00% 0,00 0,00
Total ICMS: 0,00 0,00
---------------- Não Tributados ----------------
Totalizador Valor Acumulado( R$)
F1 = 0,00
F2 = 0,00
I1 = 174,50
I2 = 0,00
N1 = 0,00
N2 = 0,00
-------------------- ISSQN ---------------------
Totalizador Base Cálculo( R$) Imposto( R$)
Total ISSQN: 0,00 0,00
---------------- Não Tributados ----------------
Totalizador Valor Acumulado( R$)
FS1 = 0,00
FS2 = 0,00
IS1 = 0,00
IS2 = 0,00
NS1 = 0,00
NS2 = 0,00
---------- TOTALIZADORES NÃO FISCAIS -----------
No Operação CON Valor Acumulado( R$)
01 Sangria 0000 0,00
02 Suprimento 0000 0,00
03 Recebimento 0000 0,00
04 Conta de Agua 0000 0,00
Total Oper Não-Fiscais R$ 0,00

ACRE NÃO-FISC 0,00
DESC NÃO-FISC 0,00
CANC NÃO-FISC 0,00
------------- RELATÓRIO GERENCIAL --------------
No Relatório CER
01 Gerencial X 0000
02 Relatório 0000
03 Bordero 0000
04 Troca F Pagto 0000
05 Fechamento Dia 0000
06 Cupom Adicional 0000
-------------- MEIOS DE PAGAMENTO --------------
No. Meio Pagamento Valor Acumulado( R$)
01 Dinheiro 174,80
02v Cheque 0,00
03v Cartão 0,00
04v TEF 0,00
05v A Prazo 0,00
06v Cheque A Vista 0,00
07v Cheque PreDatad 0,00
08v Cartao 0,00
09v Convenio 0,00
10v Ticket 0,00
11v sForma 0,00
12v VENDA A PRAZO 0,00
13v CARTAO DEBITO 0,00
14v Cheque Pre 0,00
15v Cartao Credito 0,00
16v Conta de Luz 0,00
TROCO 0,30
Comprovante Não Emitido: 0000
Tempo Emitindo Doc.Fiscal: 00:02:14
Tempo Operacional: 08:38:54
Qtd. Reduções Restantes: 1898
Número série MFD: 60131282006110014677
02B 17FD4 35A4F 021000 6D 6AA056 00CC0 31669 B6A
DARUMA AUTOMAÇÃO FS600
ECF-IF VERSÃO:01.04.00 ECF:001 Lj:A-01
AAAAAAAAAAAEEEFHHH 09/01/2008 08:28:08
FAB:DR0206BR000000090239 BR

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Inicial As String
Dim Str_Final As String
Str_Inicial = (TX_Inicial.Text)
Str_Final = (TX_Final.Text)
Int_Retorno = Daruma_FIMFD_DownloadDaMFD(Str_Inicial, Str_Final)

· Exemplo em Delphi 7.0:
var
Str_Inicial: String;
Str_Final: String;
begin
Str_Inicial := Trim(Tx_Inicial.Text);
Str_Final := Trim(Tx_Final.Text);
Int_Retorno := Daruma_FIMFD_DownloadDaMFD( pchar( Str_Inicial ), pchar( Str_Final ) );
end;


Daruma_FIMFD_RetornaInformacao (Índice 6000)

Método: Daruma_FIMFD_RetornaInformacao[Índice: 6000]

Previous Top Next

· Definição do Método:
Este método possibilita retornar do ECF mais de 170 informações diferentes. A idéia deste método é que ao invés de termos 170 métodos, teremos apenas
um único método. Passamos o índice da informação desejada e obtemos a informação.

· Parâmetros do Método:
Indice: Variável String contendo o valor do índice com até 2 caracteres.Variáveis String por referência para receber as informacoes solicitadas.
Tamanho: Variável por referêncai com o tamanho de espaços alocados para o retorno da informação.

Exemplo:

Status atual do Cupom Fiscal ou Não Fiscal - Estado do CF / CNF, utilizar o índice 57 - Tamanho 1, o retorno do método será:

0 = fechado
1 = CF em registro de item
2 = CF em totalização
3 = CF em pagamento
4 = CF em finalização
5 = CNF em registro de item
6 = CNF em totalização
7 = CNF em pagamento
8 = CNF em finalização

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Indice As String
Dim Str_Valor As String
Dim Int_Tamanho As Integer

Str_Indice = TX_Indice.Text
Str_Valor = TX_Valor.Text
Str_Valor = Space(Int_Tamanho)
TX_Valor.Text = ""
TX_Valor.Text = Str_Valor
Int_Retorno = Daruma_FIMFD_RetornaInformacao(Str_Indice, Str_Valor)

· Exemplo em Delphi 7.0:
var Str_Indice: String;
Str_Valor: String;
Int_Tamanho: Integer;
begin

Int_Tamanho := StrToInt(Tx_Tamanho.Text) + 1;
Str_Indice := Tx_Indice.Text;
setlength( Str_valor, Int_Tamanho);

Int_Retorno := Daruma_FIMFD_RetornaInformacao( Str_Indice, Str_Valor );
Memo_Valor.Lines.Clear;
Memo_Valor.Lines.Append(Str_Valor);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;

Tabela das informações que podem ser obtidas

· Exemplo em Delphi 7.0:


Daruma_FIMFD_ImprimeCodigoBarras (Índice 6001)

Método: Daruma_FIMFD_ImprimeCodigoBarras [Índice: 6001]
Previous Top Next

· Definição do Método:
Este método permite a impressão dos códigos de barras nas MFD's FS600 e FS2100T.
Esta impressão poderá ser feita à partir de qualquer documento não fiscal que esteja aberto, exemplos: gerêncial, não fiscal vinculado.

· Parâmetros do Método: (5 Parâmetros)
1. Código: Variável String com 2(dois) dígitos contendo o código do tipo de código de barras que você quer imprimir, conforme lista abaixo:

- EAN-13
- EAN- 8
- STANDARD 2 of 5
- INTERLEAVED 2 of 5
- CODE128
- CODE39
- CODE93
- UPC-A
- CODABAR
- MSI
- CODE11

2. Variável String com o código a ser impresso. Obs.: O tamando do código e o tipo dos carácteres que poderão serem impressos deverá respeitar a lista abaixo:
EAN-13 12 dígitos de 0 a 9
EAN-8 7 dígitos de 0 a 9
UPC-A 11 dígitos de 0 a 9
CODE 39 Tamanho variável. 0-9, A-Z, '-', '.', '%', '/', '$', ' ', '+'
O caracter '*' de start/stop é inserido automaticamente
CODE 93 Tamanho variável. 0-9, A-Z, '-', '.', ' ', '$', '/', '+', '%'
O caracter '*' de start/stop é inserido automaticamente
CODABAR tamanho variável. 0 - 9, '$', '-', ':', '/', '.', '+'
Existem 4 diferentes caracteres de start/stop: A, B, C, and
D que são usados em pares e não podem aparecer em
nenhum outro lugar do código.
CODE 11 Tamanho variável. 0 a 9
As barras são geradas com checksum de dois caracteres
CODE 128 Tamanho variável. Todos os caracteres ASCII
Interleaved 2 of 5 Tamanho sempre par. 0 a 9
Standard 2 of 5 Tamanho variável. 0 a 9
MSI Tamanho variável. 0 a 9

3. Largura da Barra: Variável String 1(um) byte com a largura da barra a ser impressa, vovê poderá usar uma medida entre 2 e 5. Se for utilizado zero será considerado 2.

4. Altura da Barra: Variável String com 3(três) byte com a altura da barra a ser impressa, você poderá usar uma altura entre 050 a 200. Se for utilizado 000(zero) será considerado 050.
5. Imressão do Código do Produto abaixo do da barra: Variável String com 1(um) byte, 0(zero) não imprime 1(um) imprime.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Daruma_FI_RelatorioGerencial ("================================================")
Daruma_FI_RelatorioGerencial (Chr(13) + Chr(10) + "CODIGO DE BARRAS Code 11" + Chr(13) + Chr(10))
Daruma_FIMFD_ImprimeCodigoBarras "11", "01 09.04.2005 150,00", "0", "0", "0"
Daruma_FIMFD_ImprimeCodigoBarras "11", "7891037778910377", "3", "120", "0"
Daruma_FIMFD_ImprimeCodigoBarras "11", "78910377891037", "4", "150", "1"
Daruma_FIMFD_ImprimeCodigoBarras "11", "789103789103", "5", "170", "0"
Daruma_FIMFD_ImprimeCodigoBarras "11", "7891078910", "0", "200", "1"
Daruma_FI_RelatorioGerencial ("================================================")

· Exemplo em Delphi 7.0:
begin
Daruma_FI_RelatorioGerencial (pchar('================================================'));
Daruma_FI_RelatorioGerencial (Chr(13) + Chr(10) + 'CODIGO DE BARRAS Code MSI' + Chr(13) + Chr(10));
Daruma_FIMFD_ImprimeCodigoBarras (pchar('10'), pchar('01 09.04.2005 150,00'), '0', '0', '0');
Daruma_FIMFD_ImprimeCodigoBarras (pchar('10'), pchar('7891037778910377'), '3', pchar('120'), '0');
Daruma_FIMFD_ImprimeCodigoBarras (pchar('10'), pchar('78910377891037'), '4', pchar('150'), '1');
Daruma_FIMFD_ImprimeCodigoBarras (pchar('10'), pchar('789103789103'), '5', pchar('170'), '0');
Daruma_FIMFD_ImprimeCodigoBarras (pchar('10'), pchar('7891078910'), '0', pchar('200'), '1');
Daruma_FI_RelatorioGerencial (pchar('================================================'));


Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional

Método: Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional [Índice: 0000]
Previous Top Next

· Definição do Método:
Este método permite a impressão de código de barras no cupom Adicional nas MFD's FS600 e FS2100T.
Esta impressão só poderá ser feita no cupom adicional.

· Parâmetros do Método: (5 Parâmetros)
1. Código: Variável String com 2(dois) dígitos contendo o código do tipo de código de barras que você quer imprimir, conforme lista abaixo:

- EAN-13 - (Tipo 1)
- EAN- 8 - (Tipo 2)
- INTERLEAVED 2 of 5 - (Tipo 4)
- CODE128 - (Tipo 5)
- CODE39 - (Tipo 6)
- CODE93 - (Tipo 7)
- UPC-A - (Tipo 8)
- CODABAR - (Tipo 9)
- MSI - (Tipo 10)
- CODE11 - (Tipo 1)

2. Variável String com o código a ser impresso. Obs.: O tamando do código e o tipo dos carácteres que poderão serem impressos deverá respeitar a lista abaixo:
EAN-13 12 dígitos de 0 a 9
EAN-8 7 dígitos de 0 a 9
UPC-A 11 dígitos de 0 a 9
CODE 39 Tamanho variável. 0-9, A-Z, '-', '.', '%', '/', '$', ' ', '+'
O caracter '*' de start/stop é inserido automaticamente
CODE 93 Tamanho variável. 0-9, A-Z, '-', '.', ' ', '$', '/', '+', '%'
O caracter '*' de start/stop é inserido automaticamente
CODABAR tamanho variável. 0 - 9, '$', '-', ':', '/', '.', '+'
Existem 4 diferentes caracteres de start/stop: A, B, C, and
D que são usados em pares e não podem aparecer em
nenhum outro lugar do código.
CODE 11 Tamanho variável. 0 a 9
As barras são geradas com checksum de dois caracteres
CODE 128 Tamanho variável. Todos os caracteres ASCII
Interleaved 2 of 5 Tamanho sempre par. 0 a 9
MSI Tamanho variável. 0 a 9

3. Largura da Barra: Variável String 1(um) byte com a largura da barra a ser impressa, vovê poderá usar uma medida entre 2 e 5. Se for utilizado zero será considerado 2.

4. Altura da Barra: Variável String com 3(três) byte com a altura da barra a ser impressa, você poderá usar uma altura entre 050 a 200. Se for utilizado 000(zero) será considerado 050.
5. Imressão do Código do Produto abaixo do da barra: Variável String com 1(um) byte, 0(zero) não imprime 1(um) imprime.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:

Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional "11", "01 09.04.2005 150,00", "0", "0", "0"
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional "11", "7891037778910377", "3", "120", "0"
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional "11", "78910377891037", "4", "150", "1"
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional "11", "789103789103", "5", "170", "0"
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional "11", "7891078910", "0", "200", "1"

· Exemplo em Delphi 7.0:
begin
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional (pchar('10'), pchar('01 09.04.2005 150,00'), '0', '0', '0');
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional (pchar('10'), pchar('7891037778910377'), '3', pchar('120'), '0');
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional (pchar('10'), pchar('78910377891037'), '4', pchar('150'), '1');
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional (pchar('10'), pchar('789103789103'), '5', pchar('170'), '0');
Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional (pchar('10'), pchar('7891078910'), '0', pchar('200'), '1');


Daruma_FIMFD_TerminaFechamentoCupomCodigoBarras (Índice 6005)

Daruma Framework Método: Daruma_FIMFD_TerminaFechamentoCupomCodigoBarras
[Índice: 6005]

Previous Top Next

· Definição do Método:
Este método permite que você termine o fechamento do cupom e inclua o código de barras, nos modelos FS600 e também FS2100T.

· Parâmetros do Método: (6 Parâtremos)
1. Mensagem: Variável String com a mengasem promocional.
2. Código: Variável String com 2(dois) dígitos contendo o código do tipo de código de barras que você quer imprimir, conforme lista abaixo:

- EAN-13
- EAN- 8
- STANDARD 2 of 5
- INTERLEAVED 2 of 5
- CODE128
- CODE39
- CODE93
- UPC-A
- CODABAR
- MSI
- CODE11

3. Largura da Barra: Variável String 1(um) byte com a largura da barra a ser impressa, vovê poderá usar uma medida entre 2 e 5. Se for utilizado zero será considerado 2.
4. Altura da Barra: Variável String com 3(três) byte com a altura da barra a ser impressa, você poderá usar uma altura entre 050 a 200. Se for utilizado 000(zero) será considerado 050.
5. Impressão do Código do Produto abaixo do da barra: Variável String com 1(um) byte, 0(zero) não imprime 1(um) imprime.
6. Variável String com o código a ser impresso.

Obs.: O tamando do código e o tipo dos carácteres que poderão serem impressos deverá respeitar a lista abaixo:

EAN-13 12 dígitos de 0 a 9
EAN-8 7 dígitos de 0 a 9
UPC-A 11 dígitos de 0 a 9
CODE 39 Tamanho variável. 0-9, A-Z, '-', '.', '%', '/', '$', ' ', '+'
O caracter '*' de start/stop é inserido automaticamente
CODE 93 Tamanho variável. 0-9, A-Z, '-', '.', ' ', '$', '/', '+', '%'
O caracter '*' de start/stop é inserido automaticamente
CODABAR tamanho variável. 0 - 9, '$', '-', ':', '/', '.', '+'
Existem 4 diferentes caracteres de start/stop: A, B, C, and
D que são usados em pares e não podem aparecer em
nenhum outro lugar do código.
CODE 11 Tamanho variável. 0 a 9
As barras são geradas com checksum de dois caracteres
CODE 128 Tamanho variável. Todos os caracteres ASCII
Interleaved 2 of 5 Tamanho sempre par. 0 a 9
Standard 2 of 5 Tamanho variável. 0 a 9
MSI Tamanho variável. 0 a 9

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Mensagem_Promocional As String
Dim Str_String_Codigo As String
Dim Str_Posicao As String
Dim Str_Tipo As String
Dim Str_Largura As String
Dim Str_Altura As String
Dim Str_Tipo_Codigo As String
Str_Mensagem_Promocional = "Obrigado Volte Sempre!!!"
Str_String_Codigo = "1234567890123"
Str_Altura = "3"
Str_Largura = "080"
Str_Tipo_Codigo = Tipo_Codigo_Barras.Text
Select Case Str_Tipo_Codigo
Case "EAN-13"
Str_Tipo = "1"
Case "EAN-8"
Str_Tipo = "2"
Case "STANDARD 2 OF 5"
Str_Tipo = "3"
Case "INTERLEAVED 2 OF 5"
Str_Tipo = "4"
Case "CODE128"
Str_Tipo = "5"
Case "CODE39"
Str_Tipo = "6"
Case "CODE93"
Str_Tipo = "7"
Case "UPC-A"
Str_Tipo = "8"
Case "CODEBAR"
Str_Tipo = "9"
Case "MSI"
Str_Tipo = "10"
Case "CODE11"
Str_Tipo = "11"
End Select
If Tipo_Sim.Value = True Then
Str_Posicao = "1"
Else
Str_Posicao = "0"
End If
Int_Retorno = Daruma_FIMFD_TerminaFechamentoCupomCodigoBarras(Str_Mensagem_Promocional, Str_Tipo, Str_String_Codigo, Str_Largura, Str_Altura, Str_Posicao)

· Exemplo em Delphi 7.0:
var
Str_Mensagem_Promocional: String;
Str_String_Codigo: String;
Str_Tipo: String;
Str_Posicao: String;
Str_Largura: String;
Str_Altura: String;
j: integer;
begin
j:=0;
Str_Mensagem_Promocional := Trim(Mensagem_Promocional.Text);
Str_String_Codigo := Trim(String_Codigo.Text);
for j := 0 to 15 do
if Altura.Text=Altura.Items[j] then
Case j of
0: Str_Altura:= '050';
1: Str_Altura:= '060';
2: Str_Altura:= '070';
3: Str_Altura:= '080';
4: Str_Altura:= '090';
5: Str_Altura:= '100';
6: Str_Altura:= '110';
7: Str_Altura:= '120';
8: Str_Altura:= '130';
9: Str_Altura:= '140';
10: Str_Altura:= '150';
11: Str_Altura:= '160';
12: Str_Altura:= '170';
13: Str_Altura:= '180';
14: Str_Altura:= '190';
15: Str_Altura:= '200';
end;
for j := 0 to 4 do
if Largura.Text=Largura.Items[j] then
Case j of
0: Str_Largura:='2';
1: Str_Largura:='3';
2: Str_Largura:='4';
3: Str_Largura:='5';
end;
for j := 0 to 11 do
if tipo_Codigo_Barras.Text=Tipo_Codigo_Barras.Items[j] then
Case j of
0: Str_Tipo:='1'; //'EAN-13'
1: Str_Tipo:='2'; //'EAN-8'
2: Str_Tipo:='3'; //'STANDARD 2 OF 5'
3: Str_Tipo:='4'; //'INTERLEAVED 2 OF 5'
4: Str_Tipo:='5'; //'CODE128'
5: Str_Tipo:='6'; //'CODE39'
6: Str_Tipo:='7'; //'CODE93'
7: Str_Tipo:='8'; //'UPC-A'
8: Str_Tipo:='9'; //'CODABAR'
9: Str_Tipo:='10'; //'MSI'
10: Str_Tipo:='11'; //'CODE11'
end;
if Tipo_Sim.Checked=True then
begin
Str_Posicao:='1';
end
else
begin
Str_Posicao:='0';
end;
Int_Retorno:= Daruma_FIMFD_TerminaFechamentoCupomCodigoBarras( pchar( Str_Mensagem_Promocional ), Str_Tipo, Str_String_Codigo, Str_Largura, Str_Altura, Str_Posicao );


Daruma_FIMFD_IndicePrimeiroVinculado (Índice 6003)

Método: Daruma_FIMFD_IndicePrimeiroVinculado [Índice: 6003]
Previous Top Next

· Definição do Método:
Este método permite que você saiba qual é a posição do primeiro vinculado.

· Parâmetros do Método:
Variável String por referência com 2(dois) espaços alocados para receber a posição índice.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FIMFD_IndicePrimeiroVinculado(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var Str_Indice: String;
begin
SetLength (Str_Indice,5);
Int_Retorno:= Daruma_FIMFD_IndicePrimeiroVinculado(Str_Indice);
Edit1.Lines.Text := pchar(Str_Indice);
end;


Daruma_FIMFD_CasasDecimaisProgramada (Índice 6002)

Método: Daruma_FIMFD_CasasDecimaisProgramada[Índice: 6002]
Previous Top Next

· Definição do Método:
Este método permite que você saiba qual é o número de casas decimais que está programado para o valor e também para a quantidade na FS600 e também FS2100T.

· Parâmetros do Método:
Variável String por referência com 1(um) espaços alocados para receber o numero de decimais do valor.
Variável String por referência com 1(um) espaços alocados para receber o numero de decimais da quantidade.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Decimais_Quantidade As String
Dim Str_Decimais_Valor As String
Str_Decimais_Quantidade = Space(1)
Str_Decimais_Valor = Space(1)

Int_Retorno = Daruma_FIMFD_CasasDecimaisProgramada(Str_Decimais_Quantidade, Str_Decimais_Valor)
TX_Retorno.Text = "Quantidade:" + Str_Decimais_Quantidade + Chr(13) + Chr(10) + "Valor:" + Str_Decimais_Valor

· Exemplo em Delphi 7.0:
var Str_Quantidade: String;
Str_Valor: String;
begin
SetLength (Str_Valor,1);
SetLength (Str_Quantidade,1);
Int_Retorno:= Daruma_FIMFD_CasasDecimaisProgramada(Str_Quantidade, Str_Valor);
Edit1.Lines.Text := ('Quantidade:' + pchar(Str_Quantidade)+ #13+ 'Valor:' + pchar(Str_Valor));
FormPrincipal.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_StatusCupomFiscal (Índice 6008)

Método: Daruma_FIMFD_StatusCupomFiscal[Índice: 6008]
Previous Top Next

· Definição do Método:
Retorna o status atual do cupom fiscal na FS600 e também FS2100T.

· Parâmetros do Método:
Variável por referência com 2(dois) espaços alocados para escrita do Status.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método irá retornar um dos seguintes status:
0 Cupom Fiscal Fechado;
1 Cupom Fiscal Aberto;
2 Cupom Fiscal em Totalização;
3 Cupom Fiscal em Fase de Pagamento;
4 Cupom em Finalização (ou seja, já indicou as formas de pagamento e o valor já é igual ou maior que o cupom fiscal, não permite mais enviar formas de pagamento, apenas a mensagem promocional).

Exemplos:
· Exemplo em Visual Basic 6.0:

Dim Str_Informacao as String
Str_Informacao = Space(1)
Int_Retorno = Daruma_FIMFD_StatusCupomFiscal(Str_Informacao)
TX_Retorno.text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
setlength( Str_Informacao, 2 );
Int_Retorno := Daruma_FIMFD_StatusCupomFiscal(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FIMFD_SinalSonoro (Índice 53)

Método: Daruma_FIMFD_SinalSonoro[Índice: 53]
Previous Top Next

· Definição do Método:
Este método permite que você programe um aviso sonoro na FS600 e também FS2100T.

· Parâmetros do Método:
Valor: Variável String valor que equivale ao número de beeps (sinais) que você que de ao final da impressão, se configurado 0(zero) então será desabilitado.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método irá habilitar o sinal sonoro, quando passado 1 um beep, se for passado 2 então terá dois beeps ao término da impressão, se quizer três beeps, então passe 3.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Numero_Beeps As String

Str_Numero_Beeps = InputBox("Entre com o número de beeps desejado, que pode ser de 1 a 99 beeps:", "Daruma Framework", "1")
If (Str_Numero_Beeps = "") Then
Exit Sub
End If
Int_Retorno = Daruma_FIMFD_SinalSonoro(Str_Numero_Beeps)

· Exemplo em Delphi 7.0:
var
Str_Numero_Beeps: String;

begin
Str_Numero_Beeps := InputBox('Daruma Framework', 'Entre com o número de beeps desejado, que pode ser de 1 a 99 beeps:', '1');
if (Str_Numero_Beeps = '') then
Exit;

Int_Retorno := Daruma_FIMFD_SinalSonoro(Str_Numero_Beeps);


Daruma_FIMFD_ProgramaRelatoriosGerenciais (Índice 6013)

Método:Daruma_FIMFD_ProgramaRelatoriosGerenciais[Índice: 6013]
Previous Top Next

· Definição do Método:
Este método permite que você programe relatórios gerenciais nas impressoras Térmicas FS600 e também FS2100T.

· Parâmetros do Método:
Nome Relatório: Variável String contendo um nome para o relatório com até 15 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Na primeira posição você sempre terá Gerencial X, que é default.
- O número máximo de relatórios que poderão ser programados é de 20(vinte), sendo que a primeira posição já vem programada de fábrica.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Nome_Relatorio As String

Str_Nome_Relatorio = TX_Nome_Relatorio.Text
Int_Retorno = Daruma_FIMFD_ProgramaRelatoriosGerenciais(Str_Nome_Relatorio)

· Exemplo em Delphi 7.0:
var
Str_Nome_Relatorio:string;
begin
Str_Nome_Relatorio := Nome_Relatorio.Text;
Int_Retorno := Daruma_FIMFD_ProgramaRelatoriosGerenciais( pchar( Str_Nome_Relatorio ) );
end;


Daruma_FIMFD_AbreRelatorioGerencial (Índice 6014)

Método:Daruma_FIMFD_AbreRelatorioGerencial[Índice: 6014]
Previous Top Next

· Definição do Método:
Este método permite que você abra um relatório gerencial, previamente programado.

· Parâmetros do Método:
Nome Relatório: Variável String contendo o nome do relatório com até 15 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Caso prefira antes de enviar o comando de abertura, verificar se o relatório esta aberto utilize o método: Daruma_FI_StatusRelatorioGerencial(Índice 1405).

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Nome_Relatorio As String

Str_Nome_Relatorio = TX_Nome_Relatorio.Text
Int_Retorno = Daruma_FIMFD_AbreRelatorioGerencial(Str_Nome_Relatorio)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
Var Str_Nome_Relatorio:string;
begin
Str_Nome_Relatorio:=Nome_Relatorio.Text;
Int_Retorno := Daruma_FIMFD_AbreRelatorioGerencial(Str_Nome_Relatorio);
end;


Daruma_FIMFD_VerificaRelatoriosGerenciais (Índice 6015)

Método:Daruma_FIMFD_VerificaRelatoriosGerenciais[Índice: 6015]
Previous Top Next

· Definição do Método:
Este método permite que você verifique os relatórios gerenciais existentes em sua impressora.

· Parâmetros do Método:
String: com 321(trezentos e vinte e um) posições onde a dll irá retornar as descrições de cada relatório gerencial programado em sua impressora.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(321)
Int_Retorno = Daruma_FIMFD_VerificaRelatoriosGerenciais(Str_Informacao)
TX_Retorno.Text = Str_Informacao
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,321);
Int_Retorno := Daruma_FIMFD_VerificaRelatoriosGerenciais(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);
end;


Daruma_FIMFD_EmitirCupomAdicional (Índice 6016)

Método:Daruma_FIMFD_EmitirCupomAdicional[Índice: 6016]
Previous Top Next

· Definição do Método:
Este método permite a impressão de um cupom adicional, que é feito dentro de um gerencial somente nas impressoras Térmicas FS600 e FS2100T. Portanto não é compatível com a FS345.

· Parâmetros do Método:
Nenhum.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Exemplo de um cupom adicional, recuperado da MFD:

28/09/2006 03:15:38        GNF:000046 COO:000234
GRG:000025                 CER:0002
   RELATÓRIO GERENCIAL  
     Cupom Adicional    

1)28/09/2006 03:14:23        2)CCF:000130 3)COO:000233
4)Qt Itens Vend:002 5)Qt Itens Canc:000 6)Tempo:00068s
7)Valor:R$ 0,20 8)Aliquotas:18,00
9)Dinheiro:R$    0,20
   DARUMA32 FrameWork Mensagem Não Programada
   DARUMA32 FrameWork Mensagem Não Programada
DARUMA AUTOMAÇÃO     FS600
ECF-IF    VERSÃO:01.03.00     ECF:001    Lj:
AAAAAAAAAAAAIBHBJC          28/09/2006 03:15:40
FAB:DR0206BR000000080835

Como pode ser visto no exemplo acima, as informações contidas no cupom adicional são:

1. Data e Hora da Emissão;
2. CFF Contador Cupom Fiscal;
3. COO Contador Ordem Operação;
4. Qtde Itens Vendidos;
5. Qtde de Itens Cancelados;
6. Tempo de Impressão;
7. Valor Total do Cupom;
8. Alíquotas usadas, menos Isento, Não Tributado e Substituição Tributária;
9. Forma de Pagamento x Valor;
10. Reservado para uso futuro.

· Observação:
- Para alterar a configuração dos ítens que serão impressos, você deverá utilizar o método:

Exemplos:
· Exemplo em Visual Basic 6.0:

Int_Retorno = Daruma_FIMFD_EmitirCupomAdicional()

· Exemplo em Delphi 7.0:
Int_Retorno:= Daruma_FIMFD_EmitirCupomAdicional();


Daruma_FIMFD_AcionarGuilhotina (Índice 6017)

Método:Daruma_FIMFD_AcionarGuilhotina[Índice: 6017]
Previous Top Next

· Definição do Método:
Este método permite o acionamento da guilhotina nas impressoras FS600.

· Parâmetros do Método:
Nenhum.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Observação:
- Este método é exclusivo para impressora térmica FS600.
- Verificar se o equipamento está habilitado com a Guilhotina.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FIMFD_AcionarGuilhotina()
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
Int_Retorno:= Daruma_FIMFD_AcionarGuilhotina();
Daruma_Analisa_Retorno();


Daruma_FIMFD_EqualizarVelocidade (Índice 6018)

Método:Daruma_FIMFD_EqualizarVelocidade[Índice: 6018]
Previous Top Next

· Definição do Método:
Este método permite a reestabelecer a comunicação com a impressora MFD.

Este método foi criado porque as MFD's FS600 e FS2100T permite trabalhar com um 'range' de velocidade: 9600, 38400, 54700 e 115200.

Aonde não é difícil de a impressora estar em uma velociade de comunicação e o nosso driver Daruma32.dll estar tentando comunicar-se com a impressora a uma outra velocidade, ocorrendo erro de comunicação (Erro Extendido: 999).

Se isso vier a ocorrer com você, então basta executar este método a dll irá encontrar a velocidade em que encontra-se a impressora e devolver em uma variável passada por referência.

· Parâmetros do Método:(1 Parâmetro)
Equaliza Velocidade. Variável por referência, com 6 espaços para receber a velocidade que esta a impressora.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Observação:
- Este método é esclusivo para impressoras térmicas FS600 e FS2100T.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_EqualizaVelocidade As String
Str_EqualizaVelocidade = Space(6)
Int_Retorno = Daruma_FIMFD_EqualizarVelocidade(Str_EqualizaVelocidade)
MsgBox "Retorno do metodo = " + Str_EqualizaVelocidade
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_EqualizaVelocidade: String;
begin
SetLength (Str_EqualizaVelocidade,6);
Int_Retorno:= Daruma_FIMFD_EqualizarVelocidade(Str_EqualizaVelocidade);
Application.MessageBox(pchar('Retorno do metodo = ' + Str_EqualizaVelocidade), 'Daruma Framework Retorno do Metodo', mb_ok);
Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_AbreRecebimentoNaoFiscal(Índice 6009)

Método: Daruma_FIMFD_AbreRecebimentoNaoFiscal
[Índice 6009]
Previous Top Next

· Definição do Método:
Abre o recebimento não fiscal "CNFNV", nas impressoras MFD's FS600 e 2100T.

· Parâmetros do Método: (3 Parâmetros)
1. CPF: Neste parâmetro você deve passar o CPF cliente
2. Nome: Neste parâmetro você deve passar o nome do cliente
3. Endereço: Neste parâmetro você deve passar o nome do cliente

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método não poderá ser aplicado para Sangria ou Suprimento.
- Este Método abre o recebimento não fiscal que permanece aberto até que seja chamado o Método Daruma_FIMFD_RecebimentoNaoFiscal(Índice ????),Daruma_FIMFD_IniciaFechamentoNaoFiscal(Índice ????),Daruma_FIMFD_EfetuaFormaPagamentoNaoFiscal(Índice ????), Daruma_FIMFD_TerminaFechamentoNaoFiscal(Índice ????).
Importante! verifique o status do recebimento antes de tentar abrí-lo através do Método:Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado(Índice 1471).
- Este Método deverá ser usado sempre que for preciso informar mais de uma forma de pagamento, no Recebimento.
- Não existe Método para fechamento deste Método, o mesmo se fechará automaticamente, quando o total do recebimento for pago.
- Caso seja passado no parâmetro Índice do Totalizador Sangria, o Método será executado, porém o cupom será fechado automaticamente.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Nome As String
Dim Str_CPF As String
Dim Str_Endereco As String

Str_Nome = "Jose Ramalho de Souza e Silva"
Str_CPF = "111.111.111-11"
Str_Endereco = "Rua: Dos Jasmins, 123 - Jardim Primavera"

Int_Retorno = Daruma_FIMFD_AbreRecebimentoNaoFiscal(Str_Nome, Str_CPF, Str_Endereco)

· Exemplo em Delphi 7.0:
var
Str_Nome : string;
Str_CPF : string;
Str_Endereco : string;
begin

Str_Nome := 'Jose Ramalho de Souza e Silva';
Str_CPF := '111.111.111-11';
Str_Endereco := 'Rua: Dos Jasmins, 123 - Jardim Primavera';

Int_Retorno := Daruma_FIMFD_AbreRecebimentoNaoFiscal( pchar( Str_Nome ), pchar( Str_CPF ), pchar( Str_Endereco ));
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_RecebimentoNaoFiscal(Índice 6010)

Método: Daruma_FIMFD_RecebimentoNaoFiscal [Índice 6010]
Previous Top Next

· Definição do Método:
Imprime o comprovante não fiscal não vinculado, Recebimento Não Fiscal, nas impressoras MFD's FS600 e 2100T).

· Parâmetros do Método: (5 Parâmetros)
1. Índice do Totalizador Não Fiscal: Neste parâmetro você deve passar o índice do totalizador com 2 dígitos.
2. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
3. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
4. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual.
5. Valor do Recebimento: String com o valor da forma de pagamento com até 14 dígitos.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método não poderá ser aplicado para Sangria ou Suprimento.
- Este Método é único, ou seja você não precisará chamar outro método para encerrá-lo.
- Caso você necessite informar mais de uma forma de pagamento então deve-se usar o Método Daruma_FIMFD_AbreRecebimentoNaoFiscal(Índice ????).

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Indice_do_Totalizador_Nao_Fiscal As String
Dim Str_Acresc_ou_Desc As String
Dim Str_Tipo_Acresc_Desc As String
Dim Str_Valor_Acresc_Desc As String
Dim Str_Valor_Recebimento As String

Str_Indice_do_Totalizador_Nao_Fiscal = "03"
Str_Acresc_ou_Desc = "A"
Str_Tipo_Acresc_Desc = "%"
Str_Valor_Acresc_Desc = "0,00"
Str_Valor_Recebimento = "1,00"

Int_Retorno = Daruma_FIMFD_RecebimentoNaoFiscal(Str_Indice_do_Totalizador_Nao_Fiscal, Str_Acresc_ou_Desc, Str_Tipo_Acresc_Desc, Str_Valor_Acresc_Desc, Str_Valor_Recebimento)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Indice_do_Totalizador_Nao_Fiscal : String;
Str_Acresc_ou_Desc : String;
Str_Tipo_Acresc_Desc : String;
Str_Valor_Acresc_Desc : String;
Str_Valor_Recebimento : String;
begin

Str_Indice_do_Totalizador_Nao_Fiscal:='03';
Str_Acresc_ou_Desc:='A';
Str_Tipo_Acresc_Desc:='%';
Str_Valor_Acresc_Desc:='0,0';
Str_Valor_Recebimento:='0,00';

Int_Retorno:=Daruma_FIMFD_RecebimentoNaoFiscal(pchar(Str_Indice_do_Totalizador_Nao_Fiscal),Str_Acresc_ou_Desc,Str_Tipo_Acresc_Desc,pchar(Str_Valor_Acresc_Desc),pchar(Str_Valor_Recebimento));
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_IniciaFechamentoNaoFiscal(Índice 6011)

Método: Daruma_FIMFD_IniciaFechamentoNaoFiscal
[Índice: 6011]
Previous Top Next

· Definição do Método:
Inicia o fechamento do recebimento não fiscal com o uso das formas de pagamento, nas impressoras MFD's FS600 e 2100T).

· Parâmetros do Método: (3 Parâmetros)
1. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
2. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
3. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual (2 casas decimais).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O valor do desconto "nunca" poderá ser igual ou maior do que o valor do cupom.
- Caso a venda seja de 1(um) ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço você poderá receber erro 24 ou 44, então o desconto não será permitido. Importante para habilitar o desconto sobre serviço é preciso que seja feito por meio de IT(interveção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja habilitado para desconto em serviço então para um cupom onde os itens sejam com alíquota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Acrescimo_ou_Desconto As String
Dim Str_Tipo_do_Acrescimo_ou_Desconto As String
Dim Str_Valor_do_Acrescimo_ou_Desconto As String

Str_Acrescimo_ou_Desconto = "Ä"
Str_Tipo_do_Acrescimo_ou_Desconto = "%"
Str_Valor_do_Acrescimo_ou_Desconto = "0,00"

Int_Retorno = Daruma_FIMFD_IniciaFechamentoNaoFiscal(Str_Acrescimo_ou_Desconto, Str_Tipo_do_Acrescimo_ou_Desconto, Str_Valor_do_Acrescimo_ou_Desconto)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_do_Acrescimo_ou_Desconto: String;
Str_Valor_do_Acrescimo_ou_Desconto: String;

begin
Str_Acrescimo_ou_Desconto := 'A';
Str_Tipo_do_Acrescimo_ou_Desconto := '%';
Str_Valor_do_Acrescimo_ou_Desconto := '0,00';

Int_Retorno := Daruma_FIMFD_IniciaFechamentoNaoFiscal( pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Tipo_do_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Acrescimo_ou_Desconto ) );
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_EfetuaFormaPagamentoNaoFiscal(Índice 6012)

Método: Daruma_FIMFD_EfetuaFormaPagamentoNaoFiscal [Índice 6012]
Previous Top Next

· Definição do Método:
Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s) nessa forma, nas impressoras MFD's FS600 e 2100T).

· Parâmetros do Método: (3 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Valor Forma Pagamento: String com o valor da forma de pagamento com até 14 dígitos.
3. Observação Livre: String com até 48 caracteres, na FS345 e até 82 na FS600/FS2100T.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O fechamento do comprovante não fiscal acontecerá automaticamente assim que o total do comprovante não fiscal seja atingido.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao_da_Forma_Pagamento As String
Dim Str_Valor_da_Forma_Pagamento As String
Dim Str_Texto_Livre As String

Str_Descricao_da_Forma_Pagamento = "Dinheiro"
Str_Valor_da_Forma_Pagamento = "1,00"
Str_Texto_Livre = "Pagamento referente a primeira parcela."

Int_Retorno = Daruma_FIMFD_EfetuaFormaPagamentoNaoFiscal(Str_Descricao_da_Forma_Pagamento, Str_Valor_da_Forma_Pagamento, Str_Texto_Livre)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma_Pagamento: String;
Str_Valor_da_Forma_Pagamento: String;
Str_Texto_Livre: String;
begin
Str_Descricao_da_Forma_Pagamento := 'Dinheiro';
Str_Valor_da_Forma_Pagamento := '1,00';
Str_Texto_Livre := 'Pagamento referente a primeira parcela.';

Int_Retorno := Daruma_FIMFD_EfetuaFormaPagamentoNaoFiscal( pchar( Str_Descricao_da_Forma_Pagamento ), pchar( Str_Valor_da_Forma_Pagamento ), pchar( Str_Texto_Livre ) );
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_TerminaFechamentoNaoFiscal(Índice 6020)

Método: Daruma_FIMFD_TerminaFechamentoNaoFiscal
[Índice 6020]
Previous Top Next

· Definição do Método:
Termina o fechamento do cupom com mensagem promocional, nas impressoras MFD's FS600 e 2100T).

· Parâmetros do Método: (1 Parâmetro)
Mensagem Promocional: String com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Acentuação e/ou caracteres especiais, não são aceitos na mensagem promocional.
- A forma de pagamento deve ter sido efetuada.
- Na impressora fiscal Daruma, serão impressas 8 linhas de texto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Mensagem_Promocional As String

Str_Mensagem_Promocional = "Obrigado, volte sempre!"
Int_Retorno = Daruma_FIMFD_TerminaFechamentoNaoFiscal(Str_Mensagem_Promocional)
Daruma_MostrarRetorno
End Sub

· Exemplo em Delphi 7.0:
var
Str_Mensagem_Promocional: String;
begin
Str_Mensagem_Promocional := 'Obrigado, volte sempre!';

Int_Retorno := Daruma_FIMFD_TerminaFechamentoNaoFiscal( pchar( Str_Mensagem_Promocional ) );
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_ProgramarGuilhotina(Índice 6019)

Método: Daruma_FIMFD_ProgramarGuilhotina
[Índice 6019]
Previous Top Next

· Definição do Método:
Este método permite que seja programada a guilhotina, na FS600. Permite também que seja programado o espaçamento entre os documentos e também se o clichê do proprietário será impressora de forma antecipada.

· Parâmetros do Método: (4 Parâmetros)
Linhas entre os Documentos: String com o Número de Linhas que você quer de separação entre os documentos impressos.
Linhas para o Acionamento da Guilhotina: String com o número de Linhas para o Acionamento da Guilhotina.
Status da Guilhotina: Byte para Habilitar ou Desabilitar a Guilhotina sendo que 1(um) habilita e 0(zero) desabilita.
Impressao Antecipada do Cliche: Byte para imprir ou nào imprimir o clichê de forma antecipada. Sendo que 0(zero) habilita e 1(um) desabilita.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:

- Verificar se o equipamento está habilitado com a Guilhotina.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Separacao_entre_Documentos As String
Dim Str_Linhas_para_Acionamento_Guilhotina As String
Dim Str_Status_da_Guilhotina As String
Dim Str_Impressao_Antecipada_Cliche As String

Str_Separacao_entre_Documentos = "05"
Str_Linhas_para_Acionamento_Guilhotina = "05"
Str_Status_da_Guilhotina = "0"
Str_Impressao_Antecipada_Cliche = "1"

Int_Retorno = Daruma_FIMFD_ProgramarGuilhotina(Str_Separacao_entre_Documentos, Str_Linhas_para_Acionamento_Guilhotina, Str_Status_da_Guilhotina, Str_Impressao_Antecipada_Cliche)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Separacao_entre_Documentos: String;
Str_Linhas_para_Acionamento_Guilhotina: String;
Str_Status_da_Guilhotina: String;
Str_Impressao_Antecipada_Cliche: String;

begin

Str_Separacao_entre_Documentos := '05';
Str_Linhas_para_Acionamento_Guilhotina := '05';
Str_Status_da_Guilhotina := '0';
Str_Impressao_Antecipada_Cliche := '1';

Int_Retorno := Daruma_FIMFD_ProgramarGuilhotina( pchar( Str_Separacao_entre_Documentos ), pchar(Str_Linhas_para_Acionamento_Guilhotina),Str_Status_da_Guilhotina,Str_Impressao_Antecipada_Cliche);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_DescontoAcrescimoItem (Índice 6031)

Método: Daruma_FIMFD_DescontoAcrescimoItem [Índice: 6031]
Previous Top Next

· Definição do Método:
Este método permite que você efetue um Desconto ou Acrescimo no item informado.

· Parâmetros do Método: (4 parâmetros)
1. Número do Item: Indica se haverá acréscimo ou desconto no Item selecionado no cupom;
2. Desconto ou Ascrecimo: O Tipo A para Acrescimo ou D para Desconto;
3. Tipo do Desconto ou Acrescimo: Para Percentagem (%) ou Valor ($) no valor do item selecionado;
4. Valor do Desconto ou Acrescimo: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual (2 casas decimais).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:

Dim Str_Numero_do_Item as String
Dim Str_Desconto_ou_Acrescimo_Item as String
Dim Str_Tipo_do_Desconto_ou_Acrescimo_Item as String
Dim Str_Valor_do_Desconto_ou_Acrescimo_Item as String

Str_Numero_do_Item = "001"
Str_Desconto_ou_Acrescimo_Item = "A"
Str_Tipo_do_Desconto_ou_Acrescimo_Item = "$"
Str_Valor_do_Desconto_ou_Acrescimo_Item = "0,01"

Int_Retorno = Daruma_FIMFD_DescontoAcrescimoItem(Str_Numero_do_Item, Str_Desconto_ou_Acrescimo_Item, Str_Tipo_do_Desconto_ou_Acrescimo_Item, Str_Valor_do_Desconto_ou_Acrescimo_Item)

Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:

var
Str_Numero_do_Item: String;
Str_Desconto_ou_Acrescimo_Item: String;
Str_Tipo_do_Desconto_ou_Acrescimo_Item: String;
Str_Valor_do_Desconto_ou_Acrescimo_Item: String;
begin
Str_Numero_do_Item := '001';
Str_Desconto_ou_Acrescimo_Item := 'A';
Str_Tipo_do_Desconto_ou_Acrescimo_Item := '$';
Str_Valor_do_Desconto_ou_Acrescimo_Item := '0,01';
Int_Retorno := Daruma_FIMFD_DescontoAcrescimoItem(pchar(Str_Numero_do_Item), pchar( Str_Desconto_ou_Acrescimo_Item ), pchar( Str_Tipo_do_Desconto_ou_Acrescimo_Item ), pchar( Str_Valor_do_Desconto_ou_Acrescimo_Item ) );
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_GTCodificado(Índice6083)

Método: Daruma_FIMFD_GTCodificado[Índice 6083]

Previous Top Next

· Definição do Método:
Retorna o Grande Total da Impressora codificado.

· Parâmetros do Método:
String: com 50(cinquenta) posições onde a dll irá retornar o GT(Grande Total) da impressora.a relatório gerencial programado em sua impressora.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Informacao as String
Str_Informacao = Space(50)
Int_Retorno = Daruma_FIMFD_GTCodificado(Str_Informacao);
TX_Retorno.text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength(Str_Informacao,50);
Int_Retorno := Daruma_FIMFD_GTCodificado(Str_Informacao);
TX_Retorno.text := Str_Informacao;
end;


Daruma_FIMFD_Verifica_GTCodificado(Índice 6085)

Método: Daruma_FIMFD_Verifica_GTCodificad [Índice 6085]
Previous Top Next

· Definição do Método:
Esse método faz a verificação do Grande Total Codificado da impressora.

· Parâmetros da Função:
GTCodificado: Variável String contendo o valor do GTCodificado através da função Daruma_FIMFD_GTCodificado com até 50 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:

0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27: (Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_GTCodificado As String

Str_GTCodificado = "4A945762C23686CFEAEAC3A5E1FBCC3C3CCBE9"

Int_Retorno = Daruma_FIMFD_Verifica_GTCodificado(Str_GTCodificado)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_GTCodificado: String;

begin

Str_GTCodificado := '4A945762C23686CFEAEAC3A5E1FBCC3C3CCBE9';
Int_Retorno := Daruma_FIMFD_Verifica_GTCodificado(Str_GTCodificado);
Daruma_Analisa_Retorno();


Daruma_FIMFD_NumeroSerialCodificado(Índice6084)

Método: Daruma_FIMFD_NumeroSerialCodificado[Índice 6084]

Previous Top Next

· Definição do Método:
Retorna o Número de Série da Impressora codificado.

· Parâmetros do Método:
String: com 60(sessenta) posições onde a dll irá retornar o Número de Série da impressora.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Informacao as String
Str_Informacao = Space(60)
Int_Retorno = Daruma_FIMFD_NumeroSerialCodificado(Str_Informacao);
TX_Retorno.text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength(Str_Informacao,60);
Int_Retorno := Daruma_FIMFD_NumeroSerialCodificado(Str_Informacao);
TX_Retorno.text := Str_Informacao;
end;


Daruma_FIMFD_Verifica_NumeroSerialCodificado(Índice6086)

Método: Daruma_FIMFD_Verifica_NumeroSerialCodificado(Índice6086)[Índice 6086]
Previous Top Next

· Definição do Método:
Esse método faz a verificação do Número de série Codificado da impressora.

· Parâmetros da Função:
NumeroSerial: Variável String contendo o valor do Número de Série através da função Daruma_FIMFD_NumeroSerialCoficado com até 60 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:

0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27: (Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_NumeroSerialCodificado As String

Str_NumeroSerialCodificado = "2269063124D0266FB2B7637DE8D6A4E1EB24FF9F09A48C2DE1B640C0ED9D"

Int_Retorno = Daruma_FIMFD_Verifica_NumeroSerialCodificado(Str_NumeroSerialCodificado)
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_NumeroSerialCodificado: String;

begin

Str_NumeroSerialCodificado := '2269063124D0266FB2B7637DE8D6A4E1EB24FF9F09A48C2DE1B640C0ED9D';
Int_Retorno := Daruma_FIMFD_Verifica_NumeroSerialCodificado(Str_NumeroSerialCodificado);
Daruma_Analisa_Retorno();


Daruma_FIMFD_CodigoModeloFiscal

Método: Daruma_FIMFD_CodigoModeloFiscal[Índice: 0000]

Previous Top Next

· Definição do Método:
Este método permite que você verifique o código de identificação do ECF, conforme a tabela nacional disponibilizada pela SEFAZ.

· Parâmetros do Método:
String: com 6(seis) posições onde a dll irá retornar o código da impressora conectada.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(6)
Int_Retorno = Daruma_FIMFD_CodigoModeloFiscal(Str_Informacao)
TX_Retorno.Text = Str_Informacao
Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,6);
Int_Retorno := Daruma_FIMFD_CodigoModeloFiscal(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);
end;


Daruma_FIMFD_GerarAtoCotepeData(6041)

Método: Daruma_FIMFD_GerarAtoCotepeData[Índice: 6041]
Previous Top Next

· Definição do Método:
Este método irá gerar os arquivos do período solicitado para atender a portaria Ato Cotepe 17/04(Nota Fiscal Paulista, Nota Fiscal Legal, Alagoana e outras), com a nomenclatura DR1??????????.DMA

Ex: DR10000072090.PA9

Que traduzido seria:

· Parâmetros do Método:
1. Data Inicial: String com a Data inicial no formato ddmmaaaa.
2. Data Final: String com a Data final no formato ddmmaaaa.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-2: Parâmetro Inválido. Ex.: Data Inicial maior que Data Final.
-100: Arquivo .MFD Corrompido.
-110: Período sem movimento.
-109: Data final é maior que a data do movimento da última Redução Z emitida.
-108: Data inicial e data final é menor que o 1º documento emitido.
-27:(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Método compatível somente para impressoras térmicas FS600, FS700 e FS2100T.
- Configurar o diretório onde os arquivos serão gerados, basta utilizar o método Daruma_Registry_AlterarRegistry.
- Configurar sinal sonoro que irá avisar cada arquivo gerado, basta utilizar o método Daruma_Registry_AlterarRegistry.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_DataInicial As String
Dim Str_DataFinal As String

Str_DataInicial = "01092009"
Str_DataFinal = "30092009"

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Path", "C:\Daruma\")

{Configura a geração dos arquivos automática diariamente após a redução Z}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "GerarAtoCotepe", "1")

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Beep", "1")

{Executa o método que irá gerar os arquivos}
Int_Retorno = Daruma_FIMFD_GerarAtoCotepeData(Str_DataInicial, Str_DataFinal)

Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_DataInicial, Str_DataFinal: String;

begin

Str_DataInicial := Trim(01092009);
Str_DataFinal := Trim(30092009);

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Path', 'C:\Daruma\');

{Configura a geração dos arquivos diariamente após a redução Z}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'GerarAtoCotepe', '1');

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Beep', '1');

{Executa o método que irá gerar os arquivos}
Int_Retorno:= Daruma_FIMFD_GerarAtoCotepeData(Str_DataInicial, Str_DataFinal);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;


Daruma_FIMFD_GerarAtoCotepePafData(6042)

Método: Daruma_FIMFD_GerarAtoCotepePafData[Índice: 6042]
Previous Top Next

· Definição do Método:
Este método irá gerar o Arq. MFD por intervalod de data conforme o leiaute estabelecido no Ato COTEPE/ICMS 17/04 para atener ao requisito VII Item 6 do PAF-ECF, o arquivo será gerado com a nomenclatura ATOCOTEPE_DARUMA.TXT.

· Parâmetros do Método:
1. Data Inicial: String com a Data inicial no formato ddmmaaaa.
2. Data Final: String com a Data final no formato ddmmaaaa.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-2: Parâmetro Inválido. Ex.: Data Inicial maior que Data Final.
-100: Arquivo .MFD Corrompido.
-110: Período sem movimento.
-109: Data final é maior que a data do movimento da última Redução Z emitida.
-108: Data inicial e data final é menor que o 1º documento emitido.
-27:(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Método compatível somente para impressoras térmicas FS600, FS700 e FS2100T.
- Configurar o diretório onde os arquivos serão gerados, basta utilizar o método Daruma_Registry_AlterarRegistry.
- Configurar sinal sonoro que irá avisar cada arquivo gerado, basta utilizar o método Daruma_Registry_AlterarRegistry.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_DataInicial As String
Dim Str_DataFinal As String

Str_DataInicial = "01092009"
Str_DataFinal = "30092009"

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Path", "C:\Daruma\")

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Beep", "1")

{Executa o método que irá gerar os arquivos}
Int_Retorno = Daruma_FIMFD_GerarAtoCotepePAFData(Str_DataInicial, Str_DataFinal)

Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_DataInicial, Str_DataFinal: String;

begin

Str_DataInicial := Trim(01092009);
Str_DataFinal := Trim(30092009);

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Path', 'C:\Daruma\');

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Beep', '1');

{Executa o método que irá gerar os arquivos}
Int_Retorno:= Daruma_FIMFD_GerarAtoCotepePAFData(Str_DataInicial, Str_DataFinal);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;


Daruma_FIMFD_GerarAtoCotepePafCoo(6043)

Método: Daruma_FIMFD_GerarAtoCotepePafCOO[Índice: 6043]
Previous Top Next

· Definição do Método:
Este método irá gerar o Arq. MFD por intervalo COO conforme o leiaute estabelecido no Ato COTEPE/ICMS 17/04 para atener ao requisito VII Item 6 do PAF-ECF, o arquivo será gerado com a nomenclatura ATOCOTEPE_DARUMA.TXT.

· Parâmetros do Método:
1. COO Inicial: String com a COO inicial no formato 999999.
2. COO Final: String com a COO final no formato 999999.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-2: Parâmetro Inválido. Ex.: COO Inicial maior que COO Final.
-100: Arquivo .MFD Corrompido.
-110: Intervalo COO sem movimento.
-109: COO final é maior que a COO do movimento da última Redução Z emitida.
-108: COO inicial e COO final é menor que o 1º documento emitido.
-27:(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Método compatível somente para impressoras térmicas FS600, FS700 e FS2100T.
- Configurar o diretório onde os arquivos serão gerados, basta utilizar o método Daruma_Registry_AlterarRegistry.
- Configurar sinal sonoro que irá avisar cada arquivo gerado, basta utilizar o método Daruma_Registry_AlterarRegistry.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_CooInicial As String
Dim Str_CooFinal As String

Str_CooInicial = "999999"
Str_CooFinal = "999999"

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Path", "C:\Daruma\")

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Beep", "1")

{Executa o método que irá gerar os arquivos}
Int_Retorno = Daruma_FIMFD_GerarAtoCotepePAFCoo(Str_CooInicial, Str_CooFinal)

Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_CooInicial, Str_CooFinal: String;

begin

Str_CooInicial := Trim(999999);
Str_CooFinal := Trim(999999);

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Path', 'C:\Daruma\');

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Beep', '1');

{Executa o método que irá gerar os arquivos}
Int_Retorno:= Daruma_FIMFD_GerarAtoCotepePAFCoo(Str_CooInicial, Str_CooFinal);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;


Daruma_FIMFD_CupomAdicionalCampoLivre

Método: Daruma_FIMFD_CupomAdicionalCampoLivre[Índice: 0000]
Previous Top Next

· Definição do Método:
Abre e Imprime Imprime o Relatório Gerencial.

Parâmetros do Método: (1 Parâmetro)
Texto: String com o Texto a ser impresso no relatório com até 618 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Se o Relatorio Gerencial estiver aberto este Método imprime o texto que você deseja, e se desejar continuar imprimindo mais texto, continue Chamando este Método, que uma vez aberto o Gerencial, o mesmo não será Aberto novamente até que seja chamada a Método.
- Para fechar o Relatório, chame o Método:Daruma_FI_FechaRelatorioGerencial.
- Se qualquer Método diferente da Daruma_FI_RelatorioGerencial for chamado com o relatório aberto, efetuará seu fechamento automaticamente.
- Uma vez aberto o Relatório Gerencial, você terá 10(dez) minutos para a impressão de Texto Livre.
- Caso você se esqueça de fechar o Relatório Gerencial o mesmo será fechado automaticamente após 10(dez) minutos contando a partir de sua abertura.
- Nas Impressoras Térmicas FS600 e FS2000T o gerencial permanecerá aberto por 2(dois) Minutos.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Texto_Livre As String

Str_Texto_Livre = "Texto Livre com até 600 caracteres"

Int_Retorno = Daruma_FI_RelatorioGerencial(Str_Texto_Livre)

· Exemplo em Delphi 7.0:
var
Str_Texto_Livre: String;
begin
Str_Texto_Livre := 'Texto Livre com até 618 caracteres';

Int_Retorno := Daruma_FI_RelatorioGerencial( pchar( Str_Texto_Livre ) );

· Exemplo em Java:
int retorno;

retorno = FISCAL.Daruma_FI_RelatorioGerencial("teste com o .JAR no exemplo java");


Daruma_Framework_DadosUltimaZ

Dados última Redução Z - Como codificar os bytes retornados.


Consumo de MFD - Como trabalha a compactação dos Arquivos

Método:Consumo de MFD - Como trabalha a compactação dos Arquivos
Previous Top Next

Introdução

Desde de 2000 a Daruma se preocupa em demonstrar aos nossos clientes as facilidades e as tecnologias que são usadas em nossos produtos de forma transparente, sendo, assim após estudos realizados por paceiros em potencial ligados a Área de Desenvolvimento Daruma foi criado a nossa MFD que significa Memória Fita Detalhe.
A MFD, ou seja, Memória Fita Detalhe é o local aonde ele armazena todas as informações Fiscais dentro de uma Memória de 128MB ou maior dependendo da disponibilidade requisita, com Compactação de arquivos demonstrando ao usuário final anos de recolhimento de informações e por sua vez o resgate de informações. Devido a essa Tecnologia inovadora foi eliminada a segunda-via do cupom fiscal, reduzindo os gastos com o armazenamento de bobinas e sendo registrados os dados e armazenado de forma organizada as informações dentro da MFD aonde em qualquer momento o usuário pode obtar por resgatar as informações.
Após estudos realizados por um grupo de desenvolvedores, especialistas em algorítimos de compactação de dados e segurança de dados, foi desenvolvida a nossa MFD aonde temos a melhor compactação de dados no mercado de forma simples, 'compacta' e segura garantindo a integridade das informações armazendas na MFD.
Muitas pessoas perguntam como é realizada a compactação nos arquivos enviados para nossas impressoras térmicas com a tecnologia MFD e abaixo demonstrado como realizar testes e como funciona a Ultra-Compactação das informações dentro da MFD.

· Quais Impressoras Daruma possuem a tecnologia MFD?
FS600;
FS2100T.

· Como é compactado os dados em nossa MFD?
A compactação das informações são realizadas de 3 formas, aonde as informações gravadas são verificadas em NÚMERICO, LETRAS e ALFANÚMERICO, desta forma a impressora verifica essas informações e faz a criptografia e a compactação das informações.
A MFD possui uma tecnologia aonde foi desenvolvido um Dicionário de dados que reduz o consumo de MFD que passa para a impressora que essa informação de dados já existe reduzindo o número de caracteres salvos na MFD, conforme a explicação a seguir.

Exemplo de itens emitidos.:
Refrigerante Light;
Refrigerante Zero;
Refrigerante.

Exemplo do funcionamento da compactação.:
Refrigerante, Light, Zero.

Ou seja, não irá ter duplicidade de informação evitando o super-lotamento.

Para a realização de teste de consumo de MFD, acesso o link.


Daruma_Framework_Teste_Consumo_MFD (Índice 6031)

Para realizar os testes no Framework, você necessita ter a Daruma32.dll e algum exemplo Framework desenvolvido na Linguagem desejada. Estaremos utilizando abaixo o exemplo em Delphi segue as imagens abaixo:

Para a 'down-load' do aplicativo Daruma Framework, junto a última versão da nossa DLL (Versão Delphi 7.0) você necessita acessar o link: http://www.desenvolvedoresdaruma.com.br/home/downloads/Daruma32_Delphi_Executavel.exe

MFD

Impressoras Fiscais -> Metodos Exclusivos para MFD -> Daruma_Framework_Teste_Consumo_MFD

Após localizado a função iremos iniciar os Testes, como segue a imagem abaixo:

imagem

Letras Aleatorias da Descrição do Item: Descreve utilizando a combinação de A->Z as descrições dos itens a serem utilizados na impressora fiscal térmica realizando uma combinação entre as letras tendo como principal objetivo, mostrar ao usuário que sempre que uma descrição se repetir não irá consumir o máximo da MFD.
Codigo do Item Aleatorio: Código do Item a ser passado, mesmo intuito da 'Descrição do Item', porém utilizando a combinação entre os números de 0->9, aonde os códigos serão formados para o teste de forma a nunca repetir um código, exigindo dessa maneira o máximo da compactação da MFD.
Quantidade de Letras Aleatorias: Informa a quantidade de letras aleatórias a serem utilizados no teste, para demonstrar ao usuário que mesmo utilizando diversas quantidades haverá de forma inteligente a compactação dos dados na MFD.
Quantidade de Digitos no Codigo: Informa a quantidade de Códigos a serem utilizados no teste, para demonstrar ao usuário que mesmo utilizando diversas quantidades haverá de forma inteligente a compactação dos dados na MFD.

Quantos itens você deseja em cada Cupom: Informa a quantidade de itens a serem impressoras no Cupom Fiscal de teste.
Quantos cupons você deseja: Informa a quantidade de cupons a serem impressos na impressora térmica.

Perguntar Impressora Ligada(item): Pergunta se a impressora está ligada para a execução do teste.
Perguntar SubTotal(item): Pergunta o SubTotal dos itens a serem impressos
Perguntar GT(Cupom): Pergunta o GT(Grande Total) dos cupons a serem impressos
Perguntar Status Cupom(Cupom): Pergunta o 'Status' do cupom a serem impressos

Imprimir Cupom(s): Botão inicial do teste, aonde serão realizados os procedimentos descritos e configurados pelo usuário acima, esse processo pode demorar dependendo do número de descrição passado pelo usuário.

Limpar List Box: Apaga os 'Status de Envio' registrado no processo de teste.
Limpar Logs: Apaga os Log's das operações realizadas.
Reenviar Log: Realiza o re-envio do log solicitado pelas operações, isso faz com que repita os mesmos cupons impressos anteriormente.

Recalcular: Nessa opção importante, você irá descobrir na real o quanto sua MFD consumiu durante a realização dos testes, demonstrando o sistema de Compactação desenvolvido pela Daruma aonde o cliente final estará satisfeito ao saber que não precisará realizar trocas de MFD durante um curto período de tempo.

Ao Imprimir Cupom você irá percebe que a impressora irá imprimir diversas linhas testando as Strings passadas na tela acima, ao final dos testes uma mensagem de sucesso irá aparecer. Para Cacular o quanto foi usado é somente apertar o botão Recalcular e você verá o quanto em percentagem a MFD consumiu no teste.

Qualquer dúvida favor entrar em contato com o Suporte ao Desenvolvedor por um de nossos canais listados a seguir:

· Ligação gratuita via internet

Skype: suporte_daruma
Skype: suporte_desenvolvedores_daruma
Skype: desenvolvedores_suporte_daruma
Skype: daruma_suporte_alexandre
Skype: claudenir_andrade

· Por email

suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.suporte@daruma.com.br
suporte.alexandre@daruma.com.br

· Por telefone

Desenvolvedores: 0800 770 3320


Método Daruma_FIB_AbreBilhetePassagem(Índice 2000)

Método: Daruma_FIB_AbreBilhetePassagem[Índice: 2000]
Previous Top Next

· Definição do Método:
Abre o bilhete de passagem.

· Parâmetros do Método: (12 Parâretros).
1. Percurso: String até 39 caracteres com percurso da viagem.
2. Origem: String com até 34 caracteres, com a cidade de origem(localidade de embarque).
3. Destino: String com até 34 caracteres, com a cidade de destino(localidade de destino).
4. UF Destino: String com 2 caracteres, do estado de destino.
5. Categoria: String com 1 caráctere. Sendo: (1->interestadual, 2->intermunicipal e 3->internacional).
6. Modalidade: String com 1 carátere. Sendo: (1->rodoviário, 2->ferroviário e 3->hidroviário).
7. Plataforma: String com até 4 caráteres, com a descrição da plataforma.
8. Poltrona: String com até 4 caráteres, com o número da poltrona.
Data Hora Embarque: String com 14 caráteres, com a data seguida da hora de embarque. Observação! não use separadores, o modelo a ser passado é: DDMMAAAA hhmmss, tudo junto sem espaço.
9. Pretadora: String com até 48 caracteres, com o nome da empresa pratadora do serviço.
10. RG Passegeiro: String com até 29 caracteres, com o número de identidade do passageiro (opcional).
11. Nome Passageiro: String com até 30 caracteres, com o nome do passageiro (opcional).
12. Endereço Passageiro: String com até 79 caracteres, com o endereço do passageiro (opcional).

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Percurso As String
Dim Str_Origem As String
Dim Str_Destino As String
Dim Str_UF As String
Dim Str_Categoria As String
Dim Str_Modalidade As String
Dim Str_Plataforma As String
Dim Str_Poltrona As String
Dim Str_DataHora As String
Dim Str_Prestadora As String
Dim Str_RG_Passageiro As String
Dim Str_Nome_Passageiro As String
Dim Str_Endereco_Passageiro As String

Str_Percurso = "Taubate Foz do Iguacu"
Str_Origem = "Taubate"
Str_Destino = "Foz do Iguacu "
Str_UF = "PR"
Str_Categoria = "1"
Str_Modalidade = "2"
Str_Plataforma = "PT14"
Str_Poltrona = "13C"
Str_DataHora = "25112005190000"
Str_Prestadora = "Itapemirim"
Str_RG_Passageiro = ""
Str_Nome_Passageiro = ""
Str_Endereco_Passageiro = ""
Int_Retorno = Daruma_FIB_AbreBilhetePassagem(Str_Origem, Str_Destino, Str_UF, Str_Percurso, Str_Prestadora, _
Str_Plataforma, Str_Poltrona, Str_Modalidade, Str_Categoria, _
Str_DataHora, Str_RG_Passageiro, Str_Nome_Passageiro, Str_Endereco_Passageiro)

· Exemplo em Delphi 7.0:
Var
Str_Percurso: String;
Str_Origem: String;
Str_Destino: String;
Str_UF:String;
Str_Categoria: String;
Str_Modalidade: String;
Str_Plataforma: String;
Str_Poltrona: String;
Str_DataHora: String;
Str_Prestadora: String;
Str_RG_Passageiro: String;
Str_Nome_Passageiro: String;
Str_Endereco_Passageiro: String;
begin
Str_Percurso:= 'Taubate Foz do Iguacu';
Str_Origem:= 'Taubate';
Str_Destino:= 'Foz do Iguacu';
Str_UF:= 'PR';
Str_Categoria:= '1';
Str_Modalidade:= '2';
Str_Plataforma:= 'PT14';
Str_Poltrona:= '13C';
Str_DataHora:= '25112005190000';
Str_Prestadora:= 'Itapemirim';
Str_RG_Passageiro:= '';
Str_Nome_Passageiro:= '';
Str_Endereco_Passageiro:= '';
Int_Retorno:= Daruma_FIB_AbreBilhetePassagem (pchar(Str_Origem), pchar(Str_Destino), pchar(Str_UF), pchar(Str_Percurso), pchar(Str_Prestadora), pchar(Str_Plataforma), pchar(Str_Poltrona), pchar(Str_Modalidade), pchar(Str_Categoria), pchar(Str_DataHora), pchar(Str_RG_Passageiro), pchar(Str_Nome_Passageiro), pchar(Str_Endereco_Passageiro));


Método Daruma_FIB_VendeItem(Índice 2001)

Método: Daruma_FIB_VendeItem[Índice: 2001]
Previous Top Next

· Definição do Método:
Vende bilhete de passagem .

· Parâmetros do Método: (6 Parâretros).
1. Descrição: String até 21 caracteres com a descrição do produto.
2. Alíquota: String com o valor ou o índice da alíquota tributária. Se for o valor deve ser informado com o tamanho de 4 caracteres ou 5 com a vírgula. Se for o índice da alíquota deve ser 2 caracteres. Ex. (18,00 para o valor ou 05 para o índice).
3. ValorUnitário: String até 8 dígitos para valor unitário.
4. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
5. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
6. Valor Acréscimo Desconto: String com no máximo 11 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual.

· Observações:
- O valor do desconto nunca poderá ser igual ou maior do que o valor do item.

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao As String
Dim Str_Situacao_Tributaria As String
Dim Str_Valor As String
Dim Str_Acrescimo_Desconto As String
Dim Str_Tipo_Acrescimo_Desconto As String
Dim Str_Valor_Acrescimo_Desconto As String

Str_Descricao = "Bagagem"
Str_Situacao_Tributaria = "II"
Str_Valor = "5,00"
Str_Acrescimo_Desconto = "D"
Str_Tipo_Acrescimo_Desconto = "$"
Str_Valor_Acrescimo_Desconto = "0,10"

Int_Retorno = Daruma_FIB_VendeItem(Str_Descricao, Str_Situacao_Tributaria, Str_Valor, Str_Acrescimo_Desconto, _
Str_Tipo_Acrescimo_Desconto, Str_Valor_Acrescimo_Desconto)

· Exemplo em Delphi 7.0:
Var
Str_Descricao: String;
Str_Situacao_Tributaria: String;
Str_Valor:String;
Str_Acrescimo_Desconto: String;
Str_Tipo_Acrescimo_Desconto: String;
Str_Valor_Acrescimo_Desconto: String;

begin
Str_Descricao:= 'Bagagem';
Str_Situacao_Tributaria:= 'II';
Str_Valor:= '5,00';
Str_Acrescimo_Desconto:= 'D';
Str_Tipo_Acrescimo_Desconto:= '$';
Str_Valor_Acrescimo_Desconto:= '0,10';
Int_Retorno:= Daruma_FIB_VendeItem(pchar(Str_Descricao), pchar(Str_Situacao_Tributaria), pchar(Str_Valor), pchar(Str_Acrescimo_Desconto), pchar(Str_Tipo_Acrescimo_Desconto), pchar(Str_Valor_Acrescimo_Desconto));


Método Daruma_FIB_UfOrigem(Índice 0000)

Método: Daruma_FIB_UfOrigem[Índice: 0000]
Previous Top Next

· Definição do Método:
Programação da UF Origem do próximo Cupom Fiscal Bilhete de Passagem.

· Parâmetros do Método: (1 Parâmetro).
1. UFOrigem: String até 02 caracteres com o estado de origem da emissão do Bilhete passagem.

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método só pode ser executado, antes da abertura do Bilhete.
- Este método tem validade, somente para a impressão de um Bilhete, voltando ao default que é a impressão do estado que está gravado no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Uf_Origem As String

Str_Uf_Origem = "RJ"
Int_Retorno = Daruma_FIB_UfOrigem(Str_Uf_Origem)

· Exemplo em Delphi 7.0:
Var
Str_Uf_Origem: String;
begin
Str_Uf_Origem:= 'RJ';
Int_Retorno := Daruma_FIB_UfOrigem(pchar(Str_Uf_Origem));
Daruma_Analisa_Retorno();


Menu Fiscal

Requisito VII do PAF-ECF - MENU FISCAL

O PAF-ECF deve, salvo quando da execução de comando de impressão de documento, em todas as suas telas, conter uma caixa de comando ou tecla de função identificada "MENU FISCAL", sem recursos para restrição de acesso, contendo categorias com as seguintes identificações e funções, exceto se a função não for disponibilizada pelo software básico do ECF, hipótese em que deverá apresentar a mensagem "Função não suportada pelo modelo de ECF utilizado":


Registro Tipo R01 à R07

Montagem Registros 01 a R07

O conjunto de registros que compõem o arquivo obedecerá a ordem indicada no campo "Tipo de Registro" da tabela abaixo, e serão classificados de acordo com o campo "Classificação" da referida tabela.


Registro Tipo R01

Registro Tipo R01
Identificação do ECF, do usuário, do PAF-ECF e da empresa Desenvolvedora e dados do arquivo.


Registro Tipo R02

Registro Tipo R02 - Relação de Reduções Z

As Informações para atender o Registro TIPO R02, é necessário capturar as informações do ECF, logo após a emissão da ReduçãoZ utilizando o Método Daruma_FIMFD_RetornaInformação com o índice 140, tamanho 1164 (Verificar tabela), após obter as informações armazenar os dados no Banco de Dados do Aplicativo PAF-ECF. Ex: Para obter o Número do CRZ, ler da posição 928 a 931 a string de 1164 bytes retornada.


Registro Tipo R03

Registro Tipo R03 - Detalhe Redução Z

Obs: Tabela de Códigos de Totalizadores Parciais Item7 clique.


Registro Tipo R04

Registro Tipo R04
Cupom Fiscal, Nota Fiscal de venda consumidor e Bilhete de Passagem.


Registro Tipo R05

Registro Tipo R05
Detalhe Cupom Fiscal, Nota Fiscal de venda consumidor e Bilhete de Passagem.


Registro Tipo R06

Registro Tipo R06
Demais documentos emitidos pelo ECF
Previous Top Next

TABELA DE SÍMBOLOS DOS DEMAIS DOCUMENTOS EMITIDOS PELO ECF
Campo 10


Registro Tipo R07

Registro Tipo R07
Detalhe do Cupom Fiscal e do documento não fiscal - meio pagamento


Registro Tipo EAD

Registro Tipo EAD - Assinatura Digital

Para entender melhor como funciona a criação de sua chave privada, você poderá baixar o STK RSA com a Daruma32.dll em nosso site exclusivo para o
desenvolvedor através do link: Desenvolvedores Daruma


Tabela de Códigos de Totalizadores Parciais

Registro Tipo R03 - Detalhes Reduções Z
Tabela de Códigos de Totalizadores Parciais.


Siglas Documentos

Siglas Documentos emitidos pelo ECF


Daruma_RSA_CarregaChavePrivada_Arquivo

Método: Daruma_RSA_CarregaChavePrivada_Arquivo [Índice: 6080]

Previous Top Next

· Definição do Método:
Carrega a Chave Privada na Impressora MFD versão superior 01.05.00.

Para entender melhor como funciona a criação de sua chave privada, você poderá baixar o STK RSA com a Daruma32.dll em nosso site exclusivo para o desenvolvedor através do link: Desenvolvedores Daruma

· Parâmetros do Método:
1. CaminhoArquivo: String com o caminho completo + nome do arquivo que contém a chave privada a ser carregada na impressora. Ex: "c:\daruma\rsa\chaveprivada.key"

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_PathArquivo as string
Str_PathArquivo = "c:\daruma\rsa\chaveprivada.key"
Int_Retorno = Daruma_RSA_CarregaChavePrivada_Arquivo(Str_PathArquivo)

· Exemplo em Delphi 7.0:
var
Str_PathArquivo: String;
begin
Str_PathArquivo:= 'c:\daruma\rsa\chaveprivada.key';
Int_Retorno := Daruma_RSA_CarregaChavePrivada_Arquivo(Str_PathArquivo);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();


Daruma_RSA_RetornaChavePublica

Método: Daruma_RSA_RetornaChavePublica [Índice: 6082]
Previous Top Next

· Definição do Método:
Retorna a Chave Pública, através de 2(duas) variáveis por referência, uma para obter o valor de .n. (Módulo público) e outra para armazenar o valor de .e. (Expoente Público).

· Parâmetros do Método:
String: com 257(duzento e cinquenta e sete) posições onde a dll irá retornar o .e. (Expoente Público).
String: com 257(duzento e cinquenta e sete) posições onde a dll irá retornar o .n. (Módulo Público).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_N As String
Dim Str_E As String

Str_N = Space(257)
Str_E = Space(257)
Int_Retorno = Daruma_RSA_RetornaChavePublica(Str_N,Str_E)
TX_E.Text = Str_E
TX_N.Text = Str_N

· Exemplo em Delphi 7.0:
var Str_N: String;
Str_E: String;
begin
SetLength (Str_N,257);
SetLength (Str_E,257);
Int_Retorno := Daruma_RSA_RetornaChavePublica(Str_N,Str_E);
TX_E.Text := Str_E;
TX_N.Text := Str_N;
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_RSA_CodificaInformacao

Método: Daruma_RSA_CodificaInformacao [Índice: 0000]
Previous Top Next

· Definição do Método:
Este método codifica Texto com chave dinâmica.

· Parâmetros do Método:

1. Texto: String com 256 caracteres a ser codificada.
2. Variável String por referência com 260 espaços alocados para receber o texto codificado.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Informação as String
Dim Str_Resultado as String

Str_Informacao = "DARUMA DEVELOPERS COMMUNITY
Str_Resultado = Space(260)
Int_Retorno = Daruma_RSA_CodificaInformacao(Str_Informacao, Str_Resultado);
TX_Resultado.Text = Str_Resultado

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
Str_Resultado : String;
begin
Str_Informacao:= 'DARUMA DEVELOPERS COMMUNITY';
SetLength(Str_Resultado,260);
Int_Retorno := Daruma_RSA_CodificaInformacao(Str_Informacao, Str_Resultado);
TX_Resultado := Str_Resultado;
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_RSA_DecodificaInformacao

Método: Daruma_RSA_DecodificaInformacao [Índice: 0000]
Previous Top Next

· Definição do Método:
Este método decodifica Texto, codificado através do método Daruma_RSA_CodificaInformacao.

· Parâmetros do Método:

1. Texto: String com 256 caracteres a ser decodificada.
2. Variável String por referência com 260 espaços alocados para receber o texto codificado.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Informação as String
Dim Str_Resultado as String

Str_Informacao = "7F4A495716221CA7E5A93EF074BDB69C0F7A8B0FB978A15896997EA1E8579A464043E315391C3CD7E56A2205C8A4AAA338129D876BE0920C73B6D2EB0C660A445661AB9353ABF953024739B24F18CD6CDD9A54DE2FEDAA12D09B25A2326E29C98EB0C88C13E690D5306FEC3C814D1F32FC48E8BF17EE2EF98E9EEF159ED778FD"
Str_Resultado = Space(260)
Int_Retorno = Daruma_RSA_DecodificaInformacao(Str_Informacao, Str_Resultado);
TX_Resultado.Text = Str_Resultado

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
Str_Resultado : String;
begin
Str_Informacao:= '7F4A495716221CA7E5A93EF074BDB69C0F7A8B0FB978A15896997EA1E8579A464043E315391C3CD7E56A2205C8A4AAA338129D876BE0920C73B6D2EB0C660A445661AB9353 ABF953024739B24F18CD6CDD9A54DE2FEDAA12D09B25A2326E29C98EB0C88C13E690D5306FEC3C814D1F32FC48E8BF17EE2EF98E9EEF159ED778FD';
SetLength(Str_Resultado,260);
Int_Retorno := Daruma_RSA_DecodificaInformacao(Str_Informacao, Str_Resultado);
TX_Resultado := Str_Resultado;
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_RSA_CriarAssinatura

Método: Daruma_RSA_CriarAssinatura [Índice: 6081]

Previous Top Next

· Definição do Método:
Este método lê o documento informado e retorna o MD5 e a Assinatura Digital.

· Parâmetros do Método:

1. CaminhoArquivo: String com o caminho completo + nome do arquivo a ser assinado. Ex: "c:\daruma\rsa\daruma.txt"
2. Variável String por referência com 260 espaços alocados para receber o MD5.
3. Variável String por referência com 260 espaços alocados para receber Assinatura Digital.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_PathArquivo as String
Dim Str_Retorna_MD5 as String
Dim Str_Retorna_AssinaturaDigital

Str_PathArquivo = "c:\daruma\rsa\daruma.txt"
Str_Retorna_MD5 = Space(260)
Str_Retorna_AssinaturaDigital = Space(260)
Int_Retorno = Daruma_RSA_CriarAssinatura(Str_PathArquivo, Str_Retorna_MD5, Str_Retorna_AssinaturaDigital)
TX_MD5.Text = Str_Retorna_MD5
TX_AssinaturaDigital = Str_Retorna_AssinaturaDigital

· Exemplo em Delphi 7.0:
var
Str_PathArquivo: String;
Str_Retorna_MD5 : String;
Str_Retorna_AssinaturaDigital: String;
begin
Str_PathArquivo:= 'c:\daruma\rsa\daruma.txt';
SetLength(Str_Retorna_MD5,260);
SetLength(Str_Retorna_AssinaturaDigital,260);
Int_Retorno := Daruma_RSA_CriarAssinatura(Str_PathArquivo, Str_Retorna_MD5, Str_Retorna_AssinaturaDigital);
TX_MD5.text := Str_Retorna_MD5;
TX_AssinaturaDigital := Str_Retorna_AssinaturaDigital;
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_RSA_CriarAssinaturaHex

Método: Daruma_RSA_CriarAssinaturaHex [Índice: 6087]
Previous Top Next

· Definição do Método:
Este método lê o documento informado e retorna o MD5 e a Assinatura Digital em Hexadecimal.

· Parâmetros do Método:

1. CaminhoArquivo: String com o caminho completo + nome do arquivo a ser assinado. Ex: "c:\daruma\rsa\daruma.txt"
2. Variável String por referência com 260 espaços alocados para receber o MD5.
3. Variável String por referência com 260 espaços alocados para receber Assinatura Digital.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_PathArquivo as String
Dim Str_Retorna_MD5 as String
Dim Str_Retorna_AssinaturaDigital

Str_PathArquivo = "c:\daruma\rsa\daruma.txt"
Str_Retorna_MD5 = Space(260)
Str_Retorna_AssinaturaDigital = Space(260)
Int_Retorno = Daruma_RSA_CriarAssinaturaHex(Str_PathArquivo, Str_Retorna_MD5, Str_Retorna_AssinaturaDigital)
TX_MD5.Text = Str_Retorna_MD5
TX_AssinaturaDigital = Str_Retorna_AssinaturaDigital

· Exemplo em Delphi 7.0:
var
Str_PathArquivo: String;
Str_Retorna_MD5 : String;
Str_Retorna_AssinaturaDigital: String;
begin
Str_PathArquivo:= 'c:\daruma\rsa\daruma.txt';
SetLength(Str_Retorna_MD5,260);
SetLength(Str_Retorna_AssinaturaDigital,260);
Int_Retorno := Daruma_RSA_CriarAssinaturaHex(Str_PathArquivo, Str_Retorna_MD5, Str_Retorna_AssinaturaDigital);
TX_MD5.text := Str_Retorna_MD5;
TX_AssinaturaDigital := Str_Retorna_AssinaturaDigital;
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_RSA_CriarAssinaturaOnline

Método: Daruma_RSA_CriarAssinaturaOnline [Índice: 6087]
Previous Top Next

· Definição do Método:
Este método lê o documento informado e retorna a Assinatura Digital, sem a necessidade da Chave Privada estar carregada na impressora.

· Parâmetros do Método:

1. CaminhoArquivo: String com o caminho completo + nome do arquivo a ser assinado. Ex: "c:\daruma\rsa\daruma.txt"xt"
2. CaminhoArquivoChave: String com o caminho completo + nome do arquivo que contém a chave privada a ser carregada na impressora. Ex: "c:\daruma\rsa\ChavePrivada.txt"
3. Variável String por referência com 260 espaços alocados para receber Assinatura Digital.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Método Compatível somente para impressoras FS700M e FS700H.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_PathArquivo as String
Dim Str_PathChave as String
Dim Str_Retorna_AssinaturaDigital

Str_PathArquivo = "c:\daruma\rsa\daruma.txt"
Str_PathAChave = "c:\daruma\rsa\ChavePrivada.txt"
Str_Retorna_AssinaturaDigital = Space(260)
Int_Retorno = Daruma_RSA_CriarAssinaturaOnline(Str_PathArquivo, Str_PathChave, Str_Retorna_AssinaturaDigital)
TX_AssinaturaDigital = Str_Retorna_AssinaturaDigital

· Exemplo em Delphi 7.0:
var
Str_PathArquivo: String;
Str_PathChave : String;
Str_Retorna_AssinaturaDigital: String;
begin
Str_PathArquivo:= 'c:\daruma\rsa\daruma.txt';
Str_PathChave:= 'c:\daruma\rsa\ChavePrivada.txt';
SetLength(Str_Retorna_AssinaturaDigital,260);
Int_Retorno := Daruma_RSA_CriarAssinaturaOnline(Str_PathArquivo, Str_PathChave, Str_Retorna_AssinaturaDigital);
TX_AssinaturaDigital := Str_Retorna_AssinaturaDigital;
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_RetornaInformacao (Índice 6000)

Método: Daruma_FIMFD_RetornaInformacao[Índice: 6000]

Previous Top Next

· Definição do Método:
Este método possibilita retornar do ECF mais de 170 informações diferentes. A idéia deste método é que ao invés de termos 170 métodos, teremos apenas
um único método. Passamos o índice da informação desejada e obtemos a informação.

· Parâmetros do Método:
Indice: Variável String contendo o valor do índice com até 2 caracteres.Variáveis String por referência para receber as informacoes solicitadas.
Tamanho: Variável por referêncai com o tamanho de espaços alocados para o retorno da informação.

Exemplo:

Status atual do Cupom Fiscal ou Não Fiscal - Estado do CF / CNF, utilizar o índice 57 - Tamanho 1, o retorno do método será:

0 = fechado
1 = CF em registro de item
2 = CF em totalização
3 = CF em pagamento
4 = CF em finalização
5 = CNF em registro de item
6 = CNF em totalização
7 = CNF em pagamento
8 = CNF em finalização

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Indice As String
Dim Str_Valor As String
Dim Int_Tamanho As Integer

Str_Indice = TX_Indice.Text
Str_Valor = TX_Valor.Text
Str_Valor = Space(Int_Tamanho)
TX_Valor.Text = ""
TX_Valor.Text = Str_Valor
Int_Retorno = Daruma_FIMFD_RetornaInformacao(Str_Indice, Str_Valor)

· Exemplo em Delphi 7.0:
var Str_Indice: String;
Str_Valor: String;
Int_Tamanho: Integer;
begin

Int_Tamanho := StrToInt(Tx_Tamanho.Text) + 1;
Str_Indice := Tx_Indice.Text;
setlength( Str_valor, Int_Tamanho);

Int_Retorno := Daruma_FIMFD_RetornaInformacao( Str_Indice, Str_Valor );
Memo_Valor.Lines.Clear;
Memo_Valor.Lines.Append(Str_Valor);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_GerarAtoCotepePafCoo(6043)

Método: Daruma_FIMFD_GerarAtoCotepePafCoo[Índice: 6043]
Previous Top Next

· Definição do Método:
Este método irá gerar o Arq. MFD por intervalo COO conforme o leiaute estabelecido no Ato COTEPE/ICMS 17/04 para atener ao requisito VII Item 6 do PAF-ECF, o arquivo será gerado com a nomenclatura ATOCOTEPE_DARUMA.TXT.

· Parâmetros do Método:
1. COO Inicial: String com a COO inicial no formato 999999.
2. COO Final: String com a COO final no formato 999999.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-2: Parâmetro Inválido. Ex.: COO Inicial maior que COO Final.
-100: Arquivo .MFD Corrompido.
-110: Intervalo COO sem movimento.
-109: COO final é maior que a COO do movimento da última Redução Z emitida.
-108: COO inicial e COO final é menor que o 1º documento emitido.
-27:(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Método compatível somente para impressoras térmicas FS600, FS700 e FS2100T.
- Configurar o diretório onde os arquivos serão gerados, basta utilizar o método Daruma_Registry_AlterarRegistry.
- Configurar sinal sonoro que irá avisar cada arquivo gerado, basta utilizar o método Daruma_Registry_AlterarRegistry.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_CooInicial As String
Dim Str_CooFinal As String

Str_CooInicial = "999999"
Str_CooFinal = "999999"

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Path", "C:\Daruma\")

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Beep", "1")

{Executa o método que irá gerar os arquivos}
Int_Retorno = Daruma_FIMFD_GerarAtoCotepePAFCoo(Str_CooInicial, Str_CooFinal)

Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_CooInicial, Str_CooFinal: String;

begin

Str_CooInicial := Trim(999999);
Str_CooFinal := Trim(999999);

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Path', 'C:\Daruma\');

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Beep', '1');

{Executa o método que irá gerar os arquivos}
Int_Retorno:= Daruma_FIMFD_GerarAtoCotepePAFCoo(Str_CooInicial, Str_CooFinal);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;


Daruma_FIMFD_GerarMFPAF_Data

Método: Daruma_FIMFD_GerarMFPAF_Data[Índice: 6044]
Previous Top Next

· Definição do Método:
Este método irá gerar o Arq. MF por intervalo de data conforme o leiaute estabelecido no Ato COTEPE/ICMS 17/04 para atener ao requisito VII Item 3 alínea c) do PAF-ECF, o arquivo será gerado com a nomenclatura AtocotepeMF_Data.txt.

· Parâmetros do Método:
1. Data Inicial: String com a Data inicial no formato ddmmaaaa.
2. Data Final: String com a Data final no formato ddmmaaaa.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Método compatível somente para impressoras térmicas FS600, FS700 e FS2100T.
- Configurar o diretório onde os arquivos serão gerados, basta utilizar o método Daruma_Registry_AlterarRegistry.
- Configurar sinal sonoro que irá avisar cada arquivo gerado, basta utilizar o método Daruma_Registry_AlterarRegistry.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_DataInicial As String
Dim Str_DataFinal As String

Str_DataInicial = "01092009"
Str_DataFinal = "30092009"

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Path", "C:\Daruma\")

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Beep", "1")

{Executa o método que irá gerar os arquivos}
Int_Retorno = Daruma_FIMFD_GerarMFPAF_Data(Str_DataInicial, Str_DataFinal)

Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_DataInicial, Str_DataFinal: String;

begin

Str_DataInicial := Trim(01092009);
Str_DataFinal := Trim(30092009);

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Path', 'C:\Daruma\');

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Beep', '1');

{Executa o método que irá gerar os arquivos}
Int_Retorno:= Daruma_FIMFD_GerarMFPAFD_ata(Str_DataInicial, Str_DataFinal);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;


Daruma_FIMFD_GerarMFPAF_CRZ

Método: Daruma_FIMFD_GerarAtoCotepePafCoo[Índice: 6045]
Previous Top Next

· Definição do Método:
Este método irá gerar o Arq. MFD por intervalo COO conforme o leiaute estabelecido no Ato COTEPE/ICMS 17/04 para atener ao requisito VII Item 6 do PAF-ECF, o arquivo será gerado com a nomenclatura AtocotepeMF_CRZ.txt.

· Parâmetros do Método:
1. CRZ Inicial: String com a CRZ inicial no formato 999999.
2. CRZ Final: String com a CRZ final no formato 999999.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Método compatível somente para impressoras térmicas FS600, FS700 e FS2100T.
- Configurar o diretório onde os arquivos serão gerados, basta utilizar o método Daruma_Registry_AlterarRegistry.
- Configurar sinal sonoro que irá avisar cada arquivo gerado, basta utilizar o método Daruma_Registry_AlterarRegistry.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_CrzInicial As String
Dim Str_CrzFinal As String

Str_CrzInicial = "999999"
Str_CrzFinal = "999999"

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Path", "C:\Daruma\")

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno = Daruma_Registry_AlterarRegistry("AtoCotepe", "Beep", "1")

{Executa o método que irá gerar os arquivos}
Int_Retorno = Daruma_FIMFD_GerarMFPAF_CRZ(Str_CrzInicial, Str_CrzFinal)

Daruma_MostrarRetorno

· Exemplo em Delphi 7.0:
var
Str_CrzInicial, Str_CrzFinal: String;

begin

Str_CrzInicial := Trim(999999);
Str_CrzFinal := Trim(999999);

{Configura o diretório onde serão gerados os arquivos}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Path', 'C:\Daruma\');

{Configura sinal sonoro a cada arquivo gerado}
Int_Retorno := Daruma_Registry_AlterarRegistry('AtoCotepe', 'Beep', '1');

{Executa o método que irá gerar os arquivos}
Int_Retorno:= Daruma_FIMFD_GerarMFPAFCrz(Str_CrzInicial, Str_CrzFinal);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;


Daruma_Registry_FS2000_CupomAdicional(Índice 35)

Método: Daruma_Registry_FS2000_CupomAdicional
[Índice 35]
Previous Top Next

· Definição do Método:
Programa a Impressora FS2000 para poder emitir um Cupom Adicional

· Parâmetros do Método: (1 Parâmetro)
Variável String:
- 1 Programa.
- 0 Desprograma.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Por Default a dll irá sempre deixar o cupom adicional desprogramado, portanto caso você queira utilizá-lo deverá chamar este método no início de seu código.
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_FS2000_CupomAdicional("1")

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_Registry_FS2000_CupomAdicional('1');


Daruma_Registry_FS2000_TempoEsperaCheque(Índice 45)

Método: Daruma_Registry_TempoEsperaCheque [Índice 45]
Previous Top Next

· Definição do Método:
Ajusta o tempo de espera para o posicionamento impressão do cheque para a impressão.

· Parâmetros do Método: (1 Parâmetro)
Variável String: Com o tempo em segundos.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método e aplicado para obter-se mais tempo na hora de posicionar o cheque para a impressão.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Tempo_Espera_Cheque As String

Str_Tempo_Espera_Cheque = InputBox("Entre com o Tempo em Segundos para esperar o Cheque ser Posicionado:", "Daruma Framework", "5")
If Str_Tempo_Espera_Cheque = "" Then
Exit Sub
End If
Int_Retorno = Daruma_Registry_FS2000_TempoEsperaCheque(Str_Tempo_Espera_Cheque)

· Exemplo em Delphi 7.0:
var
Str_Tempo_Espera_Cheque: String;
begin
Str_Tempo_Espera_Cheque := InputBox('Entre com o Tempo em Segundos para esperar o Cheque ser Posicionado:', 'Daruma Framework', '5');
if Str_Tempo_Espera_Cheque = '' Then
Exit;

Int_Retorno := Daruma_Registry_FS2000_TempoEsperaCheque(pchar(Str_Tempo_Espera_Cheque));


Daruma_FI2000_StatusCheque(Índice 5015)

Método: Daruma_FI2000_StatusCheque [Índice 5015]
Previous Top Next

· Definição do Método:
Retorna o status Cheque, se o mesmo posicionado para impressão ou não.

· Parâmetros do Método: (1 Parâmetro)
Variável por refêrencia : com 2(dois) espaços alocados para escrita do Status

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Status_Cheque As String
Str_Status_Cheque = Space(2)
Int_Retorno = Daruma_FI2000_StatusCheque(Str_Status_Cheque)
TX_Retornos_FS2000.Text = Str_Status_Cheque

· Exemplo em Delphi 7.0:
var
Str_Status_Cheque: String;
begin
SetLength (Str_Status_Cheque,2);

Int_Retorno := Daruma_FI2000_StatusCheque(pchar(Str_Status_Cheque));


Daruma_FI2000_ImprimirCheque(Índice 5016)

Método: Daruma_FI2000_ImprimirCheque [Índice 5016]
Previous Top Next

· Definição do Método:
Imprime Cheque na FS2000.

· Parâmetros do Método: (6 Parâmetros)
1. Número do Banco: String com 03 caracteres contendo o número do banco.
2. Cidade de Emissão: String com o nome da cidade de emissão do cheque.
3. Data de Emissão: String com a data de emissão do cheque, no seguinte formato dd/mm/aaaa.
4. Nome do Favorecido: String com o nome do favorecido.
5. Valor do Cheque: String com o valor do cheque.
6. Posição do Cheque: String com a posição do cheque.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Numero_do_Banco As String
Dim Str_Cidade_de_Emissao As String
Dim Str_Data_de_Emissao As String
Dim Str_Favorecido As String
Dim Str_Valor As String
Dim Str_Posicao_do_Cheque As String

Str_Numero_do_Banco = "001"
Str_Cidade_de_Emissao = "Taubate"
Str_Data_de_Emissao = "12/01/2005"
Str_Favorecido = "Daruma S.A."
Str_Valor = "1,00"
Str_Posicao_do_Cheque = "H"

Int_Retorno = Daruma_FI2000_ImprimirCheque(Str_Numero_do_Banco, Str_Cidade_de_Emissao, Str_Data_de_Emissao, Str_Favorecido, Str_Valor, Str_Posicao_do_Cheque

· Exemplo em Delphi 7.0:
var
Str_Numero_do_Banco: String;
Str_Cidade_de_Emissao: String;
Str_Data_de_Emissao: String;
Str_Favorecido: String;
Str_Valor: String;
Str_Posicao_do_Cheque: String;
begin
Str_Numero_do_Banco := '001';
Str_Cidade_de_Emissao := 'Taubate';
Str_Data_de_Emissao := '12/01/2005';
Str_Favorecido := 'Daruma S.A.';
Str_Valor := '1,00';
Str_Posicao_do_Cheque := 'H';

Int_Retorno := Daruma_FI2000_ImprimirCheque(pchar( Str_Numero_do_Banco ), pchar( Str_Cidade_de_Emissao ), pchar( Str_Data_de_Emissao ), pchar( Str_Favorecido ), pchar( Str_Valor ), pchar( Str_Posicao_do_Cheque ) );


Daruma_FI2000_ImprimirVersoCheque(Índice 5017)

Método: Daruma_FI2000_ImprimirVersoCheque [Índice 5017]
Previous Top Next

· Definição do Método:
Imprime Texto no Verso do Cheque na FS2000.

· Parâmetros do Método: (1 Parâmetro)
String: com até (80) caracteres contendo o texto que se deseja imprimir.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Texto_Verso_do_Cheque As String

Str_Texto_Verso_do_Cheque = InputBox("Entre com o Texto a ser impresso no Verso do Cheque:", "Daruma Framework", "Exemplo de Texto Livre no Verso do Cheque")

If Str_Texto_Verso_do_Cheque = "" Then
Exit Sub
End If
Int_Retorno = Daruma_FI2000_ImprimirVersoCheque(Str_Texto_Verso_do_Cheque)

· Exemplo em Delphi 7.0:
var
Str_Texto_Verso_do_Cheque: String;
begin
Str_Texto_Verso_do_Cheque := InputBox('Entre com o Texto a ser impresso no Verso do Cheque:', 'Exemplo de Texto Livre no Verso do Cheque', '001');
if Str_Texto_Verso_do_Cheque = '' Then
Exit;

Int_Retorno := Daruma_FI2000_ImprimirVersoCheque(pchar(Str_Texto_Verso_do_Cheque));


Daruma_FI2000_LiberarCheque(Índice 5008)

Método: Daruma_FI2000_LiberarCheque [Índice 5008]
Previous Top Next

· Definição do Método:
Libera o Cheque na FS2000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI2000_LiberarCheque()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI2000_LiberarCheque();


Daruma_FI2000_LeituraCodigoMICR(Índice 5007)

Método: Daruma_FI2000_LeituraCodigoMICR [Índice 5007]
Previous Top Next

· Definição do Método:
Lê o MICR(codigo CMC7) na FS2000.

· Parâmetros do Método:
Leitura MICR: Variável por refêrencia com (40) posições para receber o Codigo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que a leitura do CMC7 seja possível há 3(três) condições:

1º)A impressora tem de ter o leitor que é opcional.
2º)A leitura só é possível ser feita com o cheque posicionado na vertical e com o código de barras voltado para o lado externo, ou seja para a para o lado direito.
3º)Posicione o cheque somente após o envio do método.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Cdigo_MICR As String
Str_Codigo_MICR = Space(40)
Int_Retorno = Daruma_FI2000_LeituraCodigoMICR(Str_Codigo_MICR) 'Este método le o Codigo direto do cheque
TX_Retornos_FS2000.Text = Str_Codigo_MICR

· Exemplo em Delphi 7.0:
var
Str_Codigo_MICR: String;
begin
SetLength (Str_Codigo_MICR,40);

Int_Retorno := Daruma_FI2000_LeituraCodigoMICR(pchar(Str_Codigo_MICR));


Daruma_FI2000_CancelarCheque(Índice 5026)

Método: Daruma_FI2000_CancelarCheque [Índice 5026]
Previous Top Next

· Definição do Método:
Cancela o Médoto de impressão de cheque na FS2000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI2000_CancelarCheque()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI2000_CancelarCheque();


Daruma_FI2000_LeituraTabelaCheque(Índice 5011)

Método: Daruma_FI2000_LeituraTabelaCheque [Índice 5011]

Previous Top Next

· Definição do Método:
Lê a Tabela de cheques armazenada na Impressora.

· Parâmetros do Método:
Leitura Tabela Cheque: Variável por referência com 3060 posições para receber a tabela de cheques cadastrada na impressora.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Tabela_Cheque As String
Str_Tabela_Cheque = Space(3060)
Int_Retorno = Daruma_FI2000_LeituraTabelaCheque(Str_Tabela_Cheque)
TX_Retornos_FS2000.Text = Str_Tabela_Cheque

· Exemplo em Delphi 7.0:
var
Str_Tabela_Cheque: String;
begin
SetLength (Str_Tabela_Cheque,3060);

Int_Retorno := Daruma_FI2000_LeituraTabelaCheque(pchar(Str_Tabela_Cheque));


Daruma_FI2000_CarregarCheque(Índice 5009)

Método: Daruma_FI2000_CarregarCheque [Índice 5009]

Previous Top Next

· Definição do Método:
Carrega o Cheque na impressora FS2000 e FS2100T.

· Parâmetros do Método: (1 Parâmetro)
- Arquivo que contém a tabela, fornecido pelo fabricante.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
· A tabela de cheques já veem carregada de fábrica na impressora.
· Observe o modelo da impressora, pois o arquivo com a tabela é definido por modelo.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI2000_CarregarCheque()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI2000_CarregarCheque();


Daruma_FI2000_CorrigirGeometriaCheque(Índice 5010)

Método: Daruma_FI2000_CorrigirGeometriaCheque
[Índice 5010]
Previous Top Next

· Definição do Método:
Corrige a Geometria do Cheque FS2000.

· Parâmetros do Método: (2 Parâmetros)
Variável String: Com o Número do Banco a ser corrigida a Geometria.
Variável String: Com a nova Geometria.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Sequência dos bytes a serem passados para a correção da geometria do cheque.
29 dígitos que definem o cheque conforme:
Número do banco com 3 dígitos
Distância à linha do valor numérico com 2 dígitos (da borda a linha, em mm)
Coluna (final) do valor numérico com 2 dígitos
Distância à linha do primeiro extenso com 2 dígitos (da borda a linha, em mm)
Coluna (inicial) do primeiro extenso com 2 dígitos
Distância à linha do segundo extenso com 2 dígitos (da borda a linha, em mm)
Coluna (inicial) do segundo extenso com 2 dígitos
Distância à linha do favorecido com 2 dígitos (da borda a linha, em mm)
Coluna (inicial) do favorecido com 2 dígitos
Distância à linha da cidade com 2 dígitos (da borda a linha, em mm)
Coluna (final) da cidade com 2 dígitos
Coluna (inicial) do dia com 2 dígitos
Coluna (inicial) do mês com 2 dígitos
Coluna (inicial) do ano com 2 dígitos

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Numero_do_Banco As String
Dim Str_Geometria_do_Cheque As String

Str_Numero_do_Banco = "001"
Str_Geometria_do_Cheque = "04941506230128013560647090"

Int_Retorno = Daruma_FI2000_CorrigirGeometriaCheque(Str_Numero_do_Banco, Str_Geometria_do_Cheque)

· Exemplo em Delphi 7.0:
var
Str_Numero_do_Banco: String;
Str_Geometria_do_Cheque: String;
begin
Str_Numero_do_Banco := '001';
Str_Geometria_do_Cheque := '04941506230128013560647090';

Int_Retorno := Daruma_FI2000_CorrigirGeometriaCheque(pchar( Str_Numero_do_Banco ), pchar( Str_Geometria_do_Cheque) );
FormPrincipal.Daruma_Analisa_Retorno();


Daruma_FI2000_DescontoSobreItemVendido(Índice 5018)

Método: Daruma_FI2000_DescontoSobreItemVendido
[Índice 5018]
Previous Top Next

· Definição do Método:
Permite um desconto sobre um item vendido.

· Parâmetros do Método: (3 Parâmetros)
1. Número Item: String com o número do item a ser concedido o desconto, com no máximo 3 dígitos.
2. Tipo Desconto: 1 (um) caráctere indicando a forma do desconto. '$' desconto por valor e '%' desconto percentual.
3. Valor Desconto: String com até 8 dígitos para desconto por valor (2 casas decimais) e 4 dígitos para desconto percentual.

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Numero_do_Item As String
Dim Str_Tipo_do_Desconto As String
Dim Str_Valor_do_Desconto As String

Str_Numero_do_Item = "01"
Str_Tipo_do_Desconto = "$"
Str_Valor_do_Desconto = "10"

Int_Retorno = Daruma_FI2000_DescontoSobreItemVendido(Str_Numero_do_Item, _
Str_Tipo_do_Desconto, Str_Valor_do_Desconto)

· Exemplo em Delphi 7.0:
var
Str_Numero_do_Item: String;
Str_Tipo_do_Desconto: String;
Str_Valor_do_Desconto: String;
begin
Str_Numero_do_Item := '01';
Str_Tipo_do_Desconto := '$';
Str_Valor_do_Desconto := '10';

Int_Retorno := Daruma_FI2000_DescontoSobreItemVendido(pchar( Str_Numero_do_Item ), pchar( Str_Tipo_do_Desconto ), pchar( Str_Valor_do_Desconto ));


Daruma_FI2000_AcrescimosICMSISS(Índice 5021)

Método: Daruma_FI2000_AcrescimosICMSISS [Índice 5021]
Previous Top Next

· Definição do Método:
Lê da memória da impressora o total de acréscimos ICMS/ISS.

· Parâmetros do Método:
Acréscimos ICMS: Variável por referência com o tamanho de 14 posições para receber os acréscimos em ICMS.
Acréscimos ISS: Variável por referência com o tamanho de 14 posições para receber os acréscimos em ISS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_AcrescimosICMS As String
Dim Str_AcrescimosISS As String
Str_AcrescimosICMS = Space(14)
Str_AcrescimosISS = Space(14)
Int_Retorno = Daruma_FI2000_AcrescimosICMSISS(Str_AcrescimosICMS, Str_AcrescimosISS)
TX_Retornos_FS2000.Text = " ICMS:" + Str_AcrescimosICMS + " ISS:" + Str_AcrescimosISS

· Exemplo em Delphi 7.0:
var
Str_AcrescimosICMS: String;
Str_AcrescimosISS: String;
begin
SetLength (Str_AcrescimosICMS,14);
SetLength (Str_AcrescimosISS,14);

Int_Retorno := Daruma_FI2000_AcrescimosICMSISS(pchar(Str_AcrescimosICMS), pchar(Str_AcrescimosISS));


Daruma_FI2000_CancelamentosICMSISS(Índice 5022)

Método: Daruma_FI2000_CancelamentosICMSISS [Índice 5022]
Previous Top Next

· Definição do Método:
Lê da memória da impressora o total de cancelamentos ICMS/ISS.

· Parâmetros do Método:
Cancelamentos ICMS: Variável por referência com o tamanho de 14 posições para receber os cancelamentos em ICMS.
Cancelamentos ISS: Variável por referência com o tamanho de 14 posições para receber os cancelamentos em ISS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_CancelamentosICMS As String
Dim Str_CancelamentosICMS As String
Str_CancelamentosICMS = Space(14)
Str_CancelamentosISS = Space(14)
Int_Retorno = Daruma_FI2000_CancelamentosICMSISS(Str_CancelamentosICMS, Str_CancelamentosISS)
TX_Retornos_FS2000.Text = " ICMS:" + Str_CancelamentosICMS + " ISS:" + Str_CancelamentosISS

· Exemplo em Delphi 7.0:
var
Str_CancelamentosICMS: String;
Str_CancelamentosISS: String;
begin
SetLength (Str_CancelamentosICMS,14);
SetLength (Str_CancelamentosISS,14);

Int_Retorno := Daruma_FI2000_CancelamentosICMSISS(pchar(Str_CancelamentosICMS), pchar(Str_CancelamentosISS));


Daruma_FI2000_DescontosICMSISS(Índice 5023)

Método: Daruma_FI2000_DescontosICMSISS [Índice 5023]
Previous Top Next

· Definição do Método:
Lê da memória da impressora o total de descontos ICMS/ISS.

· Parâmetros do Método:
Descontos ICMS: Variável por referência com o tamanho de 14 posições para receber os descontos em ICMS.
Descontos ISS: Variável por referência com o tamanho de 14 posições para receber os descontos em ISS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_DencontosICMS As String
Dim Str_DencontosISS As String
Str_DencontosICMS = Space(14)
Str_DencontosISS = Space(14)
Int_Retorno = Daruma_FI2000_DescontosICMSISS(Str_Dencontos_ICMS, Str_DencontosISS)
TX_Retornos_FS2000.Text = " ICMS:" + Str_DencontosICMS + " ISS:" + Str_DencontosISS

· Exemplo em Delphi 7.0:
var
Str_DescontosICMS: String;
Str_DescontosISS: String;
begin
SetLength (Str_DescontosICMS,14);
SetLength (Str_DescontosISS,14);

Int_Retorno := Daruma_FI2000_DescontosICMSISS(pchar(Str_DescontosICMS), pchar(Str_DescontosISS));


Daruma_FI2000_LeituraIformacaoUltimoDOC(Índice 5024)

Método: Daruma_FI2000_LeituraInformacaoUltimoDOC [Índice 5024]
Previous Top Next

· Definição do Método:
Retorna o total acumulado do último DOC emitido na impressora.

· Parâmetros do Método:
Tipo último DOC: Variável por referência com 10 posições para receber o tipo do último documento emitido.
Valor último DOC: Variável por referência com 200 posições para receber o valor do último documento emitido.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Tipo_Ultimo_Doc As String
Dim Str_Valor_Ultimo_Doc As String
Str_Tipo_Ultimo_Doc = Space(25)
Str_Valor_Ultimo_Doc = Space(225)
Int_Retorno = Daruma_FI2000_LeituraInformacaoUltimoDoc(Str_Tipo_Ultimo_Doc, Str_Valor_Ultimo_Doc)
TX_Retornos_FS2000.Text = Str_Tipo_Ultimo_Doc + Str_Valor_Ultimo_Doc

· Exemplo em Delphi 7.0:
var
Str_Tipo_Ultimo_Doc: String;
Str_Valor_Ultimo_Doc: String;
begin
SetLength (Str_Tipo_Ultimo_Doc,25);
SetLength (Str_Valor_Ultimo_Doc,225);

Int_Retorno := Daruma_FI2000_LeituraInformacaoUltimoDoc(pchar(Str_Tipo_Ultimo_Doc), pchar(Str_Valor_Ultimo_Doc));


Daruma_FI2000_LeituraIformacaoUltimosCNF(Índice 5025)

Método: Daruma_FI2000_LeituraInformacaoUltimosCNF [Índice 5025]
Previous Top Next

· Definição do Método:
Retorna o total acumulado dos últimos CNF programados na impressora.

· Parâmetros do Método:
Relatório Gerêncial: Variável por referência com 200 posições para receber o conteúdo do último relatório gerencial emitido na impressora.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_LeituraUltimosCNF As String
Str_LeituraUltimosCNF = Space(450)
Int_Retorno = Daruma_FI2000_LeituraInformacaoUltimosCNF(Str_LeituraUltimosCNF)
TX_Retornos_FS2000.Text = Str_LeituraUltimosCNF

· Exemplo em Delphi 7.0:
var
Str_LeituraUltimosCNF: String;
begin
SetLength (Str_LeituraUltimosCNF,450);

Int_Retorno := Daruma_FI2000_LeituraInformacaoUltimosCNF(pchar(Str_LeituraUltimosCNF) );
end;


Daruma_FI2000_AbreRelatorioGerencial(Índice 5012)

Método: Daruma_FI2000_AbreRelatorioGerencial [Índice 5012]
Previous Top Next

· Definição do Método:
Abre um relatório gerencial previamente programado na impressora.

· Parâmetros do Método: (1 Parâmetro)
Abre Relatório Gerencial: Variável String com o índice do relatório gerencial a ser aberto.

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Indice_Gerencial As String

Str_Indice_Gerencial = InputBox("Entre com o Indice do Gerencial a ser Aberto:", "Daruma Framework", "01")
If Str_Indice_Gerencial = "" Then
Exit Sub
End If
Int_Retorno = Daruma_FI2000_AbreRelatorioGerencial(Str_Indice_Gerencial)

· Exemplo em Delphi 7.0:
begin
Str_Indice_Gerencial := InputBox('Entre com o Indice do Gerencial a ser Aberto:', 'Daruma Framework', '01');
if Str_Indice_Gerencial = '' Then
Exit;

Int_Retorno := Daruma_FI2000_AbreRelatorioGerencial(pchar(Str_Indice_Gerencial));


Daruma_FI2000_CriaRelatorioGerencial(Índice 5013)

Método: Daruma_FI2000_CriaRelatorioGerencial [Índice 5013]
Previous Top Next

· Definição do Método:
Permite programar na impressora relatórios gerenciais.

· Parâmetros do Método: (1 Parâmetro)
Cria Relatório Gerêncial: Variável String com descrição do relatório gerencial com até (16) caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome_Gerencial As String

Str_Nome_Gerencial = InputBox("Entre com um Nome para o Gerencial:", "Daruma Framework", "Relatorio Diario")

If Str_Nome_Gerencial = "" Then
Exit Sub
End If
Int_Retorno = Daruma_FI2000_CriaRelatorioGerencial(Str_Nome_Gerencial)

· Exemplo em Delphi 7.0:
var
Str_Nome_Gerencial: String;
begin
Str_Nome_Gerencial := InputBox('Entre com um Nome para o Gerencial:', 'Daruma Framework', 'Relatorio Diario');
if Str_Nome_Gerencial = '' Then
Exit;
Int_Retorno := Daruma_FI2000_CriaRelatorioGerencial(Str_Nome_Gerencial);
TX_Retornos_FS2000.Lines.Text := pchar(Str_Nome_Gerencial);


Daruma_FI2000_VerificaRelatorioGerencial(Índice 5014)

Método: Daruma_FI2000_VerificaRelatorioGerencial [Índice 5014]
Previous Top Next

· Definição do Método:
Retorna as descrições dos relatórios programados na impressora.

· Parâmetros do Método:
Relatório Gerêncial: Variável por referência com 200 posições para receber as descrições dos relatórios gerenciais programados na impressora.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Gerencial As String
Str_Gerencial = Space(358)
Int_Retorno = Daruma_FI2000_VerificaRelatorioGerencial(Str_Gerencial)
TX_Retornos_FS2000.Text = Str_Gerencial

· Exemplo em Delphi 7.0:
var
Str_Gerencial: String;
begin
SetLength (Str_Gerencial,358);

Int_Retorno := Daruma_FI2000_VerificaRelatorioGerencial(pchar(Str_Gerencial));


Daruma_FI2000_SegundaViaCNFV(Índice 5019)

Método: Daruma_FI2000_SegundaViaCNFV [Índice 5019]

Previous Top Next

· Definição do Método:
Permite emitir uma segunda via de um CNFV.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI2000_SegundaViaCNFVinculado()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI2000_SegundaViaCNFVinculado();


Daruma_FI2000_CancelamentoCNFV(Índice 5020)

Método: Daruma_FI2000_CancelamentoCNFV [Índice 5020]
Previous Top Next

· Definição do Método:
Permite cancelar um CNFV.

· Parâmetros do Método: (1 Parâmetro)
Cancelamento: Variável String com o índice do CNFV a ser cancelado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_COO_CNFV As String
Str_COO_CNFV = InputBox("Entre com o COO do CNFV a ser Cancelado:", "Daruma Framework", "001")

If Str_COO_CNFV = "" Then
Exit Sub
End If
Int_Retorno = Daruma_FI2000_CancelamentoCNFV(Str_COO_CNFV)

· Exemplo em Delphi 7.0:
var
Str_COO_CNFV: String;
begin
Str_COO_CNFV := InputBox('Entre com o COO do CNFV a ser Cancelado:', 'Daruma Framework', '001');
if Str_COO_CNFV = '' Then
Exit;

Int_Retorno := Daruma_FI2000_CancelamentoCNFV(pchar(Str_COO_CNFV));


Daruma_DUAL_ImprimirTexto (Índice 4001)

Método: Daruma_DUAL_ImprimirTexto [Índice 4001]
Previous Top Next

· Definição do Método:
Imprime Texto na Impressora DUAL (Imprimirá na porta de Comunicação que foi configurada através do Método Daruma_Registry_DUAL_Porta).

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

Aqui você poderá Utilizar o protocolo DHTM (DARUMA HTML) caso deseje formatar um texto.

· Por exemplo:
Se deseja Centralizar um Texto na Bobina, chame este Método com o seguinte parâmetro:
iRetorno = Daruma_DUAL_ImprimirTexto("<ce>Teste de Comunicação</ce>","0")

Se desejar Expandir o Texto e Deixá-lo em Negrito Utilize as Chaves:
iRetorno = Daruma_DUAL_ImprimirTexto("<b><e>Teste de Comunicação</b></e>","0")

Se desejar Sublinhar apenas uma parte do Texto utilize a combinação
iRetorno = Daruma_DUAL_ImprimirTexto("<b><e>Teste de <s>Comunicação</s></b></e>","0")
E desta maneira apenas a palavra Comunicação ficará Sublinhada.

Se desejar Tabular o Texto utilize a combinação
iRetorno = Daruma_DUAL_ImprimirTexto("<tb>col1</tb><tb>col2</tb><tb>col3</tb><tb>col4</tb><tb>col5</tb><tb>col6</tb>","0")
E desta maneira apenas a palavra Comunicação ficará Sublinhada.

Estas são as Tag´s que você poderá a qualquer momento no meio de seu texto implementar, incluíndo uma Combinação entre 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
<sl>NN</sl> Para Saltar Várias Linhas
<tc>C</tc> Riscar Linha com um caráctere 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
<tb></tb> Tabulação
<bmp></bmp> Para fazer o UPLoad do Bitmap na Impressora
<< Quando desejar imprimir o caráctere "<"
>> Quando desenar imprimir o caráctere ">"
<gui></gui> Para acionamento da guilhotina, exclusivo impressora não fiscal térmica
<da></da> Para duplicar a altura do caractere

Tags para Código de Barras:
<ean13>123456789012</ean13>
<ean8>1234567</ean8>
<upc-a>12345678901</upc-a>
<code39>CODE 39</code39>
<code93>CODE 93</code93>
<codabar>CODABAR</codabar>
<msi>123456789</msi>
<code11>12345678901</code11>
<pdf>12345</pdf> Para imprimir o Código de Barraas PDF417
Clique aqui para mais informações:Daruma_DUAL_Imprimimindo Codigos de Barras

Veja Aqui Alguns Exemplos de Utilização

· Parâmetros
String: com texto que você deseja Imprimir (até 2000 de tamanho)
Inteiro: Com o Tamanho do Texto que voce irá imprimir, caso deseje a dll podera calcular o Tamanho, passe entao "0" neste parâmetro.

· Obervação:
Valor default da Chave = "0"

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Texto_Livre As String
Dim Str_Tamanho_Texto As String

If (TX_Texto_Livre = "") Then
MsgBox "Digite um Texto!!"
Exit Sub
End If

Str_Texto_Livre = TX_Texto_Livre.Text
Int_Retorno = Daruma_DUAL_ImprimirTexto(Str_Texto_Livre, "0") 'O segundo parametro ficou = 0, dessa forma a dll calcula o tamanho do texto

If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If
End Sub

· Exemplo em Delphi 7.0:
var
Str_Texto_Livre: String;
Memo: String;
begin
Memo:= TX_Texto_Livre.Text;
if Memo = '' then //Verifica Existência de Texto no (Memo)
begin
Application.MessageBox('Digite um Texto...!', 'Daruma Framework', mb_ok + 16);
exit
end;
Str_Texto_Livre:= TX_Texto_Livre.Lines.Text;
Int_Retorno:= Daruma_Dual_ImprimirTexto(Str_Texto_Livre, 0); // 0 Segundo parametro ficou =0, dessa forma a dll calcula o tamanho do texto
if Int_Retorno = 1 then
Application.MessageBox('Impressao Concluida!!!', 'Daruma Framework', mb_ok + 32)
else
Application.MessageBox('Erro!', 'Daruma Framework', mb_ok + 16);
end;


Daruma_DUAL_ImprimirArquivo (Índice 4008)

Método: Daruma_DUAL_ImprimirArquivo [Índice 4008]
Previous Top Next

· Definição do Método:
Imprime arquivo de texto, com até 3000 bytes.

· Parâmetros do Método: (1 Parâmetro)
String: Com o nome e o path de onde está o arquivo.

· Retornos do método:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)

Aqui você poderá Utilizar o protocolo DHTM (DARUMA HTML) para formatar o seu arquivo de texto.

Estas são as Tag´s que você poderá a qualquer momento no meio de seu texto implementar, incluíndo uma Combinação entre elas:

<b></b> Para sinalizar Negrito
<i></i> Para sinalizar Itálico
<s></s> Para sinalizar Sublinhado
<e></e> Para sinalizar Expandido
<c></e> Para sinalizar Condensado
<n></n> Para sinalizar Normal
<l></l> Para Saltar Uma Linha
<sl>NN</sl> Para Saltar Várias Linhas
<tc>C</tc> Riscar Linha com um caráctere 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
<tb></tb> Tabulação
<bmp></bmp> Para fazer o UPLoad do Bitmap na Impressora
<< Quando desejar imprimir o caráctere "<"
>> Quando desenar imprimir o caráctere ">"
<gui></gui> Para acionamento da guilhotina, exclusivo impressora não fiscal térmica
<da></da> Para duplicar a altura do caractere
<pdf></pdf> Para imprimir o Código de Barraas PDF417

Veja Aqui Alguns Exemplos de Utilização

· Parâmetros
Arquivo: com texto que voce deseja Imprimir (até 3000 de tamanho)

· Obervação:
As formatações que irá conter o arquivo devereão serem feitas através das tags DHTML.

Valor default da Chave = "0"

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, Impressora Desligada
1: OK, Sucesso ao enviar o arquivo
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: ECF Inicializando.
-53: Erro de Impressão.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirArquivo("C:\DarumaFramework.txt")

· Exemplo em Delphi 7.0:
var
Str_Path: String;
begin
Str_Path:= InputBox('Daruma Framework','Entre com o Nome do Arquivo a ser Impresso','C:\DarumaFramework.txt');
If (Str_Path = '') Then
Exit;
Int_Retorno:= Daruma_DUAL_ImprimirArquivo(Str_Path);
if Int_Retorno = 1 then
begin
Application.MessageBox('Configuração Feita com Sucesso!', 'Daruma Framework', mb_ok + 32);
end
else
begin
Application.MessageBox(' Erro!', 'Daruma Framework', mb_ok + 16);
end;
end;

end.


Daruma_DUAL_VerificaSatus (Índice 4002)

Método: Daruma_DUAL_VerificaStatus [Índice 4002]
Previous Top Next

· Definição do Método
Retorna um Valor Inteiro com o Status da Impressora DUAL

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando

· Observações:
Se você estiver usando a porta LPT(Paralela) e deseja pegar o status Acima você deverá configurar a chave ModoEscrita que deverá estar a 1(um) porque desta forma a DLL irá se comunicar diretamente através do Endereço da Porta Paralela e não através da API Normal do Windows que não permite a leitura destes Status. Isso somente deve ser levado em consideração quando estiver Usando a LPT(Paralela). No Caso da Serial nada disso debve ser levado em consideração, porque no caso da Serial a Própria DUAL é quem retorna um Byte indicando seu Atual Satus. Caso a chave ModoEscrita esteja igual a 0(zero) - Que é seu Default - este Método sempre retornará 1(um) e você não terá acesso aos Status detalhados da Impressora. Na Porta Serial a Chave ModoEscrita não é levada em Consideração.
Para maiores detalhes de como utilizar e configurar a chave Modo Escrita veja o Link Daruma_Registry_DUAL_ModoEscrita.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_VerificaStatus()
If Int_Retorno = 1 Then
MsgBox "1(um) - Impressora OK", vbInformation, "Daruma Framework"
End If
If Int_Retorno = -50 Then
MsgBox "-50 - Impressora OFF-LINE", vbCritical, "Daruma Framework"
End If
If Int_Retorno = -51 Then
MsgBox "-51 - Impressora Sem Papel", vbCritical, "Daruma Framework"
End If
If Int_Retorno = -27 Then
MsgBox "-27 - Erro Genérico", vbCritical, "Daruma Framework"
End If
If Int_Retorno = 0 Then
MsgBox "0 - Impressora Desligada", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:
begin
daruma_Retorno:= Daruma_DUAL_VerificaStatus();

if daruma_Retorno = 1 then
TX_Status.Text:= '1(um) - Impressora OK!';
if daruma_Retorno = (-50) then
TX_Status.Text:= '(-50) - Impressora OFF Line!';
if Daruma_Retorno = (-51) then
TX_Status.Text:= '(-51) - Impressora Sem Papel!';
if Daruma_retorno = (-27) then
TX_Status.Text:= '(-27) - Erro Generico!!';
if Daruma_Retorno = (0) then
TX_Status.Text:= '(0) - Impressora Desligada!!';
end;


Daruma_DUAL_VerificaDocumento (Índice 4003)

Método: Daruma_DUAL_VerificaDocumento [Índice 4003]
Previous Top Next

· Definiçãod do Método:
Retorna um Valor Inteiro que indica se o Documento está posicionado para Autenticar ou não.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando

· Observação Importante:
Se você estiver usando a porta LPT(Paralela) e deseja pegar o status Acima você deverá configurar a chave ModoEscrita que deverá estar a 1(um) porque desta forma a DLL irá se comunicar diretamente através do Endereço da Porta Paralela e não através da API Normal do Windows que não permite a leitura destes Status. Isso somente deve ser levado em consideração quando estiver Usando a LPT(Paralela). No Caso da Serial nada disso devolve ser levado em consideração, porque no caso da Serial a Própria DUAL é quem retorna um Byte indicando seu Atual Status. Caso a chave ModoEscrita esteja igual a 0(zero) - Que é seu Default - este Método sempre retornará 1(um) e você não terá acesso aos Status detalhados da Impressora. Na Porta Serial a Chave ModoEscrita não é levada em Consideração.
Para maiores detalhes de como utilizar e cosnfigurar a chave Modo Escrita veja o Link Daruma_Registry_DUAL_ModoEscrita.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_VerificaDocumento()
If Int_Retorno = 1 Then
MsgBox "1(um) - Documento Posicionado", vbInformation, "Daruma Framework"
Else
MsgBox "0(zero) - Documento Não Posicionado", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:
egin
Int_Retorno:= Daruma_DUAL_VerificaDocumento();
if Int_Retorno = 1 then
begin
Application.MessageBox('1 (um) Documento Posicionado!', 'Daruma Framework', mb_ok + 32);
end
else
begin
Application.MessageBox('Documento Nao Posicionado!', 'Daruma Framework', mb_ok + 16);
end;

end;


Daruma_DUAL_Autenticar (Índice 4004)

Método: Daruma_DUAL_Autenticar [Índice 4004]
Previous Top Next

· Definição do Método:
Permite Enviar um Texto para Autenticação e permite configurar o Tempo que deseja esperar para Autenticar e também o local, na Bobina e no DOC ou só no Documento.

Aqui você poderá utilizar as TAGS DHTM para Impresão e formatar o texto que deseja Autenticar.

Por exemplo se deseja Autenticar com Sublinhado e Expandido envie o seguinte método:
iRetorno = Daruma_DUAL_Autenticar("1","<s><e>Texto</s></e>","10")

Por exemplo se deseja Autenticar Com a Data e a Hora Atual, chame o seguinte método:
iRetorno = Daruma_DUAL_Autenticar("1","<dt><hr>Texto","10")

Veja Aqui Alguns Exemplos de Utilização

· Parâmetros do Método: (3 Parâmetros)
1. Local: 1(um) só no Documento, 0(zero) no Documento e na Bobina.
2. String com 48 caracteres com a Autenticação desejada.
3. Quantos Segundos deseja esperar que o Usuario coloque o Documento.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)

· Observações
Se você estiver usando a porta LPT(Paralela) e deseja Autenticar, você poderá faze-lo de duas Formas.

1) Para Fazer uso do Parâmetro de Time-Out (ou seja, que a dll fique esperando pra você que o usuario coloque o Papel na DUAL) voce deverá estar com a Chave ModoEscrita a 1(um).

2) Caso você não deseje que a dll Controle isso, voce deverá sempre chamar o método de Autenticar quando o Papel já estiver presente na DUAL. Caso a Chave ModoEscrita estiver igual a 0(zero) e voce chame a autenticação sem o papel, não irá funcionar.
Para maiores detalhes de como utilizar e configurar a chave Modo Escrita veja o Link Daruma_Registry_DUAL_ModoEscrita.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Vias As String
Dim Str_Texto_Autenticacao As String
Dim Str_Tempo_Espera As String

Str_Vias = "1"
Str_Texto_Autenticacao = "<sn><c>DARUMA AUTENTICAÇÃO</c> (D:<dt></dt> H:<hr></hr>)</sn>"
Str_Tempo_Espera = "5"
Int_Retorno = Daruma_DUAL_Autenticar(Str_Vias, Str_Texto_Autenticacao, Str_Tempo_Espera)

· Exemplo em Delphi 7.0:
var
Str_Vias: String;
Str_Texto_Autenticacao: String;
Str_Tempo_espera: String;
begin
Str_Vias:= TX_Vias.Text;
Str_Texto_Autenticacao:= TX_Texto_Autenticacao.Text;
Str_Tempo_Espera:= TX_Tempo_Espera.Text;
Int_Retorno:= Daruma_DUAL_Autenticar(Str_Vias, Str_Texto_Autenticacao, Str_Tempo_Espera);

end;

end.


Daruma_DUAL_AcionaGaveta (Índice 4005)

Método: Daruma_DUAL_AcionaGaveta [Índice 4005]
Previous Top Next

· Definição do Método:
Aciona a Gaveta de dinheiro que está "plugada" a Impressora DUAL na Saida RJ45 da Impressora.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_AcionaGaveta()

· Exemplo em Delphi 7.0:
begin
Int_Retorno:= Daruma_DUAL_AcionaGaveta()
end;


Daruma_DUAL_StatusGaveta (Índice 4009)

Método: Daruma_DUAL_StatusGaveta [Índice 4009]
Previous Top Next

· Definição do Método:
Devolve o status da gaveta de dinheiro na impressora DUAL não fiscal. Sendo 1(um) para gaveta aberta e 0(zero) para gaveta fechada.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Time-Out, o Usuario não posicionou o Documento dentro do tempo indicado
1: OK, Sucesso ao enviar o método
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: ECF Inicializando.

· Observações:
- Caso você esteja trabalhando com windows versão: ME, 2000, XP, NT e Sistemas Protegidos e comunicando-se com a impressora pela porta LPT. Então deverá seguir os passos descritos no link a seguir: Trabalhando com a DUAL NA PARALELA (LPT1, LPT2) . Do contrário não será possível apanhar o status.
- Se o sinal estiver invertido. Ou seja, se ao invéz de retornar 1(um) para gaveta aberta, estiver retornando 1, enquanta fechada, realize o procedimento abaixo:
a)Start o editor de registro do windows REGEDIT;
b)No path: HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF, altere a chave ModoGaveta, que se estiver pra 1(um) mude pra 0(zero) ou então vice-versa.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Status_Gaveta As Integer

Int_Estado_Gaveta = 0

Int_Status_Gaveta = Daruma_DUAL_StatusGaveta()
If Int_Status_Gaveta = 1 Then
MsgBox "1 = Gaveta Aberta!"
Else
MsgBox "0 = Gaveta Fechada!"
End If

· Exemplo em Delphi 7.0:
begin
Int_Retorno:= Daruma_DUAL_StatusGaveta();
if Int_Retorno = 1 then
Application.MessageBox('1 (um) Gaveta Aberta!', 'Daruma Framework', mb_ok + 32)
else
Application.MessageBox('0 (zero) Gaveta Fechada!', 'Daruma Framework', mb_ok + 16);
end;


Daruma_DUAL_EnviarBMP (Índice 4013)

Método: Daruma_DUAL_EnviarBMP [Índice 4013]
Previous Top Next

· Definição do Método:
Envia um arquivo com o logotipo da empresa, no formato BMP, dentro dos padrões exigidos.

· Parâmetros do Método:(1Parâmetro)
Path: O caminho e o nome do arquipo bitmap, exemplo:c:\nomedoarquivo.bmp.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o BMP
0: Erro de comunicação, Impressora Desligada
-1: Erro, arquivo BMP inexistente
-2: Erro na estrutura do arquivo
-3: Arquivo BMP não está em preto e branco
-4: arquivo não pode ser compactado
-5: Altura inválida, verifique se esta na medida exigida
-6: Largura inválida, verifique se esta na medida exigida
-7: Arvivo foi gerado em um formato não compatível
-8: Arvivo de origem inválido
-9: Problema no arquivo de destino

· Observações:
- Formato do logotipo: tem que ser em formato BMP(bitmap)
- Dimensões: 576 largura X 200 altura ou 200 x 200, pixel's
- Cor: em preto e branco, somente.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Path As String
Str_Path = InputBox("Entre com o Path de onde está o Logotipo e o Nome do Arquivo:", "Daruma Framework", "C:\")
If (Str_Path = "") Then
Exit Sub
End If
Int_Retorno = Daruma_DUAL_EnviarBMP(Str_Path)
If Int_Retorno = 1 Then
MsgBox "Logotipo enviado com Sucesso!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro ao enviar o Logotipo!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:
var
Str_Path: String;
begin
Str_Path:= InputBox('Daruma Framework','Entre com o Path de onde está o Logotipo e o Nome do Arquivo:','C:\DigiteAquiNomeArquivo.bmp');
If (Str_Path = '') then
Exit;
Int_Retorno:= Daruma_DUAL_EnviarBMP(Str_Path);
if Int_Retorno = 1 then
Application.MessageBox('Logotipo enviado com Sucesso!', 'Daruma Framework', mb_ok + 32)
else
Application.MessageBox('Erro ao enviar o Logotipo!', 'Daruma Framework', mb_ok + 16);
end;


Daruma_DUAL_VerificarGuilhotina (Índice 4014)

Método: Daruma_DUAL_VerificarGuilhotina [Índice 4014]
Previous Top Next

· Definição do Método:
Este método verifica se a guilhotina (quando houver), esta habilitada. Sendo que devolverá 1(um) para guilhotina habilitada e 0(zero) para guilhotina não habilitada.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o BMP
0: Erro de comunicação, Impressora Desligada

· Observações:

- Quando nao houver Guilhotina na impressora, o valor retornado será sempre (0)zero.
- Verificar se o Equipamente tem Guilhotina.

Exemplos:

· Exemplo em Visual Basic 6.0:

Int_Retorno = Daruma_DUAL_VerificarGuilhotina()
if Int_Retorno = 1 then
MsgBox "1(um) - Guilhotina Presente Habilitada!", vbInformation, "Daruma Framework"
else
MsgBox "0(zero) - Guilhotina Desabilitada ou Sem Guilhotina !!", vbCritical, "Daruma Framework"
end if

· Exemplo em Delphi 7.0:
begin
Int_Retorno:= Daruma_DUAL_VerificarGuilhotina();
if Int_Retorno = 1 then
Application.MessageBox('1 (um) Guilhotina Presente Habilitada!', 'Daruma Framework', mb_ok + 32)
else
Application.MessageBox('0 (zero) Guilhotina Desabilitada ou Sem Guilhotina !!', 'Daruma Framework', mb_ok + 16);
end;


Daruma_DUAL_ConfigurarGuilhotina (Índice 4015)

Método: Daruma_DUAL_ConfigurarGuilhotina [Índice 4015]
Previous Top Next

· Definição do Método:
Este método programa a Guilhotina na impressora DUAL.

· Parâmetros do Método: (2 Parâmetros)
Flag: Inteiro 1(um) para programar 0(zero) para desprogramar.
LinhasAvanco: Inteiro de 0 a 20 linhas para o acionamento da guilhotina.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o BMP
0: Erro de comunicação, Impressora Desligada

· Observações:
- Verificar se o Equipamente tem Guilhotina.

Exemplos:

· Exemplo em Visual Basic 6.0:

Dim Int_Flag As Short
Dim Int_LinhasAcionamento As Short
Dim Str_Flag As String
Dim Str_LinhasAcionamento As String
Str_Flag = InputBox("Digite 1(um) para Habilitar a Gilhotina ou 0(zero) para Desabilitar:", "Daruma Framework", "1")
If Str_Flag = "" Then
Exit Sub
End If
Str_LinhasAcionamento = InputBox("Entre com a quantidade de linhas para o Acionamento da Guilhotina ex: 0 a 20:", "Daruma Framework", "5")
If Str_LinhasAcionamento = "" Then
Exit Sub
End If
Int_Flag = CShort(Str_Flag)
Int_LinhasAcionamento = CShort(Str_LinhasAcionamento)
Int_Retorno = Daruma_DUAL_ConfigurarGuilhotina(Int_Flag, Int_LinhasAcionamento)

If Int_Retorno = 1 Then
MsgBox("Programacao feita com Sucesso!", MsgBoxStyle.Information, "Daruma Framework")
Else
MsgBox("Erro!", MsgBoxStyle.Critical, "Daruma Framework")
Exit Sub
End If

· Exemplo em Delphi 7.0:


Daruma_DUAL_Imprimimindo_Codigos_de_Barras (Índice 4007)

Daruma_DUAL_Imprimimindo_Codigos_de_Barras (Índice 4007)
Previous Top Next

· Definição:
Imprime código de barras na DUAL através de Tags. DHTML

Com o lançamento da Impressora Térmica, a Daruma passou a disponibilizar em seus modelos, fiscal e não fical (térmicos), a impressão de código de barras, que é muito útil para a identificação de produtos.

A seguir você irá saber além dos modelos de códigos de barras que fazem parte do 'set de comandos' da DR600, como a Daruma32.dll através da tags DHTML, facilita na hora da impressão dos coigos de barras.

· Vejamos então os parâmetros que compõe os códigos:

1. Tipo do Código de barra a ser impresso (Obrigatório)
Conteúdo: <ean13> <ean8> <s2of5> <i2of5> <code128> <code39> <code93> <upc-a> <codabar> <msi> <code11>

2. Largura do código de barra: (Atenção este parâmetro é opcional)
Conteúdo: <wx>
Possíveis valores para a largura do código de barras (x): 2 a 5
Default: 2

3. Altura do código de barra: (Atenção este parâmetro é opcional)
Conteúdo: <hx>
Possíveis valores para a altura do código de barras (x): 50 a 200
Default: 50

4. Imprime o código abaixo das barras: (Atenção este parâmetro é opcional)
Conteúdo do código: <txt>
Default: Não imprimir o código abaixo das barras.

· O tamando do código e o tipo dos carácteres que poderão serem impressos deverá respeitar a lista abaixo:

EAN-13 12 dígitos de 0 a 9

EAN-8 7 dígitos de 0 a 9

UPC-A 11 dígitos de 0 a 9

CODE 39 Tamanho variável. 0-9, A-Z, '-', '.', '%', '/', '$', ' ', '+'

O caracter '*' de start/stop é inserido automaticamente

CODE 93 Tamanho variável. 0-9, A-Z, '-', '.', ' ', '$', '/', '+', '%'

O caracter '*' de start/stop é inserido automaticamente

CODABAR tamanho variável. 0 - 9, '$', '-', ':', '/', '.', '+'

Existem 4 diferentes caracteres de start/stop: A, B, C, and D que são usados em pares e não podem aparecer em nenhum outro lugar do código.

CODE 11 Tamanho variável. 0 a 9

As barras são geradas com checksum de dois caracteres

CODE 128 Tamanho variável. Todos os caracteres ASCII

Interleaved 2 of 5 Tamanho sempre par. 0 a 9

Standard 2 of 5 Tamanho variável. 0 a 9

MSI Tamanho variável. 0 a 9

PDF417 Tamanho variável. 0 a 9

· Alguns exemplos de strings para impressão de códigos de barras:

Em todos os exemplos a seguir, o 4 parâmetro, que é o código de barras em sim, será impresso.

No exemplo a seguir, os parâmetros largura, altura e se imrpime o códgo ou não (opcionais) não foram passados, sendo assim permanece o default.
1) <ean13>123456789012</ean13>

Imprime o código ean13 com o conteúdo "123456789012", sendo a largura = 3 e a altura default
2) <ean13><w3>123456789012</w3></ean13>

Imprime o código ean13 com o conteúdo "123456789012", sendo a largura = 3 e a altura = 150
3) <ean13><w3><h150>123456789012</h150></w3></ean13>

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ean13>123456789012</ean13>" + _
"<ean8>1234567</ean8><upc-a>12345678901</upc-a><code39>CODE 39</code39>" + _
"<code93>CODE 93</code93><codabar>CODABAR</codabar><msi>123456789</msi>" + _
"<code11>12345678901</code11><pdf>1234</pdf>", 0)

· Exemplo em Delphi 7.0:
begin
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ean13>123456789012</ean13>' +
'<ean8>1234567</ean8><upc-a>12345678901</upc-a><code39>CODE 39</code39>' +
'<code93>CODE 93</code93><codabar>CODABAR</codabar><msi>123456789</msi>' +
'<code11>12345678901</code11><pdf>1234</pdf>'),0);

end;


Trabalhando com a DUAL NA PARALELA (LPT1, LPT2)

Trabalhando com a DUAL em XP, NT W2000.
Previous Top Next

- O PROCESSO ABAIXO NÃO É NECESSÁRIO CASO VOCÊ ESTEJA UTILIZANDO A PORTA SERIAL PARA SE COMUNICAR OU SISTEMAS OPERACIONAIS COMO 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.

- Para evitar conflitos/sujeita dentro da porta de comunicão é necessário alterar a chave dentro de HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF: Produto = 'DS300' para evitar sujeira na comunicação com a impressora.

- Para maior velocidade na impressora não-fiscal recomendamos o uso da porta PARALELA.

Devido a Existência do HAL (Hardware Abstract Layer), existe a necessidade de se Burlar ésta "Camada" de comunicação para que Status como FINAL de PAPEL, Operações como Autenticação e Verificação de papel presente para ser autenticado ou não, sejam utilizados e aceitos pelo HAL.

Por isso a dll fez 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)

1. Copie o Arquivo HWINTERFACE.SYS para o Diretório WINDOWS\SYSTEM32\DRIVERS.
2. Após a Instalação Faça 2(dois) Cliques no Arquivo DARUMA.REG que irá Registrar este serviço do Windows.
3. Reinicie o Computador (Válido somente para WIN2000).
4. Pronto!! você já pode usar a DARUMA32.Dll na Porta Paralela de seu computador com todas os Métodos de Autenticação, Staus, etc... Tudo ON-LINE com a DUAL.


Resolvendo Problemas de Comunicação com a PARALELA

· Problema: Já realizei a Copia do HWINTERFACE.SYS, Fiz 2(dois) Clicks no DARUMA.REG, Reiniciei o Computador e ainda assim a DUAL não comunica na Paralela.
· Solução: Como a Porta Paralela é protegida pelo Sistema Operacional, pode ser que ainda necessite de alguns pequenos ajustes para funcionar, tudo isso pela limitação que sistemas operacionais ProtegidoS (W2000, WXP) possuem. Sendo assim Reinicie o Computador, entre no SETUP do computador (Geralmente pressionando a tecla "DEL" ao reiniciar) e verifique em que modo esta a Porta Paralela, caso a mesma esteja em modo BI-DIRECIONAL, favor retirar deste modo, e colocar em Modo ECP. Caso seu computador nao possua este modo deixar em modo NORMAL ou EPP.

· Problema: OK, realizei todos os passos acima e ainda assim no Windows continua não se comunicando com a DUAL NA paralela.
· Solução: Faça um Click com o Botão Direiro no Ícone Meu Computador, escolha a Opção Propriedades, e a ficha "Hardware", nesta ficha escolha a Opção "Gerenciador de Dispositivos", após isso selecione a opção "PORTAS" e a porta onde esta conectada a DUAL.
· Faça um click na Opção Configuração de Portas e deixe a paralela com a Seguinte Configuração: Nunca Usar Interrupção, conforme figura abaixo:

· Pressione OK: Reinicie o Computador, efetue os testes normalmente.


Utilizando as Tags de Impressão de Texto e Formatação

Utilizando as Tags HTML/XML
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite trabalhar com as Tags de Formatação.

· Parâmetros do Método: (1 Parâmetro)
String: com as tags de formatação:ex:<b>TEXTO em NEGRITO</b>

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Time-Out, o Usuario não posicionou o Documento dentro do tempo indicado
1: OK, Sucesso ao enviar o método
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: ECF Inicializando.
-53: Erro de Impressão.
Exemplos:

· Exemplo em Visual Basic 6.0:

<b></b> Para sinalizar Negrito
<i></i> Para sinalizar Itálico - Nas impressoras térmicas DR600, FS600 e FS2100T, não é possível utilizar esta tag, pois o texto não pode ser formatado para 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
<sl>NN</sl> Para Saltar Várias Linhas
<tc>C</tc> Riscar Linha com um caráctere Especifico
<ce></ce> Para Centralizar
<ad></ad> Para alinhar o texto à Direita
<da></da> Para duplicar a altura do caracter
<dt></dt> Para Imprimir Data Atual, formato que estiver definido no sistema operacional do micro.
<hr></hr> Para Imprimir Hora Atual,formato que estiver definido no sistema operacional do micro.
<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
<tb></tb> Tabulação - Acesse o link a seguir para saber mais: Daruma_Registry_DUAL_Tabulacao
<bmp></bmp> Para fazer o UPLoad do Bitmap na Impressora
<< Quando desejar imprimir o caráctere "<"
>> Quando desenar imprimir o caráctere ">"
<gui></gui> Para acionamento da guilhotina, exclusivo impressora não fiscal térmica

Para impressão dos códigos de barras acesse o seguinte link: Daruma_DUAL_Imprimimindo Codigos de Barras

Private Sub Command1_Click()

Int_Retorno = Daruma_DUAL_ImprimirTexto(("<sn><e><b>Teste Formatação DHTM</b></e></sn>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<n>Estes são os carácteres que você poderá utilizar<n><l>Você poderá a qualquer monento combinar as formatações!!"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<b>><</b>> Para sinalizar Negrito"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<i>><</i>> Para sinalizar Itálico"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<s>><</s>> Para sinalizar Sublinhado"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<e>><</e>> Para sinalizar Expandido"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<c>><</c>> Para sinalizar Condensado"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<n>><</n>> Para sinalizar Normal"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<l>><</l>> Para Saltar Uma Linha"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<ad>><</ad>> Para alinhar a direita"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<ft>>n1,n2,...,n6<</ft>> Para habilitar tabulação"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<tb>><</tb>> Para saltar até a proxima tabulação"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<sl>>NN<</sl>> Para Saltar Várias Linhas"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<tc>>C<</tc>>Riscar Linha com Carácter Específico"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<ce>><</ce>> Para Centralizar"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<dt>><</dt>> Para Imprimir Data Atual"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<hr>><</hr>> Para Imprimir Hora Atual"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<sp>>NN<</sp>> Inserir NN Espaços em Branco"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<sn>><</sn>> Sinal Sonoro, Apitar"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<g>><</g>> Abre a Gaveta"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<a>><</a>> Aguardar até o Término da Impressão"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<tc>>_<</tc>> Gerar uma linha tachada"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<sl>01</sl>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>TABULAÇÃO</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ft>05,10,15,20,30,40</ft>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("Data<tb>Veiculo<tb>Cor<tb>Placa<tb>Hora"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<dt></dt><tb>Golf<tb>Branca<tb>AJY5231<tb>10:15</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<dt></dt><tb>Focus<tb></tb>Vermelha<tb></tb>APG2013<tb></tb>13:45"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<dt></dt><tb></tb>Megane<tb></tb>Cinza<tb></tb>AAR5414<tb></tb>14:30"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<dt></dt><tb></tb>Corsa<tb></tb>Preto<tb></tb>AWK0189<tb></tb>20:40"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><tc>_</tc>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><e>DATA:<dt></dt></e><l></l><e>Hora:<hr></hr></e><l></l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>Anvançando 3 Linhas</ce><sl>3</sl>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>Anvançando 1 Linha</ce><sl>1</sl>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l>Inserindo</l><sp>10</sp>10 espaços em Branco"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>Formatação Normal</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><n>DARUMA AUTOMAÇÃO!!</n></l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGR+ITAL+SUBL+EXPAND</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><i><s><e>DARUMA AUTOMAÇÃO!!</b></i></s></e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGR+ITAL+SUBL+CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><i><s><c>DARUMA AUTOMAÇÃO!!</b></i></s></c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGR+ITAL+SUBL+NORMAL</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><i><s><n>DARUMA AUTOMAÇÃO!!</b></i></s></n>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<e>DARUMA AUTOMAÇÃO!!<e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<c>CONDENSADO</c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>DARUMA AUTOMAÇÃO!!</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGRITO+EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><e>DARUMA AUTOMAÇÃO!!</b></e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ITÁLICO+EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<i><e>DARUMA AUTOMAÇÃO!!</i></e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce><dt></dt>SUBLINHADO+EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<s><e>DARUMA AUTOMAÇÃO!!</s></e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGRITO+CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><c>DARUMA AUTOMAÇÃO!!</b></c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ITÁLICO+CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<i><c>DARUMA AUTOMAÇÃO!!</i></c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>SUBLINHADO+CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<s><c>DARUMA AUTOMAÇÃO!!</s></c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGRITO+NORMAL</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><n>DARUMA AUTOMAÇÃO!!</b></n>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ITÁLICO+NORMAL</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><i><n>DARUMA AUTOMAÇÃO!!</i></n></l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>SUBLINHADO+NORMAL</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<s><n>DARUMA AUTOMAÇÃO!!</s></n><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ALINHADO A DIREITA</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ad>DARUMA AUTOMAÇÃO!!</ad><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ALINHADO A DIREITA + EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<e><ad>DARUMA AUTOMAÇÃO!!</ad></e><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ALINHADO A DIREITA + SUBLINHADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ad><s>DARUMA AUTOMAÇÃO!!</s></ad><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>CENTRALIZADO + EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<e><ce>DARUMA AUTOMAÇÃO!!</ce></e><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ft>05,10,15,20,30,40</ft>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>TABULADO NA COLUNA 10</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb></tb><tb></tb>DARUMA"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>TABULADO NA COLUNA 30</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb></tb><tb></tb><tb></tb><tb></tb><tb></tb>DARUMA"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<n><e>Códigos de Barras</e></n>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ean13>123456789012</ean13><ean8>1234567</ean8>" + _
"<upc-a>12345678901</upc-a><code39>CODE 39</code39><code93>CODE 93</code93>" + _
"<codabar>CODABAR</codabar><msi>123456789</msi><code11>12345678901</code11><pdf>1234</pdf>"), 0)

'Enviando todos Juntos

Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><e><b>BUFFER COMPLETO</e></b>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<e>>DATA:<<dt>><</dt>><</e>><<l>><<l/>><<e>>Hora:<<hr>><</hr>><</e>><<l>><<l/>><<ce>>" + _
"Anvançando 5 Linhas<</ce>><<sl>>5<</sl>>Inserindo<<sp>>10<</sp>>10 espaços em Branco<<l>>" + _
"<<ce>>Formatação Normal<</ce>><<n>>DARUMA AUTOMAÇÃO!!<</n>><<l>><<ce>>NEGR+ITAL+SUBL+EXPAND<</ce>>" + _
"<<b>><<i>><<s>><<e>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</e>><<l>><<ce>>NEGR+ITAL+SUBL+CONDENSADO<</ce>>" + _
"<<b>><<i>><<s>><<c>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</c>><<l>><<ce>>NEGR+ITAL+SUBL+NORMAL<</ce>><<b>>" + _
"<<i>><<s>><<n>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</n>><<l>><<ce>>EXPANDIDO<</ce>><<e>>DARUMA AUTOMAÇÃO!!" + _
"<<e>><<l>><<ce>>CONDENSADO<</ce>><<c>>DARUMA AUTOMAÇÃO!!<</c>><<l>><<ce>>NEGRITO+EXPANDIDO<</ce>><<b>><<e>>DARUMA AUTOMAÇÃO!!" + _
"<</b>><</e>><<l>><<ce>>Itálico+EXPANDIDO<</ce>><<i>><<e>>DARUMA AUTOMAÇÃO!!<</i>><</e>><<l>><<ce>>SUBLINHADO+EXPANDIDO<</ce>>" + _
"<<s>><<e>>DARUMA AUTOMAÇÃO!!<</s>><</e>><<l>><<ce>>NEGRITO+CONDENSADO<</ce>><<b>><<c>>DARUMA AUTOMAÇÃO!!<</b>><</c>><<l>>" + _
"<<ce>>Itálico+CONDENSADO<</ce>><<i>><<c>>DARUMA AUTOMAÇÃO!!<</i>><</c>><<l>><<ce>>SUBLINHADO+CONDENSADO<</ce>><<s>><<c>>" + _
"DARUMA AUTOMAÇÃO!!<</s>><</c>><<l>><<ce>>NEGRITO+NORMAL<</ce>><<b>><<n>>DARUMA AUTOMAÇÃO!!<</b>><</n>><<l>><<ce>>Itálico+NORMAL" + _
"<</ce>><<l>><<i>><<n>>DARUMA AUTOMAÇÃO!!<</i>><</n>><<l>><<ce>>SUBLINHADO+NORMAL<</ce>><<s>><<n>>DARUMA AUTOMAÇÃO!!<</s>><</n>>" + _
"<<l>><<ce>>ALINHADO A DIREITA<</ce>><<ad>>DARUMA AUTOMAÇÃO!!<</ad>><<l>><<ce>>ALINHADO A DIREITA + _ EXPANDIDO<</ce>>" + _
"<<e>><<ad>>DARUMA AUTOMAÇÃO!!<</ad>><</e>><<l>><<ce>>ALINHADO A DIREITA + _ SUBLINHADO<</ce>><<ad>><<s>>DARUMA AUTOMAÇÃO!!<</s>><</ad>>" + _
"<<l>><<ce>>CENTRALIZADO + _ EXPANDIDO<</ce>><<e>><<ce>>DARUMA AUTOMAÇÃO!!<</ce>><</e>><<l>><<ce>>TABULADO NA COLUNA 10<</ce>> <<tb>><</tb>>" + _
" <<tb>><</tb>>DARUMA<<l>><<ce>>TABULADO NA COLUNA 30<</ce>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>>DARUMA<<sl>>10<</sl>>" + _
"<<ean13>>123456789012<</ean13>><<ean8>>1234567<</ean8>><<upc-a>>12345678901<</upc-a>><<code39>>CODE 39<</code39>><<code93>>CODE 93<</code93>>" + _
"<<codabar>>CODABAR<</codabar>><<msi>>123456789<</msi>><<code11>>12345678901<</code11>>1234<</pdf>>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><e><b>FIM BUFFER COMPLETO</e></b>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<sl>03</sl>"), 0)

If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If
End Sub

· Exemplo em Delphi 7.0:

<b></b> Para sinalizar Negrito
<i></i> Para sinalizar Itálico
<s></s> Para sinalizar Sublinhado
<e></e> Para sinalizar E x p a n d i d o
<c></c> Para sinalizar Condensado
<n></n> Para sinalizar Normal
<l></l> Para Saltar Uma Linha
<ce></ce> Para Centralizar o Texto
<ad></ad> Para Alinhar a Direita
<da></da> Para duplicar a altura do caracter
<cr></cr> Retornar o Carro de Impressao para o Começo.
<sl>NN</sl> Para Saltar Várias Linhas
<tc>C</tc> Riscar Linha com um caráctere 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
<tb></tb> Tabulação
<a> Aguardar até o Término da Impressão
</a> Não Aguardar até o Término da Impressão
<< Quando desejar imprimir o caráctere "<"
>> Quando desenar imprimir o caráctere ">"

procedure TFramework_DUAL_ImprimirTexto.Button1Click(
Sender: TObject);
begin
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<sn><e><b>Teste Formatação DHTM</b></e></sn>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<n>Estes são os carácteres que você poderá utilizar<n><l>Você poderá a qualquer monento combinar as formatações!!'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<b>><</b>> Para sinalizar Negrito'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<i>><</i>> Para sinalizar Itálico'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<s>><</s>> Para sinalizar Sublinhado'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<e>><</e>> Para sinalizar Expandido'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<c>><</c>> Para sinalizar Condensado'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<n>><</n>> Para sinalizar Normal'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<l>><</l>> Para Saltar Uma Linha'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<ad>><</ad>> Para alinhar a direita'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<ft>>n1,n2,...,n6<</ft>> Para habilitar tabulação'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<tb>><</tb>> Para saltar até a proxima tabulação'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<sl>>NN<</sl>> Para Saltar Várias Linhas'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<tc>>C<</tc>>Riscar Linha com Carácter Específico'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<ce>><</ce>> Para Centralizar'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<dt>><</dt>> Para Imprimir Data Atual'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<hr>><</hr>> Para Imprimir Hora Atual'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<sp>>NN<</sp>> Inserir NN Espaços em Branco'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<sn>><</sn>> Sinal Sonoro, Apitar'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<g>><</g>> Abre a Gaveta'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<a>><</a>> Aguardar até o Término da Impressão'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<tc>>_<</tc>> Gerar uma linha tachada'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<sl>01</sl>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<e>TABULAÇÃO</e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ft>05,10,15,20,30,40</ft>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('Data<tb>Veiculo<tb>Cor<tb>Placa<tb>Hora'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<dt></dt><tb>Golf<tb>Branca<tb>AJY5231<tb>10:15</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<dt></dt><tb>Focus<tb></tb>Vermelha<tb></tb>APG2013<tb></tb>13:45'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<dt></dt><tb></tb>Megane<tb></tb>Cinza<tb></tb>AAR5414<tb></tb>14:30'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<dt></dt><tb></tb>Corsa<tb></tb>Preto<tb></tb>AWK0189<tb></tb>20:40'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l><tc>_</tc>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l><e>DATA:<dt></dt></e><l></l><e>Hora:<hr></hr></e><l></l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>Anvançando 3 Linhas</ce><sl>3</sl>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>Anvançando 1 Linha</ce><sl>1</sl>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l>Inserindo</l><sp>10</sp>10 espaços em Branco'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>Formatação Normal</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l><n>DARUMA AUTOMAÇÃO!!</n></l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGR+ITAL+SUBL+EXPAND</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><i><s><e>DARUMA AUTOMAÇÃO!!</b></i></s></e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGR+ITAL+SUBL+CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><i><s><c>DARUMA AUTOMAÇÃO!!</b></i></s></c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGR+ITAL+SUBL+NORMAL</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><i><s><n>DARUMA AUTOMAÇÃO!!</b></i></s></n>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<e>DARUMA AUTOMAÇÃO!!<e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<c>CONDENSADO</c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>DARUMA AUTOMAÇÃO!!</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGRITO+EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><e>DARUMA AUTOMAÇÃO!!</b></e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ITÁLICO+EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<i><e>DARUMA AUTOMAÇÃO!!</i></e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce><dt></dt>SUBLINHADO+EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<s><e>DARUMA AUTOMAÇÃO!!</s></e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGRITO+CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><c>DARUMA AUTOMAÇÃO!!</b></c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ITÁLICO+CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<i><c>DARUMA AUTOMAÇÃO!!</i></c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>SUBLINHADO+CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<s><c>DARUMA AUTOMAÇÃO!!</s></c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGRITO+NORMAL</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><n>DARUMA AUTOMAÇÃO!!</b></n>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ITÁLICO+NORMAL</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l><i><n>DARUMA AUTOMAÇÃO!!</i></n></l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>SUBLINHADO+NORMAL</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<s><n>DARUMA AUTOMAÇÃO!!</s></n><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ALINHADO A DIREITA</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ad>DARUMA AUTOMAÇÃO!!</ad><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ALINHADO A DIREITA + EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<e><ad>DARUMA AUTOMAÇÃO!!</ad></e><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ALINHADO A DIREITA + SUBLINHADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ad><s>DARUMA AUTOMAÇÃO!!</s></ad><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>CENTRALIZADO + EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<e><ce>DARUMA AUTOMAÇÃO!!</ce></e><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ft>05,10,15,20,30,40</ft>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>TABULADO NA COLUNA 10</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb></tb><tb></tb>DARUMA<l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>TABULADO NA COLUNA 30</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb></tb><tb></tb><tb></tb><tb></tb><tb></tb>DARUMA'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<n><e>Códigos de Barras</e></n>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ean13>123456789012</ean13><ean8>1234567</ean8>' +
'<upc-a>12345678901</upc-a><code39>CODE 39</code39><code93>CODE 93</code93>' +
'<codabar>CODABAR</codabar><msi>123456789</msi><code11>12345678901</code11><pdf>1234</pdf>'),0);

//Enviando todos Juntos

Int_Retorno:= Daruma_DUAL_ImprimirTexto(Pchar('<l><e><b>BUFFER COMPLETO</e></b>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(Pchar('<<e>>DATA:<<dt>><</dt>><</e>><<l>><<l/>><<e>>Hora:<<hr>><</hr>><</e>><<l>><<l/>><<ce>>' +
'Anvançando 5 Linhas<</ce>><<sl>>5<</sl>>Inserindo<<sp>>10<</sp>>10 espaços em Branco<<l>>' +
'<<ce>>Formatação Normal<</ce>><<n>>DARUMA AUTOMAÇÃO!!<</n>><<l>><<ce>>NEGR+ITAL+SUBL+EXPAND<</ce>>' +
'<<b>><<i>><<s>><<e>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</e>><<l>><<ce>>NEGR+ITAL+SUBL+CONDENSADO<</ce>>' +
'<<b>><<i>><<s>><<c>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</c>><<l>><<ce>>NEGR+ITAL+SUBL+NORMAL<</ce>><<b>>' +
'<<i>><<s>><<n>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</n>><<l>><<ce>>EXPANDIDO<</ce>><<e>>DARUMA AUTOMAÇÃO!!' +
'<<e>><<l>><<ce>>CONDENSADO<</ce>><<c>>DARUMA AUTOMAÇÃO!!<</c>><<l>><<ce>>NEGRITO+EXPANDIDO<</ce>><<b>><<e>>DARUMA AUTOMAÇÃO!!' +
'<</b>><</e>><<l>><<ce>>Itálico+EXPANDIDO<</ce>><<i>><<e>>DARUMA AUTOMAÇÃO!!<</i>><</e>><<l>><<ce>>SUBLINHADO+EXPANDIDO<</ce>>' +
'<<s>><<e>>DARUMA AUTOMAÇÃO!!<</s>><</e>><<l>><<ce>>NEGRITO+CONDENSADO<</ce>><<b>><<c>>DARUMA AUTOMAÇÃO!!<</b>><</c>><<l>>' +
'<<ce>>Itálico+CONDENSADO<</ce>><<i>><<c>>DARUMA AUTOMAÇÃO!!<</i>><</c>><<l>><<ce>>SUBLINHADO+CONDENSADO<</ce>><<s>><<c>>' +
'DARUMA AUTOMAÇÃO!!<</s>><</c>><<l>><<ce>>NEGRITO+NORMAL<</ce>><<b>><<n>>DARUMA AUTOMAÇÃO!!<</b>><</n>><<l>><<ce>>Itálico+NORMAL' +
'<</ce>><<l>><<i>><<n>>DARUMA AUTOMAÇÃO!!<</i>><</n>><<l>><<ce>>SUBLINHADO+NORMAL<</ce>><<s>><<n>>DARUMA AUTOMAÇÃO!!<</s>><</n>>' +
'<<l>><<ce>>ALINHADO A DIREITA<</ce>><<ad>>DARUMA AUTOMAÇÃO!!<</ad>><<l>><<ce>>ALINHADO A DIREITA + EXPANDIDO<</ce>>' +
'<<e>><<ad>>DARUMA AUTOMAÇÃO!!<</ad>><</e>><<l>><<ce>>ALINHADO A DIREITA + SUBLINHADO<</ce>><<ad>><<s>>DARUMA AUTOMAÇÃO!!<</s>><</ad>>' +
'<<l>><<ce>>CENTRALIZADO + EXPANDIDO<</ce>><<e>><<ce>>DARUMA AUTOMAÇÃO!!<</ce>><</e>><<l>><<ce>>TABULADO NA COLUNA 10<</ce>> <<tb>><</tb>>' +
' <<tb>><</tb>>DARUMA<<l>><<ce>>TABULADO NA COLUNA 30<</ce>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>>DARUMA<<sl>>10<</sl>>' +
'<<ean13>>123456789012<</ean13>><<ean8>>1234567<</ean8>><<upc-a>>12345678901<</upc-a>><<code39>>CODE 39<</code39>><<code93>>CODE 93<</code93>>' +
'<<codabar>>CODABAR<</codabar>><<msi>>123456789<</msi>><<code11>>12345678901<</code11>><<pdf>>1234<</pdf>>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(Pchar('<l><e><b>FIM BUFFER COMPLETO</e></b>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<sl>03</sl>'), 0);
if Int_Retorno = 1 Then
Application.MessageBox('Impressao Concluida!!!', 'Daruma Framework', mb_ok + 32)
else
Application.MessageBox('Erro!', 'Daruma Framework', mb_ok + 16);
end;


Teste Completo com as Tags de Impressão de Texto

Teste com as Tags HTML/XML
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite trabalhar com as Tags de Formatação.

Parâmetros do Método: (1 Parâmetro)
String: com as tags de formatação:ex:<ce>CENTRALIZADO</ce>

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Time-Out, o Usuario não posicionou o Documento dentro do tempo indicado
1: OK, Sucesso ao enviar o método
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: ECF Inicializando.
-53: Erro de Impressão.
Exemplos:

· Exemplo em Visual Basic 6.0:

Int_Retorno = Daruma_DUAL_ImprimirTexto(("<sn><e><b>Teste Formatação DHTM</b></e></sn>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<n>Estes são os carácteres que você poderá utilizar<n><l>Você poderá a qualquer monento combinar as formatações!!"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<b>><</b>> Para sinalizar Negrito"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<i>><</i>> Para sinalizar Itálico"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<s>><</s>> Para sinalizar Sublinhado"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<e>><</e>> Para sinalizar Expandido"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<c>><</c>> Para sinalizar Condensado"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<n>><</n>> Para sinalizar Normal"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<l>><</l>> Para Saltar Uma Linha"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<ad>><</ad>> Para alinhar a direita"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<ft>>n1,n2,...,n6<</ft>> Para habilitar tabulação"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<tb>><</tb>> Para saltar até a proxima tabulação"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<sl>>NN<</sl>> Para Saltar Várias Linhas"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<tc>>C<</tc>>Riscar Linha com Carácter Específico"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<ce>><</ce>> Para Centralizar"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<dt>><</dt>> Para Imprimir Data Atual"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<hr>><</hr>> Para Imprimir Hora Atual"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<sp>>NN<</sp>> Inserir NN Espaços em Branco"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<sn>><</sn>> Sinal Sonoro, Apitar"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<g>><</g>> Abre a Gaveta"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<a>><</a>> Aguardar até o Término da Impressão"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<tc>>_<</tc>> Gerar uma linha tachada"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<sl>01</sl>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<e>TABULAÇÃO</e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ft>05,10,15,20,30,40</ft>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("Data<tb>Veiculo<tb>Cor<tb>Placa<tb>Hora"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<dt></dt><tb>Golf<tb>Branca<tb>AJY5231<tb>10:15</tb>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<dt></dt><tb>Focus<tb></tb>Vermelha<tb></tb>APG2013<tb></tb>13:45"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<dt></dt><tb></tb>Megane<tb></tb>Cinza<tb></tb>AAR5414<tb></tb>14:30"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<dt></dt><tb></tb>Corsa<tb></tb>Preto<tb></tb>AWK0189<tb></tb>20:40"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><tc>_</tc>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><e>DATA:<dt></dt></e><l></l><e>Hora:<hr></hr></e><l></l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>Anvançando 3 Linhas</ce><sl>3</sl>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>Anvançando 1 Linha</ce><sl>1</sl>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l>Inserindo</l><sp>10</sp>10 espaços em Branco"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>Formatação Normal</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><n>DARUMA AUTOMAÇÃO!!</n></l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGR+ITAL+SUBL+EXPAND</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><i><s><e>DARUMA AUTOMAÇÃO!!</b></i></s></e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGR+ITAL+SUBL+CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><i><s><c>DARUMA AUTOMAÇÃO!!</b></i></s></c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGR+ITAL+SUBL+NORMAL</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><i><s><n>DARUMA AUTOMAÇÃO!!</b></i></s></n>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<e>DARUMA AUTOMAÇÃO!!<e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<c>CONDENSADO</c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>DARUMA AUTOMAÇÃO!!</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGRITO+EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><e>DARUMA AUTOMAÇÃO!!</b></e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ITÁLICO+EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<i><e>DARUMA AUTOMAÇÃO!!</i></e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce><dt></dt>SUBLINHADO+EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<s><e>DARUMA AUTOMAÇÃO!!</s></e>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGRITO+CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><c>DARUMA AUTOMAÇÃO!!</b></c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ITÁLICO+CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<i><c>DARUMA AUTOMAÇÃO!!</i></c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>SUBLINHADO+CONDENSADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<s><c>DARUMA AUTOMAÇÃO!!</s></c>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>NEGRITO+NORMAL</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<b><n>DARUMA AUTOMAÇÃO!!</b></n>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ITÁLICO+NORMAL</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><i><n>DARUMA AUTOMAÇÃO!!</i></n></l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>SUBLINHADO+NORMAL</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<s><n>DARUMA AUTOMAÇÃO!!</s></n><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ALINHADO A DIREITA</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ad>DARUMA AUTOMAÇÃO!!</ad><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ALINHADO A DIREITA + EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<e><ad>DARUMA AUTOMAÇÃO!!</ad></e><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>ALINHADO A DIREITA + SUBLINHADO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ad><s>DARUMA AUTOMAÇÃO!!</s></ad><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce>DUPLA ALTURA</ce><l>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<da>DARUMA AUTOMAÇÃO!!</da><l>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce>DUPLA ALTURA + EXPANDIDO</ce><l>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<da><e>DARUMA AUTOMAÇÃO!!</da></e><l>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce>DUPLA ALTURA + SUBLINHADO</ce><l>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<da><s>DARUMA AUTOMAÇÃO!!</s></da><l>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce>DUPLA ALT + CENT + NEGRITO</ce>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<da><ce><b>DARUMA AUTOMAÇÃO!!</da></ce></b><l>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce>DUPLA ALT + ALIN DIR. + NEGR</ce>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto("<da><ad><b>DARUMA AUTOMAÇÃO!!</da></ad></b><l>", 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>CENTRALIZADO + EXPANDIDO</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<e><ce>DARUMA AUTOMAÇÃO!!</ce></e><l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ft>05,10,15,20,30,40</ft>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>TABULADO NA COLUNA 10</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb></tb><tb></tb>DARUMA<l>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ce>TABULADO NA COLUNA 30</ce>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<tb></tb><tb></tb><tb></tb><tb></tb><tb></tb>DARUMA"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<n><e>Códigos de Barras</e></n>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<ean13>123456789012</ean13><ean8>1234567</ean8>" + _
"<upc-a>12345678901</upc-a><code39>CODE 39</code39><code93>CODE 93</code93>" + _
"<codabar>CODABAR</codabar><msi>123456789</msi><code11>12345678901</code11><pdf>1234</pdf>"), 0)

'Enviando todos Juntos

Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><e><b>BUFFER COMPLETO</e></b>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<<e>>DATA:<<dt>><</dt>><</e>><<l>><<l/>><<e>>Hora:<<hr>><</hr>><</e>><<l>><<l/>><<ce>>" + _
"Anvançando 5 Linhas<</ce>><<sl>>5<</sl>>Inserindo<<sp>>10<</sp>>10 espaços em Branco<<l>>" + _
"<<ce>>Formatação Normal<</ce>><<n>>DARUMA AUTOMAÇÃO!!<</n>><<l>><<ce>>NEGR+ITAL+SUBL+EXPAND<</ce>>" + _
"<<b>><<i>><<s>><<e>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</e>><<l>><<ce>>NEGR+ITAL+SUBL+CONDENSADO<</ce>>" + _
"<<b>><<i>><<s>><<c>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</c>><<l>><<ce>>NEGR+ITAL+SUBL+NORMAL<</ce>><<b>>" + _
"<<i>><<s>><<n>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</n>><<l>><<ce>>EXPANDIDO<</ce>><<e>>DARUMA AUTOMAÇÃO!!" + _
"<<e>><<l>><<ce>>CONDENSADO<</ce>><<c>>DARUMA AUTOMAÇÃO!!<</c>><<l>><<ce>>NEGRITO+EXPANDIDO<</ce>><<b>><<e>>DARUMA AUTOMAÇÃO!!" + _
"<</b>><</e>><<l>><<ce>>Itálico+EXPANDIDO<</ce>><<i>><<e>>DARUMA AUTOMAÇÃO!!<</i>><</e>><<l>><<ce>>SUBLINHADO+EXPANDIDO<</ce>>" + _
"<<s>><<e>>DARUMA AUTOMAÇÃO!!<</s>><</e>><<l>><<ce>>NEGRITO+CONDENSADO<</ce>><<b>><<c>>DARUMA AUTOMAÇÃO!!<</b>><</c>><<l>>" + _
"<<ce>>Itálico+CONDENSADO<</ce>><<i>><<c>>DARUMA AUTOMAÇÃO!!<</i>><</c>><<l>><<ce>>SUBLINHADO+CONDENSADO<</ce>><<s>><<c>>" + _
"DARUMA AUTOMAÇÃO!!<</s>><</c>><<l>><<ce>>NEGRITO+NORMAL<</ce>><<b>><<n>>DARUMA AUTOMAÇÃO!!<</b>><</n>><<l>><<ce>>Itálico+NORMAL" + _
"<</ce>><<l>><<i>><<n>>DARUMA AUTOMAÇÃO!!<</i>><</n>><<l>><<ce>>SUBLINHADO+NORMAL<</ce>><<s>><<n>>DARUMA AUTOMAÇÃO!!<</s>><</n>>" + _
"<<l>><<ce>>ALINHADO A DIREITA<</ce>><<ad>>DARUMA AUTOMAÇÃO!!<</ad>><<l>><<ce>>ALINHADO A DIREITA + _ EXPANDIDO<</ce>>" + _
"<<e>><<ad>>DARUMA AUTOMAÇÃO!!<</ad>><</e>><<l>><<ce>>ALINHADO A DIREITA + _ SUBLINHADO<</ce>><<ad>><<s>>DARUMA AUTOMAÇÃO!!<</s>><</ad>>" + _
"<<l>><<ce>>CENTRALIZADO + _ EXPANDIDO<</ce>><<e>><<ce>>DARUMA AUTOMAÇÃO!!<</ce>><</e>><<l>><<ce>>TABULADO NA COLUNA 10<</ce>> <<tb>><</tb>>" + _
" <<tb>><</tb>>DARUMA<<l>><<ce>>TABULADO NA COLUNA 30<</ce>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>>DARUMA<<sl>>10<</sl>>" + _
"<<ean13>>123456789012<</ean13>><<ean8>>1234567<</ean8>><<upc-a>>12345678901<</upc-a>><<code39>>CODE 39<</code39>><<code93>>CODE 93<</code93>>" + _
"<<codabar>>CODABAR<</codabar>><<msi>>123456789<</msi>><<code11>>12345678901<</code11>><<pdf>>pdf<</pdf>>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<l><e><b>FIM BUFFER COMPLETO</e></b>"), 0)
Int_Retorno = Daruma_DUAL_ImprimirTexto(("<sl>03</sl>"), 0)

If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:
begin
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<sn><e><b>Teste Formatação DHTM</b></e></sn>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<n>Estes são os carácteres que você poderá utilizar<n><l>Você poderá a qualquer monento combinar as formatações!!'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<b>><</b>> Para sinalizar Negrito'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<i>><</i>> Para sinalizar Itálico'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<s>><</s>> Para sinalizar Sublinhado'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<e>><</e>> Para sinalizar Expandido'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<c>><</c>> Para sinalizar Condensado'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<n>><</n>> Para sinalizar Normal'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<l>><</l>> Para Saltar Uma Linha'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<ad>><</ad>> Para alinhar a direita'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<da>><</da>> Para duplicar a altura do caracter'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<ft>>n1,n2,...,n6<</ft>> Para habilitar tabulação'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<tb>><</tb>> Para saltar até a proxima tabulação'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<sl>>NN<</sl>> Para Saltar Várias Linhas'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<tc>>C<</tc>>Riscar Linha com Carácter Específico'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<ce>><</ce>> Para Centralizar'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<dt>><</dt>> Para Imprimir Data Atual'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<hr>><</hr>> Para Imprimir Hora Atual'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<sp>>NN<</sp>> Inserir NN Espaços em Branco'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<sn>><</sn>> Sinal Sonoro, Apitar'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<g>><</g>> Abre a Gaveta'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<a>><</a>> Aguardar até o Término da Impressão'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<<tc>>_<</tc>> Gerar uma linha tachada'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<sl>01</sl>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<e>TABULAÇÃO</e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ft>05,10,15,20,30,40</ft>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb>5</tb><tb>10</tb><tb>15</tb><tb>20</tb><tb>30</tb><tb>40</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('Data<tb>Veiculo<tb>Cor<tb>Placa<tb>Hora'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<dt></dt><tb>Golf<tb>Branca<tb>AJY5231<tb>10:15</tb>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<dt></dt><tb>Focus<tb></tb>Vermelha<tb></tb>APG2013<tb></tb>13:45'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<dt></dt><tb></tb>Megane<tb></tb>Cinza<tb></tb>AAR5414<tb></tb>14:30'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<dt></dt><tb></tb>Corsa<tb></tb>Preto<tb></tb>AWK0189<tb></tb>20:40'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l><tc>_</tc>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l><e>DATA:<dt></dt></e><l></l><e>Hora:<hr></hr></e><l></l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>Anvançando 3 Linhas</ce><sl>3</sl>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>Anvançando 1 Linha</ce><sl>1</sl>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l>Inserindo</l><sp>10</sp>10 espaços em Branco'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>Formatação Normal</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l><n>DARUMA AUTOMAÇÃO!!</n></l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGR+ITAL+SUBL+EXPAND</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><i><s><e>DARUMA AUTOMAÇÃO!!</b></i></s></e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGR+ITAL+SUBL+CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><i><s><c>DARUMA AUTOMAÇÃO!!</b></i></s></c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGR+ITAL+SUBL+NORMAL</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><i><s><n>DARUMA AUTOMAÇÃO!!</b></i></s></n>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<e>DARUMA AUTOMAÇÃO!!<e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<c>CONDENSADO</c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>DARUMA AUTOMAÇÃO!!</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGRITO+EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><e>DARUMA AUTOMAÇÃO!!</b></e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ITÁLICO+EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<i><e>DARUMA AUTOMAÇÃO!!</i></e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce><dt></dt>SUBLINHADO+EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<s><e>DARUMA AUTOMAÇÃO!!</s></e>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGRITO+CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><c>DARUMA AUTOMAÇÃO!!</b></c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ITÁLICO+CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<i><c>DARUMA AUTOMAÇÃO!!</i></c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>SUBLINHADO+CONDENSADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<s><c>DARUMA AUTOMAÇÃO!!</s></c>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>NEGRITO+NORMAL</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<b><n>DARUMA AUTOMAÇÃO!!</b></n>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ITÁLICO+NORMAL</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<l><i><n>DARUMA AUTOMAÇÃO!!</i></n></l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>SUBLINHADO+NORMAL</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<s><n>DARUMA AUTOMAÇÃO!!</s></n><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ALINHADO A DIREITA</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ad>DARUMA AUTOMAÇÃO!!</ad><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ALINHADO A DIREITA + EXPANDIDO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<e><ad>DARUMA AUTOMAÇÃO!!</ad></e><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>ALINHADO A DIREITA + SUBLINHADO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ad><s>DARUMA AUTOMAÇÃO!!</s></ad><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>DUPLA ALTURA</ce><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<da>DARUMA AUTOMAÇÃO!!</da><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>DUPLA ALTURA + EXPANDIDO</ce><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<da><e>DARUMA AUTOMAÇÃO!!</da></e><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>DUPLA ALTURA + SUBLINHADO</ce><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<da><s>DARUMA AUTOMAÇÃO!!</s></da><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>DUPLA ALT + CENT + NEGRITO</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<da><ce><b>DARUMA AUTOMAÇÃO!!</da></ce></b><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>DUPLA ALT + ALIN DIR. + NEGR</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<da><ad><b>DARUMA AUTOMAÇÃO!!</da></ad></b><l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ft>05,10,15,20,30,40</ft>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>TABULADO NA COLUNA 10</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb></tb><tb></tb>DARUMA<l>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ce>TABULADO NA COLUNA 30</ce>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<tb></tb><tb></tb><tb></tb><tb></tb><tb></tb>DARUMA'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<n><e>Códigos de Barras</e></n>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<ean13>123456789012</ean13><ean8>1234567</ean8>' +
'<upc-a>12345678901</upc-a><code39>CODE 39</code39><code93>CODE 93</code93>' +
'<codabar>CODABAR</codabar><msi>123456789</msi><code11>12345678901</code11><pdf>1234</pdf>'),0);

//Enviando todos Juntos

Int_Retorno:= Daruma_DUAL_ImprimirTexto(Pchar('<l><e><b>BUFFER COMPLETO</e></b>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(Pchar('<<e>>DATA:<<dt>><</dt>><</e>><<l>><<l/>><<e>>Hora:<<hr>><</hr>><</e>><<l>><<l/>><<ce>>' +
'Anvançando 5 Linhas<</ce>><<sl>>5<</sl>>Inserindo<<sp>>10<</sp>>10 espaços em Branco<<l>>' +
'<<ce>>Formatação Normal<</ce>><<n>>DARUMA AUTOMAÇÃO!!<</n>><<l>><<ce>>NEGR+ITAL+SUBL+EXPAND<</ce>>' +
'<<b>><<i>><<s>><<e>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</e>><<l>><<ce>>NEGR+ITAL+SUBL+CONDENSADO<</ce>>' +
'<<b>><<i>><<s>><<c>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</c>><<l>><<ce>>NEGR+ITAL+SUBL+NORMAL<</ce>><<b>>' +
'<<i>><<s>><<n>>DARUMA AUTOMAÇÃO!!<</b>><</i>><</s>><</n>><<l>><<ce>>EXPANDIDO<</ce>><<e>>DARUMA AUTOMAÇÃO!!' +
'<<e>><<l>><<ce>>CONDENSADO<</ce>><<c>>DARUMA AUTOMAÇÃO!!<</c>><<l>><<ce>>NEGRITO+EXPANDIDO<</ce>><<b>><<e>>DARUMA AUTOMAÇÃO!!' +
'<</b>><</e>><<l>><<ce>>Itálico+EXPANDIDO<</ce>><<i>><<e>>DARUMA AUTOMAÇÃO!!<</i>><</e>><<l>><<ce>>SUBLINHADO+EXPANDIDO<</ce>>' +
'<<s>><<e>>DARUMA AUTOMAÇÃO!!<</s>><</e>><<l>><<ce>>NEGRITO+CONDENSADO<</ce>><<b>><<c>>DARUMA AUTOMAÇÃO!!<</b>><</c>><<l>>' +
'<<ce>>Itálico+CONDENSADO<</ce>><<i>><<c>>DARUMA AUTOMAÇÃO!!<</i>><</c>><<l>><<ce>>SUBLINHADO+CONDENSADO<</ce>><<s>><<c>>' +
'DARUMA AUTOMAÇÃO!!<</s>><</c>><<l>><<ce>>NEGRITO+NORMAL<</ce>><<b>><<n>>DARUMA AUTOMAÇÃO!!<</b>><</n>><<l>><<ce>>Itálico+NORMAL' +
'<</ce>><<l>><<i>><<n>>DARUMA AUTOMAÇÃO!!<</i>><</n>><<l>><<ce>>SUBLINHADO+NORMAL<</ce>><<s>><<n>>DARUMA AUTOMAÇÃO!!<</s>><</n>>' +
'<<l>><<ce>>ALINHADO A DIREITA<</ce>><<ad>>DARUMA AUTOMAÇÃO!!<</ad>><<l>><<ce>>ALINHADO A DIREITA + EXPANDIDO<</ce>>' +
'<<e>><<ad>>DARUMA AUTOMAÇÃO!!<</ad>><</e>><<l>><<ce>>ALINHADO A DIREITA + SUBLINHADO<</ce>><<ad>><<s>>DARUMA AUTOMAÇÃO!!<</s>><</ad>>' +
'<<l>><<ce>>CENTRALIZADO + EXPANDIDO<</ce>><<e>><<ce>>DARUMA AUTOMAÇÃO!!<</ce>><</e>><<l>><<ce>>TABULADO NA COLUNA 10<</ce>> <<tb>><</tb>>' +
' <<tb>><</tb>>DARUMA<<l>><<ce>>TABULADO NA COLUNA 30<</ce>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>> <<tb>><</tb>>DARUMA<<sl>>10<</sl>>' +
'<<ean13>>123456789012<</ean13>><<ean8>>1234567<</ean8>><<upc-a>>12345678901<</upc-a>><<code39>>CODE 39<</code39>><<code93>>CODE 93<</code93>>' +
'<<codabar>>CODABAR<</codabar>><<msi>>123456789<</msi>><<code11>>12345678901<</code11>><<pdf>>1234<</pdf>>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(Pchar('<l><e><b>FIM BUFFER COMPLETO</e></b>'), 0);
Int_Retorno:= Daruma_DUAL_ImprimirTexto(pchar('<sl>03</sl>'), 0);
if Int_Retorno = 1 Then
Application.MessageBox('Impressao Concluida!!!', 'Daruma Framework', mb_ok + 32)
else
Application.MessageBox('Erro!', 'Daruma Framework', mb_ok + 16);
end;

procedure TFramework_DUAL_ImprimirTexto.BT_EnviarClick(
Sender: TObject);
var
Str_Texto_Livre: String;
Memo: String;
begin
Memo:= TX_Texto_Livre.Text;
if Memo = '' then //Verifica Existência de Texto no (Memo)
begin
Application.MessageBox('Digite um Texto...!', 'Daruma Framework', mb_ok + 16);
exit
end;
Str_Texto_Livre:= TX_Texto_Livre.Lines.Text;
Int_Retorno:= Daruma_Dual_ImprimirTexto(Str_Texto_Livre, 0); // 0 Segundo parametro ficou =0, dessa forma a dll calcula o tamanho do texto
if Int_Retorno = 1 then

Application.MessageBox('Impressao Concluida!!!', 'Daruma Framework', mb_ok + 32)
else
Application.MessageBox('Erro!', 'Daruma Framework', mb_ok + 16);
end;


Daruma_Registry_DUAL_Enter (Índice 30)

Método: Daruma_Registry_DUAL_Enter [Índice 30]
Previous Top Next

· Definição do Método:
Permite Configurar se Cada vez que a Impressora, efetuar a Impressão de uma Linha ela irá Quebrar a Linha automaticamente.

· Parâmetros do Método: (1 Parâmetro)
0 - Não Quebra Linha Automaticamente
1 - Quebra Linha Automaticamente

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Obervação:
Valor default da Chave = "1"

Para evitar conflitos/sujeita dentro da porta de comunicão é necessário alterar a chave dentro de HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF: Produto = 'DS300' para evitar sujeira na comunicação com a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_DUAL_Enter("1")

· Exemplo em Delphi 7.0:
Int_Retorno:= Daruma_Registry_DUAL_Enter('1');


Daruma_Registry_DUAL_Espera (Índice 32)

Método: Daruma_Registry_DUAL_Espera [Índice 32]
Previous Top Next

· Definição do Método:
Permite Sincronizar a dll com o Aplicativo:
Se voce deseja que a DLL segura o processo apenas quando terminar a última linha Impressa, coloque esta Chave a 1(um), caso contrario quando o Buffer do PC estiver Vazio e o ECF ainda estiver imprimindo o que estiver em seu Buffer a dll Irá retornar para o Aplicativo, porém o ECF ainda estará Imprimindo.

· Parâmetros do Método: (1 Parâmetro)
1: Espera Impressao Terminar para receber o Valor de Retorno da Funcao de Impressao da DLL
0: Não espera

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Obervação:
Valor default da Chave = "0"

Para evitar conflitos/sujeita dentro da porta de comunicão é necessário alterar a chave dentro de HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF: Produto = 'DS300' para evitar sujeira na comunicação com a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_DUAL_Espera("1")

· Exemplo em Delphi 7.0:
Int_Retorno:= Daruma_Registry_DUAL_Espera('1');


Daruma_Registry_DUAL_ModoEscrita (Índice 33)

Método: Daruma_Registry_DUAL_ModoEscrita [Índice 33]
Previous Top Next

Definição do Método:
Permite Configurar qual o modo de escrita da dll na porta PARALELA. Este modo só é funcional do CASO de se utilizar a porta Paralela.

Com este Método você poderá configurar qual o Modo de escrita que será praticado.

· Parâmetros do Método: (1 Parâmetro)
1 - Escrita DIRETO na PORTA de Comunicação Utilizando-se do HWINTERFACE.SYS
0 - Escrita sem Utilizar-se do HWINTERFACE.SYS

Ao optar pelo Modo de Escrita 1(um) , em sistema operacionais como XP, NP e 2000 você terá acesso a funções como:

- VerificaDocumento.
- Status da Impressora.

Porém poderá realizar todas as operações de impressão sem problemas.

· Observação Importante!!!
SE VOCÊ CONFIGUROU ESTA CHAVE PARA 1(UM) DEVERÁ ENTÃO PROCEDER OS PASSOS DE INSTALAÇÃO DO ARQUIVO HWINTERFACE.SYS. PARA ISSO VEJA O LINK:
Trabalhando com a DUAL NA PARALELA (LPT1, LPT2)

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Obervação:
Valor default da Chave = "0"

Para evitar conflitos/sujeita dentro da porta de comunicão é necessário alterar a chave dentro de HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF: Produto = 'DS300' para evitar sujeira na comunicação com a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_Registry_DUAL_ModoEscrita("1")

· Exemplo em Delphi 7.0:
Int_Retorno:= Daruma_Registry_DUAL_ModoEscrita('1');


Daruma_Registry_DUAL_Porta (Índice 31)

Método: Daruma_Registry_DUAL_Porta [Índice 31]
Previous Top Next

· Definição do Método:
Configura a porta de Comunicação que a DUAL irá Utilizar para se Comunicar.

· Parâmetros do Método: (1 Parâmetro)
String com o Valor da Porta
"LPT1"
"LPT2"
"COM1"
"COM2"
"COM3"
"COM4"

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Observeção:

Valor default da Chave = "LPT1"

Para evitar conflitos/sujeita dentro da porta de comunicão é necessário alterar a chave dentro de HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF: Produto = 'DS300' para evitar sujeira na comunicação com a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Porta As String

Str_Porta = InputBox("Entre com o Nome da Porta onde está a Impressora:", "Daruma Framework", "Lpt1")
If Str_Porta = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_DUAL_Porta(Str_Porta)

· Exemplo em Delphi 7.0:
var
Str_Porta: string;
ClickedOK: Boolean;
begin
Str_Porta:='LPT1';
ClickedOK:=InputQuery('Entre com a Porta onde esta a Impressora:', 'Daruma Framework', Str_Porta);
if (ClickedOK = False) or (Str_Porta='') then
exit;
Int_Retorno:= Daruma_Registry_DUAL_Porta(Str_Porta);
if Int_Retorno = 1 then
Application.MessageBox('Configuração Feita com Sucesso!', 'Daruma Framework', mb_ok + 32)
else
Application.MessageBox(' Erro!', 'Daruma Framework', mb_ok + 16);
end;


Daruma_Registry_DUAL_Tabulacao (Índice 34)

Método: Daruma_Registry_DUAL_Tabulacao [Índice 34]
Previous Top Next

· Definição do Método:
Formata as tabulações que serão utilizadas na DUAL.
As tabulações em nossa impressora, funcionam exatamente como em uma máquina de escrever, ou seja, primeiro você define as tabulações que serão usadas, depois você utiliza.

· Parâmetros do Método: (1 Parâmetro)
String com as tabulações: 05,10,15,20,25,35

Na sugestão passada como parâmetro anteriormente, a primeira tabulação definida para a impressão começar na quinta coluna, depois na décima, décima-quinta, vigésima, vigésima-quinta e por último na trigésima-quinta.

Importante: da mesma forma que acontece em uma máquina de escrever, que se o texto que escrito for maior que o intervalo da tabulação pré-configurado, então perde-se a tabulação, na impressora é igual. Exemplificando melhor seria o seguinte:

1)Temos a tabulação DEFAULT, que é 05,10,15,20,25,35.
2)Supondo que você coloque o texto "QUANTIDADE", na primeira tabulação;
2.1)Como a palavra quantidade que têm é 10(dez) caracteres, e é maior que o intervalo da até a próxima tabulação que é de apenas 5(cinco) colunas, então a segunda tabulação 10(dez)colunas de tamanho será perdida, nesta linha.
3)Uma dica seria, limitar-se sempre a trabalhar com um texto que nunca ultrapasse o intervalo programado, dessa forma o layout da tabela, que é o objetivo maior por se estar utilizando tabulação, ficará perfeito, como no exemplo abaixo:

QTD. TAM. COR
01 50 AZUL
02 78 VERDE
03 40 CINZA

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Tabulacao As String

Str_Tabulacao = InputBox("Entre com o Desejada:", "Daruma Framework", "05,10,15,20,25,35")
If Str_Tabulacao = "" Then
Exit Sub
End If

Int_Retorno = Daruma_Registry_DUAL_Tabulacao(Str_Tabulacao)
If Int_Retorno = 1 Then
MsgBox "Programacao feita com Sucesso!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
Exit Sub
End If

· Exemplo em Delphi 7.0:
var
Str_Tabulacao: String;
begin
Str_Tabulacao:= InputBox('Entre com o Desejada:', 'Daruma Framework', '05,10,15,20,25,35');
if Str_Tabulacao = '' then
begin
exit
end;
Int_Retorno:= Daruma_Registry_DUAL_Tabulacao(Str_Tabulacao);
if Int_Retorno = 1 then
begin
Application.MessageBox('Configuração Feita com Sucesso!', 'Daruma Framework', mb_ok + 32);
end
else
begin
Application.MessageBox(' Erro!', 'Daruma Framework', mb_ok + 16);
end;
end;


Daruma_Registry_DUAL_Velocidade (Índice 46)

Método: Daruma_Registry_DUAL_Velocidade[Índice 46]
Previous Top Next

· Definição do Método:
Permite configurar a velocidade a impressora DUAL Térmica DR600.

· Parâmetros do Método: (1 Parâmetro)
String com a Velocidade de comunicação
"9600"
"38400"
"57600"
"115200"

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Obervação:
Valor default da Chave = "9600"

Para evitar conflitos/sujeita dentro da porta de comunicão é necessário alterar a chave dentro de HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF: Produto = 'DS300' para evitar sujeira na comunicação com a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:

Int_Retorno = Daruma_Registry_Dual_Velocidade("9600")

· Exemplo em Delphi 7.0:

Int_Retorno:= Daruma_Registry_Dual_Velocidade('9600');


Daruma_Registry_DUAL_Termica (Índice 48)

Método: Daruma_Registry_DUAL_Termica[Índice 48]
Previous Top Next

· Definição do Método:
Permite configurar para trabalhar com a impressora DUAL Térmica DR600.

· Parâmetros do Método: (1 Parâmetro)
0 - Impressora DUAL Matricial
1 - Impressora DUAL Térmica DR600.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

· Obervação:
Valor default da Chave = "1"

Para evitar conflitos/sujeita dentro da porta de comunicão é necessário alterar a chave dentro de HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF: Produto = 'DS300' para evitar sujeira na comunicação com a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:

Int_Retorno = Daruma_Registry_DUAL_Termica("1")

· Exemplo em Delphi 7.0:

Int_Retorno:= Daruma_Registry_DUAL_Termica('1');


Exemplo DUAL 01

Exemplo DUAL 01
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome_Empresa As String
Dim Str_Endereco_Empresa As String
Dim Str_Fone_Empresa As String
Dim Str_Numero_Pedido As String
Dim Str_Tema_Mensagem As String
Dim Str_Titulo_Mensagem As String
Dim Str_Valor_Mensagem As String
Dim Str_Forma_Cobranca As String
Dim Str_Cliente As String
Dim Str_Fone_Res As String
Dim Str_Fone_Celular As String
Dim Str_Fone_Com As String
Dim Str_Mensagem_Promo As String
Dim Str_Hora As String

Str_Nome_Empresa = 'I LOVE TELEMENSAGENS'
Str_Endereco_Empresa = 'Rua: XV de Novembro'
Str_Fone_Empresa = '3343-0619 / 3386-9508'
Str_Numero_Pedido = '0541'
Str_Tema_Mensagem = 'Romantica'
Str_Titulo_Mensagem = 'Casados para Sempre'
Str_Valor_Mensagem = '5,00'
Str_Forma_Cobranca = 'Em carteira"
Str_Cliente = 'Lucia de Souza'
Str_Fone_Res = '233-1154'
Str_Fone_Celular = '9916-5540'
Str_Fone_Com = '224-8890 R-254'
Str_Mensagem_Promo = 'Agradeçemos a Preferência!!!'
Str_Hora = TX_Hora.Text

'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<i><e><sp>2</sp>" + TX_Nome_Empresa.Text + "</e></i>", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><tc>-</tc></ce>", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Endereco_Empresa.Caption + "<i>" + TX_Endereco_Empresa.Text + "</i>", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Fone_Empresa.Caption + "<i>" + TX_Fone_Empresa.Text + "</i>", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Pedido_Nº.Caption + "<i>" + TX_Numero_Pedido.Text + "</i>", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Data.Caption + "<i><dt></dt></i>", 0)
'IMPRIMINDO A SETIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><tc>-</tc></ce>", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Tema_Mensagem.Caption + "<i>" + TX_Tema_Mensagem.Text + "</i>", 0)
'IMPRIMINDO A NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Titulo_Mensagem.Caption + "<i>" + TX_Titulo_Mensagem.Text + "</i>", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Valor_Mensagem.Caption + "<i>" + TX_Valor_Mensagem.Text + "</i>", 0)
'IMPRIMINDO A DECIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Forma_Cobranca.Caption + "<i>" + TX_Forma_Cobranca.Text + "</i>", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Cliente.Caption + "<i>" + TX_Cliente.Text + "</i>", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Fone_Res.Caption + "<i>" + TX_Fone_Res.Text + "</i>", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Celular.Caption + "<i>" + TX_Celular.Text + "</i>", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>4</sp>" + LB_Fone_Com.Caption + "<i>" + TX_Fone_Com.Text + "</i><sl>1</sl>", 0)
'IMPRIMINDO A DECIMA SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><b>" + Tx_Mensagem_Promo.Text + "</b></ce><sl>2</sl>", 0)
'IMPRIMINDO A DECIMA OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>35</sp>" + LB_Hora.Caption + "<hr></hr>", 0)
'IMPRIMINDO A DECIMA NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><tc>-</tc></ce><sl>8</sl>", 0)

If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 02

Exemplo DUAL 02
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Retorno As Integer
Dim Str_Empresa As String
Dim Str_Endereco_Empresa As String
Dim Str_Fone_Empresa As String
Dim Str_Cliente As String
Dim Str_Cadastro As String
Dim Str_Data_Devolucao As String
Dim Str_Filme As String
Dim Str_Categoria As String
Dim Str_Valor As String
Dim Str_Mensagem_Promocional As String

Str_Empresa = 'Lucas Video'
Str_Edereco_Empresa = 'AV. Constantino Lopes, 550 - Centro - Ctba.'
Str_Fone_Empresa = '232-1662'
Str_Cliente = 'Guilherme de Souza'
Str_Cadastro = '00021'
Str_Data_Devolucao = '17/01/2005'
Str_Filme = 'Piratas do Caribe'
Str_Categoria = 'Lançamento'
Str_Valor = '4,50'
Str_Mensagem_Promocional = 'A cada 2 lançamentos brinde 1 catálogo'

'IPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<e><ce><b>" + TX_Empresa.Text + "</ce></e></b>", 0)
'IPRIMINDO A SEGUNRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(LB_Endereco_Empresa.Caption + "<i><sp>1</sp>" + TX_Endereco_Empresa.Text + "</i>", 0)
'IPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(LB_Fone_Empresa.Caption + "<i><sp>1</sp>" + TX_Fone_Empresa.Text + "</i>", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(LB_Nome_Cliente + "<i><sp>1</sp>" + TX_Cliente.Text + "</i>", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(LB_Cadastro + "<i><sp>1</sp>" + TX_Cadastro.Text + "</i>", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(LB_Data_Devolucao + "<i><sp>1</sp>" + TX_Data_Devolucao.Text + "</i>", 0)
'IMPRIMINDO A SETIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(LB_Filme + "<i><sp>1</sp>" + TX_Filme.Text + "</i>", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(LB_Categoria + "<i><sp>1</sp>" + TX_Categoria + "</i>", 0)
'IMPRIMINDO A NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(LB_Valor + "<i><sp>1</sp>" + TX_Valor + "</i><sl>2</sl>", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<i><ce><b>" + TX_Mensagem_Promocional + "</i></ce></b><sl>10</sl>", 0)

If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 03 (Tabulações)

Exemplo DUAL 03 (Tabulações)
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)

· Observações:
- As tabulações podem ser definidas da seguinte maneira:
Daruma_DUAL_ImprimirTexto("tf""0");
Exemplos:

· Exemplo em Visual Basic 6.0:
'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>FRAB<tb>Ano<tb>Modelo<tb>Valor<tb>Cor", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>GM<tb>2000<tb>Corsa<tb>12.000<tb>Azul", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Ford<tb>2005<tb>Fiesta<tb>14.000<tb>Verde", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Fiat<tb>1998<tb>Uno Mille<tb>9.000<tb>Branco", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>GM<tb>1997<tb>Vectra<tb>18.000<tb>Prata", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>GM<tb>1999<tb>Tigra<tb>17.000<tb>Verde", 0)
'IMPRIMINDO A SETIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Ford<tb>2001<tb>Versalhes<tb>5.000<tb>Vinho", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>GM<tb>1998<tb>Corsa<tb>10.000<tb>Preto", 0)
'IMPRIMINDO A NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Fiat<tb>1996<tb>Fiurino<tb>6.000<tb>Branca", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>WV<tb>1979<tb>Fusca<tb>3.000<tb>Bordo", 0)
'IMPRIMINDO A DECIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>GM<tb>1996<tb>Vectra<tb>16.000<tb>Grafite", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Fiat<tb>1985<tb>Fiat147<tb>3.000<tb>Azul", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Hond<tb>2003<tb>Civic<tb>28.000<tb>Preto", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Fiat<tb>1999<tb>Palio<tb>12.000<tb>Cinza", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>GM<tb>2003<tb>Celta<tb>17.000<tb>Branco<sl>7</sl>", 0)

If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 04

Exemplo DUAL 04
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>~</tc><l></l>", 0)
'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><e><b>CENTRO DE DANÇA FLESH</b></e></ce>", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<l></l><tc>~</tc>", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Rua: <c>XV de Novembro N 785 Centro CTBA PR</c>", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><i>Fone: 234-5678 <tb>Fax:324-5678</i>", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Data: <dt></dt><tb><tb>Hora: <hr></hr>", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Pedido:00069<tb><tb>Cliente:00013", 0)
'IMPRIMINDO A SÉTIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><b>Atividades Escolhidas:</b></ce>", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>SAMBA<tb>+<tb>BOLERO<tb>+<tb>FORRÓ", 0)
'IMPRIMINDO A NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<l></l><tb><i><e><b>Valor: 55,00</b></e></i><l></l>", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c>Vencimento: 10-03-05</c>", 0)
'IMPRIMINDO A DECIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c>o não pagamento implica no cancelamento da vaga </c>", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>Início dia 01 de Fevereiro as 17:30hr", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<l></l><tb>Venha Dançar!!!<l></l>", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto(" <ce><s><c>Samba,Bolero,Soltinho,Forró,Zouk</c></s></ce>", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad>Obrigado.</ad>", 0)
'IMPRIMINDO A DECIMA SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sn></sn>", 0)
'IMPRIMINDO A DECIMA SÉTIMA LINHA
If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 05

Exemplo DUAL 05
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirTexto("<e><ce><s>ESTACIONAMENTO LAC_PARK<s></ce></e>", 0)
'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<n>Endereço:</n><c> A Dr. Teobaldo Freitas Silva Ribas - Nº1912</c>", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<c>Santo André - São Paulo - SP - Brasil</c><l></l>", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<n>TICKET NÚMERO:<tb> 0005423</n><l></l>", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><b>Entrada:<tb><dt></dt><tb><hr></hr></b>", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc><l></l>", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><i>MARCA: Fiat<tb><tb>MODELO: Stilo</i><l></l>", 0)
'IMPRIMINDO A SETIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><i>PLACA: ANA-1069<tb>COR: Vermelho</i><l></l>", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc><l></l>", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad><n>R$ 2,00 à Hora</n></ad>", 0)
'IMPRIMINDO A DECIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad><n>R$ 0,50 à Cada 15 Minutos</n></ad>", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c><s><b>Não nos Responsabilizamos Por Objetos de Valor</b></s></c>", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c><s><b>Deixados no Interior do Veículo</b></s></c><l></l>", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><e><b>OBRIGADO</b></e></ce>", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl>", 0)
If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 06

Exemplo DUAL 06
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc>", 0)
'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><e>VENDA - A VISTA</e></ce>", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc>", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><n>Cliente...: 000001 - CONSUMIDOR</n>", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><n>Vendedor...:</n> <e>00069 - ANDREA </e>", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><n>Contrato...:</n> <e>02195 -</e><n> Data:<dt></dt></n>", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc>", 0)
'IMPRIMINDO A SETIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("CÓDIGO<sp>3</sp>DESCRIÇÃO<sp>3</sp>QT<sp>6</sp>UNIT<sp>8</sp>TOTAL", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc>", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("06540<tb>TENIS REEF<sp>2</sp>1<tb>149,90<sp>6</sp>149,90", 0)
'IMPRIMINDO A DECIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("05874<tb>MEIA ESTAM<sp>2</sp>6<tb> 2,90<sp>7</sp>17,40", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("05874<tb>BLUSAO ADU<sp>2</sp>1<tb> 49,00<sp>7</sp>49,00", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("05874<tb>CUECA SORT<sp>2</sp>2<tb> 4,90<sp>8</sp>9,80", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("05874<tb>TOALHA MES<sp>2</sp>3<tb> 9,90<sp>7</sp>29,70 ", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc>", 0)
'IMPRIMINDO A DECIMA SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad>DESCONTOS: - 12,80</ad>", 0)
'IMPRIMINDO A DECIMA SETIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc>", 0)
'IMPRIMINDO A DECIMA OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<e>TOTAL VENDA...:<sp>2</sp>243,00</e>", 0)
'IMPRIMINDO A DECIMA NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc>", 0)
'IMPRIMINDO A VIGÉSIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl>", 0)
'IMPRIMINDO A VIGÉSIMA PRIMEIRA LINHA
If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 07

Exemplo DUAL 07
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>#</tc>", 0)
'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<e><ce>ACADEMIA NEW SPORTS</ce></e>", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><i>Rua Nossa Senhora da Luz</i>, 350", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><i>Jardim Social - Curitiba - PR</i>", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb>CNPJ 04.888.968/0001-79<tb><e>234-5678<l></l></e>", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>#</tc><l></l>", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<i><dt></dt><i>", 0)
'IMPRIMINDO A SÉTIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad>Recibo nr.258963</ad><l></l>", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<c>Nome : </c><b>ELAINE MARIA</b><sp>5</sp>(545)<l></l> ", 0)
'IMPRIMINDO A NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<c>Plano : </c><b>MUSCULAÇÃO NOTURNO</b><sp>5</sp>(5)<l></l> ", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><e>VALOR PAGO : 45,00</e></ce> ", 0)
'IMPRIMINDO A DECIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<c>Ref. ao período de 03/04/2005 até 03/05/2005</c><l></l>", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<c>Obs: MENSALIDADE</c><l></l>", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc><l></l>", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><e>WWW.ACADEMIANEW.COM.BR</e></ce>", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tc>_</tc><l></l>", 0)
'IMPRIMINDO A DECIMA SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><e>SAUDE BELEZA E BEM ESTAR</e></ce>", 0)
'IMPRIMINDO A DECIMA SÉTIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sn></sn>", 0)
'IMPRIMINDO A DECIMA OITAVA LINHA
If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 08

Exemplo DUAL 08
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirTexto("________________________________________________", 0)
'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>5</sp><e><s>CASA ASHFAQ AHMED</s></e><sp>6</sp>|", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<c>Nota de : </c> <e>VENDAS</e><sp>24</sp>|", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<c>Número : </c> <e>032165</e><sp>24</sp>|", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<c>Vendedor: </c> <e>ZORAIDE</e><sp>22</sp>|", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>2</sp><b>CÓDIGO<sp>4</sp>|<sp>2</sp>DESCRIÇÃO<sp>8</sp>| VALOR</b> |", 0)
'IMPRIMINDO A SÉTIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>2</sp><b>00074185<sp>2</sp>|<sp>2</sp>DVD PANA-LS345<sp>3</sp>|<sp>2</sp>499,00</b><sp>4</sp>|", 0)
'IMPRIMINDO A NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>2</sp><b>000963256<sp>1</sp>|<sp>2</sp>CALCUL<sp>3</sp>HP49GX<sp>2</sp>|<sp>2</sp>859,00</b><sp>4</sp>|", 0)
'IMPRIMINDO A DECIMA PEIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>2</sp><b>00258852<sp>2</sp>|<sp>2</sp>TV TOSHI0<sp>2</sp>48P<sp>3</sp>|4,480,00</b><sp>4</sp>|", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>2</sp><b>000789654<sp>1</sp>|<sp>2</sp>SONY T68i<sp>8</sp>|<sp>2</sp>659,00</b><sp>4</sp>|", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A DECIMA SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>45</sp>|", 0)
'IMPRIMINDO A DECIMA SÉTIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<e><sp>3</sp>TOTAL<sp>3</sp>5,727,00</e><sp>7</sp>|", 0)
'IMPRIMINDO A DECIMA OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>45</sp>|", 0)
'IMPRIMINDO A DECIMA NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A VIGÉSIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>18</sp>CONFIRA SUAS MERCADORIAS<sp>3</sp>|", 0)
'IMPRIMINDO A VIGÉSIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("|<sp>5</sp>NÃO ACEITAMOS RECLAMAÇÕES POSTERIORES<sp>3</sp>|", 0)
'IMPRIMINDO A VIGÉSIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A VIGÉSIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl>", 0)
'IMPRIMINDO A VIGÉSIMA QUARTA LINHA
If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 09

Exemplo DUAL 09
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><e><s>R E C I B O</s></e></ce>", 0)
'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>32</sp><c>1º VIA</c>", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<e><sp>1</sp>INFO<sp>2</sp>XV</e><sp>14</sp><c>VENCIMENTO:<c><dt></dt>", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sp>32</sp><c>NÚMERO: 00654</c>", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<i><b>C o n t r o l e d e A l u g u e l</b></i>", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b>INQUILINO<sp>4</sp>..:</b> José Maria ", 0)
'IMPRIMINDO A SÉTIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b>FIADOR<sp>7</sp>..:</b> Roberto Carlos ", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b>IMÓVEL LOCADO..:</b> AV. Almirante Sab Nº 258 ", 0)
'IMPRIMINDO A NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b>VALOR<sp>8</sp>..:</b> 455,00 ", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------<l></l><l></l>", 0)
'IMPRIMINDO A DECIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad>Ass:-----------------------------</ad>", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c>NOTA PARA SIMPLES CONFERÊNCIA</c>", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c>SEM VALOR FISCAL</c>", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><i>FECHA..:<sp>2</sp><dt></dt><hr></hr> </i>", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A DECIMA SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl>", 0)
'IMPRIMINDO A DECIMA SÉTIMA LINHA
If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Exemplo DUAL 10

Exemplo DUAL 10
Método: Daruma_DUAL_ImprimirTexto
Previous Top Next

· Definição do Método:
Permite a Impressão de Texto com as TAGS de formatação.

· Parâmetros do Método: (2 Parâmetros)
String: Com o texto desejado, com até 3000 bytes.
Inteiro: Indicando se será aguardado o término da impressão 0(zero) não aguarda 1(um) aguardo.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método
0: Erro de comunicação, Impressora Desligada
-27: Erro Genérico
-50: Impressora OFF-Line
-51: Impressora Sem Papel
-52: Impressora Inicializando
-60: Erro de Tag (tag inválida)
Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><e><s>Consultório Médico </s></e></ce><l></l>", 0)
'IMPRIMINDO A PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<c>MÉDICO<sp>3</sp>__:</c><sp>2</sp>DR. Avô França", 0)
'IMPRIMINDO A SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<c>REGISTRO __:</c><sp>2</sp>321654", 0)
'IMPRIMINDO A TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<c>END. CONS__:</c><sp>2</sp>Rua Hugo Boos Nº 98, Centro CTBA PR", 0)
'IMPRIMINDO A QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b><i>REGISTRO DE CONSULTAS</i></b>", 0)
'IMPRIMINDO A SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c>PACIENTE<sp>5</sp>__:</c><sp>2</sp>Maria de Lurdes", 0)
'IMPRIMINDO A SÉTIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c>DATA CONSULTA__:<sp>1</sp>02/02/08</c><sp>7</sp>(orto)", 0)
'IMPRIMINDO A OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<tb><c>HORA CONSULTA__:<sp>1</sp>16:20:00</c>", 0)
'IMPRIMINDO A NONA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b><i>TOLERÂNCIA DE ATRASO</i></b><l></l>", 0)
'IMPRIMINDO A DECIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad>15 Minutos </ad>", 0)
'IMPRIMINDO A DECIMA PRIMEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b><i>DESISTÊNCIA</i></b>", 0)
'IMPRIMINDO A DECIMA SEGUNDA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad>Avisar com 24 Horas de Antesedência</ad>", 0)
'IMPRIMINDO A DECIMA TERCEIRA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b><i>OBSERVAÇÃO</i></b>", 0)
'IMPRIMINDO A DECIMA QUARTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ad>Raio X e Outros Exames não Estão Inclusos</ad>", 0)
'IMPRIMINDO A DECIMA QUINTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<b><i>DATA HOJE</i></b>", 0)
'IMPRIMINDO A DECIMA SEXTA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<ce><dt></dt><sp>3</sp><hr></hr></ce>", 0)
'IMPRIMINDO A DECIMA SÉTIMA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("------------------------------------------------", 0)
'IMPRIMINDO A DECIMA OITAVA LINHA
Int_Retorno = Daruma_DUAL_ImprimirTexto("<sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sl></sl><sn></sn>", 0)
'IMPRIMINDO A DECIMA NONA LINHA
If Int_Retorno = 1 Then
MsgBox "Impressao Concluida!", vbInformation, "Daruma Framework"
Else
MsgBox "Erro!", vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:


Daruma_TA1000_CadastrarProdutos(Índice 5420)

Método: Daruma_TA1000_CadastrarProdutos [Índice 5420]
Previous Top Next

· Definição do Método:
Permite cadastrar produtos no TA1000.

· Parâmetros do Método São: (12 Parâmetros)
1. Descrição: String até 25 caracteres com a descrição do produto.
2. Código: String com até 13 caracteres com código numérico ou 7 alfa-numéricos do produto.
3. Casas Decimais do Preço: String com apenas o caráctere.
4. Casas Decimais da Quantidade: Strig com 2(dois) caracteres.
5. Preço do Produto: String com até 8 dígitos para o preço do item.
6. Acréscimo Desconto: String "A" para Acréscimo e "D" para Desconto.
7. Valor Desconto ou Acréscimo: String com 5 dígitos para desconto ou Acréscimo.
8. Unidade de Medida: String com 2 dígitos.
9. Alíquota: String com o índice da alíquota.
10. Próximo Produto: String com 5 dígitos.
11. Produto Anterior: String com 5 dígitos..
12. Estoque: String com 8 dígitos para o estoque.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O parâmetro alíquota, especificamente para o TA1000 você deverá passar por índice TA, TB...TP.
Caso queira cadastrar ítem como isendo, utilize a sigla II, substituição FF e não tributado NN.
Onde cada índice representa uma alíquota em uma determinada posição de memória na impressora. Para ler as alíquotas exitentes na impressora use a função:Daruma_FI_LerAliquotasComIndice(Índice 1483) .
- Para que esse método seja validado no TA1000, você precisa chamar o método Daruma_TA1000_EnviarBancoProdutos.
- O ideal é que o seu aplicativo gere todo o banco de produtos, para somente após você enviá-los para o TA1000. Enquanto isso os itens permanecerão em memória.
- O valor do desconto nunca poderá ser igual ou maior do que o valor do item.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Descricao As String
Dim Str_Codigo As String
Dim Str_Decimais_Preco As String
Dim Str_Decimais_Quantidade As String
Dim Str_Preco As String
Dim Str_Acrescimo_Desconto As String
Dim Str_Valor_Acrescimo_Desconto As String
Dim Str_Unidade_Medida As String
Dim Str_Aliquota As String
Dim Str_Proximo_Produto As String
Dim Str_Produto_Anterior As String
Dim Str_Estoque As String

Str_Descricao = "Maca"
Str_Codigo = "0001"
Str_Decimais_Preco = "02"
Str_Decimais_Quantidade = "02"
Str_Preco = "1,00"
Str_Acrescimo_Desconto = "A"
Str_Valor_Acrescimo_Desconto = "0,10"
Str_Unidade_Medida = "UN"
Str_Aliquota = "TA"
Str_Proximo_Produto = "00000"
Str_Produto_Anterior = "00000"
Str_Estoque = "00010000"

Int_Retorno = Daruma_TA1000_CadastrarProdutos(Str_Descricao, Str_Codigo, Str_Decimais_Preco, _
Str_Decimais_Quantidade, Str_Preco, Str_Acrescimo_Desconto, Str_Valor_Acrescimo_Desconto, _
Str_Unidade_Medida, Str_Aliquota, Str_Proximo_Produto, Str_Produto_Anterior, Str_Estoque)

· Exemplo em Delphi 7.0:
var
Str_Descricao: String;
Str_Codigo: String;
Str_Decimais_Preco: String;
Str_Decimais_Quantidade: String;
Str_Preco: String;
Str_Acrescimo_Desconto: String;
Str_Valor_Acrescimo_Desconto: String;
Str_Unidade_Medida: String;
Str_Aliquota: String;
Str_Proximo_Produto: String;
Str_Produto_Anterior: String;
Str_Estoque: String;
begin
Str_Descricao:= 'Maca';
Str_Codigo:= '0001';
Str_Decimais_Preco:= '02';
Str_Decimais_Quantidade:= '02';
Str_Preco:= '1,00';
Str_Acrescimo_Desconto:= 'A';
Str_Valor_Acrescimo_Desconto:= '0,10';
Str_Unidade_Medida:= 'UN';
Str_Aliquota:= ''TA;
Str_Proximo_Produto:= '00000';
Str_Produto_Anterior:= '00000';
Str_Estoque:= '00010000';

Int_Retorno:= Daruma_TA1000_CadastrarProdutos(pchar(Str_Descricao), pchar(Str_Codigo), pchar(Str_Decimais_Preco), pchar(Str_Decimais_Quantidade), pchar(Str_Preco), pchar(Str_Acrescimo_Desconto), pchar(Str_Valor_Acrescimo_Desconto), pchar(Str_Unidade_Medida), pchar(Str_Aliquota), pchar(Str_Proximo_Produto), pchar(Str_Produto_Anterior), pchar(Str_Estoque));

end;


Daruma_TA1000_LerProdutos(Índice 5460)

Método: Daruma_TA1000_LerProdutos [Índice 5460]
Previous Top Next

· Definição do Método:
Permite ler os produtos no TA1000.

· Parâmetros do Método: (13 Parâmetros)
1. Indice: Inteiro com o índice do produto.
2. Código: String com até 13 caracteres com código numérico ou 7 alfa-numéricos do produto.
3. Descrição: String com até 25 espaços para receber a descrição.
4. Decimais Preço:String com até 8 espaços para receber do item.
5. Decimais Quantidade: String com até 25 espaços para receber a descrição.
6. Preço: String com até 25 espaços para receber a descrição.
7. Acréscimo Desconto: String com até 2 espaços para receber o byte indicador para acréscimo ou desconto.
8. Valor Acréscimo Desconto: String com 5 espaços para receber o valor do acréscimo ou desconto.
9. Unidade de Medida: String com 2 espaços para receber a unidade de medida.
10. Alíquota: String com 3 para receber a alíquota.
11. Próximo Produto: String com 5 espaços para receber o próximo produto.
12. Produto Anterior: String com 5 espaços para receber o código do produto anterior.
13. Estoque: String com 8 espaços para receber a quantidade de produtos em estoque.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Basta você passar o indice do produto a ser lido e no mais alocar espaços para receber os dados do produto. Lembrando que se for passado zero, então a Daruma32.dll irá varrer desde o primeiro ítem.
- Este método dispensa o uso do método Daruma_TA1000_ConsultarProdutos. Pois com este método você não terá o trabalho de ler campo-a-campo ítem-a-ítem, este trabalho fica por conta da Daruma342.dll.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Indice As Integer
Dim Str_Codigo As String
Dim Str_Descricao As String
Dim Str_Decimais_Preco As String
Dim Str_Decimais_Quantidade As String
Dim Str_Preco As String
Dim Str_Acrescimo_Desconto As String
Dim Str_Valor_Acrescimo_Desconto As String
Dim Str_Unidade_Medida As String
Dim Str_Aliquota As String
Dim Str_Proximo_Produto As String
Dim Str_Produto_Anterior As String
Dim Str_Estoque As String

Str_Indice = TX_Indice.Text
Str_Descricao = Space(26)
Str_Codigo = Space(14)
Str_Decimais_Preco = Space(2)
Str_Decimais_Quantidade = Space(2)
Str_Preco = Space(9)
Str_Acrescimo_Desconto = Space(2)
Str_Valor_Acrescimo_Desconto = Space(6)
Str_Unidade_Medida = Space(3)
Str_Aliquota = Space(3)
Str_Proximo_Produto = Space(6)
Str_Produto_Anterior = Space(6)
Str_Estoque = Space(10)

Int_Retorno = Daruma_TA1000_LerProdutos(CInt(Str_Indice), Str_Descricao, Str_Codigo, Str_Decimais_Preco, _
Str_Decimais_Quantidade, Str_Preco, Str_Acrescimo_Desconto, _
Str_Valor_Acrescimo_Desconto, Str_Unidade_Medida, Str_Aliquota, _
Str_Proximo_Produto, Str_Produto_Anterior, Str_Estoque)

TX_Descricao.Text = Str_Descricao
TX_Codigo.Text = Str_Codigo
TX_Decimais_Preco.Text = Str_Decimais_Preco
TX_Decimais_Quantidade.Text = Str_Decimais_Quantidade
TX_Preco.Text = Str_Preco
TX_Acrescimo_Desconto.Text = Str_Acrescimo_Desconto
TX_Valor_Acrescimo_Desconto.Text = Str_Valor_Acrescimo_Desconto
TX_Unidade_Medida.Text = Str_Unidade_Medida
TX_Aliquota.Text = Str_Aliquota
TX_Proximo_Produto.Text = Str_Proximo_Produto
TX_Produto_Anterior.Text = Str_Produto_Anterior
TX_Estoque.Text = Str_Estoque

End Sub

· Exemplo em Delphi 7.0:
var
Str_Indice: String;
Str_Descricao: String;
Str_Codigo: String;
Str_Decimais_Preco: String;
Str_Decimais_Quantidade: String;
Str_Preco: String;
Str_Acrescimo_Desconto: String;
Str_Valor_Acrescimo_Desconto: String;
Str_Unidade_Medida: String;
Str_Aliquota: String;
Str_Proximo_Produto: String;
Str_Produto_Anterior: String;
Str_Estoque: String;
begin
Str_Indice:= TX_Indice.Text;
SetLength (Str_Descricao,26);
SetLength (Str_Codigo,14);
SetLength (Str_Decimais_Preco,2);
SetLength (Str_Decimais_Quantidade,2);
SetLength (Str_Preco,9);
SetLength (Str_Acrescimo_Desconto,2);
SetLength (Str_Valor_Acrescimo_Desconto,6);
SetLength (Str_Unidade_Medida,3);
SetLength (Str_Aliquota,3);
SetLength (Str_Proximo_Produto,6);
SetLength (Str_Produto_Anterior,6);
SetLength (Str_Estoque,10);

Int_Retorno:= Daruma_TA1000_LerProdutos(StrToInt(Str_Indice), Str_Descricao,Str_Codigo, Str_Decimais_Preco, Str_Decimais_Quantidade, Str_Preco, Str_Acrescimo_Desconto, Str_Valor_Acrescimo_Desconto, Str_Unidade_Medida, Str_Aliquota, Str_Proximo_Produto, Str_Produto_Anterior, Str_Estoque);

TX_Codigo.Text:= pchar(Str_Codigo);
TX_Descricao.Text:= pchar(Str_Descricao);
TX_Decimais_Preco.Text:= pchar(Str_Decimais_Preco);
TX_Decimais_Quantidade.Text:= pchar(Str_Decimais_Quantidade);
TX_Preco.Text:= pchar(Str_Preco);
TX_Acrescimo_Desconto.Text:= pchar(Str_Acrescimo_Desconto);
TX_Valor_Acrescimo_Desconto.Text:= pchar(Str_Valor_Acrescimo_Desconto);
TX_Unidade_Medida.Text:= pchar(Str_Unidade_Medida);
TX_Aliquota.Text:= pchar(Str_Aliquota);
TX_Proximo_Produto.Text:= pchar(Str_Proximo_Produto);
TX_Produto_Anterior.Text:= pchar(Str_Produto_Anterior);
TX_Estoque.Text:= pchar(Str_Estoque);

end;


Daruma_TA1000_ConsultarProdutos(Índice 5440)

Método: Daruma_TA1000_ConsultarProdutos [Índice 5440]
Previous Top Next

· Definição do Método:
Permite consultar produtos no TA1000.

· Parâmetros do Método: (12 Parâmetros)
1. Código: String com até 13 caracteres com código numérico ou 7 alfa-numéricos do produto.
2. Descrição: String com até 25 espaços para receber a descrição.
3. Decimais Preço:String com até 8 espaços para receber do item.
4. Decimais Quantidade: String com até 25 espaços para receber a descrição.
5. Preço: String com até 25 espaços para receber a descrição.
6. Acréscimo Desconto: String com até 2 espaços para receber o byte indicador para acréscimo ou desconto.
7. Valor Acréscimo Desconto: String com 5 espaços para receber o valor do acréscimo ou desconto.
8. Unidade de Medida: String com 2 espaços para receber a unidade de medida.
9. Alíquota: String com 3 para receber a alíquota.
10. Próximo Produto: String com 5 espaços para receber o próximo produto.
11. Produto Anterior: String com 5 espaços para receber o código do produto anterior.
12. Estoque: String com 8 espaços para receber a quantidade de produtos em estoque.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Basta você passar o código do produto a ser consultado e no mais alocar espaços para receber os dados do produto.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo As String
Dim Str_Descricao As String
Dim Str_Decimais_Preco As String
Dim Str_Decimais_Quantidade As String
Dim Str_Preco As String
Dim Str_Acrescimo_Desconto As String
Dim Str_Valor_Acrescimo_Desconto As String
Dim Str_Unidade_Medida As String
Dim Str_Aliquota As String
Dim Str_Proximo_Produto As String
Dim Str_Produto_Anterior As String
Dim Str_Estoque As String

Str_Codigo = "0001"
Str_Descricao = Space(25)
Str_Decimais_Preco = Space(1)
Str_Decimais_Quantidade = Space(2)
Str_Preco = Space(8)
Str_Acrescimo_Desconto = Space(2)
Str_Valor_Acrescimo_Desconto = Space(5)
Str_Unidade_Medida = Space(2)
Str_Aliquota = Space(3)
Str_Proximo_Produto = Space(5)
Str_Produto_Anterior = Space(5)
Str_Estoque = Space(8)

Int_Retorno = Daruma_TA1000_ConsultarProdutos(Str_Codigo, Str_Descricao, Str_Decimais_Preco, _
Str_Decimais_Quantidade, Str_Preco, Str_Acrescimo_Desconto, _
Str_Valor_Acrescimo_Desconto, Str_Unidade_Medida, Str_Aliquota, _
Str_Proximo_Produto, Str_Produto_Anterior, Str_Estoque)

· Exemplo em Delphi 7.0:
var
Str_Descricao: String;
Str_Codigo: String;
Str_Decimais_Preco: String;
Str_Decimais_Quantidade: String;
Str_Preco: String;
Str_Acrescimo_Desconto: String;
Str_Valor_Acrescimo_Desconto: String;
Str_Unidade_Medida: String;
Str_Aliquota: String;
Str_Proximo_Produto: String;
Str_Produto_Anterior: String;
Str_Estoque: String;
begin

Str_Codigo:= Trim(TX_Codigo.Text);
SetLength (Str_Descricao,25);
SetLength (Str_Decimais_Preco,1);
SetLength (Str_Decimais_Quantidade,2);
SetLength (Str_Preco,8);
SetLength (Str_Acrescimo_Desconto,2);
SetLength (Str_Valor_Acrescimo_Desconto,5);
SetLength (Str_Unidade_Medida,2);
SetLength (Str_Aliquota,3);
SetLength (Str_Proximo_Produto,5);
SetLength (Str_Produto_Anterior,5);
SetLength (Str_Estoque,10);

Int_Retorno:= Daruma_TA1000_ConsultarProdutos(pchar(Str_Codigo), Str_Descricao, Str_Decimais_Preco, Str_Decimais_Quantidade, Str_Preco, Str_Acrescimo_Desconto, Str_Valor_Acrescimo_Desconto, Str_Unidade_Medida, Str_Aliquota, Str_Proximo_Produto, Str_Produto_Anterior, Str_Estoque);

TX_Descricao.Text:= pchar(Str_Descricao);
TX_Decimais_Preco.Text:= pchar(Str_Decimais_Preco);
TX_Decimais_Quantidade.Text:= pchar(Str_Decimais_Quantidade);
TX_Preco.Text:= pchar(Str_Preco);
TX_Acrescimo_Desconto.Text:= pchar(Str_Acrescimo_Desconto);
TX_Valor_Acrescimo_Desconto.Text:= pchar(Str_Valor_Acrescimo_Desconto);
TX_Unidade_Medida.Text:= pchar(Str_Unidade_Medida);
TX_Aliquota.Text:= pchar(Str_Aliquota);
TX_Proximo_Produto.Text:= pchar(Str_Proximo_Produto);
TX_Produto_Anterior.Text:= pchar(Str_Produto_Anterior);
TX_Estoque.Text:= pchar(Str_Estoque);

end;


Daruma_TA1000_AlterarProdutos(Índice 5410)

Método: Daruma_TA1000_AlterarProdutos [Índice 5410]
Previous Top Next

· Definição do Método:
Permite alterar um determinado produto no TA1000.

· Parâmetros do Método: (13 Parâmetros)
1. Código: String com até 13 caracteres com código numérico ou 7 alfa-numéricos do produto.
2. Descrição: String até 25 caracteres com a descrição do produto.
3. Código: String com até 13 caracteres contendo o código do produto.
4. Casas Decimais do Preço: Strig com apenas o caráctere.
5. Casas Decimais da Quantidade: Strig com 2(dois) caracteres.
6. Preço do Produto: String com até 8 dígitos para o preço do item.
7. Acréscimo Desconto: String "A" para Acréscimo e "D" para Desconto.
8. Valor Acréscimo Desconto: String com 5 dígitos para Acréscimo ou Acréscimo.
9. Unidade de Medida: String com 2 dígitos.
10. Alíquota: String com o índice da alíquota.
11. Próximo Produto: String com 5 dígitos.
12. Produto Anterior: String com 5 dígitos..
13. Estoque: String com 8 dígitos para o estoque.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que esse método seja validado no TA1000, você precisa chamar o método Daruma_TA1000_EnviarBancoProdutos.
Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo_Consultar As String
Dim Str_Descricao As String
Dim Str_Codigo As String
Dim Str_Decimais_Preco As String
Dim Str_Decimais_Quantidade As String
Dim Str_Preco As String
Dim Str_Acrescimo_Desconto As String
Dim Str_Valor_Acrescimo_Desconto As String
Dim Str_Unidade_Medida As String
Dim Str_Aliquota As String
Dim Str_Proximo_Produto As String
Dim Str_Produto_Anterior As String
Dim Str_Estoque As String

Str_Codigo_Consultar = "0001"
Str_Descricao = "Maca"
Str_Codigo = "0001"
Str_Decimais_Preco ="2"
Str_Decimais_Quantidade = "2"
Str_Preco = "1,00"
Str_Acrescimo_Desconto = "A"
Str_Valor_Acrescimo_Desconto = "0,10"
Str_Unidade_Medida = "UN"
Str_Aliquota = "TA"
Str_Proximo_Produto = "00000"
Str_Produto_Anterior = "00000"
Str_Estoque = "00000100"

Int_Retorno = Daruma_TA1000_AlterarProdutos(Str_Codigo_Consultar, Str_Descricao, Str_Codigo, Str_Decimais_Preco, _
Str_Decimais_Quantidade, Str_Preco, Str_Acrescimo_Desconto, Str_Valor_Acrescimo_Desconto, _
Str_Unidade_Medida, Str_Aliquota, Str_Proximo_Produto, Str_Produto_Anterior, Str_Estoque)

· Exemplo em Delphi 7.0:
var
Str_Codigo_Consultar: String;
Str_Descricao: String;
Str_Codigo: String;
Str_Decimais_Preco: String;
Str_Decimais_Quantidade: String;
Str_Preco: String;
Str_Acrescimo_Desconto: String;
Str_Valor_Acrescimo_Desconto: String;
Str_Unidade_Medida: String;
Str_Aliquota: String;
Str_Proximo_Produto: String;
Str_Produto_Anterior: String;
Str_Estoque: String;
begin
Framework_TA1000_AterarProdutos.Refresh;

Str_Codigo_Consultar:= TX_Codigo_Consultar.Text;
Str_Descricao:= TX_Descricao.Text;
Str_Codigo:= TX_Codigo.Text;
Str_Decimais_Preco:= TX_Decimais_Preco.Text;
Str_Decimais_Quantidade:= TX_Decimais_Quantidade.Text;
Str_Preco:= TX_Preco.Text;
Str_Acrescimo_Desconto:= TX_Acrescimo_Desconto.Text;
Str_Valor_Acrescimo_Desconto:= TX_Valor_Acrescimo_Desconto.Text;
Str_Unidade_Medida:= TX_Unidade_Medida.Text;
Str_Aliquota:= TX_Aliquota.Text;
Str_Proximo_Produto:= TX_Proximo_Produto.Text;
Str_Produto_Anterior:= TX_Produto_Anterior.Text;
Str_Estoque:= TX_Estoque.Text;

Int_Retorno:= Daruma_TA1000_AlterarProdutos(pchar(Str_Codigo_Consultar), pchar(Str_Descricao), pchar(Str_Codigo), pchar(Str_Decimais_Preco), pchar(Str_Decimais_Quantidade), pchar(Str_Preco), pchar(Str_Acrescimo_Desconto), pchar(Str_Valor_Acrescimo_Desconto), pchar(Str_Unidade_Medida), pchar(Str_Aliquota), pchar(Str_Proximo_Produto), pchar(Str_Produto_Anterior), pchar(Str_Estoque));

end;


Daruma_TA1000_EliminarProdutos(Índice 5430)

Método: Daruma_TA1000_EliminarProdutos [Índice 5410]
Previous Top Next

· Definição do Método:
Permite eliminar um determinado produto no TA1000.

· Parâmetros do Método: (1 Parâmetro)
1. Código: String com até 13 caracteres com código numérico ou 7 alfa-numéricos do produto.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que esse método seja validado no TA1000, voce precisa chamar o método Daruma_TA1000_EnviarBancoProdutos.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo As String
Str_Codigo = InputBox("Entre com o Codigo do Produto que voce deseja Eliminar:", "Daruma Framework", "0001")
Int_Retorno = Daruma_TA1000_EliminarProdutos(Str_Codigo)

· Exemplo em Delphi 7.0:
var
Str_Codigo: String;
begin

Str_Codigo:= InputBox('Daruma Framework' , 'Entre com o Código do Produto que Você Deseja Eliminar:','0001');
If Str_Codigo = '' then
begin
exit;
end;
int_Retorno:= Daruma_TA1000_EliminarProdutos(pchar(Str_Codigo));

end;


Daruma_TA1000_EnviarBancoProdutos(Índice 5350)

Método: Daruma_TA1000_EnviarBancoProdutos [Índice 5350]
Previous Top Next

· Definição do Método:
Permite enviar os produtos para o TA1000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Status As Integer

Int_Retorno = Daruma_TA1000_EnviarBancoProdutos()
Daruma_Framework_TA1000_Progress.Show

Int_Status = 0
Do While (Int_Status <> 100)
Int_Status = Daruma_TA1000_LeStatusTransferencia()
Daruma_Framework_TA1000_Progress.PB_TA1000.Value = Int_Status
Loop
Retorno_TA1000
Unload Daruma_Framework_TA1000_Progress

· Exemplo em Delphi 7.0:
var
Int_Status: Integer;
begin
Int_Retorno:= Daruma_TA1000_EnviarBancoProdutos();
Framework_TA1000_Progress.Show;
Int_Status:= 0;
While (Int_Status <> 100) do
begin
Int_Status:= Daruma_TA1000_LeStatusTransferencia();
Framework_TA1000_Progress.PB_TA1000.Position:= Int_Status;
end;
Retorno_TA1000;
Framework_TA1000_Progress.Close;
end;


Daruma_TA1000_ReceberBancoProdutos(Índice 5360)

Método: Daruma_TA1000_ReceberBancoProdutos [Índice 5360]
Previous Top Next

· Definição do Método:
Permite receber os produtos cadastrados no TA1000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Este método retornara os produtos em um arquivo TXT com o nome de Produtos.plu, em um path indicado no registry.
O Path default e C:\

· O formato do arquivo de retorno pode ser visto abaixo:
Header v1.46 PRODUTOS ;00001;00001;00001;bjcpcxfcgfjgkgltmcmtpcptscttunvd
Produto Numero1 ;1 ;2;2;00000100;-00000;un;TA;000;00002;00100;00000001
Produto Numero2 ;2 ;2;2;00000200;-00000;un;TA;000;00003;00001;00000002
Produto Numero3 ;3 ;2;2;00000300;-00000;un;TA;000;00004;00002;00000003
Produto Numero4 ;4 ;2;2;00000400;-00000;un;TA;000;00005;00003;00000004
Produto Numero5 ;5 ;2;2;00000500;-00000;un;TA;000;00006;00004;00000005
Produto Numero6 ;6 ;2;2;00000600;-00000;un;TA;000;00007;00005;00000006
Produto Numero7 ;7 ;2;2;00000700;-00000;un;TA;000;00008;00006;00000007
Produto Numero8 ;8 ;2;2;00000800;-00000;un;TA;000;00009;00007;00000008
Produto Numero9 ;9 ;2;2;00000900;-00000;un;TA;000;00010;00008;00000009
Produto Numero10 ;10 ;2;2;00001000;-00000;un;TA;000;00011;00009;00000010

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Status As Integer

Int_Retorno = Daruma_TA1000_ReceberBancoProdutos()
Daruma_Framework_TA1000_Progress.Show

Int_Status = 0
Do While (Int_Status <> 100)
Int_Status = Daruma_TA1000_LeStatusTransferencia()
Daruma_Framework_TA1000_Progress.PB_TA1000.Value = Int_Status
Loop
Retorno_TA1000
Unload Daruma_Framework_TA1000_Progress

· Exemplo em Delphi 7.0:
var
Int_Status: Integer;
begin
Int_Retorno:= Daruma_TA1000_ReceberBancoProdutos();
Framework_TA1000_Progress.Show;
Int_Status:= 0;
While (Int_Status <> 100) Do
begin
Int_Status:= Daruma_TA1000_LeStatusTransferencia();
Framework_TA1000_Progress.PB_TA1000.Position:= Int_Status;
end;

Framework_TA1000_Progress.Close;


Daruma_TA1000_ReceberProdutosVendidos(Índice 5363)

Método: Daruma_TA1000_ReceberProdutosVendidos [Índice 5363]
Previous Top Next

· Definição do Método:
Permite receber os produtos vendidos no TA1000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
1. Este método retornara os produtos em um arquivo TXT com o nome de ProdutosVendidos.plu, em um path indicado no registry.
2. O Path default e C:\

· O formato do arquivo de retorno pode ser visto abaixo:
Header PRODUTOS VENDIDOS ;00001;00001;00001;
A1200b1800c1200d1500E////F////G////H////I////J////K////L////M////N////O////P////
Produto Numero1 ;1 ;2;2;00000100;-00000;un;TA;000;00002;00010;00009900;0000001000;0000001000;0000001000;
Produto Numero2 ;2 ;2;2;00000200;-00000;un;TA;000;00003;00001;00009900;0000001000;0000001000;0000001000;
Produto Numero3 ;3 ;2;2;00000300;-00000;un;TA;000;00004;00002;00009800;0000002000;0000002000;0000002000;
Produto Numero4 ;4 ;2;2;00000400;-00000;un;TA;000;00005;00003;00009900;0000001000;0000001000;0000001000;
Produto Numero5 ;5 ;2;2;00000500;-00000;un;TA;000;00006;00004;00009900;0000001000;0000001000;0000001000;
Produto Numero6 ;6 ;2;2;00000600;-00000;un;TA;000;00007;00005;00009900;0000001000;0000001000;0000001000;
Produto Numero7 ;7 ;2;2;00000700;-00000;un;TA;000;00008;00006;00009900;0000001000;0000001000;0000001000;
Produto Numero8 ;8 ;2;2;00000800;-00000;un;TA;000;00009;00007;00009900;0000001000;0000001000;0000001000;
Produto Numero9 ;9 ;2;2;00000900;-00000;un;TA;000;00010;00008;00009900;0000001000;0000001000;0000001000;
Produto Numero10 ;10 ;2;2;00001000;-00000;un;TA;000;00001;00009;00009900;0000001000;0000001000;0000001000;

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Status As Integer

Int_Retorno = Daruma_TA1000_ReceberProdutosVendidos()
Daruma_Framework_TA1000_Progress.Show

Int_Status = 0
Do While (Int_Status <> 100)
Int_Status = Daruma_TA1000_LeStatusTransferencia()
Daruma_Framework_TA1000_Progress.PB_TA1000.Value = Int_Status
Loop
Retorno_TA1000
Unload Daruma_Framework_TA1000_Progress
End Sub

· Exemplo em Delphi 7.0:
var
Int_Status: Integer;
begin
Int_Retorno:= Daruma_TA1000_ReceberBancoProdutos();
Framework_TA1000_Progress.Show;
Int_Status:= 0;
While (Int_Status <> 100) Do
begin
Int_Status:= Daruma_TA1000_LeStatusTransferencia();
Framework_TA1000_Progress.PB_TA1000.Position:= Int_Status;
end;
Retorno_TA1000;
Framework_TA1000_Progress.Close;


Daruma_TA1000_ZerarProdutos(Índice 5450)

Método: Daruma_TA1000_ZerarProdutos [Índice 5450]
Previous Top Next

· Definição do Método:
Permite zerar os produtos no TA1000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que esse método seja validado no TA1000, você precisa chamar o método Daruma_TA1000_EnviarBancoProdutos.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_TA1000_ZerarProdutos()

· Exemplo em Delphi 7.0:
begin
Int_Retorno:= Daruma_TA1000_ZerarProdutos();

end;


Daruma_TA1000_ZerarProdutosVendidos(Índice 5456)

Método: Daruma_TA1000_ZerarProdutosVendidos [Índice 5456]
Previous Top Next

· Definição do Método:
Permite zerar os produtos vendidos no TA1000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que esse método seja validado no TA1000, você precisa chamar o método Daruma_TA1000_EnviarBancoProdutos.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_TA1000_ZerarProdutosVendidos()

· Exemplo em Delphi 7.0:
begin
Int_Retorno:= Daruma_TA1000_ZerarProdutosVendidos();

end;


Daruma_TA1000_CadastrarUsuarios(Índice 5422)

Método: Daruma_TA1000_CadastrarUsuarios [Índice 5422]
Previous Top Next

· Definição do Método:
Permite cadastrar usuáros no TA1000.

Parâmetros do Método: (6 Parâmetros)
1. Nome: String até 26 caracteres com o nome do usuário.
2. CPF: String com até 13 caracteres contendo o CPF do usuário.
3. Código do Convênio: String com até 6 dígitos contendo o código do convênio.
4. Código do Usuário: String com até 6 dígitos contendo o código do usuário.
5. Próximo Usuário: String com 6 dígitos.
6. Usuário Anterior: String com 6 dígitos.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que esse método seja validado no TA1000, você precisa chamar o método Daruma_TA1000_EnviarBancoUsuarios.
Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Nome As String
Dim Str_CPF As String
Dim Str_Codigo_Convenio As String
Dim Str_Codigo_Usuario As String
Dim Str_Usuario_Anterior As String
Dim Str_Proximo_Usuario As String

Str_Nome = "Usuario1"
Str_CPF = "7876609958700"
Str_Codigo_Convenio = "000000"
Str_Codigo_Usuario = "000000"
Str_Usuario_Anterior = "000000"
Str_Proximo_Usuario = "000000"

Int_Retorno = Daruma_TA1000_CadastrarUsuarios(Str_Nome, Str_CPF, Str_Codigo_Convenio, _
Str_Codigo_Usuario, Str_Usuario_Anterior, Str_Proximo_Usuario)

· Exemplo em Delphi 7.0:
var
Str_Nome: String;
Str_CPF: String;
Str_Codigo_Convenio: String;
Str_Codigo_Usuario: String;
Str_Usuario_Anterior: String;
Str_Proximo_Usuario: String;
begin
Str_Nome:= TX_Nome.'Usuario1';
Str_CPF:= '7876609958700';
Str_Codigo_Convenio:= '000000';
Str_Codigo_Usuario:= '000000';
Str_Usuario_Anterior:= '000000';
Str_Proximo_Usuario:= '000000';
Int_Retorno:= Daruma_TA1000_CadastrarUsuarios(pchar(Str_Nome), pchar(Str_CPF), pchar(Str_Codigo_Convenio), pchar(Str_Codigo_Usuario), pchar(Str_Usuario_Anterior), pchar(Str_Proximo_Usuario));
Framework_TA1000.Retorno_TA1000();


Daruma_TA1000_ConsultarUsuarios(Índice 5443)

Método: Daruma_TA1000_ConsultarUsuarios [Índice 5443]
Previous Top Next

· Definição do Método:
Permite consultar usuarios no TA1000.

· Parâmetros do Método: (1 Parâmetro)
Código: String com até 6 caracteres contendo o código do usuário.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Basta você passar o código do usuário a ser consultado e alocar espaços para receber os dados do usuário.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo_Consultar As String
Dim Str_Nome As String
Dim Str_CPF As String
Dim Str_Codigo_Convenio As String
Dim Str_Codigo_Usuario As String
Dim Str_Usuario_Anterior As String
Dim Str_Proximo_Usuario As String

Str_Codigo_Consultar = TX_Codigo_Consultar.Text
Str_Nome = Space(26)
Str_CPF = Space(13)
Str_Codigo_Convenio = Space(6)
Str_Codigo_Usuario = Space(6)
Str_Usuario_Anterior = Space(6)
Str_Proximo_Usuario = Space(6)

Int_Retorno = Daruma_TA1000_ConsultarUsuarios(Str_Codigo_Consultar, Str_Nome, Str_CPF, Str_Codigo_Convenio, _
Str_Codigo_Usuario, Str_Usuario_Anterior, Str_Proximo_Usuario)

· Exemplo em Delphi 7.0:
var
Str_Codigo_Consultar: String;
Str_Nome: String;
Str_CPF: String;
Str_Codigo_Convenio: String;
Str_Codigo_Usuario: String;
Str_Usuario_anterior: String;
Str_Proximo_Usuario: String;
begin
Str_Codigo_consultar:= Trim(TX_Codigo_Consultar.Text);
SetLength (Str_Nome,25);
SetLength (Str_CPF,11);
SetLength (Str_Codigo_Convenio,4);
SetLength (Str_Codigo_Usuario,5);
SetLength (Str_Usuario_Anterior,5);
SetLength (Str_Proximo_Usuario,5);

Int_Retorno:= Daruma_TA1000_ConsultarUsuarios(pchar(Str_Codigo_Consultar), Str_Nome, Str_CPF, Str_Codigo_Convenio, Str_Codigo_Usuario, Str_Usuario_Anterior, Str_Proximo_Usuario);

TX_Nome.Text:= Str_Nome;
TX_CPF.Text:= Str_CPF;
TX_Codigo_Convenio.Text:= Str_Codigo_Convenio;
TX_Codigo_Usuario.Text:= Str_Codigo_Usuario;
TX_Usuario_Anterior.Text:= Str_Usuario_Anterior;
TX_Proximo_Usuario.Text:= Str_Proximo_Usuario;


Daruma_TA1000_AlterarUsuarios(Índice 5412)

Método: Daruma_TA1000_AlterarUsuarios [Índice 5412]
Previous Top Next

· Definição do Método:
Permite alterar um determinado produto no TA1000.

· Parâmetros do Método: (1 Parâmetro)
Código do usuário alterado: String com até 6 caracteres contendo o código do usuário a ser alterado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que esse método seja validado no TA1000, você precisa chamar o método Daruma_TA1000_EnviarBancoUsuarios.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo_Consultar As String
Dim Str_Nome As String
Dim Str_CPF As String
Dim Str_Codigo_Convenio As String
Dim Str_Codigo_Usuario As String
Dim Str_Usuario_Anterior As String
Dim Str_Proximo_Usuario As String

Str_Codigo_Consultar = TX_Codigo_Consultar.Text
Str_Nome = TX_Nome.Text
Str_CPF = TX_CPF.Text
Str_Codigo_Convenio = TX_Codigo_Convenio.Text
Str_Codigo_Usuario = TX_Codigo_Usuario.Text
Str_Usuario_Anterior = TX_Usuario_Anterior.Text
Str_Proximo_Usuario = TX_Proximo_Usuario.Text

Int_Retorno = Daruma_TA1000_AlterarUsuarios(Str_Codigo_Consultar, Str_Nome, Str_CPF, Str_Codigo_Convenio, _
Str_Codigo_Usuario, Str_Usuario_Anterior, Str_Proximo_Usuario)

· Exemplo em Delphi 7.0:
var
Str_Codigo_Consultar: String;
Str_Nome: String;
Str_CPF: String;
Str_Codigo_Convenio: String;
Str_Codigo_Usuario: String;
Str_Usuario_anterior: String;
Str_Proximo_Usuario: String;
begin
Framework_TA1000_AlterarUsuarios.Refresh;
Str_Codigo_Consultar:= TX_Codigo_Consultar.Text;
Str_Nome:= TX_Nome.Text;
Str_CPF:= TX_CPF.Text;
Str_Codigo_Convenio:= TX_Codigo_Convenio.Text;
Str_Codigo_Usuario:= TX_Codigo_Usuario.Text;
Str_Usuario_Anterior:= TX_Usuario_Anterior.Text;
Str_Proximo_Usuario:= TX_Proximo_Usuario.Text;

Int_Retorno:= Daruma_TA1000_AlterarUsuarios(pchar(Str_Codigo_Consultar), pchar(Str_Nome), pchar(Str_CPF), pchar(Str_Codigo_Convenio), pchar(Str_Codigo_Usuario), pchar(Str_Usuario_Anterior), pchar(Str_Proximo_Usuario));
Framework_TA1000.Retorno_TA1000();

end;


Daruma_TA1000_EliminarUsuarios(Índice 5432)

Método: Daruma_TA1000_EliminarUsuarios [Índice 5432]
Previous Top Next

· Definição do Método:
Permite eliminar um determinado produto no TA1000.

· Parâmetros do Método: (1 Parâmetro)
Código: String com até 13 caracteres contendo o código do produto a ser eliminado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que esse método seja validado no TA1000, você precisa chamar o método Daruma_TA1000_EnviarBancoUsuarios.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo As String
Str_Codigo = InputBox("Entre com o Codigo do Produto que voce deseja Eliminar:", "Daruma Framework", "0001")
Int_Retorno = Daruma_TA1000_EliminarProdutos(Str_Codigo)

· Exemplo em Delphi 7.0:
var
Str_Codigo: String;
begin

Str_Codigo:= InputBox('Daruma Framework' , 'Entre com o Código do Produto que Você Deseja Eliminar:','0001');
If Str_Codigo = '' then
begin
exit;
end;
int_Retorno:= Daruma_TA1000_EliminarProdutos(pchar(Str_Codigo));

end;


Daruma_TA1000_EnviarBancoUsuarios(Índice 5351)

Método: Daruma_TA1000_EviarBancoUsuarios [Índice 5351]
Previous Top Next

· Definição do Método:
Permite enviar os produtos para o TA1000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Status As Integer

Int_Retorno = Daruma_TA1000_EnviarBancoUsuarios()
Daruma_Framework_TA1000_Progress.Show

Int_Status = 0
Do While (Int_Status <> 100)
Int_Status = Daruma_TA1000_LeStatusTransferencia()
Daruma_Framework_TA1000_Progress.PB_TA1000.Value = Int_Status
Loop
Retorno_TA1000
Unload Daruma_Framework_TA1000_Progress

· Exemplo em Delphi 7.0:
var
Int_Status: Integer;
begin
Int_Retorno:= Daruma_TA1000_EnviarBancoUsuarios();
Framework_TA1000_Progress.Show;
Int_Status:= 0;
while (Int_Status <> 100) Do
begin
Int_Status:= Daruma_TA1000_LeStatusTransferencia();
Framework_TA1000_Progress.PB_TA1000.Position:= Int_Status;
end;
Framework_TA1000.Retorno_TA1000();
Framework_TA1000_Progress.Close;


Daruma_TA1000_ReceberBancoUsuarios(Índice 5361)

Método: Daruma_TA1000_ReceberBancoUsuarios [Índice 5361]
Previous Top Next

· Definição do Método:
Permite receber os produtos vendidos.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Este método retornara os produtos em um arquivo TXT com o nome de Usuarios.plu, que sera em um path indicado no registry.

· O formato do arquivo de retorno pode ser visto abaixo:
Header v1.40 USUARIOS ;00001;00001;00001;bjcpcxfcgfjgkglt
Usuario Numero1 ;877E774E145; 0001
Usuario Numero2 ;877.774.145;2 ;2 ;00001;00003
Usuario Numero3 ;877.774.145;3 ;3 ;00002;00004
Usuario Numero4 ;877.774.145;4 ;4 ;00003;00005
Usuario Numero5 ;877.774.145;5 ;5 ;00004;00006
Usuario Numero6 ;877.774.145;6 ;6 ;00005;00007
Usuario Numero7 ;877.774.145;7 ;7 ;00006;00008
Usuario Numero8 ;877.774.145;8 ;8 ;00007;00009
Usuario Numero9 ;877.774.145;9 ;9 ;00008;00010
Usuario Numero10 ;877.774.145;10 ;10 ;00009;00011

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Status As Integer

Int_Retorno = Daruma_TA1000_ReceberBancoUsuarios()
Daruma_Framework_TA1000_Progress.Show

Int_Status = 0
Do While (Int_Status <> 100)
Int_Status = Daruma_TA1000_LeStatusTransferencia()
Daruma_Framework_TA1000_Progress.PB_TA1000.Value = Int_Status
Loop
Retorno_TA1000
Unload Daruma_Framework_TA1000_Progress

· Exemplo em Delphi 7.0:
var
Int_Status: Integer;
begin
Int_Retorno:= Daruma_TA1000_ReceberBancoUsuarios();
Framework_TA1000_Progress.show;
Int_Status:=0;
While (Int_Status <> 100) do
begin
Int_status:= Daruma_TA1000_LeStatusTransferencia();
Framework_TA1000_Progress.PB_TA1000.Position:= Int_Status;
end;
Framework_TA1000.Retorno_TA1000();
Framework_TA1000_Progress.Close;


Daruma_TA1000_ZerarUsuarios(Índice 5452)

Método: Daruma_TA1000_ZerarUsuarios [Índice 5452]
Previous Top Next

· Definição do Método:
Permite zerar os produtos no TA1000.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
Para que esse método seja validado no TA1000, você precisa chamar o método Daruma_TA1000_EnviarBancoUsuarios.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_TA1000_ZerarProdutos()

· Exemplo em Delphi 7.0:
begin
Int_Retorno:= Daruma_TA1000_ZerarProdutos();

end;


Daruma TA1000 Gerar Banco com Produtos

Daruma TA1000 Gerar Banco com Produtos

· Definição do Método:
Algoritimo para gerar um banco contendo Produtos

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Contador As Integer
Dim Str_Codigo As String
Dim Str_Descricao As String
Dim Str_Valor As String
Dim Str_Estoque As String
Dim Str_Proximo_Produto As String
Dim Str_Produto_Anterior As String
Dim Int_Quantidade_Produtos As Integer

Int_Quantidade_Produtos = CInt("100")
Int_Contador = 1

Int_Retorno = Daruma_TA1000_ZerarProdutos()
Do While (Int_Contador <= Int_Quantidade_Produtos)

Str_Codigo = CStr(Int_Contador)
Str_Descricao = "Produto Numero" + CStr(Int_Contador)
Str_Valor = String(6 - Len(CStr(Int_Contador)), "0")
Str_Valor = Str_Valor + CStr(Int_Contador) + "00"
Str_Estoque = "00010000"

If Int_Contador = 1 Then
Str_Produto_Anterior = String(5 - Len(CStr(Int_Quantidade_Produtos)), "0")
Str_Produto_Anterior = Str_Produto_Anterior + CStr(Int_Quantidade_Produtos)
Else
Str_Produto_Anterior = String(5 - Len(CStr(Int_Contador)), "0")
Str_Produto_Anterior = Str_Produto_Anterior + CStr(Int_Contador - 1)
End If

If Int_Contador = Int_Quantidade_Produtos Then
Str_Proximo_Produto = "00001"
Else
Str_Proximo_Produto = String(5 - Len(CStr(Int_Contador + 1)), "0")
Str_Proximo_Produto = Str_Proximo_Produto + CStr(Int_Contador + 1)
End If

Int_Retorno = Daruma_TA1000_CadastrarProdutos(Str_Descricao, Str_Codigo, "2", "2", Str_Valor, "D", "0,00", "UN", _
"TA", Str_Proximo_Produto, Str_Produto_Anterior, Str_Estoque)

Int_Contador = Int_Contador + 1
Loop

· Exemplo em Delphi 7.0:

var
Int_Contador: Integer;
Str_Codigo: String;
Str_Descricao: String;
Str_Valor: String;
Str_Estoque: String;
Str_Proximo_Produto: String;
Str_Produto_Anterior: String;
Int_Quantidade_Produtos: Integer;
Int_Casas: Integer;
begin
Int_Quantidade_Produtos:= StrToInt(TX_Quantidade_Produtos.Text);
Int_Contador:= 1;
Int_Retorno:= Daruma_TA1000_ZerarProdutos();
While (Int_Contador <= Int_Quantidade_Produtos) DO
begin

If Int_Contador < 10 then
begin
Str_Codigo:= StringOfChar('0',4 - 1 );
end
Else
If Int_Contador < 100 then
begin
Str_Codigo:= StringOfChar('0',4 - 2 );
end
Else
If Int_Contador < 1000 then
begin
Str_Codigo:= StringOfChar('0',4 - 3 );
end
else
If Int_Contador >= 1000 then
Str_Codigo:= '';

Str_Codigo:= Str_Codigo + IntToStr(Int_Contador);
Str_Descricao:= ('Produto Numero' + IntToStr(Int_Contador));
Str_Valor:= StringOfChar('0',6 - Int_Contador);
Str_Valor:= (Str_Valor + IntToStr(Int_Contador) + '00');
Str_Estoque:= ('00010000');

If Int_Contador = 1 Then
begin
Str_Produto_Anterior:= StringOfChar('0',5 - Int_Quantidade_Produtos);
Str_Produto_Anterior:= Str_Produto_Anterior + IntToStr(Int_Quantidade_Produtos);
end
Else
begin
Str_Produto_Anterior:= StringOfChar('0',5 - Int_Contador);
Str_Produto_Anterior:= Str_Produto_Anterior + IntToStr(Int_Contador - 1);
End;
If Int_Contador = Int_Quantidade_Produtos Then
begin
Str_Proximo_Produto:= '00001';
end
Else
begin
Str_Proximo_Produto:= StringOfChar('0',5 - Int_Contador + 1);
Str_Proximo_Produto:= Str_Proximo_Produto + IntToStr(Int_Contador + 1);
End;
Int_Retorno:= Daruma_TA1000_CadastrarProdutos(pchar(Str_Descricao), pchar(Str_Codigo), '2', '2', pchar(Str_Valor), 'D', pchar('0,00'), pchar('UN'), pchar('TA'), pchar(Str_Proximo_Produto), pchar(Str_Produto_Anterior), pchar(Str_Estoque));
Int_Contador:= Int_Contador + 1;
end;


Daruma TA1000 Gerar Banco com Usuarios

Daruma TA1000 Gerar Banco com Usuarios

· Definição do Método:
Algoritimo para gerar-se um banco contendo Usuarios

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Int_Contador As Integer
Dim Str_Codigo_Convenio As String
Dim Str_Codigo_Usuario As String
Dim Str_Nome As String
Dim Str_Valor As String
Dim Str_Estoque As String
Dim Str_Proximo_Usuario As String
Dim Str_Usuario_Anterior As String
Dim Int_Quantidade_Usuarios As Integer

Int_Quantidade_Usuarios = CInt("100")
Int_Contador = 1

Int_Retorno = Daruma_TA1000_ZerarUsuarios()
Do While (Int_Contador <= Int_Quantidade_Usuarios)

Str_Codigo_Usuario = CStr(Int_Contador)
Str_Nome = "Usuario Numero" + CStr(Int_Contador)
Str_Codigo_Convenio = String(6 - Len(CStr(Int_Contador)), "0")
Str_Codigo_Convenio = Str_Valor + CStr(Int_Contador)

If Int_Contador = 1 Then
Str_Usuario_Anterior = String(5 - Len(CStr(Int_Quantidade_Usuarios)), "0")
Str_Usuario_Anterior = Str_Usuario_Anterior + CStr(Int_Quantidade_Usuarios)
Else
Str_Usuario_Anterior = String(5 - Len(CStr(Int_Contador)), "0")
Str_Usuario_Anterior = Str_Usuario_Anterior + CStr(Int_Contador - 1)
End If

If Int_Contador = Int_Quantidade_Usuarios Then
Str_Proximo_Usuario = "00001"
Else
Str_Proximo_Usuario = String(5 - Len(CStr(Int_Contador + 1)), "0")
Str_Proximo_Usuario = Str_Proximo_Usuario + CStr(Int_Contador + 1)
End If

Int_Retorno = Daruma_TA1000_CadastrarUsuarios(Str_Nome, "877.774.145-87", Str_Codigo_Convenio, _
Str_Codigo_Usuario, Str_Usuario_Anterior, Str_Proximo_Usuario)

Int_Contador = Int_Contador + 1
Loop

· Exemplo em Delphi 7.0:
var
Int_Contador: Integer;
Str_Codigo_Convenio: String;
Str_Codigo_Usuario: String;
Str_Nome: String;
Str_Valor: String;
Str_Estoque: String;
Str_Proximo_Usuario: String;
Str_Usuario_Anterior: String;
Int_Quantidade_Usuarios: Integer;
begin
Int_Quantidade_Usuarios:= StrToInt(TX_Quantidade_Usuarios.Text);
Int_Contador:= 1;

Int_Retorno:= Daruma_TA1000_ZerarUsuarios();
While (Int_Contador <= Int_Quantidade_Usuarios) Do
begin

If Int_Contador < 10 then
begin
Str_Codigo_Usuario:= StringOfChar('0',5 - 1 );
end
Else
If Int_Contador < 100 then
begin
Str_Codigo_Usuario:= StringOfChar('0',5 - 2 );
end
Else
If Int_Contador < 1000 then
begin
Str_Codigo_Usuario:= StringOfChar('0',5 - 3 );
end
else
If Int_Contador < 10000 then
begin
Str_Codigo_Usuario:= StringOfChar('0',5 - 4 );
end
else
If Int_Contador >= 10000 then
Str_Codigo_Usuario:= '';

Str_Codigo_Usuario:= Str_Codigo_Usuario + IntToStr(Int_Contador);
Str_Nome:= 'Usuario Numero' + IntToStr(Int_Contador);
Str_Codigo_Convenio:=Str_Codigo_Usuario;
If Int_Contador = 1 Then
begin
Str_Usuario_Anterior:= StringOfChar('0',5 - Int_Quantidade_Usuarios);
Str_Usuario_Anterior:= Str_Usuario_Anterior + IntToStr(Int_Quantidade_Usuarios);
end
Else
begin
Str_Usuario_Anterior:= StringOfChar('0', 5 - Int_Contador);
Str_Usuario_Anterior:= Str_Usuario_Anterior + IntToStr(Int_Contador - 1);
End;
If Int_Contador = Int_Quantidade_Usuarios Then
begin
Str_Proximo_Usuario:= '00001';
End
Else
begin
Str_Proximo_Usuario:= StringOfChar('0',5 - Int_Contador + 1);
Str_Proximo_Usuario:= Str_Proximo_Usuario + IntToStr(Int_Contador + 1);
End;
Int_Retorno:= Daruma_TA1000_CadastrarUsuarios(pchar(Str_Nome), pchar('877.774.145-87'), pchar(Str_Codigo_Convenio), pchar(Str_Codigo_Usuario), pchar(Str_Usuario_Anterior), pchar(Str_Proximo_Usuario));
Int_Contador:= Int_Contador + 1;
end;


Implementando TEF com a Daruma32.dll

Métodos: Para Implementação de TEF com a Daruma32.DLL

· Definição do Método:
Para realizar o TEF, existe operações que infelizmente são complicadas para determinadas linguagens de programação ao implementar.

Um Exemplo disso é o travamento do Teclado, Impressao da Resposta do TEF, problemas de foco na Janela, controle do ECF ligado e Desligado, etc.

Por isso implementamos para você desenvolvedor 5(Cinco) Funções Exclusivas para o TEF que permitirá que você efetue o TEF sem maiores problemas e sem dificuldades nas operações de

1) Esperar o Arquivo de Resposta.
2) Imprimir Resposta controlando o Arquivo no ECF se foi desligado ou não e re-imprimindo no Gerencial.
3) Configurar o Foco na Janela de seu aplicativo de Automação.
4) Fechar o Relatorio Seja ele Vinculado ou não.

Veja em Modo Gráfico como e quando usar as Funções Auxiliares de TEF: clique aqui Daruma_TEF_Tratando os Erros para ver passo-a-passo, como fazer o tratamentos dos erros como: Impressora com pouco papel, sem papel, off-line ou desligada.


Daruma_TEF_SetFocus(Índice 1902)

Método: Daruma_TEF_SetFocus [Índice 1902]
Previous Top Next

· Definição do Método:
Coloca o foco na Janela que você especificar. Isso resolve alguns problemas do TEF de perda de foco apos ou durante uma transação TEF.

· Parâmetros do Método: (1 Parâmetro)
JANELA = String com o TITULO da Janela, a Método irá buscar a janela para colocar o foco através do TÍTULO da Janela, do CAPTION da Janela. Apenas isso.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver configurado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Exemplo: Colocando o Foco em uma Janela que o Título da Janela é "Aplicativo de Automação Comercial Versão 1.0"

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Titulo_Janela As String
Str_Titulo_JanelInt_Retorno = InputBox("Entre com o título da Janela que você deseja setar o focu:", "Daruma Framework", "Daruma Framework Impressoras Fiscais")
Int_Retorno = Daruma_TEF_SetFocus(Str_Titulo_Janela)
End Sub

· Exemplo em Delphi 7.0:
var Str_Titulo_Janela: String;
begin
Str_Titulo := InputBox('Daruma Framework', 'Entre com o título da Janela que você deseja setar o focu:', 'Daruma Framework Impressoras Fiscais');
Int_Retorno := Daruma_TEF_SetFocus(pchar(Str_Titulo_Janela));


Daruma_TEF_FechaRelatorio(Índice 1904)

Método: Daruma_TEF_FechaRelatorio [Índice 1904]
Previous Top Next

· Definição do Método:
Fecha o Relatório no ECF, seja qual for o relatório que estiver aberto. Não se preocupe em identificar se o Relatório é Gerencial ou Comprovante Não Fiscal Não Vinculado, apenas chame esta Método que possui inteligência para Identificar qual é o relatório que está aberto e fechá-lo.

· Parâmetros do Método:
Nenhum.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Exemplo: Se tiver um comprovante não fiscal aberto na impressora, esta método será fechado.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_TEF_FechaRelatorio()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_TEF_FechaRelatorio();


Daruma_TEF_ImprimirResposta(Índice 1901)

Método: Daruma_TEF_ImprimirResposta [Índice 1901]
Previous Top Next

· Definição do Método:
Um dos Grandes problemas Hoje das empresas de software na Homologação do TEF é a impressão da Reposta no ECF.
Abrir o Arquivo, Buscar o Campo a ser impresso, Controlar a impressao, etc.. tudo isso é realizado por este Método.
Passe apenas o PATH onde este arquivo se encontra e esta Método imprime pra você o Arquivo e irá devolver se a impressão foi com sucesso ou não, caso não tenha tido sucesso você deverá proceder os passos do TEF de perguntar se deseja continuar a impressão ou não etc. Clique Aqui para visualizar como tratar os possíveis erros de impressão.

· Parâmetros do Método: (3 Parâmetros)
1. Arquivo: String com o Caminho completo + nome do arquivo que você deseja imprimir: "C:\TEF_DIAL\RESP\INTPOS.001"
2. Forma: A Forma Pagamento que você deseja Abrir o Comprovante não fiscal Vinculado, caso você deseje imprimir o Arquivo no Relatório Gerêncial, passe este parâmetro VAZIO, NULO sem conteúdo. E o Arquivo será impresso em um relatório Gerencial.
3. Travar Teclado. O terceiro e último paramêtro Travar Teclado, esta setado internamente para "nunca" travar o teclado, já que as homologadoras de TEF, não exigem que durante a espera pelo arquivo, seja travado o teclado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Fluxograma básico de uso desta Método:
1) Retorno = Daruma_TEF_ImprimirResposta("C:\TEF_DIAL\INTPOS.001","Dinheiro","1")
2)Retorno é Igual a 1(um)?
3)Se Sim, chamar a Método para encerrar a impressao
(Daruma_FI_FechaComprovanteNaoFiscalVinculado ou Daruma_FI_FechaRelatorioGerencial)
4)Se Não, Colocar MSGBOX na Tela "Impressora Nao Responde, deseja Continuar?
Sim ou não?"
5)Se Sim, Voltar para o passo 1, só que não passando o parâmetro
da Forma de Pagamento, passe um espaco em branco. (Daruma_TEF_ImprimirResposta("C:\TEF_DIAL\INTPOS.001"," ","1") isso fará com que a Método abre o Relatorio Gerencial e volte a imprimir tudo no Relatório Gerencial.
6)Se não, chamar a Método para encerrar a impressao
(Daruma_FI_FechaComprovanteNaoFiscalVinculado ou Daruma_FI_FechaRelatorioGerencial)

· Exemplo: Impressão do Arquivo INTPOS.001 no Comprovante Não Fiscal Vinculado.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Path_Arquivo_Resp_TEF As String
Dim Str_Forma_de_Pagamento As String
Dim Str_Travar_Teclado As String

Str_Path_Arquivo_Resp_TEF = TX_Path_Arquivo_Resp_TEF.Text
Str_Forma_de_Pagamento = TX_Forma_de_Pagamento.Text
Str_Travar_Teclado = TX_Teclado.Text
Int_Retorno = Daruma_TEF_ImprimirResposta(Str_Path_Arquivo_Resp_TEF, Str_Forma_de_Pagamento, Str_Travar_Teclado)

· Exemplo em Delphi 7.0:
var
Str_Path_Arquivo_Resp_TEF: String;
Str_Forma_de_Pagamento: String;
Str_Travar_Teclado: String;
begin
Str_Path_Arquivo_Resp_TEF := Trim(Path_Arquivo_Resp_TEF.Text);
Str_Forma_de_Pagamento := Trim(Forma_de_Pagamento.Text);
Str_Travar_Teclado := Trim(Travar_Teclado.Text);
Int_Retorno := Daruma_TEF_ImprimirResposta(pchar( Str_Path_Arquivo_Resp_TEF ), pchar( Str_Forma_de_Pagamento ), pchar( Str_Travar_Teclado ) );


Daruma_TEF_ImprimirRespostaCartao(Índice 1905)

Método: Daruma_TEF_ImprimirRespostaCartao [Índice 1905]
Previous Top Next

· Definição do Método:
Um dos Grandes problema Hoje das empresas de software na Homologação do TEF é a impressão da Reposta no ECF.
Abrir o Arquivo, Buscar o Campo a ser impresso, Controlar a impressao, etc.. tudo isso é realizado por esta Método.
Passe apenas o PATH onde este arquivo se encontra e esta Método imprime pra você o Arquivo e irá devolver se a impressão foi com sucesso ou não, caso não tenha tido sucesso você deverá proceder os passos do TEF de perguntar se deseja continuar a impressão ou não e assim por diante.

· Parâmetros do Método: (4 Parâmetros)
1. Arquivo: String com o Caminho completo + nome do arquivo que você deseja imprimir: "C:\TEF_DIAL\RESP\INTPOS.001"
2. Forma: A Forma Pagamento que você deseja Abrir o Comprovante não fiscal Vinculado, caso você deseje imprimir o Arquivo no Relatório Gerêncial, passe este parâmetro com apenas um ESPAÇO EM BRANCO. E o Arquivo será impresso em um relatório Gerencial.
3. Travar Teclado: String com "0" ou "1" para travar o teclado durante a Impressão do Arquivo. "0" - Não Trava, "1" - Trava.
4. ValorForma: String como valor da forma de pagamento.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Fluxograma básico de uso desta Método:
1) Retorno = Daruma_TEF_ImprimirResposta("C:\TEF_DIAL\INTPOS.001","Dinheiro","1")
2)Retorno é Igual a 1(um)?
3)Se Sim, chamar a Método para encerrar a impressao
(Daruma_FI_FechaComprovanteNaoFiscalVinculado ou Daruma_FI_FechaRelatorioGerencial)
4)Se Não, Colocar MSGBOX na Tela "Impressora Nao Responde, deseja Continuar?
Sim ou não?"
5)Se Sim, Voltar para o passo 1, só que não passando o parâmetro
da Forma de Pagamento, passe um espaco em branco. (Daruma_TEF_ImprimirResposta("C:\TEF_DIAL\INTPOS.001"," ","1") isso fará com que a Método abre o Relatorio Gerencial e volte a imprimir tudo no Relatório Gerencial.
6)Se não, chamar a Método para encerrar a impressao
(Daruma_FI_FechaComprovanteNaoFiscalVinculado ou Daruma_FI_FechaRelatorioGerencial)

· Exemplo:

- Impressão do Arquivo INTPOS.001 no Comprovante Não Fiscal Vinculado.

· Observações:
- Aplica-se este método quando se tratar de uma venda com mais de um cartão.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Path_Arquivo_Resp_TEF As String
Dim Str_Forma_de_Pagamento As String
Dim Str_Travar_Teclado As String
Dim Str_Valor_da_Forma_Pagamento As String

Int_Retorno = Daruma_FI_VendeItem("7000", "Chinelo", "NN", "I", "1", "2", "2,50", "%", "0,00")
Int_Retorno = Daruma_FI_IniciaFechamentoCupom("A", "%", "0,00")
Int_Retorno = Daruma_FI_EfetuaFormaPagamento("Dinheiro", "1,50")
Int_Retorno = Daruma_FI_EfetuaFormaPagamento("Dinheiro", "1,00")
Int_Retorno = Daruma_FI_TerminaFechamentoCupom("Obrigado, volte sempre!")

If Int_Retorno <> 1 Then
MsgBox "Erro na venda do item!", vbCritical, "Daruma Framework"
Else
Str_Path_Arquivo_Resp_TEF = "C:\TEF_Dial\Resp\Intpos.001"
Str_Forma_de_Pagamento = "Dinheiro"
Str_Travar_Teclado = "1"
Str_Valor_da_Forma_Pagamento = "1,00"

Int_Retorno = Daruma_TEF_ImprimirRespostaCartao(Str_Path_Arquivo_Resp_TEF, Str_Forma_de_Pagamento, _
Str_Travar_Teclado, Str_Valor_da_Forma_Pagamento)
Int_Retorno = Daruma_TEF_FechaRelatorio()
If Int_Retorno = 1 Then
Int_Retorno = Daruma_TEF_ImprimirRespostaCartao("C:\TEF_Dial\Resp\Intpos.001", "Dinheiro", "1", "1,50")
Int_Retorno = Daruma_TEF_FechaRelatorio()
End If
End If

· Exemplo em Delphi 7.0:
var
Str_Path_Arquivo_Resp_TEF: String;
Str_Forma_de_Pagamento: String;
Str_Travar_Teclado: String;
Str_Valor_da_Forma_Pagamento: String;
begin
Str_Path_Arquivo_Resp_TEF := Trim(Path_Arquivo_Resp_TEF.Text);
Str_Forma_de_Pagamento := Trim(Forma_de_Pagamento.Text);
Str_Travar_Teclado := Trim(Travar_Teclado.Text);
Str_Valor_da_Forma_Pagamento := Trim(Valor_da_Forma_Pagamento.Text);
Int_Retorno := Daruma_FI_VendeItem(pchar('0650'), pchar('Sapato'), pchar('NN'), 'I', '1', 2, pchar('2,50'), '%', pchar('0,00'));
Int_Retorno := Daruma_FI_IniciaFechamentoCupom('A', '%', pchar('0,00'));
Int_Retorno := Daruma_FI_EfetuaFormaPagamento(pchar('Dinheiro'), pchar('1,50'));
Int_Retorno := Daruma_FI_EfetuaFormaPagamento(pchar('Dinheiro'), pchar('1,00'));
Int_Retorno := Daruma_FI_TerminaFechamentoCupom(pchar('Obrigado, volte sempre!'));

if Int_Retorno <> 1 Then
begin
Application.MessageBox('Erro na venda do item !!!', 'Daruma Framework', mb_ok + 16);
end
else
begin
Int_Retorno := Daruma_TEF_ImprimirRespostaCartao(pchar( Str_Path_Arquivo_Resp_TEF ), pchar( Str_Forma_de_Pagamento ), pchar( Str_Travar_Teclado ), pchar( Str_Valor_da_Forma_Pagamento) );
Int_Retorno := Daruma_TEF_FechaRelatorio();
end;

if Int_Retorno = 1 Then
begin
Int_Retorno := Daruma_TEF_ImprimirRespostaCartao(pchar('C:\TEF_Dial\Resp\Intpos.001'), pchar('1,50'), '1', pchar('Dinheiro'));
Int_Retorno := Daruma_TEF_FechaRelatorio();


Daruma_TEF_EsperarArquivo(Índice 1900)

Método: Daruma_TEF_EsperarArquivo [Índice 1900]
Previous Top Next

· Definição do Método:
Faz com que a dll espere um Arquivo (que você passa como Parâmetro) por "X" segundos (que você também passa como parâmetro) e devolve se o Arquivo foi encontrado dentro do tempo especificado, caso contrario devolve TIME-OUT.

Este Método é de extrema utilidade para o TEF - Transferência Eletronica de Fundos - onde o aplicativo necessita esperar aquivos de resposta do Gerenciador Padrão, passe apenas o PATH com o nome do Arquivo e o tempo que você deseja que a dll espere o arquivo e pronto, deixe que a dll faça o "contador de tempo" para você, você ainda pode escolher se enquanto a dll aguarda a criação do Arquivo o Teclado deve ser Bloqueado ou não.

· Parâmetros do Método: (3 Parâmetros)
1. Arquivo: String com o Caminho completo + nome do arquivo que você deseja esperar, EX: "C:\TEF_DIAL\RESP\INTPOS.001"
2. Tempo: String com o tempo qeu você deseja que a dll fique esperando o arquivo chegar, este tempo deve ser passado em Segundos, exemplo de espera de 45 Segundos, EX: "45".
3. TravarTeclado = String com "0" ou "1" para travar o teclado enquanto espera a chegada do arquivo. "0" - Não Trava, "1" - Trava.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Exemplo:

- Esperar a chegada do arquivo INTPOS.001 pelos segundos que você espacificar, sem travar o teclado.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Path_Arquivo_Resp_TEF As String
Dim Str_Tempo_Espera As String

Str_Path_Arquivo_Resp_TEF = "C:\TEF_Dial\Resp\Intpos.001"
Str_Tempo_Espera = Tx_Tempo_de_Espera

Int_Retorno = Daruma_TEF_EsperarArquivo(Str_Path_Arquivo_Resp_TEF, Str_Tempo_Espera, "0")
If Int_Retorno = 1 Then
MsgBox "O Arquivo de Resposta foi localizado com sucesso no seguinte path:" + TX_Path_Nome_Arquivo, vbExclamation, "Daruma Framework"
Else
MsgBox "Estourou o tempo de:" + Tx_Tempo_de_Espera + " segundos e o arquivo de resposta nao pode ser localizado no seguinte path: " + Str_Path_Resp_TEF, vbCritical, "Daruma Framework"
End If

· Exemplo em Delphi 7.0:
var
Str_Path_Resp_TEF: String;
Str_Tempo_Espera: String;
begin
Str_Path_Resp_TEF := Trim(Path_Resp_TEF.Text);
Str_Tempo_Espera := Trim(Tempo_Espera.Text);

Int_Retorno := Daruma_TEF_EsperarArquivo( pchar( Str_Path_Resp_TEF ), pchar( Str_Tempo_Espera ), pchar(' 0') );
if Int_Retorno = 1 Then
begin
Application.MessageBox('O Arquivo de Resposta foi localizado com sucesso !!!', 'Daruma Framework', mb_ok + 32);
end
else
begin
Application.MessageBox('O Arquivo de Resposta não foi localizdo, Tempo esgotado !!!', 'Daruma Framework', mb_ok + 16);
end;


Daruma_TEF_TravarTeclado(Índice 1903)

Método: Daruma_TEF_TravarTeclado [Índice 1903]
Previous Top Next

· Definição do Método:
Trava ou Destrava o Teclado para entrada de dados, não bufferiza e não deixa resíduos no Buffer. Trava totalmente a entrada de dados via teclado deixando o Buffer Zerado.

· Parâmetros do Método: (1 Parâmetro)
String com 0(Zero) ou 1(um) , 0(Destrava) 1(Trava)

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Travar As String

Int_Retorno = Daruma_FI_VerificaImpressoraLigada()

MsgBox "Seu Teclado Ficara Travado por 5 segundos Pressione Enter para começar!", vbCritical, "Daruma Framework"
Int_Retorno = Daruma_TEF_TravarTeclado("1")
Sleep (5000)
Int_Retorno = Daruma_TEF_TravarTeclado("0")
MsgBox "Seu Teclado foi Destravado", vbEsclamation, "Daruma Framework"

· Exemplo em Delphi 7.0:
begin

Int_Retorno := Daruma_FI_VerificaImpressoraLigada();

Application.MessageBox('Seu Teclado Ficara Travado por 5 segundos Pressione Enter para começar!!!', 'Daruma Framework', mb_ok + 32);

Int_Retorno := Daruma_TEF_TravarTeclado('1');
Sleep (5000);
Int_Retorno := Daruma_TEF_TravarTeclado('0');
Application.MessageBox('Seu Teclado foi Destravado!!!', 'Daruma Framework', mb_ok + 32);


Daruma_TEF_Tratando_os_Erros (Índice 1900)

Dicas: Daruma_TEF_Tratando os erros

· Dicas de tratamentos de Impressão:

· Como fazer nos seguintes casos?
1 - Acaba a Energia.
2 - Acaba Bobina de Papel.
3 - O ECF sinaliza Pouco Papel.
4 - A impressora fica Off-Line.

· Veja o Fluxo abaixo para, onde são previstos todos estes pontos.

Exemplo em Vb6:
Dim Int_Sts_Func As Integer
Dim Int_Impressao_TEF As Integer
Dim Int_Numero_Vias As Integer
Dim Str_Sts_CF As String
Dim Str_Sts_CNFV As String
Dim Str_Sts_Gerencial As String
Dim Str_Confirma As String
Dim Int_Sts_CF As Integer
Dim Int_Sts_CNFV As Integer
Dim Int_Sts_Gerencial As Integer
Dim Int_Flag_Vinculado As Integer
Dim Int_Ack_Retorno
Dim Int_Sts1 As Integer
Dim Int_Sts2 As Integer
Dim Int_Contador As Integer

Int_Sts_Func = 0
Str_Sts_CNFV = Space(2)
Str_Sts_Gerencial = Space(2)

Int_Sts_Func = Daruma_Registry_StatusFuncao("0")
Int_Sts_Func = Daruma_FI_VerificaImpressoraLigada
If Int_Sts_Func = 1 Then 'Analisa-se e st1 e caso seja >=16 entao a impressora esta off-line
Int_Sts_Func = Daruma_FI_VerificaEstadoImpressora(Int_Ack_Retorno, Int_Sts1, Int_Sts2)
Int_Contador = 128
'Aqui Verifica se o Bit 16 esta ligado, se estiver ligado e porque esta off line a impressora
'se ele estiver ligado ele sai com 16 na Variável ST1
Do While (Int_Sts1 > 16 And Int_Sts1 <> 0)
If Int_Sts1 >= Int_Contador Then
Int_Sts1 = Int_Sts1 - Int_Contador
Else
Int_Contador = Int_Contador - Int_Sts1
End If
Loop
If Int_Sts1 >= 16 Then
Int_Sts_Func = 0 'Aqui eu zero a Variável para que caia no loop de impressora desligada
End If
End If
If Int_Sts_Func <> 1 Then
MsgBox "Impressora Desligada ligue para comecar os testes!", vbCritical, "Daruma Framework"
Exit Sub
End If

'Aqui fazemos uma venda para que o nosso arquivos de resposta possa ser impresso
Int_Sts_Func = Daruma_FI_VendeItem("500", "Caderno", "FF", "I", "1", "2", "1,00", "$", "0,00")
Int_Sts_Func = Daruma_FI_IniciaFechamentoCupom("A", "$", "0,00")
Int_Sts_Func = Daruma_FI_EfetuaFormaPagamento("Dinheiro", "1,00")
Int_Sts_Func = Daruma_FI_TerminaFechamentoCupom("Obrigado, volte sempre!")
Int_Sts_Func = Daruma_TEF_EsperarArquivo("C:\TEF_Dial\Resp\Intpos.001", "5", "0")
If Int_Sts_Func <> 1 Then
MsgBox "Arquivo com a Resposta de TEF Não Encontrado!", vbCritical, "Daruma Framework"
Exit Sub
End If
Int_Sts_Func = Daruma_Registry_StatusFuncao("1")
Int_Impressao_TEF = 0
Int_Numero_Vias = 2
Do While (Int_Numero_Vias <> 0) 'Inicio do loop que controla o numero do vias

Int_Sts_CF = 0
Str_Sts_CF = Space(3)

Int_Sts_Func = Daruma_FI_StatusCupomFiscal(Str_Sts_CF)
Int_Sts_CF = CInt(Str_Sts_CF) 'Converto a Variável String em integer evitando assim sujeira
Do While (Int_Sts_CF = 1) 'Enquanto o cupom estiver aberto permaneco em loop
'Int_Sts_Func = Daruma_Registry_StatusFuncao("0")
Int_Sts_Func = Daruma_FI_IniciaFechamentoCupom("A", "$", "0,00")
Int_Sts_Func = Daruma_FI_EfetuaFormaPagamento("Dinheiro", "1,00")
Int_Sts_Func = Daruma_FI_TerminaFechamentoCupom("Obrigado, volte sempre!")
Int_Sts_Func = Daruma_FI_VerificaImpressoraLigada
'Int_Sts_Func = Daruma_Registry_StatusFuncao("1")
If Int_Sts_Func = 1 Then 'Analisa-se e st1 e caso seja >=16 entao a impressora esta off-line
Int_Sts_Func = Daruma_FI_VerificaEstadoImpressora(Int_Ack_Retorno, Int_Sts1, Int_Sts2)
End If
If Int_St1 >= 16 Then
Int_Sts_Func = 0 'Aqui eu zero a Variável para que caia no loop de impressora desligada
End If
Do While (Int_Sts_Func <> 1) 'Enquanto a impressora estiver desligada permaneço em loop
Str_ConfirmInt_Retorno = 0
Str_ConfirmInt_Retorno = MsgBox("Impressora Desligada! Verifique e clique em Sim para reimpressão no Gerencial" _
+ Chr(13) + Chr(10) + "ou Não para cancelar.", vbCritical + vbQuestion + vbYesNo, "Daruma Framework")
If Str_ConfirmInt_Retorno = vbYes Then 'Verificando se o usuário deseja continuar ou não
Int_Sts_Func = Daruma_Registry_StatusFuncao("0")
Int_Sts_Func = Daruma_FI_VerificaImpressoraLigada
Int_Sts_Func = Daruma_Registry_StatusFuncao("1")
Else
Exit Sub 'Método abortada!!!
End If
Loop 'Final do Do While Enquanto a impressora estiver desligada permaneço em loop
Loop 'Final do Do While Enquanto o cupom estiver aberto permaneco em loop

Int_Impressao_TEF = Int_Sts_CNFV = Int_Sts_Gerencial = 0

Do While (Int_Impressao_TEF <> 1) 'Controle de Impressão da resposta de TEF
Int_Sts_Func = Daruma_Registry_StatusFuncao("0")
Int_Sts_Func = Daruma_FI_VerificaImpressoraLigada
If Int_Sts_Func = 1 Then 'Analisa-se e st1 e caso seja >=16 entao a impressora esta off-line
Int_Sts_Func = Daruma_FI_VerificaEstadoImpressora(Int_Ack_Retorno, Int_Sts1, Int_Sts2)

Int_Contador = 128
'Aqui Verifica se o Bit 16 esta ligado, se estiver ligado e porque esta off line a impressora
'se ele estiver ligado ele sai com 16 na Variável ST1
Do While (Int_Sts1 > 16 And Int_Sts1 <> 0)
If Int_Sts1 >= Int_Contador Then
Int_Sts1 = Int_Sts1 - Int_Contador
Else
Int_Contador = Int_Contador - Int_Sts1
End If
Loop
If (Int_Sts1 <> 16) Then
Int_Sts_Func = 0 'Aqui eu zero a Variável para que caia no loop de impressora desligada
Int_Sts_Func = Daruma_FI_StatusComprovanteNaoFiscalVinculado(Str_Sts_CNFV)
Int_Sts_CNFV = CInt(Str_Sts_CNFV) 'Converto a Variável String em integer evitando assim sujeira
Int_Sts_Func = Daruma_FI_StatusRelatorioGerencial(Str_Sts_Gerencial)
Int_Sts_Gerencial = CInt(Str_Sts_Gerencial) 'Converto a Variável String em integer evitando assim sujeira
Int_Sts_Func = Daruma_Registry_StatusFuncao("0")
If ((Int_Sts_CNFV = 0 And Int_Sts_Gerencial = 0) Or Int_Flag_Vinculado = 0) Then 'Checando o Status do CNFV e Relatorio Gerencial
Int_Impressao_TEF = Daruma_TEF_ImprimirResposta("C:\TEF_Dial\Resp\Intpos.001", "Dinheiro", "1")
If Int_Impressao_TEF = 1 Then
Int_Flag_Vinculado = 0
Else
Int_Flag_Vinculado = 1
End If
Else
Int_Impressao_TEF = Daruma_TEF_ImprimirResposta("C:\TEF_Dial\Resp\Intpos.001", " ", "1")
End If
End If
Int_Sts_Func = Daruma_Registry_StatusFuncao("1")
If (Int_Impressao_TEF <> 1) Then 'Controle de Interrupção na Impressão
Str_ConfirmInt_Retorno = MsgBox("Impressora Desligada! Verifique e clique em Sim para reimpressão no Gerencial" _
+ Chr(13) + Chr(10) + "ou Não para cancelar.", vbCritical + vbQuestion + vbYesNo, "Daruma Framework")
If Str_ConfirmInt_Retorno = vbNo Then
Int_Impressao_TEF = 1
Int_Numero_Vias = 0
Else
' Int_Numero_Vias = Int_Numero_Vias - 1
End If
Else
Int_Numero_Vias = Int_Numero_Vias - 1
End If
Else

Str_ConfirmInt_Retorno = MsgBox("Impressora Desligada! Verifique e clique em Sim para reimpressão no Gerencial" _
+ Chr(13) + Chr(10) + "ou Não para cancelar.", vbCritical + vbQuestion + vbYesNo, "Daruma Framework")
If Str_ConfirmInt_Retorno = vbNo Then
Int_Impressao_TEF = 1
Int_Numero_Vias = 0
Else
Int_Impressao_TEF = 0
End If
End If
Loop 'Final do Do While Controle de Impressão da resposta de TEF
Loop 'Final do Do While (Int_Numero_Vias <> 0) 'Inicio do loop que controla o numero do vias

If (Daruma_FI_VerificaImpressoraLigada) <> 1 Then
Exit Sub
End If

Int_Sts_Func = Daruma_FI_StatusComprovanteNaoFiscalVinculado(Str_Sts_CNFV)
Int_Sts_CNFV = CInt(Str_Sts_CNFV) 'Converto a Variável String em integer evitando assim sujeira
Int_Sts_Func = Daruma_FI_StatusRelatorioGerencial(Str_Sts_Gerencial)
Int_Sts_Gerencial = CInt(Str_Sts_Gerencial) 'Converto a Variável String em integer evitando assim sujeira
If (Int_Sts_CNFV = 1 Or Int_Sts_Gerencial = 1) Then 'Checando o Status do CNFV e Relatorio Gerencial
Int_Sts_Func = Daruma_TEF_FechaRelatorio() 'Fim da Rotina de TEF
MsgBox "Impressão de TEF concluída", vbInformation, "Daruma Framework"
Exit Sub
Else
MsgBox "A impressão foi Imterrompida", vbCritical, "Daruma Framework"
Exit Sub
End If

· Exemplo em Delphi 7.0:
var
Int_Sts_Func: Integer;
Int_Impressao_TEF: Integer;
Int_Numero_Vias: Integer;
Str_Sts_CF: String;
Str_Sts_CNFV: String;
Str_Sts_Gerencial: String;//Obs: no VB está como String; Str_Confirma: String;
Int_Confirma: Integer;
Int_Sts_CF: Integer;
Int_Sts_CNFV: Integer;
Int_Sts_Gerencial: Integer;
Int_Flag_Vinculado: Integer;
Int_Ack_Retorno: Integer;//Obs: no VB está = Dim Int_Ack_Retorno
Int_Sts1: Integer;
Int_Sts2: Integer;
Int_Contador: Integer;
begin
Int_Flag_Vinculado:=(0);
Int_Contador:=(0);
Int_Sts_Func:= (0);
SetLength (Str_Sts_CNFV,2);
SetLength (Str_Sts_Gerencial,2);
Int_Sts_Func:= Daruma_Registry_StatusFuncao('0');
Int_Sts_Func:= (Daruma_FI_VerificaImpressoraLigada);
//IF 01
If Int_Sts_Func = 1 Then //Analisa-se e st1 e caso seja >=16 entao a impressora esta off-line
Begin
Int_Sts_Func:= Daruma_FI_VerificaEstadoImpressora(Int_Ack_Retorno, Int_Sts1, Int_Sts2);
Int_Contador:= (128);
//Aqui Verifica se o Bit 16 esta ligado, se estiver ligado e porque esta off line a impressora
//se ele estiver ligado ele sai com 16 na variavel ST1
//While_01
While ((Int_Sts1 > 16) And (Int_Sts1 <> 0)) Do
begin
//IF 02
If ((Int_Sts1) >= (Int_Contador)) Then
begin
Int_Sts1:= (Int_Sts1 - Int_Contador);
end
Else
Begin
Int_Contador:= (Int_Contador - Int_Sts1);
End; //IF 02
end;//While_01
//IF 03
If Int_Sts1 >= 16 Then
begin
Int_Sts_Func:= (0); //Aqui eu zero a variavel para que caia no loop de impressora desligada
End; //IF 03
end;//IF 01
//IF 04
If Int_Sts_Func <> 1 Then
Begin
Application.MessageBox('Impressora Desligada ligue para comecar os testes!', 'Daruma Framework', mb_ok + 16);
Exit;
end; //IF 04
//Aqui fazemos uma venda para que o nosso arquivos de resposta possa ser impresso
Int_Sts_Func:= Daruma_FI_VendeItem (pchar('500'), pchar('Caderno'), pchar('FF'), 'I', '1', 2, pchar('1,00'), '$', pchar('0,00'));
Int_Sts_Func:= Daruma_FI_FechaCupomResumido(pchar('Dinheiro'), pchar('Tks!!'));
//IF 05
If Int_Sts_Func <> 1 Then
begin
Application.MessageBox('O Cupom Fiscal Esta Aberto Verifique!', 'Daruma Framework', mb_ok + 16);
Exit;
End;//IF 05
Int_Sts_Func:= Daruma_Registry_StatusFuncao('1');
Int_Impressao_TEF:= (0);
Int_Numero_Vias:= (2);
//While_02
While (Int_Numero_Vias <> 0) do //Inicio do loop que controla o numero do vias
begin
Int_Sts_CF:= 0;
SetLength (Str_Sts_CF,3);
Int_Sts_Func:= Daruma_FI_StatusCupomFiscal(Str_Sts_CF);
Int_Sts_CF:= StrToInt(Str_Sts_CF); //Converto a variavel string em integer evitando assim sujeira
//While_03
While (Int_Sts_CF = 1) do //Enquanto o cupom estiver aberto permaneco em loop
begin
Int_Sts_Func:= Daruma_FI_IniciaFechamentoCupom('A', '$', pchar('0,00'));
Int_Sts_Func:= Daruma_FI_EfetuaFormaPagamento(pchar('Dinheiro'), pchar('1,00'));
Int_Sts_Func:= Daruma_FI_TerminaFechamentoCupom(pchar('Obrigado, volte sempre!'));
//IF 06
If Int_Sts_Func = 1 Then //Analisa-se e st1 e caso seja >=16 entao a impressora esta off-line
begin
Int_Sts_Func:= Daruma_FI_VerificaEstadoImpressora(Int_Ack_Retorno, Int_Sts1, Int_Sts2);
End;//IF 06
//IF 07
If Int_Sts1 >= 16 Then
begin
Int_Sts_Func:= (0); //Aqui eu zero a variavel para que caia no loop de impressora desligada
End; //IF 07
//While_04
While ((Int_Sts_Func) <> (1)) do //Enquanto a impressora estiver desligada permaneco em loop
begin
Int_Confirma:= (0);
Int_Confirma:= Application.MessageBox ('Impressora Desligada! Verifique e clique em Sim para reimpressao no Gerencial' , 'Daruma Framework',mb_YesNo+mb_DefButton2+mb_IconQuestion);
//IF 08
If (Int_Confirma = 6) Then //Verificando se o usuario deseja continuar ou nao
//Int_Confirma = 6(Sim), = 7(Não), é o valor de retorno do Application.MessageBox
Begin
Int_Sts_Func:= Daruma_Registry_StatusFuncao('0');
Int_Sts_Func:= Daruma_FI_VerificaImpressoraLigada;
Int_Sts_Func:= Daruma_Registry_StatusFuncao('1');
end
Else
begin
Exit; //Funcao abortada!!
end;//if 08
end;//While_04 //Loop Final do Do While Enquanto a impressora estiver desligada permaneco em loop
end;//While_3 //Loop Final do Do While Enquanto o cupom estiver aberto permaneco em loop
Int_Impressao_TEF:= (0);
Int_Sts_CNFV:= (0); //No VB era = Int_Impressao_TEF = Int_Sts_CNFV = Int_Sts_Gerencial = 0
Int_Sts_Gerencial:= (0);
//While_05
While (Int_Impressao_TEF <> 1) do //Controle de Impressao da resposta de TEF
begin
Int_Sts_Func:= Daruma_Registry_StatusFuncao('0');
Int_Sts_Func:= Daruma_FI_VerificaImpressoraLigada;
//IF 09
If Int_Sts_Func = 1 Then //Analisa-se e st1 e caso seja >=16 entao a impressora esta off-line
begin
Int_Sts_Func:= Daruma_FI_VerificaEstadoImpressora(Int_Ack_Retorno, Int_Sts1, Int_Sts2);
Int_Contador:= (128);
//Aqui Verifica se o Bit 16 esta ligado, se estiver ligado e porque esta off line a impressora
//se ele estiver ligado ele sai com 16 na variavel ST1
//While_06
While ((Int_Sts1 > 16) And (Int_Sts1 <> 0)) do
begin
//IF 10
If Int_Sts1 >= Int_Contador Then
begin
Int_Sts1:= ((Int_Sts1) - (Int_Contador));
end
Else
begin
Int_Contador:= ((Int_Contador) - (Int_Sts1));
end;//IF 10
end;//While_06 //Loop
//IF 11
If (Int_Sts1 <> 16) Then
begin
Int_Sts_Func:= (0); //Aqui eu zero a variavel para que caia no loop de impressora desligada
Int_Sts_Func:= Daruma_FI_StatusComprovanteNaoFiscalVinculado(pchar(Str_Sts_CNFV));
Int_Sts_CNFV:= Int_Sts_Func; //Converto a variavel string em integer evitando assim sujeira
Int_Sts_Func:= Daruma_FI_StatusRelatorioGerencial(Str_Sts_Gerencial);
Int_Sts_Gerencial:= StrToInt(Str_Sts_Gerencial); //Converto a variavel string em integer evitando assim sujeira
Int_Sts_Func:= Daruma_Registry_StatusFuncao('0');
//IF 12
If ((Int_Sts_CNFV = (0)) And (Int_Sts_Gerencial = (0)) Or (Int_Flag_Vinculado = (0))) Then //Checando o Status do CNFV e Relatorio Gerencial
begin
Int_Impressao_TEF:= Daruma_TEF_ImprimirResposta('C:\TEF_Dial\Resp\Intpos.001', 'Dinheiro', '1');
//IF 13
If Int_Impressao_TEF = 1 Then
begin
Int_Flag_Vinculado:= (0);
end
Else
begin
Int_Flag_Vinculado:= (1);
End; //IF 13
end
Else
begin
Int_Impressao_TEF:= Daruma_TEF_ImprimirResposta('C:\TEF_Dial\Resp\Intpos.001', ' ', '1');
End; //IF 12
end; // IF 11
Int_Sts_Func:= Daruma_Registry_StatusFuncao('1');
//IF 14
If (Int_Impressao_TEF <> 1) Then //Controle de Interrupcao na Impressao
begin
Int_Confirma:= Application.MessageBox ('Impressora Desligada! Verifique e clique em Sim para reimpressao no Gerencial' , 'Daruma Framework',mb_YesNo+mb_DefButton2+mb_IconQuestion);
//IF 15
If (Int_Confirma = 7) Then
begin
Int_Impressao_TEF:= (1);
Int_Numero_Vias:= (0);
Application.MessageBox('A impressao foi Interrompida', 'Daruma Framework', mb_ok + 16);
Exit;
end;//IF 15
end
Else //IF 14
begin
Int_Numero_Vias:= ((Int_Numero_Vias) - (1));
end; //IF 14
end
Else//IF 09
begin
Int_Confirma:= Application.MessageBox ('Impressora Desligada! Verifique e clique em Sim para reimpressao no Gerencial ou Nao para cancelar.' , 'Daruma Framework',mb_YesNo+mb_DefButton2+mb_IconQuestion);
//IF 16
If (Int_Confirma = 7) Then //Int_Confirma = 6(Sim), = 7(Não), é o valor de retorno do Application.MessageBox
begin
Int_Impressao_TEF:= (1);
Int_Numero_Vias:= (0);
end
Else
begin
Int_Impressao_TEF:= (0);
End;//IF 16
end;//IF 09
end; //While 5 //Loop 'Final do Do While Controle de Impressao da resposta de TEF
end; //While 02 //Loop 'Final do Do While (Int_Numero_Vias <> 0) 'Inicio do loop que controla o numero do vias
//IF 17
If ((Daruma_FI_VerificaImpressoraLigada) <> (1)) Then
begin
Exit;
end; //IF 17
Int_Sts_Func:= Daruma_FI_StatusComprovanteNaoFiscalVinculado(pchar(Str_Sts_CNFV));
Int_Sts_CNFV:= Int_Sts_Func; //Converto a variavel string em integer evitando assim sujeira
Int_Sts_Func:= Daruma_FI_StatusRelatorioGerencial(pchar(Str_Sts_Gerencial));
Int_Sts_Gerencial:= StrToInt(Str_Sts_Gerencial); //Converto a variavel string em integer evitando assim sujeira
//IF 18
If (((Int_Sts_CNFV) = (1)) Or ((Int_Sts_Gerencial) = (1))) Then //Checando o Status do CNFV e Relatorio Gerencial
begin
Int_Sts_Func:= Daruma_TEF_FechaRelatorio(); //Fim da Rotina de TEF
Application.MessageBox('Impressao de TEF concluida', 'Daruma Framework', mb_ok + 32);
Exit;
end
Else
begin
Application.MessageBox('A impressao foi Interrompida', 'Daruma Framework', mb_ok + 16);
Exit;
End;//IF 18
end;


Informações sobre Sintegra

Informações sobre o Sintegra

ALGUMAS INFORMAÇÕES IMPORTANTES

· O QUE É O SINTEGRA ?

Sistema Integrado de Informações sobre Operações Interestaduais com Mercadorias e Serviços – É um conjunto de procedimentos administrativos e de sistemas computacionais de apoio, que está implantado em todo o país, com a finalidade de facilitar o fornecimento de informações dos contribuintes aos fiscos estaduais e de aprimorar o fluxo de dados nas Administrações Tributárias e entre as mesmas.

· Observações:

- Sintegra deve ser realizado imediatamente após a Redução Z.
- As informações são armazenadas pela DLL, registrando os registro no REGISTRY do Windows, sendo assim caso o usuário realize alguma manutenção em sua máquina antes de gerar o SINTEGRA pode ocasionar perda de comunicação (Retorno -1).

· DE ONDE SÃO EXTRAÍDAS AS INFORMÇÕES QUE FORMAM O SINTEGRA ?

São extraídas de duas fontes de dados o ECF (MFD) a outra são as Notas Fiscais de Entrada.

· Neste manual, você encontra somente os Métodos que extraem as informações do ECF (Sómente Impressora MFD)

· QUAIS OS RELATÓRIOS QUE SÃO GERADOS À PARTIR DO ECF (MFD)?

· Serão gerados os seguintes relatórios:
- Tipo 10.
- Tipo 11.
- Todos os Tipos 60 (quando existir vendas).
- Tipo 90 Sempre.

· PREMISSAS PARA QUE SEJA GERADO CORRETAMENTE O SINTEGRA

1. O mês tem de estar fechado. Ou seja, a Redução Z do último dia fiscal do mês deverá ter sido emitida. Exemplo: se o último dia fiscal foi 27, mas você vai gerar o Sintegra somente no dia 01 do mês seguinte e a Redução Z do movimento do dia 27 esta pendente, então terá que emiti-la primeiro e após isso gerar o Sintegra.

Linha do Tempo
2. A data final paera gerar o Sintegra deverá ser a última data que teve movimento.

3. O arquivo que será gerado, pelos métodos, será gravado no path configurado no flag Path no registry: HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF. Para alterar o path, use o método: Daruma_Registry_Path(Índice 2)

· Porém o objetivo maior deste help não é falar sobre o Sintegra em sim, mais expor alguns métodos que irão facilitar você na geração do mesmo.

· O que de fato você encontrará disponível para trabalhar neste help?

Você encontrará um método de alto nível. Chamamos de alto nível, pois em um único método, foram reúnidos todos os registros, que podem ser gerados através do ECF.

Temos também as mesmas informações em métodos avulsos de médio nível, ou seja, por exemplo, o Relatório que contém o clichê do estabelecimento Tipo 10, pode ser obtido através do método Daruma_Sintegra_GerarResgitro10:Daruma_Sintegra_GerarRegistro10 (Índice 6023).

Além de termos os métodos de médio nível, temos também outros 2(dois) métodos de baixo nível, que permitirão a você extrair qualquer informação do ECF, bastando para isso informar um índice, e ésta informação poderá ser obtida em uma variável, ou em arquivo txt.

Abaixo temos um exemplo de uma informação extraída atráves do método Daruma_FIMFD_RetornornarInfoDownloadMFD: Daruma_FIMFD_RetornarInfoDownloadMFD(Índice 6020).

Índice: "ECFHW" – ECF HardWare

Descricao Tamanho
------------------------ -------
Modelo da impressora 6
NOS (Numero do ECF) 6
Versao do SB 6
Numero de serie da MFDE 21
Numero de serie da MF 21


Daruma_Sintegra_GerarRegistrosArq (Índice 6022)

Método: Daruma_Sintegra_GerarRegistrosArq (Índice 6022)
Previous Top Next

· Definição do Método:
Este é um método de alto nível, que aloja em um único arquivo, todos os registros gerados pelo ECF, se preferir usar métodos que contém, informações de forma avulsa, favor utilizar os métodos de médio nível ou até mesmo o método de baixo nível, que você encontra aqui mesmo neste help.

Gera o arquivo Sintegra.txt no path configurado no flag Path no registry: HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\SINTEGRA. Para alterar o path, use o método: Daruma_Registry_SintegraPath(Índice 71).

Abaixo temos um exemplo do arquivo que é gerado, note que primeiramente temos o Tipo 10 (clichê), na segunda linha temos o Tipo 11 (endereço), após temos os relatórios Tipo 60, conforme o movimento que teve o PDV e na última posição, temos o Tipo 90.

10076947150001309035904830 Suporte ao Desenvolvedor Curitiba 00000000002006120120061231331
11Av. Comendador Franco 01341Bloco B Jardim Botânico00080215João 000000000000
60M20061201DR0205BR0000000687570012D00105900106500005201800000000000003270000000000778436
60A20061201DR0205BR0000000687571800000000000027
60D20061201DR0205BR00000006875700001 00000000000010000000000000005000000000000000118000000000000000
60I20061201DR0205BR0000000687572D00105900100001 000000000000100000000050000000000000011800000000000000
60R12200600001 0000000000001000000000000000500000000000000011800
90076947150001309035904830 60000003429900000345 1

Para saber mais sobre o layout dos relatórios, acesse o site oficial do sintegra, www.sintegra.gov.br

· Este arquivo íra conter o seguinte conteúdo:
- Este método é exclusivo para impressora MFD.
- Relatório Tipo10 e 11
- Todos os relatórios do Tipo60
- Relatório Tipo90

· Parâmetros: (14 parâmetros)
1. DataInicio: String com a Data de inicio do download. Esta data é a data do primeiro dia do mês.
2. DataFim: String com a Data de fim do download. Esta data é a última data que teve movimento no mês.
3. Municipio: String com o Município do informante.
4. Fax: String com o número do Fax do estabelecimento do informante.
5. CodIdConvenio: String com o Codigo da identificacao do convenio utilizado.
6. CodIdNatureza: String com o Codigo da identificacao da natureza das operações informadas.
7. CodFinalid: String com o Codigo da finalidade utilizada no arquivo magnético.
8. Logradouro: String com o Logradouro.
9. Numero: String com o Número.
10. Complemento: String com o Complemento.
11. Bairro: String com o Bairro.
12. CEP: String com o Código de Endereçamento Postal.
13. NomeContato: String com o Pessoa responsável para contato.
14. Telefone: String com o Número do telefone para contato.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Observação:
- Se você não sabe qual informação que deve ser colocada no parâmetros: 5, 6 ou 7, acesse o site do Sintegra para saber: www.sintegra.com.br ou ainda www.sintegra.gov.br

· Exemplo em Delphi:
var
Str_Data_Inicio_Movimento: string;
Str_Data_Fim_Movimento: string;
Str_Municipio: string;
Str_Fax: string;
Str_Cod_Convenio: string;
Str_Cod_Natureza: string;
Str_Cod_Finalidade: string;
Str_Logradouro: string;
Str_Numero: string;
Str_Complemento: string;
Str_Bairro: string;
Str_CEP: string;
Str_Nome_Contato: string;
Str_Telefone: string;

begin

Str_Data_Inicio_Movimento:= Trim('011206');
Str_Data_Fim_Movimento:= Trim('040107');
Str_Municipio:= Trim('Curitiba');
Str_Fax:= Trim('(xx41) 3361-6945');
Str_Cod_Convenio:= Trim('3');
Str_Cod_Natureza:= Trim('3');
Str_Cod_Finalidade:= Trim('1');
Str_Logradouro:= Trim(Av. Comendador Franco);
Str_Numero:= Trim('1341');
Str_Complemento:= Trim('Bloco B');
Str_Bairro:= Trim('Jardim Botânico');
Str_CEP:= Trim('80215-090');
Str_Nome_Contato:= Trim('João');
Str_Telefone:= Trim('(0XX41) 3361-6005');

Int_Retorno:= Daruma_Sintegra_GerarRegistrosArq(Str_Data_Inicio_Movimento, Str_Data_Fim_Movimento, Str_Municipio, Str_Fax, Str_Cod_Convenio, Str_Cod_Natureza, Str_Cod_Finalidade, Str_Logradouro, Str_Numero, Str_Complemento, Str_Bairro,Str_CEP, Str_Nome_Contato, Str_Telefone);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_Sintegra_GerarRegistro10 (Índice 6023)

Método: Daruma_Sintegra_GerarRegistro10 (Índice 6023)
Previous Top Next

· Definição do Método:
Executa o download bruto da MFD, no intervalo das datas definidas nos parâmetros. Em seguida devolve um registro do Tipo 10.

· Exemplo de retorno:
10076947150001309035904830 Suporte ao Desenvolvedor Curitiba 00000000002006120120061231313

No Denominação do Campo Tamanho Conteúdo
01 Tipo 02 10
02 CGC/MF CGC/MF do estabelecimento 14 07694715000130
03 Inscrição Estadual 14 9035904830
04 Nome do Contribuinte Nome comercial
(razão Social/denominação) do contribuinte 35 Suporte ao Desenvolvedor
05 Município Município onde está domiciliado o
estabelecimento informante 30 Curitiba
06 Unidade da Federação 2 PR
07 Fax Número do fax 10 4133616945
08 Data Inicial 8 01012007
09 Data Final 8 01022007
10 Código da identificação do Convênio 1
11 Código da identificação da natureza das operações
informadas 1 1
12 Código da finalidade do arquivo magnético
Código da finalidade utilizado no arquivo magnético 1 3

· Parâmetros: (8 parâmetros)
1. DataInicio: String com a Data de inicio do download. Esta data é a data do primeiro dia do mês.
2. DataFim: String com a Data de fim do download. Esta data é a última data que teve movimento no mês.
3. Municipio: String com o Municipio do informante.
4. Fax: String com o número do Fax do estabelecimento do informante.
5. CodIdConvenio: Codigo da identificacao do convenio utilizado.
6. CodIdNatureza: Codigo da identificacao da natureza das operações informadas.
7. CodFinalid: Codigo da finalidade utilizada no arquivo magnetico.
8. Retorno: Variável por referência com 127 espaços para receber o retorno contendo o registro tipo 10.

· Observações:
- Este método é exclusivo para impressora MFD.
- Se você não sabe qual informação que deve ser colocada no parâmetros: 5, 6 ou 7, acesse o site do Sintegra para saber: www.sintegra.gov.br

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Exemplo em Delphi:
var
Str_Data_Inicio_Movimento: string;
Str_Data_Fim_Movimento: string;
Str_Municipio: string;
Str_Fax: string;
Str_Cod_Convenio: string;
Str_Cod_Natureza: string;
Str_Cod_Finalidade: string;
Str_Retorno: String;
begin

Str_Data_Inicio_Movimento:= Trim('011206');
Str_Data_Fim_Movimento:= Trim('040107');
Str_Municipio:= Trim('Curitiba');
Str_Fax:= Trim('(xx41) 3361-6945');
Str_Cod_Convenio:= Trim('3');
Str_Cod_Natureza:= Trim('3');
Str_Cod_Finalidade:= Trim('1');

SetLength(Str_Retorno, 127);

Int_Retorno:=Daruma_Sintegra_GerarRegistro10(Str_Data_Inicio_Movimento, Str_Data_Fim_Movimento, Str_Municipio, Str_Fax, Str_Cod_Convenio, Str_Cod_Finalidade, Str_Cod_Natureza, Str_Retorno);
Retorno_Registro10.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_Sintegra_GerarRegistro11(Índice 6024)

Método: Daruma_Sintegra_GerarRegistro11 (Índice 6024)
Previous Top Next

· Definição do Método:
Executa o 'download' bruto da MFD, no intervalo das datas definidas nos parâmetros. Em seguida devolve um registro do Tipo 11.

· Exemplo de retorno:
11Av. Comendador Franco 01341Bloco B Jardim Botânico00080215João 000000000000

· Parâmetros: (8 parâmetros)
1. Logradouro: String com o Logradouro.
2. Numero: String com o Numero.
3. Complemento: String com o Complemento.
4. Bairro: String com o Bairro.
5. CEP: String com o Codigo de Enderecamento Postal.
6. NomeContato: String com o Pessoa responsavel para contato.
7. Telefone: String com o Numero do telefone para contatos.
8. Retorno: Variável por referência para receber o retorno contendo o registro tipo 11 com 127 espaços.

· Observações:
- Este método é exclusivo para impressora MFD.
- Se preferir, poderá acessar o site: www.sintegra.gov.br.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Exemplo em Delphi:
var
Str_Logradouro: string;
Str_Numero: string;
Str_Complemento: string;
Str_Bairro: string;
Str_CEP: string;
Str_Nome_Contato: string;
Str_Telefone: string;
Str_Retorno: String;
begin
Str_Logradouro:= Trim('Av. Comendador Franco');
Str_Numero:= Trim('1341');
Str_Complemento:= Trim('Bloco B');
Str_Bairro:= Trim('Jardim Botânico');
Str_CEP:= Trim('80215-090');
Str_Numero:= Trim('1341');
Str_Nome_Contato:= Trim('Jõao');
Str_Telefone:= Trim('(XX41) 3361-6005');

SetLength(Str_Retorno, 127);

Int_Retorno:= Daruma_Sintegra_GerarRegistro11(Str_Logradouro, Str_Numero, Str_Complemento, Str_Bairro,Str_CEP, Str_Nome_Contato, Str_Telefone, Str_Retorno);
Retorno_Registro11.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_Sintegra_GerarRegistro60M (Índice 6025)

Método: Daruma_Sintegra_GerarRegistro60M (Índice 6025)
Previous Top Next

· Definição do Método:
Executa o 'download' bruto da MFD, no intervalo das datas definidas nos parâmetros. Em seguida gera um registro do tipo 60M (Mestre).

· Exemplo de retorno:
60M20061201DR0205BR0000000687570012D00105900106500005201800000000000003270000000000778436

· Parâmetros: (3 parâmetros)
1. DataInicio: String com a Data de inicio do download. Esta data é a data do primeiro dia do mês.
2. DataFim: String com a Data de fim do download. Esta data é a última data que teve movimento no mês.
3. Retorno: Variável por referência para receber o retorno contendo o registro tipo 60M.

· Observações:
- Este método é exclusivo para impressora MFD.
- A cada execução desse método, será escrito na variável, o movimento de um dia.
- O método pode ser executado várias vezes em um loop, até que o retorno seja uma string contendo FIM DOS DADOS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Exemplo em Delphi:
var
Str_Data_Inicio_Movimento: string;
Str_Data_Fim_Movimento: string;
Str_Retorno: String;
begin
Str_Data_Inicio_Movimento:= Trim('011206');
Str_Data_Fim_Movimento:= Trim('040107');

SetLength(Str_Retorno, 127);

Int_Retorno:= Daruma_Sintegra_GerarRegistro60M(Str_Data_Inicio_Movimento, Str_Data_Fim_Movimento,Str_Retorno);
Retorno_Registro60M.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();


Daruma_Sintegra_GerarRegistro60A (Índice 6026)

Método: Daruma_Sintegra_GerarRegistro60A (Índice 6026)
Previous Top Next

· Definição do Método:
Executa o 'download' bruto da MFD, no intervalo das datas definidas nos parâmetros. Em seguida gera um registro do tipo 60A (Analítico).

· Exemplo de retorno:
60A20061201DR0205BR0000000687571800000000000027
60A20061201DR0205BR0000000687571200000000000000
60A20061201DR0205BR0000000687570700000000000000
60A20061201DR0205BR000000068757F 000000000300
60A20061201DR0205BR000000068757I 000000000000
60A20061201DR0205BR000000068757N 000000000000
60A20061201DR0205BR000000068757CANC000000000000
60A20061201DR0205BR000000068757DESC000000000000
60A20061201DR0205BR000000068757ISS 000000000000

· Parâmetros: (3 parâmetros)
1. DataInicio: String com a Data de inicio do download. Esta data é a data do primeiro dia do mês
2. DataFim: String com a Data de fim do download. Esta data é a última data que teve movimento no mês
3. Retorno: Variável por referência para receber o retorno contendo o registro tipo 60A

· Observações:
- Este método é exclusivo para impressora MFD.
- A cada execução desse método, será escrito na variável, o movimento de um dia, de acordo com as alíquotas programadas no ECF.
- O método pode ser executado várias vezes em um loop, até que o retorno seja uma string contendo FIM DOS DADOS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Exemplo em Delphi:
var
Str_Data_Inicio_Movimento: string;
Str_Data_Fim_Movimento: string;
Str_Retorno: String;
begin
Str_Data_Inicio_Movimento:= Trim(Data_Inicio_Movimento.Text);
Str_Data_Fim_Movimento:= Trim(Data_Fim_Movimento.Text);

SetLength(Str_Retorno, 2800);

Int_Retorno:= Daruma_Sintegra_GerarRegistro60A(Str_Data_Inicio_Movimento, Str_Data_Fim_Movimento,Str_Retorno);
Retorno_Registro60A.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_Sintegra_GerarRegistro60D (Índice 6027)

Método: Daruma_Sintegra_GerarRegistro60D (Índice 6027)
Previous Top Next

· Definição do Método:
Executa o 'download' bruto da MFD, no intervalo das datas definidas nos parâmetros. Em seguida gera um registro do tipo 60D (Resumo Diário)
`
· Exemplo de retorno:
60D20061201DR0205BR00000006875700001 00000000000010000000000000005000000000000000118000000000000000

· Parâmetros: (3 parâmetros)
1. DataInicio: String com a Data de inicio do download. Esta data é a data do primeiro dia do mês.
2. DataFim: String com a Data de fim do download. Esta data é a última data que teve movimento no mês.
3. Retorno: Variável por referência para receber o retorno contendo o registro tipo 60D.

· Observações:
- Este método é exclusivo para impressora MFD.
- A cada execução desse método, será escrito na variável, o movimento de um dia.
- O método pode ser executado várias vezes em um loop, até que o retorno seja uma string contendo FIM DOS DADOS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Exemplo em Delphi:
var
Str_Data_Inicio_Movimento: string;
Str_Data_Fim_Movimento: string;
Str_Retorno: String;
begin
Str_Data_Inicio_Movimento:= Trim(Data_Inicio_Movimento.Text);
Str_Data_Fim_Movimento:= Trim(Data_Fim_Movimento.Text);

SetLength(Str_Retorno, 200);

Int_Retorno:= Daruma_Sintegra_GerarRegistro60D(Str_Data_Inicio_Movimento, Str_Data_Fim_Movimento,Str_Retorno);
Retorno_Registro60D.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_Sintegra_GerarRegistro60I (Índice 6028)

Método: Daruma_Sintegra_GerarRegistro60I (Índice 6027)
Previous Top Next

· Definição do Método:
Executa o 'download' bruto da MFD, no intervalo das datas definidas nos parâmetros. Em seguida gera um registro do tipo 60I (Ítem).

· Exemplo de retorno:
60I20061201DR0205BR0000000687572D00105900100001 000000000000100000000050000000000000011800000000000000

· Parâmetros: (3 parâmetros)
1. DataInicio: String com a Data de inicio do download. Esta data é a data do primeiro dia do mês.
2. DataFim: String com a Data de fim do download. Esta data é a última data que teve movimento no mês.
3. Retorno: Variável por referência para receber o retorno contendo o registro tipo 60I.

· Observações:
- Este método é exclusivo para impressora MFD.
- A cada execução desse método, será escrito na variável, 01(um) ítem.
- O método pode ser executado várias vezes em um loop, até que o retorno seja uma string contendo FIM DOS DADOS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Exemplo em Delphi:
var
Str_Data_Inicio_Movimento: string;
Str_Data_Fim_Movimento: string;
Str_Retorno: string;
Str_Buffer: string;
begin
Str_Data_Inicio_Movimento:= Trim('011206');
Str_Data_Fim_Movimento:= Trim('041207');

SetLength(Str_Retorno, 127);

Int_Retorno:= Daruma_Sintegra_GerarRegistro60I(Str_Data_Inicio_Movimento, Str_Data_Fim_Movimento,Str_Retorno);
Str_Buffer:= Str_Buffer + Str_Retorno;
Retorno_Registro60I.Lines.Text:= (Str_Buffer);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_Sintegra_GerarRegistro60R (Índice 6029)

Método: Daruma_Sintegra_GerarRegistro60R (Índice 6029)
Previous Top Next

· Definição do Método:
Executa o download bruto da MFD, no intervalo das datas definidas nos parâmetros. Em seguida gera um registro do tipo 60R (Resumo Mensal).

· Exemplo de retorno:
60R12200600001 0000000000001000000000000000500000000000000011800

· Parâmetros: (3 parâmetros)
1. DataInicio: String com a Data de inicio do download. Esta data é a data do primeiro dia do mês.
2. DataFim: String com a Data de fim do download. Esta data é a última data que teve movimento no mês.
3. Retorno: Variável por referência para receber o retorno contendo o registro tipo 60R.

· Observações:
- Este método é exclusivo para impressora MFD.
- A cada execução desse método, será escrito na variável, o movimento de um dia.
- O método pode ser executado várias vezes em um loop, até que o retorno seja uma string contendo FIM DOS DADOS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Exemplo em Delphi:
var
Str_Data_Inicio_Movimento: string;
Str_Data_Fim_Movimento: string;
Str_Retorno: String;
begin
Str_Data_Inicio_Movimento:= Trim('011206');
Str_Data_Fim_Movimento:= Trim('041207');

SetLength(Str_Retorno, 127);

Int_Retorno:= Daruma_Sintegra_GerarRegistro60A(Str_Data_Inicio_Movimento, Str_Data_Fim_Movimento,Str_Retorno);
Retorno_Registro60R.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_Sintegra_GerarRegistro90 (Índice 6030)

Método: Daruma_Sintegra_GerarRegistro90 (Índice 6030)
Previous Top Next

· Definição do Método:
Gera o registro do tipo 90. Deve existir previamente um arquivo contendo os registros 10, 11, 60M, 60D, 60I e 60R. O registro tipo 90 será retornado em variável.

· Parâmetro:
1. Retorno: Variável por referência para receber o retorno contendo o registro tipo 90 com 127 espaços.

· Observações:
- Nunca execute este método antes de gerar os registros Tipo 10, Tipo 11, Todos os Tipos 60, pois este método depende da execução antecipada desses métodos.
- Este método é exclusivo para impressora MFD.
- Para saber mais sobre o layout dos relatórios, acesse o site oficial do sintegra, www.sintegra.gov.br

· Este Método retornará um dos Valores Inteiros listados Abaixo:
  1: Execução OK
0: Erro em arquivos binarios
-2: Datas invalidas
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Exemplo em Delphi:
var
Str_Retorno: String;
begin
SetLength(Str_Retorno, 127);

Int_Retorno:= Daruma_Sintegra_GerarRegistro90(Str_Retorno);
Retorno_Registro90.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIMFD_RetornarInfoDownloadMFD (Índice 6020)

Método: Daruma_FIMFD_RetornarInfoDownloadMFD (Índice 6020)
Previous Top Next

· Definição do Método:
Executa o 'download' bruto da MFD, em um intervalo de datas ou de COO's, dependendo do parâmetro TipoDL (tipode down-load).

Em seguida, seleciona os dados retornados, de acordo com o parâmetro índice.

O método pode ser executado várias vezes, em um loop, para consumir todos os dados referentes ao índice requerido.

Ao final dos dados, é retornada uma string contendo o FIM DOS DADOS. Este procedimento deverá ser seguido, quando tratar-se de índices que retornam informacoes variáveis, como por exemplo, os ítens que foram vendidos.

· Parâmetros: (5 parâmetros)
1. TipoDL: String com tipo do down-load, sendo 1(um) Intervado de datas e 2(dois)Intervalo de COO
2. Data/COO Início: String com a Data / COO com o ínicio do down-load.
3. Data/COO Fim: String com a Data / COO com o fim do down-load.
4. Índice Dados: String com o índice dos dados, que pode ser um dos que são listados mais abaixo nesta página.
5. Retorno: Variável por referência para receber os dados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: Execução OK
0: Erro em arquivos binarios
-2: Parametros invalidos (se algum dos 4 parametros iniciais for nulo ou se o indice for invalido)
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Para saber mais sobre os índices e as informação que serão retornadas, acesse os links abaixo:

Sobre o Hardware da Impressora:

Índice ECFHW - Este índice retorna informações sobre o hardware da impressora fiscal.

Índice ECFCFG - Este índice retorna informações sobre as configurações da impressora fiscal.

Índice CADFPG - Este índice retorna as formas de pagamentos cadastradas na impressora fiscal.

Índice CADALQ - Este índice retorna as alíquotas cadastradas na impressora fiscal.

Índice CADCNF - Este índice retorna totalizadores cadastradas na impressora fiscal.

Índice CADGER - Este índice retorna relatórios gerenciais cadastradas na impressora fiscal.

Índice LMF - Este índice retorna as informações referentes as leituras da memória fiscal tiradas na impressa.

Índice LX - Este índice retorna as informações referentes as leituras x impressas.

Índice RZABE - Este índice retorna as informações referentes a abertura das reduções z impressas.

Sobre os cupons fiscais:

Índice CFABE - Este índice retorna informações referentes a abertura do cupom fiscal.

Índice CFITV - Este índice retorna os íntens vindidos nos cupons fiscais.

Índice CFDES - Este índice retorna os descontos nos ítens dos cupons fiscais.

Índice CFCDI - Este índice retorna os cancelamentos dos descontos nos ítens dos cupons fiscais.

Índice CFCPI - Este índice retorna os cancelamentos parciais nos ítens dos cupons fiscais.

Índice CFCTI - Este índice retorna os cancelamentos nos totais dos ítens dos cupons fiscais.

Índice CFTOT - Este índice retorna os cupons fiscais em totalização.

Índice CFCDS - Este índice retorna os cancelamentos dos descontos no subtotal dos cupons fiscais.

Índice CFFPG - Este índice retorna as formas de pagamentos usadas nos cupons fiscais.

Índice CFCAN - Este índice retorna os cupons fiscais cancelados.

Índice CFENC - Este índice retorna informações do encerramento dos cupons fiscais.

Índice CFEST - Este índice retorna informações referente aos estornos nos cupons fiscais.

Sobre os cupons adicionais:

Índice CUADC - Este índice retorna os cupons adicionais emitidos.

Sobre os comprovantes de crédito/débito. (não fiscais vinculados):

Índice CCDABE - Este índice retorna os dados de abertura dos comprovantes de crédito/débito.

Índice CCDTXL - Este índice retorna texto livre dos comprovantes de crédito/débito.

Índice CCDVADABE - Este índice retorna os dados de abertura da via adicional dos comprovantes de crédito/débito.

Índice CCDTXL - Este índice retorna os textos livres dos comprovantes de crédito/débito.

Índice CCDVADTXL - Este índice retorna os textos livres da via adicional dos comprovantes de crédito/débito.

Índice CCD2VIA - Este índice retorna a segunda via dos comprovantes de crédito/débito.

Índice CCDREI - Este índice retorna a reimpressão dos comprovantes de crédito/débito.

Índice CCDESTABE - Este índice retorna os comprovantes de crédito/débito que foram estornados.

Índice CCDESTTXL - Este índice retorna os textos livres impressos noa comprovantes de crédito/débitos estornados.

Sobre os comprovantes não fiscais (recebimentos não fiscais):

Índice CNFABE - Este índice retorna os comprovantes não fiscais que foram abertos.

Índice CNFRNF - Este índice retorna os recebimentos não fiscais.

Índice CNFCDI - Este índice retorna os cancelamentos de descontos dos comprovantes não fiscais.

Índice CNFCTI - Este índice retorna os cancelamentos no total dos ítens dos comprovantes não fiscais.

Índice CNFTOT - Este índice retorna os comprovantes não fiscais em totalização.

Índice CNFCDS - Este índice retorna os cancelamentos de descontos no subtotal dos comprovantes não fiscais.

Índice CNFFPG - Este índice retorna as formas de pagamento usadas nos comprovantes não fiscais.

Índice CNFCEM - Este índice retorna os cancelamentos dos comprovantes não fiscais em emissão.

Índice CNFENC - Este índice retorna os comprovantes não fiscais em encerramento.

Índice CNFINTEST - Este índice retorna o interior dos estornos das formas de pagamento dos comprovantes não fiscais.

Índice CNFCAN - Este índice retorna os comprovantes não fiscais cancelados.

Índice CNFSAN - Este índice retorna comprovante não fiscal sangria.

Índice CNFSUP - Este índice retorna comprovante não fiscal suprimento.

Índice CNFEST - Este índice retorna os comprovantes não fiscais estornados.

Índice GERABE - Este índice informações referente a abertura dos relatórios gerenciais.

Índice GERTXL - Este índice retorna os textos livres que foram impressos nos relatórios gerenciais.

Sobre os cupons fiscais bilhete de passagem:

Índice CFBPABE - Este índice retorna os dados de abertura dos cupons fiscas bilhete de passagem.

Índice CFBPITV - Este índice retorna os ítens vendidos nos cupons fiscais bilhete de passagem.

Índice CFBPDES - Este índice retorna desconto no ítens dos bilhetes de passagem.

Índiece CFBPCDI - Este índice retorna os cancelamentos nos ítens dos bilhetes de passagem.

Índice CFBPCTI - Este índice retorna o total em cancelamentos nos ítens dos bilhetes de passagem.

Índice CFBPTOT - Este índice retorna os cupons fiscais bilhete de passagem em totalização.

Índice CFBPCDS - Este índice retorna os cancelamentos de desconto no subtotal dos bilhetes de passagem.

Índice CFBPFPG - Este índice retorna as formas de pagamento usadas nos cupons fiscais bilhetes de passagem.

Índice CFBPCEM - Este indice retorna os cancelamentos dos bilhetes de passagem em emissão.

Índice CFBPENC - Este índice retorna informações dos bilhetes de passagem em encerramento.

Índice CFBPINTEST - Este índice retorna o interior dos estornos nos bilhetes de passagem.

· Observações:
- Se desejar saber mais sobre o Sintegra, acesse o site do Sintegra para saber: www.sintegra.gov.br


Daruma_FIMFD_RetornarInfoDownloadMFDArquivo (Índice 6021)

Método: Daruma_FIMFD_RetornarInfoDownloadMFDArquivo (Índice 6021)
Previous Top Next

· Definição do Método:
Executa o 'download bruto' da MFD, em um intervalo de datas ou de COO's, dependendo do parâmetro TipoDL (tipo do down-load).

Em seguida, seleciona os dados retornados, de acordo com o parâmetro Índice e os grava no arquivo Sintegra_INDICE.txt, onde ÍNDICE é o conteúdo do parâmetro Índice.

O arquivo é gerado no path configurado no registro por DEFAULT é no C:\ - porém pode ser alterado através do método:Daruma_Registry_SintegraPath(Índice 71).

· Parâmetros: (5 parâmetros)
1. TipoDL: String com tipo do down-load, sendo 1(um) Intervado de datas e 2(dois)Intervalo de COO.
2. Data/COO Início: String com a Data / COO com o ínicio do down-load.
3. Data/COO Fim: String com a Data / COO com o fim do down-load.
4 Índice Dados: String com o índice dos dados, que pode ser um dos que são listados mais abaixo nesta página.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: Execução OK
0: Erro em arquivos binarios
-2: Parametros invalidos (se algum dos 4 parametros iniciais for nulo ou se o indice for invalido)
-52: Erro de abertura de arquivos
-11: Comando incompativel

· Para saber mais sobre os índices e as informação que serão retornadas, acesse os links abaixo:

Sobre o Hardware da Impressora:

Índice ECFHW - Este índice retorna informações sobre o hardware da impressora fiscal.

Índice ECFCFG - Este índice retorna informações sobre as configurações da impressora fiscal.

Índice CADFPG - Este índice retorna as formas de pagamentos cadastradas na impressora fiscal.

Índice CADALQ - Este índice retorna as alíquotas cadastradas na impressora fiscal.

Índice CADCNF - Este índice retorna totalizadores cadastradas na impressora fiscal.

Índice CADGER - Este índice retorna relatórios gerenciais cadastradas na impressora fiscal.

Índice LMF - Este índice retorna as informações referentes as leituras da memória fiscal tiradas na impressa.

Índice LX - Este índice retorna as informações referentes as leituras x impressas.

Índice RZABE - Este índice retorna as informações referentes a abertura das reduções z impressas.

Sobre os cupons fiscais:

Índice CFABE - Este índice retorna informações referentes a abertura do cupom fiscal.

Índice CFITV - Este índice retorna os íntens vindidos nos cupons fiscais.

Índice CFDES - Este índice retorna os descontos nos ítens dos cupons fiscais.

Índice CFCDI - Este índice retorna os cancelamentos dos descontos nos ítens dos cupons fiscais.

Índice CFCPI - Este índice retorna os cancelamentos parciais nos ítens dos cupons fiscais.

Índice CFCTI - Este índice retorna os cancelamentos nos totais dos ítens dos cupons fiscais.

Índice CFTOT - Este índice retorna os cupons fiscais em totalização.

Índice CFCDS - Este índice retorna os cancelamentos dos descontos no subtotal dos cupons fiscais.

Índice CFFPG - Este índice retorna as formas de pagamentos usadas nos cupons fiscais.

Índice CFCAN - Este índice retorna os cupons fiscais cancelados.

Índice CFENC - Este índice retorna informações do encerramento dos cupons fiscais.

Índice CFEST - Este índice retorna informações referente aos estornos nos cupons fiscais.

Sobre os cupons adicionais:

Índice CUADC - Este índice retorna os cupons adicionais emitidos.

Sobre os comprovantes de crédito/débito. (não fiscais vinculados):

Índice CCDABE - Este índice retorna os dados de abertura dos comprovantes de crédito/débito.

Índice CCDTXL - Este índice retorna texto livre dos comprovantes de crédito/débito.

Índice CCDVADABE - Este índice retorna os dados de abertura da via adicional dos comprovantes de crédito/débito.

Índice CCDTXL - Este índice retorna os textos livres dos comprovantes de crédito/débito.

Índice CCDVADTXL - Este índice retorna os textos livres da via adicional dos comprovantes de crédito/débito.

Índice CCD2VIA - Este índice retorna a segunda via dos comprovantes de crédito/débito.

Índice CCDREI - Este índice retorna a reimpressão dos comprovantes de crédito/débito.

Índice CCDESTABE - Este índice retorna os comprovantes de crédito/débito que foram estornados.

Índice CCDESTTXL - Este índice retorna os textos livres impressos noa comprovantes de crédito/débitos estornados.

Sobre os comprovantes não fiscais (recebimentos não fiscais):

Índice CNFABE - Este índice retorna os comprovantes não fiscais que foram abertos.

Índice CNFRNF - Este índice retorna os recebimentos não fiscais.

Índice CNFCDI - Este índice retorna os cancelamentos de descontos dos comprovantes não fiscais.

Índice CNFCTI - Este índice retorna os cancelamentos no total dos ítens dos comprovantes não fiscais.

Índice CNFTOT - Este índice retorna os comprovantes não fiscais em totalização.

Índice CNFCDS - Este índice retorna os cancelamentos de descontos no subtotal dos comprovantes não fiscais.

Índice CNFFPG - Este índice retorna as formas de pagamento usadas nos comprovantes não fiscais.

Índice CNFCEM - Este índice retorna os cancelamentos dos comprovantes não fiscais em emissão.

Índice CNFENC - Este índice retorna os comprovantes não fiscais em encerramento.

Índice CNFINTEST - Este índice retorna o interior dos estornos das formas de pagamento dos comprovantes não fiscais.

Índice CNFCAN - Este índice retorna os comprovantes não fiscais cancelados.

Índice CNFSAN - Este índice retorna comprovante não fiscal sangria.

Índice CNFSUP - Este índice retorna comprovante não fiscal suprimento.

Índice CNFEST - Este índice retorna os comprovantes não fiscais estornados.

Índice GERABE - Este índice informações referente a abertura dos relatórios gerenciais.

Índice GERTXL - Este índice retorna os textos livres que foram impressos nos relatórios gerenciais.

Sobre os cupons fiscais bilhete de passagem:

Índice CFBPABE - Este índice retorna os dados de abertura dos cupons fiscas bilhete de passagem.

Índice CFBPITV - Este índice retorna os ítens vendidos nos cupons fiscais bilhete de passagem.

Índice CFBPDES - Este índice retorna desconto no ítens dos bilhetes de passagem.

Índiece CFBPCDI - Este índice retorna os cancelamentos nos ítens dos bilhetes de passagem.

Índice CFBPCTI - Este índice retorna o total em cancelamentos nos ítens dos bilhetes de passagem.

Índice CFBPTOT - Este índice retorna os cupons fiscais bilhete de passagem em totalização.

Índice CFBPCDS - Este índice retorna os cancelamentos de desconto no subtotal dos bilhetes de passagem.

Índice CFBPFPG - Este índice retorna as formas de pagamento usadas nos cupons fiscais bilhetes de passagem.

Índice CFBPCEM - Este indice retorna os cancelamentos dos bilhetes de passagem em emissão.

Índice CFBPENC - Este índice retorna informações dos bilhetes de passagem em encerramento.

Índice CFBPINTEST - Este índice retorna o interior dos estornos nos bilhetes de passagem.

· Observações:
- Se desejar saber mais sobre o Sintegra, acesse o site do Sintegra para saber: www.sintegra.gov.br


Consumo de MFD - Trabalhando com a Compactção dos Arquivos

Método:Consumo de MFD - Como trabalha a compactação dos Arquivos
Previous Top Next

Introdução

Desde de 2000 a Daruma se preocupa em demonstrar aos nossos clientes as facilidades e as tecnologias que são usadas em nossos produtos de forma transparente, sendo, assim após estudos realizados por paceiros em potencial ligados a Área de Desenvolvimento Daruma foi criado a nossa MFD que significa Memória Fita Detalhe.
A MFD, ou seja, Memória Fita Detalhe é o local aonde ele armazena todas as informações Fiscais dentro de uma Memória de 128MB ou maior dependendo da disponibilidade requisita, com Compactação de arquivos demonstrando ao usuário final anos de recolhimento de informações e por sua vez o resgate de informações. Devido a essa Tecnologia inovadora foi eliminada a segunda-via do cupom fiscal, reduzindo os gastos com o armazenamento de bobinas e sendo registrados os dados e armazenado de forma organizada as informações dentro da MFD aonde em qualquer momento o usuário pode obtar por resgatar as informações.
Após estudos realizados por um grupo de desenvolvedores, especialistas em algorítimos de compactação de dados e segurança de dados, foi desenvolvida a nossa MFD aonde temos a melhor compactação de dados no mercado de forma simples, 'compacta' e segura garantindo a integridade das informações armazendas na MFD.
Muitas pessoas perguntam como é realizada a compactação nos arquivos enviados para nossas impressoras térmicas com a tecnologia MFD e abaixo demonstrado como realizar testes e como funciona a Ultra-Compactação das informações dentro da MFD.

· Quais Impressoras Daruma possuem a tecnologia MFD?
FS600;
FS2100T.

· Como é compactado os dados em nossa MFD?
A compactação das informações são realizadas de 3 formas, aonde as informações gravadas são verificadas em NÚMERICO, LETRAS e ALFANÚMERICO, desta forma a impressora verifica essas informações e faz a criptografia e a compactação das informações.
A MFD possui uma tecnologia aonde foi desenvolvido um Dicionário de dados que reduz o consumo de MFD que passa para a impressora que essa informação de dados já existe reduzindo o número de caracteres salvos na MFD, conforme a explicação a seguir.

Exemplo de itens emitidos.:
Refrigerante Light;
Refrigerante Zero;
Refrigerante.

Exemplo do funcionamento da compactação.:
Refrigerante, Light, Zero.

Ou seja, não irá ter duplicidade de informação evitando o super-lotamento.

Para a realização de teste de consumo de MFD, acesso o link.


Daruma_Framework_Teste_Consumo_MFD (Índice 6031

Para realizar os testes no Framework, você necessita ter a Daruma32.dll e algum exemplo Framework desenvolvido na Linguagem desejada. Estaremos utilizando abaixo o exemplo em Delphi segue as imagens abaixo:

Para a 'down-load' do aplicativo Daruma Framework, junto a última versão da nossa DLL (Versão Delphi 7.0) você necessita acessar o link: http://www.desenvolvedoresdaruma.com.br/home/downloads/Daruma32_Delphi_Executavel.exe

MFD

Impressoras Fiscais -> Metodos Exclusivos para MFD -> Daruma_Framework_Teste_Consumo_MFD

Após localizado a função iremos iniciar os Testes, como segue a imagem abaixo:

imagem

Letras Aleatorias da Descrição do Item: Descreve utilizando a combinação de A->Z as descrições dos itens a serem utilizados na impressora fiscal térmica realizando uma combinação entre as letras tendo como principal objetivo, mostrar ao usuário que sempre que uma descrição se repetir não irá consumir o máximo da MFD.
Codigo do Item Aleatorio: Código do Item a ser passado, mesmo intuito da 'Descrição do Item', porém utilizando a combinação entre os números de 0->9, aonde os códigos serão formados para o teste de forma a nunca repetir um código, exigindo dessa maneira o máximo da compactação da MFD.
Quantidade de Letras Aleatorias: Informa a quantidade de letras aleatórias a serem utilizados no teste, para demonstrar ao usuário que mesmo utilizando diversas quantidades haverá de forma inteligente a compactação dos dados na MFD.
Quantidade de Digitos no Codigo: Informa a quantidade de Códigos a serem utilizados no teste, para demonstrar ao usuário que mesmo utilizando diversas quantidades haverá de forma inteligente a compactação dos dados na MFD.

Quantos itens você deseja em cada Cupom: Informa a quantidade de itens a serem impressoras no Cupom Fiscal de teste.
Quantos cupons você deseja: Informa a quantidade de cupons a serem impressos na impressora térmica.

Perguntar Impressora Ligada(item): Pergunta se a impressora está ligada para a execução do teste.
Perguntar SubTotal(item): Pergunta o SubTotal dos itens a serem impressos
Perguntar GT(Cupom): Pergunta o GT(Grande Total) dos cupons a serem impressos
Perguntar Status Cupom(Cupom): Pergunta o 'Status' do cupom a serem impressos

Imprimir Cupom(s): Botão inicial do teste, aonde serão realizados os procedimentos descritos e configurados pelo usuário acima, esse processo pode demorar dependendo do número de descrição passado pelo usuário.

Limpar List Box: Apaga os 'Status de Envio' registrado no processo de teste.
Limpar Logs: Apaga os Log's das operações realizadas.
Reenviar Log: Realiza o re-envio do log solicitado pelas operações, isso faz com que repita os mesmos cupons impressos anteriormente.

Recalcular: Nessa opção importante, você irá descobrir na real o quanto sua MFD consumiu durante a realização dos testes, demonstrando o sistema de Compactação desenvolvido pela Daruma aonde o cliente final estará satisfeito ao saber que não precisará realizar trocas de MFD durante um curto período de tempo.

Ao Imprimir Cupom você irá percebe que a impressora irá imprimir diversas linhas testando as Strings passadas na tela acima, ao final dos testes uma mensagem de sucesso irá aparecer. Para Cacular o quanto foi usado é somente apertar o botão Recalcular e você verá o quanto em percentagem a MFD consumiu no teste.

Qualquer dúvida favor entrar em contato com o Suporte ao Desenvolvedor por um de nossos canais listados a seguir:

· Ligação gratuita via internet

Skype: suporte_daruma
Skype: suporte_desenvolvedores_daruma
Skype: desenvolvedores_suporte_daruma
Skype: daruma_suporte_alexandre
Skype: claudenir_andrade

· Por email

suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.suporte@daruma.com.br
suporte.alexandre@daruma.com.br

· Por telefone

Desenvolvedores: 0800 770 3320


Configurando a DLL para FS600/FS700 Térmica

Configurando a DLL para geração dos arquivos FS600/FS700 (Térmicas)

Enter topic text here.


Configurando a DLL para FS345 Matricial

Configurando a DLL para geração dos arquivos FS345 (Matricial)
Previous Top Next

Configurando a Daruma32.dll para Geração da NFP na Impressora FS345 (matricial)

Abaixo será descrito como deve ser feita a configuração para que seja gerada a NFP nas impressoras FS345.

Primeiro você irá pegar o Daruma_NFP.zip em anexo a este documento Descompactar em uma pasta de testes:

Ao descompactar você encontrará os seguintes arquivos:

è darumarfd.reg è Exemplo das configurações a serem feitas no registry;
è darumarfdwin98.reg è Exemplo das configurações a serem feitas no registry Win98;
è Daruma_Framework_Delphi7.exe è Aplicativo de testes para realização de testes;
è Daruma32.dll è Driver que integra o Seu Software Aplicativo com o ECF.

O que fazer com estes arquivos?

1. Abra num editor de sua preferência o arquivo darumarfd e verá o seguinte conteúdo:
"RFD"="1"
"DataMovimento"="XXXXXX"
"ClicheUsuario"="XXXXXX"
"SwHouse_CNPJ"="1234567890" Obs.: Deve contém até 14 caracteres.
"SwHouse_IE"="123456" Obs.: Caso seja ISENTO, preencha com 000000.
"SwHouse_IM"="123456" Obs.: Caso não tenha preencher com 000000.
"SwHouse_NomeAplicativo"="Aplicativo de testes" Obs.: Deve contém até 40 caracteres
"SwHouse_RazaoSocial"="Aplicativo de testes" Obs.: Deve contém até 40 caracteres.
"SwHouse_VersaoAplicativo"="1.8.1.5" Obs.: Deve contém até 10 caracteres.
"ArquivoMovimento"="XXXXXX"
"HeaderRFD"="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
"DiretorioBackUp"="c:\\BKP_RFD_Daruma\\"
"DiretorioTrabalho"="c:\\RFD_Daruma\\"

2. Altere todas as chaves que começam com SwHouse pelos dados de sua Sfotware House, como por exemplo a chave SwHouse_CNPJ="seu cnpj", SwHouse_IE="sua inscrição social", e assim por diante.
a. Observação: Não use barras, ou pontos no CNPJ, IE, IM.
b. Caso não tenha IE ou IM, seja Isento, preencha os campos com 000000 ou ISENTO.
3. Salve as modificações e saia do editor;
4. Vá no, diretório que você colocou o arquivo darumarfd.reg, agora já alterado e dê um duplo clique, com isso você estará registrando a dll no windows.
5. Entre no regedit, vá no diretório (path) HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF\RFD, e confirme se alterações com os dados de sua Software House foram inseridos com sucesso.

6. Concluída esta etapa, é hora de você criar as pastas de trabalho e backup.
a. À partir do C:\ crie uma pasta com o nome è BKP_RFD_Daruma;
b. À partir crie outra com o nome è RFD_Daruma;
7. Agora é hora de abrir o programa Daruma_Framerowrk_Delphi7.exe
a. Clique no botão Impressoras Fiscais;
b. Clique no segundo Menu à partir da esquerda Métodos para Recebimentos e Relatórios;
c. Vá lá embaixo quase ao final e clique em Daruma_FI_LeituraX.
*Atenção se neste momento a ECF começar a apitar, então fique tranqüilo, pois deu certo a configuração e agora é só aguardar até que pare, isso poderá levar vários minutos. Portanto não desligue a impressora, nem saia do aplicativo até que pare de apitar e emita a LeituraX, após emitida a LeituraX verifiquei se foi gerado o arquivo MF.bin no diretório de trabalho.
8. Se o procedimento anterior foi 100% ok, então saia do Daruma_Framework_Delphi7.exe è Copie a Daruma32.dll da pasta de testes, para junto de seu aplicativo, substituindo todas as versões ANTIGAS da Daruma32.dll è entre em seu software e comece a trabalhar normalmente.
*Deste momento em diante as suas vendas passaram a ser logadas no HD, na pasta RFD_Daruma. Ao final do período, será gerado o arquivo, que estará no diretório de Backup e que deve ser enviado para a SEFAZ/SP.
9. No final do dia, após realizar a ReduçãoZ, procure no diretório BKP_RFD_Daruma, pelo arquivo com o seguinte nome.
DR4?????Q18, que traduzindo seria.

DR è Iniciais do fabricante, que neste caso DR é para Daruma;
4 è Refere-se ao modelo do ECF, que neste caso para a FS345 sempre será 4 (quatro);
????? è Seria o número de série do ECF, que pode ser qualquer combinação;
Q è Letra que representa a data em que foi criado este documento, portando dia 17, se fosse 18 seria letra R, e assim por diante;
1 è Referente ao mês de janeiro;
8 è Refere-se ao 2008.
10. Se você encontrar o arquivo com o nome, conforme explicado anteriormente, então é só enviá-lo através do SITE da SEFAZ/SP, que pode ser acessado pela URL a seguir:
http://www.nfp.fazenda.sp.gov.br

FAQ
Quando efetivamente é gerado o arquivo que eu devo mandar através do SITE da SEFAZ?
R: No momento que é executada a ReduçãoZ.

Posso executar o procedimento acima com o movimento aberto?
R: Sem problemas, porque o arquivo passará a ser gerado, somente no próximo movimento.

E se eu realizar o procedimento acima e não gerar o arquivo?
R: Procurar no diretório de trabalho RFD_Daruma, pelo arquivo MF.BIN e apagá-lo. Depois repita o procedimento:
1. Entrar no Regedit;
2. Apagar a pasta RFD;
3. Registrar a dll novamente;
4. Preencher novamente todas as chaves que começam em SW com os dados de sua Software House.
5. Startar seu aplicativo e enviar uma LeituraX, se a ECF não apitar, como se fosse um grilo, então, verifique que ela esta com o clichê correto e também tem usuário cadastrado, caso não tenha umas das duas informações descrita anteriormente, favor providenciar para que tenha e repita o teste.

E se site na SEFAZ recusar o arquivo, com a mensagem de ECF inválido?
R: Verifique se você não tem nenhuma outra dll mais antiga, que a que esta neste pacote. Pois as versões anteriores a 2.21.19 estavam de fato com problemas.

Como faço para saber a versão da Daruma32.dll?
R: Start o Daruma_Framework_Delphi7.exe è Impressoras Fiscais è Métodos de Informações e Status è Métodos de Informação do Ecf e Contadores è Método Daruma_FI_RetornarVersaoDLL.

O que eu faço com os arquivos gerados com dll's anteriores a 2.21.19 e que o validador não aceita?
R: Armazene todos os arquivos e um CD e mantenha-os guardados, para que quando o FISCO pedir você os tenha em mãos.

Se tiver alguma dúvida e/ou dificuldade, entre em contato com a nossa equipe de suporte ao desenvolvedor.

E-mails:
desenvolvedores.suporte@daruma.com.br, suporte.desenvolvedores@daruma.com.br, desenvolvedores.daruma@daruma.com.br, suporte@daruma.com.br, ddc.suporte@daruma.com.br, suporte.ddc@daruma.com.br, suporte.alexandre@daruma.com.br, claudenir@daruma.com.br

Skypes:
desenvolvedores_suporte_daruma, suporte_desenvolvedores_daruma, desenvolvedores_daruma, suporte_daruma, ddc_suporte_daruma, suporte_ddc_daruma, suporte_alexandre_daruma, claudenir_andrade

Telefone Gratuito: 0800 770 3320
De segunda a sexta das 08:00 as 12:00 e das 13:30 as 18:00


Configurando Cupom Mania

Configurando Cupom Mania

1. Introdução

Como é de conhecimento, foi lançado no Rio de Janeiro o Projeto "Cupom Mania". Este proejto traz como exigência que seja impresso no Cupom Fiscal a frase "Válido para o Cupom Mania" e também o total de Imposto devido na operação de todo o cupom fiscal, envolvendo todos os itens vendidos, independente da alíquota utilizada.

Transcrevo abaixo uma parte deste decreto onde constam duas destas exigências acima explicadas:

XI - informações suplementares, se for o caso, impressas no máximo em 8 (oito) linhas, onde deverá constar:
1 - o valor total do ICMS devido na operação ou prestação, isto é, o somatório dos valores do imposto incidente em cada item do Cupom Fiscal; 2 - a expressão: " VÁLIDO PARA O CUPOM MANIA ".

Fonte: http://www.fazenda.rj.gov.br/portal/index.portal?_nfpb=true&_pageLabel=tributaria&file=/legislacao/tributaria/decretos/2009/42084.shtml

2. Configuração

1 - Atualize a versão da Dll Daruma para 2.27.11 ou superior através do link: Site Desenvolvedores Daruma.

2 - Habilite a chave CupomMania no Registry para isso você pode utilizar o método Daruma_Registry_AlterarRegistry(Indice 83).

3. Opções Cupom Mania

Cupom Mania = 1 - "Válido para Cupom Mania" na primeira linha da mensagem do aplicativo e "Total ICMS" na primeira linha da mensagem promocional;

CPM1
Cupom Mania = 2 - "Válido para Cupom Mania" na primeira linha da mensagem promocional e "Total ICMS" na segunda linha da mensagem promocional;

CPM2

Cupom Mania = 3 - "Válido para Cupom Mania" na primeira linha da mensagem do aplicativo e "Total ICMS" na ultima linha da mensagem promocional;
CPM3

Cupom Mania = 4 - "Válido para Cupom Mania" na penúltima linha da mensagem promocional e "Total ICMS" na ultima linha da mensagem promocional;

CPM4

Observação: Se for utilizar as configurações 2 e 4, não passar mais que 6 linhas na mensagem promocional, pois 2 linhas serão utilizadas exclusivamente pelo cupom mania. Somente as opções 2 e 4 atendem ao modelo de impressora fiscal FS345(Matricial).

Temos também o método Daruma_FI_CupomMania que retorna o Total de ICMS e ISS sempre do último cupom. E somente e exclusivamente de a chave cupom mania estiver ligada.

Dúvidas entre em contato com nossa equipe de suporte através dos nossos canais de contato:

· Por Skype

Skype: suporte_daruma
Skype: suporte_desenvolvedores_daruma
Skype: desenvolvedores_suporte_daruma
Skype: daruma_suporte_alexandre
Skype: claudenir_andrade
Skype: suporte_ddc_daruma
Skype: ddc_suporte_daruma
Skype: suporte.daruma (suporte à CPU)

· Por email

suporte@daruma.com.br
suporte.desenvolvedores@daruma.com.br
desenvolvedores.suporte@daruma.com.br
desenvolvedores.daruma@daruma.com.br
desenvolvedores@daruma.com.br
suporte.alexandre@daruma.com.br
ddc.suporte@daruma.com.br
suporte.ddc@daruma.com.br
suporte.daruma@daruma.com.br (suporte à CPU)

Ligação Gratuita: 0800 770 3320


Daruma_FI_CupomMania(Índice 0000)

Método: Daruma_FI_CupomMania[Índice 0000]
Previous Top Next

· Definição do Método:
Retorna o Total de ISS e ICMS contabilizado no último cupom.

· Parâmetros do Método:
String: Variável por referência com o tamanho de 13(treze) posições para receber o total de ISS acumulados do último cupom fiscal.
String: Variável por referência com o tamanho de 13(treze) posições para receber o total de ICMS acumulados do último cupom fiscal.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna o Valor do total de ICMS e ISS referente ao último cupom de a chave CupomMania estiver habilitada.
- Para habilitar a chave CupomMania no Registry utilize o método Daruma_Registry_AlterarRegistry(Indice 83).

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_ICMS= Space(13)

Str_ISS= Space(13)

Int_Retorno = Daruma_FI_CupomMania(Str_ISS, Str_ICMS)

TX_Retorno.Text = Str_ISS

· Exemplo em Delphi 7.0:
var
Str_ICMS, Str_ISS: String;
begin

SetLength (Str_ICMS,13);

SetLength (Str_ISS,13);

Int_Retorno := Daruma_FI_CupomMania(Str_ISS, Str_ICMS);

Edit1.Lines.Text := Pchar(' Cupom Mania Total ISS: ' + Str_ISS );

Edit1.Lines.Text := Edit1.Lines.Text + ' Total ICMS: ' + Str_ICMS;

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();


Retorna Erro Extendido

Retorna Erro Extendido

· Definição do Método:
Retorna o Erro Extendido do ECF, além do ST1 e ST2 retorna uma Tabela Completa de Erros.

· Parâmetros do Método:
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 NÃO HAJA ERRO.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Tabela de Erro Retornada:
================================================================
00 IF em modo Manutenção. Foi ligada sem o Jumper de Operação
01 Método disponível somente em modo Manutenção
02 Erro durante a gravação da Memória Fiscal
03 Memória Fiscal esgotada
04 Erro no relógio interno da IF
05 Falha mecânica na IF
06 Erro durante a leitura da Memória Fiscal
07 Metodo permitido apenas em modo fiscal (IF sem jmper)
08 Relatório Gerêncial não aberto
10 Documento sendo emitido
11 Documento não foi aberto
12 Não existe documento a cancelar
13 Dígito não numérico não esperado, foi encontrado nos Parâmetros do Método
14 Não há mais memória disponível para esta operação/Não há nenhuma posição de méria disponível.
15 Item a cancelar não foi encontrado
16 Erro de sintaxe no método
17 "Estouro" de capacidade numérica (overflow)
18 Selecionado totalizador tributado com alíquota de imposto não definida
19 Memória Fiscal vazia
20 Não existem campos que requerem atualização
21 Detectado proximidade do final da bobina de papel
22 Cupom de Redução Z já foi emitido. IF inoperante até 0:00h do próximo dia
23 Redução Z do período anterior ainda pendente. IF inoperante
24 Valor de desconto ou acréscimo inválido (limitado a 100%)
25 Caráctere inválido foi encontrado nos Parâmetros do Métodos
26 Médoto não pode ser executado
27 Impressora fora de Linha/Nenhum periférico conectado a interface auxiliar
28 Foi encontrado um campo em zero
29 Documento anterior não foi Cupom Fiscal. Não pode emitir Cupom Adicional
30 Acumulador Não Fiscal selecionado não é válido ou não está disponível
31 Não pode autenticar. Excedeu 4 repetições ou não é permitida nesta fase
32 Cupom adicional inibido por configuração
35 Relógio Interno Inoperante
36 Versão do firmware gravada na Memória Fiscal não é a esperada
37 Alíquota de imposto informada já está carregada na memória
38 Forma de pagamento selecionada não é válida
39 Erro na seqüência de fechamento do Cupom Fiscal
40 IF em Jornada Fiscal. Alteração da configuração não é permitida
41 Data inválida. Data fornecida é inferior à última gravada na Memória Fiscal
42 Leitura X inicial ainda não foi emitida
43 Não pode emitir Comprovante Vinculado
44 Cupom de Orçamento não permitido para este estabelecimento(Mensagem do Aplicativo Não Programada)
45 Campo obrigatório em branco
48 Não pode estornar
49 Forma de pagamento indicada não encontrada
50 Fim da bobina de papel
51 Nenhum usuário cadastrado na MF
52 MF não instalada ou não inicializada
56 Documento já aberto
61 Queda de energia durante a emissão de Cupom Fiscal
75 Operação com ISS não permitida (se a sua impressora for uma FS600 ou FS2100T, então será preciso ter uma inscrição municipal gravada em sua impressora para que seja possível programar/utilizar alíquota de serviço).
76 Desconto em ISS não permitido neste ECF (a programação deverá ser feita por meio de intervenção técnica e caso o Estado permita)
77 Acréscimo em IOF inibido
80 Periférico na interface auxiliar não pode ser reconhecido
81 Solicitado preenchimento de cheque de banco desconhecido
82 Solicitado transmissão de mensagem nula pela interface auxiliar
83 Extenso do cheque não cabe no espaço disponível
84 Erro na comunicação com a interface auxiliar
85 Erro no dígito verificador durante comunicação com a PertoCheck
86 Falha na carga de geometria de folha de cheque
87 Parâmetros do Método: invállido para o campo de data do cheque
90 Sequência de validação de número de série inválida
180 Mensagem do aplicativo não programada. (Esta mensagem não é opcional e sim uma exigência da legislação e deverá ser programada para que o ECF seja liberado para a emissão de documentos fiscais. Para programar a mensagem use os métodos:Daruma_Registry_AplMensagem1(Índice 36) e método:Daruma_Registry_AplMensagem2(Índice 37).
181 Não é possivel realizar Redução Z entre 00:00am e 02:00am (Meia Noite e Duas da Manhã) nesta versão de firmware da FS600 (está limitação existe nas versões 1.1 pra baixo.
182 Tampa aberta.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(4)
Int_Retorno = Daruma_FI_RetornaErroExtendido(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FI_RetornaErroExtendido(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma FrameworkTabela de Retornos ST1 e ST2

Tabela de Retornos - ST1 e ST2

· Definição do Método:
Todos os métodos, executadas na impressora possuem bytes de retorno que significam o estado atual após o envio. Cada byte é tratado da seguinte maneira:

Tabela de erros

Lógica de Tratamento

Cada byte é composto de 8 bits. Cada bit, dentro do byte, tem um valor, conforme a tabela acima:

O valor recebido da impressora para ST1(status 1) e/ou ST2(status 2) deve ser comparado com cada bit.

As linhas abaixo são uma forma de você desenvolver um pedaço de código para saber quais bits estão "configurados":

Codificando o ST1

If St1 >= 128 Then // bit 7
St1 = St1 - 128
sMsg = "O papel acabou"
End If
If St1 >= 64 Then // bit 6
St1 = St1 - 64
sMsg = "O papel esta acabando"
End If
If St1 >= 32 Then // bit 5
St1 = St1 - 32
sMsg = "Erro no relógio da impressora"
End If
If St1 >= 16 Then // bit 4
St1 = St1 - 16
sMsg = "Impressora em erro"
End If
If St1 >= 8 Then // bit 3
St1 = St1 - 8
sMsg = "Primeiro dado do método não foi ESC"
End If
If St1 >= 4 Then // bit 2
St1 = St1 - 4
sMsg = "Método inexistente"
End If
If St1 >= 2 Then // bit 1
St1 = St1 - 2
sMsg = "Cupom fiscal aberto"
End If
If St1 >= 1 Then // bit 0
St1 = St1 - 1
sMsg = "Número de parâmetro(s) inválido(s)"
End If

Codificando o ST2

If St2 >= 128 Then // bit 7
St2 = St2 - 128
sMsg = "Tipo de parâmetro do método inválido"
End If
If St2 >= 64 Then // bit 6
St2 = St2 - 64
sMsg = "Memória fiscal cheia"
End If
If St2 >= 32 Then // bit 5
St2 = St2 - 32
sMsg = "Erro na memória RAM"
End If
If St2 >= 16 Then // bit 4
St2 = St2 - 16
sMsg = "Alíquota não definida"
End If
If St2 >= 8 Then // bit 3
St2 = St2 - 8
sMsg = "Capacidade de alíquotas esgotada"
End If
If St2 >= 4 Then // bit 2
St2 = St2 - 4
sMsg = "Este cancelamento não é permitido"
End If
If St2 >= 2 Then // bit 1
St2 = St2 - 2
sMsg = "CNPJ/IE do Proprietário não definidos"
End If
If St2 >= 1 Then // bit 0
St2 = St2 - 1
sMsg = "Método não executado"
End If

Teste o exemplo acima com ST1 = 66, e repare que você terá dois erros, o papel está acabando (64) e cupom aberto (2).


Possíveis valores Retornados

Retornos

· Retornos:
0: Método não executado.
1: Ok método enviado com sucesso.
-1: Erro de comunicação.
-2: Parâmetro inválido passado no método.
-3: Alíquota não programada no ECF.
-4: A Chave ou Valor no Registry Não foi encontrado.
-5: Erro ao abrir a porta de comunicação.
-6: Impressora desligada ou cabo de comunicação desconectado.
-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.
-11: Método não pode ser executado, impressora conectada não é uma MFD.
-24: Forma de pagamento não programada.
-25: Totalizador Não Fiscal Não Programado.
-27: A Função Executou o Comando porém o ECF sinalizou Erro, chame a DARUMA_FI_RETORNOIMPRESSORA para identificar o Erro.
-28: Time-Out, o Tempo esgotou e o Arquivo não foiu encontrado no Path passado como Parâmetro
-31: Forma de pagamento não finalizada.
-52: Erro de abertura de arquivos.
-108: Período solicitado é menor que o 1º documento emitido.
-109: Período Data final é maior que a data do movimento da última Redução Z emitida.
-110: Período sem movimento.


Historico e Atualizações

Histórico e Atualizações
Previous Top

Histórico e Atualizações DLL Daruma

Vs. 2.27.40 – Build 0.0.0.88 – 26/11/2010

· Correção do arquivo gerado pelas funções Daruma_FIMFD_GerarAtoCotepePAFData e Daruma_FIMFD_GerarAtoCotepePAFCoo. Erro no registro E14 nos campo 9 (Subtotal Documento) e campo 12 (Acréscimo Subtotal), não calculava o Subtotal corretamente quando aplicado acréscimo no subtotal do cupom fiscal.

· Correção do arquivo gerado pela função Daruma_FIMFD_GerarAtoCotepeData (NFP). Erro no registro E02 campo 12 não retornava o GT atual, momento da geração do arquivo.

· Correção do arquivo gerado pela função Daruma_Sintegra_GerarRegistrosArq.
Erro no registro 60I retornava o valor bruto do item, quando deveria retornar o valor líquido(valor bruto diminuído do desconto.

· Correção do retorno da função Daruma_FI_RelatorioGerencial. Erro quando aberto e deixar fechar automaticamente e logo em seguida solicita novamente a função apresenta o erro estentido 43.

· Correção da função Daruma_FI_LinhasEntreCupom. Erro quando executado desabita guilhotina.

· Correção no retorno da função Daruma_FI_Sangria. Erro se o ECF estiver com Z pendente retornava 1 e erro estendido 23. Correto retornar 0 e erro estendido 23.

· Implementação das funções Daruma_FIMFD_GerarMFPAF_Data e Daruma_FIMFD_GerarMFPAF_CRZ, para até ao requisito do PAF.

· Implementação da função Daruma_RSA_CriarAssinaturaHex, para atender requisito do PAF – MD5 dinâmico.

------------------------------------------------------------------------------------------------------------------------------------------------------


Daruma_FI_ClicheProprietario(Índice 1424)

Método: Daruma_FI_ClicheProprietario [Índice 1424]
Top

este Método está descontinuado na dll, favor utilizar
Daruma_FI_ClicheProprietarioEx (Índice 1467)


Configurando a Daruma32.DLL

Configurando a DARUMA32.DLL
Top

Criamos métodos, para que você mesmo possa criar sua tela de configuração da dll direto em seu aplicativo de Automação Comercial, com isso voce poderá padronizar o processo de como são configuradas as opções da dll permitindo que o usuario faça isso através de seu aplicativo de Automação Comercial, com a identidade visual de seu aplicativo e nao através de um editor padrão, isso porporciona maior controle do software nas configurações que devem ser realizadas, oferecendo maior segurança e acesso a estas configurações somente através de seu software.

A DLL Daruma32.dll possui sua configuração através do Registry do windows, possibilitando maior segurança ao aplicativo e maior rapidez na configuração da dll. Proporciona maior velocidade ao aplicativo porque nao necessita trabalhar com acesso a disco para ler as configurações e sim com o registry que esta em area de memoria e seu acesso é 0.760 Milisegundos mais rápido.

Para isso existem Funções que permitem que seu software de frente de caixa configure a dll DARUMA32.DLL, ou você poderá utilizar-se do Configurador que está disponivel em nossa pagina permitindo que independente do software de Automação Comercial você possa configurar a dll de Comunicação.

Se você estiver utilizando a dll de comunicação pela primeira vez para desenvolvimento Não é necessário Criar as Chaves no Registry ou registrar a DLL, porque estas chaves serão criadas automaticamente na primeira vez em que você chamar qualquer função da dll, sendo assim não é necessario que voce crie estas chaves através de seu software e tampouco na mão, nada disso é necessario, apenas execute qualquer função da dll através de seu software - Daruma_FI_LeituraX( ) por exemplo que as chaves serão criadas com valores DEFAULT.

Porém, se voce desejar criar as chaves na mão para que seja instalado a dll no cliente com algum tipo de configuração específica, poderá utilizar-se de dos recursos:

1) Chame qualquer funcão da dll de comunicação e após isso configure as chaves do registry com as funções de configuração existente na dll, Daruma_Registry_Porta("COM1"), por exemplo.

2) Ou, execute o arquivo DARUMA.REG que ele criará as chaves no Registry e você podera utilizar o proprio Windows ( com o executavel REGEDIT) ou poderá utiliar nosso configurador para modificar em tempo de desenho do software as chaves do Registry.

Veja Abaixo a estrutura Registry e o Significado de Cada uma de suas Chaves, Veja o Significado de Cada uma destas Chaves nos Tópicos deste help relacionados ao Produto.

[HKEY_LOCAL_MACHINE \SOFTWARE \ DARUMA]
[HKEY_LOCAL_MACHINE \ SOFTWARE \ DARUMA \ ECF]
[HKEY_LOCAL_MACHINE \ SOFTWARE \ DARUMA \ Observer]
[HKEY_LOCAL_MACHINE \ SOFTWARE \ DARUMA \ DPosXmlBr]

· Chaves:
DARUMA\ECF - Nesta Chave Você encontrará as configurações para que a dll trabalhe com nosso ECF.
DARUMA\Observer - Nesta Chave Você configura para se trabahar com o Driver OBSERVER que interliga seu aplicativo DOS com o windows.
DARUMA\DPosXmlBr - Nesta Chave você encontra valores referente ao Protocolo XML de Automação Comercial.


Métodos Pogramação e Configuração

Métodos para Programação e Configuração Restaurante
Top


Daruma_FI_AbrePortaSerial(Índice 600)

Método: Daruma_FI_AbrePortaSerial [Índice 600]
Top

· Definição do Método:
Abre a porta serial para comunicação com a impressora.

· Parâmetros da Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
0: Não foi possível abrir a Porta Serial.

· Observações:
- A Método lê o nome da porta a ser aberta no Na Chave do Registry Se o parâmetro "porta" estiver configurado com a palavra "Default" a Método localiza onde a impressora está conectada e configurado no Registry. Você poderá alterar o valor da chave controle porta através do método:Daruma_Registry_ControlePorta(Índice 6).
- Caso você tenha uma impressora não fiscal conectada ao micro ou até mesmo uma impressora de qualquer outro fabricante, então deverá estar com o flag Porta setado para DS300.

- Por Default a Daruma32.dll faz o gerenciamento de fluxo de dados, evitando dessa maneira de ter que abrir a porta serial.

Exemplos:
· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_AbrePortaSerial()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_AbrePortaSerial();


Daruma_FI_CfgHoraMinReducaoZ(Índice 408)

Método: Daruma_FI_CfgHoraMinReducaoZ [Índice 408]
Top

· Definição do Método:
Permite configurar até que horas o ECF irá esperar para Realizar a Redução Z Automática (Caso esteja Configurado para Fazer isso, ver Método Daruma_FI_CfgRedZAutomatico) ou para que o ECF passe a Rejeitar novos métodos e imprime sempre "Redução Z Pendente" até que a Redução Z seja Comandada por Software.

· Parâmetros do Método: (1 Parâmetro)
Valor com 2(dois) Dígitos que contém a Hora da Redução Z. Exemplos: "02" ou "08".

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Hora_Min_para_ReducaoZ As String

Int_Valor = InputBox("Entre com o Horario para recucaoZ:", "Daruma Framework", "08")
If Str_Hora_Min_para_ReducaoZ = "" Then
Exit Sub
End If
Int_Retorno = Daruma_FI_CfgHoraMinReducaoZ(Str_Hora_Min_para_ReducaoZ)

· Exemplo em Delphi 7.0:
var
Str_Valor: String;
begin
Str_Valor := InputBox('Entre com o horário para RecuçãoZ:', 'Daruma Framework', '08');
if Str_Valor = '' Then
Exit;

Int_Retorno := Daruma_FI_CfgHoraMinReducaoZ(Str_Valor);


Daruma_FIR_CfgHorarioVerao(Índice 504)

Método: Daruma_FI_CfgHorarioVerao [Índice 504]
Top

· Definição do Método:
Configura o ECF para trabalhar com Horário de Verão.

· Parâmetros do Método: (1 Parâmetro)
1 - Comanda o ECF para entrar em Horario de Verão, ou seja, Automaticamente será Adiantado 1(uma) hora no Relógio da Impressora
0 - Comanda o ECF para SAIR do horário de Verão, ou seja atrasa o Relogio em 1(uma) hora.

· Observações:
Este Método só serão executados caso não tenha uma Venda no Dia, ou seja, Entre um a Redução Z (fechamento de Dia) e uma X (abertura de Dia). Para SAIR do horario de verão, você deve realizar uma Redução Z e ESPERAR 1(uma) hora antes de enviar o método, isso se deve pelo fato que uma vez que a Z foi Executada, o Horário em que a Z foi executada ficou gravado na Memória Fiscal que não Permitirá que o Relógio do ECF volte 1(uma) hora atrás da hora que já foi gravada na Memória Fiscal, por isso a necessidade de se esperar 1(uma) hora para SAIR do Horario de Verão.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.
- Você poderá deixar a entrada e saída do horário de verão automatizada. Para isso basta seguir as instruções abaixo:
1. Entre no registry no seguinte path: HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF;
2. Sete o flag ControlaHorarioVerao para 1(um);
3. Insira uma data válida no flag:DataEntradaHorarioVerao ex.:091205;
4. Insira uma data válida no flag:DataSaidadaHorarioVerao ex.:091205.

Dessa maneira conforme você programou a Daruma32.dll quando verificar que chegou a data prevista em sua programação, irá fazer o ajuste automaticamente, tanto para a entrada quanto para a saída do mesmo.
Importante: para que a saída do horário de verão seja aceita, é fundamental que a ReduçãoZ que antecede a data de saída do horário de verão seja feita ao final do período do dia anterior ao retorno ao horário normal. Exemplificando melhor: se o horário de verão for terminar no dia 100306, então a ReduçãoZ do dia 090306 deve ter sido emitida ainda no dia 090306.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
Int_Retorno = Daruma_FIR_CfgHorarioVerao('1');


Daruma_FI_CfgLeituraXAuto(Índice 402)

Método: Daruma_FI_CfgLeituraXAuto [Índice 402]
Top

· Definição do Método:
Permite que você configure o ECF seja realizado a Leitura X automaticamente para a Abertura do Dia.

· Parâmetros do Método: (1 Parâmetro)
1 - Abre o Dia, ou realiza a LeituraX Automaticamente.
0 - Não Abre o Dia, ou Não realiza a LeituaX Automaticamente.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgLeituraXAuto("1")

· Exemplo em Delphi 7.0:
Int_Retorno = Daruma_FI_CfgImpEstGavVendas('1');


Daruma_FI_CfgRedZAutomatico(Índice 401)

Método: Daruma_FI_CfgRedZAutomatico [Índice 401]

Top

· Definição do Método:
Permite que você configure o ECF para que Realize a ReduçãoZ Automaticamente.

· Parâmetros do Método: (1 Parâmetro)
0 - O ECf Não Realiza a ReduçãoZ Automaticamente
1 - Realiza a ReduçãoZ Automaticamente.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Atenção! este Método anula completamente os valores da dll de ZAutomatica, ou seja, se você chama a Método Daruma_Registry_ZAutomatica e passar os Valores a 1(um) para a dll Fazer Automaticamente, e se você chamar esta Método para que nao faça a ReduçãoZ Automatica de nada adiantará, ou seja, para que o ECF nem a DLL realiza a ReduçãoZ Automaticamente e sim que seja comandada por seu aplicativo você deverá chamar esta Método com o Valor 0(Zero) e a Método Daruma_Registry_ZAutomatica com o Valor também 0(zero) com isso nem a dll nem o ECF irá Efetuar a ReduçãoZ Automaticamente deixando esta Método totalmente a cargo de seu aplicativo.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.
- Este Método irá configurar diretamente a impressora.
- O Default da dll irá setar pra 0 este recurso. Para habilitá-lo, você deverá chamar este método no start-up de sua aplicação.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_CfgRedZAutomatico("1")

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FI_CfgRedZAutomaticoCupom('1');


Daruma_FI_EnviarTextoCNF(Índice 1209)

Método: Daruma_FI_EnviarTextoCNF [Índice 1209]
Top

· Definição do Método:
Imprime um Texto Livre Seja em Modo Não Fiscal Vinculado ou em modo Relatório Gerencial, este método permite que independente de onde voce estiver na operação do ECF você possa Efetuar a Impressão de Um Texto Livre, sem a necessidade de Identificar em que Modo o ECF está, em Modo Não Fiscal Vinculado ou em modo Relatório Gerencial.

· Parâmetros do Método: (1 Parâmetro)
Texto: String com o Texto a ser impresso até 618 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- No Modo Não Fiscal Vinculado você tem 2(dois) Minutos para Realizar a Impressão do Texto e no modo Relatório Gerencial Você tem 10(dez) Minutos para Realizar a Impressão do Texto.
- Nas Impressoras Térmicas FS600 e FS200T o gerencial permanecerá apneas 2(dois) Minutos aberto.
- Este Método pode ser aplicado também para espaçar as 2 vias do TEF, bastanto para isso passar um espaço em branco.

Exemplos:
· Exemplo em Visual Basic 6.0:
Dim Str_Texto_Livre As String

Str_Texto_Livre = "Texto Livre com até 600 caracteres"
Int_Retorno = Daruma_FI_EnviarTextoCNF(Str_Texto_Livre)

· Exemplo em Delphi 7.0:
var
Str_Texto_Livre: String;
begin
Str_Texto_Livre := 'Texto Livre com até 600 caracteres';

Int_Retorno := Daruma_FI_EnviarTextoCNF( pchar( Str_Texto_Livre ) );


Daruma_FI_FechaPortaSerial(Índice 601)

Método: Daruma_FI_FechaPortaSerial [Índice 601]
Top

· Definição do Método:
Fecha a porta serial.

· Parâmetros da Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
0: Não foi possível fechar a Porta Serial.

· Observações:
- Caso você tenha uma impressora não fiscal conectada ao micro ou até mesmo uma impressora de qualquer outro fabricante, então deverá estar com o flag Produto setado para DS300.
- Por Default a Daruma32.dll faz o gerenciamento de fluxo de dados.

Exemplos:
· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_FechaPortaSerial()

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FI_FechaPortaSerial();


Daruma_FI_FundoCaixa(Índice 1212)

Método: Daruma_FI_FundoCaixa [Índice 1212]
Top

· Definição do Método:
Faz um suprimento na impressora (entrada de dinheiro).

· Parâmetros do Método: (2 Parâmetros)
1. Valor: String com o Valor do suprimento com até 14 dígitos (2 casas decimais).
2. Forma Pagamento: String com a Forma de pagamento com até 16 caracteres. Se não for informada, o suprimento será feito em Dinheiro.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Valor_do_Fundo_Caixa As String
Dim Str_Forma_de_Pagamento As String

Str_Valor_Fundo_Caixa = "0,10"
Str_Forma_de_Pagamento = "Dinheiro"
Int_Retorno = Daruma_FI_FundoCaixa(Str_Valor_do_Fundo_Caixa, Str_Forma_de_Pagamento)

· Exemplo em Delphi 7.0:
var
Str_Valor_do_Fundo_Caixa: String;
Str_Forma_de_Pagamento: String;
begin
Str_Valor_do_Fundo_Caixa := '0,10';
Str_Forma_de_Pagamento := 'Dinheiro';

Int_Retorno := Daruma_FI_FundoCaixa( pchar( Str_Valor_do_Fundo_Caixa ), pchar( Forma_de_Pagamento ) );


Daruma_FIR_LeituraMemoriaFiscalData(Índice 3102)

Método: Daruma_FIR_LeituraMemoriaFiscalData [Índice 3102]
Top

· Definição do Método:
Emite a leitura da memória fiscal da impressora por intervalo de datas.

· Parâmetros do Método: (2 Parâmetros)
1. Data Inicial: String com a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
2. Data Final: String com a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

· Este Método retornará um dos Valores Inteiros listados Abaixo: 0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método:Daruma_FIR_StatusCupomFiscal(Índice 3404).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Data_Inicial: String;
Str_Data_Final: String;
begin
if (((Data_Inicial.Text)=('')) and ((Data_Final.Text)=(''))) then
exit;
Str_Data_Inicial := '28/12/04';
Str_Data_Final := '28/12/04';

Int_Retorno := Daruma_FIR_LeituraMemoriaFiscalData( pchar( Str_Data_Inicial ), pchar( Str_Data_Final ) );
end;


Daruma_FIR_NumeroOperacoesNaoFiscais(Índice 3418)

Método: Daruma_FIR_NumeroOperacoesNaoFiscais [Índice 3418]
Top

· Definição do Método:
Retorna o número de operações não fiscais executadas na impressora.

· Parâmetros do Método:
Operações: Variável String por referência com 6(seis) posições para receber o número de operações.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,6);
Int_Retorno := Daruma_FIR_NumeroOperacoesNaoFiscais(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FI_PalavraStatusBinario(Índice 1482)

Método: Daruma_FI_PalavraStatusBinario [Índice 1482]
Top

· Definição do Método:
Retorna o Status do ECF com 12 Bytes de Status (Total de 45 Bits), não apenas o ACK, ST1 e ST2, mas 14 Bytes de Status que o ECF devolve de forma extendida em cada método.

· Parâmetros do Método:
String com 50 Posições onde devolverá 0(zero) e 1(um) indicando cada Status do ECF

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método não é compatível com a aimpressora FS2000 (duas estações).
- Este Método não é compatível com a aimpressora FS2100T (duas estações).
- Este Método devolverá 48 caracteres cada um indicando o status 0(zero) ou 1(um) de acordo com a Tabela Abaixo.
Éstas 48 Posições é resultado dos 12 Bytes de status que o ECF permite trabalhar, com 4 Bits cada Bytes (12*4) Totalizando 45 Bits ou caracteres que serão escritos na variável por refência que você passou neste Método.
São 45 Bits e Não 48 Bits porque o Byte 12 não é destrinchado em 4 Bits mas sim em um único Valor Inteiro.

· Para Análise do Status escrito em sua variável siga a tabela abaixo:

Bit/ Posição | Se estiver Valendo 0(zero) significa: | Se Estiver Valendo 1(um) significa:
1 | Gaveta Fechada | Gaveta Aberta
2 | Impressora Operacional, OK | Impressora Com Falha Mecanica
3 | Doc Posicionado para Autenticar | Sem Doc Posicionado para Autenticar
4 | Impressora com Papel | Impressora Sem Papel
5 | Impressora On-Line | Impressora Off-Line
6 | Periferico Conectardo a Porta Auxiliar | Perifericio não Conectado a porta Auxiliar
7 | Não há Redução Z Pendente | Há Redução Z pendente
8 | Pouco Papel Não Detectado Imp. OK | Pouco Papel Detectado
9 | Impressora em Modo Intervenção Tec. | Impressora em Modo Normal
10 | Sensor de Autenticação Desabilitado | Sensor de Autenticação OK
11 | Guilhotina Desabilitada | Guilhotina OK
12 | Fechamento automatico do ECF Desab. | Fechamento Automatico do ECF Habilitado
13 | Relatorio Gerencial não Aberto | Relatorio Gerencial Aberto
14 | Cupom Fiscal Não Aberto | Cupom Fiscal Aberto
15 | Buffer de Comunicacao Com Dados | Buffer de Comunicação Vazio
16 | Impressão Encerrada | Impressão em Andamento
17 | Jumper de Modo Operação Presente | Jumper de Modo Operação removido
18 | Impressora Operacaonal | Impressora em Modo Fiscal
19 | Memoria Fiscal Presente | Memoria Fiscal Ausente, Não Inicializada.
20 | Modo Normal | Modo Treinamento
21 | Configuração do ECF Habilitado (Após uma Redução Z e antes de uma X) | Configuração do ECF Inibida até a Próxima Leitura X
22 | Leitura X de Abertura de Dia ainda não Emitida | Leitura X de começo de Dia já Emitida
23 | Impressora com Dia Fiscal Aberto | Impressora Com a Z de "Hoje" já emitida
24 | Fita Detalhe OK | Fim do Papel da Fita Detalhe
25 | SEMPRE ZERO
26 | SEMPRE ZERO
27 | SEMPRE ZERO
28 | SEMPRE ZERO
29 | SEMPRE ZERO
30 | SEMPRE ZERO
31 | SEMPRE ZERO
32 | Impressão Concluida | Impressão em Andamento
33 | SEMPRE ZERO
34 | SEMPRE ZERO
35 | MF Operacional | MF DEsconectada
36 | Totalizadores Fiscais OK | Totalizadores Fiscais Danificados
37 | MF OK | Erro na Leitura da MF
38 | Gravacao da MF OK | Erro na Gravacao da MF
39 | Relogio Interno OK | Erro no Relogio Interno
40 | Cliche do Proprietario OK | Cliche do Proprietario Danificado
41 | SEMPRE ZERO
42 | SEMPRE ZERO
43 | SEMPRE ZERO
44 | SEMPRE ZERO
45 | 0 = Impressora OK 1 = Falha no TacoGerador 2 = Falha no Sensor de Margem 4 = Falha de Guilhotina 8 = Firmware Invalido | Caso esta Posicao seja diferente de 0(zero) é porque tem problema Mecanico no ECF, sendo o mesmo indicado por um dos valores ao lado.

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(50)
Int_Retorno = Daruma_FI_PalavraStatusBinario(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,50);
Int_Retorno := Daruma_FI_PalavraStatusBinario(Str_Informacao);
Edit1.Lines.Text := (Str_Informacao);


Daruma_FI_VendeItemDepartamento(Índice 1004)

Método: Daruma_FI_VendeItemDepartamento [Índice: 1004]
Top

· Definição do Método:
Vende o item na impressora fiscal, podendo indicar a unidade de medida e também um índice para o departamento .

· Parâmetros do Método: (9 Parâmetros).
1. Código: STRING até 49 caracteres com o código do produto.
2. Descrição: STRING até 201 caracteres com a descrição do produto.
3. Alíquota: STRING com o valor ou o índice da alíquota tributária. Se for o valor deve ser informado com o tamanho de 4 caracteres ou 5 com a vírgula. Se for o índice da alíquota deve ser 2 caracteres. Ex. (18,00 para o valor ou 05 para o índice)
4. Valor Unitário: STRING com até 9 dígitos para o valor (tres casas decimais).
5. Quantidade: STRING com até 7 dígitos para a quantidade. Na venda com departamento a quantidade é fracionária e são 3 casas decimais.
6. Desconto: STRING com o desconto por valor com até 10 dígitos (2 casas decimais).
7. Acréscimo: STRING com o acréscimo por valor com até 10 dígitos (2 casas decimais).
8. Indíce Departamento: STRING com o índice do departamento com 2 dígitos.
9. Unidade Medida: STRING com no máximo 2 caracteres para a unidade de medida. Caso não seja passado nenhum caracter a unidade não é impressa.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Para impressoras Térmicas (FS600 / FS2100t) deverá ser usado o Método Daruma_FI_VendeItem
- Acentuação e/ou caracteres especiais, não são aceitos na descrição do item.
- Para o caso de você ter 2 alíquotas de com o mesmo valor, sendo uma de ICMS e a outra ISS você deverá passar da seguinte maneira:
1 - Indicando o seu índice Ex: TA ou SB.
2 - Indicando direto no valor da alíquota, tipo "I" para ICMS ou "S" para ISS Ex: I18,00 ou S18,00.
3 - Na impressora Duas Estações FS2000 tamanho máximo para o código do produto poderá ser de 6 digitos.
- O valor do desconto "nunca" poderá ser igual ou maior do que o valor do item.
- Caso a venda seja de um ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço, então o desconto não será permitido. Importante para habilitar o desconto sobre serviço é preciso que seja feito por meio de uma IT(interveção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja habilitado para desconto em serviço então para um cupom onde os itens sejam com alíquota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.
- Na FS345 versão 1.11(somente nesta versão), você deve passar no parâmetro descrição até 7 caracteres e não podera dar desconto, para dar desconto e vender um item que tenha uma descrição maior do que 7 caracteres, tenha desconto no item use o Método Daruma_FI_VendeItemTresDecimais. Esta regra só é válida para a versão 1.11.
- Para vender item em uma única linha você deverá passar o item com o código de até 13 caracteres e a descrição de até 6 caracteres ou vice-versa. Caso não se cumpra ésta condição, então será vendido automáticamente em 2 linhas.
- Caso o item tenha desconto ou três decimais também será vendido automáticamente em 2 linhas.
- Se o cupom estiver fechado a dll abrirá o cupom para você.
- Isento (duas letras II maiúsculas).
- Não tributado (duas letras NN maiúsculas).
- Substituição tributária (duas letras FF maiúsculas).

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo As String
Dim Str_Descricao As String
Dim Str_Aliquota As String
Dim Str_Valor_Unitario As String
Dim Str_Quantidade As String
Dim Str_Valor_do_Acrescimo As String
Dim Str_Valor_do_Desconto As String
Dim Str_Indice_Departameto As String
Dim Str_Unidade_de_Medida As String

Str_Codigo = "987654"
Str_Descricao = "bolacha"
Str_Aliquota = "FF"
Str_Valor_Unitario = "0,090"
Str_Quantidade = "1,000"
Str_Valor_do_Acrescimo = "0,01"
Str_Valor_do_Desconto = "0"
Str_Indice_Departameto = "01"
Str_Unidade_de_Medida = "UN"

Int_Retorno = Daruma_FI_VendeItemDepartamento(Str_Codigo, _
Str_Descricao, Str_Aliquota, Str_Valor_Unitario, Str_Quantidade, _
Str_Valor_do_Acrescimo, Str_Valor_do_Desconto, Str_Indice_Departameto, _
Str_Unidade_de_Medida)

· Exemplo em Delphi 7.0:
var
Str_Codigo: String;
Str_Descricao: String;
Str_Aliquota: String;
Str_Valor_Unitario: String;
Str_Quantidade: String;
Str_Valor_do_Desconto: String;
Str_Valor_do_Acrescimo: String;
Str_Indice_Departamento: String;
Str_Unidade_de_Medida: String;
begin
Str_Codigo := '987654';
Str_Descricao := 'bolacha';
Str_Aliquota := 'FF';
Str_Valor_Unitario := '0,090';
Str_Quantidade := '1,000';
Str_Valor_do_Desconto := '0,01';
Str_Valor_do_Acrescimo := '0';
Str_Indice_Departamento := '01';
Str_Unidade_de_Medida := 'UN';

Int_Retorno := Daruma_FI_VendeItemDepartamento( pchar( Str_Codigo ), pchar( Str_Descricao ), pchar( Str_Aliquota ), pchar( Str_Valor_Unitario ) , pchar( Str_Quantidade ), pchar( Str_Valor_do_Desconto ), pchar( Str_Valor_do_Acrescimo ), pchar( Str_Indice_Departamento ), pchar( Str_Unidade_de_Medida ) );


Daruma_FI_VendeItemTresDecimais(Índice 1019)

Método: Daruma_FI_VendeItemTresDecimais [Índice: 1019]

Top

· Definição do Método:
Vende o item na impressora fiscal, 1.11.

· Parâmetros do Método: (7 Parâmetros).
1. Código: String com até 13 caracteres contendo o código do produto.
2. Descrição: String até 170 caracteres com a descrição do produto.
3. Alíquota: String com o valor ou o índice da alíquota tributária. Se for o valor deve ser informado com o tamanho de 4 caracteres ou 5 com a vírgula. Se for o índice da alíquota deve ser 2 caracteres. Ex. (18,00 para o valor ou 05 para o índice).
4. Quantidade: String com até 4 dígitos para quantidade inteira e 7 dígitos para quantidade fracionária. Na quantidade fracionária são 3 casas decimais.
5. Valor Unitário: String até 8 dígitos para valor unitário.
6. Acréscimo Desconto: String "A" para Acréscimo e "D" para Desconto.
7. Percentual Acréscimo Desconto: String com até 4 dígitos para o acréscimo ou desconto (2 casas decimais).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Para impressoras Térmicas (FS600 / FS2100t) deverá ser usado sempre o Método Daruma_FI_VendeItem
- Acentuação e/ou caracteres especiais, não são aceitos na descrição do item.
- Este Método foi implementado para vender item com três decimais na FS345 vesão 1.11.
- Este Médoto é exclusivo da FS345 versão 1.11.
- O valor do acréscimo ou desconto nunca poderá ser igual ou maior do que o valor do item.
- Caso a venda seja de um ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço, então o desconto não será permitido. Importante para habilitar o desconto sobre serviço é preciso que seja feito por meio de IT(interveção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja habilitado para desconto em serviço então para um cupom onde os itens sejam com alíquota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.
- Isento (duas letras II maiúsculas).
- Não tributado (duas letras NN maiúsculas).
- Substituição tributária (duas letras FF maiúsculas).

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Codigo As String
Dim Str_Descricao As String
Dim Str_Aliquota As String
Dim Str_Quantidade As String
Dim Str_Valor_Unitario As String
Dim Str_Acrescimo_ou_Desconto As String
Dim Str_Percentual_Acrescimo_ou_Desconto As String

Str_Codigo = "1234567890123"
Str_Descricao = "coca-cola"
Str_Aliquota = "NN"
Str_Quantidade = "0,500"
Str_Valor_Unitario = "1,999"
Str_Acrescimo_ou_Desconto = "D"
Str_Percentual_Acrescimo_ou_Desconto = "05,00"

Int_Retorno = Daruma_FI_VendeItemTresDecimais(Str_Codigo, Str_Descricao, _
Str_Aliquota, Str_Quantidade, Str_Valor_Unitario, Str_Acrescimo_ou_Desconto, _
Str_Percentual_Acrescimo_ou_Desconto)

· Exemplo em Delphi 7.0:
var
Str_Codigo: String;
Str_Descricao: String;
Str_Aliquota: String;
Str_Quantidade: String;
Str_Valor_Unitario: String;
Str_Desconto_ou_Acrescimo: String;
Str_Percentual_de_Desconto_ou_Acrescimo: String;
begin
Str_Codigo := '1234567890123';
Str_Descricao := 'coca-cola';
Str_Aliquota := 'NN';
Str_Quantidade := '0,500';
Str_Valor_Unitario := '1,999';
Str_Desconto_ou_Acrescimo := 'D';
Str_Percentual_de_Desconto_ou_Acrescimo := '05,00';

Int_Retorno := Daruma_FI_VendeItemTresDecimais( pchar( Str_Codigo ), pchar( Str_Descricao ), pchar( Str_Aliquota ), pchar( Str_Quantidade ) , pchar( Str_Valor_Unitario ), pchar( Str_Desconto_ou_Acrescimo ), pchar( Str_Percentual_de_Desconto_ou_Acrescimo ) );


Daruma_FIR_AbreComprovanteNaoFiscalVinculado(Índice 3203)

Método: Daruma_FIR_AbreComprovanteNaoFiscalVinculado [Índice 3203]
Top

· Definição do Método:
Abre o comprovante não fiscal vinculado.

Parâmetros do Método: (3 Parâmetros)
1. Forma Pagamento: Forma de pagamento com até 16 caracteres.
2. Valor: Valor pago na forma de pagamento com até 14 dígitos (2 casas decimais).
3. Número Cupom: Número do cupom a que se refere o comprovante com até 6 dígitos.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- A forma de pagamento deve ter sido utilizada no cupom, mesmo sendo a forma de Pagamento "Dinheiro".
- Só pode ser emitido 1(um) comprovante não fiscal por forma de pagamento.
- Os parâmetros "Valor" e "Numero do Cupom" tornam-se obrigatórios se o comprovante emitido não for referente a Última Forma de Pagamento do Cupom Fiscal. Ou seja, se você teve "Dinheiro" e "Cheque" no último Cupom Fiscal, então para abrir um vinculado em Dinheiro terá de passar o Valor da primeira forma de pagamento.
- O cupom fiscal deverá estar fechado. Você poderá verificar o status através do método:Daruma_FIR_StatusCupomFiscal(Índice 3404).

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Forma_de_Pagamento: String;
Str_Valor_Pago: String;
Str_Numero_do_Cupom: String;
begin
Str_Forma_de_Pagamento := 'Dinheiro';
Str_Valor_Pago := '';
Str_Numero_do_Cupom := '';

Int_Retorno := Daruma_FIR_AbreComprovanteNaoFiscalVinculado( pchar( Str_Forma_de_Pagamento ), pchar( Str_Valor_Pago ), pchar( Str_Numero_do_Cupom ) );


Daruma_FIR_AbreCupomBalcao(Índice 3053)

Método: Daruma_FIR_AbreCupomBalcao [Índice: 3053]
Top

· Definição do Método:
Abre o cupom fiscal para a venda balcão, que pode ser feita através do método: Daruma_FIR_VendeItemBalcao(Índice 3054).

· Parâmetros do Método:
Não há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_AbreCupomBalcao();


Daruma_FIR_AbreCupomRestaurante(Índice 3000)

Método: Daruma_FIR_AbreCupomRestaurante [Índice: 3000]
Top

· Definição do Método:
Abre o cupom fiscal e imprime os itens que foram previamente lançados na mesa através do método: Daruma_FIR_RegistrarVenda(Índice 3048).

· Parâmetros do Método: (1 Parâmetro, opcional).
Numero Mesa:String com até três carácteres contendo o número da mesa a ser aberta.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var Str_Numero_da_Mesa: String;
begin
Str_Numero_da_Mesa := '123';

Int_Retorno := Daruma_FIR_AbreCupomRestaurante( pchar( Str_Numero_da_Mesa ) );


Daruma_FIR_AbreRecebimentoNaoFiscal(Índice 3210)

Método: Daruma_FIR_AbreRecebimentoNaoFiscal [Índice 3210]

Top

· Definição do Método:
Abre o recebimento não fiscal "CNFNV".

· Parâmetros do Método: (6 Parâmetros)
1. Descrição do Totalizador: Neste parâmetro você deve passar a descrição do totalizador.
2. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
3. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
4. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual.
5. Valor do Recebimento: String com o valor da forma de pagamento com até 14 dígitos.
6. Texto Livre. String com até 48 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método abre o recebimento não fiscal que permanece aberto até que seja chamado o Método: Daruma_FIR_EfetuaFormaPagamentoNaoFiscal(Índice ????).
Importante! verifique o status do recebimento antes de tentar abrí-lo através do Método:Daruma_FIR_StatusComprovanteNaoFiscalNaoVinculado(Índice ????)
- Este Método deverá ser usado sempre que for preciso informar mais de uma forma de pagamento, no Recebimento.
- Não existe Método para fechamento deste Método, o mesmo se fechará automaticamente, quando o total do recebimento for pago.
- Caso seja passado no parâmetro Índice do Totalizador Sangria, o Método será executado, porém o cupom será fechado automaticamente.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Descricao_do_Totalizador: String;
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_Acrescimo_ou_Desconto: String;
Str_Valor_Acrescimo_ou_Desconto: String;
Str_Valor_do_Recebimento: String;
Str_Texto_Livre: String;
begin
Str_Descricao_do_Totalizador := 'Conta de Luz';
Str_Acrescimo_ou_Desconto := 'D';
Str_Tipo_Acrescimo_ou_Desconto := '$';
Str_Valor_Acrescimo_ou_Desconto := '0,01';
Str_Valor_do_Recebimento := '1,00';
Str_Texto_Livre := 'Referente ao pagamento da 1 primeira parcela';

Int_Retorno := Daruma_FIR_AbreRecebimentoNaoFiscal( pchar( Str_Descricao_do_Totalizador ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Tipo_Acrescimo_ou_Desconto ), pchar( Str_Valor_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Recebimento ), pchar( Str_Texto_Livre ) );

end;


Daruma_FIR_AcionaGaveta(Índice 3310)

Método: Daruma_FIR_AcionaGaveta [Indice 3310]
Top

· Definição do Método:
Abre a gaveta de dinheiro.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_AcionaGaveta();
end;


Daruma_FIR_AdicionaProdutoCardapio (Índice 555)

Método: Daruma_FIR_AdicionaProdutoCardapio [Índice 555]
Top

· Definição do Método:
Adiciona itens ao cardápio na impressora, para poder vender o item através do método: Daruma_FIR_RegistrarVenda(Índice 3048).

· Parâmetros do Método: (4 Parâmetros)
1. Código: String até 04 caracteres com o código do produto.
2. Valor Unitário: String com até 8 dígitos, considerando duas cadas decimais Ex.: 1,00.
3. Alíquota: String com a alíquota Ex.:05,00 ou 18,00 ou ainda o valor da alíquota previamente cadastrada no ECF. Passe II para Isento, NN para não Incidente, FF para Substituição Tributária.
4. Descrição: String com até 18 caracteres com a descrição do produto.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Na versão 1.20, não necessita realizar o cadastro do item no cardápio. Pois o mesmo é cadastrado no momento em que a venda acontece.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Codigo: String;
Str_Valor_Unitario: String;
Str_Aliquota: String;
Str_Descricao: String;
begin
Str_Codigo := '0001';
Str_Valor_Unitario := '02,00';
Str_Aliquota := '1800';
Str_Descricao := 'Fanta Diet';

Int_Retorno := Daruma_FIR_AdicionaProdutoCardapio(pchar( Str_Codigo ), pchar( Str_Valor_Unitario ), pchar( Str_Aliquota ), pchar( Str_Descricao ));


Daruma_FIR_AutenticacaoStr(Índice 3302)

Método: Daruma_FIR_AutenticacaoStr [Índice 3302]
Top

· Definição do Método:
Permite a autenticação de documentos com a adição de uma String de até 13 caracteres.

· Parâmetros do Método: (1 Parâmetro)
String: de até 13 caracteres.

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método permite ao usuário entrar com até 13 caracteres onde poderá utilizar para texto livre, observações ou até mesmo uma criptografia.
- Deverá ser executada imediatamente após um recebimento não fiscal ou o término de um cupom fiscal.
- Poderá ser repetido até 4 vezes para cada recebimento, após isso o método será ignorado.
- Na impressora fiscal Daruma, serão aguardados 5 segundos para o posicionamento do documento e autenticará no documento a data, hora, número da loja, número do caixa e o número do último cupom fiscal. Se decorrido os 5 segundos sem o posicionamento do documento.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var Str_Autenticacao_Str: String;
begin
Str_Autenticacao_Str := 'Framework32';

Int_Retorno := Daruma_FIR_AutenticacaoStr( pchar( Str_Autenticacao_Str ) );
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_CancelaCupom(Índice 3014)

Método: Daruma_FIR_CancelaCupom [Índice: 3014]
Top

· Definição do Método:
Cancela o último cupom emitido.

· Parâmetros do Método:
Não há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método, só funciona, após uma venda efetuada no balcão.
- Não poderá ter ocorrido ReduçãoZ e nem LeituraX após a emissão do cupom.
- Você não podera ter emitido um outro cupom fiscal, sangria, suprimento.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_CancelaCupom();
end;


Daruma_FIR_CancelaItem(Índice 3071)

Método: Daruma_FIR_CancelaItem [Índice: 3071]

Top

· Definição do Método:
Cancela o último item vendido.

· Parâmetros do Método:
Não há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Ao menos um item deve ter sido vendido.
- Este método só é compatível com a impressora FS318 versão 1.20.

Exemplos:

· Exemplo em Visual Basic 6.0:
Dim Str_Mesa As String
Dim Str_Codigo As String
Dim Str_Descricao As String
Dim Str_Aliquota As String
Dim Str_Quantidade As String
Dim Str_Valor_Unitario As String
Dim Str_Acrescimo_ou_Desconto As String
Dim Str_Valor_do_Acrescimo_ou_Desconto As String

Str_Mesa = "000"
Str_Codigo = "7896003704549"
Str_Descricao = "bolacha""
Str_Aliquota = "II"
Str_Quantidade = "1"
Str_Valor_Unitario = "0,10"
Str_Acrescimo_ou_Desconto = "A"
Str_Valor_do_Acrescimo_ou_Desconto = "0,00"

Int_Retorno = Daruma_FIR_CancelaItem(Str_Mesa, Str_Codigo, Str_Descricao, _
Str_Aliquota, Str_Quantidade, Str_Valor_Unitario, Str_Acrescimo_ou_Desconto, _
Str_Valor_do_Acrescimo_ou_Desconto)

· Exemplo em Delphi 7.0:
var
Str_Mesa: String;
Str_Codigo: String;
Str_Descricao: String;
Str_Aliquota: String;
Str_Quantidade: String;
Str_Valor_Unitario: String;
Str_Acrescimo_ou_Desconto: String;
Str_Valor_do_Acrescimo_ou_Desconto: String;
begin
Str_Mesa := '000';
Str_Codigo := '7896003704549';
Str_Descricao := 'bolacha';
Str_Aliquota := 'II';
Str_Quantidade := '1';
Str_Valor_Unitario := '0,10';
Str_Acrescimo_ou_Desconto := 'A';
Str_Valor_do_Acrescimo_ou_Desconto := '0,00';

Int_Retorno := Daruma_FIR_CancelaItem(pchar( Str_Mesa ), pchar( Str_Codigo ), pchar( Str_Descricao ), pchar( Str_Aliquota ), pchar( Str_Quantidade ), pchar( Str_Valor_Unitario ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Acrescimo_ou_Desconto ) );


Daruma_FIR_CancelaItemBalcao(Índice 3055)

Método: Daruma_FIR_CancelaItemBalcao [Índice: 3055]

Top

· Definição do Método:
Cancela o último item vendido.

· Parâmetros do Método: (1 Parâmetro)
Código: String com até 5 dígitos, com o número do item a ser cancelado.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Ao menos um item deve ter sido vendido.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Codigo_do_Item: String;
begin
Str_Codigo_do_Item := '0001';

Int_Retorno := Daruma_FIR_CancelaItemBalcao(pchar( Str_Codigo_do_Item ));


Daruma_FIR_Cancelamentos(Índice 3416)

Método: Daruma_FIR_Cancelamentos [Índice 3416]
Top

· Definição do Método:
Retorna o valor acumulado dos itens e dos cupons cancelados, referente ao movimento atual.

· Parâmetros do Método:
Cancelamentos: Variável por refêrencia com 14(quatorze) posições para receber o valor dos cancelamentos com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FIR_Cancelamentos(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_CancelarVenda(Índice 3045)

Método: Daruma_FIR_CancelarVenda [Índice: 3045]

Top

· Definição do Método:
Cancela qualquer item dentre os cem (100) últimos itens vendidos.

· Parâmetros do Método:
Não Há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cancelamento só poderá ser realizado imediatamente após a emissão do cupom fiscal.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Numero_da_Mesa: String;
Str_Codigo: String;
Str_Quantidade: String;
Str_Acrescimo_ou_Desconto: String;
Str_Valor_do_Acrescimo_ou_Desconto: String;
begin
Str_Numero_da_Mesa := '123';
Str_Codigo := '0001';
Str_Quantidade := '4,000';
Str_Acrescimo_ou_Desconto := 'A';
Str_Valor_do_Acrescimo_ou_Desconto := '0,50';
Int_Retorno := Daruma_FIR_CancelarVenda( pchar( Str_Numero_da_Mesa ), pchar( Str_Codigo ), pchar( Str_Quantidade ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Acrescimo_ou_Desconto ));


Daruma_FIR_CardapioSerial(Índice 652)

Método: Daruma_FIR_CardapioSerial [Indice 652]
Top

· Definição do Método:
Resgata pela porta serial, os itens cadastrados na impressora. Importante! Este método escreverá um arquivo chamado Retorno.txt no path que estiver configurado na chave Path.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro. Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_CardapioSerial();
end;


Daruma_FIR_CfgEspacamentoCupons(Índice 507)

Método: Daruma_FIR_CfgEspacamentoCupons [Índice 507]
Top

· Definição do Método:
Configura o Número de Linhas entre cupons, isso permite uma economia de Bobina e um controle do avanço entre os documentos.

· Parâmetros do Método: (1 Parâmetro)
2(Dois) dígitos com o número de linhas que você deseja avançar após a emissão de qualquer Documento.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro. Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
-Este Método irá configurar diretamente a impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Valor: String;
begin
Str_Valor := InputBox('Daruma Framework', 'Entre com o número de linhas:', '15');
if Str_Valor = '' Then
Exit;

Int_Retorno := Daruma_FIR_CfgEspacamentoCupons(pchar(Str_Valor));


Daruma_FIR_CfgLimiarNearEnd(Índice 509)

Método: Daruma_FIR_CfgLimiarNearEnd [Índice 509]
Top

· Definição do Método:
Permite Configurar quantas linhas você deseja atrasar o sensor de Pouco Papel, ou seja, você pode indicar que o sensor de pouco papel só comece a sinalizar pouco papel quando a bobina estiver bem próxima do final, por Exemplos, em bobina de 22MM o valor de 0450 indica que o ECF irá sinalizar pouco papel quanto realmente estiver bem próximo do final da bobina. Isso economiza mais Papel através de um Aproveitamento melhor do Sinal de "Pouco Papel"

· Parâmetros do Método: (1 Parâmetro)
String com 4(quatro) dígitos que indica quantas linhas o sinal de pouco papel deve ser Atrasado, o Valor 0000 indica que o sinal fica desabilitado.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro. Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método irá configurar diretamente a impressora.
- O valor configurado irá funcionar como um adiador do retorno de pouco papel. Por exemplo se você estiver com o valor de 0450 linhas, isso quer dizer que aproximadamente 0450 linhas após a bobina ter passado pelo sensor é que ela passará a devolver o status de pouco papel.
- Este método não é compatível com a impressora FS2000.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Numero_Linhas: String;
begin
Str_Numero_Linhas := InputBox('Entre com o número de linhas para o aviso de Pouco Papel:', 'Daruma Framework', '0450');
if Str_Numero_Linhas = '' Then
Exit;

Int_Retorno := Daruma_FI_CfgLimiarNearEnd(Str_Numero_Linhas);


Daruma_FIR_CGC_IE(Índice 3413)

Método: Daruma_FI_CGC_IE [Índice 3413]
Top

· Definição do Método:
Retorna o CGC e a Inscrição Estadual do cliente/proprietário cadastrado na impressora.

· Parâmetros do Método:
CGC: Variável String por referência com 18(dezoito) posições para receber o CGC.
IE: Variável String por referência com 15 posições para receber a Inscrição Estadual.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_CGC: String;
Str_IE: String;
begin
SetLength (Str_CGC,18);
SetLength (Str_IE,15);
Int_Retorno := Daruma_FIR_CGC_IE(Str_CGC, Str_IE);
Memo1.Lines.Text := Pchar(' CGC:' + Str_CGC + ' IE:' + Str_IE);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_ConferenciaMesa(Índice 3046)

Método: Daruma_FIR_ConferenciaMesa [Índice: 3046]
Top

· Definição do Método:
Emite a conferência (conta de mesa) de uma mesa em aberto, onde tenham sido lançados ítens.

Atenção: este cupom não tem valor fiscal, e serve especificamente para refletir os ítens consumidos na mesa.

· Parâmetros do Método: (2 Parâmetros).
1. Numero Mesa: String com até 03 caracteres contendo o número da mesa.
2. Mensagem Promocional: String com até 90 caracteres com a mensagem promocional.

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:


Daruma_FIR_ContadoresTotalizadoresNaoFiscais(Índice 3435)

Método: Daruma_FIR_ContadoresTotalizadoresNaoFiscais [Índice 3435]
Top

· Definição do Mátodo:
Retorna o número de vezes em que os totalizadores não sujeitos ao ICMS foram usados.

· Parâmetros do Método:
Contadores: Variável por refêrencia com 44(quarenta e quatro) posições para receber os contadores dos totalizadores.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- A impressora fiscal Daruma, permite a programação de até 50 totalizadores não fiscais, porém esse Método retorna somente os contadores dos 9 primeiros totalizadores cadastrados.
- O conteúdo da variável retornada será 36 dígitos separados de 4 em 4 por vírgura que representam os 9 primeiros totalizadores. Ex.: "0001,0003,0001,0005,0004,0002,0003,0004,0007"
- O primeiro valor corresponde ao número de vezes que o totalizador 01 foi usado, o segundo corresponde ao totalizador 02 e assim sucessivamente. A contagem Inicia-se do contador 03 em diante pois o 01 e 02 sempre sera Sangria e Suprimento.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,44);
Int_Retorno := Daruma_FIR_ContadoresTotalizadoresNaoFiscais(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_DadosUltimaReducao(Índice 3410)

Método: Daruma_FIR_DadosUltimaReducao [Índice 3410]
Top

· Definição do Método:
Retorna os dados da impressora no momento da última Redução Z.

· Parâmetros do Método:
Dados Redução: Variável por refêrencia com o tamanho de 631(seiscentos e trinta e uma) posições para receber os dados da última redução.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- São retornados os valores das seguintes informações separados por vírgulas:

Exemplos:

· Exemplo em Visual Basic 6.0:
Str_Informacao = Space(631)
Int_Retorno = Daruma_FI_DadosUltimaReducao(Str_Informacao)
TX_Retorno.Text = Str_Informacao

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,631);
Int_Retorno := Daruma_FI_DadosUltimaReducao(Str_Informacao);
Edit1.lines.Text := (Str_Informacao);


Daruma_FIR_DataHoraImpressora(Índice 3434)

Método: Daruma_FIR_DataHoraImpressora [Índice 3434]
Top

· Definição do Método:
Retorna a data e a hora atual da impressora.

· Parâmetros do Método:
1. Data: Variável String por referência com 6(seis) posições para receber a data atual da impressora no formato ddmmaa.
2. Hora: Variável String por referência com 6(seis) posições para receber a hora atual da impressora no formato hhmmss.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Data: String;
Str_Hora: String;
begin
SetLength (Str_Data,6);
SetLength (Str_Hora,6);
Int_Retorno := Daruma_FIR_DataHoraImpressora(Str_Data, Str_Hora );
Memo1.Lines.Text := Pchar(' Data: ' + Str_Data + ' Hora: ' + Str_Hora);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_DataHoraReducao(Índice 3437)

Método: Daruma_FIR_DataHoraReducao [Índice 3437]
Top

· Definição do Método:
Retorna a data e a hora da última Redução Z.

· Parâmetros do Método:
1. Data Redução: Variável String por referência com 6(seis) posições para receber a data da última redução no formato ddmmaa.
2. Hora Redução: Variável String por referência com 6(seis) posições parar eceber a hora da última redução no formato hhmmss.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Data_Rdz: String;
Str_Hora_Rdz: String;
begin
SetLength (Str_Data_Rdz,6);
SetLength (Str_Hora_Rdz,6);
Int_Retorno := Daruma_FIR_DataHoraReducao(Str_Data_Rdz, Str_Hora_Rdz );
Memo1.Lines.Text := pchar(' Data:' + Str_Data_Rdz + ' Hora:' + Str_Hora_Rdz);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_DataMovimento(Índice 3438)

Método: Daruma_FIR_DataMovimento [Índice 3438]
Top

· Definição do Método:
Retorna a data do último movimento.

· Parâmetros do Método:
Data Movimento: Variável por refêrencia 6(seis) posições para receber a data do movimento no formato ddmmaa.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Obsercação:
- Este método retornará na FS600 010100 caso o dia não tenha sido aberto.
- Já na FS345 será retornado 000000.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Data_Mov: String;
begin
SetLength (Str_Data_Mov,6);
Int_Retorno := Daruma_FIR_DataMovimento(Str_Data_Mov);
Memo1.Lines.Text := (' Data: ' + Str_Data_Mov);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_Descontos(Índice 3415)

Método: Daruma_FIR_Descontos [Índice 3415]
Top

· Definição do Método:
Retorna a valor acumulado dos descontos.

· Parâmetros do Método:
Descontos: Variável por refêrencia com 14(quatorze) posições para receber o valor dos descontos com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,14);
Int_Retorno := Daruma_FIR_Descontos(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_EfetuaFormaPagamento(Índice 3008)

Método: Daruma_FIR_EfetuaFormaPagamento [Índice 3008]
Top

· Definição do Método:
Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s) nessa forma.

· Parâmetros do Método: (2 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Valor Forma Pagamento: String com o valor da forma de pagamento com até 14 dígitos.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O fechamento do cupom com formas de pagamento deve ter sido iniciado.
- Se a forma de pagamento não estiver cadastrada na impressora, o Método retorna erro. Para cadastrar a forma de pagamento você deve usar o Método: Daruma_FIR_ProgramaFormasPagamento(Índice 554) e isso imediatamente após uma ReduçãoZ.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma_Pagamento: String;
Str_Valor_da_Forma_Pagamento: String;
begin
Str_Descricao_da_Forma_Pagamento := 'Dinheiro';
Str_Valor_da_Forma_Pagamento := '0,50';

Int_Retorno := Daruma_FIR_EfetuaFormaPagamento( pchar( Str_Descricao_da_Forma_Pagamento ), pchar( Str_Valor_da_Forma_Pagamento ) );


Daruma_FIR_EfetuaFormaPagamentoNaoFiscal(Índice 3211)

Método: Daruma_FIR_EfetuaPagamentoNaoFiscal [Índice 3211]
Top

· Definição do Método:
Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s) nessa forma.

· Parâmetros do Método: (3 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Valor Forma Pagamento: String com o valor da forma de pagamento com até 14 dígitos.
3. Observação Livre: String com até 40 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O fechamento do comprovante não fiscal acontecerá automaticamente assim que o total do comprovante não fiscal seja atingido.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Forma_de_Pagamento: String;
Str_Valor_da_Forma_Pagamento: String;
Str_Texto_Livre: String;
begin
Str_Forma_de_Pagamento := '0,50';
Str_Valor_da_Forma_Pagamento := 'Dinheiro';
Str_Texto_Livre := 'Parcela paga em: 28/12/2004';

Int_Retorno := Daruma_FIR_EfetuaFormaPagamentoNaoFiscal( pchar( Str_Forma_de_Pagamento ), pchar( Str_Valor_da_Forma_Pagamento ), pchar( Str_Texto_Livre ) );
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_EmitirCupomAdicional(Índice 3018)

Método: Daruma_FIR_EmitirCupomAdicional [Índice 3018]
Top

· Definição do Método:
Emite um resumo do Cupom Fiscal Realizado Anteriormente, com Número do cupom, Valor e Data.
Este resumo pode ser utilizado para Controle interno.

· Parâmetros do Método:
Não Há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método enibe a pré_impressão automática do cliche do próximo cupom, implicando diretamente e um gasto Maior - tanto de Bobina Quanto de Tempo na emissão do cupom fincal.
- Este Método não é compatível com a Impressora de Duas Estações FS2000.

Exemplos:

· Exemplo em Visual Basic 6.0:
Int_Retorno = Daruma_FI_EmitirCupomAdicional()

· Exemplo em Delphi 7.0:
begin
Int_Retorno:=Daruma_FI_EmitirCupomAdicional();


Daruma_FIR_RelatotioMesasAbertas(Índice 3050)

Método: Daruma_FIR_RelatorioMesasAbertas [Índice 3050]
Top

· Definição do Método:
Imprime as Mesas que estão em Aberto na FS318 (entenda-se Aberto que ainda não Houve a Emissão do Cupom Fiscal) e tambem será impresso todos os itens que já foram registrados nas respectivas mesas em aberto

· Parâmetros do Método:
Não Há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Caso não haja nenhuma mesa em aberto, será impresso apenas o cabeçalho abaixo:

NAO E DOCUMENTO FISCAL
--------------RELATORIO DE MESAS EM ABERTO--------------
Mesa Cód. Vendido Cancelado D/A Porc
NAO E DOCUMENTO FISCAL

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:


Daruma_FIR_FechaComprovanteNaoFiscalVinculado(Índice 3205)

Método: Daruma_FIR_FechaComprovanteNaoFiscalVinculado [Índice 3205]
Top

· Definição do Método:
Encerrar o comprovante não fiscal vinculado.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O comprovante não fiscal vinculado deve ter sido aberto. Você poderá verificar o status através do método:Daruma_FIR_StatusComprovanteNaoFiscalVinculado(Índice 3403).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_FechaComprovanteNaoFiscalVinculado();
end;


Daruma_FIR_FechaCupomRestaurante(Índice 3011)

Método: Daruma_FIR_FechaCupomRestaurante[Índice 3011]
Top

· Definição do Método:
Fecha o cupom fiscal com a impressão da mensagem promocional.
IMPORTANTE! Com este Método você não poderá informar com mais de um meio de pagamento.

· Parâmetros do Método: (6 Parâmetros)
1. Forma Pagamento: String com o nome da forma de pagamento com no máximo 16 caracteres.
2. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
3. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
4. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual.
5. Valor Pago: String com o valor pago com no máximo 14 dígitos.
6. Mensagem Promocional: String com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Acentuação e/ou caracteres especiais, não são aceitos na mensagem promocional.
- O cupom deve estar aberto.
- Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado.
- A utilização desse Método elimina a obrigatoriedade de uso das Método Daruma_FIR_IniciaFechamentoCupom(Índice 3007), Daruma_FIR_EfetuaFormaPagamento(Índice 3008) e Daruma_FIR_TerminaFechamentoCupom(Índice 3010), que estão implementadas internamente no Método.
- O valor do acréscimo ou desconto nunca poderá ser igual ou maior do que o valor do item.
- Caso a venda seja de um ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço você poderá receber erro 24 ou 44, então o desconto não será permitido. Importante para habilitar o desconto sobre serviço é preciso que seja feito por meio de IT(interveção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja habilitado para desconto em serviço então para um cupom onde os itens sejam com alícota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.
- Se a forma de pagamento não estiver cadastrada na impressora, o Método retorna erro. Para cadastrar a forma de pagamento você deve usar o Método:Daruma_FIR_ProgramaFormasPagamento(Índice 554)e isso emediatamente após uma ReduçãoZ.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Forma_de_Pagamento: String;
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_Acrescimo_ou_Desconto: String;
Str_Valor_Acrescimo_ou_Desconto: String;
Str_Valor_Pago: String;
Str_Mensagem_Promocional: String;
begin
Str_Forma_de_Pagamento := 'Dinheiro';
Str_Acrescimo_ou_Desconto := 'D';
Str_Tipo_Acrescimo_ou_Desconto := '$';
Str_Valor_Acrescimo_ou_Desconto := '0,01';
Str_Valor_Pago := '0,50';
Str_Mensagem_Promocional := 'Obrigado, volte sempre!';

Int_Retorno:=Daruma_FIR_FechaCupomRestaurante( pchar( Str_Forma_de_Pagamento ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Tipo_Acrescimo_ou_Desconto ), pchar( Str_Valor_Acrescimo_ou_Desconto ), pchar( Str_Valor_Pago ), pchar( Str_Mensagem_Promocional ) );


Daruma_FIR_FechaCupomRestauranteResumido(Índice 3012)

Método: Daruma_FIR_FechaCupomRestauranteResumido [Índice 3012]
Top

· Definição do Método:
Permite fechar o cupom de forma resumida, ou seja, sem acréscimo ou desconto no cupom e com apenas uma forma de pagamento. Esse Método lê o subtotal do cupom para fechá-lo e não permite que seja informado o valor do pagamento.

· Parâmetros do Método: (2 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Mensagem Promocional: String com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Acentuação e/ou caracteres especiais, não são aceitos na mensagem promocional.
- O cupom deve estar aberto.
- Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado.
- A utilização desse Método elimina a obrigatoriedade de uso das Método Daruma_FIR_IniciaFechamentoCupom(Índice 3007), Daruma_FIR_EfetuaFormaPagamento(Índice 3008) e Daruma_FIR_TerminaFechamentoCupom(Índice 3010), que estão implementadas internamente no Método.
- Se a forma de pagamento não estiver cadastrada na impressora, o Método retorna erro. Para cadastrar a forma de pagamento você deve usar o Método:Daruma_FIR_ProgramaFormasPagamento(Índice 554) e isso emediatamente após uma ReduçãoZ.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma_de_Pagamento: String;
Str_Mensagem_Promocional: String;
begin
Str_Descricao_da_Forma_de_Pagamento := 'Dinheiro';
Str_Mensagem_Promocional := 'Obrigado, volte sempre!';

Int_Retorno:=Daruma_FIR_FechaCupomRestauranteResumido( pchar( Str_Descricao_da_Forma_de_Pagamento ), pchar( Str_Mensagem_Promocional ) );


Daruma_FIR_FechaRelatorioGerencial(Índice 3201)

Método: Daruma_FIR_FechaRelatorioGerencial [Índice 3201]
Top

· Definição do Método:
Encerra o Relatório Gerencial.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O relatório gerencial deve estar aberto. Você poderá verificar o status através do método:Daruma_FIR_StatusRelatorioGerencial(Índice 3405).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
Int_Retorno := Daruma_FIR_FechaRelatorioGerencial();


Daruma_FIR_FundoCaixa(Índice 3207)

Método: Daruma_FIR_FundoCaixa [Índice 3207]
Top

· Definição do Método:
Faz um suprimento na impressora (entrada de dinheiro).

· Parâmetros do Método: (2 Parâmetros)
1. Valor: String com o Valor do suprimento com até 14 dígitos (2 casas decimais).
2. Forma Pagamento: String com a Forma de pagamento com até 16 caracteres. Se não for informada, o suprimento será feito em Dinheiro.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Valor_do_Fundo_Caixa: String;
Str_Forma_de_Pagamento: String;
begin
Str_Valor_do_Fundo_Caixa := '0,10';
Str_Forma_de_Pagamento := 'Dinheiro';

Int_Retorno := Daruma_FIR_FundoCaixa( pchar( Str_Valor_do_Fundo_Caixa ), pchar( Forma_de_Pagamento ) );
end;


Daruma_FIR_GrandeTotal(Índice 3414)

Método: Daruma_FIR_GrandeTotal [Índice 3414]
Top

· Definição do Método:
Retorna o valor do Grande Total da impressora.

· Parâmetros do Método:
Grande Total: Variável por refêrencia com 18(dezoito) posições para receber o valor do grande total com 2 casas decimais.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,18);
Int_Retorno := Daruma_FIR_GrandeTotal(Str_Informacao );
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_IdentificaConsumidor(Índice 3013)

Método: Daruma_FIR_IdentificaConsumidor [Índice 3013]

Top

· Definição do Método:
Imprime a Identificação do Consumidor, este método deve ser enviado Imediatamente Antes do método de TerminaFechamentoCupom, onde será impresso a mensagem Promocional.

· Parâmetros do Método: (3 Parâmetros)
1. Nome: Nome do Consumidor com até 48 caracteres;
2. Endereço: Endereço do Consumidor com até 48 caracteres;
3. CNPJ ou CPF: Até 42 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Estes Campos são Formatados automaticamente pelo ECF que imprimirá antes da Mensagem Promocional o seguinte:

· Exemplo:
-------------------------------------------------------
Nome: Daruma Automção S.A.
Endereço: Av. Independencia 3.500 Tatuapé
Nº Doc: NNNNNNNN
--------------------------------------------------------

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Nome_do_Consumidor: String;
Str_Endereco: String;
Str_CPF_ou_CNPJ: String;
begin
Str_Nome_do_Consumidor := 'Daruma Automação S.A.';
Str_Endereco := 'Av. Independância Tatuapé';
Str_CPF_ou_CNPJ := '123.456.019-89';

Int_Retorno := Daruma_FIR_IdentificaConsumidor( pchar( Str_Nome_do_Consumidor ), pchar( Str_Endereco ), pchar( Str_CPF_ou_CNPJ ) );


Daruma_FIR_ImprimeCardapio(Índice 651)

Método: Daruma_FIR_ImprimeCardapio [Índice 651]
Top

· Definição do Método:
Imprime os itens que foram cadastrados no cardápio da impressora

· Parâmetros da Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_ImprimeCardapio();
end;


Daruma_FIR_ImprimePrimeiroCupomDividido(Índice 3040)

Método: Daruma_FIR_ImprimePrimeiroCupomDividido [Índice 3040]
Top

· Definição do Método:
Imprime a primeira parte de um cupom onde a conta foi divida.

Passos a serem seguidos para dividir a Conta da Mesa:

1. Daruma_FIR_RegistrarVenda(Índice 3048);
2. Daruma_FIR_ImprimePrimeiroCupomDivido(Índice 3040);
3. Daruma_FIR_IniciaFechamentoCupom(Índice 3007);
4. Daruma_FIR_EfetuaFormaPagamento(Índice 3008);
5. Daruma_FIR_TerminaFechamentoCupom(Índice 3010);
6. Daruma_FIR_RestanteCupomDividido(Índice 3041);
7. Daruma_FIR_EfetuaFormaPagamento(Índice 3008);
8. Daruma_FIR_TerminaFechamentoCupom(Índice 3010);

Atenção: os passos 6, 7, 8 deverão ser executados o número de vezes que forem necessárias(número de cupons dividos).

· Parâmetros do Método: (2 Parâmetros)
Numero Mesa: String com 3 dígitos, contendo o número da mesa.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método deverá ser executado após o método:Daruma_FIR_RegistrarVenda .

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:


Daruma_FIR_IniciaFechamentoCupomComServico(Índice 3042)

Método: Daruma_FIR_IniciaFechamentoCupomServico [Índice: 3042]
Top

· Definição do Método:
Inicia o fechamento do cupom com o uso das formas de pagamento, permitindo a inclusão da taxa de serviço.

· Parâmetros do Método: (4 Parâmetros)
1. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
2. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
3. Valor Acréscimo Desconto: String com com até 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual (2 casas decimais).
4. Indicador da Operação de Acréscimo ou Desconto que deseja Realizar, podendo ser um dos indicadores Abaixo:

0 para desconto percentual no rodapé;
1 para desconto em valor no rodapé;
2 para acréscimo com incidência de ICMS em porcentagem;
3 para acréscimo com incidência de ICMS em valor;
4 para acréscimo IOF em porcentagem;
5 para acréscimo IOF em valor;

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O valor do desconto "nunca" poderá ser igual ou maior do que o valor do cupom.
- Caso a venda seja de 1(um) ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço você poderá receber erro 24 ou 44, então o desconto não será permitido. Importante para habilitar o desconto sobre serviço é preciso que seja feito por meio de IT(interveção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja habilitado para desconto em serviço então para um cupom onde os itens sejam com alíquota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_do_Acrescimo_ou_Desconto: String;
Str_Valor_do_Acrescimo_ou_Desconto: String;
Str_Indicador_da_Operacao: String;
Str_Taxa_de_Servico: String;
begin
Str_Acrescimo_ou_Desconto := 'A';
Str_Tipo_do_Acrescimo_ou_Desconto := '%';
Str_Valor_do_Acrescimo_ou_Desconto := '10,00';
Str_Indicador_da_Operacao := '1';
Str_Taxa_de_Servico := '15,00';

Int_Retorno := Daruma_FIR_IniciaFechamentoCupomComServico( pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Tipo_do_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Acrescimo_ou_Desconto ), pchar( Str_Indicador_da_Operacao ), pchar( Str_Taxa_de_Servico ) );


Daruma_FIR_IniciaFechamentoCupom(Índice 3007)

Método: Daruma_FIR_IniciaFechamentoCupom [Índice: 3007]
Top

· Definição do Método:
Inicia o fechamento do cupom com o uso das formas de pagamento.

· Parâmetros do Método: (3 Parâmetros)
1. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
2. Tipo Acréscimo Desconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.
3. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual (2 casas decimais).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O valor do desconto "nunca" poderá ser igual ou maior do que o valor do cupom.
- Caso a venda seja de 1(um) ou mais itens, porém todos com alíquota de serviço e o ECF não esteja habilitado para desconto em serviço você poderá receber erro 24 ou 44, então o desconto não será permitido. Importante! para habilitar o desconto sobre serviço é preciso que seja feito por meio de IT(interveção técnica) e isso só pode ser feito por uma assistência técnica autorizada Daruma.
- Caso a venda seja 2(dois) ou mais itens, sendo que pelo menos 1(um) seja com alíquota de serviço e o ECF não esteja habilitado para o desconto, então o desconto incidirá sobre os itens com alíquota de ICMS.
- E caso o ECF esteja habilitado para desconto em serviço então para um cupom onde os itens sejam com alíquota de serviço e também alíquota de ICMS o desconto será sobre todos os itens independentemente da alíquota.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_do_Acrescimo_ou_Desconto: String;
Str_Valor_do_Acrescimo_ou_Desconto: String;
begin
Str_Acrescimo_ou_Desconto := 'D';
Str_Tipo_do_Acrescimo_ou_Desconto := '$';
Str_Valor_do_Acrescimo_ou_Desconto := '0,01';

Int_Retorno := Daruma_FIR_IniciaFechamentoCupom( pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Tipo_do_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Acrescimo_ou_Desconto ) );


Daruma_FIR_LeituraMemoriaFiscalSerialReducao(Índice 3105)

Método:Daruma_FIR_LeituraMemoriaFiscalSerialReducao [Índice 3105]
Top

· Definição do Método:
Recebe os dados da leitura da memória fiscal, por intervalo de reduções, pela serial e grava em arquivo texto.

· Parâmetros do Método: (2 Parâmetros)
1. Redução Inicial: String com o Número da reducao inicial com até 4 dígitos.
2. Redução Final: String com o Número da reducao final com até 4 dígitos.

· Este Método retornará um dos Valores Inteiros listados Abaixo: 0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método:Daruma_FIR_StatusCupomFiscal(Índice 3404)..

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Reducao_Inicial: String;
Str_Reducao_Final: String;
begin
Str_Reducao_Inicial := '01';
Str_Reducao_Final := '02';

Int_Retorno := Daruma_FIR_LeituraMemoriaFiscalSerialReducao( pchar( Str_Reducao_Inicial ), pchar( Str_Reducao_Final ) );
WinExec('c:\windows\NOTEPAD.EXE C:\retorno.txt',SW_SHOWNORMAL);
end;


Daruma_FIR_LeituraX(Índice 3101)

Método:Daruma_FIR_LeituraX [Índice 3101]
Top

· Definição:
Emite a Leitura X na impressora.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do Método: Daruma_FIR_StatusCupomFiscal(Índice 3404).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_LeituraX();
end;


Daruma_FIR_LerAliquotasComIndice(Índice 3483)

Método: Daruma_FIR_LerAliquotasComIndice [Índice 3483]
Top

· Definição do Método:
Retorna as alíquotas cadastradas na impressora com o Indice indicativo se a mesma esta cadastrada no ISS ou no ICMS.

· Parâmetros do Método:
Alíquotas: Variável por refêrencia com o tamanho de 300(trezentas) posições para receber as alíquotas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Inicio com S significa que é ISS.
- Inicio com T significa que é ICMS.
- As alíquotas retornadas estarão separadas por vírgula.I Ex.: Sa1200, TB1700, TC0500, Sc1800.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,300);
Int_Retorno := Daruma_FIR_LerAliquotasComIndice(Str_Informacao);
Memo1.lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_NomeiaTotalizadorNaoSujeitoIcms(Índice 551)

Método: Daruma_FIR_NomeiaTotalizadorNaoSujeitoIcms [Índice 551]
Top

· Definição do Método:
Programa Totalizador Não Sujeito ao ICMS. Equivale a por exemplo Conta de Luz, Água, Telefone, etc.

· Parâmetros do Método: (2 Parâmetros)
1. Indice: INTEIRO com a posição em que o totalizador será programado.
2. Totalizador: String até 21 caracteres com o nome do totalizador.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Int_Indice_do_Totalizador: Integer;
Str_Nome_do_Totalizador: String;
begin
Int_Indice_do_Totalizador := StrToInt('00'));
Str_Nome_do_Totalizador := 'Conta de Luz';

Int_Retorno := Daruma_FIR_NomeiaTotalizadorNaoSujeitoIcms( Int_Indice_do_Totalizador, pchar( Str_Nome_do_Totalizador ) );


Daruma_FIR_NumeroCaixa(Índice 3425)

Método: Daruma_FIR_NumeroCaixa [Índice 3425]
Top

· Definição do Método:
Retorna o número do caixa cadastrado na impressora.

· Parâmetros do Método:
Número Caixa: Variável String por referência com 4(quatro) posições para receber o número do caixa cadastrado na impressora.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FIR_NumeroCaixa(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_NumeroCupom(Índice 3417)

Método: Daruma_FIR_NumeroCupom [Índice 3417]
Top

· Definição do Método:
Retorna o número do cupom.

· Parâmetros do Método:
Número Cupom: Variável String por referência com 6(seis) posições para receber o número do cupom.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Quando este médodo e execudado antes do cupom ser aberto, então o número retornado e o do próximo cupom.
- Quando este método e executado com o cupom aberto, então será retornado o número do cupom enm aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,6);
Int_Retorno := Daruma_FIR_NumeroCupom(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_NumeroCuponsCancelados(Índice 3419)

Método: Daruma_FIR_NumeroCuponsCancelados [Índice 3419]
Top

· Definição do Método:
Retorna o número de cupons cancelados.

· Parâmetros do Método:
Cupons Cancelados: Variável String por referência com o tamanho de 4(quatro) posições para receber o número de cupons cancelados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FIR_NumeroCuponsCancelados(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_NumeroIntervencoes(Índice 3421)

Método: Daruma_FIR_NumeroIntervencoes [Índice 3421]
Top

· Definição do Método:
Retorna o número de intervenções técnicas realizadas na impressora.

· Parâmetros do Método:
Intervenções: Variável String por referência com 4(quatro) posições para receber o número de intervenções.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FIR_NumeroIntervencoes(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_NumeroReducoes(Índice 3420)

Método: Daruma_FIR_NumeroReducoes [Índice 3420]
Top

· Definição do Método:
Retorna o número de reduções Z realizadas na impressora.

· Parâmetros do Método:
Reduções: Variável String por referência com 4(quatro) posições para receber o número de Reduções Z.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,4);
Int_Retorno := Daruma_FIR_NumeroReducoes(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_NumeroSerie(Índice 3411)

Método: Daruma_FIR_NumeroSerie [Índice 3411]
Top

· Definição do Método:
Retorna o número de série da impressora.

· Parâmetros do Método:
Número Série: Variável String por referência com o tamanho de 15(quinze) posições para receber o número de série.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,15);
Int_Retorno := Daruma_FIR_NumeroSerie(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_ProgramaAliquota(Índice 550)

Método: Daruma_FIR_ProgramaAliquota [Índice 550]
Top

· Definição do Método:
Programa alíquota tributária na Impressora Fiscal Restaurante.

· Parâmetros do Método: (2 Parâmetros)
1. Alíquota: String com o valor da alíquota a ser programada.
2. Vínculo: INTEIRO com o valor 0 (zero) para vincular a alíquota ao ICMS e 1 (um) para vincular ao ISS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX, ou qualquer outro documento.
- Nas Impressoras Daruma, você "não precisa" carregar diariamente as Alíquotas.
- Na hora de passar o valor da alíquota, você não deve utilizar nenhum tipo de separador.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Valor_Aliquota: String;
Int_Tipo_Aliquota: Integer;
begin
Str_Valor_Aliquota := '1800';
Int_Tipo_Aliquota := '0';

Int_Retorno := Daruma_FIR_ProgramaAliquota( pchar( Str_Valor_Aliquota ), Int_Tipo_Aliquota );


Daruma_FIR_ProgramaFormasPagamento(Índice 554)

Método:Daruma_FIR_ProgramaFormasPagamento [Índice 554]
Top

· Definição do Método:
Realiza o casdastro das formas de pagamento na impressora fiscal restaurante, este Método deve ser enviado somente após a realização de uma ReduçãoZ que é efetuado pela DLL de forma Automática dependendo de como estiver a Chave do Registry Daruma_Registry_ZAutomatica.

· Parâmetros do Método: (1 Parâmetro)
String contendo as formas de Pagamento desejadas, separadas por PONTO-E-VÍRGULA, cada forma de pagamento deve ter o tamanho de até 16 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Quando é executado este método automaticamente a dll cria o compravente não fiscal vinculado para cada forma de pagamento programada. Dispensando com isso a programação dos Comprovantes Não Fiscais Vinculados.
- O cupom fiscal deve estar fechado.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.
- Nas Impressoras Térmicas MFD´s FS600 e FS2000T as formas não serão vinculáveis. Para torná-las a vinculáveis na é preciso que seja feita uma Intervenção Técnica. Vide conênio 85/01.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Descricao_das_Formas_Pagamento: String;
begin
Str_Descricao_das_Formas_Pagamento := 'Cartao;Cheque;Redecard;';

Int_Retorno := Daruma_FIR_ProgramaFormasPagamento( pchar( Str_Descricao_das_Formas_Pagamento ) );


Daruma_FIR_ProgramaMsgTaxaServico(Índice 553)

Método:Daruma_FIR_ProgramaMsgTaxaServico(Índice 553) [Índice 553]
Top

· Definição do Método:
Programa a mensagem que ira aparecer ao Fechar o Cupom com a de Serviço na impressora.

· Parâmetros do Método:
String com a Mensagem desejada com até 19 carácteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Mensagem_da_Taxa_de_Servico: String;
begin
Str_Mensagem_da_Taxa_de_Servico := 'O melhor Servico esta aqui!';

Int_Retorno := Daruma_FIR_ProgramaMsgTaxaServico( pchar( Str_Mensagem_da_Taxa_de_Servico ) );


Daruma_FIR_ProgramaOperador(Índice 552)

Método: Daruma_FIR_ProgramaOperador [Índice 552]
Top

· Definição do Método:
Programa o Operador no ECF, essa programação pode ser feita a qualquer momento do dia.

· Parâmetros do Método: (1 Parâmetro)
Operador: String com até 20 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método poderá ser chamado a qualquer momento do dia.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Nome_do_Operador: String;
begin
Str_Nome_do_Operador := 'Operador 01';

Int_Retorno := Daruma_FIR_ProgramaOperador( pchar( Str_Nome_do_Operador ) );


Daruma_FIR_ProgramaRelatorioGerencial(Índice 559)

Método:Daruma_FIR_ProgramaProgramaRelatorioGerencial [Índice 559]
Top

· Definição do Método:
Cadastra um título para um Relatório Gerencial específico. Importante: na versão 1.20, o relatório gerencial necessita de ser previamente cadastrado, assim como já acontece para as alíquotas e formas de pagamento. Sendo assim caso não exista um gerencial cadastrado na impressora, a dll irá tentar cadastrar um, automaticamente.

· Parâmetros do Método: (1 Parâmetro)
String contendo as formas de Pagamento desejadas, separadas por PONTO-E-VÍRGULA, cada forma de pagamento deve ter o tamanho de até 16 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método só é compatível com a FS318 versão 1.20.
- O cupom fiscal deve estar fechado.
- Este Método só será executado após uma ReduçãoZ e antes de uma LeituraX ou qualquer outro documento.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var Str_Titulo_Relatorio_Gerencial: String;
begin
Str_Titulo_Relatorio_Gerencial := 'Gerencial X';
Int_Retorno := Daruma_FIR_ProgramaRelatorioGerencial( pchar( Str_Titulo_Relatorio_Gerencial ) );


Daruma_FIR_RecebimentoNaoFiscal(Índice 3202)

Método: Daruma_FIR_RecebimentoNaoFiscal [Índice 3202]
Top

· Definição do Método:
Imprime o comprovante não fiscal não vinculado.

· Parâmetros do Método: (3 Parâmetros)
1. Descrição do Totalizador: String com a descrição do totalizador.
2. Valor Recebimento: String com o Valor do recebimento com até 14 dígitos (duas casas decimais).
3. Forma Pagamento: String com a Forma de pagamento com até 16 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método é único, ou seja você não precisará chamar outro método para encerrá-lo.
- Caso você necessite informar mais de uma forma de pagamento então deve-se usar o Método: Daruma_FIR_AbreRecebimentoNaoFiscal(Índice ????).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Descricao_do_Totalizador: String;
Str_Acrescimo_ou_Desconto: String;
Str_Tipo_Acrescimo_ou_Desconto: String;
Str_Valor_Acrescimo_ou_Desconto: String;
Str_Valor_do_Recebimento: String;
Str_Texto_Livre: String;
begin
Str_Descricao_do_Totalizador := 'Conta de Luz';
Str_Acrescimo_ou_Desconto := 'D';
Str_Tipo_Acrescimo_ou_Desconto := '$';
Str_Valor_Acrescimo_ou_Desconto := '0,01';
Str_Valor_do_Recebimento := '1,00';
Str_Texto_Livre := 'Referente ao pagamento da 1 primeira parcela';

Int_Retorno := Daruma_FIR_AbreRecebimentoNaoFiscal( pchar( Str_Descricao_do_Totalizador ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Tipo_Acrescimo_ou_Desconto ), pchar( Str_Valor_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Recebimento ), pchar( Str_Texto_Livre ) );
end;


Daruma_FIR_ReducaoZ(Índice 3100)

Método:Daruma_FIR_ReducaoZ [Índice 3100]
Top

· Definição do Método:
Emite a ReduçãoZ na impressora.

· Parâmetros do Método: (2 Parâmetros opcionais)
1. Data: String com a Data atual da impressora no formato ddmmaa. Opcional
2. Hora: String com a Hora a ser alterada no formato hhmmss. Opcional

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Importante!!!: Caso ja tenha sido efetuada uma ReducaoZ no dia, caso seja afetuada outra, isso fará com que a Impressora fique Inoperante, até às 0:00. Horário este controlado pelo relógio interno da própria Impressora.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Int_Confirma: Integer;
begin
int_Confirma:= Application.MessageBox ('Tem Certeza que Deseja Efetuar a ReducaoZ?' , 'Daruma Framework',mb_YesNo+mb_DefButton2+mb_IconQuestion);
if (int_Confirma = 6) then //Int_Confirma = 6(Sim), = 7(Não), é o valor de retorno do Application.MessageBox
Int_Retorno := Daruma_FIR_ReducaoZ(' ', ' ')
Else
exit;
end;


Daruma_FIR_ReducaoZAjustaDataHora(Índice 3106)

Método:Daruma_FIR_ReducaoZAjustaDataHora [Índice 3106]
Top

· Definição do Método:
Emite a ReduçãoZ na impressora. Permite ajustar o relógio interno da impressora em até 5 minutos.

· Parâmetros do Método: (2 Parâmetros)
1. Data: String com a Data atual da impressora no formato ddmmaa.
2. Hora: String com a Hora a ser alterada no formato hhmmss.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Importantíssimo este método não aceita separadores, você deverá passar apenas 12bytes.
- Se os valores estiverem fora dessa faixa serão limitados a 5 minutos.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Data: String;
Str_Hora: String;
begin
Str_Data := '';
Str_Hora := '';
Int_Retorno := Daruma_FIR_ReducaoZAjustaDataHora( pchar( Str_Data ), pchar( Str_Hora ) );
end;


Daruma_FIR_RegistrarVenda(Índice 3048)

Método: Daruma_FIR_RegistrarVenda [Índice: 3048]
Top

· Definição do Método:
Registra o item na mesa.

· Parâmetros do Método: (7 Parâmetros).
1. Número Mesa: String com até 03 caracteres contendo o número da mesa.
2. Código: String até 04 caracteres com o código do produto.
3. Descrição: String com até 18 caracteres com a descrição do produto.
4. Alíquota: String com
5. Quantidade: String com até 5 dígitos considerando três decimais.
6. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.`
7. Valor Acréscimo Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual (2 casas decimais).

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Para realizar a venda, é necessário que o item tenha sido previamente adicionado no cardápio, para fazer o cadastro utilize o método: Daruma_FIR_AdicionaProdutoCardapio (Índice 555).
- Na versão 1.20, não necessita realizar o cadastro do item no cardápio. Pois o mesmo é cadastrado no momento em que a venda acontece.
Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Numero_da_Mesa: String;
Str_Codigo: String;
Str_Quantidade: String;
Str_Acrescimo_ou_Desconto: String;
Str_Valor_do_Acrescimo_ou_Desconto: String;
begin
Str_Numero_da_Mesa := '132';
Str_Codigo := '0001';
Str_Quantidade := '4,000';
Str_Acrescimo_ou_Desconto := 'A';
Str_Valor_do_Acrescimo_ou_Desconto := '0,50';
Int_Retorno := Daruma_FIR_RegistrarVenda( pchar( Str_Numero_da_Mesa ), pchar( Str_Codigo ), pchar( Str_Quantidade ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Acrescimo_ou_Desconto ));


Daruma_FIR_RegistroVendaSerial(Índice 3049)

Método: Daruma_FIR_RegistroVendaSerial [Índice: 3049]
Top

· Definição do Método:
Registra a venda pela porta serial, gerando com isso um arquivo RETORNO.TXT, no c:\ (ou path anteriormente customizado), com todos os registros de vendas efetuadas na mesa passada como parâmetro.

Parâmetros do Método: (1 Parâmetro).
Número Mesa: String com até 03 caracteres contendo o número da mesa.

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Para realizar a venda, é necessário que o item tenha sido previamente adicionado no cardápio, para fazer o cadastro utilize o método: Daruma_FIR_AdicionaProdutoCardapio (Índice 555).
- Na versão 1.20, não necessita realizar o cadasdtro do item no cardápio. Pois o mesmo é cadastrado no momento em que a venda acontece.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Numero_da_Mesa: String;
begin
Str_Numero_da_Mesa := '123';
Int_Retorno := Daruma_FIR_RegistroVendaSerial( pchar( Str_Numero_da_Mesa ));


Daruma_FIR_RelatorioGerencial(Índice 3200)

Método: Daruma_FIR_RelatorioGerencial [Índice 3200]

Top

· Definição do Método:
Abre e Imprime Imprime o Relatório Gerencial.

Parâmetros do Método: (1 Parâmetro)
Texto: String com o Texto a ser impresso no relatório com até 618 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Se o Relatorio Gerencial estiver aberto este Método imprime o texto que você deseja, e se desejar continuar imprimindo mais texto, continue Chamando este Método, que uma vez aberto o Gerencial, o mesmo não será Aberto novamente até que seja chamada a Método.
- Para fechar o Relatório, chame o Método:Daruma_FIR_FechaRelatorioGerencial(Índice 3201).
- Se qualquer Método diferente da Daruma_FIR_RelatorioGerencial for chamado com o relatório aberto, efetuará seu fechamento automaticamente.
- Uma vez aberto o Relatório Gerencial, você terá 10(dez) minutos para a impressão de Texto Livre.
- Caso você se esqueça de fechar o Relatório Gerencial o mesmo será fechado automaticamente após 10(dez) minutos contando a partir de sua abertura.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Texto_Livre: String;
begin
Str_Texto_Livre := 'Texto livre com até 600 caracteres';
If Str_Texto_Livre = '' Then
Exit;
Int_Retorno := Daruma_FIR_RelatorioGerencial( pchar( Str_Texto_Livre ) );
end;


Daruma_FIR_RestanteCupomDividido(Índice 3041)

Método: Daruma_FIR_RestanteCupomDividido [Índice 3041]
Top

· Definição do Método:
Imprime a última parte de um cupom onde a conta foi divida.

Detalhamento: Supondo que o total da conta foi de 100,00 (cem reais) da mesa 123
Você chamou o método Daruma_FIR_ImprimePrimeiroCupomDividido("123","4") - o Resultado é a impressão da primeira parte do cupon, dos 4 desejados, com o valor de 25,00 (reais). Ao Chamar o método Daruma_FIR_RestanteCupomDividido, você terá como resultado a Impressão dos 3(três) cupons no valor de 25,00 (reais) cada um deles.

Passos a serem seguidos para dividir a Conta da Mesa:

1. Daruma_FIR_RegistrarVenda(Índice 3048);
2. Daruma_FIR_ImprimePrimeiroCupomDivido(Índice 3040);
3. Daruma_FIR_IniciaFechamentoCupom(Índice 3007);
4. Daruma_FIR_EfetuaFormaPagamento(Índice 3008);
5. Daruma_FIR_TerminaFechamentoCupom(Índice 3010);
6. Daruma_FIR_RestanteCupomDividido(Índice 3041);
7. Daruma_FIR_EfetuaFormaPagamento(Índice 3008);
8. Daruma_FIR_TerminaFechamentoCupom(Índice 3010);

Atenção: os passos 6, 7, 8 deverão ser executados o número de vezes que forem necessárias(número de cupons dividos).

· Parâmetros do Método:
Não há.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método deverá ser executado após o método:Daruma_FIR_TerminaFechamentoCupom(Índice 3010).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:


Daruma_FIR_Sangria(Índice 3206)

Método: Daruma_FIR_Sangria [Índice 3206]
Top

· Definição do método:
Faz uma sangria na impressora (retirada de dinheiro).

Parâmetros do Método: (1 Parâmetro)
Valor: String com o Valor da sangria com até 14 dígitos (2 casas decimais).

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Não será possível informar mais de uma forma de pagamento no casa de uma Sangria.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var Str_Valor_da_Sangria: String;
begin
Str_Valor_da_Sangria := '0,10';

Int_Retorno := Daruma_FIR_Sangria( pchar( Str_Valor_da_Sangria ) );
end;


Daruma_FIR_StatusComprovanteNaoFiscalNaoVinculado(Índice )

Método:Daruma_FIR_StatusComprovanteNaoFiscalNaoVinculado [Índice ????]
Top

· Definição do Método:
Retorna o status do Comprovante Não Fiscal Não Vinculado, se o mesmo esta Aberto ou Fechado.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Devolverá 0(zero) para Recebimento Fechado e 1(um) para Recebimento Aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_StatusComprovanteNaoFiscalNaoVinculado(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_StatusComprovanteNaoFiscalVinculado(Índice 3403)

Método: Daruma_FIR_StatusComprovanteNaoFiscalVinculado [Índice 1403]
Top

· Definição do Método:
Retorna o status do Comprovante Não Fiscal Vinculado, se o mesmo esta Aberto ou Fechado.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Devolverá 0(zero) para Vinculado Fechado e 1(um) para Vinculado Aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_StatusComprovanteNaoFiscalVinculado(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_StatusCupomFiscal(Índice 3404)

Método: Daruma_FIR_StatusCupomFiscal [Índice 3404]
Top

· Definição do Método:
Retorna o status Cupom Fiscal, se o mesmo esta Aberto ou Fechado.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Devolverá 0(zero) para Cupom Fechado e 1(um) para Cupom Aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
setlength( Str_Informacao, 2 );
Int_Retorno := Daruma_FIR_StatusCupomFiscal(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_StatusRelatorioGerencial(Índice 3405)

Método: Daruma_FIR_StatusRelatorioGerencial [Índice 3405]
Top

· Definição do Método:
Retorna o status do Relatório Gerencial, se o mesmo esta Aberto ou Fechado.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Devolverá 0(zero) para Relatório Fechado e 1(um) para Relatório Aberto.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_StatusRelatorioGerencial(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_Suprimento(Índice 3207)

DarumaFramework
Método: Daruma_FIR_Suprimento [Índice 3207]
Top

· Definição do Método:
Faz um suprimento na impressora (entrada de dinheiro).

· Parâmetros do Método: (2 Parâmetros)
1. Valor: String com o Valor do suprimento com até 14 dígitos (2 casas decimais).
2. Forma Pagamento: String com a Forma de pagamento com até 16 caracteres. Se não for informada, o suprimento será feito em Dinheiro.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Caso queira fazer um Suprimento com mais de uma forma de pagamento deve-se chamar o Método: Daruma_FIR_AbreRecebimentoNaoFiscal(Índice ????), passando no parâmetro Índice o índice do Suprimento.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Valor_do_Suprimento: String;
Str_Forma_de_Pagamento: String;
begin
Str_Valor_do_Suprimento := '0,10';
Str_Forma_de_Pagamento := 'Dinheiro';

Int_Retorno := Daruma_FIR_Suprimento( pchar( Str_Valor_do_Suprimento ), pchar( Str_Forma_de_Pagamento ) );

end;


Daruma_FIR_TerminaFechamentoCupomID(Índice ????)

Método: Daruma_FIR_TerminaFechamentoCupomID [Índice ????]
Top

· Definição do Método:
Termina o fechamento do cupom com mensagem promocional, podendo identificar o consumidor.

· Parâmetros do Método: (4 Parâmetros)
1. Mensagem Promocional: String com a mensagem promocional com até 48 caracteres;
2. Nome do Cliente: String com o nome com até 48 caracteres;
3. Endereço do Cliente: String com o endereço com até 48 caracteres;
4. Documento do Cliente: String com número do doc com até 48 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Acentuação e/ou caracteres especiais, não são aceitos na mensagem promocional.
- A forma de pagamento deve ter sido efetuada.
- Na impressora fiscal Daruma, serão impressas 8 linhas de texto.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Mensagem_Promocional: String;
Str_Nome_do_Cliente: String;
Str_Endereco_do_Cliente: String;
Str_Documento_do_Cliente: String;
begin
Str_Mensagem_Promocional := 'Obrigado, volte sempre!';
Str_Nome_do_Cliente := 'Daruma Telecomunicacoes e Informatica S.A.';
Str_Endereco_do_Cliente := 'Av. Independencia 3.500';
Str_Documento_do_Cliente := '45170289/0001-25';

Int_Retorno := Daruma_FIR_TerminaFechamentoCupomID( pchar( Str_Mensagem_Promocional ), pchar( Str_Nome_do_Cliente ), pchar( Str_Endereco_do_Cliente ), pchar( Str_Documento_do_Cliente ) );


Daruma_FIR_TerminaFechamentoCupom(Índice 3010)

Método: Daruma_FIR_TerminaFechamentoCupom [Índice 3010]
Top

· Definição do Método:
Termina o fechamento do cupom com mensagem promocional.

· Parâmetros do Método: (1 Parâmetro)
Mensagem Promocional: String com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas).

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Acentuação e/ou caracteres especiais, não são aceitos na mensagem promocional.
- A forma de pagamento deve ter sido efetuada.
- Na impressora fiscal Daruma, serão impressas 8 linhas de texto.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Mensagem_Promocional: String;
begin
Str_Mensagem_Promocional := 'Obrigado, volte sempre!';

Int_Retorno := Daruma_FIR_TerminaFechamentoCupom( pchar( Str_Mensagem_Promocional ) );


Daruma_FIR_TransferirMesa(Índice 3052)

Método: Daruma_FIR_TransferirMesa [Índice 3052]
Top

· Definição do Método:
Efetua a Tranferência dos ítens de uma mesa para outra mesa.

· Parâmetros do Método: (2 Parâmetros)
1. Numero da mesa atual: String com até três dígitos contendo o número da mesa atual
2. Numero da mesa destino: String com até três dígitos contendo o número da mesa destino

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:


Daruma_FIR_TransferirVenda(Índice 3051)

Método: Daruma_FIR_TransferirVenda [Índice 3051]
Top

· Definição do Método:
Efetua a Tranferência de um ítem de uma mesa para outra mesa.

· Parâmetros do Método: (6 Parâmetros)
1. Numero da mesa atual: String com até três dígitos contendo o número da mesa atual
2. Numero da mesa destino: String com até três dígitos contendo o número da mesa destino
3. Codigo do ítem: String com até 4 dígitos
4. Quantidade do ítem: String com até 5 dígitos, considere três casas decimais
5. Acrescimo/Desconto: String com "A"(acréscimo) ou "D"(desconto)
6. Valor Acrescimo/Desconto: String com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto por percentual

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:


Daruma_FIR_UsaComprovanteNaoFiscalVinculado(Índice 3204)

Método: Daruma_FIR_UsaComprovanteNaoFiscalVinculado [Índice 3204]
Top

· Definição do Método:
Imprime o comprovante não fiscal vinculado.

· Parâmetros do Método: (1 Parâmetro)
Texto: String com o Texto a ser impresso no comprovante não fiscal vinculado com até 618 caracteres.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Na impressora fiscal Daruma, só pode ser usado durante 2(dois) minutos após a abertura do comprovante não fiscal vinculado. Se esse tempo for ultrapassado o comprovante é fechado automaticamente.
- O comprovante não fiscal vinculado deve ter sido aberto. Você poderá verificar o status através do método:Daruma_FIR_StatusComprovanteNaoFiscalVinculado(Índice 3403).

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Texto_Livre: String;
begin
Str_Texto_Livre := 'Texto Livre com até 600 caracteres';

Int_Retorno := Daruma_FIR_UsaComprovanteNaoFiscalVinculado( pchar( Str_Texto_Livre ) );
end;


Daruma_FIR_VendeItem(Índice 3070)

Método: Daruma_FIR_VendeItem [Índice: 3070]
Top

· Definição do Método:
Vende o item na impressora fiscal.

· Parâmetros do Método: (8 Parâmetros).
1. Mesa: String com até 03 caracteres contendo o número da mesa.
2. Código: String até 05 caracteres com o código do produto.
3. Descrição: String com até 18 caracteres com a descrição do produto.
4. Alíquota: String com a alíquota Ex.:05,00 ou 18,00 ou ainda o valor da alíquota previamente cadastrada no ECF. Passe II para Isento, NN para não Incidente, FF para Substituição Tributária.
5. Quantidade: String com até 6 dígitos considerando três decimais Ex.: 1,000.
6. Valor Unitário: String com até 8 dígitos, considerando duas cadas decimais Ex.: 1,00.
7. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
8. Percentual Acréscimo Desconto: String com no máximo 4 dígitos para apercentual do créscimo ou desconto Ex.:10,00(dez por cento) Obs.:Desc/Acresc por valor não é permitido.

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este método só é compatível com impressoras FS318 versão 1.20.
- Caso seja passado 000 no parâmetro mesa, então a venda será registrada no balcão.
- Na versão 1.20, não necessita realizar o cadastro do item no cardápio. Pois o mesmo é cadastrado no momento em que a venda acontece.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Mesa: String;
Str_Codigo: String;
Str_Descricao: String;
Str_Aliquota: String;
Str_Quantidade: String;
Str_Valor_Unitario: String;
Str_Acrescimo_ou_Desconto: String;
Str_Valor_do_Acrescimo_ou_Desconto: String;
begin
Str_Mesa := '000';
Str_Codigo := '7896003704549';
Str_Descricao := 'bolacha';
Str_Aliquota := 'II';
Str_Quantidade := '1';
Str_Valor_Unitario := '0,10';
Str_Acrescimo_ou_Desconto := 'A';
Str_Valor_do_Acrescimo_ou_Desconto := '0,00';

Int_Retorno := Daruma_FIR_VendeItem(pchar( Str_Mesa ), pchar( Str_Codigo ), pchar( Str_Descricao ), pchar( Str_Aliquota ), pchar( Str_Quantidade ), pchar( Str_Valor_Unitario ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Acrescimo_ou_Desconto ) );


Daruma_FIR_VendeItemBalcao(Índice 3054)

Método: Daruma_FIR_VendeItemBalcao [Índice: 3054]
Top

· Definição do Método:
Vende o item na modalidade balcão, ou seja, não em uma mesa e sim direto no cupom fiscal.

· Parâmetros do Método: (4 Parâmetros).
1. Código: String até 05 caracteres com o código do produto.
2. Quantidade: String com até 6 dígitos considerando três decimais Ex.: 1,000.
3. Acréscimo Desconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.
4. Percentual Acréscimo Desconto: String com no máximo 4 dígitos para apercentual do créscimo ou desconto Ex.: 10,00(dez por cento) Obs.:Desc/Acresc por valor não é permitido.

· Retorno do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Para realizar a venda, é necessário que o item tenha sido previamente adicionado no cardápio, para fazer o cadastro utilize o método: Daruma_FIR_AdicionaProdutoCardapio (Índice 555).
- Na versão 1.20, não necessita realizar o cadasdtro do item no cardápio. Pois o mesmo é cadastrado no momento em que a venda acontece.
Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Codigo: String;
Str_Quantidade: String;
Str_Acrescimo_ou_Desconto: String;
Str_Valor_do_Acrescimo_ou_Desconto: String;
begin
Str_Codigo := '0001';
Str_Quantidade := '4,000';
Str_Acrescimo_ou_Desconto := 'A';
Str_Valor_do_Acrescimo_ou_Desconto := '0,00';
Int_Retorno := Daruma_FIR_VendeItemBalcao( pchar( Str_Codigo ), pchar( Str_Quantidade ), pchar( Str_Acrescimo_ou_Desconto ), pchar( Str_Valor_do_Acrescimo_ou_Desconto ));


Daruma_FIR_VerificaAliquotasIss(Índice 3440)

Método: Daruma_FIR_VerificaAliquotasIss [Índice 3440]
Top

· Definição do Método:
Retorna as alíquotas de vinculação ao ISS.

· Parâmetros do Método:
Aliquotas Iss: Variável String por referência com 79(setenta e nove) posições para receber as alíquotas vinculadas ao Iss.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- As alíquotas retornadas estarão separadas por vírgula. Ex.: 1800,1200,1500;
- Para isento utilize II;
- Para não tributado NN;
- Para substituição FF.
Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,79);
Int_Retorno := Daruma_FIR_VerificaAliquotasIss(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_VerificaDocAutenticacao(Índice 3301)

Método: Daruma_FIR_VerificaDocAutenticacao [Índice 3301]
Top

· Definição do Método:
Verifica se existe documento para ser Autenticado, este Método pode ser útil antes do envio da autenticação, ou seja, você apenas envia o método para a Autenticação quando tiver a certeza que o documento esta presente.

· Uma prática interessante a ser aplicada é a seguinte:
1) Chamar a Funcao Daruma_FIR_VerificaDocAutenticação.
2) Retornou igual a 1(um)?.
3) Se sim, chamar o método Daruma_FIR_AutenticacaoStr.
4) Caso contrário Voltar ao passo 1.

Com isso você garante que o método de Autenticação somente será chamado quando o documento estiver presente.

· Parâmetros do Método:
Não há.

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro. Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_VerificaDocAutenticacao();
if Int_Retorno = 1 Then
begin
Application.MessageBox('1 = Documento Posicionado!', 'Daruma Framework', mb_ok);
end
else
begin
Application.MessageBox('0 = Documento Não Posicionado!', 'Daruma Framework', mb_ok);
end;
end;


Daruma_FIR_VerificaEpromConectada(Índice 3432)

Método: Daruma_FIR_VerificaEpromConectada [Índice 3432]
Top

· Definição do Método:
Verifica se a Eprom está conectada.

· Parâmetros do Método:
FlagEprom: Variável String por referência com 2(duas) posições para receber o flag de Eprom conectada. Onde:
1 - Eprom conectada.
0 - Eprom desconectada.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_VerificaEpromConectada(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_VerificaEstadoGaveta(Índice 3311)

Método: Daruma_FIR_VerificaEstadoGaveta [Índice 3311]
Top

· Definição do Método:
Retorna se a gaveta está fechada ou aberta.

· Parâmetros da Método:
Estado: INTEIRO com a Variável para receber o estado da gaveta, onde:
- Estado = 0 sensor em nível 0 (fechada)
- Estado = 1 sensor em nível 1 (aberta)

Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var Int_Estado_Gaveta: Integer;
begin
Int_Estado_Gaveta := 0;
Int_Retorno := Daruma_FIR_VerificaEstadoGaveta( Int_Estado_Gaveta);
if Int_Estado_Gaveta = 1 Then
begin
Application.MessageBox('1 = Gaveta Aberta!', 'Daruma Framework', mb_ok);
end
else
begin
Application.MessageBox('0 = Gaveta Fechada!', 'Daruma Framework', mb_ok);
end;
end;


Daruma_FIR_VerificaEstadoImpressora(Índice 3401)

Método: Daruma_FIR_VerificaEstadoImpressora [Índice 3401]
Top

· Definição do Método:
Retorna o estado da impressora.

Parâmetros do Método:
1. ACK: Variável inteira para receber o primeiro byte.
2. ST1: Variável inteira para receber o segundo byte.
3. ST2: Variável inteira para receber o terceiro byte.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método devolve o status da impressora.
- Recomenda-se usar este método em concomitância com a chave StatusFuncao seteda pra 1(um) no registry, assim sendo você só irá chamar este método quando o iRet retornar diferente de 1(um).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Int_Daruma_ACK: Integer;
Int_Daruma_ST1: Integer;
Int_Daruma_ST2: Integer;
begin
Int_Daruma_ACK := 0;
Int_Daruma_ST1 := 0;
Int_Daruma_ST2 := 0;
Int_Retorno:= Daruma_FIR_VerificaEstadoImpressora( Int_Daruma_ACK, Int_Daruma_ST1, Int_Daruma_ST2 );
Memo1.Lines.Text := (' ACK=' + IntToStr(Int_Daruma_ACK) + ' ST1=' + IntToStr(Int_Daruma_ST1) + ' ST2=' + InttoStr(Int_Daruma_ST2));
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_VerificaFormasPagamentoEx(Índice 3448)

Método: Daruma_FIR_VerificaFormasPagamentoEx [Índice 3448]
Top

· Definição do Método:
Retorna as formas de pagamento e seus valores acumulados.

· Parâmetros do Método:
Formas Pagamento: Variável String por referência com 1027(uma mil e vinte e sete) posições para receber as formas programadas.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Este Método retorna as informações das formas de pagamento na seguinte ordem:

Descrição da forma de pagamento.....................: 16 bytes
Valor acumulado (2 casas decimais)..................: 20 bytes
Valor recebido no último cupom (2 casas decimais)...: 20 bytes
Valor indicando se a forma foi usada para a emissão
+ 1 caráctere Separador, conforme configurado no Registry com o Método Daruma_Registry_Separador.

- São retornadas16 formas de pagamento mais a forma "Valor Recebido" e "Troco" obedecendo a ordem descrita anteriormente. As formas de pagamento são separadas por vírgula. Veja Exemplos a seguir:

Ticket 0000000000000000000000000000000000000000,
Dinheiro 0000000000000002000000000000000000010000,
Cartao 0000000000000000000000000000000000000000,
A vista 0000000000000000000000000000000000000000,
TEF 0000000000000000000000000000000000000000,
Teste1 0000000000000000000000000000000000000000,
Teste2 0000000000000000000000000000000000000000, 0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
0000000000000000000000000000000000000000,
Valor Recebido 0000000000000002000000000000000000010000,
Troco 0000000000000001945000000000000000009725,
- A impressora permite programar até 16 formas de pagamento, as formas que não estiverem programadas estarão com os valores zerados e a descrição em branco (veja Exemplos acima). Para programar as formas de pagamento utilize o método:Daruma_FIR_ProgramaFormasPagamento(Índice 554).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,1027);
Int_Retorno := Daruma_FIR_VerificaFormasPagamentoEx(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_VerificaHorarioVerao(Índice ????)

Método: Daruma_FIR_VerificaHorarioVerao [Índice ????]
Top

· Definição do Método:
Retorna se o relógio da impressora está em horário de verão.
0 - Relógio da Impressora não programado para horário de verão.
1 - Relógio da Impressora programado para horário de verão.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- A programação do horário de verão será realizada somente após uma ReduçãoZ. Para desprogramar, o Método somente será aceito, 1 (uma) hora após a ReduçãoZ e não pode ter havido movimento na impressora nesse período.
- Você poderá deixar a entrada e saída do horário de verão automatizada. Para isso basta seguir as instruções abaixo:
1. Entre no registry no seguinte path: HKEY_LOCAL_MACHINE\SOFTWARE\DARUMA\ECF;
2. Sete o flag ControlaHorarioVerao para 1(um);
3. Insira uma data válida no flag:DataEntradaHorarioVerao ex.:091205;
4. Insira uma data válida no flag:DataSaidadaHorarioVerao ex.:091205.

Dessa maneira conforme você programou a Daruma32.dll quando verificar que chegou a data prevista em sua programação, irá fazer o ajuste automaticamente, tanto para a entrada quanto para a saída do mesmo.
Importante: Para que a saída do horário de verão seja aceita, é fundamental que a ReduçãoZ que antecede a data de saída do horário de verão seja feita ao final do período do dia anterior ao retorno ao horário normal. Exemplificando melhor: se o horário de verão for terminar no dia 100306, então a ReduçãoZ do dia 090306 deve ter sido emitida ainda no dia 090306.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_VerificaHorarioVerao(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_VerificaImpressoraLigada(Índice 3400]

Método: Daruma_FIR_VerificaImpressoraLigada [Índice 3400]
Top

· Definição do Método:
Verifica se a impressora está ligada ou conectada no computador.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O byte a ser verificado desverá ser o inteiro que é devolvida em TODOS os métodos.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_VerificaImpressoraLigada();
If Int_Retorno = 1 Then
Memo1.Lines.Text:= (' 1 - Impressora Ligada !!')
else
Memo1.Lines.Text:= (' 0 - Impressora Desligada !!');
end;


Daruma_FIR_VerificaIndiceAliquotasIss(Índice 3445)

Método: Daruma_FIR_VerificaIndiceAliquotasIss [Índice 3445]
Top

· Definição:
Retorna os índices das alíquotas de ISS.

· Parâmetros do Método:
Índice Alíquotas: Variável String por referência com o tamanho de 48(quarenta e oito) posições para receber os índices das alíquotas de ISS.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIr_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Os índices retornados estarão separados por vírgula. Ex.: 02,03,04

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,48);
Int_Retorno := Daruma_FIR_VerificaIndiceAliquotasIss(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_VerificaModeloECF(Índice 3469)

Método: Daruma_FIR_VerificaModeloEcf [Índice 3469]
Top

· Definição do Método:
Retorna 1(um) Inteiro com Modelo do ECF.

· Valores Retornados no Int_Retorno:
1 - FS345 - Impressora de varejo.
2 - FS318 - Impressora para restaurantes.
3 - FS2000 - Impressora de duas estações.
4 - FS345 - MFD (térmica) - Impressora de varejo.

· Parâmetros do Método:
Não Há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FI_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_VerificaModeloEcf();
Memo1.Lines.Text := IntToStr(Int_Retorno);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_VerificaModoOperacao(Índice 3431)

Método: Daruma_FIR_VerificaModoOperacao [Índice 3431]
Top

· Definição do Método:
Verifica se a impressora está em modo normal ou em intervenção técnica.

· Parâmetros do Método:
Modo Operação: Variável String por referência com 2(duas) posições para receber o modo de operação da impressora. Onde:
1 - Modo normal
0 - Intervenção técnica.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_VerificaModoOperacao(Str_Informacao);
if Str_Informacao = '1' Then
begin
Memo1.Lines.Text := (' 1 - Impressora em Modo Operacional !!');
end
else
begin
Memo1.Lines.Text := (' 0 - Impressora em Modo de Intervencao Tecnica !!');
end;
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


Daruma_FIR_VerificaRecebimentoNaoFiscal(Índice 3443)

Método: Daruma_FIR_VerificaRecebimentoNaoFiscal [ndice 3443]
Top

· Definição do Método:
Retorna os recebimentos não fiscais não vinculados programados na impressora.

· Parâmetros do Método:
Recebimentos: Variável String por referência com 2200(duas mil e duzentas) posições para receber as informações.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:

- Este Método retorna as informações para os 50 totalizadores não fiscais não vinculados na seguinte ordem:

Valor indicando quantas vezes cada recebimento foi utilizado: 4 bytes
Valor acumulado para cada recebimento (2 casas decimais)....: 20 bytes

000100000000000000001000Conta de Luz ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000 ,000000000000000000000000

- A impressora permite programar até 50 totalizadores não fiscais não vinculados, os totalizadores que não estiverem programados estarão com os valores zerados e a descrição em branco (veja Exemplos acima).

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2200);
Int_Retorno := Daruma_FIR_VerificaRecebimentoNaoFiscal(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_VerificaTotalizadoresNaoFiscais(Índice 3436)

Método: Daruma_FIR_VerificaTotalizadoresNaoFiscais [Índice 3436]
Top

· Definição do Método:
Retorna a descrição dos totalizadores não fiscais programados na impressora com o Método:
Daruma_FIR_NomeiaTotalizadorNaoSujeitoIcms(Índice 551).

· Parâmetros do Método:
Totalizadores: Variável String por referência com 300(trezentas) posições para receber a descrição dos totalizadores não fiscais programados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Os totalizadores virão separados por vírgula;
- Este Método retorna somente os 16 primeiros cadastrados;
- Ex. Sangria,Suprimento,Conta de Luz, etc...

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,300);
Int_Retorno := Daruma_FIR_VerificaTotalizadoresNaoFiscais(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_VerificaTruncamento(Índice 3439)

Método: Daruma_FIR_VerificaTruncamento [Índice 3439]
Top

· Definição do Método:
Retorna 1 se a impressora estiver no modo truncamento e 0 se estiver no modo arredondamento.

· Parâmetros do Método:
Truncamento: Variável String por referência com 2(duas) posições para receber o retorno. Onde:
1 - Impressora programada para Truncar.
2 - Impressora programada para Arredondar.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- Dispensasse o uso deste método nos seguintes modelos de impressoras:
- FS600 MFD;
- FS2000;
- FS2000T.

Isso porque as impressoras citadas acima só truncam e isto esta previto no convênio 85/01.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_VerificaTruncamento(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_VerificaXPendente(Índice 3489)

Método: Daruma_FIR_VerificaXPendente [Índice 3489]
Top

· Definição do Método:
Retorna se a LeituraX está pendente.
1(um) para LeituraX Pendente e 0(zero) para LeituraX já executada.

· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_VerificaXPendente(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_VerificaZPendente(Índice 3488)

Método: Daruma_FIR_VerificaZPendente [Índice 3488]
Top

· Definição do Método:
Retorna se a ReduçãoZ está pendente.
1(um) para ReduçãoZ Pendente e 0(zero) para ReduçãoZ já executada.
· Parâmetros do Método:
Variável por refêrencia com 2(dois) espaços alocados para escrita do Status.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,2);
Int_Retorno := Daruma_FIR_VerificaZPendente(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
end;


Daruma_FIR_ZeraCardapio(Índice 650)

Método: Daruma_FIR_ZeraCardapio [Índice 650]
Top

· Definição do Método:
Apaga todos os itens existentes no cardápio.

· Parâmetros do Método:
Não há.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· retornará um dos Valores Inteiros listados Abaixo:
- Este método poderá ser executado a qualquer momento, mesmo com o dia aberto, desde que não tenha sido vendido nenhum dos ítens contidos no cardápio. Caso contrário, você deverá executar uma Redução Z antes de zerar o cardápio.

Exemplos:
· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
begin
Int_Retorno := Daruma_FIR_ZeraCardapio();
end;


Daruma_Registry_ConfigRede(Índice 8)

Método: Daruma_Registry_ConfigRede [Índice 8]
Top

Ainda Nao Utilizado!


Daruma_Registry_MaxFechamentoAutomatico(Índice 72)

Método: Daruma_Registry_MaxFechamentoAutomatico [Índice 72]
Top

· Definição do Método:
Este método permite que seja fixado um valor mínimo, visando suprir o saldo devedor em casos onde pequenas diferênças no fechamento do cupom,

Exemplo: se o total do cupom era 5,00, porém o software pagou 4,99 - então a dll, tendo é claro um valor fixado neste flag, irá pagar automaticamente o saldo de 0,01(centavo), que neste exemplo éra o que faltava para fechar o cupom.

· Parâmetros do Método: (1 Parâmetro).
Flag: String, com o valor a ser fixado no registry.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao Configurar o Registry
-4: Não OK, A chave ou Valor no Arquivo Registry não Foi Encontada

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:


Declarando em CSharp

Declarando em CSharp

Top

using System;
using System.IO;
using System.Windows.Forms;
using System.Net;
using System.Text;
using System.Runtime.InteropServices;
using System.Collections;
using DARUMA32_CSharp;
using Daruma_Framework_CSharp;

namespace DARUMA32_CSharp
{
/// <summary>
/// Classe Para uso de Produtos DARUMA FRAMEWORK DARUMA32.DLL
/// FrameWork de comunicacao que interliga todos os produtos DARUMA Automacao, Telecom e SmartCard
///
/// </summary>
public class DARUMA32
{
//Var Utilizadas pela Classe
//public static int Int_Retorno;
public static int iACK, iST1, iST2, iRET, iValue;
public static short shortValue;

public static string sRetorno;
public static int Int_Retorno;
public static string sBuffer, sBuffer2;
public static string Str_Label, Str_Texto, Str_Retorno_InputBox;

public DARUMA32()
{
Daruma_Registry_StatusFuncao("1");

}
//InputBox
public static string InputBox(string LB_Label, string TX_Texto)
{

Str_Label = string.Empty;
Str_Texto = string.Empty;
Str_Retorno_InputBox = string.Empty;

Str_Label = LB_Label;
Str_Texto = TX_Texto;

Daruma_Framework_InputBox Form_Daruma = new Daruma_Framework_InputBox();
Form_Daruma.ShowDialog();

return Str_Retorno_InputBox;
}

#region Declarações de Metodos de Acesso ao ECF

#region Metodos de Acesso ao Registry

//Metodos de Acesso ao Registry
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Porta(System.String FlagPorta);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Path(System.String FlagPath);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Status(System.String FlagStatus);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_StatusFuncao(System.String FlagStatusFuncao);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Retorno(System.String FlagRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_ControlePorta(System.String FlagControlePorta);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_ModoGaveta(System.String FlagConfigRede);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_ConfigRede(System.String FlagModoGaveta);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Log(System.String FlagLog);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_NomeLog(System.String FlagNomeLog);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Emulador(System.String FlagEmulador);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Separador(System.String CharSeparador);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_SeparaMsgPromo(System.String FlagSeparaMsgPromo);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_ZAutomatica(System.String FlagZAutomatica);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_XAutomatica(System.String FlagXAutomatica);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_VendeItemUmaLinha(System.String FlagVendeUmaLinha);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Default();
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_ImprimeRegistry(System.String NomeProduto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_RetornaValor(System.String Produto, System.String Chave, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Valor);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_AlteraRegistry(System.String cValue, System.String cValor);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_TerminalServer(System.String tserver);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_ErroExtendidoOk(System.String eextok);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_AbrirDiaFiscal(System.String abredia);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_VendaAutomatica(System.String vauto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_IgnorarPoucoPapel(System.String IgnorarPoucoPapel);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_Velocidade(System.String Velocidade);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_LogTamMaxMB(System.String LogTamMaxMB);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_MFD_ArredondaValor(System.String Flag);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_MFD_ArredondaQuantidade(System.String Flag);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_AplMensagem1(System.String AplMsg1);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_AplMensagem2(System.String AplMsg2);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_NumeroSerieNaoFormatado(System.String Flag);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_TEF_NumeroLinhasImpressao(System.String NumeroLinhas);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_MFD_ProgramarSinalSonoro(System.String Flag, System.String FlagNumeroBeeps);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_SintegraSeparador(System.String Separador);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_SintegraPath(System.String Path);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_SintegraUF(System.String UF);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_TextoExtra(System.String TextoEtra);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_MFD_LegendaInmetro(System.String LegendaInmetro);
#endregion

# region Metodos de Acesso aos Comandos de Cupom Fiscal
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AbreCupom(System.String CPF_ou_CNPJ);
[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 Vlr_Unitario, System.String TipoDesconto, System.String Desconto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VendeItemDepartamento(System.String Codigo, System.String Descricao, System.String Aliquota, System.String ValorUnitario, System.String Quantidade, System.String ValorAcrescimo, System.String ValorDesconto, System.String IndiceDepartamento, System.String UnidadeMedida);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VendeItemTresDecimais(string Codigo, string Descricao, string Aliquota, string Quantidade, string Vlr_Unitario, string Acres_ou_Desc, string Percentual_Acresc_Desc);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CancelaItemAnterior();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CancelaItemGenerico(string NumeroItem);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_IniciaFechamentoCupom(string cAcrescimoDesconto, string cTipoAcrescimoDesconto, string cValorAcrescimoDesconto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EfetuaFormaPagamento(string cFormaPagamento, string cValorFormaPagamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EfetuaFormaPagamentoDescricaoForma(string cFormaPagamento, string cValorFormaPagamento, string cTextoLivre);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_IdentificaConsumidor(string cNome, string cEndereco, string cCpf_ou_Cnpj);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_TerminaFechamentoCupom(string cMensagem);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_FechaCupom(string FormaPagamento, string AcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimoDesconto, string ValorPago, string Mensagem);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_FechaCupomResumido(string FormaPagamento, string Mensagem);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EmitirCupomAdicional();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CancelaCupom();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AumentaDescricaoItem(string Descricao);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_UsaUnidadeMedida(string UnidadeMedida);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EstornoFormasPagamento(string FormaOrigem, string FormaDestino, string Valor);
#endregion

#region Metodos Nao Fiscal e Vinculados
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RecebimentoNaoFiscal(string IndiceTotalizador, string ValorRecebimento, string FormaPagamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AbreRecebimentoNaoFiscal(string IndiceTotalizador, string Acrescimo_ou_Desconto, string Tipo_Acrescimo_ou_Desconto,string Valor_Acrescimo_ou_Desconto, string ValorRecebimento, string TextoLivre);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EfetuaFormaPagamentoNaoFiscal(string FormaPagamento, string ValorFormaPagamento, string TextoLivre);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AbreComprovanteNaoFiscalVinculado(string FormaPagamento, string Valor, string NumeroCupom);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_UsaComprovanteNaoFiscalVinculado(string Texto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_FechaComprovanteNaoFiscalVinculado();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_Sangria(string Valor);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_Suprimento(string Valor, string FormaPagamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_FundoCaixa(string ValorFundoCaixa, string FormaPagamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AbreRelatorioGerencial();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EnviarTextoCNF(string texto);
#endregion

#region Metodos de Acesso A Leitura da Memoria Fiscal
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_LeituraMemoriaFiscalData(string DataInicial, string DataFinal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_LeituraMemoriaFiscalReducao(string ReducaoInicial, string ReducaoFinal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_LeituraMemoriaFiscalSerialReducao(string ReducaoInicial, string ReducaoFinal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_LeituraMemoriaFiscalSerialData(string DataInicial, string DataFinal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_FechaRelatorioGerencial();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RelatorioGerencial(string Texto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ReducaoZ(string cData, string cHora);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ReducaoZAjustaDataHora(string cData, string cHora);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_LeituraX();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_LeituraXSerial();

#endregion

#region Metodos de Informacoes da Impressora
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroCupom([MarshalAs(UnmanagedType.VBByRefStr)] ref string VarRetNumeroCupom);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornoImpressora(ref int iACK, ref int iST1, ref int iST2);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaEstadoImpressora(ref int iAckNak, ref int iST1, ref int iST2);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornoAliquotas([MarshalAs(UnmanagedType.VBByRefStr)] ref string Aliquotas);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaTotalizadoresParciais([MarshalAs(UnmanagedType.VBByRefStr)] ref string cTotalizadores);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_SubTotal([MarshalAs(UnmanagedType.VBByRefStr)] ref string SubTotal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_Troco([MarshalAs(UnmanagedType.VBByRefStr)] ref string Trocro);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_SaldoAPagar([MarshalAs(UnmanagedType.VBByRefStr)] ref string Saldo);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_MonitoramentoPapel([MarshalAs(UnmanagedType.VBByRefStr)] ref string LinhasImpressas);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_DadosUltimaReducao([MarshalAs(UnmanagedType.VBByRefStr)] ref string DadosReducao);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_UltimaFormaPagamento([MarshalAs(UnmanagedType.VBByRefStr)] ref string FormaPagamento, [MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorForma);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_TipoUltimoDocumento([MarshalAs(UnmanagedType.VBByRefStr)] ref string TipoUltimoDoc);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroSerie([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroSerie);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VersaoFirmware([MarshalAs(UnmanagedType.VBByRefStr)] ref string VersaoFirmware);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CGC_IE([MarshalAs(UnmanagedType.VBByRefStr)] ref string CGC, [MarshalAs(UnmanagedType.VBByRefStr)] ref string IE);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_GrandeTotal([MarshalAs(UnmanagedType.VBByRefStr)] ref string GrandeTotal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VendaBruta([MarshalAs(UnmanagedType.VBByRefStr)] ref string VendaBruta);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VendaBrutaAcumulada([MarshalAs(UnmanagedType.VBByRefStr)] ref string VendaBrutaAcumulada);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_Descontos([MarshalAs(UnmanagedType.VBByRefStr)] ref string Descontos);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_Cancelamentos([MarshalAs(UnmanagedType.VBByRefStr)] ref string Cancelamentos);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroOperacoesNaoFiscais([MarshalAs(UnmanagedType.VBByRefStr)] ref string Operacoes);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroCuponsCancelados([MarshalAs(UnmanagedType.VBByRefStr)] ref string CuponsCancelados);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroReducoes([MarshalAs(UnmanagedType.VBByRefStr)] ref string Reducoes);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroIntervencoes([MarshalAs(UnmanagedType.VBByRefStr)] ref string Intervencoes);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroSubstituicoesProprietario([MarshalAs(UnmanagedType.VBByRefStr)] ref string Substituicoes);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_UltimoItemVendido([MarshalAs(UnmanagedType.VBByRefStr)] ref string UltimoItem);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ClicheProprietario([MarshalAs(UnmanagedType.VBByRefStr)] ref string ClicheProprietario);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ClicheProprietarioEx([MarshalAs(UnmanagedType.VBByRefStr)] ref string ClicheProprietario);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroCaixa([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroCaixa);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NumeroLoja([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroLoja);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_SimboloMoeda([MarshalAs(UnmanagedType.VBByRefStr)] ref string SimboloMoeda);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_FlagsFiscais(ref int FlagFiscal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_MinutosLigada([MarshalAs(UnmanagedType.VBByRefStr)] ref string MinutosLigada);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_MinutosImprimindo([MarshalAs(UnmanagedType.VBByRefStr)] ref string MinutosImprimindo);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaModoOperacao([MarshalAs(UnmanagedType.VBByRefStr)] ref string cModo);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_StatusCupomFiscal([MarshalAs(UnmanagedType.VBByRefStr)] ref string cStatus);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_StatusComprovanteNaoFiscalVinculado([MarshalAs(UnmanagedType.VBByRefStr)] ref string cStatus);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado([MarshalAs(UnmanagedType.VBByRefStr)] ref string cStatus);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_StatusRelatorioGerencial([MarshalAs(UnmanagedType.VBByRefStr)] ref string cStatus);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaEpromConectada([MarshalAs(UnmanagedType.VBByRefStr)] ref string FlagEprom);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaZPendente([MarshalAs(UnmanagedType.VBByRefStr)] ref string FlagZPendente);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaXPendente([MarshalAs(UnmanagedType.VBByRefStr)] ref string FlagXPendente);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaDiaAberto([MarshalAs(UnmanagedType.VBByRefStr)] ref string FlagDiaAberto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaHorarioVerao([MarshalAs(UnmanagedType.VBByRefStr)] ref string FlagHorarioVerao);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ValorPagoUltimoCupom([MarshalAs(UnmanagedType.VBByRefStr)] ref string Valor);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_DataHoraImpressora([MarshalAs(UnmanagedType.VBByRefStr)] ref string Data, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Hora);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ContadoresTotalizadoresNaoFiscais([MarshalAs(UnmanagedType.VBByRefStr)] ref string Contadores);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaTotalizadoresNaoFiscais([MarshalAs(UnmanagedType.VBByRefStr)] ref string Totalizadores);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaTotalizadoresNaoFiscaisEx([MarshalAs(UnmanagedType.VBByRefStr)] ref string TotalizadoresEx);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_DataHoraReducao([MarshalAs(UnmanagedType.VBByRefStr)] ref string DataReducao, [MarshalAs(UnmanagedType.VBByRefStr)] ref string HoraReducao);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_DataMovimento([MarshalAs(UnmanagedType.VBByRefStr)] ref string DataMovimento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaTruncamento([MarshalAs(UnmanagedType.VBByRefStr)] ref string FlagTruncamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaAliquotasIss([MarshalAs(UnmanagedType.VBByRefStr)] ref string AliquotasIss);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_Acrescimos([MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorAcrescimo);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaFormasPagamento([MarshalAs(UnmanagedType.VBByRefStr)] ref string cFormas);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaFormasPagamentoEx([MarshalAs(UnmanagedType.VBByRefStr)] ref string cFormas);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaDescricaoFormasPagamento([MarshalAs(UnmanagedType.VBByRefStr)] ref string cFormas);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaRecebimentoNaoFiscal([MarshalAs(UnmanagedType.VBByRefStr)] ref string cRecebimentos);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaTipoImpressora(ref int TipoImpressora);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaModeloECF();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaIndiceAliquotasIss([MarshalAs(UnmanagedType.VBByRefStr)] ref string cIndices);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ValorFormaPagamento(string cFormaPagamento, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Valor);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ValorTotalizadorNaoFiscal( string Totalizador, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Valor);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaImpressoraLigada();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_MapaResumo();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RelatorioTipo60Analitico();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RelatorioTipo60Mestre();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_COO([MarshalAs(UnmanagedType.VBByRefStr)] ref string cCooInicial, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cCooFinal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaErroExtendido([MarshalAs(UnmanagedType.VBByRefStr)] ref string cCooInicial);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CRO([MarshalAs(UnmanagedType.VBByRefStr)] ref string cCRO);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_PalavraStatus([MarshalAs(UnmanagedType.VBByRefStr)] ref string psatus);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_PalavraStatusBinario([MarshalAs(UnmanagedType.VBByRefStr)] ref string pstatusbin);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_LerAliquotasComIndice([MarshalAs(UnmanagedType.VBByRefStr)] ref string aindice);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornarVersaoDLL([MarshalAs(UnmanagedType.VBByRefStr)] ref string Versao);

#region Funções Exclusivas para MFD
[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_IndicePrimeiroVinculado([MarshalAs(UnmanagedType.VBByRefStr)] ref string aindice);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_CasasDecimaisProgramada([MarshalAs(UnmanagedType.VBByRefStr)] ref string DecimaisQuantidade,ref string DecimaisValor);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_DownloadDaMFD(string COOInicial, string COOFinal);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_RetornaInformacao(string Indice, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Valor);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_TerminaFechamentoCupomCodigoBarras(string Mensagem, string Tipo,string Codigo,string Largura, string Altura,string Posicao );

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_ImprimeCodigoBarras(string Tipo, string Codigo, string Largura, string Altura, string Posicao);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional(string Tipo, string Codigo, string Largura, string Altura, string Posicao);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_StatusCupomFiscal([MarshalAs(UnmanagedType.VBByRefStr)] ref string cStatus_Cupom);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_SinalSonoro(string Str_Valor);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_EqualizarVelocidade(StringBuilder EqualizarVelocidade);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_AcionarGuilhotina();

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_ProgramaRelatoriosGerenciais(string Str_Valor);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_AbreRelatorioGerencial(string Str_Valor);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_EmitirCupomAdicional();

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_RetornaInformacao(string Indice, StringBuilder Valor);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_AbreRecebimentoNaoFiscal(string CPF, string Nome, string Endereco);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_RecebimentoNaoFiscal(string DescricaoTotalizador,string AcresDesc,string TipoAcresDesc, string ValorAcresDesc, string ValorRecebimento);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_IniciaFechamentoNaoFiscal(string AcresDesc, string TipoAcresDesc, string ValorAcresDesc);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_EfetuaFormaPagamentoNaoFiscal(string FormaPgto, string Valor,string Observacao);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_TerminaFechamentoNaoFiscal(string MsgPromo);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_ProgramarGuilhotina(System.String Separacao_Entre_Documentos, System.String Linhas_para_Acionamento_Guilhotina, System.String Status_da_Guilhotina, System.String Impressao_Antecipada_Cliche);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_StatusCupomFiscal(StringBuilder cStatus);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_GrandeTotal(StringBuilder GrandeTotal);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_SubTotal(StringBuilder SubTotal);

[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_CupomAdicionalDll(System.String CupomAdicional);

[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_CupomAdicionalDllConfig(System.String CupomAdicional);

[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_MFD_LeituraMFCompleta(string valor);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_DescontoAcrescimoItem(string NumItemDescontoAcrescimo, string DescAcres, string TipoDescAcres, string ValorDescAcres);

#region Bilhete de Passagem

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIB_AbreBilhetePassagem(string Origem, string Destino, string UF, string Percurso, string Prestadora, string Plataforma, string Poltrona, string Modalidade, string Categoria, string DataEmbarque, string PassRg, string PassNome, string PassEndereco);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FIB_VendeItem(string Descricao, string St, string Valor, string DescontoAcrescimo, string TipoDesconto, string ValorDesconto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FIB_UfOrigem(string UfOrigem);

#endregion

#endregion

#endregion

#region Retornos
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaGNF([MarshalAs(UnmanagedType.VBByRefStr)] ref string cGeralNaoFiscal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaValorComprovanteNaoFiscal(string Indice,[MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorComprNaoFiscal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaIndiceComprovanteNaoFiscal(string Indice, [MarshalAs(UnmanagedType.VBByRefStr)] ref string IndiceCNF);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCFCancelados([MarshalAs(UnmanagedType.VBByRefStr)] ref string cCupomCancelado);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCNFCancelados([MarshalAs(UnmanagedType.VBByRefStr)] ref string cCupomNFCancelado);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCLX([MarshalAs(UnmanagedType.VBByRefStr)] ref string cLeituraX);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCRO([MarshalAs(UnmanagedType.VBByRefStr)] ref string cCRO);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCRZ([MarshalAs(UnmanagedType.VBByRefStr)] ref string cReducaoZ);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCRZRestante([MarshalAs(UnmanagedType.VBByRefStr)] ref string cReducaoRestante);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaTotalPagamentos([MarshalAs(UnmanagedType.VBByRefStr)] ref string CtotalFormasPago);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaTroco([MarshalAs(UnmanagedType.VBByRefStr)] ref string cTroco);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCNFNV([MarshalAs(UnmanagedType.VBByRefStr)] ref string cCNaoFiscalNaoVinculado);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaDescricaoCNFV([MarshalAs(UnmanagedType.VBByRefStr)] ref string cDescricaoNaoFiscalVinculado);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaDescontoNF([MarshalAs(UnmanagedType.VBByRefStr)] ref string cDescNF);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaAcrescimoNF([MarshalAs(UnmanagedType.VBByRefStr)] ref string cAcrescimoNF);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCancelamentoNF([MarshalAs(UnmanagedType.VBByRefStr)] ref string cCancelamentoNF);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaCNFV([MarshalAs(UnmanagedType.VBByRefStr)] ref string CContadorNFVinculado);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaTempoLigado([MarshalAs(UnmanagedType.VBByRefStr)] ref string cTimeLigado);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaTempoImprimindo([MarshalAs(UnmanagedType.VBByRefStr)] ref string CTimeImprimindo);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaRegistradoresNaoFiscais([MarshalAs(UnmanagedType.VBByRefStr)] ref string CRgistradoresNF);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaRegistradoresFiscais([MarshalAs(UnmanagedType.VBByRefStr)] ref string CRgistradoresFiscais);

#endregion

#region Configuracaoes do ECF
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_Cfg(int VariavelDoEcf, string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgFechaAutomaticoCupom(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgRedZAutomatico(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgImpEstGavVendas(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgLeituraXAuto(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgCalcArredondamento(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgHorarioVerao(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgSensorAut(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgCupomAdicional(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgEspacamentoCupons(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgHoraMinReducaoZ(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgLimiarNearEnd(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgPermMensPromCNF(string VarConfigEcf);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_CfgLegProdutos(string VarConfigEcf);
#endregion

#region Outras
//Outras
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AbrePortaSerial();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_FechaPortaSerial();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AberturaDoDia(string Str_Valor,string Str_FormaPagamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_FechamentoDoDia();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ImprimeConfiguracoesImpressora();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RegistraNumeroSerie();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaNumeroSerie();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_RetornaSerialCriptografado(string SerialCriptografado, string NumeroSerial);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ConfiguraHorarioVerao(string DataEntrada,string DataSaida,string Controle );
#endregion

#region Programacao do ECF
//Programacao do ECF
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AlteraSimboloMoeda(string cMoeda);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ProgramaAliquota(string cAliquota, int ICMS_ou_ISS);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ProgramaHorarioVerao();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms(int iIndice, string cTotalizador);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ProgramaArredondamento();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ProgramaTruncamento();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_LinhasEntreCupons(int Linhas);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EspacoEntreLinhas(int Dots);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ForcaImpactoAgulhas(int ForcaImpacto);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ResetaImpressora();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ProgramaFormasPagamento(string FormaPagamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ProgFormasPagtoSemVincular(string FormaPagamento);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ProgramaVinculados(string DescricaoVinculado);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_EqualizaFormasPgto();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_ProgramaOperador(string Operador);
#endregion

#region Metodos de Autenticacao e Gaveta
//Metodos de Autenticacao e Gaveta

[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AutenticacaoStr(string TextoStr);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_Autenticacao();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaDocAutenticacao();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_AcionaGaveta();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaEstadoGaveta(ref int Estado);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_VerificaEstadoGavetaStr([MarshalAs(UnmanagedType.VBByRefStr)] ref string EstadoGaveta);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI_SaltarLinhas(int Linhas);
#endregion

#region Metodos de TEF
//Metodos de TEF
[DllImport("Daruma32.dll")]
public static extern int Daruma_TEF_EsperarArquivo(string cArquivo, string cTempo, string cTravar);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TEF_ImprimirResposta(string cArquivoResp, string cForma, string cTravar);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TEF_ImprimirRespostaCartao(string cArquivoResp, string cForma, string cTravar,string ValorPago);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TEF_SetFocus(string cWndFocus);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TEF_TravarTeclado(string cTravar);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TEF_FechaRelatorio();
#endregion

#region Métodos para o Síntegra
//Metodo de Alto Nivel
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistrosArq(string cDataInicio, string cDataFim, string cMunicipio, string cFax, string cCodIdConvenio, string cCodIdNatureza, string cCodIdfinalidade, string cLogradouro, string cNumero, string cComplemento, string cBairro, string cCep, string cNomeContato, string cTelefone);

//Metodo de Médio Nível
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistro10(string cDataInicio, string cDataFim, string cMunicipio, string cFax, string cCodIdConvenio, string cCodIdNatureza, string cCodIdfinalidade, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistro11(string cLogradouro, string cNumero, string cComplemento, string cBairro, string cCEP, string cNomeContato, string cTelefone, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistro60M(string cDataInicio, string cDataFim, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistro60A(string cDataInicio, string cDataFim, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistro60D(string cDataInicio, string cDataFim, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistro60I(string cDataInicio, string cDataFim, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistro60R(string cDataInicio, string cDataFim, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Sintegra_GerarRegistro90(string cRetorno);
/* [DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_SintegraSeparador(string cSeparador);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_SintegraPath(string cPath);*/

//Metodo de Baixo Nivel
[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_RetornarInfoDownloadMFD(string cTipoDownload, string cData_ou_COOInicio, string cData_ou_COOFim, string cIndice, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cRetorno);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_RetornarInfoDownloadMFDArquivo(string cTipoDownload, string cData_ou_COOInicio, string cData_ou_COOFim, string cIndice);

//Metodos para Gerar o Ato Cotepe NF Paulista
[DllImport("Daruma32.dll")]
public static extern int Daruma_RFD_GerarArquivo( string cDataInicial, string cDataFinal);

#endregion

#region Metodos para o PAF-ECF
[DllImport("Daruma32.dll")]
public static extern int Daruma_RSA_CarregaChavePrivada_Arquivo(System.String Arquivo);

[DllImport("Daruma32.dll")]
public static extern int Daruma_RSA_RetornaChavePublica([MarshalAs(UnmanagedType.VBByRefStr)] ref string N, [MarshalAs(UnmanagedType.VBByRefStr)] ref string E);

[DllImport("Daruma32.dll")]
public static extern int Daruma_RSA_CriarAssinatura(string caminhoDoArquivo, [MarshalAs(UnmanagedType.VBByRefStr)] ref string sMD5, [MarshalAs(UnmanagedType.VBByRefStr)] ref string sAssinaturaEletronica);

[DllImport("Daruma32.dll")]
public static extern int Daruma_RSA_CriarAssinaturaHex(string caminhoDoArquivo, [MarshalAs(UnmanagedType.VBByRefStr)] ref string sMD5, [MarshalAs(UnmanagedType.VBByRefStr)] ref string sAssinaturaEletronica);

[DllImport("Daruma32.dll")]
public static extern int Daruma_RSA_CriarAssinaturaOnline(string caminhoDoArquivo, string caminhoDaChave, [MarshalAs(UnmanagedType.VBByRefStr)] ref string sAssinaturaEletronica);

[DllImport("Daruma32.dll")]
public static extern int Daruma_RSA_CodificaInformacao(System.String Texto, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Codigo);

[DllImport("Daruma32.dll")]
public static extern int Daruma_RSA_DecodificaInformacao(System.String Codigo, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Texto);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_GTCodificado([MarshalAs(UnmanagedType.VBByRefStr)] ref string GTCodificado);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_Verifica_GTCodificado(System.String GTCodificado);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_NumeroSerialCodificado([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroSerialCodificado);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_Verifica_NumeroSerialCodificado(System.String NumeroSerialCodificado);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_CodigoModeloFiscal([MarshalAs(UnmanagedType.VBByRefStr)] ref string CodigoModeloFiscal);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_GerarAtoCotepeData(System.String DataIni, System.String DataFim);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_GerarAtoCotepePafData(System.String DataIni, System.String DataFim);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_GerarAtoCotepePafCOO(System.String COOIni, System.String COOFim);

//Metodo para gerar o arquivo Atocotepe17/04 para a LMFC para o paf
[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_GerarMFPAF_Data(System.String DataIni, System.String DataFim);

[DllImport("Daruma32.dll")]
public static extern int Daruma_FIMFD_GerarMFPAF_CRZ(System.String CRZIni, System.String CRZFim);

#endregion

#region Funções de Acesso a Impressora FS2000
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_SelecionaBanco(string cBanco);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_SelecionaCidade(string cCidade);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_SelecionaData(string cData);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_SelecionaFavorecido(string cFavor);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_SelecionaValorChequeH(string cValor);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_SelecionaValorChequeV(string cChequeV);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_SelecionaTextoVersoCheque(string cChequeH);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_LeituraCodigoMICR(ref string cMicr);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_LiberarCheque();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_CarregarCheque();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_CorrigirGeometriaCheque(string cGeo, string cGeo2);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_LeituraTabelaCheque(ref string cTabchq);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_AbreRelatorioGerencial(string cRgerencial);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_CriaRelatorioGerencial(string cCgerencial);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_VerificaRelatorioGerencial([MarshalAs(UnmanagedType.VBByRefStr)]ref string cVgerencial);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_StatusCheque(ref string cScheque);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_ImprimirCheque(string cparm1, string cparm2, string cparm3, string cparm4, string cparm5, string cparm6);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_ImprimirVersoCheque(string cparm1);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_CancelarCheque();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_DescontoSobreItemVendido(string cparm1, string cparm2, string cparm3);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_FS2000_CupomAdicional(string cparm1);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_SegundaViaCNFVinculado();
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_CancelamentoCNFV(string cparm1);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_AcrescimosICMSISS([MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm1, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm2);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_CancelamentosICMSISS([MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm1, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm2);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_DescontosICMSISS([MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm1, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm2);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_LeituraInformacaoUltimoDoc([MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm1, [MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm2);
[DllImport("Daruma32.dll")]
public static extern int Daruma_FI2000_LeituraInformacaoUltimosCNF([MarshalAs(UnmanagedType.VBByRefStr)] ref string cparm1);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_FS2000_TempoEsperaCheque(string TempoEspCheque);
#endregion

#region Função que analisa os retornos do ECF
//Funcao que analiza o retorno da impressora
//FrameWork Daruma32.dll
public static void Daruma_Mostrar_Retorno()
{
string Str_Erro_Extendido = new string(' ', 4); ;

int Int_ACK = 0;
int Int_ST1 = 0;
int Int_ST2 = 0;

Daruma_FI_RetornoImpressora(ref Int_ACK, ref Int_ST1, ref Int_ST2);

Daruma_FI_RetornaErroExtendido(ref Str_Erro_Extendido);

MessageBox.Show("Retorno do Metodo = "
+ Int_Retorno.ToString() + "\r\n"
+ "ACK = " + Int_ACK.ToString() + "\r\n"
+ "ST1 = " + Int_ST1.ToString() + "\r\n"
+ "ST2 = " + Int_ST2.ToString() + "\r\n"
+ "Erro Extendido = " + Str_Erro_Extendido.ToString(), "Daruma Framework Retorno do Metodo");
}
#endregion

#endregion

#region Impressora DUAL

#region Funções de Acesso a Impressora DUAL
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_DUAL_Enter(string cEnter);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_DUAL_Porta(string cPorta);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_DUAL_Espera(string cEspera);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_DUAL_ModoEscrita(string cEscrita);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_DUAL_Tabulacao(string cTabulacao);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_DUAL_Termica(string cTermica);
[DllImport("Daruma32.dll")]
public static extern int Daruma_Registry_DUAL_Velocidade(string cVelocidade);
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_ImprimirTexto(string cTexto, int cTam);
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_ImprimirArquivo(string cArquivo);
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_VerificaStatus();
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_StatusGaveta();
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_VerificaDocumento();
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_Autenticar(string Local, string cTexto, string cSec);
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_AcionaGaveta();
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_EnviarBMP(string cPath_do_BMP);
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_VerificarGuilhotina();
[DllImport("Daruma32.dll")]
public static extern int Daruma_DUAL_ConfigurarGuilhotina(int cFlag, int cLinhasAcionamento);

#endregion

#region Função que analisa os retornos da DUAL
//Funcao que analiza o retorno da impressora DUAL (nao fiscal)
//FrameWork Daruma32.dll
public static void Retorno_DUAL()
{
if (Int_Retorno == 0)
MessageBox.Show("0(zero) - Impressora Desligada!", "Daruma_Framework_CSharp", MessageBoxButtons.OK, MessageBoxIcon.Error);

if (Int_Retorno == 1)
MessageBox.Show("1(um) - Impressora OK!", "Daruma_Framework_CSharp", MessageBoxButtons.OK, MessageBoxIcon.Information);

if (Int_Retorno == -50)
MessageBox.Show("-50 - Impressora OFF-LINE!", "Daruma_Framework_CSharp", MessageBoxButtons.OK, MessageBoxIcon.Error);

if (Int_Retorno == -51)
MessageBox.Show("-51 - Impressora Sem Papel!", "Daruma_Framework_CSharp", MessageBoxButtons.OK, MessageBoxIcon.Error);

if (Int_Retorno == -27)
MessageBox.Show("-27 - Erro Generico!", "Daruma_Framework_CSharp", MessageBoxButtons.OK, MessageBoxIcon.Error);

}
#endregion

#endregion

#region Funções de Acesso ao Terminal Autonomo (TA1000)
//Comunicando com o TA1000
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_LeStatusTransferencia();
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_LeStatusRecebimento();
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_EnviarBancoProdutos();
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_ReceberBancoProdutos();
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_ReceberProdutosVendidos();
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_CadastrarProdutos(string cDescricao, string cCodigo, string cCasasDecimaisPreco, string cCasasDecimaisQuantidade, string cPreco, string cDA, string cDAValor, string cUnidade, string cAlicota, string cProx, string cAnterior, string cEstoque);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_EliminarProdutos(string cCodigo);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_ZerarProdutos();
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_ConsultarProdutos(string cCodigo_Consultar, string cDescricao, string cCodigo, string cCasasDecimaisPreco, string cCasasDecimaisQuantidade, string cPreco, string cDA, string cDAValor, string cUnidade, string cAliquota, string cProx, string cAnterior, string cEstoque);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_ConsultarProdutosVendidos(string cDescricao, string cCodigo, string cPreco, string cGrupo, string cAcrecimo, string cCasasDecimaisPreco, string cCasasDecimaisQuantidade, string cUnidade, string cAlicota, string Estoque, string cParam1, string cParam2, string cQtdadeVendidoHoje, string cTotalVendido, string cQtdadeVendidoTotal);
[DllImport("Daruma32.dll")]
public static extern int Daruma_TA1000_ZerarProdutosVendidos();
#endregion

}
}


Declarando em Delphi

Declarando em Delphi 7.0
Top

{Declaracao da Dll Integradora Daruma32.dll}

// Métodos do Cupom Fiscal

function Daruma_FI_AbreCupom( CPF_ou_CNPJ: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VendeItem( Codigo: String; Descricao: String; Aliquota: String; Tipo_de_Quantidade: String; Quantidade: String; Casas_Decimais: Integer; Valor_Unitario: String; Tipo_de_Desconto: String; Valor_do_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VendeItemDepartamento( Codigo: String; Descricao: String; Aliquota: String; Valor_Unitario: String; Quantidade: String; Valor_do_Desconto: String; Valor_do_Acrescimo: String; Indice_Departamento: String; Unidade_Medida: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VendeItemTresDecimais( Codigo: String; Descricao: String; Aliquota: String; Quantidade: String; Valor_Unitario: String; Acrescimo_ou_Desconto: String; Percentual_Acrescimo_ou_Desconto : String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_FechaCupomResumido( Descricao_da_Forma_de_Pagamento: String; Mensagem_Promocional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_IniciaFechamentoCupom( Acrescimo_ou_Desconto: String; Tipo_do_Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_EfetuaFormaPagamento( Descricao_da_Forma_Pagamento: String; Valor_da_Forma_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_EfetuaFormaPagamentoDescricaoForma( Descricao_da_Forma_Pagamento: string; Valor_da_Forma_Pagamento: string; Texto_Livre: string ): integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_IdentificaConsumidor( Nome_do_Consumidor: String; Endereco: String; CPF_ou_CNPJ: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_TerminaFechamentoCupom( Mensagem_Promocional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_FechaCupom( Forma_de_Pagamento: String; Acrescimo_ou_Desconto: String; Tipo_Acrescimo_ou_Desconto: String; Valor_Acrescimo_ou_Desconto: String; Valor_Pago: String; Mensagem_Promocional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CancelaItemAnterior: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CancelaItemGenerico( Numero_Item: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CancelaCupom: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_AumentaDescricaoItem( Descricao_Extendida: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_UsaUnidadeMedida( Unidade_Medida: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_EmitirCupomAdicional: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_EstornoFormasPagamento( Forma_de_Origem: String; Nova_Forma: String; Valor_Total_Pago: String ): Integer; StdCall; External 'Daruma32.dll';

// Métodos para Recebimentos e Relatórios

function Daruma_FI_AbreComprovanteNaoFiscalVinculado( Forma_de_Pagamento: String; Valor_Pago: String; Numero_do_Cupom: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_UsaComprovanteNaoFiscalVinculado( Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_FI_FechaComprovanteNaoFiscalVinculado: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RelatorioGerencial( Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_AbreRelatorioGerencial: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_EnviarTextoCNF( Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_FechaRelatorioGerencial: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RecebimentoNaoFiscal( Descricao_do_Totalizador: String; Valor_do_Recebimento: String; Forma_de_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_AbreRecebimentoNaoFiscal( Descricao_do_Totalizador: String; Acrescimo_ou_Desconto: String; Tipo_Acrescimo_ou_Desconto: String; Valor_Acrescimo_ou_Desconto: String; Valor_do_Recebimento: String; Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_EfetuaFormaPagamentoNaoFiscal( Forma_de_Pagamento: String; Valor_da_Forma_Pagamento: String; Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_Sangria( Valor_da_Sangria: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_Suprimento( Valor_do_Suprimento: String; Forma_de_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_FundoCaixa( Valor_do_Fundo_Caixa: String; Forma_de_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_LeituraX: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FI_LeituraXSerial: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FI_ReducaoZ( Data: String; Hora: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ReducaoZAjustaDataHora( Data: String; Hora: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_LeituraMemoriaFiscalData( Data_Inicial: String; Data_Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_LeituraMemoriaFiscalReducao( Reducao_Inicial: String; Reducao_Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_LeituraMemoriaFiscalSerialData( Data_Inicial: String; Data_Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_LeituraMemoriaFiscalSerialReducao( Reducao_Inicial: String; Reducao_Final: String ): Integer; StdCall; External 'Daruma32.dll';

// Métodos Gaveta, Autentica e Outras

function Daruma_FI_VerificaDocAutenticacao: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FI_Autenticacao: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_Autenticacao';
function Daruma_FI_AutenticacaoStr( Autenticacao_Str :string ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_FI_VerificaEstadoGaveta( Var Estado_Gaveta: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaEstadoGavetaStr( Estado_Gaveta: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_AcionaGaveta: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FI_AbrePortaSerial: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_FechaPortaSerial: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FI_AberturaDoDia( Valor_do_Suprimento: string; Forma_de_Pagamento: string ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_FechamentoDoDia: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_FechamentoDoDia';
function Daruma_FI_ImprimeConfiguracoesImpressora: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FI_RegistraNumeroSerie: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FI_VerificaNumeroSerie: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FI_RetornaSerialCriptografado( SerialCriptografado :string; NumeroSerial: string ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_FI_ConfiguraHorarioVerao( DataEntrada: string; DataSaida: string ; controle: string): Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FI_SaltarLinhas( Int_Linhas:Integer ): Integer; StdCall; External 'Daruma32.dll';

// Métodos Prog e Config

function Daruma_FI_ProgramaAliquota( Valor_Aliquota: String; Tipo_Aliquota: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms( Indice_do_Totalizador: Integer; Nome_do_Totalizador: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ProgramaFormasPagamento( Descricao_das_Formas_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ProgramaOperador( Nome_do_Operador: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ProgramaArredondamento: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ProgramaTruncamento: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_ProgramaTruncamento';
function Daruma_FI_LinhasEntreCupons( Linhas_Entre_Cupons: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_EspacoEntreLinhas( Espaco_Entre_Linhas: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ProgramaHorarioVerao: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_EqualizaFormasPgto: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ProgramaVinculados( Vinculado: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ProgFormasPagtoSemVincular( Descricao_da_Forma_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';

// Métodos de Configuração e Registry

function Daruma_FI_CfgFechaAutomaticoCupom( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgImpEstGavVendas( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgCalcArredondamento( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgHorarioVerao( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgSensorAut( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgCupomAdicional( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgPermMensPromCNF( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgEspacamentoCupons( DistanciaCupons: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgHoraMinReducaoZ( Hora_Min_para_ReducaoZ: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgLimiarNearEnd( NumeroLinhas: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgLeituraXAuto( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgLeituraZAuto( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CfgRedZAutomatico( Flag: String ): Integer; StdCall; External 'Daruma32.dll';

function Daruma_Registry_AlteraRegistry( Chave: String; ValorChave: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_AlterarRegistry( Produto: String; Chave: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_Porta( Porta: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_Path( Path: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_Status( Status: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_StatusFuncao( StatusFuncao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_Retorno( Retorno: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_ControlePorta( ControlePorta: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_ModoGaveta( ModoGaveta: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_Log( Log: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_NomeLog( NomeLog: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_Separador( Separador: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_SeparaMsgPromo( SeparaMsgPromo: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_ZAutomatica( ZAutomatica: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_XAutomatica( XAutomatica: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_VendeItemUmaLinha( VendeItemUmaLinha: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_Default: Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_RetornaValor( Produto: String; Chave: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_TerminalServer( TerminalServer: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_ErroExtendidoOk( ValorErro: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_AbrirDiaFiscal( AbrirDiaFiscal: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_VendaAutomatica( VendaAutomatica: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_IgnorarPoucoPapel( IgnorarPoucoPapel: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_ImprimeRegistry( Produto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_TEF_NumeroLinhasImpressao( NumeroLinhasImpressao: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_MFD_ArredondaValor( Valor: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_MFD_ArredondaQuantidade( Quantidade: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_MFD_ProgramarSinalSonoro( NomeChave: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_MFD_LeituraMFCompleta( Valor: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_MFDValorFinal( ValorFinal: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_NumeroSerieNaoFormatado( Formatado: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_CupomAdicionalDll( AdicionalDll: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_CupomAdicionalDllConfig( ConfigAdicionalDll: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_PCExpanionLogin( FlagLogin: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_LogTamMaxMB( LogTamMaxMB: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_MaxFechamentoAutomatico( MaxFechamentoAutomatico: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_SintegraUF( UF: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_Velocidade( Velocidade: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_TextoExtra( TextoExtra: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_Registry_MFD_LegendaInmetro( LegendaInmetro: String ): Integer; StdCall; External 'Daruma32.dll'

// Métodos de Informações e Status
function Daruma_FI_StatusCupomFiscal( StatusCupomFiscal: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_StatusRelatorioGerencial( StatusRelGerencial: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_StatusComprovanteNaoFiscalVinculado( StatusCNFV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado( StatusCNFNV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaImpressoraLigada: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FI_VerificaTotalizadoresParciais( Totalizadores: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaModoOperacao( Modo: string ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaTotalizadoresNaoFiscais( Totalizadores: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaTotalizadoresNaoFiscaisEx( Totalizadores: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaTruncamento( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaAliquotasIss( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaIndiceAliquotasIss( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaRecebimentoNaoFiscal( Recebimentos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaTipoImpressora( Var TipoImpressora: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaStatusCheque( StatusCheque: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaModeloECF: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaDescricaoFormasPagamento( Descricao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaXPendente( XPendente: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaZPendente( ZPendente: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaDiaAberto( DiaAberto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaHorarioVerao( HoraioVerao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaFormasPagamento( Formas: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaFormasPagamentoEx( FormasEx: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaEpromConectada( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornarVersaoDLL(Versao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VerificaEstadoImpressora( Var ACK: Integer; Var ST1: Integer; Var ST2: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ClicheProprietario( Cliche: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ClicheProprietarioEx( ClicheEx: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroCaixa( NumeroCaixa: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroLoja( NumeroLoja: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroSerie( NumeroSerie: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VersaoFirmware( VersaoFirmware: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CGC_IE( CGC: String; IE: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_LerAliquotasComIndice(AliquotasComIndice: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroCupom( NumeroCupom: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_COO(Inicial: String; Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_MinutosImprimindo( Minutos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_MinutosLigada( Minutos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroSubstituicoesProprietario( NumeroSubstituicoes: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroIntervencoes( NumeroIntervencoes: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroReducoes( NumeroReducoes: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroCuponsCancelados( NumeroCancelamentos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_NumeroOperacoesNaoFiscais( NumeroOperacoes: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_DataHoraImpressora( Data: String; Hora: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_DataHoraReducao( Data: String; Hora: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_DataMovimento( Data: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ContadoresTotalizadoresNaoFiscais( Contadores: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VendaBruta( VendaBruta: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_VendaBrutaAcumulada( VendaBrutaAcumulada: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_GrandeTotal( GrandeTotal: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_Descontos( ValorDescontos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_Acrescimos( ValorAcrescimos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_Cancelamentos( ValorCancelamentos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_DadosUltimaReducao( DadosReducao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_SubTotal( SubTotal: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_SaldoAPagar( SaldoAPagar: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_Troco( Troco: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornoAliquotas( Aliquotas: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ValorPagoUltimoCupom( ValorCupom: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ValorFormaPagamento( FormaPagamento: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_ValorTotalizadorNaoFiscal( Totalizador: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_UltimoItemVendido( NumeroItem: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_UltimaFormaPagamento( Descricao_da_Forma: String; Valor_da_Forma: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_TipoUltimoDocumento(TipoUltimoDoc: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_MapaResumo: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_MapaResumo';
function Daruma_FI_RelatorioTipo60Analitico: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_RelatorioTipo60Analitico';
function Daruma_FI_RelatorioTipo60Mestre: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_RelatorioTipo60Mestre';
function Daruma_FI_FlagsFiscais( Var Flag: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_FlagsFiscaisStr(Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_PalavraStatus( PalavraStatus: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_PalavraStatusBinario( PalavraStatusBinario: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_SimboloMoeda( SimboloMoeda: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornoImpressora( Var ACK: Integer; Var ST1: Integer; Var ST2: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaErroExtendido( ErroExtendido: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaAcrescimoNF( AcrescimoNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCFCancelados( CFCancelados: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCNFCancelados( CNFCancelados: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCLX(CLX: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCNFNV(CNFNV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCNFV(CNFV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaDescricaoCNFV(CNFV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCRO(CRO: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCRZ(CRZ: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCRZRestante( CRZRestante: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaCancelamentoNF( CancelamentoNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaDescontoNF( DescontoNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaGNF( GNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaTempoImprimindo( TempoImprimindo: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaTempoLigado( TempoLigado: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaTotalPagamentos( TotalPagamentos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaTroco( Troco: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaValorComprovanteNaoFiscal( Indice_CNF: String; Informacao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaIndiceComprovanteNaoFiscal( DescricaoRegistrCNF: String; RefIndice: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaRegistradoresNaoFiscais( RegistrNaoFiscais: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_RetornaRegistradoresFiscais( RegistrFiscais: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI_CupomMania(ISS: String; ICMS: string): Integer; StdCall; External 'Daruma32.dll';

// Métodos para TEF
function Daruma_TEF_EsperarArquivo( Path_Resp_TEF: String; Tempo_Espera: String; Travar: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TEF_ImprimirResposta( Path_Arquivo_Resp_TEF: string; Forma_de_Pagamento: string; Travar_Teclado: string ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_TEF_ImprimirRespostaCartao( Path_Arquivo_Resp_TEF: string; Forma_de_Pagamento: string; Travar_Teclado: string; Valor_da_Forma_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_TEF_FechaRelatorio: Integer; StdCall; External 'Daruma32.dll'
function Daruma_TEF_SetFocus( TituloJanela: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_TEF_TravarTeclado( Travar: String ): Integer; StdCall; External 'Daruma32.dll'

// Métodos para FS2000
function Daruma_Registry_FS2000_CupomAdicional( CupomAdicional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_FS2000_TempoEsperaCheque( TempodeEspera: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_DescontoSobreItemVendido( NumeroItem: String; TipoDesconto: String; ValorDesconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_AcrescimosICMSISS( AcrescICMS: String; AcrescISS: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_CancelamentosICMSISS( CancelICMS: String; CancelISS: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_DescontosICMSISS( DescICMS: String; DescISS: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_LeituraInformacaoUltimosCNF( UltimosCNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_LeituraInformacaoUltimoDoc( TipoUltimoDoc: String; ValorUltimoDoc: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_VerificaRelatorioGerencial( Gerencial: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_CriaRelatorioGerencial( NomeGerencial: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_AbreRelatorioGerencial( Indice: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_CancelamentoCNFV( COO_CNFV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_SegundaViaCNFVinculado: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_StatusCheque( StatusCheque: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_ImprimirCheque( Banco: String; Cidade: String; Data: String; Favorecido: String; Valor: String; PosicaoCheque: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_ImprimirVersoCheque( VersoCheque: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_LiberarCheque: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_LeituraCodigoMICR( CodigoMICR: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_CancelarCheque: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_LeituraTabelaCheque( TabelaCheque: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_CarregarCheque(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FI2000_CorrigirGeometriaCheque( NumeroBanco: String; GeometriaCheque: String ): Integer; StdCall; External 'Daruma32.dll';

/////////////////////////////////////////////////////////Metodos exclusivos para MFD//////////////////////////////////////////////////////////////////
function Daruma_FIMFD_StatusCupomFiscal( StatusCupomFiscal_Mfd: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_ImprimeCodigoBarras( Tipo: String; Codigo: String; Largura: String; Altura: String; Posicao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional( Tipo: String; Codigo: String; Largura: String; Altura: String; Posicao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_RetornaInformacao( Indice: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_DownloadDaMFD(CoInicial: String; CoFinal: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_CasasDecimaisProgramada( Quantidade: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_IndicePrimeiroVinculado( Indice: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_TerminaFechamentoCupomCodigoBarras( Mensagem: String; Tipo: String ;Codigo: String ; Largura: String ; Altura: String ;Posicao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_SinalSonoro( NumeroBeeps: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_AbreRelatorioGerencial( NomeRelatorio: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_VerificaRelatoriosGerenciais( Relatorios: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_ProgramaRelatoriosGerenciais( NomeRelatorio: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_EmitirCupomAdicional(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_AcionarGuilhotina: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FIMFD_EqualizarVelocidade(Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_AbreRecebimentoNaoFiscal( CPF: String; Nome: String; Endereco:String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_RecebimentoNaoFiscal( DescricaoTotalizador:String; AcresDesc:String; TipoAcresDesc:String; ValorAcresDesc:String; ValorRecebimento:String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_IniciaFechamentoNaoFiscal( AcresDesc:String; TipoAcresDesc:String; ValorAcresDesc:String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_EfetuaFormaPagamentoNaoFiscal( FormaPgto:String; Valor:String; Observacao:String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_TerminaFechamentoNaoFiscal( MsgPromo:String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_ProgramarGuilhotina( Separacao_entre_Documentos:String; Linhas_para_Acionamento_Guilhotina:String; Status_da_Guilhotina:String; Impressao_Antecipada_Cliche:String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_DescontoAcrescimoItem(NumItemDescontoAcrescimo:String; DescAcres:String; TipoDescAcres:String; ValorDescAcres:String): Integer; StdCall; External 'Daruma32.dll';

function Daruma_FIMFD_GTCodificado(GTCodificado: String):Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_Verifica_GTCodificado(GTCodificado: String):Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_NumeroSerialCodificado(NumeroSerialCodificado:String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_Verifica_NumeroSerialCodificado(NumeroSerialCodificado:String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_CodigoModeloFiscal(CodModeliFiscal: String) : Integer; StdCall; External 'Daruma32.dll';

function Daruma_FIMFD_CupomAdicionalCampoLivre( CampoLivre:String ): Integer; StdCall; External 'Daruma32.dll';

///////////////////////////////////////////////////////////////Metodos para o Sintegra//////////////////////////////////////////////////////////////////
//Metodo de Alto Nivel
function Daruma_Sintegra_GerarRegistrosArq( DataInicio: String; DataFim: String; Municipio: String; Fax: String; CodIdConvenio: String; CodIdNatureza: String; CodIdFinalidade: String; Logradouro: String; Numero: String; Complemento: String; Bairro: String; CEP: String; NomeContato: String; Telefone: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_GerarSintegraMes(sMesIni: String; sMesFim: String; sMunicipio: String; sFax: String; sCodIdConvenio: String; sCodIdNatureza: String; sCodFinalid: String; sLogradouro: String; sNumero: String; sComplemento: String; sBairro: String; sCEP: String; sContato: String; sTelefone: String): Integer; StdCall; External 'Daruma32.dll';

//Metodo de Médio Nível
function Daruma_Sintegra_GerarRegistro10( DataInicio: String; DataFim: String; Municipio: String; Fax: String; CodIdConvenio: String; CodIdNatureza: String; CodIdFinalidade: String; Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Sintegra_GerarRegistro11( Logradouro: String; Numero: String; Complemento: String; Bairro: String; CEP: String; NomeContato: String; Telefone: String; Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Sintegra_GerarRegistro60M( DataInicio: String; DataFim: String; Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Sintegra_GerarRegistro60A( DataInicio: String; DataFim: String; Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Sintegra_GerarRegistro60D( DataInicio: String; DataFim: String; Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Sintegra_GerarRegistro60I( DataInicio: String; DataFim: String; Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Sintegra_GerarRegistro60R( DataInicio: String; DataFim: String; Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Sintegra_GerarRegistro90( Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_SintegraSeparador( Separador: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_SintegraPath( Path: String): Integer; StdCall; External 'Daruma32.dll';

//Metodo de Baixo Nivel
function Daruma_FIMFD_RetornarInfoDownloadMFD( TipoDownload: String; Data_ou_COOInicio: String; Data_ou_COOFim: String; Indice: String; Retorno: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_RetornarInfoDownloadMFDArquivo( TipoDownload: String; Data_ou_COOInicio: String; Data_ou_COOFim: String; Indice: String): Integer; StdCall; External 'Daruma32.dll';

///////////////////////////////////////////////////////////////Metodos para o RSA/////////////////////////////////////////////////////////////////
//Metodos incluidos para atender o PAF//
//Metodo de Alto Nivel
function Daruma_RSA_CarregaChavePrivada_Arquivo(Arquivo: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_RSA_RetornaChavePublica(N: String; E: String): Integer; StdCall; External 'Daruma32.dll';

//Métodos para gerar assinatura EAD de Documento, apartir da chave privada carregada no ECF.
function Daruma_RSA_CriarAssinatura(caminhoDoArquivo: string ; sMD5: String; sAssinaturaEletronica: string): Integer; StdCall; External 'Daruma32.dll';

//Métodos para gerar assinatura EAD e o MD5 em Hexa de Documento, apartir da chave privada carregada no ECF.
function Daruma_RSA_CriarAssinaturaHex(caminhoDoArquivo: string ; sMD5: String; sAssinaturaEletronica: string): Integer; StdCall; External 'Daruma32.dll';

//Métodos para gerar assinatura EAD de Documento, sem a necessidade de ter a Chave Privada carregada no ECF
function Daruma_RSA_CriarAssinaturaOnline(PathArq: string; ChavePrivada: string; sAssinaturaEletronica :string): Integer; StdCall; External 'Daruma32.dll';

function Daruma_RSA_CodificaInformacao(Texto: String; Codigo: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_RSA_DecodificaInformacao(Codigo: String; Texto: String): Integer; StdCall; External 'Daruma32.dll';

//Métodos para gerar o arquivo Atocotepe17/04 para o paf
function Daruma_FIMFD_GerarAtoCotepePafData(DataIni: string; DataFim: string): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_GerarAtoCotepePafCOO(COOIni: string; COOFim: string): Integer; StdCall; External 'Daruma32.dll';

//Metodo para gerar o arquivo Atocotepe17/04 para a LMFC para o paf
function Daruma_FIMFD_GerarMFPAF_Data(DataIni: string; DataFim: string): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIMFD_GerarMFPAF_CRZ(CRZIni: string; CRZFim: string): Integer; StdCall; External 'Daruma32.dll';

//Método para gerar o arquivo Atocotepe17/04 para o NFP, Alagona e Nota fiscal Legal
function Daruma_FIMFD_GerarAtoCotepeData(DataIni: string; DataFim: string): Integer; StdCall; External 'Daruma32.dll';

//Metodos Bilhete de Passagem
function Daruma_FIB_AbreBilhetePassagem (Origem: String; Destino: String; UF: String; Percurso:String; Prestadora: String; Plataforma:String; Poltrona: String; Modalidade: String; Categoria: String; DataEmbarque: String; PassRg: String; PassNome: String; PassEndereco: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIB_VendeItem (Descricao: String; St: String; Valor:String; DescontoAcrescimo: String; TipoDesconto: String; ValorDesconto: String) : Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIB_UfOrigem (UfOrigem: String) : Integer; StdCall; External 'Daruma32.dll';

// Metodos Para Registry TA1000
function Daruma_Registry_TA1000_Porta( Porta: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_LeStatusTransferencia(): Integer; StdCall; External 'Daruma32.dll';function Daruma_Registry_TA1000_PathProdutos( PathProdutos: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_TA1000_PathUsuarios( PathUsuarios: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_TA1000_NumeroItensEnviados( NumeroItensEnviados: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_Registry_TA1000_PathRelatorios( PathRelatorios: String): Integer; StdCall; External 'Daruma32.dll';

// Metodos Para Produtos TA1000
function Daruma_TA1000_CadastrarProdutos(Descricao: String; Codigo: String; DecimaisPreco: String; DecimaisQuantidade: String; Preco: String; DescontoAcrescimo: String; ValorDescontoAcrescimo: String; UnidadeMedida: String;Aliquota: String; ProximoProduto: String; ProdutoAnterior: String; Estoque: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_LerProdutos( Indice: integer; Descricao: String; Codigo: String; DecimaisPreco: String; DecimaisQuantidade: String; Preco: String; DescontoAcrescimo: String; ValorDescontoAcrescimo: String; UnidadeMedida: String; Aliquota: String; ProximoProduto: String; ProdutoAnterior: String; Estoque: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_ConsultarProdutos( Descricao: String; Codigo: String; DecimaisPreco: String; DecimaisQuantidade: String; Preco: String; DescontoAcrescimo: String; ValorDescontoAcrescimo: String; UnidadeMedida: String; Aliquota: String; ProximoProduto: String; ProdutoAnterior: String; Estoque: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_AlterarProdutos(Codigo_Consultar: String; Descricao: String; Codigo: String; DecimaisPreco: String; DecimaisQuantidade: String; Preco: String; DescontoAcrescimo: String; ValorDescontoAcrescimo: String; UnidadeMedida: String; Aliquota: String; ProximoProduto: String; ProdutoAnterior: String; Estoque: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_EliminarProdutos(Codigo: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_EnviarBancoProdutos(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_ReceberBancoProdutos(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_ReceberProdutosVendidos(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_ZerarProdutos(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_ZerarProdutosVendidos(): Integer; StdCall; External 'Daruma32.dll';

// Metodos Para Usuarios TA1000
function Daruma_TA1000_EnviarBancoUsuarios(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_ReceberBancoUsuarios(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_ZerarUsuarios(): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_CadastrarUsuarios(Nome: String; CPF: String; CodigoConvenio: String; CodigoUsuario: String; UsuarioAnterior: String; ProximoUsuario: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_ConsultarUsuarios(Codigo_Consultar : String; Nome: String; CPF: String; CodigoConvenio: String; CodigoUsuario: String; UsuarioAnterior: String; ProximoUsuario: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_AlterarUsuarios(Codigo_Consultar : String; Nome: String; CPF: String; CodigoConvenio: String; CodigoUsuario: String; UsuarioAnterior: String; ProximoUsuario: String): Integer; StdCall; External 'Daruma32.dll';
function Daruma_TA1000_EliminarUsuarios(Codigo: String): Integer; StdCall; External 'Daruma32.dll';

// Metodos para Impressora Restaurante
function Daruma_FIR_ProgramaAliquota( Valor_Aliquota: String; Tipo_Aliquota: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NomeiaTotalizadorNaoSujeitoIcms( Indice_do_Totalizador: Integer; Nome_do_Totalizador: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgramaFormasPagamento( Descricao_das_Formas_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgramaRelatorioGerencial( Titulo_Relatorio_Gerencial: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgramaOperador( Nome_do_Operador: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgramaArredondamento: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgramaTruncamento: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_ProgramaTruncamento';
function Daruma_FIR_LinhasEntreCupons( Linhas_Entre_Cupons: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_EspacoEntreLinhas( Espaco_Entre_Linhas: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgramaHorarioVerao: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_EqualizaFormasPgto: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgramaVinculados( Vinculado: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgFormasPagtoSemVincular( Descricao_da_Forma_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ProgramaMsgTaxaServico( Mensagem_da_Taxa_de_Servico: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_AdicionaProdutoCardapio( Codigo: String; Valor_Unitario: String; Aliquota: String; Descricao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CfgEspacamentoCupons( DistanciaCupons: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CfgHoraMinReducaoZ( Hora_Min_para_ReducaoZ: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CfgLimiarNearEnd( NumeroLinhas: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CfgHorarioVerao( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CfgLegProdutos( Flag: String ): Integer; StdCall; External 'Daruma32.dll';

function Daruma_FIR_AbreCupom( Numero_da_Mesa: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_AbreCupomRestaurante( Numero_da_Mesa: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_AbreCupomBalcao: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VendeItem( Mesa: String; Codigo: String; Descricao: String; Aliquota: String; Quantidade: String; Valor_Unitario: String; Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VendeItemBalcao( Codigo: String; Quantidade: String; Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RegistrarVenda( Numero_da_Mesa: String; Codigo: String; Quantidade: String; Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RegistroVendaSerial( Numero_da_Mesa: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_FechaCupomRestauranteResumido( Descricao_da_Forma_de_Pagamento: String; Mensagem_Promocional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_IniciaFechamentoCupom( Acrescimo_ou_Desconto: String; Tipo_do_Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_IniciaFechamentoCupomComServico( Acrescimo_ou_Desconto: String; Tipo_do_Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String; Indicador_da_Operacao: String; Taxa_de_Servico: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_EfetuaFormaPagamento( Descricao_da_Forma_Pagamento: String; Valor_da_Forma_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_EfetuaFormaPagamentoDescricaoForma( Descricao_da_Forma_Pagamento: string; Valor_da_Forma_Pagamento: string; Texto_Livre: string ): integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_IdentificaConsumidor( Nome_do_Consumidor: String; Endereco: String; CPF_ou_CNPJ: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_FechaCupomResumido( Descricao_da_Forma_de_Pagamento: String; Mensagem_Promocional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_TerminaFechamentoCupom( Mensagem_Promocional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_TerminaFechamentoCupomID( Mensagem_Promocional: String; Nome_do_Cliente: String; Endereco_do_Cliente: String; Documento_do_Cliente: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_FechaCupomRestaurante( Forma_de_Pagamento: String; Acrescimo_ou_Desconto: String; Tipo_Acrescimo_ou_Desconto: String; Valor_Acrescimo_ou_Desconto: String; Valor_Pago: String; Mensagem_Promocional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CancelaItem( Mesa: String; Codigo: String; Descricao: String; Aliquota: String; Quantidade: String; Valor_Unitario: String; Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CancelaItemBalcao( Codigo_do_Item: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CancelaCupom: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CancelarVenda( Numero_da_Mesa: String; Codigo: String; Quantidade: String; Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_TranferirVenda( Numero_da_Mesa_Origem: String; Numero_da_Mesa_Destino: String; Codigo: String; Quantidade: String; Acrescimo_ou_Desconto: String; Valor_do_Acrescimo_ou_Desconto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_TransfereItem( Mesa_Origem: String; Mesa_Destino: String; Codigo: String; Descricao: String; Aliquota: String; Quantidade: String; Valor_Unitario: String; Acrescimo_ou_Desconto: String; Desconto_Percentual: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_TranferirMesa( Mesa_Origem: String; Mesa_Destino: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ConferenciaMesa( Numero_da_Mesa: String; Mensagem_Promocional: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_LimparMesa( Numero_da_Mesa: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ImprimePrimeiroCupomDividido( Numero_da_Mesa: String; Quantidade_Divisoria: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RestanteCupomDividido: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_AumentaDescricaoItem( Descricao_Extendida: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_UsaUnidadeMedida( Unidade_Medida: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_EmitirCupomAdicional: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_EstornoFormasPagamento( Forma_de_Origem: String; Nova_Forma: String; Valor_Total_Pago: String ): Integer; StdCall; External 'Daruma32.dll';

function Daruma_FIR_AbreComprovanteNaoFiscalVinculado( Forma_de_Pagamento: String; Valor_Pago: String; Numero_do_Cupom: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_UsaComprovanteNaoFiscalVinculado( Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_FechaComprovanteNaoFiscalVinculado: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RelatorioGerencial( Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_AbreRelatorioGerencial: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_EnviarTextoCNF( Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_FechaRelatorioGerencial: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RecebimentoNaoFiscal( Descricao_do_Totalizador: String; Valor_do_Recebimento: String; Forma_de_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_AbreRecebimentoNaoFiscal( Descricao_do_Totalizador: String; Acrescimo_ou_Desconto: String; Tipo_Acrescimo_ou_Desconto: String; Valor_Acrescimo_ou_Desconto: String; Valor_do_Recebimento: String; Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_EfetuaFormaPagamentoNaoFiscal( Forma_de_Pagamento: String; Valor_da_Forma_Pagamento: String; Texto_Livre: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_Sangria( Valor_da_Sangria: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_Suprimento( Valor_do_Suprimento: String; Forma_de_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_FundoCaixa( Valor_do_Fundo_Caixa: String; Forma_de_Pagamento: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_LeituraX: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FIR_ReducaoZ( Data: String; Hora: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ReducaoZAjustaDataHora( Data: String; Hora: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RelatorioMesasAbertas: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FIR_RelatorioMesasAbertasSerial: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FIR_LeituraMemoriaFiscalData( Data_Inicial: String; Data_Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_LeituraMemoriaFiscalReducao( Reducao_Inicial: String; Reducao_Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_LeituraMemoriaFiscalSerialData( Data_Inicial: String; Data_Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_LeituraMemoriaFiscalSerialReducao( Reducao_Inicial: String; Reducao_Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_LeituraMemoriaTrabalho: Integer; StdCall; External 'Daruma32.dll' ;

function Daruma_FIR_StatusCupomFiscal( StatusCupomFiscal: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_StatusRelatorioGerencial( StatusRelGerencial: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_StatusComprovanteNaoFiscalVinculado( StatusCNFV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_StatusComprovanteNaoFiscalNaoVinculado( StatusCNFNV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaImpressoraLigada: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_VerificaTotalizadoresParciais( Totalizadores: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaModoOperacao( Modo: string ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaTotalizadoresNaoFiscais( Totalizadores: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaTotalizadoresNaoFiscaisEx( Totalizadores: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaTruncamento( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaAliquotasIss( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaIndiceAliquotasIss( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaRecebimentoNaoFiscal( Recebimentos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaTipoImpressora( Var TipoImpressora: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaStatusCheque( StatusCheque: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaModeloECF: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaDescricaoFormasPagamento( Descricao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaXPendente( XPendente: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaZPendente( ZPendente: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaDiaAberto( DiaAberto: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaHorarioVerao( HoraioVerao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaFormasPagamento( Formas: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaFormasPagamentoEx( FormasEx: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaEpromConectada( Flag: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaEstadoImpressora( Var ACK: Integer; Var ST1: Integer; Var ST2: Integer ): Integer; StdCall; External 'Daruma32.dll';

function Daruma_FIR_ClicheProprietario( Cliche: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ClicheProprietarioEx( ClicheEx: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroCaixa( NumeroCaixa: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroLoja( NumeroLoja: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroSerie( NumeroSerie: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VersaoFirmware( VersaoFirmware: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_CGC_IE( CGC: String; IE: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_LerAliquotasComIndice(AliquotasComIndice: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroCupom( NumeroCupom: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_COO(Inicial: String; Final: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_MinutosLigada( Minutos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroSubstituicoesProprietario( NumeroSubstituicoes: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroIntervencoes( NumeroIntervencoes: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroReducoes( NumeroReducoes: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroCuponsCancelados( NumeroCancelamentos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_NumeroOperacoesNaoFiscais( NumeroOperacoes: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_DataHoraImpressora( Data: String; Hora: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_DataHoraReducao( Data: String; Hora: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_DataMovimento( Data: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ContadoresTotalizadoresNaoFiscais( Contadores: String ): Integer; StdCall; External 'Daruma32.dll';

function Daruma_FIR_VendaBruta( VendaBruta: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_GrandeTotal( GrandeTotal: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_Descontos( ValorDescontos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_Acrescimos( ValorAcrescimos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_Cancelamentos( ValorCancelamentos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_DadosUltimaReducao( DadosReducao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_SubTotal( SubTotal: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornoAliquotas( Aliquotas: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ValorPagoUltimoCupom( ValorCupom: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ValorPagoUltimoCupomFormatado( ValorCupom: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ValorFormaPagamento( FormaPagamento: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_ValorTotalizadorNaoFiscal( Totalizador: String; Valor: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_UltimoItemVendido( NumeroItem: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_UltimoItemVendidoValor( NumeroItem: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_UltimaFormaPagamento( Descricao_da_Forma: String; Valor_da_Forma: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_TipoUltimoDocumento(TipoUltimoDoc: String ): Integer; StdCall; External 'Daruma32.dll';

function Daruma_FIR_MapaResumo: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_MapaResumo';
function Daruma_FIR_RelatorioTipo60Analitico: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_RelatorioTipo60Analitico';
function Daruma_FIR_RelatorioTipo60Mestre: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_RelatorioTipo60Mestre';
function Daruma_FIR_FlagsFiscais( Var Flag: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_PalavraStatus( PalavraStatus: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_PalavraStatusBinario( PalavraStatusBinario: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_SimboloMoeda( SimboloMoeda: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornoImpressora( Var ACK: Integer; Var ST1: Integer; Var ST2: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaErroExtendido( ErroExtendido: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaAcrescimoNF( AcrescimoNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCFCancelados( CFCancelados: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCNFCancelados( CNFCancelados: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCLX(CLX: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCNFNV(CNFNV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCNFV(CNFV: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCRO(CRO: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCRZ(CRZ: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCRZRestante( CRZRestante: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaCancelamentoNF( CancelamentoNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaDescontoNF( DescontoNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaGNF( GNF: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaTempoImprimindo( TempoImprimindo: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaTempoLigado( TempoLigado: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaTotalPagamentos( TotalPagamentos: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaTroco( Troco: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaZeros( Zeros: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaValorComprovanteNaoFiscal( Indice_CNF: String; Informacao: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaIndiceComprovanteNaoFiscal( DescricaoRegistrCNF: String; RefIndice: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaRegistradoresNaoFiscais( RegistrNaoFiscais: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_RetornaRegistradoresFiscais( RegistrFiscais: String ): Integer; StdCall; External 'Daruma32.dll';

function Daruma_FIR_VerificaDocAutenticacao: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_Autenticacao: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_Autenticacao';
function Daruma_FIR_AutenticacaoStr( Autenticacao_Str :string ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_VerificaEstadoGaveta( Var Estado_Gaveta: Integer ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_VerificaEstadoGavetaStr( Estado_Gaveta: String ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_AcionaGaveta: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_AbrePortaSerial: Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_FechaPortaSerial: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_AberturaDoDia( Valor_do_Suprimento: string; Forma_de_Pagamento: string ): Integer; StdCall; External 'Daruma32.dll';
function Daruma_FIR_FechamentoDoDia: Integer; StdCall; External 'Daruma32.dll' Name 'Daruma_FI_FechamentoDoDia';
function Daruma_FIR_ImprimeConfiguracoesImpressora: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_RegistraNumeroSerie: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FIR_VerificaNumeroSerie: Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FIR_RetornaSerialCriptografado( SerialCriptografado :string; NumeroSerial: string ): Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_ConfiguraHorarioVerao( DataEntrada: string; DataSaida: string ; controle: string): Integer; StdCall; External 'Daruma32.dll' ;
function Daruma_FIR_ZeraCardapio: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_ImprimeCardapio: Integer; StdCall; External 'Daruma32.dll'
function Daruma_FIR_CardapioSerial: Integer; StdCall; External 'Daruma32.dll'

var
Framework_Impressoras_Fiscais: TFramework_Impressoras_Fiscais;

// Variável geral para tratar o Retorno da Função e tratamento de erros
Daruma_iACK: Integer;
Daruma_iST1: Integer;
Daruma_iST2:Integer;
Str_ErroExtendido : String;
Int_Retorno: integer;
Int_RetornoMetodo: integer;
Int_ErroExtendido:integer;
Int_Verifica:integer;
Um: Integer;
implementation

{A Rotina Abaixo Analisa o Retorno da Funcao Chamada e nao do ECF}
procedure TFramework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

begin

//Variaveis devem ser inicializadas
Daruma_iACK := 0;
Daruma_iST1 := 0;
Daruma_iST2 := 0;
//Int_Retorno := 0;
Int_RetornoMetodo:=0;
Int_ErroExtendido:=0;

Int_RetornoMetodo := Daruma_FI_RetornoImpressora(Daruma_iACK, Daruma_iST1, Daruma_iST2);

SetLength(Str_ErroExtendido,4);

Int_ErroExtendido := Daruma_FI_RetornaErroExtendido ( Str_ErroExtendido );

Application.MessageBox( Pchar('Retorno do metodo = ' + IntToStr(Int_Retorno) + #13 +
'ACK = ' + IntToStr(Daruma_iACK) + #13 +
'ST1 = ' + IntToStr(Daruma_iST1) + #13 +
'ST2 = ' + IntToStr(Daruma_iST2) + #13 +
'Erro extendido = ' + Str_ErroExtendido
), 'Daruma Framework Retorno do Metodo', mb_ok);

end;


Declarando em Vb

Declarando em Visual Basic 6.0
Top

Global Int_Retorno As Integer
Global Int_Ack As Integer
Global Int_St1 As Integer
Global Int_St2 As Integer
'Global Str_ErroExtendido As String
Global Int_Tipo_Aliquota As Integer
Global Str_Informacao As String
Global Int_Informacao As Integer

'**********************************************************************************************************************'
' '
' Release '
' '
'**********************************************************************************************************************'
'Função Release
Public Declare Function Daruma_FI_SaltarLinhas Lib "Daruma32.dll" (ByVal Linhas As Integer) As Integer

'**********************************************************************************************************************'
' '
' MFD '
' '
'**********************************************************************************************************************'

Public Declare Function Daruma_FIMFD_ImprimeCodigoBarras Lib "Daruma32.dll" (ByVal Tipo As String, ByVal Codigo As String, ByVal Largura As String, ByVal Altura As String, ByVal Posicao As String) As Integer
Public Declare Function Daruma_FIMFD_ImprimeCodigoBarrasCupomAdicional Lib "Daruma32.dll" (ByVal Tipo As String, ByVal Codigo As String, ByVal Largura As String, ByVal Altura As String, ByVal Posicao As String) As Integer
Public Declare Function Daruma_FIMFD_DownloadDaMFD Lib "Daruma32.dll" (ByVal CoInicial As String, ByVal CoFinal As String) As Integer
Public Declare Function Daruma_FIMFD_CasasDecimaisProgramada Lib "Daruma32.dll" (ByVal Quantidade As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_FIMFD_IndicePrimeiroVinculado Lib "Daruma32.dll" (ByVal Indice As String) As Integer
Public Declare Function Daruma_FIMFD_RetornaInformacao Lib "Daruma32.dll" (ByVal Indice As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_FIMFD_TerminaFechamentoCupomCodigoBarras Lib "Daruma32.dll" (ByVal Mensagem As String, ByVal Tipo As String, ByVal Codigo As String, ByVal Largura As String, ByVal Altura As String, ByVal Posicao As String) As Integer
Public Declare Function Daruma_FIMFD_SinalSonoro Lib "Daruma32.dll" (ByVal NumeroBeeps As String) As Integer
Public Declare Function Daruma_FIMFD_StatusCupomFiscal Lib "Daruma32.dll" (ByVal StsCF_MFD As String) As Integer
Public Declare Function Daruma_FIMFD_ProgramaRelatoriosGerenciais Lib "Daruma32.dll" (ByVal NomeRelatorio As String) As Integer
Public Declare Function Daruma_FIMFD_VerificaRelatoriosGerenciais Lib "Daruma32.dll" (ByVal Relatorios As String) As Integer
Public Declare Function Daruma_FIMFD_AbreRelatorioGerencial Lib "Daruma32.dll" (ByVal NomeRelatorio As String) As Integer
Public Declare Function Daruma_FIMFD_EmitirCupomAdicional Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIMFD_AcionarGuilhotina Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIMFD_EqualizarVelocidade Lib "Daruma32.dll" (ByVal EqualizaVelocidade As String) As Integer
Public Declare Function Daruma_FIMFD_AbreRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal CPF As String, ByVal Nome As String, ByVal Endereco As String) As Integer
Public Declare Function Daruma_FIMFD_RecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoTotalizador As String, ByVal AcresDesc As String, ByVal TipoAcresDesc As String, ByVal ValorAcresDesc As String, ByVal ValorRecebimento As String) As Integer
Public Declare Function Daruma_FIMFD_IniciaFechamentoNaoFiscal Lib "Daruma32.dll" (ByVal AcresDesc As String, ByVal TipoAcresDesc As String, ByVal ValorAcresDesc As String) As Integer
Public Declare Function Daruma_FIMFD_EfetuaFormaPagamentoNaoFiscal Lib "Daruma32.dll" (ByVal FormaPgto As String, ByVal Valor As String, ByVal Observacao As String) As Integer
Public Declare Function Daruma_FIMFD_TerminaFechamentoNaoFiscal Lib "Daruma32.dll" (ByVal MsgPromo As String) As Integer
Public Declare Function Daruma_FIMFD_ProgramarGuilhotina Lib "Daruma32.dll" (ByVal Separacao_entre_Documentos As String, ByVal Linhas_para_Acionamento_Guilhotina As String, ByVal Status_da_Guilhotina As String, ByVal Impressao_Antecipada_Cliche As String) As Integer
Public Declare Function Daruma_FIMFD_DescontoAcrescimoItem Lib "Daruma32.dll" (ByVal NumeroDoItem As String, ByVal DescontoOuAcrescimoItem As String, ByVal TipoDoDescontoOuAcrescimoItem As String, ByVal ValorDoDescontoOuAcrescimo As String) As Integer

'Metodos TEF
Public Declare Function Daruma_TEF_EsperarArquivo Lib "Daruma32.dll" (ByVal PathArquivo As String, ByVal Tempo As String, ByVal Travar As String) As Integer
Public Declare Function Daruma_TEF_ImprimirResposta Lib "Daruma32.dll" (ByVal PathArquivo As String, ByVal Forma As String, ByVal Travar As String) As Integer
Public Declare Function Daruma_TEF_ImprimirRespostaCartao Lib "Daruma32.dll" (ByVal PathArquivo As String, ByVal Forma As String, ByVal Travar As String, ByVal ValorPagamento As String) As Integer
Public Declare Function Daruma_TEF_FechaRelatorio Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TEF_SetFocus Lib "Daruma32.dll" (ByVal TituloJanela As String) As Integer
Public Declare Function Daruma_TEF_TravarTeclado Lib "Daruma32.dll" (ByVal Travar As String) As Integer

'Metodos FIB
Public Declare Function Daruma_FIB_AbreBilhetePassagem Lib "Daruma32.dll" (ByVal Origem As String, ByVal Destino As String, ByVal UF As String, ByVal Percurso As String, ByVal Prestadora As String, ByVal Plataforma As String, ByVal Poltrona As String, ByVal Modalidade As String, ByVal Categoria As String, ByVal DataEmbarque As String, ByVal PassRg As String, ByVal PassNome As String, ByVal PassEndereco As String) As Integer
Public Declare Function Daruma_FIB_VendeItem Lib "Daruma32.dll" (ByVal Descricao As String, ByVal St As String, ByVal Valor As String, ByVal DescontoAcrescimo As String, ByVal TipoDesconto As String, ByVal ValorDesconto As String) As Integer
Public Declare Function Daruma_FIB_UfOrigem Lib "Daruma32.dll" (ByVal UfOrigem As String) As Integer

'Metodos Sintegra
Public Declare Function Daruma_Sintegra_GerarRegistrosArq Lib "Daruma32.dll" (ByVal Data_Inicio_Movimento As String, ByVal Data_Fim_Movimento As String, ByVal Municipio As String, ByVal Fax As String, ByVal Cod_Convenio As String, ByVal Cod_Natureza As String, ByVal Cod_Finalidade As String, ByVal Logradouro As String, ByVal Numero As String, ByVal Complemento As String, ByVal Bairro As String, ByVal CEP As String, ByVal Nome_Contato As String, ByVal Telefone As String) As Integer
Public Declare Function Daruma_FIMFD_GerarSintegraMes Lib "Daruma32.dll" (ByVal sMesIni As String, ByVal sMesFim As String, ByVal Municipio As String, ByVal Fax As String, ByVal Cod_Convenio As String, ByVal Cod_Natureza As String, ByVal Cod_Finalidade As String, ByVal Logradouro As String, ByVal Numero As String, ByVal Complemento As String, ByVal Bairro As String, ByVal CEP As String, ByVal Nome_Contato As String, ByVal Telefone As String) As Integer
Public Declare Function Daruma_Sintegra_GerarRegistro10 Lib "Daruma32.dll" (ByVal Data_Inicio_Movimento As String, ByVal Data_Fim_Movimento As String, ByVal Municipio As String, ByVal Fax As String, ByVal Cod_Convenio As String, ByVal Cod_Finalidade As String, ByVal Cod_Natureza As String, ByVal Retorno As String) As Integer
Public Declare Function Daruma_Sintegra_GerarRegistro11 Lib "Daruma32.dll" (ByVal Logradouro As String, ByVal Numero As String, ByVal Complemento As String, ByVal Bairro As String, ByVal CEP As String, ByVal Nome_Contato As String, ByVal Telefone As String, ByVal Retorno As String) As Integer
Public Declare Function Daruma_Sintegra_GerarRegistro60A Lib "Daruma32.dll" (ByVal Data_Inicio_Movimento As String, ByVal Data_Fim_Movimento As String, ByVal Retorno As String) As Integer
Public Declare Function Daruma_Sintegra_GerarRegistro60D Lib "Daruma32.dll" (ByVal Data_Inicio_Movimento As String, ByVal Data_Fim_Movimento As String, ByVal Retorno As String) As Integer
Public Declare Function Daruma_Sintegra_GerarRegistro60I Lib "Daruma32.dll" (ByVal Data_Inicio_Movimento As String, ByVal Data_Fim_Movimento As String, ByVal Retorno As String) As Integer
Public Declare Function Daruma_Sintegra_GerarRegistro60M Lib "Daruma32.dll" (ByVal Data_Inicio_Movimento As String, ByVal Data_Fim_Movimento As String, ByVal Retorno As String) As Integer
Public Declare Function Daruma_Sintegra_GerarRegistro60R Lib "Daruma32.dll" (ByVal Data_Inicio_Movimento As String, ByVal Data_Fim_Movimento As String, ByVal Retorno As String) As Integer
Public Declare Function Daruma_Sintegra_GerarRegistro90 Lib "Daruma32.dll" (ByVal Retorno As String) As Integer
Public Declare Function Daruma_FIMFD_RetornarInfoDownloadMFD Lib "Daruma32.dll" (ByVal Str_Tipo_Download As String, ByVal Str_Data_ou_COO_Inicio As String, ByVal Str_Data_ou_COO_Fim As String, ByVal Str_Indice As String, ByVal Retorno As String) As Integer
Public Declare Function Daruma_FIMFD_RetornarInfoDownloadMFDArquivo Lib "Daruma32.dll" (ByVal Str_Tipo_Download As String, ByVal Str_Data_ou_COO_Inicio As String, ByVal Str_Data_ou_COO_Fim As String, ByVal Str_Indice As String) As Integer

'Métodos Ato Cotepe PAF-ECF COO e Data
Public Declare Function Daruma_FIMFD_GerarAtoCotepePafData Lib "Daruma32.dll" (ByVal DataIni As String, ByVal DataFinal As String) As Integer
Public Declare Function Daruma_FIMFD_GerarAtoCotepePafCOO Lib "Daruma32.dll" (ByVal COOini As String, ByVal COOFinal As String) As Integer

'Métodos Ato Cotepe MF PAF-ECF Data e CRZ
Public Declare Function Daruma_FIMFD_GerarMFPAF_Data Lib "Daruma32.dll" (ByVal DataIni As String, ByVal DataFim As String) As Integer
Public Declare Function Daruma_FIMFD_GerarMFPAF_CRZ Lib "Daruma32.dll" (ByVal CRZIni As String, ByVal CrzFim As String) As Integer

'Metodos Ato Cotepe 17 Nota Fiscal Paulista(SP), Nota Fiscal Legal(DF) e Nota Alagoana(AL)
Public Declare Function Daruma_FIMFD_GerarAtoCotepeData Lib "Daruma32.dll" (ByVal DataIni As String, ByVal DataFinal As String) As Integer

'Metodos RSA
Public Declare Function Daruma_RSA_CarregaChavePrivada_Arquivo Lib "Daruma32.dll" (ByVal Str_PathArquivo As String) As Integer
Public Declare Function Daruma_RSA_RetornaChavePublica Lib "Daruma32.dll" (ByVal Str_N As String, ByVal Str_E As String) As Integer

'Métodos para gerar assinatura EAD de Documento, apartir da chave privada carregada no ECF.
Public Declare Function Daruma_RSA_CriarAssinatura Lib "Daruma32.dll" (ByVal caminhoDoArquivo As String, ByVal sMD5 As String, ByVal sAssinaturaDigital As String) As Integer

'Métodos para gerar assinatura EAD e o MD5 em Hexa de Documento, apartir da chave privada carregada no ECF.
Public Declare Function Daruma_RSA_CriarAssinaturaHex Lib "Daruma32.dll" (ByVal caminhoDoArquivo As String, ByVal sMD5 As String, ByVal sAssinaturaDigital As String) As Integer

'Métodos para gerar assinatura EAD de Documento, sem a necessidade de ter a Chave Privada carregada no ECF
Public Declare Function Daruma_RSA_CriarAssinaturaOnline Lib "Daruma32.dll" (ByVal PathArq As String, ByVal ChavePrivada As String, ByVal sAssinaturaEletronica As String) As Integer

'Metodos Cupom
Public Declare Function Daruma_FI_AbreCupom Lib "Daruma32.dll" (ByVal CPF_ou_CNPJ As String) As Integer
Public Declare Function Daruma_FI_VendeItem Lib "Daruma32.dll" (ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal TipoQuantidade As String, ByVal Quantidade As String, ByVal CasasDecimais As Integer, ByVal ValorUnitario As String, ByVal TipoDesconto As String, ByVal Desconto As String) As Integer
Public Declare Function Daruma_FI_FechaCupomResumido Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal Mensagem As String) As Integer
Public Declare Function Daruma_FI_IniciaFechamentoCupom Lib "Daruma32.dll" (ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String) As Integer
Public Declare Function Daruma_FI_EfetuaFormaPagamento Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String) As Integer
Public Declare Function Daruma_FI_EfetuaFormaPagamentoDescricaoForma Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String, ByVal TextoLivre As String) As Integer
Public Declare Function Daruma_FI_IdentificaConsumidor Lib "Daruma32.dll" (ByVal NomeConsumidor As String, ByVal Endereco As String, ByVal CPF_ou_CNPJ As String) As Integer
Public Declare Function Daruma_FI_TerminaFechamentoCupom Lib "Daruma32.dll" (ByVal Mensagem As String) As Integer
Public Declare Function Daruma_FI_FechaCupom Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrecimoDesconto As String, ByVal ValorPago As String, ByVal Mensagem As String) As Integer
Public Declare Function Daruma_FI_CancelaItemAnterior Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_CancelaItemGenerico Lib "Daruma32.dll" (ByVal NumeroItem As String) As Integer
Public Declare Function Daruma_FI_CancelaCupom Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_AumentaDescricaoItem Lib "Daruma32.dll" (ByVal Descricao As String) As Integer
Public Declare Function Daruma_FI_UsaUnidadeMedida Lib "Daruma32.dll" (ByVal UnidadeMedida As String) As Integer
Public Declare Function Daruma_FI_EmitirCupomAdicional Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_EstornoFormasPagamento Lib "Daruma32.dll" (ByVal FormaOrigem As String, ByVal FormaDestino As String, ByVal Valor As String) As Integer

'Metodos para Recebimentos e Relatorios
Public Declare Function Daruma_FI_AbreComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal Valor As String, ByVal NumeroCupom As String) As Integer
Public Declare Function Daruma_FI_UsaComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal Texto As String) As Integer
Public Declare Function Daruma_FI_FechaComprovanteNaoFiscalVinculado Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RelatorioGerencial Lib "Daruma32.dll" (ByVal Texto As String) As Integer
Public Declare Function Daruma_FI_AbreRelatorioGerencial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_EnviarTextoCNF Lib "Daruma32.dll" (ByVal Texto As String) As Integer
Public Declare Function Daruma_FI_FechaRelatorioGerencial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoTotalizador As String, ByVal ValorRecebimento As String, ByVal FormaPagamento As String) As Integer
Public Declare Function Daruma_FI_AbreRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoTotalizador As String, ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String, ByVal ValorRecebimento As String, ByVal TextoLivreto As String) As Integer
Public Declare Function Daruma_FI_EfetuaFormaPagamentoNaoFiscal Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String, ByVal ObsLivre As String) As Integer
Public Declare Function Daruma_FI_Sangria Lib "Daruma32.dll" (ByVal Valor As String) As Integer
Public Declare Function Daruma_FI_Suprimento Lib "Daruma32.dll" (ByVal Valor As String, ByVal FormaPagamento As String) As Integer
Public Declare Function Daruma_FI_FundoCaixa Lib "Daruma32.dll" (ByVal ValorPagamento As String, ByVal FormaPagamento As String) As Integer
Public Declare Function Daruma_FI_LeituraX Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_LeituraXSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_ReducaoZ Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FI_ReducaoZAjustaDataHora Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FI_LeituraMemoriaFiscalData Lib "Daruma32.dll" (ByVal DataInicial As String, ByVal DataFinal As String) As Integer
Public Declare Function Daruma_FI_LeituraMemoriaFiscalReducao Lib "Daruma32.dll" (ByVal ReducaoInicial As String, ByVal ReducaoFinal As String) As Integer
Public Declare Function Daruma_FI_LeituraMemoriaFiscalSerialData Lib "Daruma32.dll" (ByVal DataInicial As String, ByVal DataFinal As String) As Integer
Public Declare Function Daruma_FI_LeituraMemoriaFiscalSerialReducao Lib "Daruma32.dll" (ByVal ReducaoInicial As String, ByVal ReducaoFinal As String) As Integer

'Metodos Modo Gaveta, Autentica e Outras
Public Declare Function Daruma_FI_VerificaDocAutenticacao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_Autenticacao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_AutenticacaoStr Lib "Daruma32.dll" (ByVal AtenticacaoStr As String) As Integer
Public Declare Function Daruma_FI_VerificaEstadoGaveta Lib "Daruma32.dll" (ByRef EstadoGaveta As Integer) As Integer
Public Declare Function Daruma_FI_VerificaEstadoGavetaStr Lib "Daruma32.dll" (ByVal EstadoGaveta As String) As Integer
Public Declare Function Daruma_FI_AcionaGaveta Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_AbrePortaSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_FechaPortaSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_AberturaDoDia Lib "Daruma32.dll" (ByVal Valor As String, ByVal FormaPagamento As String) As Integer
Public Declare Function Daruma_FI_FechamentoDoDia Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_ImprimeConfiguracoesImpressora Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RegistraNumeroSerie Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_VerificaNumeroSerie Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RetornaSerialCriptografado Lib "Daruma32.dll" (ByVal SerialCriptografado As String, ByVal NumeroSerial As String) As Integer
Public Declare Function Daruma_FI_ConfiguraHorarioVerao Lib "Daruma32.dll" (ByVal DataEntrada As String, ByVal DataSaida As String, ByVal Controle As String) As Integer
Public Declare Function Daruma_FI_GeraCriptografia Lib "Daruma32.dll" (ByVal Str_Input As String, ByVal Str_Output As String) As Integer
'Metodos Prog e Config
Public Declare Function Daruma_FI_ProgramaAliquota Lib "Daruma32.dll" (ByVal Aliquota As String, ByVal ICMS_ou_ISS As Integer) As Integer
Public Declare Function Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms Lib "Daruma32.dll" (ByVal Indice As Integer, ByVal Totalizador As String) As Integer
Public Declare Function Daruma_FI_ProgramaFormasPagamento Lib "Daruma32.dll" (ByVal DescricaoFormasPgto As String) As Integer
Public Declare Function Daruma_FI_ProgramaOperador Lib "Daruma32.dll" (ByVal NomeOperador As String) As Integer
Public Declare Function Daruma_FI_ProgramaArredondamento Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_ProgramaTruncamento Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_LinhasEntreCupons Lib "Daruma32.dll" (ByVal Linhas As Integer) As Integer
Public Declare Function Daruma_FI_EspacoEntreLinhas Lib "Daruma32.dll" (ByVal Dots As Integer) As Integer
Public Declare Function Daruma_FI_ProgramaHorarioVerao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_EqualizaFormasPgto Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_ProgramaVinculados Lib "Daruma32.dll" (ByVal Descricao As String) As Integer
Public Declare Function Daruma_FI_ProgFormasPagtoSemVincular Lib "Daruma32.dll" (ByVal Descricao As String) As Integer

'Metodos de Configuracao do ECF
Public Declare Function Daruma_FI_CfgFechaAutomaticoCupom Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgRedZAutomatico Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgLeituraXAuto Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgImpEstGavVendas Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgCalcArredondamento Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgHorarioVerao Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgSensorAut Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgCupomAdicional Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgPermMensPromCNF Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgEspacamentoCupons Lib "Daruma32.dll" (ByVal DistanciaCupons As String) As Integer
Public Declare Function Daruma_FI_CfgHoraMinReducaoZ Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgLimiarNearEnd Lib "Daruma32.dll" (ByVal NumeroLinhas As String) As Integer
Public Declare Function Daruma_FI_CfgLegProdutos Lib "Daruma32.dll" (ByVal Flag As String) As Integer

'Metodos para Configuracao do Registry
Public Declare Function Daruma_Registry_CupomAdicionalDllConfig Lib "Daruma32.dll" (ByVal CupomAdicional As String) As Integer
Public Declare Function Daruma_Registry_CupomAdicionalDll Lib "Daruma32.dll" (ByVal CupomAdicional As String) As Integer
Public Declare Function Daruma_Registry_AplMensagem1 Lib "Daruma32.dll" (ByVal Str_AplMensagem_1 As String) As Integer
Public Declare Function Daruma_Registry_AplMensagem2 Lib "Daruma32.dll" (ByVal Str_AplMensagem_2 As String) As Integer
Public Declare Function Daruma_Registry_AlteraRegistry Lib "Daruma32.dll" (ByVal NomeChave As String, ByVal ValorChave As String) As Integer
Public Declare Function Daruma_Registry_Velocidade Lib "Daruma32.dll" (ByVal VelocidadeDaPortaSerial As String) As Integer
Public Declare Function Daruma_Registry_Porta Lib "Daruma32.dll" (ByVal NomePorta As String) As Integer
Public Declare Function Daruma_Registry_Path Lib "Daruma32.dll" (ByVal Path As String) As Integer
Public Declare Function Daruma_Registry_Status Lib "Daruma32.dll" (ByVal Status As String) As Integer
Public Declare Function Daruma_Registry_StatusFuncao Lib "Daruma32.dll" (ByVal StatusFuncao As String) As Integer
Public Declare Function Daruma_Registry_Retorno Lib "Daruma32.dll" (ByVal Retorno As String) As Integer
Public Declare Function Daruma_Registry_ControlePorta Lib "Daruma32.dll" (ByVal ControlePorta As String) As Integer
Public Declare Function Daruma_Registry_ModoGaveta Lib "Daruma32.dll" (ByVal ModoGaveta As String) As Integer
Public Declare Function Daruma_Registry_Log Lib "Daruma32.dll" (ByVal Log As String) As Integer
Public Declare Function Daruma_Registry_NomeLog Lib "Daruma32.dll" (ByVal NomeLog As String) As Integer
Public Declare Function Daruma_Registry_Separador Lib "Daruma32.dll" (ByVal Separador As String) As Integer
Public Declare Function Daruma_Registry_SeparaMsgPromo Lib "Daruma32.dll" (ByVal SeparaMsgPromo As String) As Integer
Public Declare Function Daruma_Registry_ZAutomatica Lib "Daruma32.dll" (ByVal ZAutomatica As String) As Integer
Public Declare Function Daruma_Registry_XAutomatica Lib "Daruma32.dll" (ByVal XAutomatica As String) As Integer
Public Declare Function Daruma_Registry_VendeItemUmaLinha Lib "Daruma32.dll" (ByVal VendeItem1Lin13Dig As String) As Integer
Public Declare Function Daruma_Registry_Default Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_Registry_RetornaValor Lib "Daruma32.dll" (ByVal Produto As String, ByVal Chave As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_Registry_TerminalServer Lib "Daruma32.dll" (ByVal TerminalServer As String) As Integer
Public Declare Function Daruma_Registry_ErroExtendidoOk Lib "Daruma32.dll" (ByVal ValorErro As String) As Integer
Public Declare Function Daruma_Registry_AbrirDiaFiscal Lib "Daruma32.dll" (ByVal AbrirDiaFiscal As String) As Integer
Public Declare Function Daruma_Registry_VendaAutomatica Lib "Daruma32.dll" (ByVal VendaAutomatica As String) As Integer
Public Declare Function Daruma_Registry_IgnorarPoucoPapel Lib "Daruma32.dll" (ByVal IgnorarPoucoPapel As String) As Integer
Public Declare Function Daruma_Registry_ImprimeRegistry Lib "Daruma32.dll" (ByVal Produto As String) As Integer
Public Declare Function Daruma_Registry_PCExpanionLogin Lib "Daruma32.dll" (ByVal Flag_Login As String) As Integer
Public Declare Function Daruma_Registry_TEF_NumeroLinhasImpressao Lib "Daruma32.dll" (ByVal NumeroLinhasImpressao As String) As Integer
Public Declare Function Daruma_Registry_MFD_ArredondaValor Lib "Daruma32.dll" (ByVal ArredondaValor As String) As Integer
Public Declare Function Daruma_Registry_MFDValorFinal Lib "Daruma32.dll" (ByVal ValorFinal As String) As Integer
Public Declare Function Daruma_Registry_MFD_ArredondaQuantidade Lib "Daruma32.dll" (ByVal ArredondaQuantidade As String) As Integer
Public Declare Function Daruma_Registry_MFD_ProgramarSinalSonoro Lib "Daruma32.dll" (ByVal NomeChave As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_Registry_MFD_LeituraMFCompleta Lib "Daruma32.dll" (ByVal Valor As String) As Integer
Public Declare Function Daruma_Registry_NumeroSerieNaoFormatado Lib "Daruma32.dll" (ByVal Formatado As String) As Integer
Public Declare Function Daruma_Registry_LogTamMaxMB Lib "Daruma32.dll" (ByVal LogTamMaxMB As String) As Integer
Public Declare Function Daruma_Registry_SintegraPath Lib "Daruma32.dll" (ByVal Path As String) As Integer
Public Declare Function Daruma_Registry_SintegraSeparador Lib "Daruma32.dll" (ByVal Separador As String) As Integer
Public Declare Function Daruma_Registry_SintegraUF Lib "Daruma32.dll" (ByVal UF As String) As Integer
Public Declare Function Daruma_Registry_AlterarRegistry Lib "Daruma32.dll" (ByVal Produto As String, ByVal Chave As String, ByVal Valor As String) As Integer

'Metodos de Status
Public Declare Function Daruma_FI_ResetaImpressora Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_StatusCupomFiscal Lib "Daruma32.dll" (ByVal StsCF As String) As Integer
Public Declare Function Daruma_FI_StatusRelatorioGerencial Lib "Daruma32.dll" (ByVal StsGerencial As String) As Integer
Public Declare Function Daruma_FI_StatusComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal StsCNFV As String) As Integer
Public Declare Function Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado Lib "Daruma32.dll" (ByVal StsCNFV As String) As Integer
Public Declare Function Daruma_FI_VerificaImpressoraLigada Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_VerificaTotalizadoresParciais Lib "Daruma32.dll" (ByVal Totalizadores_Parciais As String) As Integer
Public Declare Function Daruma_FI_VerificaModoOperacao Lib "Daruma32.dll" (ByVal Modo As String) As Integer
Public Declare Function Daruma_FI_VerificaTotalizadoresNaoFiscais Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FI_VerificaTotalizadoresNaoFiscaisEx Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FI_VerificaTruncamento Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_VerificaAliquotasIss Lib "Daruma32.dll" (ByVal AliquotasIss As String) As Integer
Public Declare Function Daruma_FI_VerificaRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal Recebimentos As String) As Integer
Public Declare Function Daruma_FI_VerificaTipoImpressora Lib "Daruma32.dll" (ByRef TipoImpressora As Integer) As Integer
Public Declare Function Daruma_FI_VerificaIndiceAliquotasIss Lib "Daruma32.dll" (ByVal AliquotaIss As String) As Integer
Public Declare Function Daruma_FI_VerificaModeloECF Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_VerificaDescricaoFormasPagamento Lib "Daruma32.dll" (ByVal Descricao As String) As Integer
Public Declare Function Daruma_FI_VerificaXPendente Lib "Daruma32.dll" (ByVal XPendente As String) As Integer
Public Declare Function Daruma_FI_VerificaZPendente Lib "Daruma32.dll" (ByVal ZPendente As String) As Integer
Public Declare Function Daruma_FI_VerificaDiaAberto Lib "Daruma32.dll" (ByVal DiaAberto As String) As Integer
Public Declare Function Daruma_FI_VerificaHorarioVerao Lib "Daruma32.dll" (ByVal HorarioVerao As String) As Integer
Public Declare Function Daruma_FI_VerificaFormasPagamento Lib "Daruma32.dll" (ByVal FormasPagto As String) As Integer
Public Declare Function Daruma_FI_VerificaFormasPagamentoEx Lib "Daruma32.dll" (ByVal FormasPagtoEx As String) As Integer
Public Declare Function Daruma_FI_VerificaEpromConectada Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_VerificaEstadoImpressora Lib "Daruma32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer

'Metodos de Informacao do ECF e Contadores
Public Declare Function Daruma_FI_ClicheProprietario Lib "Daruma32.dll" (ByVal Cliche As String) As Integer
Public Declare Function Daruma_FI_ClicheProprietarioEx Lib "Daruma32.dll" (ByVal ClicheProprietarioEx As String) As Integer
Public Declare Function Daruma_FI_NumeroCaixa Lib "Daruma32.dll" (ByVal NumeroCaixa As String) As Integer
Public Declare Function Daruma_FI_NumeroLoja Lib "Daruma32.dll" (ByVal NumeroLoja As String) As Integer
Public Declare Function Daruma_FI_NumeroSerie Lib "Daruma32.dll" (ByVal NumeroSerie As String) As Integer
Public Declare Function Daruma_FI_VersaoFirmware Lib "Daruma32.dll" (ByVal VersaoFirmware As String) As Integer
Public Declare Function Daruma_FI_CGC_IE Lib "Daruma32.dll" (ByVal CGC As String, ByVal IE As String) As Integer
Public Declare Function Daruma_FI_LerAliquotasComIndice Lib "Daruma32.dll" (ByVal AliquotasComIndice As String) As Integer
Public Declare Function Daruma_FI_NumeroCupom Lib "Daruma32.dll" (ByVal NumeroCupom As String) As Integer
Public Declare Function Daruma_FI_COO Lib "Daruma32.dll" (ByVal Coo_Inicial As String, ByVal COO_Final As String) As Integer
Public Declare Function Daruma_FI_MinutosImprimindo Lib "Daruma32.dll" (ByVal Minutos As String) As Integer
Public Declare Function Daruma_FI_MinutosLigada Lib "Daruma32.dll" (ByVal Minutos As String) As Integer
Public Declare Function Daruma_FI_NumeroSubstituicoesProprietario Lib "Daruma32.dll" (ByVal NumeroSubstituicoes As String) As Integer
Public Declare Function Daruma_FI_NumeroIntervencoes Lib "Daruma32.dll" (ByVal NumeroIntervencoes As String) As Integer
Public Declare Function Daruma_FI_NumeroReducoes Lib "Daruma32.dll" (ByVal NumeroReducoes As String) As Integer
Public Declare Function Daruma_FI_NumeroCuponsCancelados Lib "Daruma32.dll" (ByVal NumeroCancelamentos As String) As Integer
Public Declare Function Daruma_FI_NumeroOperacoesNaoFiscais Lib "Daruma32.dll" (ByVal NumeroOperacoes As String) As Integer
Public Declare Function Daruma_FI_DataHoraImpressora Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FI_DataHoraReducao Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FI_DataMovimento Lib "Daruma32.dll" (ByVal Data As String) As Integer
Public Declare Function Daruma_FI_ContadoresTotalizadoresNaoFiscais Lib "Daruma32.dll" (ByVal Contadores As String) As Integer

'Metodos Totalizadores Gerais
Public Declare Function Daruma_FI_VendaBruta Lib "Daruma32.dll" (ByVal VendaBruta As String) As Integer
Public Declare Function Daruma_FI_VendaBrutaAcumulada Lib "Daruma32.dll" (ByVal VendaBrutaAcumulada As String) As Integer
Public Declare Function Daruma_FI_GrandeTotal Lib "Daruma32.dll" (ByVal GrandeTotal As String) As Integer
Public Declare Function Daruma_FI_Descontos Lib "Daruma32.dll" (ByVal ValorDescontos As String) As Integer
Public Declare Function Daruma_FI_Acrescimos Lib "Daruma32.dll" (ByVal ValorAcrescimos As String) As Integer
Public Declare Function Daruma_FI_Cancelamentos Lib "Daruma32.dll" (ByVal ValorCancelamentos As String) As Integer
Public Declare Function Daruma_FI_DadosUltimaReducao Lib "Daruma32.dll" (ByVal DadosReducao As String) As Integer
Public Declare Function Daruma_FI_SubTotal Lib "Daruma32.dll" (ByVal SubTotal As String) As Integer
Public Declare Function Daruma_FI_Troco Lib "Daruma32.dll" (ByVal Troco As String) As Integer
Public Declare Function Daruma_FI_SaldoAPagar Lib "Daruma32.dll" (ByVal Saldo As String) As Integer
Public Declare Function Daruma_FI_RetornoAliquotas Lib "Daruma32.dll" (ByVal cAliquotas As String) As Integer
Public Declare Function Daruma_FI_ValorPagoUltimoCupom Lib "Daruma32.dll" (ByVal ValorCupom As String) As Integer
Public Declare Function Daruma_FI_ValorFormaPagamento Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorForma As String) As Integer
Public Declare Function Daruma_FI_ValorTotalizadorNaoFiscal Lib "Daruma32.dll" (ByVal Totalizador As String, ByVal ValorTotalizador As String) As Integer
Public Declare Function Daruma_FI_UltimoItemVendido Lib "Daruma32.dll" (ByVal NumeroItem As String) As Integer
Public Declare Function Daruma_FI_UltimaFormaPagamento Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorForma As String) As Integer
Public Declare Function Daruma_FI_TipoUltimoDocumento Lib "Daruma32.dll" (ByVal TipoUltimoDoc As String) As Integer

'Metodos Relatorios Fiscais e Relatorios
Public Declare Function Daruma_FI_MapaResumo Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RelatorioTipo60Analitico Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RelatorioTipo60Mestre Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_FlagsFiscais Lib "Daruma32.dll" (ByRef Flag As Integer) As Integer
Public Declare Function Daruma_FI_FlagsFiscaisStr Lib "Daruma32.dll" (ByRef Flag As Integer) As Integer
Public Declare Function Daruma_FI_PalavraStatus Lib "Daruma32.dll" (ByVal PalavraStatus As String) As Integer
Public Declare Function Daruma_FI_PalavraStatusBinario Lib "Daruma32.dll" (ByVal PalavraStatusBinario As String) As Integer
Public Declare Function Daruma_FI_SimboloMoeda Lib "Daruma32.dll" (ByVal SimboloMoeda As String) As Integer
Public Declare Function Daruma_FI_RetornoImpressora Lib "Daruma32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer
Public Declare Function Daruma_FI_RetornaErroExtendido Lib "Daruma32.dll" (ByVal ErroExtendido As String) As Integer
Public Declare Function Daruma_FI_RetornaAcrescimoNF Lib "Daruma32.dll" (ByVal AcrescimoNF As String) As Integer
Public Declare Function Daruma_FI_RetornaCFCancelados Lib "Daruma32.dll" (ByVal CNCancelados As String) As Integer
Public Declare Function Daruma_FI_RetornaCNFCancelados Lib "Daruma32.dll" (ByVal CNFCancelados As String) As Integer
Public Declare Function Daruma_FI_RetornaCLX Lib "Daruma32.dll" (ByVal RetornaCLX As String) As Integer
Public Declare Function Daruma_FI_RetornaCNFNV Lib "Daruma32.dll" (ByVal RetornaCNFNV As String) As Integer
Public Declare Function Daruma_FI_RetornaCNFV Lib "Daruma32.dll" (ByVal RetornaCNFV As String) As Integer
Public Declare Function Daruma_FI_RetornaDescricaoCNFV Lib "Daruma32.dll" (ByVal RetornaCNFV As String) As Integer
Public Declare Function Daruma_FI_RetornaCRO Lib "Daruma32.dll" (ByVal RetornaCRO As String) As Integer
Public Declare Function Daruma_FI_RetornaCRZ Lib "Daruma32.dll" (ByVal RetornaCRZ As String) As Integer
Public Declare Function Daruma_FI_RetornaCRZRestante Lib "Daruma32.dll" (ByVal RetornaCRZRestante As String) As Integer
Public Declare Function Daruma_FI_RetornaCancelamentoNF Lib "Daruma32.dll" (ByVal CancelamentoNF As String) As Integer
Public Declare Function Daruma_FI_RetornaDescontoNF Lib "Daruma32.dll" (ByVal DescontoNF As String) As Integer
Public Declare Function Daruma_FI_RetornaGNF Lib "Daruma32.dll" (ByVal RetornaGNF As String) As Integer
Public Declare Function Daruma_FI_RetornaTempoImprimindo Lib "Daruma32.dll" (ByVal TempoImprimindo As String) As Integer
Public Declare Function Daruma_FI_RetornaTempoLigado Lib "Daruma32.dll" (ByVal TempoLigado As String) As Integer
Public Declare Function Daruma_FI_RetornaTotalPagamentos Lib "Daruma32.dll" (ByVal TotalPagamentos As String) As Integer
Public Declare Function Daruma_FI_RetornaTroco Lib "Daruma32.dll" (ByVal Troco As String) As Integer
Public Declare Function Daruma_FI_RetornaValorComprovanteNaoFiscal Lib "Daruma32.dll" (ByVal IndiceRegistrCNF As String, ByVal Ref_Valor As String) As Integer
Public Declare Function Daruma_FI_RetornaIndiceComprovanteNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoRegistrCNF As String, ByVal Ref_Indice As String) As Integer
Public Declare Function Daruma_FI_RetornaRegistradoresNaoFiscais Lib "Daruma32.dll" (ByVal RegistrNaoFiscais As String) As Integer
Public Declare Function Daruma_FI_RetornaRegistradoresFiscais Lib "Daruma32.dll" (ByVal RegistradoresFiscais As String) As Integer
Public Declare Function Daruma_FI_RetornarVersaoDLL Lib "Daruma32.dll" (ByVal RegistradoresFiscais As String) As Integer

'**********************************************************************************************************************'
' '
' FS2000 '
' '
'**********************************************************************************************************************'

'Metodos exclusivos
Public Declare Function Daruma_Registry_FS2000_CupomAdicional Lib "Daruma32.dll" (ByVal CupomAdicional As String) As Integer
Public Declare Function Daruma_Registry_FS2000_TempoEsperaCheque Lib "Daruma32.dll" (ByVal TempodeEspera As String) As Integer
Public Declare Function Daruma_FI2000_DescontoSobreItemVendido Lib "Daruma32.dll" (ByVal NumeroItem As String, ByVal TipoDesconto As String, ByVal ValorDesconto As String) As Integer
Public Declare Function Daruma_FI2000_AcrescimosICMSISS Lib "Daruma32.dll" (ByVal AcrescICMS As String, ByVal AcrescISS As String) As Integer
Public Declare Function Daruma_FI2000_CancelamentosICMSISS Lib "Daruma32.dll" (ByVal CancelICMS As String, ByVal CancelISS As String) As Integer
Public Declare Function Daruma_FI2000_DescontosICMSISS Lib "Daruma32.dll" (ByVal DescICMS As String, ByVal DescISS As String) As Integer
Public Declare Function Daruma_FI2000_LeituraInformacaoUltimosCNF Lib "Daruma32.dll" (ByVal UltimosCNF As String) As Integer
Public Declare Function Daruma_FI2000_LeituraInformacaoUltimoDoc Lib "Daruma32.dll" (ByVal TipoUltimoDoc As String, ByVal ValorUltimoDoc As String) As Integer
Public Declare Function Daruma_FI2000_VerificaRelatorioGerencial Lib "Daruma32.dll" (ByVal Gerencial As String) As Integer
Public Declare Function Daruma_FI2000_CriaRelatorioGerencial Lib "Daruma32.dll" (ByVal NomeGerencial As String) As Integer
Public Declare Function Daruma_FI2000_AbreRelatorioGerencial Lib "Daruma32.dll" (ByVal Indice As String) As Integer
Public Declare Function Daruma_FI2000_CancelamentoCNFV Lib "Daruma32.dll" (ByVal COO_CNFV As String) As Integer
Public Declare Function Daruma_FI2000_SegundaViaCNFVinculado Lib "Daruma32.dll" () As Integer

'Metodos para cheques
Public Declare Function Daruma_FI2000_StatusCheque Lib "Daruma32.dll" (ByVal StatusCheque As String) As Integer
Public Declare Function Daruma_FI2000_ImprimirCheque Lib "Daruma32.dll" (ByVal Banco As String, ByVal Cidade As String, ByVal Data As String, ByVal Favorecido As String, ByVal Valor As String, ByVal PosicaoCheque As String) As Integer
Public Declare Function Daruma_FI2000_ImprimirVersoCheque Lib "Daruma32.dll" (ByVal VersoCheque As String) As Integer
Public Declare Function Daruma_FI2000_LiberarCheque Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI2000_LeituraCodigoMICR Lib "Daruma32.dll" (ByVal CodigoMICR As String) As Integer
Public Declare Function Daruma_FI2000_CancelarCheque Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI2000_LeituraTabelaCheque Lib "Daruma32.dll" (ByVal TabelaCheque As String) As Integer
Public Declare Function Daruma_FI2000_CarregarCheque Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI2000_CorrigirGeometriaCheque Lib "Daruma32.dll" (ByVal NumeroBanco As String, ByVal GeometriaCheque As String) As Integer

'********************************************************************************************************************* '
' '
' TA1000 '
' '
'********************************************************************************************************************* '

'Metodos para Registry
Public Declare Function Daruma_Registry_TA1000_Porta Lib "Daruma32.dll" (ByVal Porta As String) As Integer
Public Declare Function Daruma_Registry_TA1000_PathProdutos Lib "Daruma32.dll" (ByVal PathProdutos As String) As Integer
Public Declare Function Daruma_Registry_TA1000_PathUsuarios Lib "Daruma32.dll" (ByVal PathUsuarios As String) As Integer
Public Declare Function Daruma_Registry_TA1000_NumeroItensEnviados Lib "Daruma32.dll" (ByVal NumeroItensEnviados As String) As Integer
Public Declare Function Daruma_Registry_TA1000_PathRelatorios Lib "Daruma32.dll" (ByVal PathRelatorios As String) As Integer

Public Declare Function Daruma_TA1000_CadastrarProdutos Lib "Daruma32.dll" (ByVal Descricao As String, ByVal Codigo As String, ByVal DecimaisPreco As String, ByVal DecimaisQuantidade As String, ByVal Preco As String, ByVal DescontoAcrescimo As String, ByVal ValorDescontoAcrescimo As String, ByVal UnidadeMedida As String, ByVal Aliquota As String, ByVal ProximoProduto As String, ByVal ProdutoAnterior As String, ByVal Estoque As String) As Integer
Public Declare Function Daruma_TA1000_LerProdutos Lib "Daruma32.dll" (ByVal Indice As Integer, ByVal Descricao As String, ByVal Codigo As String, ByVal DecimaisPreco As String, ByVal DecimaisQuantidade As String, ByVal Preco As String, ByVal DescontoAcrescimo As String, ByVal ValorDescontoAcrescimo As String, ByVal UnidadeMedida As String, ByVal Aliquota As String, ByVal ProximoProduto As String, ByVal ProdutoAnterior As String, ByVal Estoque As String) As Integer
Public Declare Function Daruma_TA1000_ConsultarProdutos Lib "Daruma32.dll" (ByVal Descricao As String, ByVal Codigo As String, ByVal DecimaisPreco As String, ByVal DecimaisQuantidade As String, ByVal Preco As String, ByVal DescontoAcrescimo As String, ByVal ValorDescontoAcrescimo As String, ByVal UnidadeMedida As String, ByVal Aliquota As String, ByVal ProximoProduto As String, ByVal ProdutoAnterior As String, ByVal Estoque As String) As Integer
Public Declare Function Daruma_TA1000_AlterarProdutos Lib "Daruma32.dll" (ByVal Codigo_Consultar As String, ByVal Descricao As String, ByVal Codigo As String, ByVal DecimaisPreco As String, ByVal DecimaisQuantidade As String, ByVal Preco As String, ByVal DescontoAcrescimo As String, ByVal ValorDescontoAcrescimo As String, ByVal UnidadeMedida As String, ByVal Aliquota As String, ByVal ProximoProduto As String, ByVal ProdutoAnterior As String, ByVal Estoque As String) As Integer
Public Declare Function Daruma_TA1000_EliminarProdutos Lib "Daruma32.dll" (ByVal Codigo As String) As Integer
Public Declare Function Daruma_TA1000_EnviarBancoProdutos Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ReceberBancoProdutos Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ReceberProdutosVendidos Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ZerarProdutos Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ZerarProdutosVendidos Lib "Daruma32.dll" () As Integer

Public Declare Function Daruma_TA1000_EnviarBancoUsuarios Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ReceberBancoUsuarios Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ZerarUsuarios Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_CadastrarUsuarios Lib "Daruma32.dll" (ByVal Nome As String, ByVal CPF As String, ByVal CodigoConvenio As String, ByVal CodigoUsuario As String, ByVal UsuarioAnterior As String, ByVal ProximoUsuario As String) As Integer
Public Declare Function Daruma_TA1000_ConsultarUsuarios Lib "Daruma32.dll" (ByVal Codigo_Consultar As String, ByVal Nome As String, ByVal CPF As String, ByVal CodigoConvenio As String, ByVal CodigoUsuario As String, ByVal UsuarioAnterior As String, ByVal ProximoUsuario As String) As Integer
Public Declare Function Daruma_TA1000_AlterarUsuarios Lib "Daruma32.dll" (ByVal Codigo_Consultar As String, ByVal Nome As String, ByVal CPF As String, ByVal CodigoConvenio As String, ByVal CodigoUsuario As String, ByVal UsuarioAnterior As String, ByVal ProximoUsuario As String) As Integer
Public Declare Function Daruma_TA1000_EliminarUsuarios Lib "Daruma32.dll" (ByVal Codigo As String) As Integer

Public Declare Function Daruma_TA1000_LeStatusTransferencia Lib "Daruma32.dll" () As Integer
'********************************************************************************************************************* '
' '
' DUAL '
' '
'********************************************************************************************************************* '

'Metodos para Registry
Public Declare Function Daruma_Registry_DUAL_Enter Lib "Daruma32.dll" (ByVal Enter As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Espera Lib "Daruma32.dll" (ByVal Espera As String) As Integer
Public Declare Function Daruma_Registry_DUAL_ModoEscrita Lib "Daruma32.dll" (ByVal ModoEscrita As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Porta Lib "Daruma32.dll" (ByVal Porta As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Tabulacao Lib "Daruma32.dll" (ByVal Tabulacao As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Termica Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Velocidade Lib "Daruma32.dll" (ByVal Velocidade As String) As Integer

'Metodos para Status
Public Declare Function Daruma_DUAL_VerificaStatus Lib "Daruma32.dll" () As Integer 'Verificar Status
Public Declare Function Daruma_DUAL_VerificaDocumento Lib "Daruma32.dll" () As Integer 'Verifica Documento
Public Declare Function Daruma_DUAL_StatusGaveta Lib "Daruma32.dll" () As Integer 'Verificar Status Gaveta

'Metodos para Autenticacao a Impressao
Public Declare Function Daruma_DUAL_ImprimirArquivo Lib "Daruma32.dll" (ByVal Str_Path As String) As Integer 'Imprimir arquivo
Public Declare Function Daruma_DUAL_ImprimirTexto Lib "Daruma32.dll" (ByVal TextoLivre As String, ByVal TamanhoTexto As Integer) As Integer 'Imprimir Texto Livre
Public Declare Function Daruma_DUAL_Autenticar Lib "Daruma32.dll" (ByVal NumVias As String, ByVal Texto As String, ByVal TempoAguardar As String) As Integer 'Autenticar
Public Declare Function Daruma_DUAL_AcionaGaveta Lib "Daruma32.dll" () As Integer 'AcionaGaveta
Public Declare Function Daruma_DUAL_EnviarBMP Lib "Daruma32.dll" (ByVal Path As String) As Integer 'Envia o logotipo
Public Declare Function Daruma_DUAL_VerificarGuilhotina Lib "Daruma32.dll" () As Integer 'Desolve se a impressora esta ou nao com a Guilhotina habilitada
Public Declare Function Daruma_DUAL_ConfigurarGuilhotina Lib "Daruma32.dll" (ByVal Int_Flag As Integer, ByVal Int_LinhasAcionamento As Integer) As Integer 'Configura a Guilhotina

'**********************************************************************************************************************'
' '
' FS318 '
' '
'**********************************************************************************************************************'

Public Declare Function Daruma_FIR_ProgramaAliquota Lib "Daruma32.dll" (ByVal Valor_Aliquota As String, ByVal Tipo_Aliquota As Integer) As Integer
Public Declare Function Daruma_FIR_NomeiaTotalizadorNaoSujeitoIcms Lib "Daruma32.dll" (ByVal Indice_do_Totalizador As Integer, ByVal Nome_do_Totalizador As String) As Integer
Public Declare Function Daruma_FIR_ProgramaFormasPagamento Lib "Daruma32.dll" (ByVal Descricao_das_Formas_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_ProgramaOperador Lib "Daruma32.dll" (ByVal Nome_do_Operador As String) As Integer
Public Declare Function Daruma_FIR_ProgramaArredondamento Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ProgramaTruncamento Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_LinhasEntreCupons Lib "Daruma32.dll" (ByVal Linhas_Entre_Cupons As Integer) As Integer
Public Declare Function Daruma_FIR_EspacoEntreLinhas Lib "Daruma32.dll" (ByVal Espaco_Entre_Linhas As Integer) As Integer
Public Declare Function Daruma_FIR_ProgramaHorarioVerao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_EqualizaFormasPgto Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ProgramaVinculados Lib "Daruma32.dll" (ByVal Vinculado As String) As Integer
Public Declare Function Daruma_FIR_ProgFormasPagtoSemVincular Lib "Daruma32.dll" (ByVal Descricao_da_Forma_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_ProgramaMsgTaxaServico Lib "Daruma32.dll" (ByVal Mensagem_da_Taxa_de_Servico As String) As Integer
Public Declare Function Daruma_FIR_AdicionaProdutoCardapio Lib "Daruma32.dll" (ByVal Codigo As String, ByVal Valor_Unitario As String, ByVal Aliquota As String, ByVal Descricao As String) As Integer
Public Declare Function Daruma_FIR_CfgEspacamentoCupons Lib "Daruma32.dll" (ByVal DistanciaCupons As String) As Integer
Public Declare Function Daruma_FIR_CfgHoraMinReducaoZ Lib "Daruma32.dll" (ByVal Hora_Min_para_ReducaoZ As String) As Integer
Public Declare Function Daruma_FIR_CfgLimiarNearEnd Lib "Daruma32.dll" (ByVal NumeroLinhas As String) As Integer
Public Declare Function Daruma_FIR_CfgHorarioVerao Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_CfgLegProdutos Lib "Daruma32.dll" (ByVal Flag As String) As Integer

Public Declare Function Daruma_FIR_AbreCupom Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String) As Integer
Public Declare Function Daruma_FIR_AbreCupomRestaurante Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String) As Integer
Public Declare Function Daruma_FIR_AbreCupomBalcao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_VendeItem Lib "Daruma32.dll" (ByVal Mesa As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal Valor_Unitario As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_VendeItemBalcao Lib "Daruma32.dll" (ByVal Codigo As String, ByVal Quantidade As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_RegistrarVenda Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String, ByVal Codigo As String, ByVal Quantidade As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_RegistroVendaSerial Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String) As Integer
Public Declare Function Daruma_FIR_FechaCupomRestauranteResumido Lib "Daruma32.dll" (ByVal Descricao_da_Forma_de_Pagamento As String, ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_IniciaFechamentoCupom Lib "Daruma32.dll" (ByVal Acrescimo_ou_Desconto As String, ByVal Tipo_do_Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_IniciaFechamentoCupomComServico Lib "Daruma32.dll" (ByVal Acrescimo_ou_Desconto As String, ByVal Tipo_do_Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String, ByVal Indicador_da_Operacao As String, ByVal Taxa_de_Servico As String) As Integer
Public Declare Function Daruma_FIR_EfetuaFormaPagamento Lib "Daruma32.dll" (ByVal Descricao_da_Forma_Pagamento As String, ByVal Valor_da_Forma_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_EfetuaFormaPagamentoDescricaoForma Lib "Daruma32.dll" (ByVal Descricao_da_Forma_Pagamento As String, ByVal Valor_da_Forma_Pagamento As String, ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_IdentificaConsumidor Lib "Daruma32.dll" (ByVal Nome_do_Consumidor As String, ByVal Endereco As String, ByVal CPF_ou_CNPJ As String) As Integer
Public Declare Function Daruma_FIR_FechaCupomResumido Lib "Daruma32.dll" (ByVal Descricao_da_Forma_de_Pagamento As String, ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_TerminaFechamentoCupom Lib "Daruma32.dll" (ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_TerminaFechamentoCupomID Lib "Daruma32.dll" (ByVal Mensagem_Promocional As String, ByVal Nome_do_Cliente As String, ByVal Endereco_do_Cliente As String, ByVal Documento_do_Cliente As String) As Integer
Public Declare Function Daruma_FIR_FechaCupomRestaurante Lib "Daruma32.dll" (ByVal Forma_de_Pagamento As String, ByVal Acrescimo_ou_Desconto As String, ByVal Tipo_Acrescimo_ou_Desconto As String, ByVal Valor_Acrescimo_ou_Desconto As String, ByVal Valor_Pago As String, ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_CancelaItem Lib "Daruma32.dll" (ByVal Mesa As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal Valor_Unitario As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_CancelaItemBalcao Lib "Daruma32.dll" (ByVal Codigo_do_Item As String) As Integer
Public Declare Function Daruma_FIR_CancelaCupom Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_CancelarVenda Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String, ByVal Codigo As String, ByVal Quantidade As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer

Public Declare Function Daruma_FIR_TranferirVenda Lib "Daruma32.dll" (ByVal Numero_da_Mesa_Origem As String, ByVal Numero_da_Mesa_Destino As String, ByVal Codigo As String, ByVal Quantidade As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_TransfereItem Lib "Daruma32.dll" (ByVal Mesa_Origem As String, ByVal Mesa_Destino As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal Valor_Unitario As String, ByVal Acrescimo_ou_Desconto As String, ByVal Desconto_Percentual As String) As Integer
Public Declare Function Daruma_FIR_TranferirMesa Lib "Daruma32.dll" (ByVal Mesa_Origem As String, ByVal Mesa_Destino As String) As Integer
Public Declare Function Daruma_FIR_ConferenciaMesa Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String, ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_LimparMesa Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String) As Integer
Public Declare Function Daruma_FIR_ImprimePrimeiroCupomDividido Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String, ByVal Quantidade_Divisoria As String) As Integer
Public Declare Function Daruma_FIR_RestanteCupomDividido Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_AumentaDescricaoItem Lib "Daruma32.dll" (ByVal Descricao_Extendida As String) As Integer
Public Declare Function Daruma_FIR_UsaUnidadeMedida Lib "Daruma32.dll" (ByVal Unidade_Medida As String) As Integer
Public Declare Function Daruma_FIR_EmitirCupomAdicional Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_EstornoFormasPagamento Lib "Daruma32.dll" (ByVal Forma_de_Origem As String, ByVal Nova_Forma As String, ByVal Valor_Total_Pago As String) As Integer

Public Declare Function Daruma_FIR_AbreComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal Forma_de_Pagamento As String, ByVal Valor_Pago As String, ByVal Numero_do_Cupom As String) As Integer
Public Declare Function Daruma_FIR_UsaComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_FechaComprovanteNaoFiscalVinculado Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RelatorioGerencial Lib "Daruma32.dll" (ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_AbreRelatorioGerencial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_EnviarTextoCNF Lib "Daruma32.dll" (ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_FechaRelatorioGerencial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal Descricao_do_Totalizador As String, ByVal Valor_do_Recebimento As String, ByVal Forma_de_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_AbreRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal Descricao_do_Totalizador As String, ByVal Acrescimo_ou_Desconto As String, ByVal Tipo_Acrescimo_ou_Desconto As String, ByVal Valor_Acrescimo_ou_Desconto As String, ByVal Valor_do_Recebimento As String, ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_EfetuaFormaPagamentoNaoFiscal Lib "Daruma32.dll" (ByVal Forma_de_Pagamento As String, ByVal Valor_da_Forma_Pagamento As String, ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_Sangria Lib "Daruma32.dll" (ByVal Valor_da_Sangria As String) As Integer
Public Declare Function Daruma_FIR_Suprimento Lib "Daruma32.dll" (ByVal Valor_do_Suprimento As String, ByVal Forma_de_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_FundoCaixa Lib "Daruma32.dll" (ByVal Valor_do_Fundo_Caixa As String, ByVal Forma_de_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_LeituraX Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ReducaoZ Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FIR_ReducaoZAjustaDataHora Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FIR_RelatorioMesasAbertas Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RelatorioMesasAbertasSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaFiscalData Lib "Daruma32.dll" (ByVal Data_Inicial As String, ByVal Data_Final As String) As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaFiscalReducao Lib "Daruma32.dll" (ByVal Reducao_Inicial As String, ByVal Reducao_Final As String) As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaFiscalSerialData Lib "Daruma32.dll" (ByVal Data_Inicial As String, ByVal Data_Final As String) As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaFiscalSerialReducao Lib "Daruma32.dll" (ByVal Reducao_Inicial As String, ByVal Reducao_Final As String) As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaTrabalho Lib "Daruma32.dll" () As Integer

Public Declare Function Daruma_FIR_StatusCupomFiscal Lib "Daruma32.dll" (ByVal StatusCupomFiscal As String) As Integer
Public Declare Function Daruma_FIR_StatusRelatorioGerencial Lib "Daruma32.dll" (ByVal StatusRelGerencial As String) As Integer
Public Declare Function Daruma_FIR_StatusComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal StatusCNFV As String) As Integer
Public Declare Function Daruma_FIR_StatusComprovanteNaoFiscalNaoVinculado Lib "Daruma32.dll" (ByVal StatusCNFNV As String) As Integer
Public Declare Function Daruma_FIR_VerificaImpressoraLigada Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_VerificaTotalizadoresParciais Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FIR_VerificaModoOperacao Lib "Daruma32.dll" (ByVal Modo As String) As Integer
Public Declare Function Daruma_FIR_VerificaTotalizadoresNaoFiscais Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FIR_VerificaTotalizadoresNaoFiscaisEx Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FIR_VerificaTruncamento Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_VerificaAliquotasIss Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_VerificaIndiceAliquotasIss Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_VerificaRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal Recebimentos As String) As Integer
Public Declare Function Daruma_FIR_VerificaTipoImpressora Lib "Daruma32.dll" (ByRef TipoImpressora As Integer) As Integer
Public Declare Function Daruma_FIR_VerificaStatusCheque Lib "Daruma32.dll" (ByVal StatusCheque As Integer) As Integer
Public Declare Function Daruma_FIR_VerificaModeloECF Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_VerificaDescricaoFormasPagamento Lib "Daruma32.dll" (ByVal Descricao As String) As Integer
Public Declare Function Daruma_FIR_VerificaXPendente Lib "Daruma32.dll" (ByVal XPendente As String) As Integer
Public Declare Function Daruma_FIR_VerificaZPendente Lib "Daruma32.dll" (ByVal ZPendente As String) As Integer
Public Declare Function Daruma_FIR_VerificaDiaAberto Lib "Daruma32.dll" (ByVal DiaAberto As String) As Integer
Public Declare Function Daruma_FIR_VerificaHorarioVerao Lib "Daruma32.dll" (ByVal HoraioVerao As String) As Integer
Public Declare Function Daruma_FIR_VerificaFormasPagamento Lib "Daruma32.dll" (ByVal Formas As String) As Integer
Public Declare Function Daruma_FIR_VerificaFormasPagamentoEx Lib "Daruma32.dll" (ByVal FormasEx As String) As Integer
Public Declare Function Daruma_FIR_VerificaEpromConectada Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_VerificaEstadoImpressora Lib "Daruma32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer

Public Declare Function Daruma_FIR_ClicheProprietario Lib "Daruma32.dll" (ByVal Cliche As String) As Integer
Public Declare Function Daruma_FIR_ClicheProprietarioEx Lib "Daruma32.dll" (ByVal ClicheEx As String) As Integer
Public Declare Function Daruma_FIR_NumeroCaixa Lib "Daruma32.dll" (ByVal NumeroCaixa As String) As Integer
Public Declare Function Daruma_FIR_NumeroLoja Lib "Daruma32.dll" (ByVal NumeroLoja As String) As Integer
Public Declare Function Daruma_FIR_NumeroSerie Lib "Daruma32.dll" (ByVal NumeroSerie As String) As Integer
Public Declare Function Daruma_FIR_VersaoFirmware Lib "Daruma32.dll" (ByVal VersaoFirmware As String) As Integer
Public Declare Function Daruma_FIR_CGC_IE Lib "Daruma32.dll" (ByVal CGC As String, ByVal IE As String) As Integer
Public Declare Function Daruma_FIR_LerAliquotasComIndice Lib "Daruma32.dll" (ByVal AliquotasComIndice As String) As Integer
Public Declare Function Daruma_FIR_NumeroCupom Lib "Daruma32.dll" (ByVal NumeroCupom As String) As Integer
Public Declare Function Daruma_FIR_COO Lib "Daruma32.dll" (ByVal Inicial As String, ByVal Final As String) As Integer
Public Declare Function Daruma_FIR_MinutosLigada Lib "Daruma32.dll" (ByVal Minutos As String) As Integer
Public Declare Function Daruma_FIR_NumeroSubstituicoesProprietario Lib "Daruma32.dll" (ByVal NumeroSubstituicoes As String) As Integer
Public Declare Function Daruma_FIR_NumeroIntervencoes Lib "Daruma32.dll" (ByVal NumeroIntervencoes As String) As Integer
Public Declare Function Daruma_FIR_NumeroReducoes Lib "Daruma32.dll" (ByVal NumeroReducoes As String) As Integer
Public Declare Function Daruma_FIR_NumeroCuponsCancelados Lib "Daruma32.dll" (ByVal NumeroCancelamentos As String) As Integer
Public Declare Function Daruma_FIR_NumeroOperacoesNaoFiscais Lib "Daruma32.dll" (ByVal NumeroOperacoes As String) As Integer
Public Declare Function Daruma_FIR_DataHoraImpressora Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FIR_DataHoraReducao Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FIR_DataMovimento Lib "Daruma32.dll" (ByVal Data As String) As Integer
Public Declare Function Daruma_FIR_ContadoresTotalizadoresNaoFiscais Lib "Daruma32.dll" (ByVal Contadores As String) As Integer

Public Declare Function Daruma_FIR_VendaBruta Lib "Daruma32.dll" (ByVal VendaBruta As String) As Integer
Public Declare Function Daruma_FIR_GrandeTotal Lib "Daruma32.dll" (ByVal GrandeTotal As String) As Integer
Public Declare Function Daruma_FIR_Descontos Lib "Daruma32.dll" (ByVal ValorDescontos As String) As Integer
Public Declare Function Daruma_FIR_Acrescimos Lib "Daruma32.dll" (ByVal ValorAcrescimos As String) As Integer
Public Declare Function Daruma_FIR_Cancelamentos Lib "Daruma32.dll" (ByVal ValorCancelamentos As String) As Integer
Public Declare Function Daruma_FIR_DadosUltimaReducao Lib "Daruma32.dll" (ByVal DadosReducao As String) As Integer
Public Declare Function Daruma_FIR_SubTotal Lib "Daruma32.dll" (ByVal SubTotal As String) As Integer
Public Declare Function Daruma_FIR_RetornoAliquotas Lib "Daruma32.dll" (ByVal Aliquotas As String) As Integer
Public Declare Function Daruma_FIR_ValorPagoUltimoCupom Lib "Daruma32.dll" (ByVal ValorCupom As String) As Integer
Public Declare Function Daruma_FIR_ValorPagoUltimoCupomFormatado Lib "Daruma32.dll" (ByVal ValorCupom As String) As Integer
Public Declare Function Daruma_FIR_ValorFormaPagamento Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_FIR_ValorTotalizadorNaoFiscal Lib "Daruma32.dll" (ByVal Totalizador As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_FIR_UltimoItemVendido Lib "Daruma32.dll" (ByVal NumeroItem As String) As Integer
Public Declare Function Daruma_FIR_UltimoItemVendidoValor Lib "Daruma32.dll" (ByVal NumeroItem As String) As Integer
Public Declare Function Daruma_FIR_UltimaFormaPagamento Lib "Daruma32.dll" (ByVal Descricao_da_Forma As String, ByVal Valor_da_Forma As String) As Integer
Public Declare Function Daruma_FIR_TipoUltimoDocumento Lib "Daruma32.dll" (ByVal TipoUltimoDoc As String) As Integer

Public Declare Function Daruma_FIR_MapaResumo Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RelatorioTipo60Analitico Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RelatorioTipo60Mestre Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_FlagsFiscais Lib "Daruma32.dll" (ByRef Flag As Integer) As Integer
Public Declare Function Daruma_FIR_PalavraStatus Lib "Daruma32.dll" (ByVal PalavraStatus As String) As Integer
Public Declare Function Daruma_FIR_PalavraStatusBinario Lib "Daruma32.dll" (ByVal PalavraStatusBinario As String) As Integer
Public Declare Function Daruma_FIR_SimboloMoeda Lib "Daruma32.dll" (ByVal SimboloMoeda As String) As Integer
Public Declare Function Daruma_FIR_RetornoImpressora Lib "Daruma32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer
Public Declare Function Daruma_FIR_RetornaErroExtendido Lib "Daruma32.dll" (ByVal ErroExtendido As String) As Integer
Public Declare Function Daruma_FIR_RetornaAcrescimoNF Lib "Daruma32.dll" (ByVal AcrescimoNF As String) As Integer
Public Declare Function Daruma_FIR_RetornaCFCancelados Lib "Daruma32.dll" (ByVal CFCancelados As String) As Integer
Public Declare Function Daruma_FIR_RetornaCNFCancelados Lib "Daruma32.dll" (ByVal CNFCancelados As String) As Integer
Public Declare Function Daruma_FIR_RetornaCLX Lib "Daruma32.dll" (ByVal CLX As String) As Integer
Public Declare Function Daruma_FIR_RetornaCNFNV Lib "Daruma32.dll" (ByVal CNFNV As String) As Integer
Public Declare Function Daruma_FIR_RetornaCNFV Lib "Daruma32.dll" (ByVal CNFV As String) As Integer
Public Declare Function Daruma_FIR_RetornaCRO Lib "Daruma32.dll" (ByVal CRO As String) As Integer
Public Declare Function Daruma_FIR_RetornaCRZ Lib "Daruma32.dll" (ByVal CRZ As String) As Integer
Public Declare Function Daruma_FIR_RetornaCRZRestante Lib "Daruma32.dll" (ByVal CRZRestante As String) As Integer
Public Declare Function Daruma_FIR_RetornaCancelamentoNF Lib "Daruma32.dll" (ByVal CancelamentoNF As String) As Integer
Public Declare Function Daruma_FIR_RetornaDescontoNF Lib "Daruma32.dll" (ByVal DescontoNF As String) As Integer
Public Declare Function Daruma_FIR_RetornaGNF Lib "Daruma32.dll" (ByVal GNF As String) As Integer
Public Declare Function Daruma_FIR_RetornaTempoImprimindo Lib "Daruma32.dll" (ByVal TempoImprimindo As String) As Integer
Public Declare Function Daruma_FIR_RetornaTempoLigado Lib "Daruma32.dll" (ByVal TempoLigado As String) As Integer
Public Declare Function Daruma_FIR_RetornaTotalPagamentos Lib "Daruma32.dll" (ByVal TotalPagamentos As String) As Integer
Public Declare Function Daruma_FIR_RetornaTroco Lib "Daruma32.dll" (ByVal Troco As String) As Integer
Public Declare Function Daruma_FIR_RetornaZeros Lib "Daruma32.dll" (ByVal Zeros As String) As Integer
Public Declare Function Daruma_FIR_RetornaValorComprovanteNaoFiscal Lib "Daruma32.dll" (ByVal Indice_CNF As String, ByVal Informacao As String) As Integer
Public Declare Function Daruma_FIR_RetornaIndiceComprovanteNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoRegistrCNF As String, ByVal RefIndice As String) As Integer
Public Declare Function Daruma_FIR_RetornaRegistradoresNaoFiscais Lib "Daruma32.dll" (ByVal RegistrNaoFiscais As String) As Integer
Public Declare Function Daruma_FIR_RetornaRegistradoresFiscais Lib "Daruma32.dll" (ByVal RegistrFiscais As String) As Integer

Public Declare Function Daruma_FIR_VerificaDocAutenticacao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_Autenticacao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_AutenticacaoStr Lib "Daruma32.dll" (ByVal Autenticacao_Str As String) As Integer
Public Declare Function Daruma_FIR_VerificaEstadoGaveta Lib "Daruma32.dll" (ByRef Estado_Gaveta As Integer) As Integer
Public Declare Function Daruma_FIR_VerificaEstadoGavetaStr Lib "Daruma32.dll" (ByVal Estado_Gaveta As String) As Integer
Public Declare Function Daruma_FIR_AcionaGaveta Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_AbrePortaSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_FechaPortaSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_AberturaDoDia Lib "Daruma32.dll" (ByVal Valor_do_Suprimento As String, ByVal Forma_de_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_FechamentoDoDia Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ImprimeConfiguracoesImpressora Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RegistraNumeroSerie Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_VerificaNumeroSerie Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RetornaSerialCriptografado Lib "Daruma32.dll" (ByVal SerialCriptografado As String, ByVal NumeroSerial As String) As Integer
Public Declare Function Daruma_FIR_ConfiguraHorarioVerao Lib "Daruma32.dll" (ByVal DataEntrada As String, ByVal DataSaida As String, ByVal Controle As String) As Integer
Public Declare Function Daruma_FIR_ZeraCardapio Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ImprimeCardapio Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_CardapioSerial Lib "Daruma32.dll" () As Integer

'Declaracoes globais
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

' Funcoes globais
'Funcao que trata os retornos das Impressora Fiscais Varejo
Public Function Daruma_MostrarRetorno()

Dim Str_ErroExtendido As String
Int_Ack = 0
Int_St1 = 0
Int_St2 = 0
Daruma_FI_RetornoImpressora Int_Ack, Int_St1, Int_St2

Str_ErroExtendido = Space(4)
Daruma_FI_RetornaErroExtendido Str_ErroExtendido

MsgBox "Retorno do Metodo = " + CStr(Int_Retorno) + Chr(13) + Chr(10) _
+ "Ack = " + CStr(Int_Ack) + Chr(13) + Chr(10) _
+ "St1 = " + CStr(Int_St1) + Chr(13) + Chr(10) _
+ "St2 = " + CStr(Int_St2) + Chr(13) + Chr(10) _
+ "Erro Extendido = " + Str_ErroExtendido, , "Daruma Framework Retorno do Metodo"

End Function

'Retornos da DUAL
Public Function Retorno_DUAL()

If Int_Retorno = 1 Then
MsgBox "1(um) - Impressora OK!", vbInformation, "Daruma Framework"
End If
If Int_Retorno = -50 Then
MsgBox "-50 - Impressora OFF-LINE!", vbCritical, "Daruma Framework"
End If
If Int_Retorno = -51 Then
MsgBox "-51 - Impressora Sem Papel!", vbCritical, "Daruma Framework"
End If
If Int_Retorno = -27 Then
MsgBox "-27 - Erro Generico!", vbCritical, "Daruma Framework"
End If
If Int_Retorno = 0 Then
MsgBox "0 - Impressora Desligada!", vbCritical, "Daruma Framework"
End If
End Function

'Retornos do TA1000
Public Function Retorno_TA1000()

If Int_Retorno = 1 Then
MsgBox "1(um) - Metodo Executado com Sucesso!", vbInformation, "Daruma Framework"
Else
MsgBox CStr(Int_Retorno) + " Erro Generico!", vbCritical, "Daruma Framework"
End If
End Function

'Funcao que trata os retornos das Impressora Fiscais Restaurante
Public Function Daruma_MostrarRetornoRestaurante()

Dim Str_ErroExtendido As String
Int_Ack = 0
Int_St1 = 0
Int_St2 = 0
Daruma_FIR_RetornoImpressora Int_Ack, Int_St1, Int_St2

Str_ErroExtendido = Space(4)
Daruma_FIR_RetornaErroExtendido Str_ErroExtendido

MsgBox "Retorno do Metodo = " + CStr(Int_Retorno) + Chr(13) + Chr(10) _
+ "Ack = " + CStr(Int_Ack) + Chr(13) + Chr(10) _
+ "St1 = " + CStr(Int_St1) + Chr(13) + Chr(10) _
+ "St2 = " + CStr(Int_St2) + Chr(13) + Chr(10) _
+ "Erro Extendido = " + Str_ErroExtendido, , "Daruma Framework Retorno do Metodo"

End Function


Declarando em Vb.NET

Declarando em Visual Basic .NET
Top

Imports System.Text

Module DARUMA32

'Variaveis Globais usadas no ECF
Public Int_Ack, Int_St1, Int_St2 As Integer
Public iACK, iST1, iST2, iRET, iValue, Int_Retorno As Integer
Public Str_Informacao As String
Public Int_Informacao As Integer
Public shortValue As Short
Public sRetorno As String
Public sBuffer, sBuffer2 As String

'Declaracoes de Metodos de Acesso ao ECF
#Region "Declaracoes de Metodos de Acesso ao FS318"

'**********************************************************************************************************************'
' '
' FS318 '
' '
'**********************************************************************************************************************'

Public Declare Function Daruma_FIR_ProgramaAliquota Lib "Daruma32.dll" (ByVal Valor_Aliquota As String, ByVal Tipo_Aliquota As Integer) As Integer
Public Declare Function Daruma_FIR_NomeiaTotalizadorNaoSujeitoIcms Lib "Daruma32.dll" (ByVal Índice_do_Totalizador As Integer, ByVal Nome_do_Totalizador As String) As Integer
Public Declare Function Daruma_FIR_ProgramaFormasPagamento Lib "Daruma32.dll" (ByVal Descricao_das_Formas_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_ProgramaOperador Lib "Daruma32.dll" (ByVal Nome_do_Operador As String) As Integer
Public Declare Function Daruma_FIR_ProgramaArredondamento Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ProgramaTruncamento Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_LinhasEntreCupons Lib "Daruma32.dll" (ByVal Linhas_Entre_Cupons As Integer) As Integer
Public Declare Function Daruma_FIR_EspacoEntreLinhas Lib "Daruma32.dll" (ByVal Espaco_Entre_Linhas As Integer) As Integer
Public Declare Function Daruma_FIR_ProgramaHorarioVerao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_EqualizaFormasPgto Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ProgramaVinculados Lib "Daruma32.dll" (ByVal Vinculado As String) As Integer
Public Declare Function Daruma_FIR_ProgFormasPagtoSemVincular Lib "Daruma32.dll" (ByVal Descricao_da_Forma_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_ProgramaMsgTaxaServico Lib "Daruma32.dll" (ByVal Mensagem_da_Taxa_de_Servico As String) As Integer
Public Declare Function Daruma_FIR_AdicionaProdutoCardapio Lib "Daruma32.dll" (ByVal Codigo As String, ByVal Valor_Unitario As String, ByVal Aliquota As String, ByVal Descricao As String) As Integer
Public Declare Function Daruma_FIR_CfgEspacamentoCupons Lib "Daruma32.dll" (ByVal DistanciaCupons As String) As Integer
Public Declare Function Daruma_FIR_CfgHoraMinReducaoZ Lib "Daruma32.dll" (ByVal Hora_Min_para_ReducaoZ As String) As Integer
Public Declare Function Daruma_FIR_CfgLimiarNearEnd Lib "Daruma32.dll" (ByVal NumeroLinhas As String) As Integer
Public Declare Function Daruma_FIR_CfgHorarioVerao Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_CfgLegProdutos Lib "Daruma32.dll" (ByVal Flag As String) As Integer

'Cupom
Public Declare Function Daruma_FIR_AbreCupom Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String) As Integer
Public Declare Function Daruma_FIR_AbreCupomRestaurante Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String) As Integer
Public Declare Function Daruma_FIR_AbreCupomBalcao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_VendeItem Lib "Daruma32.dll" (ByVal Mesa As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal Valor_Unitario As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_VendeItemBalcao Lib "Daruma32.dll" (ByVal Codigo As String, ByVal Quantidade As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_RegistrarVenda Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String, ByVal Codigo As String, ByVal Quantidade As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_RegistroVendaSerial Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String) As Integer
Public Declare Function Daruma_FIR_FechaCupomRestauranteResumido Lib "Daruma32.dll" (ByVal Descricao_da_Forma_de_Pagamento As String, ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_IniciaFechamentoCupom Lib "Daruma32.dll" (ByVal Acrescimo_ou_Desconto As String, ByVal Tipo_do_Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_IniciaFechamentoCupomComServico Lib "Daruma32.dll" (ByVal Acrescimo_ou_Desconto As String, ByVal Tipo_do_Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String, ByVal Indicador_da_Operacao As String, ByVal Taxa_de_Servico As String) As Integer
Public Declare Function Daruma_FIR_EfetuaFormaPagamento Lib "Daruma32.dll" (ByVal Descricao_da_Forma_Pagamento As String, ByVal Valor_da_Forma_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_EfetuaFormaPagamentoDescricaoForma Lib "Daruma32.dll" (ByVal Descricao_da_Forma_Pagamento As String, ByVal Valor_da_Forma_Pagamento As String, ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_IdentificaConsumidor Lib "Daruma32.dll" (ByVal Nome_do_Consumidor As String, ByVal Endereco As String, ByVal CPF_ou_CNPJ As String) As Integer
Public Declare Function Daruma_FIR_FechaCupomResumido Lib "Daruma32.dll" (ByVal Descricao_da_Forma_de_Pagamento As String, ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_TerminaFechamentoCupom Lib "Daruma32.dll" (ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_TerminaFechamentoCupomID Lib "Daruma32.dll" (ByVal Mensagem_Promocional As String, ByVal Nome_do_Cliente As String, ByVal Endereco_do_Cliente As String, ByVal Documento_do_Cliente As String) As Integer
Public Declare Function Daruma_FIR_FechaCupomRestaurante Lib "Daruma32.dll" (ByVal Forma_de_Pagamento As String, ByVal Acrescimo_ou_Desconto As String, ByVal Tipo_Acrescimo_ou_Desconto As String, ByVal Valor_Acrescimo_ou_Desconto As String, ByVal Valor_Pago As String, ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_CancelaItem Lib "Daruma32.dll" (ByVal Mesa As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal Valor_Unitario As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_CancelaItemBalcao Lib "Daruma32.dll" (ByVal Codigo_do_Item As String) As Integer
Public Declare Function Daruma_FIR_CancelaCupom Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_CancelarVenda Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String, ByVal Codigo As String, ByVal Quantidade As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer

Public Declare Function Daruma_FIR_TranferirVenda Lib "Daruma32.dll" (ByVal Numero_da_Mesa_Origem As String, ByVal Numero_da_Mesa_Destino As String, ByVal Codigo As String, ByVal Quantidade As String, ByVal Acrescimo_ou_Desconto As String, ByVal Valor_do_Acrescimo_ou_Desconto As String) As Integer
Public Declare Function Daruma_FIR_TransfereItem Lib "Daruma32.dll" (ByVal Mesa_Origem As String, ByVal Mesa_Destino As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal Valor_Unitario As String, ByVal Acrescimo_ou_Desconto As String, ByVal Desconto_Percentual As String) As Integer
Public Declare Function Daruma_FIR_TranferirMesa Lib "Daruma32.dll" (ByVal Mesa_Origem As String, ByVal Mesa_Destino As String) As Integer
Public Declare Function Daruma_FIR_ConferenciaMesa Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String, ByVal Mensagem_Promocional As String) As Integer
Public Declare Function Daruma_FIR_LimparMesa Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String) As Integer
Public Declare Function Daruma_FIR_ImprimePrimeiroCupomDividido Lib "Daruma32.dll" (ByVal Numero_da_Mesa As String, ByVal Quantidade_Divisoria As String) As Integer
Public Declare Function Daruma_FIR_RestanteCupomDividido Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_AumentaDescricaoItem Lib "Daruma32.dll" (ByVal Descricao_Extendida As String) As Integer
Public Declare Function Daruma_FIR_UsaUnidadeMedida Lib "Daruma32.dll" (ByVal Unidade_Medida As String) As Integer
Public Declare Function Daruma_FIR_EmitirCupomAdicional Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_EstornoFormasPagamento Lib "Daruma32.dll" (ByVal Forma_de_Origem As String, ByVal Nova_Forma As String, ByVal Valor_Total_Pago As String) As Integer

Public Declare Function Daruma_FIR_AbreComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal Forma_de_Pagamento As String, ByVal Valor_Pago As String, ByVal Numero_do_Cupom As String) As Integer
Public Declare Function Daruma_FIR_UsaComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_FechaComprovanteNaoFiscalVinculado Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RelatorioGerencial Lib "Daruma32.dll" (ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_AbreRelatorioGerencial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_EnviarTextoCNF Lib "Daruma32.dll" (ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_FechaRelatorioGerencial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal Indice_do_Totalizador As String, ByVal Valor_do_Recebimento As String, ByVal Forma_de_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_AbreRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal Indice_do_Totalizador As String, ByVal Acrescimo_ou_Desconto As String, ByVal Tipo_Acrescimo_ou_Desconto As String, ByVal Valor_Acrescimo_ou_Desconto As String, ByVal Valor_do_Recebimento As String, ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_EfetuaFormaPagamentoNaoFiscal Lib "Daruma32.dll" (ByVal Forma_de_Pagamento As String, ByVal Valor_da_Forma_Pagamento As String, ByVal Texto_Livre As String) As Integer
Public Declare Function Daruma_FIR_Sangria Lib "Daruma32.dll" (ByVal Valor_da_Sangria As String) As Integer
Public Declare Function Daruma_FIR_Suprimento Lib "Daruma32.dll" (ByVal Valor_do_Suprimento As String, ByVal Forma_de_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_FundoCaixa Lib "Daruma32.dll" (ByVal Valor_do_Fundo_Caixa As String, ByVal Forma_de_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_LeituraX Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ReducaoZ Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FIR_ReducaoZAjustaDataHora Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FIR_RelatorioMesasAbertas Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RelatorioMesasAbertasSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaFiscalData Lib "Daruma32.dll" (ByVal Data_Inicial As String, ByVal Data_Final As String) As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaFiscalReducao Lib "Daruma32.dll" (ByVal Reducao_Inicial As String, ByVal Reducao_Final As String) As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaFiscalSerialData Lib "Daruma32.dll" (ByVal Data_Inicial As String, ByVal Data_Final As String) As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaFiscalSerialReducao Lib "Daruma32.dll" (ByVal Reducao_Inicial As String, ByVal Reducao_Final As String) As Integer
Public Declare Function Daruma_FIR_LeituraMemoriaTrabalho Lib "Daruma32.dll" () As Integer

Public Declare Function Daruma_FIR_StatusCupomFiscal Lib "Daruma32.dll" (ByVal StatusCupomFiscal As String) As Integer
Public Declare Function Daruma_FIR_StatusRelatorioGerencial Lib "Daruma32.dll" (ByVal StatusRelGerencial As String) As Integer
Public Declare Function Daruma_FIR_StatusComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal StatusCNFV As String) As Integer
Public Declare Function Daruma_FIR_StatusComprovanteNaoFiscalNaoVinculado Lib "Daruma32.dll" (ByVal StatusCNFNV As String) As Integer
Public Declare Function Daruma_FIR_VerificaImpressoraLigada Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_VerificaTotalizadoresParciais Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FIR_VerificaModoOperacao Lib "Daruma32.dll" (ByVal Modo As String) As Integer
Public Declare Function Daruma_FIR_VerificaTotalizadoresNaoFiscais Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FIR_VerificaTotalizadoresNaoFiscaisEx Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FIR_VerificaTruncamento Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_VerificaAliquotasIss Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_VerificaIndiceAliquotasIss Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_VerificaRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal Recebimentos As String) As Integer
Public Declare Function Daruma_FIR_VerificaTipoImpressora Lib "Daruma32.dll" (ByRef TipoImpressora As Integer) As Integer
Public Declare Function Daruma_FIR_VerificaStatusCheque Lib "Daruma32.dll" (ByVal StatusCheque As Integer) As Integer
Public Declare Function Daruma_FIR_VerificaModeloECF Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_VerificaDescricaoFormasPagamento Lib "Daruma32.dll" (ByVal Descricao As String) As Integer
Public Declare Function Daruma_FIR_VerificaXPendente Lib "Daruma32.dll" (ByVal XPendente As String) As Integer
Public Declare Function Daruma_FIR_VerificaZPendente Lib "Daruma32.dll" (ByVal ZPendente As String) As Integer
Public Declare Function Daruma_FIR_VerificaDiaAberto Lib "Daruma32.dll" (ByVal DiaAberto As String) As Integer
Public Declare Function Daruma_FIR_VerificaHorarioVerao Lib "Daruma32.dll" (ByVal HoraioVerao As String) As Integer
Public Declare Function Daruma_FIR_VerificaFormasPagamento Lib "Daruma32.dll" (ByVal Formas As String) As Integer
Public Declare Function Daruma_FIR_VerificaFormasPagamentoEx Lib "Daruma32.dll" (ByVal FormasEx As String) As Integer
Public Declare Function Daruma_FIR_VerificaEpromConectada Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FIR_VerificaEstadoImpressora Lib "Daruma32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer

Public Declare Function Daruma_FIR_ClicheProprietario Lib "Daruma32.dll" (ByVal Cliche As String) As Integer
Public Declare Function Daruma_FIR_ClicheProprietarioEx Lib "Daruma32.dll" (ByVal ClicheEx As String) As Integer
Public Declare Function Daruma_FIR_NumeroCaixa Lib "Daruma32.dll" (ByVal NumeroCaixa As String) As Integer
Public Declare Function Daruma_FIR_NumeroLoja Lib "Daruma32.dll" (ByVal NumeroLoja As String) As Integer
Public Declare Function Daruma_FIR_NumeroSerie Lib "Daruma32.dll" (ByVal NumeroSerie As String) As Integer
Public Declare Function Daruma_FIR_VersaoFirmware Lib "Daruma32.dll" (ByVal VersaoFirmware As String) As Integer
Public Declare Function Daruma_FIR_CGC_IE Lib "Daruma32.dll" (ByVal CGC As String, ByVal IE As String) As Integer
Public Declare Function Daruma_FIR_LerAliquotasComIndice Lib "Daruma32.dll" (ByVal AliquotasComIndice As String) As Integer
Public Declare Function Daruma_FIR_NumeroCupom Lib "Daruma32.dll" (ByVal NumeroCupom As String) As Integer
Public Declare Function Daruma_FIR_COO Lib "Daruma32.dll" (ByVal Inicial As String, ByVal Final As String) As Integer
Public Declare Function Daruma_FIR_MinutosLigada Lib "Daruma32.dll" (ByVal Minutos As String) As Integer
Public Declare Function Daruma_FIR_NumeroSubstituicoesProprietario Lib "Daruma32.dll" (ByVal NumeroSubstituicoes As String) As Integer
Public Declare Function Daruma_FIR_NumeroIntervencoes Lib "Daruma32.dll" (ByVal NumeroIntervencoes As String) As Integer
Public Declare Function Daruma_FIR_NumeroReducoes Lib "Daruma32.dll" (ByVal NumeroReducoes As String) As Integer
Public Declare Function Daruma_FIR_NumeroCuponsCancelados Lib "Daruma32.dll" (ByVal NumeroCancelamentos As String) As Integer
Public Declare Function Daruma_FIR_NumeroOperacoesNaoFiscais Lib "Daruma32.dll" (ByVal NumeroOperacoes As String) As Integer
Public Declare Function Daruma_FIR_DataHoraImpressora Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FIR_DataHoraReducao Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FIR_DataMovimento Lib "Daruma32.dll" (ByVal Data As String) As Integer
Public Declare Function Daruma_FIR_ContadoresTotalizadoresNaoFiscais Lib "Daruma32.dll" (ByVal Contadores As String) As Integer

Public Declare Function Daruma_FIR_VendaBruta Lib "Daruma32.dll" (ByVal VendaBruta As String) As Integer
Public Declare Function Daruma_FIR_GrandeTotal Lib "Daruma32.dll" (ByVal GrandeTotal As String) As Integer
Public Declare Function Daruma_FIR_Descontos Lib "Daruma32.dll" (ByVal ValorDescontos As String) As Integer
Public Declare Function Daruma_FIR_Acrescimos Lib "Daruma32.dll" (ByVal ValorAcrescimos As String) As Integer
Public Declare Function Daruma_FIR_Cancelamentos Lib "Daruma32.dll" (ByVal ValorCancelamentos As String) As Integer
Public Declare Function Daruma_FIR_DadosUltimaReducao Lib "Daruma32.dll" (ByVal DadosReducao As String) As Integer
Public Declare Function Daruma_FIR_SubTotal Lib "Daruma32.dll" (ByVal SubTotal As String) As Integer
Public Declare Function Daruma_FIR_RetornoAliquotas Lib "Daruma32.dll" (ByVal Aliquotas As String) As Integer
Public Declare Function Daruma_FIR_ValorPagoUltimoCupom Lib "Daruma32.dll" (ByVal ValorCupom As String) As Integer
Public Declare Function Daruma_FIR_ValorPagoUltimoCupomFormatado Lib "Daruma32.dll" (ByVal ValorCupom As String) As Integer
Public Declare Function Daruma_FIR_ValorFormaPagamento Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_FIR_ValorTotalizadorNaoFiscal Lib "Daruma32.dll" (ByVal Totalizador As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_FIR_UltimoItemVendido Lib "Daruma32.dll" (ByVal NumeroItem As String) As Integer
Public Declare Function Daruma_FIR_UltimoItemVendidoValor Lib "Daruma32.dll" (ByVal NumeroItem As String) As Integer
Public Declare Function Daruma_FIR_UltimaFormaPagamento Lib "Daruma32.dll" (ByVal Descricao_da_Forma As String, ByVal Valor_da_Forma As String) As Integer
Public Declare Function Daruma_FIR_TipoUltimoDocumento Lib "Daruma32.dll" (ByVal TipoUltimoDoc As String) As Integer

Public Declare Function Daruma_FIR_MapaResumo Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RelatorioTipo60Analitico Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RelatorioTipo60Mestre Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_FlagsFiscais Lib "Daruma32.dll" (ByRef Flag As Integer) As Integer
Public Declare Function Daruma_FIR_PalavraStatus Lib "Daruma32.dll" (ByVal PalavraStatus As String) As Integer
Public Declare Function Daruma_FIR_PalavraStatusBinario Lib "Daruma32.dll" (ByVal PalavraStatusBinario As String) As Integer
Public Declare Function Daruma_FIR_SimboloMoeda Lib "Daruma32.dll" (ByVal SimboloMoeda As String) As Integer
Public Declare Function Daruma_FIR_RetornoImpressora Lib "Daruma32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer
Public Declare Function Daruma_FIR_RetornaErroExtendido Lib "Daruma32.dll" (ByVal ErroExtendido As String) As Integer
Public Declare Function Daruma_FIR_RetornaAcrescimoNF Lib "Daruma32.dll" (ByVal AcrescimoNF As String) As Integer
Public Declare Function Daruma_FIR_RetornaCFCancelados Lib "Daruma32.dll" (ByVal CFCancelados As String) As Integer
Public Declare Function Daruma_FIR_RetornaCNFCancelados Lib "Daruma32.dll" (ByVal CNFCancelados As String) As Integer
Public Declare Function Daruma_FIR_RetornaCLX Lib "Daruma32.dll" (ByVal CLX As String) As Integer
Public Declare Function Daruma_FIR_RetornaCNFNV Lib "Daruma32.dll" (ByVal CNFNV As String) As Integer
Public Declare Function Daruma_FIR_RetornaCNFV Lib "Daruma32.dll" (ByVal CNFV As String) As Integer
Public Declare Function Daruma_FIR_RetornaCRO Lib "Daruma32.dll" (ByVal CRO As String) As Integer
Public Declare Function Daruma_FIR_RetornaCRZ Lib "Daruma32.dll" (ByVal CRZ As String) As Integer
Public Declare Function Daruma_FIR_RetornaCRZRestante Lib "Daruma32.dll" (ByVal CRZRestante As String) As Integer
Public Declare Function Daruma_FIR_RetornaCancelamentoNF Lib "Daruma32.dll" (ByVal CancelamentoNF As String) As Integer
Public Declare Function Daruma_FIR_RetornaDescontoNF Lib "Daruma32.dll" (ByVal DescontoNF As String) As Integer
Public Declare Function Daruma_FIR_RetornaGNF Lib "Daruma32.dll" (ByVal GNF As String) As Integer
Public Declare Function Daruma_FIR_RetornaTempoImprimindo Lib "Daruma32.dll" (ByVal TempoImprimindo As String) As Integer
Public Declare Function Daruma_FIR_RetornaTempoLigado Lib "Daruma32.dll" (ByVal TempoLigado As String) As Integer
Public Declare Function Daruma_FIR_RetornaTotalPagamentos Lib "Daruma32.dll" (ByVal TotalPagamentos As String) As Integer
Public Declare Function Daruma_FIR_RetornaTroco Lib "Daruma32.dll" (ByVal Troco As String) As Integer
Public Declare Function Daruma_FIR_RetornaZeros Lib "Daruma32.dll" (ByVal Zeros As String) As Integer
Public Declare Function Daruma_FIR_RetornaValorComprovanteNaoFiscal Lib "Daruma32.dll" (ByVal Indice_CNF As String, ByVal Informacao As String) As Integer
Public Declare Function Daruma_FIR_RetornaIndiceComprovanteNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoRegistrCNF As String, ByVal RefIndice As String) As Integer
Public Declare Function Daruma_FIR_RetornaRegistradoresNaoFiscais Lib "Daruma32.dll" (ByVal RegistrNaoFiscais As String) As Integer
Public Declare Function Daruma_FIR_RetornaRegistradoresFiscais Lib "Daruma32.dll" (ByVal RegistrFiscais As String) As Integer

Public Declare Function Daruma_FIR_VerificaDocAutenticacao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_Autenticacao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_AutenticacaoStr Lib "Daruma32.dll" (ByVal Autenticacao_Str As String) As Integer
Public Declare Function Daruma_FIR_VerificaEstadoGaveta Lib "Daruma32.dll" (ByRef Estado_Gaveta As Integer) As Integer
Public Declare Function Daruma_FIR_VerificaEstadoGavetaStr Lib "Daruma32.dll" (ByVal Estado_Gaveta As String) As Integer
Public Declare Function Daruma_FIR_AcionaGaveta Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_AbrePortaSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_FechaPortaSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_AberturaDoDia Lib "Daruma32.dll" (ByVal Valor_do_Suprimento As String, ByVal Forma_de_Pagamento As String) As Integer
Public Declare Function Daruma_FIR_FechamentoDoDia Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ImprimeConfiguracoesImpressora Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RegistraNumeroSerie Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_VerificaNumeroSerie Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_RetornaSerialCriptografado Lib "Daruma32.dll" (ByVal SerialCriptografado As String, ByVal NumeroSerial As String) As Integer
Public Declare Function Daruma_FIR_ConfiguraHorarioVerao Lib "Daruma32.dll" (ByVal DataEntrada As String, ByVal DataSaida As String, ByVal Controle As String) As Integer
Public Declare Function Daruma_FIR_ZeraCardapio Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_ImprimeCardapio Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIR_CardapioSerial Lib "Daruma32.dll" () As Integer

''''''''''''''''''''''''''

#End Region

#Region "Declaracoes de Metodos de Acesso ao ECF"

'**********************************************************************************************************************'
' '
' MFD '
' '
'**********************************************************************************************************************'
'Função Codigo de barras da MFD

Public Declare Function Daruma_FIMFD_ImprimeCodigoBarras Lib "Daruma32.dll" (ByVal Tipo As String, ByVal Codigo As String, ByVal Largura As String, ByVal Altura As String, ByVal Posicao As String) As Integer
Public Declare Function Daruma_FIMFD_DownloadDaMFD Lib "Daruma32.dll" (ByVal CoInicial As String, ByVal CoFinal As String) As Integer
Public Declare Function Daruma_FIMFD_CasasDecimaisProgramada Lib "Daruma32.dll" (ByVal Quantidade As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_FIMFD_IndicePrimeiroVinculado Lib "Daruma32.dll" (ByVal Indice As String) As Integer
Public Declare Function Daruma_FIMFD_RetornaInformacao Lib "Daruma32.dll" (ByVal Indice As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_FIMFD_TerminaFechamentoCupomCodigoBarras Lib "Daruma32.dll" (ByVal Mensagem As String, ByVal Tipo As String, ByVal Codigo As String, ByVal Largura As String, ByVal Altura As String, ByVal Posicao As String) As Integer
Public Declare Function Daruma_FIMFD_SinalSonoro Lib "Daruma32.dll" (ByVal NumeroBeeps As String) As Integer
Public Declare Function Daruma_FIMFD_StatusCupomFiscal Lib "Daruma32.dll" (ByVal StsCF_MFD As String) As Integer
Public Declare Function Daruma_FIMFD_ProgramaRelatoriosGerenciais Lib "Daruma32.dll" (ByVal NomeRelatorio As String) As Integer
Public Declare Function Daruma_FIMFD_VerificaRelatoriosGerenciais Lib "Daruma32.dll" (ByVal Relatorios As String) As Integer
Public Declare Function Daruma_FIMFD_AbreRelatorioGerencial Lib "Daruma32.dll" (ByVal NomeRelatorio As String) As Integer
Public Declare Function Daruma_FIMFD_EmitirCupomAdicional Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIMFD_AcionarGuilhotina Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FIMFD_EqualizarVelocidade Lib "Daruma32.dll" (ByVal EqualizaVelocidade As String) As Integer
Public Declare Function Daruma_FIMFD_AbreRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal CPF As String, ByVal Nome As String, ByVal Endereco As String) As Integer
Public Declare Function Daruma_FIMFD_RecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoTotalizador As String, ByVal AcresDesc As String, ByVal TipoAcresDesc As String, ByVal ValorAcresDesc As String, ByVal ValorRecebimento As String) As Integer
Public Declare Function Daruma_FIMFD_IniciaFechamentoNaoFiscal Lib "Daruma32.dll" (ByVal AcresDesc As String, ByVal TipoAcresDesc As String, ByVal ValorAcresDesc As String) As Integer
Public Declare Function Daruma_FIMFD_EfetuaFormaPamentoNaoFiscal Lib "Daruma32.dll" (ByVal FormaPgto As String, ByVal Valor As String, ByVal Observacao As String) As Integer
Public Declare Function Daruma_FIMFD_TerminaFechamentoNaoFiscal Lib "Daruma32.dll" (ByVal MsgPromo As String) As Integer
Public Declare Function Daruma_FIMFD_ProgramarGuilhotina Lib "Daruma32.dll" (ByVal Separacao_entre_Documentos As String, ByVal Linhas_para_Acionamento_Guilhotina As String, ByVal Status_da_Guilhotina As String, ByVal Impressao_Antecipada_Cliche As String) As Integer

'**********************************************************************************************************************'
' '
' FS345 '
' '
'**********************************************************************************************************************'

'Metodos de Verificacao

Public Declare Function Daruma_FI_ResetaImpressora Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_LeituraXSerial Lib "Daruma32.dll" () As Integer

'Metodos Cupom
Public Declare Function Daruma_FI_AbreCupom Lib "Daruma32.dll" (ByVal CPF_ou_CNPJ As String) As Integer
Public Declare Function Daruma_FI_VendeItem Lib "Daruma32.dll" (ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal TipoQuantidade As String, ByVal Quantidade As String, ByVal CasasDecimais As Integer, ByVal ValorUnitario As String, ByVal TipoDesconto As String, ByVal Desconto As String) As Integer
Public Declare Function Daruma_FI_VendeItemDepartamento Lib "Daruma32.dll" (ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal ValorUnitario As String, ByVal Quantidade As String, ByVal Acrescimo As String, ByVal Desconto As String, ByVal IndiceDepartamento As String, ByVal UnidadeMedida As String) As Integer
Public Declare Function Daruma_FI_VendeItemTresDecimais Lib "Daruma32.dll" (ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal ValorUnitario As String, ByVal Desconto_ou_Acrescimo As String, ByVal Percentual_Desconto_ou_Acrescimo As String) As Integer
Public Declare Function Daruma_FI_FechaCupomResumido Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal Mensagem As String) As Integer
Public Declare Function Daruma_FI_IniciaFechamentoCupom Lib "Daruma32.dll" (ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String) As Integer
Public Declare Function Daruma_FI_EfetuaFormaPagamento Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String) As Integer
Public Declare Function Daruma_FI_EfetuaFormaPagamentoDescricaoForma Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String, ByVal TextoLivre As String) As Integer
Public Declare Function Daruma_FI_IdentificaConsumidor Lib "Daruma32.dll" (ByVal NomeConsumidor As String, ByVal Endereco As String, ByVal CPF_ou_CNPJ As String) As Integer
Public Declare Function Daruma_FI_TerminaFechamentoCupom Lib "Daruma32.dll" (ByVal Mensagem As String) As Integer
Public Declare Function Daruma_FI_FechaCupom Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrecimoDesconto As String, ByVal ValorPago As String, ByVal Mensagem As String) As Integer
Public Declare Function Daruma_FI_CancelaItemAnterior Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_CancelaItemGenerico Lib "Daruma32.dll" (ByVal NumeroItem As String) As Integer
Public Declare Function Daruma_FI_CancelaCupom Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_AumentaDescricaoItem Lib "Daruma32.dll" (ByVal Descricao As String) As Integer
Public Declare Function Daruma_FI_UsaUnidadeMedida Lib "Daruma32.dll" (ByVal UnidadeMedida As String) As Integer
Public Declare Function Daruma_FI_EmitirCupomAdicional Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_EstornoFormasPagamento Lib "Daruma32.dll" (ByVal FormaOrigem As String, ByVal FormaDestino As String, ByVal Valor As String) As Integer

'Metodos para Recebimentos e Relatorios
Public Declare Function Daruma_FI_AbreComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal Valor As String, ByVal NumeroCupom As String) As Integer
Public Declare Function Daruma_FI_UsaComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal Texto As String) As Integer
Public Declare Function Daruma_FI_FechaComprovanteNaoFiscalVinculado Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RelatorioGerencial Lib "Daruma32.dll" (ByVal Texto As String) As Integer
Public Declare Function Daruma_FI_AbreRelatorioGerencial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_EnviarTextoCNF Lib "Daruma32.dll" (ByVal Texto As String) As Integer
Public Declare Function Daruma_FI_FechaRelatorioGerencial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoTotalizador As String, ByVal ValorRecebimento As String, ByVal FormaPagamento As String) As Integer
Public Declare Function Daruma_FI_AbreRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoTotalizador As String, ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String, ByVal ValorRecebimento As String, ByVal TextoLivreto As String) As Integer
Public Declare Function Daruma_FI_EfetuaFormaPagamentoNaoFiscal Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String, ByVal ObsLivre As String) As Integer
Public Declare Function Daruma_FI_Sangria Lib "Daruma32.dll" (ByVal Valor As String) As Integer
Public Declare Function Daruma_FI_Suprimento Lib "Daruma32.dll" (ByVal Valor As String, ByVal FormaPagamento As String) As Integer
Public Declare Function Daruma_FI_FundoCaixa Lib "Daruma32.dll" (ByVal ValorPagamento As String, ByVal FormaPagamento As String) As Integer
Public Declare Function Daruma_FI_LeituraX Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_ReducaoZ Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FI_ReducaoZAjustaDataHora Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FI_LeituraMemoriaFiscalData Lib "Daruma32.dll" (ByVal DataInicial As String, ByVal DataFinal As String) As Integer
Public Declare Function Daruma_FI_LeituraMemoriaFiscalReducao Lib "Daruma32.dll" (ByVal ReducaoInicial As String, ByVal ReducaoFinal As String) As Integer
Public Declare Function Daruma_FI_LeituraMemoriaFiscalSerialData Lib "Daruma32.dll" (ByVal DataInicial As String, ByVal DataFinal As String) As Integer
Public Declare Function Daruma_FI_LeituraMemoriaFiscalSerialReducao Lib "Daruma32.dll" (ByVal ReducaoInicial As String, ByVal ReducaoFinal As String) As Integer

'Metodos Modo Gaveta, Autentica e Outras
Public Declare Function Daruma_FI_VerificaDocAutenticacao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_Autenticacao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_AutenticacaoStr Lib "Daruma32.dll" (ByVal AtenticacaoStr As String) As Integer
Public Declare Function Daruma_FI_VerificaEstadoGaveta Lib "Daruma32.dll" (ByRef EstadoGaveta As Integer) As Integer
Public Declare Function Daruma_FI_VerificaEstadoGavetaStr Lib "Daruma32.dll" (ByVal EstadoGaveta As String) As Integer
Public Declare Function Daruma_FI_AcionaGaveta Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_AbrePortaSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_FechaPortaSerial Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_AberturaDoDia Lib "Daruma32.dll" (ByVal Valor As String, ByVal FormaPagamento As String) As Integer
Public Declare Function Daruma_FI_FechamentoDoDia Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_ImprimeConfiguracoesImpressora Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RegistraNumeroSerie Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_VerificaNumeroSerie Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RetornaSerialCriptografado Lib "Daruma32.dll" (ByVal SerialCriptografado As String, ByVal NumeroSerial As String) As Integer
Public Declare Function Daruma_FI_ConfiguraHorarioVerao Lib "Daruma32.dll" (ByVal DataEntrada As String, ByVal DataSaida As String, ByVal Controle As String) As Integer
Public Declare Function Daruma_FI_GeraCriptografia Lib "Daruma32.dll" (ByVal Str_Input As String, ByVal Str_Output As String) As Integer
'Metodos Prog e Config
Public Declare Function Daruma_FI_ProgramaAliquota Lib "Daruma32.dll" (ByVal Aliquota As String, ByVal ICMS_ou_ISS As Integer) As Integer
Public Declare Function Daruma_FI_NomeiaTotalizadorNaoSujeitoIcms Lib "Daruma32.dll" (ByVal Indice As Integer, ByVal Totalizador As String) As Integer
Public Declare Function Daruma_FI_ProgramaFormasPagamento Lib "Daruma32.dll" (ByVal DescricaoFormasPgto As String) As Integer
Public Declare Function Daruma_FI_ProgramaOperador Lib "Daruma32.dll" (ByVal NomeOperador As String) As Integer
Public Declare Function Daruma_FI_ProgramaArredondamento Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_ProgramaTruncamento Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_LinhasEntreCupons Lib "Daruma32.dll" (ByVal Linhas As Integer) As Integer
Public Declare Function Daruma_FI_EspacoEntreLinhas Lib "Daruma32.dll" (ByVal Dots As Integer) As Integer
Public Declare Function Daruma_FI_ProgramaHorarioVerao Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_EqualizaFormasPgto Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_ProgramaVinculados Lib "Daruma32.dll" (ByVal Descricao As String) As Integer
Public Declare Function Daruma_FI_ProgFormasPagtoSemVincular Lib "Daruma32.dll" (ByVal Descricao As String) As Integer

'Metodos de Configuracao do ECF
Public Declare Function Daruma_FI_CfgFechaAutomaticoCupom Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgRedZAutomatico Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgLeituraXAuto Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgImpEstGavVendas Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgCalcArredondamento Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgHorarioVerao Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgSensorAut Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgCupomAdicional Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgPermMensPromCNF Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgEspacamentoCupons Lib "Daruma32.dll" (ByVal DistanciaCupons As String) As Integer
Public Declare Function Daruma_FI_CfgHoraMinReducaoZ Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_CfgLimiarNearEnd Lib "Daruma32.dll" (ByVal NumeroLinhas As String) As Integer
Public Declare Function Daruma_FI_CfgLegProdutos Lib "Daruma32.dll" (ByVal Flag As String) As Integer

'Metodos para Configuracao do Registry
Public Declare Function Daruma_Registry_AplMensagem1 Lib "Daruma32.dll" (ByVal Str_AplMensagem_1 As String) As Integer
Public Declare Function Daruma_Registry_AplMensagem2 Lib "Daruma32.dll" (ByVal Str_AplMensagem_2 As String) As Integer
Public Declare Function Daruma_Registry_AlteraRegistry Lib "Daruma32.dll" (ByVal NomeChave As String, ByVal ValorChave As String) As Integer
Public Declare Function Daruma_Registry_Velocidade Lib "Daruma32.dll" (ByVal VelocidadeDaPortaSerial As String) As Integer
Public Declare Function Daruma_Registry_Porta Lib "Daruma32.dll" (ByVal NomePorta As String) As Integer
Public Declare Function Daruma_Registry_Path Lib "Daruma32.dll" (ByVal Path As String) As Integer
Public Declare Function Daruma_Registry_Status Lib "Daruma32.dll" (ByVal Status As String) As Integer
Public Declare Function Daruma_Registry_StatusFuncao Lib "Daruma32.dll" (ByVal StatusFuncao As String) As Integer
Public Declare Function Daruma_Registry_Retorno Lib "Daruma32.dll" (ByVal Retorno As String) As Integer
Public Declare Function Daruma_Registry_ControlePorta Lib "Daruma32.dll" (ByVal ControlePorta As String) As Integer
Public Declare Function Daruma_Registry_ModoGaveta Lib "Daruma32.dll" (ByVal ModoGaveta As String) As Integer
Public Declare Function Daruma_Registry_Log Lib "Daruma32.dll" (ByVal Log As String) As Integer
Public Declare Function Daruma_Registry_NomeLog Lib "Daruma32.dll" (ByVal NomeLog As String) As Integer
Public Declare Function Daruma_Registry_Separador Lib "Daruma32.dll" (ByVal Separador As String) As Integer
Public Declare Function Daruma_Registry_SeparaMsgPromo Lib "Daruma32.dll" (ByVal SeparaMsgPromo As String) As Integer
Public Declare Function Daruma_Registry_ZAutomatica Lib "Daruma32.dll" (ByVal ZAutomatica As String) As Integer
Public Declare Function Daruma_Registry_XAutomatica Lib "Daruma32.dll" (ByVal XAutomatica As String) As Integer
Public Declare Function Daruma_Registry_VendeItemUmaLinha Lib "Daruma32.dll" (ByVal VendeItem1Lin13Dig As String) As Integer
Public Declare Function Daruma_Registry_Default Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_Registry_RetornaValor Lib "Daruma32.dll" (ByVal Produto As String, ByVal Chave As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_Registry_TerminalServer Lib "Daruma32.dll" (ByVal TerminalServer As String) As Integer
Public Declare Function Daruma_Registry_ErroExtendidoOk Lib "Daruma32.dll" (ByVal ValorErro As String) As Integer
Public Declare Function Daruma_Registry_AbrirDiaFiscal Lib "Daruma32.dll" (ByVal AbrirDiaFiscal As String) As Integer
Public Declare Function Daruma_Registry_VendaAutomatica Lib "Daruma32.dll" (ByVal VendaAutomatica As String) As Integer
Public Declare Function Daruma_Registry_IgnorarPoucoPapel Lib "Daruma32.dll" (ByVal IgnorarPoucoPapel As String) As Integer
Public Declare Function Daruma_Registry_ImprimeRegistry Lib "Daruma32.dll" (ByVal Produto As String) As Integer
Public Declare Function Daruma_Registry_PCExpanionLogin Lib "Daruma32.dll" (ByVal Flag_Login As String) As Integer
Public Declare Function Daruma_Registry_TEF_NumeroLinhasImpressao Lib "Daruma32.dll" (ByVal NumeroLinhasImpressao As String) As Integer
Public Declare Function Daruma_Registry_MFD_ArredondaValor Lib "Daruma32.dll" (ByVal ArredondaValor As String) As Integer
Public Declare Function Daruma_Registry_MFDValorFinal Lib "Daruma32.dll" (ByVal ValorFinal As String) As Integer
Public Declare Function Daruma_Registry_MFD_ArredondaQuantidade Lib "Daruma32.dll" (ByVal ArredondaQuantidade As String) As Integer
Public Declare Function Daruma_Registry_MFD_ProgramarSinalSonoro Lib "Daruma32.dll" (ByVal NomeChave As String, ByVal Valor As String) As Integer
Public Declare Function Daruma_Registry_MFD_LeituraMFCompleta Lib "Daruma32.dll" (ByVal Valor As String) As Integer
Public Declare Function Daruma_Registry_NumeroSerieNaoFormatado Lib "Daruma32.dll" (ByVal Formatado As String) As Integer
Public Declare Function Daruma_Registry_CupomAdicionalDll Lib "Daruma32.dll" (ByVal AdicionalDll As String) As Integer
Public Declare Function Daruma_Registry_CupomAdicionalDllConfig Lib "Daruma32.dll" (ByVal ConfigAdicionalDll As String) As Integer
Public Declare Function Daruma_Registry_LogTamMaxMB Lib "Daruma32.dll" (ByVal LogTamMaxMB As String) As Integer
Public Declare Function Daruma_Registry_SintegraSeparador Lib "Daruma32.dll" (ByVal Separador As String) As Integer
Public Declare Function Daruma_Registry_SintegraPath Lib "Daruma32.dll" (ByVal Path As String) As Integer

'Metodos de Status
Public Declare Function Daruma_FI_StatusCupomFiscal Lib "Daruma32.dll" (ByVal StsCF As String) As Integer
Public Declare Function Daruma_FI_StatusRelatorioGerencial Lib "Daruma32.dll" (ByVal StsGerencial As String) As Integer
Public Declare Function Daruma_FI_StatusComprovanteNaoFiscalVinculado Lib "Daruma32.dll" (ByVal StsCNFV As String) As Integer
Public Declare Function Daruma_FI_StatusComprovanteNaoFiscalNaoVinculado Lib "Daruma32.dll" (ByVal StsCNFV As String) As Integer
Public Declare Function Daruma_FI_VerificaImpressoraLigada Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_VerificaTotalizadoresParciais Lib "Daruma32.dll" (ByVal Totalizadores_Parciais As String) As Integer
Public Declare Function Daruma_FI_VerificaModoOperacao Lib "Daruma32.dll" (ByVal Modo As String) As Integer
Public Declare Function Daruma_FI_VerificaTotalizadoresNaoFiscais Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FI_VerificaTotalizadoresNaoFiscaisEx Lib "Daruma32.dll" (ByVal Totalizadores As String) As Integer
Public Declare Function Daruma_FI_VerificaTruncamento Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_VerificaAliquotasIss Lib "Daruma32.dll" (ByVal AliquotasIss As String) As Integer
Public Declare Function Daruma_FI_VerificaRecebimentoNaoFiscal Lib "Daruma32.dll" (ByVal Recebimentos As String) As Integer
Public Declare Function Daruma_FI_VerificaTipoImpressora Lib "Daruma32.dll" (ByRef TipoImpressora As Integer) As Integer
Public Declare Function Daruma_FI_VerificaIndiceAliquotasIss Lib "Daruma32.dll" (ByVal AliquotaIss As String) As Integer
Public Declare Function Daruma_FI_VerificaModeloECF Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_VerificaDescricaoFormasPagamento Lib "Daruma32.dll" (ByVal Descricao As String) As Integer
Public Declare Function Daruma_FI_VerificaXPendente Lib "Daruma32.dll" (ByVal XPendente As String) As Integer
Public Declare Function Daruma_FI_VerificaZPendente Lib "Daruma32.dll" (ByVal ZPendente As String) As Integer
Public Declare Function Daruma_FI_VerificaDiaAberto Lib "Daruma32.dll" (ByVal DiaAberto As String) As Integer
Public Declare Function Daruma_FI_VerificaHorarioVerao Lib "Daruma32.dll" (ByVal HorarioVerao As String) As Integer
Public Declare Function Daruma_FI_VerificaFormasPagamento Lib "Daruma32.dll" (ByVal FormasPagto As String) As Integer
Public Declare Function Daruma_FI_VerificaFormasPagamentoEx Lib "Daruma32.dll" (ByVal FormasPagtoEx As String) As Integer
Public Declare Function Daruma_FI_VerificaEpromConectada Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_FI_VerificaEstadoImpressora Lib "Daruma32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer

'Metodos de Informacao do ECF e Contadores
Public Declare Function Daruma_FI_RetornarVersaoDLL Lib "Daruma32.dll" (ByRef Versao As String) As Integer
Public Declare Function Daruma_FI_ClicheProprietario Lib "Daruma32.dll" (ByVal Cliche As String) As Integer
Public Declare Function Daruma_FI_ClicheProprietarioEx Lib "Daruma32.dll" (ByVal ClicheProprietarioEx As String) As Integer
Public Declare Function Daruma_FI_NumeroCaixa Lib "Daruma32.dll" (ByVal NumeroCaixa As String) As Integer
Public Declare Function Daruma_FI_NumeroLoja Lib "Daruma32.dll" (ByVal NumeroLoja As String) As Integer
Public Declare Function Daruma_FI_NumeroSerie Lib "Daruma32.dll" (ByVal NumeroSerie As String) As Integer
Public Declare Function Daruma_FI_VersaoFirmware Lib "Daruma32.dll" (ByVal VersaoFirmware As String) As Integer
Public Declare Function Daruma_FI_CGC_IE Lib "Daruma32.dll" (ByVal CGC As String, ByVal IE As String) As Integer
Public Declare Function Daruma_FI_LerAliquotasComIndice Lib "Daruma32.dll" (ByVal AliquotasComIndice As String) As Integer
Public Declare Function Daruma_FI_NumeroCupom Lib "Daruma32.dll" (ByVal NumeroCupom As String) As Integer
Public Declare Function Daruma_FI_COO Lib "Daruma32.dll" (ByVal Coo_Inicial As String, ByVal COO_Final As String) As Integer
Public Declare Function Daruma_FI_MinutosImprimindo Lib "Daruma32.dll" (ByVal Minutos As String) As Integer
Public Declare Function Daruma_FI_MinutosLigada Lib "Daruma32.dll" (ByVal Minutos As String) As Integer
Public Declare Function Daruma_FI_NumeroSubstituicoesProprietario Lib "Daruma32.dll" (ByVal NumeroSubstituicoes As String) As Integer
Public Declare Function Daruma_FI_NumeroIntervencoes Lib "Daruma32.dll" (ByVal NumeroIntervencoes As String) As Integer
Public Declare Function Daruma_FI_NumeroReducoes Lib "Daruma32.dll" (ByVal NumeroReducoes As String) As Integer
Public Declare Function Daruma_FI_NumeroCuponsCancelados Lib "Daruma32.dll" (ByVal NumeroCancelamentos As String) As Integer
Public Declare Function Daruma_FI_NumeroOperacoesNaoFiscais Lib "Daruma32.dll" (ByVal NumeroOperacoes As String) As Integer
Public Declare Function Daruma_FI_DataHoraImpressora Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FI_DataHoraReducao Lib "Daruma32.dll" (ByVal Data As String, ByVal Hora As String) As Integer
Public Declare Function Daruma_FI_DataMovimento Lib "Daruma32.dll" (ByVal Data As String) As Integer
Public Declare Function Daruma_FI_ContadoresTotalizadoresNaoFiscais Lib "Daruma32.dll" (ByVal Contadores As String) As Integer

'Metodos Totalizadores Gerais
Public Declare Function Daruma_FI_VendaBruta Lib "Daruma32.dll" (ByVal VendaBruta As String) As Integer
Public Declare Function Daruma_FI_VendaBrutaAcumulada Lib "Daruma32.dll" (ByVal VendaBrutaAcumulada As String) As Integer
Public Declare Function Daruma_FI_GrandeTotal Lib "Daruma32.dll" (ByVal GrandeTotal As String) As Integer
Public Declare Function Daruma_FI_Descontos Lib "Daruma32.dll" (ByVal ValorDescontos As String) As Integer
Public Declare Function Daruma_FI_Acrescimos Lib "Daruma32.dll" (ByVal ValorAcrescimos As String) As Integer
Public Declare Function Daruma_FI_Cancelamentos Lib "Daruma32.dll" (ByVal ValorCancelamentos As String) As Integer
Public Declare Function Daruma_FI_DadosUltimaReducao Lib "Daruma32.dll" (ByVal DadosReducao As String) As Integer
Public Declare Function Daruma_FI_SubTotal Lib "Daruma32.dll" (ByVal SubTotal As String) As Integer
Public Declare Function Daruma_FI_Troco Lib "Daruma32.dll" (ByVal Troco As String) As Integer
Public Declare Function Daruma_FI_SaldoAPagar Lib "Daruma32.dll" (ByVal Saldo As String) As Integer
Public Declare Function Daruma_FI_RetornoAliquotas Lib "Daruma32.dll" (ByVal cAliquotas As String) As Integer
Public Declare Function Daruma_FI_ValorPagoUltimoCupom Lib "Daruma32.dll" (ByVal ValorCupom As String) As Integer
Public Declare Function Daruma_FI_ValorFormaPagamento Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorForma As String) As Integer
Public Declare Function Daruma_FI_ValorTotalizadorNaoFiscal Lib "Daruma32.dll" (ByVal Totalizador As String, ByVal ValorTotalizador As String) As Integer
Public Declare Function Daruma_FI_UltimoItemVendido Lib "Daruma32.dll" (ByVal NumeroItem As String) As Integer
Public Declare Function Daruma_FI_UltimaFormaPagamento Lib "Daruma32.dll" (ByVal FormaPagamento As String, ByVal ValorForma As String) As Integer
Public Declare Function Daruma_FI_TipoUltimoDocumento Lib "Daruma32.dll" (ByVal TipoUltimoDoc As String) As Integer

'Metodos Relatorios Fiscais e Relatorios
Public Declare Function Daruma_FI_MapaResumo Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RelatorioTipo60Analitico Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_RelatorioTipo60Mestre Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI_FlagsFiscais Lib "Daruma32.dll" (ByRef Flag As Integer) As Integer
Public Declare Function Daruma_FI_PalavraStatus Lib "Daruma32.dll" (ByVal PalavraStatus As String) As Integer
Public Declare Function Daruma_FI_PalavraStatusBinario Lib "Daruma32.dll" (ByVal PalavraStatusBinario As String) As Integer
Public Declare Function Daruma_FI_SimboloMoeda Lib "Daruma32.dll" (ByVal SimboloMoeda As String) As Integer
Public Declare Function Daruma_FI_RetornoImpressora Lib "Daruma32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer
Public Declare Function Daruma_FI_RetornaErroExtendido Lib "Daruma32.dll" (ByVal ErroExtendido As String) As Integer
Public Declare Function Daruma_FI_RetornaAcrescimoNF Lib "Daruma32.dll" (ByVal AcrescimoNF As String) As Integer
Public Declare Function Daruma_FI_RetornaCFCancelados Lib "Daruma32.dll" (ByVal CNCancelados As String) As Integer
Public Declare Function Daruma_FI_RetornaCNFCancelados Lib "Daruma32.dll" (ByVal CNFCancelados As String) As Integer
Public Declare Function Daruma_FI_RetornaCLX Lib "Daruma32.dll" (ByVal RetornaCLX As String) As Integer
Public Declare Function Daruma_FI_RetornaCNFNV Lib "Daruma32.dll" (ByVal RetornaCNFNV As String) As Integer
Public Declare Function Daruma_FI_RetornaCNFV Lib "Daruma32.dll" (ByVal RetornaCNFV As String) As Integer
Public Declare Function Daruma_FI_RetornaDescricaoCNFV Lib "Daruma32.dll" (ByVal RetornaCNFV As String) As Integer
Public Declare Function Daruma_FI_RetornaCRO Lib "Daruma32.dll" (ByVal RetornaCRO As String) As Integer
Public Declare Function Daruma_FI_RetornaCRZ Lib "Daruma32.dll" (ByVal RetornaCRZ As String) As Integer
Public Declare Function Daruma_FI_RetornaCRZRestante Lib "Daruma32.dll" (ByVal RetornaCRZRestante As String) As Integer
Public Declare Function Daruma_FI_RetornaCancelamentoNF Lib "Daruma32.dll" (ByVal CancelamentoNF As String) As Integer
Public Declare Function Daruma_FI_RetornaDescontoNF Lib "Daruma32.dll" (ByVal DescontoNF As String) As Integer
Public Declare Function Daruma_FI_RetornaGNF Lib "Daruma32.dll" (ByVal RetornaGNF As String) As Integer
Public Declare Function Daruma_FI_RetornaTempoImprimindo Lib "Daruma32.dll" (ByVal TempoImprimindo As String) As Integer
Public Declare Function Daruma_FI_RetornaTempoLigado Lib "Daruma32.dll" (ByVal TempoLigado As String) As Integer
Public Declare Function Daruma_FI_RetornaTotalPagamentos Lib "Daruma32.dll" (ByVal TotalPagamentos As String) As Integer
Public Declare Function Daruma_FI_RetornaTroco Lib "Daruma32.dll" (ByVal Troco As String) As Integer
Public Declare Function Daruma_FI_RetornaValorComprovanteNaoFiscal Lib "Daruma32.dll" (ByVal IndiceRegistrCNF As String, ByVal Ref_Valor As String) As Integer
Public Declare Function Daruma_FI_RetornaIndiceComprovanteNaoFiscal Lib "Daruma32.dll" (ByVal DescricaoRegistrCNF As String, ByVal Ref_Indice As String) As Integer
Public Declare Function Daruma_FI_RetornaRegistradoresNaoFiscais Lib "Daruma32.dll" (ByVal RegistrNaoFiscais As String) As Integer
Public Declare Function Daruma_FI_RetornaRegistradoresFiscais Lib "Daruma32.dll" (ByVal RegistradoresFiscais As String) As Integer

'Metodos TEF
Public Declare Function Daruma_TEF_EsperarArquivo Lib "Daruma32.dll" (ByVal PathArquivo As String, ByVal Tempo As String, ByVal Travar As String) As Integer
Public Declare Function Daruma_TEF_ImprimirResposta Lib "Daruma32.dll" (ByVal PathArquivo As String, ByVal Forma As String, ByVal Travar As String) As Integer
Public Declare Function Daruma_TEF_ImprimirRespostaCartao Lib "Daruma32.dll" (ByVal PathArquivo As String, ByVal Forma As String, ByVal Travar As String, ByVal ValorPagamento As String) As Integer
Public Declare Function Daruma_TEF_FechaRelatorio Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TEF_SetFocus Lib "Daruma32.dll" (ByVal TituloJanela As String) As Integer
Public Declare Function Daruma_TEF_TravarTeclado Lib "Daruma32.dll" (ByVal Travar As String) As Integer

'Metodos FIB
Public Declare Function Daruma_FIB_AbreBilhetePassagem Lib "Daruma32.dll" (ByVal Origem As String, ByVal Destino As String, ByVal UF As String, ByVal Percurso As String, ByVal Prestadora As String, ByVal Plataforma As String, ByVal Poltrona As String, ByVal Modalidade As String, ByVal Categoria As String, ByVal DataEmbarque As String, ByVal PassRg As String, ByVal PassNome As String, ByVal PassEndereco As String) As Integer
Public Declare Function Daruma_FIB_VendeItem Lib "Daruma32.dll" (ByVal Descricao As String, ByVal St As String, ByVal Valor As String, ByVal DescontoAcrescimo As String, ByVal TipoDesconto As String, ByVal ValorDesconto As String) As Integer

#End Region

#Region "Declaracoes de Metodos da Impressora Não Fiscal (DS300)"
'Metodos da Impressora Dual Não Fiscal (DS300/348)

'********************************************************************************************************************* '
' '
' DUAL '
' '
'********************************************************************************************************************* '

'Metodos para Registry
Public Declare Function Daruma_Registry_DUAL_Enter Lib "Daruma32.dll" (ByVal Enter As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Espera Lib "Daruma32.dll" (ByVal Espera As String) As Integer
Public Declare Function Daruma_Registry_DUAL_ModoEscrita Lib "Daruma32.dll" (ByVal ModoEscrita As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Porta Lib "Daruma32.dll" (ByVal Porta As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Tabulacao Lib "Daruma32.dll" (ByVal Tabulacao As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Termica Lib "Daruma32.dll" (ByVal Flag As String) As Integer
Public Declare Function Daruma_Registry_DUAL_Velocidade Lib "Daruma32.dll" (ByVal Velocidade As String) As Integer

'Metodos para Status
Public Declare Function Daruma_DUAL_VerificaStatus Lib "Daruma32.dll" () As Integer 'Verificar Status
Public Declare Function Daruma_DUAL_VerificaDocumento Lib "Daruma32.dll" () As Integer 'Verifica Documento
Public Declare Function Daruma_DUAL_StatusGaveta Lib "Daruma32.dll" () As Integer 'Verificar Status Gaveta

'Metodos para Autenticacao a Impressao
Public Declare Function Daruma_DUAL_ImprimirArquivo Lib "Daruma32.dll" (ByVal Str_Path As String) As Integer 'Imprimir arquivo
Public Declare Function Daruma_DUAL_ImprimirTexto Lib "Daruma32.dll" (ByVal TextoLivre As String, ByVal TamanhoTexto As Integer) As Integer 'Imprimir Texto Livre
Public Declare Function Daruma_DUAL_Autenticar Lib "Daruma32.dll" (ByVal NumVias As String, ByVal Texto As String, ByVal TempoAguardar As String) As Integer 'Autenticar
Public Declare Function Daruma_DUAL_AcionaGaveta Lib "Daruma32.dll" () As Integer 'AcionaGaveta
Public Declare Function Daruma_DUAL_EnviarBMP Lib "Daruma32.dll" (ByVal Path As String) As Integer 'Envia o logotipo
Public Declare Function Daruma_DUAL_VerificarGuilhotina Lib "Daruma32.dll" () As Integer 'Devolve no inteiro retornado se a Guilhotina esta Habilitada
Public Declare Function Daruma_DUAL_ConfigurarGuilhotina Lib "Daruma32.dll" (ByVal Int_Flag As Integer, ByVal Int_LinhasAcionamento As Integer) As Integer 'Configura a Guilhotina na DUAL nao Fiscal

#End Region

#Region "Declaracoes de Metodos de Acesso ao TA1000"

'********************************************************************************************************************* '
' '
' TA1000 '
' '
'********************************************************************************************************************* '

'Metodos para Registry
Public Declare Function Daruma_Registry_TA1000_Porta Lib "Daruma32.dll" (ByVal Porta As String) As Integer
Public Declare Function Daruma_Registry_TA1000_PathProdutos Lib "Daruma32.dll" (ByVal PathProdutos As String) As Integer
Public Declare Function Daruma_Registry_TA1000_PathUsuarios Lib "Daruma32.dll" (ByVal PathUsuarios As String) As Integer
Public Declare Function Daruma_Registry_TA1000_NumeroItensEnviados Lib "Daruma32.dll" (ByVal NumeroItensEnviados As String) As Integer
Public Declare Function Daruma_Registry_TA1000_PathRelatorios Lib "Daruma32.dll" (ByVal PathRelatorios As String) As Integer

Public Declare Function Daruma_TA1000_CadastrarProdutos Lib "Daruma32.dll" (ByVal Descricao As String, ByVal Codigo As String, ByVal DecimaisPreco As String, ByVal DecimaisQuantidade As String, ByVal Preco As String, ByVal DescontoAcrescimo As String, ByVal ValorDescontoAcrescimo As String, ByVal UnidadeMedida As String, ByVal Aliquota As String, ByVal ProximoProduto As String, ByVal ProdutoAnterior As String, ByVal Estoque As String) As Integer
Public Declare Function Daruma_TA1000_LerProdutos Lib "Daruma32.dll" (ByVal Indice As Integer, ByVal Descricao As String, ByVal Codigo As String, ByVal DecimaisPreco As String, ByVal DecimaisQuantidade As String, ByVal Preco As String, ByVal DescontoAcrescimo As String, ByVal ValorDescontoAcrescimo As String, ByVal UnidadeMedida As String, ByVal Aliquota As String, ByVal ProximoProduto As String, ByVal ProdutoAnterior As String, ByVal Estoque As String) As Integer
Public Declare Function Daruma_TA1000_ConsultarProdutos Lib "Daruma32.dll" (ByVal Descricao As String, ByVal Codigo As String, ByVal DecimaisPreco As String, ByVal DecimaisQuantidade As String, ByVal Preco As String, ByVal DescontoAcrescimo As String, ByVal ValorDescontoAcrescimo As String, ByVal UnidadeMedida As String, ByVal Aliquota As String, ByVal ProximoProduto As String, ByVal ProdutoAnterior As String, ByVal Estoque As String) As Integer
Public Declare Function Daruma_TA1000_AlterarProdutos Lib "Daruma32.dll" (ByVal Codigo_Consultar As String, ByVal Descricao As String, ByVal Codigo As String, ByVal DecimaisPreco As String, ByVal DecimaisQuantidade As String, ByVal Preco As String, ByVal DescontoAcrescimo As String, ByVal ValorDescontoAcrescimo As String, ByVal UnidadeMedida As String, ByVal Aliquota As String, ByVal ProximoProduto As String, ByVal ProdutoAnterior As String, ByVal Estoque As String) As Integer
Public Declare Function Daruma_TA1000_EliminarProdutos Lib "Daruma32.dll" (ByVal Codigo As String) As Integer
Public Declare Function Daruma_TA1000_EnviarBancoProdutos Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ReceberBancoProdutos Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ReceberProdutosVendidos Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ZerarProdutos Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ZerarProdutosVendidos Lib "Daruma32.dll" () As Integer

Public Declare Function Daruma_TA1000_EnviarBancoUsuarios Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ReceberBancoUsuarios Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_ZerarUsuarios Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_TA1000_CadastrarUsuarios Lib "Daruma32.dll" (ByVal Nome As String, ByVal CPF As String, ByVal CodigoConvenio As String, ByVal CodigoUsuario As String, ByVal UsuarioAnterior As String, ByVal ProximoUsuario As String) As Integer
Public Declare Function Daruma_TA1000_ConsultarUsuarios Lib "Daruma32.dll" (ByVal Codigo_Consultar As String, ByVal Nome As String, ByVal CPF As String, ByVal CodigoConvenio As String, ByVal CodigoUsuario As String, ByVal UsuarioAnterior As String, ByVal ProximoUsuario As String) As Integer
Public Declare Function Daruma_TA1000_AlterarUsuarios Lib "Daruma32.dll" (ByVal Codigo_Consultar As String, ByVal Nome As String, ByVal CPF As String, ByVal CodigoConvenio As String, ByVal CodigoUsuario As String, ByVal UsuarioAnterior As String, ByVal ProximoUsuario As String) As Integer
Public Declare Function Daruma_TA1000_EliminarUsuarios Lib "Daruma32.dll" (ByVal Codigo As String) As Integer
Public Declare Function Daruma_TA1000_LeStatusTransferencia Lib "Daruma32.dll" () As Integer

#End Region

#Region "Declaracoes de Metodos de Acesso FS2000"
'Metodos da Impressora FS2000

'**********************************************************************************************************************'
' '
' FS2000 '
' '
'**********************************************************************************************************************'

'Metodos exclusivos
Public Declare Function Daruma_Registry_FS2000_CupomAdicional Lib "Daruma32.dll" (ByVal CupomAdicional As String) As Integer
Public Declare Function Daruma_Registry_FS2000_TempoEsperaCheque Lib "Daruma32.dll" (ByVal TempodeEspera As String) As Integer
Public Declare Function Daruma_FI2000_DescontoSobreItemVendido Lib "Daruma32.dll" (ByVal NumeroItem As String, ByVal TipoDesconto As String, ByVal ValorDesconto As String) As Integer
Public Declare Function Daruma_FI2000_AcrescimosICMSISS Lib "Daruma32.dll" (ByVal AcrescICMS As String, ByVal AcrescISS As String) As Integer
Public Declare Function Daruma_FI2000_CancelamentosICMSISS Lib "Daruma32.dll" (ByVal CancelICMS As String, ByVal CancelISS As String) As Integer
Public Declare Function Daruma_FI2000_DescontosICMSISS Lib "Daruma32.dll" (ByVal DescICMS As String, ByVal DescISS As String) As Integer
Public Declare Function Daruma_FI2000_LeituraInformacaoUltimosCNF Lib "Daruma32.dll" (ByVal UltimosCNF As String) As Integer
Public Declare Function Daruma_FI2000_LeituraInformacaoUltimoDoc Lib "Daruma32.dll" (ByVal TipoUltimoDoc As String, ByVal ValorUltimoDoc As String) As Integer
Public Declare Function Daruma_FI2000_VerificaRelatorioGerencial Lib "Daruma32.dll" (ByVal Gerencial As String) As Integer
Public Declare Function Daruma_FI2000_CriaRelatorioGerencial Lib "Daruma32.dll" (ByVal NomeGerencial As String) As Integer
Public Declare Function Daruma_FI2000_AbreRelatorioGerencial Lib "Daruma32.dll" (ByVal Indice As String) As Integer
Public Declare Function Daruma_FI2000_CancelamentoCNFV Lib "Daruma32.dll" (ByVal COO_CNFV As String) As Integer
Public Declare Function Daruma_FI2000_SegundaViaCNFVinculado Lib "Daruma32.dll" () As Integer

'Metodos para cheques
Public Declare Function Daruma_FI2000_StatusCheque Lib "Daruma32.dll" (ByVal StatusCheque As String) As Integer
Public Declare Function Daruma_FI2000_ImprimirCheque Lib "Daruma32.dll" (ByVal Banco As String, ByVal Cidade As String, ByVal Data As String, ByVal Favorecido As String, ByVal Valor As String, ByVal PosicaoCheque As String) As Integer
Public Declare Function Daruma_FI2000_ImprimirVersoCheque Lib "Daruma32.dll" (ByVal VersoCheque As String) As Integer
Public Declare Function Daruma_FI2000_LiberarCheque Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI2000_LeituraCodigoMICR Lib "Daruma32.dll" (ByVal CodigoMICR As String) As Integer
Public Declare Function Daruma_FI2000_CancelarCheque Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI2000_LeituraTabelaCheque Lib "Daruma32.dll" (ByVal TabelaCheque As String) As Integer
Public Declare Function Daruma_FI2000_CarregarCheque Lib "Daruma32.dll" () As Integer
Public Declare Function Daruma_FI2000_CorrigirGeometriaCheque Lib "Daruma32.dll" (ByVal NumeroBanco As String, ByVal GeometriaCheque As String) As Integer
#End Region

#Region "Funções que tratam os Retornos da Impressora"
'Retornos da FISCAL
Public Sub Daruma_MostrarRetorno()
Dim Int_RetornoMetodo As Integer
Dim Int_RetornoExtendido As Integer
Dim Str_ErroExtendido As String

Int_Ack = 0
Int_St1 = 0
Int_St2 = 0
Int_RetornoMetodo = Daruma_FI_RetornoImpressora(Int_Ack, Int_St1, Int_St2)

Str_ErroExtendido = Space(4)
Int_RetornoExtendido = Daruma_FI_RetornaErroExtendido(Str_ErroExtendido)

MsgBox("Retorno do Metodo = " + CStr(Int_Retorno) + Chr(13) + Chr(10) _
+ "Ack = " + CStr(Int_Ack) + Chr(13) + Chr(10) _
+ "St1 = " + CStr(Int_St1) + Chr(13) + Chr(10) _
+ "St2 = " + CStr(Int_St2) + Chr(13) + Chr(10) _
+ "Erro Extendido = " + Str_ErroExtendido.ToString, , "Daruma Framework Retorno do Metodo")

End Sub
'Retornos da DUAL
Public Sub Retorno_DUAL()

If Int_Retorno = 1 Then
MsgBox("1(um) - Impressora OK!", vbInformation, "Daruma Framework")
End If

If Int_Retorno = -50 Then
MsgBox("-50 - Impressora OFF-LINE!", vbCritical, "Daruma Framework")
End If

If Int_Retorno = -51 Then
MsgBox("-51 - Impressora Sem Papel!", vbCritical, "Daruma Framework")
End If

If Int_Retorno = -27 Then
MsgBox("-27 - Erro Generico!", vbCritical, "Daruma Framework")
End If

If Int_Retorno = 0 Then
MsgBox("0 - Impressora Desligada!", vbCritical, "Daruma Framework")
End If

End Sub

'Retornos do TA1000
Public Sub Retorno_TA1000()

If Int_Retorno = 1 Then
MsgBox("1(um) - Metodo Executado com Sucesso!", vbInformation, "Daruma Framework")
Else
MsgBox(CStr(Int_Retorno) + " Erro Generico!", vbCritical, "Daruma Framework")
End If
End Sub

#End Region
End Module


Configurando a Daruma32.SO para trabalhar com LTSP

Daruma com LTSP
Linux Terminal Server Project
Top

Primeiramente queremos deixar claro, que a nossa intenção não é a dar suporte na preparação(instalação/configuração) do LTSP e sim entender um pouco melhor com que o nosso driver irá trabalhar nesta topologia.

DEFINIÇÃO

O LTSP é uma solução mais usada para a criação de terminais leves com o Linux. Ele utiliza uma combinação de DHCP, TFTP, NFS e XDMCP para permitir que as estações não apenas rodem aplicativox instalados no servidor. Não é preciso ter HD nem CD-ROM nas estações, apenas um disquete (ou CD) de boot ou ainda um chip de boot conectando à placa de rede.

BREVE HISTÓRICO

· Arquitetura necessária:

1. Um Servidor de aplicação dotado de recurso de HD e Mémoria Ram;
2. Uma ou mais estações de trabalho, enxutas sem HD, também chamadas de (diskless);

· Como funciona?

A placa de rede que será utilizada na estação de trabalho, deve possuir o PXEBoot na própria placa ou um disco de boot (Etherboot). Exemplo: se a sua placa de rede for uma realtek, então acesse o site: http://www.etherboot.org/, e baixe o disco de boot;
Observação: alguns modelos de placas mãe atuais, já posuem suporte ao PXEBoot, por isso verifique se a sua placa mãe pussui e se sim, habilite-o.

Ao ligar a estação de trabalho, a máquina cliente através do Protocolo DHCP, solicita ao servidor o endereço IP, uma vez com o Endereço IP, é hora de saber o local de onde está armazenado o kernell no Servidor para em seguida fazer down-load, com o TFTP.

Depois que o Kernel é carregado via TFTP, começa o boot "real" da estação. O TFTP é substituído então por um cliente NFS (um protocolo muito mais robusto), que é usado para montar a pasta "/opt/ltsp/i386" do servidor (em modo somente leitura) como diretório raiz. A estação pode então carregar o sistema do LTSP, que se encarrega de detectar o hardware da estação e abrir o X. Todos os arquivos de configuração e alterações gerados nesta fase são salvos num ramdisk.

Concluída esta etapa, agora já temos uma estação de trabalho que não possui HD, totalmente funcional, porém o SO esta rodando em Memória.

· E o nosso driver, como irá funcionar?

Requisitos:

1. LTSP - Funcional
2. libDaruma32.so e Observer2 linux instalados no LTSP.

Preparando o Servidor para trabalhar com a libDaruma32.so e o Observer2 linux

Abaixo veremos como irá ser feita a instalação, através do instalador desenvolvido especificamente para isso:

Observação1: Tanto o scritpt ltsp_daruma_install, como a liDaruma32.so e o Observer2, devem estar no mesmo diretório:

Observação2: Para executar o script digite: ./ltsp_daruma_install

O Próximo passo será informar o endereço de IP do Servidor. Lembrando que o IP do servidor em hipótese alguma poderá ser dinâmico.

Com o IP configuradado, é hora de informar a mácara de rede.

Com a máscara de rede configurada, é nessessário, editar o seguinte arquivo: # etc/exports, você deverá incluir a seguinte linha no seguinte path:
/var/opt/ltsp 192.168.1.0/255.255.255.0(rw,no_rrot_squash,sync).

Após ter editado a linha, você deverá incluir as seguintes linhas no arquivo lts.conf /opt/ltsp/i386/etc/lts.conf.

Observação!: concluída a instalação, re-inicie o serviço NFS

Pronto! Agora você já pode fazer um teste simples, porém eficiente para saber se "tudo" está do jeito que precisa estar para a utilização do nosso driver;

Na máquina cliente, abra um shell e execute o seguinte comando: set | grep DISPLAY, ele irá retornar o nome do máquina cliente conectada no servidor por exemplo.: ws199.ltsp

e a impressão está ocorrendo localmente.
Entre em um shell (prompt), vá para o diretório configurado para a Daruma.
[root@daruma fc5]# cd /var/opt/ltsp/Daruma_Regs/ws199.ltsp

Verifique se o arquivo Daruma.conf foi criado com sucesso. Se foi, entre no diretório observer.
[/var/opt/ltsp/Daruma_Regs/ws199.ltsp]# cd observer

No diretório observer envie uma LeituraX para testar a impressora:
[/var/opt/ltsp/Daruma_Regs/ws199.ltsp/observer]# echo "1101;" > Daruma.cmd
Para saber mais sobre o Observer2 acesse o seguinte link:O Quê é o Driver Daruma Observer?

Deve ser executado uma LeituraX na impressora. Para ler o retorno, verifique o arquivo Daruma.ret
[/var/opt/ltsp/Daruma_Regs/ws199.ltsp/observer]# cat Daruma.ret

Caso o comando tenha sido executado coretamente, o retorno será o seguinte: 001;006;000;000

Com isso a instalação do nosso driver estará concluída, retando apenas que o seu aplicativo efetua a escrita de arquivo de comandos, no diretório correto, como no caso acima.

Observação3: Note que o nome da máquina varia em cada cliente. Sendo assim é funcamental que o seu aplicativo, pegue a variável DISPLAY, cada vez que o seu aplicativo seja executado à partir das máquinas clientes. Exemplifimando melhor:

Cliente1: diretório de escrita deverá ser: /var/opt/ltsp/Daruma_Regs/ws001.ltsp/observer
Cliente2: diretório de escrita deverá ser: /var/opt/ltsp/Daruma_Regs/ws002.ltsp/observer
.
.
.
Cliente254: diretório de escrita deverá ser: /var/opt/ltsp/Daruma_Regs/ws254.ltsp/observer

Note que apenas o nome da máquina foi o que modou, mais nada.


Daruma_FIR_LeituraMemoriaFiscalReducao(Índice 3103)

Método: Daruma_FIR_LeituraMemoriaFiscalReducao [Índice 3103]
Top

· Definição do Método:
Emite a leitura da memória fiscal da impressora por intervalo de reduções.

· Parâmetros do Método: (2 Parâmetros)
1. Redução Inicial: String com o Número da redução inicial com até 4 dígitos.
2. Redução Final: String com o Número da redução final com até 4 dígitos.

· Este Método retornará um dos Valores Inteiros listados Abaixo: 0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método:Daruma_FIR_StatusCupomFiscal(Índice 3404).
Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Reducao_Inicial: String;
Str_Reducao_Final: String;
begin
Str_Reducao_Inicial := '01';
Str_Reducao_Final := '02';

Int_Retorno := Daruma_FIR_LeituraMemoriaFiscalReducao( pchar( Str_Reducao_Inicial ), pchar( Str_Reducao_Final ) );
end;


Daruma_FIR_LeituraMemoriaFiscalSerialData(Índice 3104)

Método: Daruma_FIR_LeituraMemoriaFiscalSerialData [Índice 3104]
Top

· Definição do Método:
Recebe os dados da memória fiscal por intervalo de datas pela serial e grava em arquivo texto.

· Parâmetros do Método: (2 Parâmetros)
1. Data Inicial: String com a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.
2. Data Final: String com a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

· Este Método retornará um dos Valores Inteiros listados Abaixo: 0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O cupom fiscal deve estar fechado. Você poderá verificar o status através do método:Daruma_FIR_StatusCupomFiscal(Índice 3404)..

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Data_Inicial: String;
Str_Data_Final: String;
begin
Str_Data_Inicial := '28/12/04';
Str_Data_Final := '28/12/04';

Int_Retorno := Daruma_FIR_LeituraMemoriaFiscalSerialData( pchar( Str_Data_Inicial ), pchar( Str_Data_Final ) );
WinExec('c:\windows\NOTEPAD.EXE C:\retorno.txt',SW_SHOWNORMAL);
end;


Daruma_FIR_EfetuaFormaPagamentoDescricaoForma(Índice 3009)

Método: Daruma_FIR_EfetuaFormaPagamentoDescricaoForma [Índice 3009]

Top

· Definição do Método:
Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s). Permite a impressão de comentários na(s) forma(s) de pagamento. Permitindo a inserção de comentários.

· Parâmetros do Método: (3 Parâmetros)
1. Forma Pagamento: String com a forma de pagamento com no máximo 16 caracteres.
2. Valor Forma Pagamento: String com o valor da forma de pagamento com até 14 dígitos.
3. Descrição Forma Pagamento: String com a descrição da forma de pagamento com no máximo 48 caracteres.

· Retornos do Método:
0: Erro de comunicação, não foi possível enviar o método.
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

· Observações:
- O fechamento do cupom com formas de pagamento deve ter sido iniciado.
- O texto livre será impresso 1(uma) linha após a forma de pagamento.
- Se a forma de pagamento não estiver cadastrada na impressora, o Método retorna erro. Para cadastrar a forma de pagamento você deve usar o Método:Daruma_FIR_ProgramaFormasPagamento(Índice 554) e isso imediatamente após uma ReduçãoZ.

Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Descricao_da_Forma_Pagamento: String;
Str_Valor_da_Forma_Pagamento: String;
Str_Texto_Livre: String;
begin
Str_Descricao_da_Forma_Pagamento := 'Dinheiro';
Str_Valor_da_Forma_Pagamento := '0,50';
Str_Texto_Livre := 'Texto livre com ate 48 caracteres!!!';

Int_Retorno := Daruma_FIR_EfetuaFormaPagamentoDescricaoForma( pchar( Str_Descricao_da_Forma_Pagamento ), pchar( Str_Valor_da_Forma_Pagamento ), pchar( Texto_Livre ) );


Configurando a Daruma32.DLL para trabalhar com W.T.S. e com Roteamento de pacotes.

Trabalhando com W.T.S. e com Roteamento de Pacotes
Top

Trabalhando Remotamente. Cliente em um local distinto do servidor.

Nesta topologia nós teremos no meio a Internet e em ambas as pontas Roteadores. Portanto teremos que montar tabelas de roteamento. Vejamos à seguir como fazer esta configuração:

1º)Preparando o nosso servidor.
1.1 Baixar a Daruma32.dll versão server, que está disponível em nossa página para down-load no link:http://www.daruma.com.br/suporte/download/DarumaDllServer.zip.
1.2 Entrar no aplicativo de que deverá estar no servidor. Isso deve ser feito para que seja criada a pasta Daruma (contendo todas as chaves para configuração), no registry conforme imagem abaixo:

Uma vez criada a pasta Daruma devemos alterar o valor da chave Terminal Server para 1(um). Você poderá clicar com o botão direito do mouse e escolhendo a opção modificar ou ainda dando um duplo clique, que também permitirá alterar o valor da chave.

1.3 Após configurarmos a chave Terminal Server, iremos configurar a Pasta Servidor.

1.4 Iremos alterar as chaves: IPRotador e RotearPacotes.

1.5 Qual o valor que deverá ser colocado na chave IPRotador? O IP Público do Roteador do Servidor.
1.6 Qual o valor que deverá ser colocado na chave RotearPacotes? 1(um) que indicará que os pacotes serão roteados. Concluída esta etapa o servidor está pronto.

2º)Preparando a estação de trabalho onde está a Impressora Fiscal.
A configuração da estação de trabalho é a mesma usada quando a comunicação é local. Apenas colocaremos o End IP do Roteador no IP Host do Observer2 e a porta de comunicação, que por Default é 1002.

3º)Agora só resta fazer a tabela NAT nos roteadores.

Obersavação: Chamaremos aqui de Roteador (A) o roteador do Servidor e Roteador (B) o do Cliente.

3.1 Roteador (A). Deverá ter em sua tabela NAT o IP do Servidor e com a Porta 1002 ou a que você escoher.
3.2 Roteador (B). Deverá ter em sua tabela NAT o IP do Cliente e com a Porta 1002 ou a que você escoher.

Importante! Caso hajam mais máquinas cliente, então a configuração do IP Host (IP Roteador) no Observer2 será a mesma, alterando apenas a porta, isso porque, cada Client deverá utilizar uma porta distinta Exemplo:client01 porta 1002, client02 porta 1003 e assim por diante.


Daruma_FI_VerificaFormasPagamento(Índice 1442)

Método: Daruma_FI_VerificaFormasPagamento [Índice 1442]
Top

Atenção!!!
Este método está descontinuado, favor utilizar o método: Daruma_FI_VerificaFormasPagamentoEx(Índice 1448)


Daruma_FI_VerificaTotalizadoresNaoFiscais(Índice 1436)

Método: Daruma_FI_VerificaTotalizadoresNaoFiscais [Índice 1436]
Top

Atenção!!!
Este método está descontinuado, favor utilizar Daruma_FI_VerificaTotalizadoresNaoFiscaisEx(Índice 1486) (indice1486)


Daruma_FIR_VerificaTotalizadoresParciais(Índice 3407)

Método: Daruma_FIR_VerificaTotalizadoresParciais [Índice 3407]
Top

· Definição do Método:
Retorna os totalizadores parciais cadastrados na impressora com as seguintes informações:

· Parâmetros do Método:
Totalizadores: Variável String por referência com o tamanho de 445(quatrocentos e quarenta e cinco) posições para receber os totalizadores parciais cadastrados.

· Este Método retornará um dos Valores Inteiros listados Abaixo:
1: OK, Sucesso ao enviar o método.
-27(Somente se o Flag Status Função estiver setado pra 1(um): O Método foi executado, porém o ECF sinalizou Erro, chame o Método Daruma_FIR_RetornoImpressora para identificar o Erro.
Qualquer valor diferente dos listados acima deve ser encarado como Erro de execução do Método no ECF.

Observações:
- São retornadas as seguintes informações separadas por vírgulas:

Totalizadores parciais tributados..........: 224 bytes
Isenção....................................: 14 bytes
Não insidência.............................: 14 bytes
Substitução................................: 14 bytes
Totalizadores parciais não sujeitos ao ICMS: 126 bytes
Sangria....................................: 14 bytes
Suprimento.................................: 14 bytes
Grande Total...............................: 18 bytes
Exemplos:

· Exemplo em Visual Basic 6.0:

· Exemplo em Delphi 7.0:
var
Str_Informacao: String;
begin
SetLength (Str_Informacao,445);
Int_Retorno := Daruma_FIR_VerificaTotalizadoresParciais(Str_Informacao);
Memo1.Lines.Text := (Str_Informacao);
Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();
end;


CADALQ
Este método retorna as aliquotas cadastradas no ECF
Top

Este índice retorna as alíquotas cadastradas.

Você deverá alocar em uma variável por referência com 1000 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CADALQ');
Int_Tam_Var:= StrToInt(Trim('1000'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
 Descricao          Tamanho
      ------------------ -------
      Indice da aliquota 2
      Nome da aliquota   5 (TVVVV - T = Tipo, V = Valor)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.
011206;040107;CADALQ;FIM DOS DADOS;


CADCNF
Este método retorna os comprovantes nao fiscais
Top

Este índice retorna os comprovantes não fiscais.

Você deverá alocar em uma variável por referência com 1000 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CADCNF');
Int_Tam_Var:= StrToInt(Trim('1000'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao             Tamanho
      --------------------- -------
      Indice do totalizador 2
      Nome do totalizador   15

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CADFPG
Este método retorna as formas de pagamento
Top

Este índice retorna formas de pagamento.

Você deverá alocar em uma variável por referência com 1000 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CADFPG');
Int_Tam_Var:= StrToInt(Trim('1000'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
Descricao             Tamanho
      --------------------- -------
      Indice do totalizador 2
      Nome do totalizador   15

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CADGER
Este método retorna os relatorios gerenciais
Top

Este índice retorna os relatórios gerenciais.

Você deverá alocar em uma variável por referência com 1000 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CADGER');
Int_Tam_Var:= StrToInt(Trim('1000'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao             Tamanho
      --------------------- -------
      Indice do totalizador 2
      Nome do totalizador   15

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CCD2VIA
Este método retorna as segundas vias dos comprovantes de credito/debito.
Top

Este índice retorna texto dos comprovantes de crédito ou débito (não fiscais vinculados).as formas de pagamento

Você deverá alocar em uma variável por referência com 17 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CCD2VIA');
Int_Tam_Var:= StrToInt(Trim('17'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao          Tamanho
      ------------------ -------
      Data de emissao    6
      Tempo do documento 7

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CCDABE
Este método retorna dados da abertura dos CCDs
Top

Este índice retorna dados da abertura dos comprovantes de crédito ou débito (não fiscais vinculados).as formas de pagamento

Você deverá alocar em uma variável por referência com 150 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CCDABE');
Int_Tam_Var:= StrToInt(Trim('150'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                  Tamanho
      -------------------------- -------
      COO do CCD                 6
      GNF do CCD                 6
      CDC do CCD                 6
      Data de impressao          6
      CNPJ/CPF do consumidor     20
      Nome do consumidor         20
      Endereco do consumidor     20
      Forma de pagamento         15
      Numero de parcelas         2
      COO do documento vinculado 6
      Valor do pagamento         18
      Valor da compra            18
      Numero da parcela emitida  2

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CCDESTABE
Este método retorna a reimpresao dos comprovantes de credito/debito.
Top

Este índice retorna a reimpressão dos comprovantes de crédito ou débito (não fiscais vinculados).as formas de pagamento

Você deverá alocar em uma variável por referência com 17 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CCDESTABE');
Int_Tam_Var:= StrToInt(Trim('17'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao          Tamanho
      ------------------ -------
      Data de emissao    6
      Tempo do documento 7

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CCDESTTXL
Este método retorna a reimpresao dos comprovantes de credito/debito.
Top

Este índice retorna os textos livres dos estornos comprovantes de crédito ou débito (não fiscais vinculados).as formas de pagamento

Você deverá alocar em uma variável por referência com 650 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CCDESTTXL');
Int_Tam_Var:= StrToInt(Trim('650'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao         Tamanho
      ----------------- -------
      COO do CCD        6
      GNF do CCD        6
      CDC do CCD        6
      Data de impressao 6
      Texto livre       - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CCDREI
Este método retorna a reimpresao dos comprovantes de credito/debito.
Top

Este índice retorna a reimpressão dos comprovantes de crédito ou débito (não fiscais vinculados).as formas de pagamento

Você deverá alocar em uma variável por referência com 17 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CCDREI');
Int_Tam_Var:= StrToInt(Trim('17'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao          Tamanho
      ------------------ -------
      Data de emissao    6
      Tempo do documento 7

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CCDTXL
Este método retorna texto impresso nos CCDs
Top

Este índice retorna texto dos comprovantes de crédito ou débito (não fiscais vinculados).as formas de pagamento

Você deverá alocar em uma variável por referência com 650 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CCDTXL');
Int_Tam_Var:= StrToInt(Trim('650'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao         Tamanho
      ----------------- -------
      COO do CCD        6
      GNF do CCD        6
      CDC do CCD        6
      Data de impressao 6
      Texto livre       - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CCDVADABE
Este método retorna dados da abertura via adicional dos CCDs
Top

Este índice retorna dados da abertura dos comprovantes de crédito ou débito via adicional (não fiscais vinculados).as formas de mento

Você deverá alocar em uma variável por referência com 150 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CCDVADABE');
Int_Tam_Var:= StrToInt(Trim('150'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao              Tamanho
      ---------------------- -------
      COO do CNF             6
      CNF do CNF             6
      Data de impressão      6
      CNPJ/CPF do consumidor 20
      Nome do consumidor     20
      Endereco do consumidor 20

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CCDVADTXL
Este método retorna texto impresso nos CCDs (via adicional)
Top

Este índice retorna texto dos comprovantes de crédito ou débito via adicional.as formas de pagamento

Você deverá alocar em uma variável por referência com 650 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CCDVADTXL');
Int_Tam_Var:= StrToInt(Trim('650'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao         Tamanho
      ----------------- -------
      COO do CCD        6
      GNF do CCD        6
      CDC do CCD        6
      Data de impressao 6
      Texto livre       - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFABE
Este método retorna dados da abertura do cupom fiscal
Top

Este índice retorna dados da abertura do cupom fiscal.

Você deverá alocar em uma variável por referência com 90 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFABE');
Int_Tam_Var:= StrToInt(Trim('90'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao              Tamanho
   ---------------------- -------
   COO do cupom fiscal    6
   CCF do cupom fiscal    6
   Data de impressao      6 (DDMMAA)
   CNPJ/CPF do consumidor 20
   Nome do consumidor     20
   Endereco do consumidor 20

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPABE
Este método retorna cupom fiscal bilhete passagem abertura
Top

Este índice retorna cupom fiscal bilhete passagem abertura.as formas de pagamento

Você deverá alocar em uma variável por referência com 90 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('GERABE');
Int_Tam_Var:= StrToInt(Trim('90'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CFBP              6
      CCF do CFBP              6
      Data de impressao        6
      Modalidade do transporte 1
      Categoria do transporte  1
      Data de embarque         14
      Origem                   - (max. 34)
      Destino                  - (max. 34)
      UF                       2
      Percurso                 - (max. 39)
      Prestadora               - (max. 48)
      Plataforma               4
      Poltrona                 3
      RG do passageiro         20
      Nome do passageiro       20
      Endereco do passageiro   20

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPCDS
Este método retorna cupom fiscal bilhete passagem cancelamento desconto subtotal
Top

Este índice retorna cupom fiscal bilhete passagem cancelamento desconto subtotal.

Você deverá alocar em uma variável por referência com 60 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPCDS');
Int_Tam_Var:= StrToInt(Trim('60'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CFBP              6
      CCF do CFBP              6
      Data de impressao        6
      Tipo desconto/acrescimo  1
      Valor cancelado          18
      Novo subtotal            18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPCEM
Este método retorna cupom fiscal bilhete passagem cancelamento em emissao
Top

Este índice retorna cupom fiscal bilhete passagem cancelamento em emissão.

Você deverá alocar em uma variável por referência com 35 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPCEM');
Int_Tam_Var:= StrToInt(Trim('35'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao         Tamanho
      ----------------- -------
      COO do CFBP       6
      CCF do CFBP       6
      Data de impressao 6
      CFC               6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPCTI
Este método retorna cupom fiscal bilhete passagem cancelamento total item
Top

Este índice retorna cupom fiscal bilhete passagem cancelamento total do ítem.

Você deverá alocar em uma variável por referência com 90 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPCTI');
Int_Tam_Var:= StrToInt(Trim('90'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CFBP              6
      CCF do CFBP              6
      Data de impressao        6
      Numero do item           3
      Descricao do item        - (max. 21)
      Valor bruto              18
      Tipo desconto/acrescimo  1
      Valor desconto/acrescimo 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPDES
Este método retorna cupom fiscal bilhete passagem desconto em item
Top

Este índice retorna cupom fiscal bilhete passagem desconto em ítem.

Você deverá alocar em uma variável por referência com 95 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('GERABE');
Int_Tam_Var:= StrToInt(Trim('95'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                         Tamanho
      --------------------------------- -------
      COO do CFBP                       6
      CCF do CFBP                       6
      Data de impressão                 6
      Numero do item                    3
      Descricao do item                 - (max. 21)
      Tipo desconto/acrescimo           1
      Valor desconto/acrescimo          18
      Valor desconto/acrescimo impresso 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPENC
Este método retorna cupom fiscal bilhete passagem encerramento
Top

Este índice retorna cupom fiscal bilhete passagem encerramento.

Você deverá alocar em uma variável por referência com 740 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPENC');
Int_Tam_Var:= StrToInt(Trim('740'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao              Tamanho
      ---------------------- -------
      COO do CFBP            6
      CCF do CFBP            6
      Data de impressao      6
      Tempo do documento     6
      Venda bruta do CF      18
      CNPJ do consumidor     20
      Nome do consumidor     20
      Endereco do consuimdor 20
      Mensagem promocional   - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPFPG
Este método retorna cupom fiscal bilhete passagem forma de pagamento
Top

Este índice retorna cupom fiscal bilhete passagem forma de pagamento.

Você deverá alocar em uma variável por referência com 145 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPFPG');
Int_Tam_Var:= StrToInt(Trim('145'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao          Tamanho
      ------------------ -------
      COO do CFBP        6
      CCF do CFBP        6
      Data de impressao  6
      Forma de pagamento 15
      Valor              18
      Mensagem adicional - (max. 84)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPINTEST
Este método retorna cupom fiscal bilhete passagem interior estorno forma de pagamento
Top

Este índice retorna cupom fiscal bilhete passagem interior estorno forma de pagamento.

Você deverá alocar em uma variável por referência com 75 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPINTEST');
Int_Tam_Var:= StrToInt(Trim('75'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
       Descricao                     Tamanho
      ----------------------------- -------
      COO do CFBP                   6
      CCF do CFBP                   6
      Data de impressao             6
      Valor do pagamento            18
      Forma de pagamento de origem  15
      Forma de pagamento de destino 15

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPITV
Este método retorna cupom fiscal bilhete passagem item vendido
Top

Este índice retorna cupom fiscal bilhete passagem ítem vendido.

Você deverá alocar em uma variável por referência com 120 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPITV');
Int_Tam_Var:= StrToInt(Trim('120'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CFBP              6
      CCF do CFBP              6
      Data de impressao        6
      Numero do item           3
      Descricao do item        - (max. 21)
      Aliquota                 5 (TVVVV - T = Tipo, V = Valor)
      Valor do item            18
      Valor liquido            18
      Tipo desconto/acrescimo  1
      Valor desconto/acrescimo 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFBPTOT
Este método retorna cupom fiscal bilhete passagem totalizacao
Top

Este índice retorna cupom fiscal bilhete passagem totalização.

Você deverá alocar em uma variável por referência com 85 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPTOT');
Int_Tam_Var:= StrToInt(Trim('85'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CFBP              6
      CCF do CFBP              6
      Data de impressao        6
      Subtotal inicial do CF   18
      Tipo desconto/acrescimo  1
      Valor desconto/acrescimo 18
      Subtotal inicial do CF   18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFCAN
Este método retorna cupom fiscal cancelamento em emissão
Top

Este índice retorna cupom fiscal cancelamento em emissão.

Você deverá alocar em uma variável por referência com 30 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFCAN');
Int_Tam_Var:= StrToInt(Trim('30'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

 Descricao               Tamanho
   ------------------- -------
   COO do cupom fiscal 6
   CCF do cupom fiscal 6
   Data de impressao   6 (DDMMAA)
   CFC                 6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFCDI
Este método retorna informações sobre cancelamento e desconto no ítem
Top

Este índice retorna informações cancelamento e desconto no ítem vendido.

Você deverá alocar em uma variável por referência com 60 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFCDI');
Int_Tam_Var:= StrToInt(Trim('120'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao                Tamanho
   ------------------------ -------
   COO do cupom fiscal      6
   CCF do cupom fiscal      6
   Data de impressao        6 (DDMMAA)
   Numero do item           3
   Codigo do item           14
   Descricao do item        variavel
   Tipo desconto/acrescimo  1
   Valor desconto/acrescimo 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFCDS
Este método retorna cancelamento de desconto no subtotal
Top

Este índice retorna cancelamento de desconto no subtotal.

Você deverá alocar em uma variável por referência com 120 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFCDS');
Int_Tam_Var:= StrToInt(Trim('120'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao               Tamanho
   ----------------------- -------
   COO do cupom fiscal     6
   CCF do cupom fiscal     6
   Data de impressao       6 (DDMMAA)
   Tipo desconto/acrescimo 1
   Valor cancelado         18
   Novo subtotal           18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFCPI
Este método retorna total de cancelamento parcial do ítem
Top

Este índice retorna total de cancelamento parcial do ítem.

Você deverá alocar em uma variável por referência com 120 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFCPI');
Int_Tam_Var:= StrToInt(Trim('120'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao                Tamanho
   ------------------------ -------
   COO do cupom fiscal      6
   CCF do cupom fiscal      6
   Data de impressao        6 (DDMMAA)
   Numero do item           3
   Codigo do item           14
   Descricao do item        variavel
   Quantidade cancelada     7
   Valor cancelado          18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFCTI
Este método retorna total de cancelamento no total do ítem
Top

Este índice retorna cancelamento no total do ítem.

Você deverá alocar em uma variável por referência com 120 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFCTI');
Int_Tam_Var:= StrToInt(Trim('120'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao                Tamanho
   ------------------------ -------
   COO do cupom fiscal      6
   CCF do cupom fiscal      6
   Data de impressao        6 (DDMMAA)
   Numero do item           3
   Codigo do item           14
   Descricao do item        variavel
   Valor bruto              18
   Tipo desconto/acrescimo  1
   Valor desconto/acrescimo 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFDES
Este método retorna informações sobre o desconto sobre o ítem vendido
Top

Este índice retorna informações sobre o desconto sobre um ítem vendido.

Você deverá alocar em uma variável por referência com 130 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFDES');
Int_Tam_Var:= StrToInt(Trim('130'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao                         Tamanho
   --------------------------------- -------
   COO do cupom fiscal               6
   CCF do cupom fiscal               6
   Data de impressao                 6 (DDMMAA)
   Numero do item                    3
   Codigo do item                    14
   Descricao do item                 variavel
   Tipo desconto/acrescimo           1
   Valor desconto/acrescimo          18
   Valor desconto/acrescimo impresso 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFENC
Este método retorna cupom fiscal encerramento
Top

Este índice retorna cupom fiscal encerramento.

Você deverá alocar em uma variável por referência com 730 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFENC');
Int_Tam_Var:= StrToInt(Trim('730'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao              Tamanho
   ---------------------- -------
   COO do cupom fiscal    6
   CCF do cupom fiscal    6
   Data de impressao      6 (DDMMAA)
   Tempo do documento     6
   Venda bruta do CF      18
   CNPJ do consumidor     20
   Nome do consumidor     20
   Endereco do consuimdor 20
   Mensagem promocional   - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFEST
Este método retorna cupom fiscal estorno forma pagamento
Top

Este índice retorna cupom fiscal estorno forma de pagamento.

Você deverá alocar em uma variável por referência com 80 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFEST');
Int_Tam_Var:= StrToInt(Trim('80'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
   Descricao                     Tamanho
   ----------------------------- -------
   COO do cupom fiscal           6
   CCF do cupom fiscal           6
   Data de impressao             6 (DDMMAA)
   Valor do pagamento            18
   Forma de pagamento de origem  15
   Forma de pagamento de destino 15

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFFPG
Este método retorna forma de pagamento do cupom fiscal
Top

Este índice retorna forma de pagamento do cupom fiscal.

Você deverá alocar em uma variável por referência com 150 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFFPG');
Int_Tam_Var:= StrToInt(Trim('150'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao               Tamanho
   ----------------------- -------
   COO do cupom fiscal     6
   CCF do cupom fiscal     6
   Data de impressao       6 (DDMMAA)
   Forma de pagamento      15
   Valor                   18
   Mensagem adicional      - (max. 84)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CFITV
Este método retorna informações sobre o ítem vendido
Top

Este índice retorna informações o ítem vendido.

Você deverá alocar em uma variável por referência com 160 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFITV');
Int_Tam_Var:= StrToInt(Trim('160'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

      Descricao                Tamanho
   ------------------------ -------
   COO do cupom fiscal      6
   CCF do cupom fiscal      6
   Data de impressao        6 (DDMMAA)
   Numero do item           3
   Codigo do item           14
   Descricao do item        variável
   Unidade                  3
   Aliquota                 5 (TVVVV - T = Tipo, V = Valor)
   Valor unitario           18
   Quantidade               7
   Valor liquido            18
   Tipo desconto/acrescimo  1
   Valor desconto/acrescimo 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.
001055;000469;281106;001;1234567890123 ;pe de moleque;un 1200;000000000000002000;0001000;000000000000000200;
00000000000000000;


CFTOT
Este método retorna cupom fiscal em totalização
Top

Este índice retorna cupom fiscal em totalização.

Você deverá alocar em uma variável por referência com 120 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFTOT');
Int_Tam_Var:= StrToInt(Trim('120'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações que serão devolvidas são:

   Descricao                Tamanho
   ------------------------ -------
   COO do cupom fiscal      6
   CCF do cupom fiscal      6
   Data de impressao        6 (DDMMAA)
   Subtotal inicial do CF   18
   Tipo desconto/acrescimo  1
   Valor desconto/acrescimo 18
   Subtotal inicial do CF   18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFABE
Este método retorna dados da abertura do comprovante nao fiscal
Top

Este índice retorna dados da abertura do comprovante não fiscal.

Você deverá alocar em uma variável por referência com 100 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFABE');
Int_Tam_Var:= StrToInt(Trim('100'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao              Tamanho
      ---------------------- -------
      COO do CNF             6
      CNF do CNF             6
      Data de impressão      6
      CNPJ/CPF do consumidor 20
      Nome do consumidor     20
      Endereco do consumidor 20

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFCAN
Este método retorna comprovante nao fiscal cancelamento
Top

Este índice retorna comprovante não fiscal cancelamento.as formas de pagamento

Você deverá alocar em uma variável por referência com 90 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCAN');
Int_Tam_Var:= StrToInt(Trim('90'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao               Tamanho
      ----------------------- -------
      COO                     6
      GNF                     6
      Data de emissao         6
      Tempo do documento      7
      GNF cancelado           6
      COO cancelado           6
      Valor                   18
      Descontos               18
      Numero do CCD cancelado 6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFCDI
Este método retorna cancelamento de desconto no comprovante nao fiscal
Top

Este índice retorna cancelamento de desconto nos comprovantes não fiscais.as formas de pagamento

Você deverá alocar em uma variável por referência com 65 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCDI');
Int_Tam_Var:= StrToInt(Trim('65'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CNF               6
      CNF do CNF               6
      Data de impressao        6
      Numero do item           3
      Nome do totalizador      15
      Valor desconto/acrescimo 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFCDS
Este método retorna cancelamento de desconto no subtotal do comprovante nao fiscal
Top

Este índice retorna cancelamento de desconto no subtotal dos comprovantes não fiscais.as formas de pagamento

Você deverá alocar em uma variável por referência com 65 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCDS');
Int_Tam_Var:= StrToInt(Trim('65'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CNF               6
      CNF do CNF               6
      Data de impressao        6
      Tipo desconto/acrescimo  1
      Valor desconto/acrescimo 18
      Novo subtotal            18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFCEM
Este método retorna comprovante nao fiscal cancelamento em emissao
Top

Este índice retorna comprovante não fiscal cancelamento em emissão.as formas de pagamento

Você deverá alocar em uma variável por referência com 30 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCEM');
Int_Tam_Var:= StrToInt(Trim('30'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao         Tamanho
      ----------------- -------
      COO do CNF        6
      CNF do CNF        6
      Data de impressao 6
      NFC               6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFCTI
Este método retorna cancelamento de desconto no total do comprovante nao fiscal
Top

Este índice retorna cancelamento de desconto no total do ítem, nos comprovantes não fiscais.as formas de pagamento

Você deverá alocar em uma variável por referência com 65 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCTI');
Int_Tam_Var:= StrToInt(Trim('65'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao           Tamanho
      ------------------- -------
      COO do CNF          6
      CNF do CNF          6
      Data de impressao   6
      Numero do item      3
      Nome do totalizador 15
      Valor Bruto         18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFENC
Este método retorna comprovante nao fiscal cancelamento em emissao
Top

Este índice retorna comprovante não fiscal em encerramento.as formas de pagamento

Você deverá alocar em uma variável por referência com 2300 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCEM');
Int_Tam_Var:= StrToInt(Trim('2300'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao            Tamanho
      -------------------- -------
      COO do CNF           6
      CNF do CNF           6
      Data de impressao    6
      Tempo documento      7
      Mensagem promocional - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFEST
Este método retorna comprovante nao fiscal estorno forma pagamento
Top

Este índice retorna comprovante não fiscal estorno forma pagamento.as formas de pagamento

Você deverá alocar em uma variável por referência com 100 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCAN');
Int_Tam_Var:= StrToInt(Trim('100'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                     Tamanho
      ----------------------------- -------
      COO                           6
      GNF                           6
      Data de emissao               6
      Tempo do documento            7
      COO estornado                 6
      Valor                         18
      Forma de pagamento de origem  18
      Forma de pagamento de destino 18
      Numero do CCD cancelado       6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFFPG
Este método retorna cancelamento de desconto no subtotal do comprovante nao fiscal
Top

Este índice retorna cancelamento de desconto no total nos comprovantes não fiscais.as formas de pagamento

Você deverá alocar em uma variável por referência com 2300 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFFPG');
Int_Tam_Var:= StrToInt(Trim('2300'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao              Tamanho
      ---------------------- -------
      COO do CNF             6
      CNF do CNF             6
      Data de impressao      6
      Forma de pagamento     15
      Valor do pagamento     18
      Informacoes adicionais - (max. 84)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFINTEST
Este método retorna comprovante nao fiscal interior estorno forma pagamento
Top

Este índice retorna comprovante não fiscal interior estorno da forma de pagamento.as formas de pagamento

Você deverá alocar em uma variável por referência com 75 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFINTEST');
Int_Tam_Var:= StrToInt(Trim('75'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                     Tamanho
      ----------------------------- -------
      COO do CNF                    6
      CNF do CNF                    6
      Data de impressao             6
      Valor do pagamento            18
      Forma de pagamento de origem  15
      Forma de pagamento de destino 15

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFRNF
Este método retorna os recebimentos não fiscais
Top

Este índice retorna texto dos comprovantes de crédito ou débito (não fiscais vinculados).as formas de pagamento

Você deverá alocar em uma variável por referência com 650 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFRNF');
Int_Tam_Var:= StrToInt(Trim('650'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CNF               6
      CNF do CNF               6
      Data de impressao        6
      CON do totalizador       6
      Numero do item           3
      Nome do totalizador      15
      Valor do recebim dento     18
      Tipo desconto/acrescimo  1
      Valor desconto/acrescimo 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFSAN
Este método retorna comprovante nao fiscal sangria
Top

Este índice retorna comprovante não fiscal sangria.as formas de pagamento

Você deverá alocar em uma variável por referência com 700 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCAN');
Int_Tam_Var:= StrToInt(Trim('700'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao            Tamanho
      -------------------- ------------
      COO                  6
      GNF                  6
      Data de emissao      6
      CON do totalizador   6
      Tempo do documento   7
      Valor                18
      Mensagem promocional - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFSUP
Este método retorna comprovante nao fiscal suprimento
Top

Este índice retorna comprovante não fiscal suprimento.as formas de pagamento

Você deverá alocar em uma variável por referência com 700 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFCAN');
Int_Tam_Var:= StrToInt(Trim('700'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao            Tamanho
      -------------------- ------------
      COO                  6
      GNF                  6
      Data de emissao      6
      CON do totalizador   6
      Tempo do documento   7
      Valor                18
      Mensagem promocional - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CNFTOT
Este método retorna a totalilazacao dos comprovantes nao fiscais
Top

Este índice retorna cancelamento de desconto no total do ítem, nos comprovantes não fiscais.as formas de pagamento

Você deverá alocar em uma variável por referência com 85 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CNFTOT');
Int_Tam_Var:= StrToInt(Trim('85'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                Tamanho
      ------------------------ -------
      COO do CNF               6
      CNF do CNF               6
      Data de impressao        6
      Subtotal inicial do CF   18
      Tipo desconto/acrescimo  1
      Valor desconto/acrescimo 18
      Subtotal final do CF     18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


CUPADC
Este método retorna o cupom adicional
Top

Este índice retorna os cupons adicionais emititos.as formas de pagamento

Você deverá alocar em uma variável por referência com 40 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CUADC');
Int_Tam_Var:= StrToInt(Trim('40'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao       Tamanho
      --------------- -------
      Data de emissao 6
      CCF             6
      COO do CF       6
      Valor           18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


ECFCFG
Este índice retorna informações sobre a configuração da impressora
Top

Este índice retorna informações sobre a configuração da impressora.

Você deverá alocar em uma variável por referência com 225 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('ECFCFG');
Int_Tam_Var:= StrToInt(Trim('225'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao                                       Tamanho
   ----------------------------------------------- -------
   Flag horario de verao                           1
   Flag ISS                                        1
   Flag descricao de item em 1 linha               1
   Flag cupom adicional                            1
   Flag mensagem promocional em CNF                1
   Flag zeros nao significativos na quantidade     1
   Flag zeros nao significativos no valor unitario 1
   Numero de decimais da quantidade                1
   Numero de decimais da valor unitario            1
   Numero de decimais da valor unitario            96
   Tabela de decodificacao de GT                   10
   Simbolo da moeda                                2
   Identificacao do programa aplicativo            96

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.
0;1;1;1;0;0;0;3;3;0; ;ABCDEFGHIJ; R;DARUMA32 FrameWork Mensagem Não ProgramadaDARUMA32 FrameWork Mensagem Não Programada ;


ECFHW
Este índice retorna informações sobre o hardware da impressora
Top

Este índice retorna informações sobre o hardware da impressora fiscal.

Você deverá alocar em uma variável por referência com 65 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('ECFHW');
Int_Tam_Var:= StrToInt(Trim('65'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

· As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.

   Descricao                Tamanho
   ------------------------ -------
   Modelo da impressora     6
   NOS (Numero do ECF)      6
   Versao do SB             6
   Numero de serie da MFDE  21
   Numero de serie da MF    21

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.

010053;000001;010200;60130642005120002344 ;DR0205BR000000068757 ;


GERABE
Este método retorna as aberturas de relatorios gerenciais
Top

Este índice retorna as aberturas de relatorios gerenciais.as formas de pagamento

Você deverá alocar em uma variável por referência com 100 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('GERABE');
Int_Tam_Var:= StrToInt(Trim('100'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao                     Tamanho
      ----------------------------- -------
      COO                           6
      GNF                           6
      Data de emissao               6
      Tempo do documento            7
      COO estornado                 6
      Valor                         18
      Forma de pagamento de origem  18
      Forma de pagamento de destino 18
      Numero do CCD cancelado       6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


GERTXL
Este método retorna texto livre dos relatorios gerenciais
Top

Este índice retorna texto livre dos relatorios gerenciais.as formas de pagamento

Você deverá alocar em uma variável por referência com 100 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('GERTXL');
Int_Tam_Var:= StrToInt(Trim('100'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao         Tamanho
      ----------------- -------
      COO do CCD        6
      GNF do CCD        6
      CDC do CCD        6
      Data de impressao 6
      Texto livre       - (max. 619)

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


LMF
Este método retorna leitura da memória fiscal
Top

Este índice retorna leitura da memória fiscal.as formas de pagamento

Você deverá alocar em uma variável por referência com 30 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('LMF');
Int_Tam_Var:= StrToInt(Trim('30'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao          Tamanho
      ------------------ -------
      COO                6
      Data de emissao    6
      Tempo do documento 7
      Tipo de leitura    6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


LX
Este método retorna leitura x
Top

Este índice retorna leitura x.as formas de pagamento

Você deverá alocar em uma variável por referência com 55 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('LX');
Int_Tam_Var:= StrToInt(Trim('55'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao          Tamanho
      ------------------ -------
      COO                6
      Data de emissao    6
      Tempo do documento 7
      Tempo operacional  7
      Tempo imprimindo   7
      RZ restantes       6
      NCN                6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.


RZABE
Este método retorna dados da Reducao Z de abertura
Top

Este índice retorna dados da Reducao Z de abertura.

Você deverá alocar em uma variável por referência com 1000 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFEST');
Int_Tam_Var:= StrToInt(Trim('1000'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
      Descricao               Tamanho
      ----------------------- -------
      COO da reducao Z        6
      CRZ da reducao Z        6
      Data de impressao       6
      COO                     6
      Data movimento          6
      CRZ                     6
      CRO                     6
      GNF                     6
      CDC                     6
      NFC                     6
      GRG                     6
      CCF                     6
      CFC                     6
      CFD                     6
      Grande total            18
      Valor bruto             18
      Total ISS               18
      Valor liquido           18
      Total cancelamento ICMS 18
      Total cancelamento ISS  18
      Total desconto ICMS     18
      Total desconto ISS      18
      Total acrescimo ICMS    18
      Total acrescimo ISS     18
      Total FF1               18
      Total FF2               18
      Total II1               18
      Total II2               18
      Total NN1               18
      Total NN2               18
      Total aliquotas         16 x 18
      Total FS1               18
      Total FS2               18
      Total IS1               18
      Total IS2               18
      Total NS1               18
      Total NS2               18
      Total Nao fiscais       18
      Aliquotas               16 x 5 (TVVVV - T = Tipo, V = Valor)
      NCN                     6
      Tempo imprimindo        7
      Tempo operacional       7
      RZ restantes            6

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.
011206;040107;RZABE;001058;000051;011206;001058;281106;000051;000018;000234;000000;000000;000115;000470;000000;000000;000000000000778109;000000000000006100;000000000000000000;000000000000006100;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000001500;000000000000004600;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000000000;000000000000001399;11800;11200;10700;00000;00000;00000;00000;00000;00000;00000;00000;00000;00000;00000;00000;00000;000000;0001638;0008442;001978;;


CFBPCDI
Este método retorna cupom fiscal bilhete passagem cancelamento desconto em item
Top

Este índice retorna cupom fiscal bilhete passagem cancelamento desconto em ítem.

Você deverá alocar em uma variável por referência com 70 espaços.

· Exemplo em Delphi:
var
Str_Tipo_Download: string;
Str_Data_ou_COO_Inicio: string;
Str_Data_ou_COO_Fim: string;
Str_Indice: string;
Str_Retorno: string;
Int_Tam_Var: integer;
begin
Str_Tipo_Download:= Trim('1');
Str_Data_ou_COO_Inicio:= Trim('011206');
Str_Data_ou_COO_Fim:= Trim('040107');
Str_Indice:= Trim('CFBPCDI');
Int_Tam_Var:= StrToInt(Trim('70'));
SetLength(Str_Retorno, Int_Tam_Var);

Int_Retorno:= Daruma_FIMFD_RetornarInfoDownloadMFD(Str_Tipo_Download, Str_Data_ou_COO_Inicio, Str_Data_ou_COO_Fim, Str_Indice, Str_Retorno);
Retorno_InfoDownloadMFD.Lines.Text:= (Str_Retorno);

Framework_Impressoras_Fiscais.Daruma_Analisa_Retorno();

end;

As informações serão devolvidas separadas por ponto-e-vírgula. Porém se preferir poderá alterar o separador através do método: Daruma_RegistrySeparador.
            Descricao                Tamanho
      ------------------------ -------
      COO do CFBP              6
      CCF do CFBP              6
      Data de impressão        6
      Numero do item           3
      Descricao do item        - (max. 21)
      Tipo desconto/acrescimo  1
      Valor desconto/acrescimo 18

· Exemplo de retorno:
- Abaixo temos um exemplo das informações devolvidas na variável Str_Retorno foram. Note que existe um ponto-e-vírgula, separando os dados.