Modelos

Impressoras Fiscais Bematech

 Retorna ao Início

mp4000th | MP-4000 TH FI Impressora Fiscal ou Impressora Fiscal Bilhete de Passagem (térmica) 1 Estação - Cupom Fiscal
fotoMP7000 | MP-7000 TH FI Impressora Fiscal ou Impressora Fiscal Bilhete de Passagem (térmica) 2 Estações - Cupom Fiscal e Impressão de Cheque
mp3000thfi | MP-3000 TH FI Impressora Fiscal ou Impressora Fiscal Bilhete de Passagem (térmica) 1 Estação - Cupom Fiscal
MP-25 FI Impressora Fiscal ou Impressora Fiscal Bilhete de Passagem - Convênio ICMS 85/01 (matricial) 1 Estação - Cupom Fiscal | MP-50 FI Impressora Fiscal ou Impressora Fiscal Bilhete de Passagem - Convênio ICMS 85/01 (matricial) 2 Estações - Cupom Fiscal e Impressão de Cheque
MP-2000 TH FI / MP-2100 TH FI Impressora Fiscal ou Impressora Fiscal Bilhete de Passagem (térmica) 1 Estação - Cupom Fiscal | MP-6000 TH FI / MP-6100 TH FI Impressora Fiscal ou Impressora Fiscal Bilhete de Passagem (térmica) 2 Estações - Cupom Fiscal e Impressão de Cheque
MP-20 FI II / MP-20 FI II R Impressora Fiscal, Impressora Fiscal Bilhete de Passagem ou Impressora Fiscal Restaurante (matricial) 1 Estação - Cupom Fiscal | MP-40 FI II / MP-40 FI II R Impressora Fiscal, Impressora Fiscal Bilhete de Passagem ou Impressora Fiscal Restaurante (matricial) 2 Estações - Cupom Fiscal e Impressão de Cheque


Apresentando a DLL

BemaFI32.dll

A BemaFI32.dll é uma DLL de comunicação (DLL padrão Bematech), considerada de alto-nível, pela versatilidade e facilidade de programação em relação as outras DLLs. É utilizada em ambiente Windows&® 32 bits, realizando a comunicação com as impressoras fiscais Bematech.

Todas as funções desta DLL são funções de alto-nível.

Ao utilizar qualquer função desta DLL, será apresentado na tela, para o desenvolvedor, todos os parâmetro que a função possui (caso possua), facilitando a sua utilização.

A DLL pode ser salva na pasta de instalação do aplicativo, em qualquer outra pasta (desde que na declaração das funções no aplicativo, seja informado o path da DLL) ou no diretório de sistema do Windows.

Importante: O arquivo BemaFI32.ini (arquivo de configuração da DLL) deve estar juntamente com a DLL, na mesma pasta.

Exemplo:

C:\WINDOWS\SYSTEM

C:\WINNT\SYSTEM32


Configurando a DLL

Arquivo de Configuração BemaFI32.ini

A DLL BemaFI32.dll possui um arquivo de configuração chamado BemaFI32.ini onde algumas opções podem ser configuradas. Esse arquivo de configuração possui seções com alguns parâmetros de configuração a saber:

Seção [Sistema]

Essa seção possui as seguintes opções de configuração:

Porta=

Indica a porta serial de comunicação entre a impressora e o computador. Se o valor for igual a "DEFAULT", a DLL buscará a porta onde estiver a impressora, automaticamente. Se estiver sendo usada a impressora fiscal na USB, basta alterar esta chave para a palavra USB (Porta=USB). Para maiores informações sobre a instalalação da porta USB, veja o tópico "Instalando a porta USB para comunicação através da DLL"

Path=

Configura o diretório onde será criado o arquivo "STATUS.TXT", "RETORNO.TXT" e "BEMAFI32.LOG". O path default é o diretório raiz na unidade C:\.

Status=

Se essa opção estiver com o valor 1, as funções 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 função Bematech_FI_RetornoImpressora.

Retorno=

Se essa opção estiver com o valor 1, as Funções de Informações* 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 nas funções.

StatusFuncao=

Esta chave configura a DLL para retornar o valor –27 nas funções, quando o status da impressora (ACK, ST1, ST2) for diferente de 6,0,0. Com essa configuração a função Bematech_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, através das funções Bematech_FI_AbrePortaSerial e Bematech_FI_FechaPortaSerial. Se estiver com o valor 1, serão controlados pela DLL. A DLL irá abrir e fechar a porta automaticamente em cada função.

ModeloImp=

É utilizada para identificar que tipo de impressora fiscal está sendo usada. Caso a impressora fiscal seja Bematech, deve-se configurar BEMATECH, caso a impressora fiscal seja Yanco, deve-se configurar YANCO. É necessário configurar corretamente esta opção, pois algumas funções da DLL são compatibilizadas para a impressora fiscal Yanco.

ConfigRede=

Identifica que modo será utilizada a DLL, onde o valor igual a:

0 (zero) - modo de utilização normal.

1 (um) - modo de utilização pelo servidor (Server), com uso do Bematech Monitor por troca de arquivo de comando BemaFI32.cmd.

2 (dois) - modo de utilização pelo terminal (Client), com uso do Bematech Monitor por troca de arquivo de comando BemaFI32.cmd.

4 (quatro) - modo de utilização pelo terminal (Client), com uso do Bematech Monitor por TCP/IP.

5 (cinco) - modo de utilização pelo servidor (Server), com uso do Bematech Monitor por TCP/IP.

Esta chave é utilizada para trabalhar com impressora fiscal remotamente através do Windows Terminal Server ou Citrix Metaframe. Ver tópico "Utilizando o Bematech Monitor", para maiores informações.

ModoGaveta=

É utilizada para compatibilizar o sinal lógico que a gaveta envia para a impressora, quando a mesma é acionada (aberta) ou não. O Default é 0 (zero), ou seja, o sinal enviado pela gaveta é o mesmo retornado pela DLL. 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. Consulte a função Bematech_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 "BEMAFI32.LOG" com todas as funções executadas, seus parâmetros e valores de retorno.

LogDiario=

Se essa chave estiver igual a 1 (LogDiario=1, será criado um novo arquivo de log a cada dia com o nome BemaFI32-AAAAMMDD.log onde AAAA = ano, MM = mes e DD = dia. Serão mantidos apenas os 7 últimos logs gerados, os anteriores serão apagados. Essa configuração só terá efeito se a geração de log (chave Log=1) estiver habilitada.

CrLfVinculado=

Se essa chave estiver igual a 1 (CrLfVinculado=1), será enviado automaticamente pela função Bematech_FI_UsaComprovanteNaoFiscalVinculado o comando de quebra de linha (chr(13)+chr(10)), ao final do texto. Se essa chave estiver igual a 0 (zero) a aplicação deverá enviar essa quebra de linha.

CrLfGerencial=

Se essa chave estiver igual a 1 (CrLfVinculado=1), será enviado automaticamente pela função Bematech_FI_RelatorioGerencial o comando de quebra de linha (chr(13)+chr(10)), ao final do texto. Se essa chave estiver igual a 0 (zero) a aplicação deverá enviar essa quebra de linha.

TimeOutGerencial=

Esta chave faz o controle do timeout de impressão (em segundos) para o relatório gerencial nas impressoras fiscais modelo MP-20 FI II e MP-40 FI II, pois estes modelos imprimem uma leitura X (exigência fiscal) antes de iniciar a impressão do relatório gerencial. O valor default é 40 segundos, podendo ser configurado até 120 segundos.

EmulMFD=

Esta chave é utilizada para a comunicação com o emulador da impressora fiscal térmica EmulFITH através da dll, sem a necessidade de confeccionar um cabo de comunicação externo. Configurando esta chave para 1 (um), a sua aplicação, através das funções da dll, estará realizando a impressão dos cupons pelo emulador. Todas as informações referentes ao emulador, estão no seu próprio arquivos de ajuda.

ATENÇÃO: Não esqueça de configurar esta chave para 0 (zero), quando for utilizar a impressora fiscal fisicamente.

StatusCheque=

Esta chave é necessária para o correto retorno das informações sobre o status do cheque, na impressora IBM modelo 4610-KR4. A configuração default desta chave é nula (StatusCheque=). Caso você esteja utilizando uma impressora fiscal IBM, citada acima, esta chave deve ser configurada como IBM (StatusCheque=IBM).

CalculoIcmsCupom=

Esta chave é utilizada para habilitar ou desabilitar o retorno do valor total do ICMS pago no último cupom fiscal, conforme solicitado na portaria 40888/07 do RJ. Se a chave estiver igual a 0, não será controlada esta informação, caso estiver igual a 1 esta informação será controlada, e através da função Bematech_FI_TotalIcmsCupom será retornada.

ForceWTSClient=

Esta chave é utilizada em conjunto com o driver remoto Bematech Monitor. Ela tem por finalidade mapear a comunicação através do "name" da máquina Cliente, caso esta chave esteja com seu valor em 1 (ForceWTSClient=1). Ao usar a chave com o valor 1, a chave Path não poderá conter a unidade do driver, exemplo: Path=Z:\ e sim o compartilhamento da estação, exemplo: Path=TEMP. Caso ela esteja com seu valor em 2 (ForceWTSClient=2), será mapedo o IP da máquina Cliente e a chave Path deve ser mantida com o nome da pasta do compartilhamento.

RetriesWTSCmd=

Esta chave é utilizada para definir o número de tentativas de comunicação, antes de retornar erro.

HabilitaRFDImpMFD=

Esta chave habilita (1) ou desabilita (0) a geração do arquivo .rfd (Registro de Fita-Detalhe) para os modelos fiscais térmicos, da mesma forma como é gerado para as impressoras fiscais matriciais. A geração deste arquivo somente terá efeito se a chave UF estiver igual a SP (UF=SP).

GerarRFD=

Esta chave habilita (1) ou desabilita (0) a geração do arquivo para a CAT-52 ou Ato Cotepe 17/04, independente da chave UF=SP. Esta chave foi criada para atender também a NF Alagoana.

Seção [SoftwareHouse]

Esta seção corresponde aos dados da software house pertinentes à geração dos registros da portaria CAT-52/SP

COO= | Refere-se ao Contador de Ordem de Operação do último cupom impresso, antes da atualização da dll, com até 6 posições.
NumeroAplicativo= | Refere-se ao número de ordem do aplicativo, com até 2 posições.
CNPJ= | Refere-se ao CNPJ/CPF da Software House/desenvolvedor autônomo, com até 14 posições.
IE= | Refere-se a Inscrição Estadual da Software House, com até 14 posições.
IM= | Refere-se a Inscrição Municipal da Software House, com até 14 posições (opcional).
RazaoSocial= | Refere-se ao nome comercial (razão social/denominação) da Software House, com até 40 posições.
NomeAplicativo= | Refere-se ao nome do aplicativo, com até 40 posições.
Versao= | Refere-se a versão do aplicativo, com até 10 posições.
Linha1= | Refere-se aos dados do programa aplicativo, com até 42 posições (opcional).
Linha2= | Refere-se aos dados do programa aplicativo, com até 42 posições (opcional).

Seção [ECF]

Esta seção corresponde aos dados do ECF pertinentes à geração dos registros da portaria CAT-52/SP

IM= | Refere-se a Inscrição Municipal do estabelecimento que possui a ECF, com até 20 posições (opcional).
UF= | Refere-se a Unidade da Federação do estabelecimento que possui a ECF, com até 2 posições.

Seção [MFD]

Essa seção é utilizada para habilitar ou desabilitar o uso da impressora fiscal térmica (MFD) ou das matriciais MP-25 FI/MP-50 FI. Se forem utilizadas as funções da dll que possuem a sigla "MFD" em sua nomenclatura, a chave Impressora deve ser habilitada (exemplo: Impressora=1 para Bematech ou Impressora=2 para IBM), caso contrário, esta chave deve permanecer desabilitada (exemplo: Impressora=0). A chave StatusErro é utilizada para retornar erro nas funções que são incompatíveis com a impressora fiscal matricial. O retorno destas funções será -30 (função incompatível). Para habilitar ou desabilitar use 1 (um) ou 0 (zero), respectivamente. A chave TimeOutZ é utilizada na configuração do tempo de espera (em minutos), após a execução da função Bematech_FI_ReducaoZ. A função aguardará até que seja impresso todos os códigos PDF, que seguem uma Redução Z, ou por este timeout. O tempo default deste timeout é de 3 minutos.

IMPORTANTE

Não é necessário alterar o software para trabalhar com a impressora fiscal térmica (MFD), pois todas as funções utilizadas na impressora fiscal matricial são compatíveis, basta apenas ligar a chave "Impressora", na seção MFD (Impressora=1) e executar a aplicação.

Seção [ModoRemoto]

Essa seção possui as seguintes opções de configuração e é utilizada para trabalhar com a impressora fiscal remotamente via TCP/IP no ambiente Windows Terminal Server ou Citrix Metaframe.

IP= | Identifica o IP do servidor onde reside a aplicação comercial. Esta chave deve ser preenchida com o IP do servidor somente no arquivo BemaFI32.ini que reside na máquina cliente (Client).
Porta= | Identifica a porta de conexão do servidor onde reside a aplicação comercial.

* Funções de Informações são todas as funções que retornam informações da impressora, por exemplo: número do cupom, retorno de alíquotas e etc.

Seção [Opcional]

Essa seção grava as informações para Cidade e Favorecido. Essas opções são configuradas pela função Bematech_FI_IncluiCidadeFavorecido.

Seção [Formato]

Essa seção contém os bancos e suas coordenadas para impressão de cheques na impressora MP-40 FI II.

Seção [FormatoYanco]

Essa seção contém os bancos e suas coordenadas para impressão de cheques na impressora YANCO 8500.

Seção [Copia]

Contém os dados do último cheque emitido (impressora MP-40 FI II).

Seção [RelatorioTipo60]

Contém informações usadas na emissão do relatório "TIPO 60".

Seção [TEF]

Contém informações de configuração do TEF.

Seção [Config]

Contém informações de configuração de controle da DLL, para a impressora fiscal Yanco.

Seção [ReducaoYanco]

Contém informações de dados da Redução Z, realizada na impressora fiscal Yanco.

Exemplo da seção Sistema:

[Sistema]

Porta=COM1

Path=C:\

Status=0

Retorno=0

StatusFuncao=0

ControlePorta=1

ModeloImp=BEMATECH

ConfigRede=0

ModoGaveta=0

Log=0

LogDiario=0

CrLfVinculado=0

CrLfGerencial=0

TimeOutGerencial=40

EmulMFD=0

StatusCheque=

ForceWTSClient=1

RetriesWTSCmd=3


Declarando a DLL

As funções da BemaFI32.dll devem ser declaradas, no aplicativo, para que o mesmo possa interagir com a impressora fiscal.

Cada linguagem de programação possui uma maneira diferente de declarar funções de uma DLL. Consulte sempre o manual de programação de sua linguagem para verificação deste procedimento.

þ Declaração em Visual Basic

þ Declaração em Delphi

þ Declaração em Visual Fox Pro

þ Declaração em C# (C Sharp)

þ Declaração em JAVA

iconeLampada


Instalando a porta USB para comunicação através da DLL

Os modelos de impressoras fiscais térmicas Bematech (MP-2100 TH FI, MP-3000 TH FI, MP-4000 TH FI e MP-7000 Th FI), possuem interface USB para comunicação do aplicativo comercial.

A BemaFI32.dll permite que o aplicativo realize as operações com a impressora fiscal (através de suas funções), via USB, sem a necessidade de modificações, totalmente transparente. Basta instalar a porta USB através dos drivers disponíveis no pacote da DLL.

Veja os passos de como proceder com esta instalação e de como configurar o arquivo BemaFI32.ini:

- Instalando a porta USB

Ao conectar a impressora fiscal na USB o Windows irá detectá-la automaticamente, exibindo na lista de dispositivos o suporte à esta conexão:

- Clique com o botão direito do mouse sobre este item e escolha a opção "Atualizar driver...";

- Na janela que surge, escolha a opção "Não, não agora" e clique em "Avançar >";

- Nesta janela, escolha "Instalar de uma lista ou local específico (avançado)" e clique em "Avançar >";

- Escolha a opção "Incluir este local na pesquisa" e clique em "Procurar" para localizar a pasta onde foi descompactado o pacote da DLL contendo os arquivos "UsbioR1.sys" e "UsbioR1.inf". Após isso, clique em "Avançar >" e;

- Depois, basta clicar no botão "Concluir" para finalizar o processo de instalação.

Será exibido na lista de dispositivos a porta "Bematech USB Printer", efetivando a instalação.

Observação: Para ter certeza de que a instalação foi bem sucedida, ao desligar a impressora o dispositivo "Bematech USB Printer" irá sumir da lista de dispositivos e ao ligar ele irá surgir.

Nota: Caso o procedimento acima não consiga instalar o dispositivo corretamente, na terceira janela do assistente escolha "Não pesquisar. Escolherei o driver a ser instalado." Nos modelos que surgirem, escolha "Bematech USB Printer" e clique em "Avançar >". Se nos modelos não constar "Bematech USB Printer", clique em "Com disco...", procure o arquivo "UsbioR1.inf" e prossiga com a instalação.

- Configurando o arquivo BemaFI32.ini

Após realizada a instalação da porta USB (Bematech USB Printer), abra o arquivo BemaFI32.ini e localize a chave "Porta". Nesta chave, modifique seu valor para USB (Porta=USB). Desta forma, o aplicativo comercial irá se comunicar com a impressora, através da BemaFI32.dll, via USB.


Gerando a lib para Borland C++ Builder

Para utilizar a BemaFI32.dll na linguagem de programação C++ Builder da Borland, é necessário criar uma lib a partir da dll. Para isso, use o comando "IMPLIB".

IMPLIB BemaFI32.lib BemaFI32.dll

- Para maiores informações consulte a documentação da linquagem.


Histórico de Versões

Criamos este tópico para apresentar as implementação/correções ocorridas nas versões da BemaFI32.dll.

versão 5.3.0.0

- Arquivo BemaFI32.ini

· O arquivo de configuração da DLL não precisa estar no diretório de sistema do Windows (Windows\System ou Windows\System32). Ele pode ser distribuído, juntamente com a dll, no mesmo diretório da aplicação. Caso o arquivo BemaFI32.ini não esteja, juntamente com a dll, o default de procura será o diretório de sistema do Windows.

- Pacote JAVA atualizado

· Foram implementadas melhorias na classe JAVA de acesso às impressoras fiscais Bematech, através da BemaFI32.dll. Agora, existe um pacote chamado Bematech.jar, o qual contém todas as classes utilizadas para realizar as operações com a impressora. Basta adicionar no projeto Java o arquivo Bematech.jar e a seguinte linha de código à classe do projeto: import bemajava.*;

- Log Diário

· Foi criada a chave "LogDiario" no arquivo BemaFI32.ini que possibilita a geração do arquivo "BemaFI32.log" diariamente, ou seja, a dll irá criar um arquivo BemaFI32-AAAAMMDD.log com as operações realizadas entre sua aplicação -> dll -> impressora, permitindo uma maior depuração de possíveis erros que possam ocorrer. Serão mantidos apenas os 7 últimos logs gerados, sendo os anteriores apagados - sempre logs semanais. Essa configuração só terá efeito se a chave Log também estiver habilitada (Log=1).

- CrLfVinculado e CrLfGerencial

· Criamos as chaves "CrLfVinculado" e "CrLfVinculado" no arquivo BemaFI32.ini que permite ativar ou desativar o envio dos caracteres LF+CR pela dll. Se sua aplicação já envia estes caracteres, juntamente com as linhas do texto para o cupom não fiscal vincula ou relatório gerencial, estas chaves podem ficar desativadas no arquivo BemaFI32.ini (CrLfVinculado=0 e CrLfVinculado=0). Mas, se você deseja que a dll controle o envio destes caracteres automaticamente, estas chaves devem estar ativadas. O envio destes caracteres para salto de linha, terá efeitos nas funções Bematech_FI_UsaComprovanteNaoFiscalVinculado e Bematech_FI_RelatorioGerencial.

- TimeOutGerencial

· É possível controlar o timeout de retorno da dll, quando é realizada a impressão do relatório gerencial nas impressoras fiscais modelo MP-20 FI II e MP-40 FI II. Estes modelos imprimem uma Leitura X (exigido por lei) antes do inicio da impressão do relatório gerencial. O valor default é 40 segundos, podendo ser configurado até 120 segundos.

- Bematech_FI_EfetuaFormaPagamentoIndiceDescricaoForma

· Função implementada para efetuar a forma de pagamento, através de seu índice, permitindo o envio de um texto adicional.

- Bematech_FI_AtivaDesativaCancelamentoCupom2HorasMFD

· Função implementada para ativar ou desativar o cancelamento do cupom fiscal que é realizado pela impressora, automaticamente quando é impressa a redução Z, às 02:00 horas. Se esta opção for desativada, a impressora não cancelará o cupom fiscal que se encontra aberto, quando a mesma for emitir a redução Z às 02:00 horas (caso esteja habilitada para emitir a redução Z automaticamente), permitindo que a aplicação encerre o cupom para posteriormente emitir a redução Z. Esta função está disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.03.03 e superior, ou MP-2100 TH FI.

- Bematech_FI_VerificaCancelamentoCupom2HorasMFD

· Função implementada para verificar se o flag de cancelamento está habilitado ou não. Esta função está disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.03.03 e superior, ou MP-2100 TH FI.

- Bematech_FI_NumeroSerieCriptografado

· Função implementada para retornar o número de série da impressora fiscal, já criptografado. Para os modelos MP-25 FI, MP-50 FI, MP-2000 TH FI, MP-2100 TH FI e MP-6000 TH FI, a chave "Impressora" deve estar igual a 1 (Impressora=1) no arquivo de configuração BemaFI32.ini para que o número de série retornado seja de 20 caracteres para a criptografia. Caso esta chave esteja igual a 0 (Impressora=0), serão retornados apenas 15 caracteres para a criptografia.

- Bematech_FI_NumeroSerieDescriptografado

· Função implementada para descriptografar o número de série, criptografado a partir da função Bematech_FI_NumeroSerieCriptografado.

versão 5.3.1.0
· Versão gerada após correção do erro de comunicação durante a leitura das formas de pagamento usando o emulado

versão 5.3.4.0
· Alterada a variável de envio de comandos para o Bematech Monitor de global para local.

versão 5.3.5.0
· Alterada a função Bematech_FI_VendaBruta para calcular a venda bruta lendo as informações dos totalizadores parciais, quando os dados da ultima redução z estiverem zerados.
· Compatibilizada a função Bematech_FI_EfetuaFormaPagamentoImpAntiga e Bematech_FI_ReducaoZImpAntiga com as impressoras convenio 85.

versão 5.3.6.0
· Implementado o fechamento e abertura da porta de comunicação quando ocorre erro ao enviar o comando para a impressora.
· Melhorado o tratamento de timeout da redução z. Se for impressora Térmica desconsidera a configuração do ini (TimeOutZ), fica aguardando enquanto a impressora estiver retornando busy

versão 5.3.7.0
· Implementado o suporte a MP-2100 TH FI nas funções Bematech_FI_RelatorioSintegraMFD e Bematech_FI_GeraRelatorioSintegraMFD.

versão 5.3.8.0
· Implementada a leitura múltipla de dados para melhorar o desempenho na utilização do Windows Terminal Service.

versão 5.4.0.0
· Incluido suporte a impressora MP-3000 TH FI.
· Atualizada a função Bematech_FI_DadosSintegraMFD para suportar novo layout da leitura da memória fiscal.
· Atualizada a função Bematech_FI_ModeloImpressora para suportar a MP-3000 TH FI.
· Atualizado o arquivo .inf do driver USB para reconhecer o novo Vendor ID da Bematech atualizado na MP-3000 TH FI.
· Corrigido o erro de comunicação na interface USB.

versão 5.4.1.0
· Incluido suporte ao emulador da impressora MP-3000 TH FI (Emul3000).
· Corrigido erro de comunicação, na função de redução Z, para plataforma Windows Terminal Server.

versão 5.5.0.0
· Incluido suporte a geração dos registro da portaria CAT-52 do estado de SP.

versão 5.5.0.1
· Correções na função Bematech_FI_LeituraXSerial.

versão 5.6.0.0
· Correções nas rotinas de geração da RFD.

versão 5.6.1.0
· Correções nas rotinas de geração da RFD.
· Correções nas rotinas de uso do Bematech Monitor.
· Suporte de geração da RFD para o emulador.

versão 5.6.7.1
· Correções nas rotinas de geração da RFD.
· Implementação do controle e geração do arquivo da portaria CAT-52 quando é realizada a redução z automática em todas as situações.

versão 5.7.0.0
· Correções nas rotinas de geração da RFD.
· Implementada a função Bematech_FI_GeraRegistrosCAT52MFD.
· Implementado no arquivo BemaFI32.ini as chaves "ForceWTSClient" e "RetriesWTSCmd" para utilização com o driver Bematech Monitor

versão 5.8.0.0
· Correções nas rotinas de geração da RFD.
· Implementada a função Bematech_FI_TotalIcmsCupom.
· Correções na função Bematech_FI_GeraRegistrosCAT52MFD quando usada em VB.
· Implementada a função Bematech_FI_GeraRegistrosCAT52MFDEx.
· Implementado os índices das funções Bematech_FI_GeraRegistrosCAT52MFD e Bematech_FI_TotalIcmsCupom
· para o Bematech Monitor.

versão 5.8.0.2
· Correção de data na geração do arquivo rfd para as impressoras matriciais.
· Implementada o alias curto para a função Bematech_FI_GeraRegistrosCAT52MFD (Bema_FI_GeraRegCAT52MFD).

versão 5.8.0.3
· Implementado controle da CAT-52 para a impressora MP-20 FI II códigos 4008 e 4108.

versão 5.8.0.4
· Correção da rotina de download das impressoras MFD para geração do Ato Cotepe 17/04.

versão 5.9.0.0
· Implementada a compatibilização com as impressora fiscais modelo MP-7000 TH FI e IBM 4610-KN4.
· Implementada a função Bematech_FI_ViraChequeMFD específica para estes dois modelos.
· Implementada a Bematech_FI_AvancaPapelAcionaGuilhotinaMFD específica para estes dois modelos.
· Implementada a Bematech_FI_ImprimeChequeMFDEx específica para estes dois modelos.

versão 5.9.0.1
· Ajuste no time-out de download da MFD em impressoras térmicas, eliminando erros de comunicação, no processo de geração do arquivo do Ato Cotepe 17/04 para a NF Paulista.

versão 5.9.2.0
· Implementado suporte a geração da CAT-52 para as impressoras matricias Eagle (Printer 2000 e Printer 2002)

versão 5.9.3.0
· Corrigido o erro de alíquota não programada quando utilizado o Bematech Monitor com a geração da CAT52 desabilitada (UF=). Se a geração da CAT52 estivesse habilitada (UF=SP) o erro não ocorria.
· Corrigido o erro "Exception java.lang.UnsatisfiedLinkError: bemajava.Bematech.CGC_IE" durante a chamada da função CGC_IE no módulo java Bematech.jar.

versão 5.9.7.0
· Após a emissão de cupom fiscal as informações da impressora páram de ser retornadas no arquivo retorno.txt quando as chaves "Retorno" e "CalculoIcmsCupom" estão configuradas com o valor 1 no arquivo BemaFI32.ini.
· Ao configurar a chave "ForceWTSClient" com o valor 1 no arquivo BemaFI32.ini e executar qualquer comando, a dll gerava "Access Violation" no ambiente WTS (Windows Terminal Server).
· Compatibilizada a função "Bematech_FI_VendeItemDepartamento" para a impressora MP-7000 TH FI
· Impressora fiscal modelo MP-20 FI II código 4708 estava gerando o relatório da CAT-52 como impressora EAGLE.

versão 5.10.0.0
· Implementado o modelo MP-4000 TH FI.
· Implementadas as funções:
· Bematech_FI_FlagsFiscais3MFD
· Bematech_FI_VendeItemArredondamentoMFD
· Bematech_FI_TotalIssCupomMFD
· Bematech_FI_AbreSegundaViaNaoFiscalVinculadoMFD
· Bematech_FI_AtivaDesativaGuilhotinaMFD
· Bematech_FI_EstornoNaoFiscalVinculadoPosteriorMFD
· Criada a chave HabilitaRFDImpMFD que permite a geração do arquivo .rfd para os modelos de impressoras fiscais térmicas.

versão 5.10.3.0
· Foram atualizadas as seguintes funções:
· Bematech_FI_GeraRegistrosCAT52MFDEx
· Bematech_FI_TotalIcmsCupom
· Realiza correção na função Bematech_FI_RetornoAliquotas para quando existem alíquotas "00,00%" cadastradas na impressora.

versão 5.10.4.3
· Implementado Suporte a balanca Bematech SA-110.
· Foram atualizadas as seguintes funções:
· Bematech_FI_InfoBalanca
· Implementadas as funções:
· Bematech_FI_BaudRateBalanca
· Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional
· Implementado suporte RFD para todos os estados. Para gerar o arquivo .rfd, incluir no BemaFI32.ini a chave GerarRFD=0 na seção [Sistema].

versão 5.10.4.4
· Geração RFD independente por estado. Implementação para suportar CAT52 no estado Alagoas.
· Suporte a balança Bematech
· Função para retornar a data do último usuário, a data do último sw básico e mf adicional (Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional)

versão 5.10.4.5
· Correção bug na função Bematech_FI_ModeloImpressora que não identificava corretamente a impressora 4610 KN4 (IBM).

versão 5.10.4.6
· Correção de bug na função Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional

versão 5.10.4.7
· Compatibilidade da função Bematech_FI_DadosSintegraMFD para a impressora fiscal MP-4000 TH FI

versão 5.10.4.12
· Implementado Alias com nomes curtos nas funções, para linguagens de programação que aceitam até 32 caracteres no nome
· Compatibilidade da função Bematech_FI_DadosSintegraMFD na impressora fiscal MP-4000 TH FI
· Correção no retorno da função Bematech_FI_StatusEstendidoMFD para o pacote Bematech.jar (Java)
· Implementada a leitura arquivo BemaFI32.ini também para o diretório local
· Alteração na abertura da porta serial da balança (função Bematech_FI_InfoBalanca) sem controle de fluxo


 Bematech_FI_AlteraSimboloMoeda

Bematech_FI_AlteraSimboloMoeda

Altera o símbolo da moeda programada na Impressora Fiscal.

Parâmetro:

Moeda: STRING contendo o símbolo da moeda. O $ (cifrão) é inserido automaticamente.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- O cupom fiscal deve estar fechado.

- Será executada somente após uma Redução Z.

- Na impressora fiscal Bematech modelo MP-2100 TH FI, a programação do símbolo da moeda é feita somente por Intervenção Técnica.

- Na impressora fiscal YANCO, a programação do símbolo da moeda é feita somente por Intervenção Técnica.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AlteraSimboloMoeda(" R")

// Exemplo em Delphi

cSimboloMoeda := ' R';

iRetorno := Bematech_FI_AlteraSimboloMoeda( pchar( cSimboloMoeda ) );


Bematech_FI_EspacoEntreLinhas

Programa o espaçamento entre as linhas impressas no cupom.

Parâmetro:

Dots: INTEIRO entre 0 e 255 indicando o espaço (dots) entre as linhas. O valor default da impressora é 0.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, esta programação não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EspacoEntreLinhas(002)

// Exemplo em Delphi

iRetorno := Bematech_FI_EspacoEntreLinhas( 002 );


Bematech_FI_ForcaImpactoAgulhas

Permite tornar a impressão mais forte nos equipamentos baseados na MP-20 FI II.

Parâmetro:

ForcaImpacto: INTEIRO com o valor da força de impacto das agulhas que pode ser:

1 – Impacto fraco (default)

2 – Impacto médio

3 – Impacto forte

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BEMAFI32.INI não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- A seleção de uma força de impacto diferente da default implica na diminuição da vida útil do cabeçote de impressão.

- Na impressora fiscal YANCO, esta programação não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ForcaImpactoAgulhas(2)

// Exemplo em Delphi

iRetorno := Bematech_FI_ForcaImpactoAgulhas( 2 );


Bematech_FI_LinhasEntreCupons

Programa o espaçamento de linhas entre os cupons.

Parâmetro:

Linhas: INTEIRO entre 0 e 255 indicando o número de linhas. O valor default da impressora é 8 linhas.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, esta programação não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LinhasEntreCupons(5)

// Exemplo em Delphi

iRetorno := Bematech_FI_LinhasEntreCupons( 5 );


 Bematech_FI_NomeiaDepartamento

Bematech_FI_NomeiaDepartamento

Programa departamento na impressora.

Parâmetros:

Indice: INTEIRO com a posição em que o Departamento será cadastrado.

Departamento: STRING com até 10 caracteres com o nome do departamento.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- O cupom fiscal deve estar fechado

- Será executada somente após uma Redução Z.

- Na impressora fiscal YANCO, esta programaçã não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_NomeiaDepartamento(05, "Gasolina")

// Exemplo em Delphi

cDepartamento := 'Gasolina';

iRetorno := Bematech_FI_NomeiaDepartamento( 05, pchar( cDepartamento ) );


 Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms

Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms

Programa Totalizador Não Sujeito ao ICMS.

Parâmetros:

Indice: INTEIRO com a posição em que o totalizador será programado.

Totalizador: STRING até 19 caracteres com o nome do totalizador

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom fiscal deve estar fechado.

- Não pode haver outro totalizador cadastrado com o mesmo índice.

- Será executada somente após uma Redução Z ou antes do movimento de valor na impressora.

- Na impressora fiscal Bematech modelo MP-2100 TH FI o tamanho da descrição do totalizador foi reduzido para 15 caracteres. Para manter a compatibilidade, será aceito o tamanho de 19 caracteres, mas internamente a impressora registrará apenas os 15 primeiros caracteres.

- Na impressora fiscal YANCO, são programados apenas 4 (quatro) totalizadores. Os 4 (quatro) primeiros já são programados de fábrica.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms(05, "Conta de Luz")

// Exemplo em Delphi

cTot := 'Conta de Luz';

iRetorno := Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms( 05, pchar( cTot ) );


 Bematech_FI_ProgramaAliquota

Bematech_FI_ProgramaAliquota

Programa alíquota tributária na Impressora Fiscal.

Parâmetros:

Aliquota: STRING com o valor da alíquota a ser programada.

Vinculo: INTEIRO com o valor 0 (zero) para vincular a alíquota ao ICMS e 1 (um) para vincular ao ISS.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- O cupom fiscal deve estar fechado.

- Na impressora fiscal YANCO, a programação da Alíquota só é realizada por Intervenção Técnica.

- Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI a programação da alíquota só será permitida somente após uma Redução Z.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaAliquota("0500", 1)

// Exemplo em Delphi

cValor := '0500';

iRetorno := Bematech_FI_ProgramaAliquota( pchar( cValor ), 1 );


Bematech_FI_ProgramaArredondamento

Programa o modo arrendondamento na impressora. Este arredondamento se refere à venda de item com quantidade fracionária.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- O cupom fiscal deve estar fechado.

- Será executada somente após uma Redução Z.

- Na impressora fiscal YANCO, esta programação não existe.

- Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI está programação não existe. Elas somente operam em modo de truncamento.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaArredondamento()

// Exemplo em Delphi

iRetorno := Bematech_FI_ProgramaArredondamento();


Bematech_FI_ProgramaHorarioVerao

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âmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- A programação do horário de verão será realizada somente após uma Redução Z. Para desprogramar, somente 1 (uma) hora após a Redução Z e não pode ter havido movimento na impressora nesse período.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaHorarioVerao()

// Exemplo em Delphi

iRetorno := Bematech_FI_ProgramaHorarioVerao();


Bematech_FI_ProgramaTruncamento

Programa o modo truncamento na impressora.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- O cupom fiscal deve estar fechado

- Será executada somente após uma Redução Z.

- Na impressora fiscal YANCO, esta programaçã não existe.

- Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI está programação não existe. Elas somente operam em modo de truncamento.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaTruncamento()

// Exemplo em Delphi

iRetorno := Bematech_FI_ProgramaTruncamento();


 Bematech_FI_AbreCupom

Bematech_FI_AbreCupom

Abre o cupom fiscal na impressora.

Parâmetro:

CNPJ_CPF: STRING até 29 caracteres com o CNPJ ou CPF do cliente (opcional).

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom fiscal deve estar fechado.

- Na impressora fiscal YANCO, o parâmetro CNPJ/CPF não existe e não será impresso no Cupom Fiscal, mas a DLL efetua o tratamento e compatibiliza a função.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreCupom("11.111.111-11")

ou

iRetorno = Bematech_FI_AbreCupom("")

// Exemplo em Delphi

cCPF := '11.111.111-11';

iRetorno := Bematech_FI_AbreCupom( pchar( cCPF ) );

ou

iRetorno := Bematech_FI_AbreCupom( pchar( '' ) );


 Bematech_FI_AumentaDescricaoItem

Bematech_FI_AumentaDescricaoItem

Esta função permite aumentar a descrição do item até 200 caracteres.

Parâmetro:

Descricao: STRING com a descrição do item com até 200 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- Esta função deve ser usada antes da função Bematech_FI_VendeItem, pois assim, o item será impresso com a nova descrição.

- Ela tem validade somente para a impressão de um item, voltando ao default que é de 29 caracteres na descricao do item.

- Na impressora fiscal YANCO, este comando não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AumentaDescricaoItem("Produto 123/776 - 001 abc")

// Exemplo em Delphi

cDescMaior := 'Produto 123/776 - 001 abc';

iRetorno := Bematech_FI_AumentaDescricaoItem( pchar( cDescMaior ) );


 Bematech_FI_UsaUnidadeMedida

Bematech_FI_UsaUnidadeMedida

Imprime a unidade de medida após a quantidade do produto na venda de item.

Parâmetro:

UnidadeMedida: STRING com a unidade de medida até 2 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- Esta função deve ser usada, antes do envio da função Bematech_FI_VendeItem.

- Esta função 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.

- Na impressora fiscal YANCO, este comando não existe.

- Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI está programação não existe. Caso você deseje utilizar a unidade de medida, utilize a função Bematech_FI_VendeItemDepartamento.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_UsaUnidadeMedida("KG")

// Exemplo em Delphi

cUnidade := 'KG';

iRetorno := Bematech_FI_UsaUnidadeMedida( pchar( cUnidade ) );


 Bematech_FI_VendeItem

Bematech_FI_VendeItem

Vende item após a abertura do cupom fiscal. Essa função permite também a venda de itens com 3 casas decimais no valor unitário.

Parâmetros:

Codigo: STRING até 13 caracteres com o código do produto.

Descricao: STRING até 29 caracteres com a descrição do produto.

Aliquota: 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).

TipoQuantidade: 1 (um) caracter indicando o tipo de quantidade. I - Inteira e F - Fracionária.

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.

CasasDecimais: INTEIRO indicando o número de casas decimais para o valor unitário (2 ou 3).

ValorUnitario: STRING até 8 dígitos para valor unitário.

TipoDesconto: 1 (um) caracter indicando a forma do desconto. '$' desconto por valor e '%' desconto percentual.

ValorDesconto: String com até 8 dígitos para desconto por valor (2 casas decimais) e 4 dígitos para desconto percentual.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-3: Alíquota não programada.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Imagine que há duas alíquotas com o valor 12% cadastradas na impressora. A primeira cadastrada na posição 01 como ICMS e a outra na posição 05 como ISS. Se você informar o valor 1200 ou 12,00 no parâmetro "alíquota" a função irá imprimir o item usando a alíquota 01 de ICMS. A função lê as alíquotas da impressora e usa o índice da primeira ocorrência. Para usar a alíquota de ISS você deverá passar o índice 05 e não o valor 1200 ou 12,00. Se você não tiver duas alíquotas com o mesmo valor cadastradas na impressora use sempre o valor no parâmetro alíquota.

- O cupom fiscal deve estar aberto.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VendeItem("123", "Caneta", "1200", "I", "10", 2, "0,25", "%", "0000")

// Exemplo em Delphi

cCodigo        := '123';

cDescricao     := 'Caneta';

cAliquota      := '1200';

cTipoQtde      := 'I';

cQtde          := '10';

iCasasDecimais := 2;

cValor         := '0,25';

cTipoDesconto  := '%';

cValorDesc     := '0000';

iRetorno := Bematech_FI_VendeItem( pchar( cCodigo ),

                                  pchar( cDescricao ),

                                  pchar( cAliquota ),

                                  pchar( cTipoQtde ),

                                  pchar( cQtde ),

                                  iCasasDecimais,

                                  pchar( cValor ),

                                  pchar( cTipoDesconto ),

                                  pchar( cValorDesc ) );


 Bematech_FI_VendeItemDepartamento

Bematech_FI_VendeItemDepartamento

Essa função permite a venda de itens com entrada de departamento, desconto e unidade de medida.

Parâmetros:

Codigo: STRING até 49 caracteres com o código do produto.

Descricao: STRING até 201 caracteres com a descrição do produto.

Aliquota: 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)

ValorUnitario: STRING com até 9 dígitos para o valor (tres casas decimais).

Quantidade: STRING com até 7 dígitos para a quantidade. Na venda com departamento a quantidade é fracionária e são 3 casas decimais.

Acrescimo: STRING com o acréscimo por valor com até 10 dígitos (2 casas decimais).

Desconto: STRING com o desconto por valor com até 10 dígitos (2 casas decimais).

IndiceDepartamento: STRING com o índice do departamento com 2 dígitos.

UnidadeMedida: STRING com no máximo 2 caracteres para a unidade de medida. Caso não seja passado nenhum caracter a unidade não é impressa.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-3: Alíquota não programada.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- Obedece as mesmas situações descrita na função Bematech_FI_VendeItem.

- Na impressora fiscal YANCO, esta venda não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VendeItemDepartamento("123", "Caneta", "1200", "0,25", "10", "0", "0", "03", "UN")

// Exemplo em Delphi

cCodigo    := '123';

cDescricao := 'Caneta';

cAliquota  := '1200';

cValor     := '0,250';

cQtde      := '10,000';

cAcresc    := '0';

cDesc      := '0';

cIndice    := '03';

cUnidade   := 'UN';

iRetorno := Bematech_FI_VendeItemDepartamento( pchar( cCodigo ),

                                              pchar( cDescricao ),

                                              pchar( cAliquota ),

                                              pchar( cValor ),

                                              pchar( cQtde ),

                                              pchar( cAcresc ),

                                              pchar( cDesc ),

                                              pchar( cIndice ),

                                              pchar( cUnidade ) );


Bematech_FI_CancelaItemAnterior

Cancela o último item vendido.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom fiscal deve estar aberto

- Ao menos um ítem deve ter sido vendido

- Não deve ter sido cancelado nenhum item imediatamente anterior.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaItemAnterior()

// Exemplo em Delphi

iRetorno := Bematech_FI_CancelaItemAnterior();


 Bematech_FI_CancelaItemGenerico

Bematech_FI_CancelaItemGenerico

Cancela qualquer item dentre os cem (100) últimos itens vendidos.

Parâmetro:

NumeroItem: STRING com o número do item a ser cancelado com no máximo 3 dígitos.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom fiscal deve estar aberto

- Ao menos um ítem deve ter sido vendido

- O ítem não pode ter sido cancelado anteriormente e nem fora da faixa dos últimos itens vendidos.

- Na impressora fiscal YANCO, se o item informado para o cancelamento, sofreu algum desconto, o mesmo não será cancelado. A impressora retornará "Cancelamento Não Permitido", "Comando Não Executado".

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaItemGenerico("005")

// Exemplo em Delphi

cNumeroItem := '005';

iRetorno := Bematech_FI_CancelaItemGenerico( pchar( cNumeroItem ) );


 Bematech_FI_IniciaFechamentoCupom

Bematech_FI_IniciaFechamentoCupom

Inicia o fechamento do cupom com o uso das formas de pagamento.

Parâmetros:

AcrescimoDesconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.

TipoAcrescimoDesconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.

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

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom deve estar aberto

- Pelo menos um item deve ter sido vendido

- O valor do acréscimo ou descontado deve ser menor que o subtotal do cupom.

- Na impressora fiscal YANCO, caso não seja informado um acréscimo ou desconto, a linha do TOTAL não aparecerá impressa.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_IniciaFechamentoCupom("A", "%", "1000")

// Exemplo em Delphi

cAcreDesc      := 'A';

cTipoAcreDesc  := '%';

cValorAcreDesc := '1000';

iRetorno := Bematech_FI_IniciaFechamentoCupom( pchar( cAcreDesc ), pchar( cTipoAcreDesc ), pchar( cValorAcreDesc ) );


 Bematech_FI_EfetuaFormaPagamento

Bematech_FI_EfetuaFormaPagamento

Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s) nessa forma.

Parâmetros:

FormaPagamento: STRING com a forma de pagamento com no máximo 16 caracteres.

ValorFormaPagamento: STRING com o valor da forma de pagamento com até 14 dígitos.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-24: Forma de pagamento não programada.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O fechamento do cupom com formas de pagamento deve ter sido iniciado.

- Na impressora fiscal YANCO, se a forma de pagamento não estiver cadastrada na impressora, a função retorna erro. A programação das formas de pagamento é feita, somente, por Interveção Técnica.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EfetuaFormaPagamento("Cartão VISA", "50,00")

// Exemplo em Delphi

cFormaPgto := 'Cartão VISA';

cValorPago := '50,00';

iRetorno := Bematech_FI_EfetuaFormaPagamento( pchar( cFormaPgto ), pchar( cValorPago ) );


 Bematech_FI_EfetuaFormaPagamentoDescricaoForma

Bematech_FI_EfetuaFormaPagamentoDescricaoForma

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:

FormaPagamento: STRING com a forma de pagamento com no máximo 16 caracteres.

ValorFormaPagamento: STRING com o valor da forma de pagamento com até 14 dígitos.

DescricaoFormaPagto: STRING com a descrição da forma de pagamento com no máximo 80 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-24: Forma de pagamento não programada.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- Descrição será impressa uma linha após a forma de pagamento.

- O fechamento do cupom com formas de pagamento deve ter sido iniciado.

- Na impressora fiscal YANCO, este comando não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EfetuaFormaPagamentoDescricaoForma("Cheque PRE","75,00","Vencimento em 15/02/02")

// Exemplo em Delphi

cFormaPgto := 'Cheque PRE';

cValorPago := '75,00';

cDescricao := 'Vencimento em 15/02/02';

iRetorno := Bematech_FI_EfetuaFormaPagamentoDescricaoForma( pchar( cFormaPgto ), pchar( cValorPago ), pchar( cDescricao ) );


 Bematech_FI_EfetuaFormaPagamentoIndice

Bematech_FI_EfetuaFormaPagamentoIndice

Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s), através de seu(s) índice(s).

Parâmetros:

IndiceFormaPagamento: STRING com o índice da forma de pagamento com 2 caracteres.

ValorFormaPagamento: STRING com o valor da forma de pagamento com até 14 dígitos.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-24: Forma de pagamento não programada.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- Descrição será impressa uma linha após a forma de pagamento.

- O fechamento do cupom com formas de pagamento deve ter sido iniciado.

- Na impressora fiscal YANCO, este comando não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EfetuaFormaPagamentoIndice("01","75,00")

// Exemplo em Delphi

cIndiceFormaPgto := '01';

cValorPago       := '75,00';

iRetorno := Bematech_FI_EfetuaFormaPagamentoIndice( pchar( cIndiceFormaPgto ), pchar( cValorPago ) );


 Bematech_FI_EfetuaFormaPagamentoIndiceDescricaoForma

Bematech_FI_EfetuaFormaPagamentoIndiceDescricaoForma

Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s), atravé de seu índice, permite a impressão de comentários na(s) forma(s) de pagamento.

Parâmetros:

IndiceFormaPagamento: STRING com o índice da forma de pagamento com 2 caracteres.

ValorFormaPagamento: STRING com o valor da forma de pagamento com até 14 dígitos.

DescricaoOpcional: STRING com um comentário da forma de pagamento com no máximo 80 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-24: Forma de pagamento não programada.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- Descrição será impressa uma linha após a forma de pagamento.

- O fechamento do cupom com formas de pagamento deve ter sido iniciado.

- Na impressora fiscal YANCO, este comando não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EfetuaFormaPagamentoIndiceDescricaoForma("02","75,00","Vencimento em 15/02/02")

// Exemplo em Delphi

cFormaPgto := '02';

cValorPago := '75,00';

cDescricao := 'Vencimento em 15/02/02';

iRetorno := Bematech_FI_EfetuaFormaPagamentoIndiceDescricaoForma( pchar( cFormaPgto ), pchar( cValorPago ), pchar( cDescricao ) );


 Bematech_FI_TerminaFechamentoCupom

Bematech_FI_TerminaFechamentoCupom

Termina o fechamento do cupom com mensagem promocional.

Importante:

- O campo referente a mensagem promocional também pode ser usado para imprimir a mensagem suplementar, conforme exigência do Convênio PAF-ECF.

Parâmetro:

Mensagem: STRING com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas), para a impressora fiscal MP-20 FI II, e 320 caracteres (8 linhas X 40 colunas), para a impressora fiscal MP-40 FI II.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-36: Forma de pagamento não finalizada.

Observações:

- A forma de pagamento deve ter sido efetuada.

- Na impressora fiscal BEMATECH, serão impressas 8 linhas de texto.

- Na impressora fiscal YANCO, serão impressas 4 linhas de texto. Cada linha com 46 colunas.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_TerminaFechamentoCupom("Obrigado, volte sempre !!!")

// Exemplo em Delphi

cMsgPromocional := 'Obrigado, volte sempre !!!';

iRetorno := Bematech_FI_TerminaFechamentoCupom( pchar( cMsgPromocional ) );


 Bematech_FI_FechaCupom

Bematech_FI_FechaCupom

Fecha o cupom fiscal com a impressão da mensagem promocional.

Parâmetros:

FormaPagamento: STRING com o nome da forma de pagamento com no máximo 16 caracteres.

AcrescimoDesconto: Indica se haverá acréscimo ou desconto no cupom. 'A' para acréscimo e 'D' para desconto.

TipoAcrescimoDesconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.

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

ValorPago: STRING com o valor pago com no máximo 14 dígitos.

Mensagem: STRING com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas), para a impressora fiscal MP-20 FI II, e 320 caracteres (8 linhas X 40 colunas), para a impressora fiscal MP-40 FI II.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom deve estar aberto.

- Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado.

- A utilização essa função elimina a obrigatoriedade de uso das funções Bematech_FI_IniciaFechamentoCupom, Bematech_FI_EfetuaFormaPagamento e Bematech_FI_TerminaFechamentoCupom que estão implementadas internamente na função.

- Na impressora fiscal YANCO, se a forma de pagamento não estiver cadastrada na impressora, a função retorna erro. A programação das formas de pagamento é feita, somente, por Interveção Técnica.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FechaCupom("Dinheiro", "A", "$", "0000", "35,00", "Obrigado, volte sempre !!!")

// Exemplo em Delphi

cFormaPgto      := 'Dinheiro';

cAcresDesc      := 'A';

cTipoAcresDesc  := '$';

cValorAcresDesc := '0000';

cValorPago      := '35,00';

cMsgPromocional := 'Obrigado, volte sempre !!!';

iRetorno := Bematech_FI_FechaCupom( pchar( cFormaPgto ),

                                   pchar( cAcresDesc ),

                                   pchar( cTipoAcresDesc ),

                                   pchar( cValorAcresDesc ),

                                   pchar( cValorPago ),

                                   pchar( cMsgPromocional ) );


 Bematech_FI_FechaCupomResumido

Bematech_FI_FechaCupomResumido

Permite fechar o cupom de forma resumida, ou seja, sem acréscimo ou desconto no cupom e com apenas uma forma de pagamento. Essa função lê o subtotal do cupom para fecha-lo.

Parâmetros:

FormaPagamento: STRING com a forma de pagamento com no máximo 16 caracteres.

Mensagem: STRING com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas), para a impressora fiscal MP-20 FI II, e 320 caracteres (8 linhas X 40 colunas), para a impressora fiscal MP-40 FI II.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom deve estar aberto

- Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado

- A utilização essa função elimina a obrigatoriedade de uso das funções Bematech_FI_IniciaFechamentoCupom, Bematech_FI_EfetuaFormaPagamento e Bematech_FI_TerminaFechamentoCupom que estão implementadas internamente na função.

- Na impressora fiscal YANCO, se a forma de pagamento não estiver cadastrada na impressora, a função retorna erro. A programação das formas de pagamento é feita, somente, por Interveção Técnica.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FechaCupomResumido("Ticket", "Obrigado, volte sempre !!!")

// Exemplo em Delphi

cFormaPgto      := 'Ticket';

cMsgPromocional := 'Obrigado, volte sempre !!!';

iRetorno := Bematech_FI_FechaCupomResumido( pchar( cFormaPgto ), pchar( cMsgPromocional ) );


Bematech_FI_CancelaCupom

Cancela o último cupom emitido.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- No caso de cancelamento com o cupom ainda aberto, pelo menos um item deve ter sido vendido.

- Não poderá ter ocorrido Redução Z e nem Leitura X após a emissão do cupom.

- Na impressora fiscal YANCO, se a forma de pagamento já foi iniciada, o cancelamento do Cupom Fiscal não será executado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaCupom()

// Exemplo em Delphi

iRetorno := Bematech_FI_CancelaCupom();


 Bematech_FI_EstornoFormasPagamento

Bematech_FI_EstornoFormasPagamento

Permite estornar valores de uma forma de pagamento e inserir em outra.

Parâmetros:

FormaOrigem: STRING com a forma de pagamento de onde o valor será estornado, com até 16 caracteres.

FormaDestino: STRING com a forma de pagamento onde o valor será inserido, com até 16 caracteres.

Valor: STRING com o valor a ser estornado com até 14 dígitos. Não pode ser maior que o total da forma de pagamento de origem.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, este comando não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EstornoFormasPagamento("Ticket", "Dinheiro", "50,00")

// Exemplo em Delphi

cFormaPgtoOrigem  := 'Ticket';

cFormaPgtoDestino := 'Dineiro';

cValorForma       := '50,00';

iRetorno := Bematech_FI_EstornoFormasPagamento( pchar( cFormaPgtoOrigem ), pchar( cFormaPgtoDestino ), pchar( cValorForma ) );


Bematech_FI_LeituraX

Emite a Leitura X na impressora.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraX()

// Exemplo em Delphi

iRetorno := Bematech_FI_LeituraX();


Bematech_FI_LeituraXSerial

Recebe os dados da Leitura X pela serial e grava em arquivo texto.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraXSerial()

// Exemplo em Delphi

iRetorno := Bematech_FI_LeituraXSerial();


 Bematech_FI_LeituraMemoriaFiscalData

Bematech_FI_LeituraMemoriaFiscalData

Emite a leitura da memória fiscal da impressora por intervalo de datas.

Parâmetros:

DataInicial: STRING com a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

DataFinal: STRING com a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraMemoriaFiscalData("01/01/2002", "05/01/2002")

// Exemplo em Delphi

cDataInicial := '01/01/2002';

cDataFinal   := '05/01/2002';

iRetorno := Bematech_FI_LeituraMemoriaFiscalData( pchar( cDataInicial ), pchar( cDataFinal ) );


 Bematech_FI_LeituraMemoriaFiscalReducao

Bematech_FI_LeituraMemoriaFiscalReducao

Emite a leitura da memória fiscal da impressora por intervalo de reduções.

Parâmetros:

ReducaoInicial: STRING com o Número da redução inicial com até 4 dígitos.

ReducaoFinal: STRING com o Número da redução final com até 4 dígitos.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraMemoriaFiscalReducao("0100", "0110")

// Exemplo em Delphi

cReducaoInicial := '0100';

cReducaoFinal   := '0110';

iRetorno := Bematech_FI_LeituraMemoriaFiscalReducao( pchar( cReducaoInicial ), pchar( cReducaoFinal ) );


 Bematech_FI_LeituraMemoriaFiscalSerialData

Bematech_FI_LeituraMemoriaFiscalSerialData

Recebe os dados da memória fiscal por intervalo de datas pela serial e grava em arquivo texto.

Parâmetros:

DataInicial: STRING com a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

DataFinal: STRING com a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraMemoriaFiscalSerialData("01/01/2002", "05/01/2002")

// Exemplo em Delphi

cDataInicial := '01/01/2002';

cDataFinal   := '05/01/2002';

iRetorno := Bematech_FI_LeituraMemoriaFiscalSerialData( pchar( cDataInicial ), pchar( cDataFinal ) );


 Bematech_FI_LeituraMemoriaFiscalSerialReducao

Bematech_FI_LeituraMemoriaFiscalSerialReducao

Recebe os dados da leitura da memória fiscal por intervalo de reduções pela serial e grava em arquivo texto.

Parâmetros:

ReducaoInicial: STRING com o Número da reducao inicial com até 4 dígitos.

ReducaoFinal: STRING com o Número da reducao final com até 4 dígitos.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraMemoriaFiscalSerialReducao("0100", "0110")

// Exemplo em Delphi

cReducaoInicial := '0100';

cReducaoFinal   := '0110';

iRetorno := Bematech_FI_LeituraMemoriaFiscalSerialReducao( pchar( cReducaoInicial ), pchar( cReducaoFinal ) );


 Bematech_FI_ReducaoZ

Bematech_FI_ReducaoZ

Emite a Redução Z na impressora. Permite ajustar o relógio interno da impressora em até 5 minutos.

Parâmetros:

Data: STRING com a Data atual da impressora no formato ddmmaa ou dd/mm/aa, dd/mm/aaaa ou dd/mm/aa.

Hora: STRING com a Hora a ser alterada no formato hhmmss ou hh:mm:ss.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Somente será aceito um ajuste de +/- 5 minutos. Se os valores estiverem fora dessa faixa serão limitados a 5 minutos.

- O cupom fiscal deve estar fechado.

- Na impressora fiscal YANCO, não são utilizados os parâmetros Data e Hora, mas podem ser informados, pois a DLL efetua o tratamento.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ReducaoZ("08/01/2000", "18:00:00")

ou

iRetorno = Bematech_FI_ReducaoZ("", "")

// Exemplo em Delphi

cData := '08/01/2000';

cHora := '18:00:00';

iRetorno := Bematech_FI_ReducaoZ( pchar( cData ), pchar( cHora ) );

ou

iRetorno := Bematech_FI_ReducaoZ( pchar( '' ), pchar( '' ) );


 Bematech_FI_RelatorioGerencial

Bematech_FI_RelatorioGerencial

Imprime o relatório gerencial.

Parâmetro:

Texto: STRING com o Texto a ser impresso no relatório com até 618 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom fiscal deve estar fechado.

- Se qualquer função diferente da Bematech_FI_RelatorioGerencial for chamada com o relatório aberto, efetuará seu fechamento automaticamente.

- Na impressora fiscal YANCO o tamanho da linha é de 46 colunas.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RelatorioGerencial("Digite o texto a ser impresso aqui !!!")

// Exemplo em Delphi

cTexto := 'Digite o texto a ser impresso aqui !!!';

iRetorno := Bematech_FI_RelatorioGerencial( pchar( cTexto ) );


Bematech_FI_FechaRelatorioGerencial

Encerra o relatório gerencial.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O relatório gerencial deve estar aberto.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FechaRelatorioGerencial()

// Exemplo em Delphi

iRetorno := Bematech_FI_FechaRelatorioGerencial();


 Bematech_FI_AbreComprovanteNaoFiscalVinculado

Bematech_FI_AbreComprovanteNaoFiscalVinculado

Abre o comprovante não fiscal vinculado.

Parâmetros:

FormaPagamento: Forma de pagamento com até 16 caracteres.

Valor: Valor pago na forma de pagamento com até 14 dígitos (2 casas decimais).

NumeroCupom: Número do cupom a que se refere o comprovante com até 6 dígitos.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- A forma de pagamento utilizada não pode ser dinheiro.

- A forma de pagamento deve ter sido utilizada no cupom.

- Só pode ser emitido 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 ao último cupom fiscal emitido.

- Na impressora fiscal YANCO, os parâmetros utilizados nesta função são opcionais. O Comprovante Não Fiscal Vinculado é aberto independente da forma de pagamento impressa no Cupom Fiscal.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreComprovanteNaoFiscalVinculado("Cartao VISA", "", "")

// Exemplo em Delphi

cFormaPgto := 'Cartao VISA';

iRetorno := Bematech_FI_AbreComprovanteNaoFiscalVinculado( pchar( cFormaPgto ), pchar( '' ), pchar( '' ) );


 Bematech_FI_UsaComprovanteNaoFiscalVinculado

Bematech_FI_UsaComprovanteNaoFiscalVinculado

Imprime o comprovante não fiscal vinculado.

Parâmetro:

Texto: STRING com o Texto a ser impresso no comprovante não fiscal vinculado com até 618 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Na impressora fiscal BEMATECH, 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.

- Na impressora fiscal YANCO, não tem limite de tempo, para o fechamento do comprovante. O tamanho da linha é de 46 colunas.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_UsaComprovanteNaoFiscalVinculado("Digite o texto a ser impresso aqui !!!")

// Exemplo em Delphi

cTexto := 'Digite o texto a ser impresso aqui !!!';

iRetorno := Bematech_FI_UsaComprovanteNaoFiscalVinculado( pchar( cTexto ) );


Bematech_FI_FechaComprovanteNaoFiscalVinculado

Encerrar o comprovante não fiscal vinculado.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O comprovante não fiscal vinculado deve ter sido aberto.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FechaComprovanteNaoFiscalVinculado()

// Exemplo em Delphi

iRetorno := Bematech_FI_FechaComprovanteNaoFiscalVinculado();


 Bematech_FI_Suprimento

Bematech_FI_Suprimento

Faz um suprimento na impressora (entrada de dinheiro).

Parâmetros:

Valor: STRING com o Valor do suprimento com até 14 dígitos (2 casas decimais).

FormaPagamento: STRING com a Forma de pagamento com até 16 caracteres. Se não for informada, o suprimento será feito em Dinheiro.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Na impressora fiscal YANCO, o Suprimento é impresso como Recebimento e em Dinheiro.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_Suprimento("50,00", "Dinheiro")

// Exemplo em Delphi

cValor     := '50,00';

cFormaPgto := 'Dinheiro';

iRetorno := Bematech_FI_Suprimento( pchar( cValor ), pchar( cFormaPgto ) );


 Bematech_FI_Sangria

Bematech_FI_Sangria

Faz uma sangria na impressora (retirada de dinheiro).

Parâmetro:

Valor: STRING com o Valor da sangria com até 14 dígitos (2 casas decimais).

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_Sangria("25,00")

// Exemplo em Delphi

cValor := '25,00';

iRetorno := Bematech_FI_Sangria( pchar( cValor ) );


 Bematech_FI_RecebimentoNaoFiscal

Bematech_FI_RecebimentoNaoFiscal

Imprime o comprovante não fiscal não vinculado.

Parâmetros:

IndiceTotalizador: STRING com o Indice do totalizador para recebimento parcial com até 2 dígitos.

ValorRecebimento: STRING com o Valor do recebimento com até 14 dígitos (duas casas decimais).

FormaPagamento: STRING com a Forma de pagamento com até 16 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom fiscal deve estar fechado.

- O totalizador deve estar cadastrado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RecebimentoNaoFiscal("05", "30,00", "Dinheiro")

// Exemplo em Delphi

cIndiceTot := '05';

cValor     := '30,00';

cFormaPgto := 'Dinheiro';

iRetorno := Bematech_FI_RecebimentoNaoFiscal( pchar( cIndiceTot ), pchar( cValor ), pchar( cFormaPgto ) );


Bematech_FI_Autenticacao

Permite a autenticação de documentos.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Deverá ser executada imediatamente após um recebimento não fiscal ou o término de um cupom fiscal.

- Poderá ser repetido até 5 vezes para cada recebimento, após isso o comando será ignorado.

- Na impressora fiscal BEMATECH, 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, a impressora retornará ao seu estado normal, retornando o status de "Comando Não Executado".

- Na impressora fiscal YANCO, o documento deve ser posicionado antes do envio da função, caso contrário a autenticação será impressa na bobina.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_Autenticacao()

// Exemplo em Delphi

iRetorno := Bematech_FI_Autenticacao();


 Bematech_FI_ProgramaCaracterAutenticacao

Bematech_FI_ProgramaCaracterAutenticacao

Programa um caracter gráfico para autenticação.

Parâmetro:

Coordenadas: STRING com os 18 valores para programação do caracter gráfico, separados por vírgula. Veja exemplo abaixo em "Observações".

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-3: Alíquota não programada.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

Exemplo de programação do caracter gráfico:

- Para programar o caracter acima deve-se passar a seguinte string de parâmetros: "001,002,004,008,016,032,064,128,064,032,016,008,004,002,129,129,129,129"

- Uma vez programado, este caracter será mantido na memória da impressora mesmo que a mesma seja desligada.

- Na impressora fiscal YANCO, esta programação não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaCaracterAutenticacao("001,002,004,008,016,032,064,128,064, 032,016,008,004,002,129,129,129,129")

// Exemplo em Delphi

cCoordenadas := '001,002,004,008,016,032,064,128,064,032,016,008,004,002,129,129,129,129';

iRetorno := Bematech_FI_ProgramaCaracterAutenticacao( pchar( cCoordenadas  ) );


Bematech_FI_AcionaGaveta

Abre a gaveta de dinheiro.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AcionaGaveta()

// Exemplo em Delphi

iRetorno := Bematech_FI_AcionaGaveta();


Bematech_FI_VerificaEstadoGaveta

Retorna se a gaveta está fechada ou aberta.

Parâmetro:

Estado: INTEIRO com a Variável para receber o estado da gaveta, onde:

Estado = 1 sensor em nível 1 (fechada)

Estado = 0 sensor em nível 0 (aberta)

Observação:

A função retornará estes valores para as impressoras fiscais BEMATECH. Caso esteja utilizando impressora fiscal YANCO, mude a chave "ModoGaveta" (encontrado nas configurações do arquivo BemaFI32.ini) para 1 (um), para que os retornos sejam os mesmos citados acima. Não esqueça de mudar a chave "ModeloImp" para YANCO.

IMPORTANTE

Em alguns modelos de gaveta, este retorno poderá ser invertido, ou seja, o retorno que corresponde a "gaveta aberta", poderá ser o retorno para "gaveta fechada". Caso isso ocorra, mude a chave "ModoGaveta" (encontrado nas configurações do arquivo BemaFI32.ini), para 1 (um) e efetue o teste de retorno, desta função, abrindo e fechando a gaveta.

ATENÇÃO: É, extremamente, necessário usar um adaptador de gaveta, caso seja utilizada uma impressora fiscal BEMATECH com gaveta da marca YANCO ou vice-vesa, pois o sinal enviado, pela gaveta, poderá danificar a impressora.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VerificaEstadoGaveta( iEstado )

// Exemplo em Delphi

iRetorno := Bematech_FI_VerificaEstadoGaveta( iEstado );


Bematech_FI_Acrescimos

Retorna a valor acumulado dos acréscimos efetuados nos cupons.

Parâmetro:

ValorAcrescimo: Variável string com 14 posições para receber o valor dos acréscimos.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

ValorAcrescimo = Space(14)

iRetorno = Bematech_FI_Acrescimos(ValorAcrescimo)

// Exemplo em Delphi

for iConta := 1 to 14 do ValorAcrescimo := ValorAcrescimo + ' ';

iRetorno := Bematech_FI_Acrescimos( ValorAcrescimo );


Bematech_FI_Cancelamentos

Retorna o valor acumulado dos itens e dos cupons cancelados

Parâmetro:

Cancelamentos: Variável string com 14 posições para receber o valor dos cancelamentos com 2 casas decimais.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Cancelamentos = Space(14)

iRetorno = Bematech_FI_Cancelamentos(Cancelamentos)

// Exemplo em Delphi

for iConta := 1 to 14 do Cancelamentos := Cancelamentos + ' ';

iRetorno := Bematech_FI_Cancelamentos( Cancelamentos );


Bematech_FI_CGC_IE

Retorna o CGC e a Inscrição Estadual do cliente/proprietário cadastrado na impressora.

Parâmetros:

CGC: Variável string com 18 posições para receber o CGC.

IE: Variável string com 15 posições para receber a Inscrição Estadual.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

CGC = Space(18)

IE = Space(15)

iRetorno = Bematech_FI_CGC_IE(CGC, IE)

// Exemplo em Delphi

for iConta := 1 to 18 do CGC := CGC + ' ';

for iConta := 1 to 15 do IE  := IE  + ' ';

iRetorno := Bematech_FI_CGC_IE( CGC, IE );


Bematech_FI_ClicheProprietario

Retorna o clichê do proprietário cadastrado na impressora.

Parâmetro:

ClicheProprietario: Variável string com 186 posições para receber clichê cadastrado.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

ClicheProprietario = Space(186)

iRetorno = Bematech_FI_ClicheProprietario(ClicheProprietario)

// Exemplo em Delphi

for iConta := 1 to 186 do ClicheProprietario := ClicheProprietario + ' ';

iRetorno := Bematech_FI_ClicheProprietario( ClicheProprietario );


Bematech_FI_ContadoresTotalizadoresNaoFiscais

Retorna o número de vezes em que os totalizadores não sujeitos ao ICMS foram usados.

Parâmetro:

Contadores: Variável string com 44 posições para receber os contadores dos totalizadores.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- A impressora fiscal BEMATECH, permite a programação de até 50 totalizadores não fiscais, porém essa função 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 impressora fiscal YANCO não possui contadores dos totalizadores não fiscais. Será retornado zero, nas posições.

Exemplo:

' Exemplo em Visual Basic

Contadores = Space(44)

iRetorno = Bematech_FI_ContadoresTotalizadoresNaoFiscais(Contadores)

// Exemplo em Delphi

for iConta := 1 to 44 do Contadores := Contadores + ' ';

iRetorno := Bematech_FI_ContadoresTotalizadoresNaoFiscais( Contadores );


Bematech_FI_DadosUltimaReducao

Retorna os dados da impressora no momento da última Redução Z.

Parâmetro:

DadosReducao: Variável string com o tamanho de 631 posições para receber os dados da última redução.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- São retornados os valores das seguintes informações separados por vírgulas:

Modo de Redução Z.........................: | 2 bytes (se 00 redução por comando, se 01 redução automática)
Grande Total..............................: | 18 bytes (incluíndo as 2 casas decimais)
Cancelamentos.............................: | 14 bytes (incluíndo as 2 casas decimais)
Descontos.................................: | 14 bytes (incluíndo as 2 casas decimais)
Tributos..................................: | 64 bytes (16 alíquotas X 4 dígitos cada)
Totalizadores Parciais Tributados.........: | 266 bytes (valor acumulado na alíquota, incluindo as de Isenção (II) de Não incidencia (NN) e de Substituição Tributária (FF). São 16 alíquotas mais 3 (II,NN,FF), um total de 19 alíquotas. São 14 dígitos para o valor (incluíndo as 2 casas decimais). 19x14 (19 Alíquotas de 14 dígitos cada uma) que estam na seguinte ordem: 16 Alíquotas (224 bytes) depois II,NN,FF (42 bytes))
Sangria...................................: | 14 bytes (incluíndo as 2 casas decimais)
Suprimentos...............................: | 14 bytes (incluíndo as 2 casas decimais)
Totalizadores não sujeitos ao ICMS........: | 126 bytes (9 Totalizadores Não Fiscais, com 14 dígitos (incluíndo as 2 casas decimais))
Contadores dos TP's não sujeitos ao ICMS..: | 36 bytes (contador que indica quanto cada Totalizador Não Fiscal foi utilizado. 9x4 (9 totalizadores de 4 dígitos cada))
Contador de ordem de operação.............: | 6 bytes
Contador de operações não sujeitas ao ICMS: | 6 bytes
Número de Alíquotas cadastradas...........: | 2 bytes
Data do movimento.........................: | 6 bytes
Acréscimos................................: | 14 bytes (acréscimo que foi concedido na venda do item ou no fechamento do cupom fiscal, com 14 dígitos (incluíndo as 2 casas decimais))
Acréscimo financeiro......................: | 14 bytes (totalizador extinto nas versões 3.10 ou posterior, das Impressoras fiscals)

- A impressora fiscal YANCO não possui contadores dos operações não fiscais. Será retornado zero, nas posições.

Exemplo:

' Exemplo em Visual Basic

DadosReducao = Space(631)

iRetorno = Bematech_FI_DadosUltimaReducao(DadosReducao)

// Exemplo em Delphi

for iConta := 1 to 631 do DadosReducao := DadosReducao + ' ';

iRetorno := Bematech_FI_DadosUltimaReducao( DadosReducao ) ;


Bematech_FI_DataHoraImpressora

Retorna a data e a hora atual da impressora.

Parâmetros:

Data: Variável string com 6 posições para receber a data atual da impressora no formato ddmmaa.

Hora: Variável string com 6 posições para receber a hora atual da impressora no formato hhmmss.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Data = Space(6)

Hora = Space(6)

iRetorno = Bematech_FI_DataHoraImpressora(Data, Hora)

// Exemplo em Delphi

for iConta := 1 to 6 do Data := Data + ' ';

for iConta := 1 to 6 do Hora := Hora + ' ';

iRetorno := Bematech_FI_DataHoraImpressora( Data, Hora );


Bematech_FI_DataHoraReducao

Retorna a data da última Redução Z.

Parâmetros:

DataReducao: Variável string com 6 posições para receber a data da última redução no formato ddmmaa.

HoraReducao: Variável string com 6 posições parar eceber a hora da última redução no formato hhmmss.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

DataReducao = Space(6)

HoraReducao = Space(6)

iRetorno = Bematech_FI_DataHoraReducao(DataReducao, HoraReducao)

// Exemplo em Delphi

for iConta := 1 to 6 do DataReducao := DataReducao + ' ';

for iConta := 1 to 6 do HoraReducao := HoraReducao + ' ';

iRetorno := Bematech_FI_DataHoraReducao( DataReducao, HoraReducao );


Bematech_FI_DataMovimento

Retorna a data do último movimento.

Parâmetro:

DataMovimento: Variável string com 6 posições para receber a data do movimento no formato ddmmaa.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

DataMovimento = Space(6)

iRetorno = Bematech_FI_DataMovimento(DataMovimento)

// Exemplo em Delphi

for iConta := 1 to 6 do DataMovimento := DataMovimento + ' ';

iRetorno := Bematech_FI_DataMovimento( DataMovimento );


Bematech_FI_Descontos

Retorna a valor acumulado dos descontos.

Parâmetro:

Descontos: Variável string com 14 posições para receber o valor dos descontos com 2 casas decimais.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Descontos = Space(14)

iRetorno = Bematech_FI_Descontos(Descontos)

// Exemplo em Delphi

for iConta := 1 to 14 do Descontos := Descontos + ' ';

iRetorno := Bematech_FI_Descontos( Descontos );


Bematech_FI_FlagsFiscais

Retorna um número referente ao flag fiscal da impressora. Veja discriminação abaixo.

Parâmetro:

FlagFiscal: Variável inteira para receber um número representando o flag fiscal da impressora. Veja discriminação abaixo.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Discriminação dos valores para o flag fiscal:

Descrição                                    Valor

Cupom fiscal aberto                            1

Fechamento de formas de pagamento iniciado     2

Horário de verão selecionado                   4

Já houve redução Z no dia                      8

Não utilizado                                 16

Permite cancelar cupom fiscal                 32

Não utilizado                                 64

Memória fiscal sem espaço                    128

- Os valores podem vir somados o que indica mais de um estado.

- Para a impressora fiscal YANCO, os flags "Fechamento de formas de pagamento iniciado" e "Permite cancelar cupom fiscal" não existem.

Exemplo:

FlagFiscal = 37 (Cupom fiscal aberto, Horário de verão selecionado, Permite cancelar o cupom fiscal).

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FlagsFiscais(FlagFiscal)

// Exemplo em Delphi

iRetorno := Bematech_FI_FlagsFiscais( FlagFiscal );


Bematech_FI_FlagsVinculacaoIss

Retorna os flags das alíquotas de vinculacao ao ISS.

Parâmetro:

FlagVincISS_1: Variável inteira para receber o flag 1, referente as alíquotas da posição 1 a 8.

FlagVincISS_2: Variável inteira para receber o flag 2, referente as alíquotas da posição 9 a 16.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Os valores podem vir somados o que indica mais de uma alíquota vinculada.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FlagsVinculacaoIss(FlagVincISS_1, FlagVincISS_2)

// Exemplo em Delphi

iRetorno := Bematech_FI_FlagsVinculacaoIss( FlagVincISS_1, FlagVincISS_2 );


Bematech_FI_GrandeTotal

Retorna o valor do Grande Total da impressora.

Parâmetro:

GrandeTotal: Variável string com 18 posições para receber o valor do grande total com 2 casas decimais.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

GrandeTotal = Space(18)

iRetorno = Bematech_FI_GrandeTotal(GrandeTotal)

// Exemplo em Delphi

for iConta := 1 to 18 do GrandeTotal := GrandeTotal + ' ';

iRetorno := Bematech_FI_GrandeTotal( GrandeTotal );


Bematech_FI_MinutosImprimindo

Retorna o tempo em minutos que a impressora está ou esteve imprimindo.

Parâmetro:

MinutosImprimindo: Variável string com 4 posições para receber os minutos em impressão.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, este retorno não existe.

Exemplo:

' Exemplo em Visual Basic

MinutosImprimindo = Space(4)

iRetorno = Bematech_FI_MinutosImprimindo(MinutosImprimindo)

// Exemplo em Delphi

for iConta := 1 to 4 do MinutosImprimindo := MinutosImprimindo + ' ';

iRetorno := Bematech_FI_MinutosImprimindo( MinutosImprimindo );


Bematech_FI_MinutosLigada

Retorna o tempo em minutos que a impressora está ligada.

Parâmetro:

MinutosLigada: Variável string com 4 posições para receber os minutos em que a impressora está ligada.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, este retorno não existe.

Exemplo:

' Exemplo em Visual Basic

MinutosLigada = Space(4)

iRetorno = Bematech_FI_MinutosLigada(MinutosLigada)

// Exemplo em Delphi

for iConta := 1 to 4 do MinutosLigada := MinutosLigada + ' ';

iRetorno := Bematech_FI_MinutosLigada( MinutosLigada );


Bematech_FI_ModeloImpressora

Retorna o modelo da impressora fiscal em uso.

Parâmetro:

Modelo: Variável string com 10 posições para receber o modelo da impressora. O retorno da variável será: "MP20FI", "MP40FI", "MP25FI", "MP50FI", "MP2000FI", "MP6000FI", "MP2100FI", "4610-KR4" ou "4679-3B4".

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução (impressora desconhecida).

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

cModeloImp = space(10)

iRetorno = Bematech_FI_ModeloImpressora(cModeloImp)

// Exemplo em Delphi

for iConta := 1 to 10 do cModeloImp := cModeloImp + ' ';

iRetorno := Bematech_FI_ModeloImpressora( cModeloImp );


Bematech_FI_MonitoramentoPapel

Retorna o número de linhas impressas após o status de Pouco Papel.

Parâmetro:

LinhasImpressas: Variável inteira para receber a quantidade de linhas impressas.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- O monitoramento do estado do papel não existe para a impressora fiscal YANCO, por isso, o retorno será sempre "0" (zero).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_MonitoramentoPapel(LinhasImpressas)

// Exemplo em Delphi

iRetorno := Bematech_FI_MonitoramentoPapel( LinhasImpressas );


Bematech_FI_NumeroCaixa

Retorna o número do caixa cadastrado na impressora.

Parâmetro:

NumeroCaixa: Variável string com 4 posições para receber o número do caixa cadastrado na impressora.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

NumeroCaixa = Space(4)

iRetorno = Bematech_FI_NumeroCaixa(NumeroCaixa)

// Exemplo em Delphi

for iConta := 1 to 4 do NumeroCaixa := NumeroCaixa + ' ';

iRetorno := Bematech_FI_NumeroCaixa( NumeroCaixa );


Bematech_FI_NumeroCupom

Retorna o número do cupom.

Parâmetro:

NumeroCupom: Variável string com 6 posições para receber o número do último cupom.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

NumeroCupom = Space(6)

iRetorno = Bematech_FI_NumeroCupom(NumeroCupom)

// Exemplo em Delphi

for iConta := 1 to 6 do NumeroCupom := NumeroCupom + ' ';

iRetorno := Bematech_FI_NumeroCupom( NumeroCupom );


Bematech_FI_NumeroCuponsCancelados

Retorna o número de cupons cancelados.

Parâmetro:

CuponsCancelados: Variável STRING com o tamanho de 4 bytes para receber o número de cupons cancelados.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: Ok.

-4: Arquivo BemaFI32.ini não encontrado ou parâmetro inválido para o nome da porta.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (Ack, St1 e St2).

-30: Função não compatível com a impressora YANCO.

Exemplos:

' Exemplo em Visual Basic

Cupons = Space(4)

iRetorno = Bematech_FI_NumeroCuponsCancelados(Cupons)

// Exemplo em Delphi

for iConta := 1 to 4 do Cupons := Cupons + ' ';

iRetorno := Bematech_FI_NumeroCuponsCancelados( Cupons );


Bematech_FI_NumeroIntervencoes

Retorna o número de intervenções técnicas realizadas na impressora.

Parâmetro:

Intervencoes: Variável string com 4 posições para receber o número de intervenções.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Intervencoes = Space(4)

iRetorno = Bematech_FI_NumeroIntervencoes(Intervencoes)

// Exemplo em Delphi

for iConta := 1 to 4 do Intervencoes := Intervencoes + ' ';

iRetorno := Bematech_FI_NumeroIntervencoes( Intervencoes );


Bematech_FI_NumeroLoja

Retorna o número da loja cadastrado na impressora.

Parâmetro:

NumeroLoja: Variável string com 4 posições para receber o número da loja cadastrado na impressora.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

NumeroLoja = Space(4)

iRetorno = Bematech_FI_NumeroLoja(NumeroLoja)

// Exemplo em Delphi

for iConta := 1 to 4 do NumeroLoja := NumeroLoja + ' ';

iRetorno := Bematech_FI_NumeroLoja( NumeroLoja );


Bematech_FI_NumeroOperacoesNaoFiscais

Retorna o número de operações não fiscais executadas na impressora.

Parâmetro:

Operacoes: Variável string com 6 posições para receber o número de operações.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, este retorno não existe.

Exemplo:

' Exemplo em Visual Basic

Operacoes = Space(6)

iRetorno = Bematech_FI_NumeroOperacoesNaoFiscais(Operacoes)

// Exemplo em Delphi

for iConta := 1 to 6 do Operacoes := Operacoes + ' ';

iRetorno := Bematech_FI_NumeroOperacoesNaoFiscais( Operacoes );


Bematech_FI_NumeroReducoes

Retorna o número de reduções Z realizadas na impressora.

Parâmetro:

Reducoes: Variável string com 4 posições para receber o número de Reduções Z.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Reducoes = Space(4)

iRetorno = Bematech_FI_NumeroReducoes(Reducoes)

// Exemplo em Delphi

for iConta := 1 to 4 do Reducoes := Reducoes + ' ';

iRetorno := Bematech_FI_NumeroReducoes( Reducoes );


Bematech_FI_NumeroSerie

Retorna o número de série da impressora.

Parâmetro:

NumeroSerie: Variável string com o tamanho de 15 posições para receber o número de série.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Na impressora fiscal YANCO serão retornados 10 bytes, referente ao número de série do equipamento, o restante será preenchido com espaços em branco.

- Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI serão retornados os 15 primeiros caracteres de seu número serial. O número serial nestas impressoras é alfanumérico com o tamanho de 20 caracteres.

Exemplo:

' Exemplo em Visual Basic

NumeroSerie = Space(15)

iRetorno = Bematech_FI_NumeroSerie(NumeroSerie)

// Exemplo em Delphi

for iConta := 1 to 15 do NumeroSerie := NumeroSerie + ' ';

iRetorno := Bematech_FI_NumeroSerie( NumeroSerie );


Bematech_FI_NumeroSerieCriptografado

Retorna o número de série da impressora criptografado.

Parâmetro:

NumeroSerie: Variável string com o tamanho de 15 posições para as impressoras do convênio 156/94 (MP-20 FI II e MP-40 FI II) ou 20 posições para as impressoras do convênio 85/01 (MP-25 FI, MP-50 FI, MP-2000 TH FI, MP-2100 TH FI e MP-600 TH FI) para receber o número de série criptografado (veja observação abaixo):

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Para os modelos MP-25 FI, MP-50 FI, MP-2000 TH FI, MP-2100 TH FI e MP-6000 TH FI, a chave "Impressora" deve estar igual a 1 (Impressora=1) no arquivo de configuração BemaFI32.ini para que o número de série retornado seja de 20 caracteres para a criptografia. Caso esta chave esteja igual a 0 (Impressora=0), serão retornados apenas 15 caracteres para a criptografia.

Exemplo:

' Exemplo em Visual Basic

NumeroSerie = Space(15)

iRetorno = Bematech_FI_NumeroSerieCriptografado(NumeroSerie)

// Exemplo em Delphi

for iConta := 1 to 15 do NumeroSerie := NumeroSerie + ' ';

iRetorno := Bematech_FI_NumeroSerieCriptografado( NumeroSerie );


Bematech_FI_NumeroSerieDescriptografado

Devolve o número de série da impressora descriptografado, a partir do número de série criptografado informado.

Parâmetros:

NumeroSerieCriptografado: Variável string com o número de série criptografado pela função Bematech_FI_NumeroSerieCriptografado.

NumeroSerieDescriptografado: Variável string para receber o número de série descriptografado.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Deve-se informar o número de série criptografado pela função Bematech_FI_NumeroSerieCriptografado para que o mesmo possa ser descriptografado pela função Bematech_FI_NumeroSerieDescriptografado.

Exemplo:

' Exemplo em Visual Basic

NumeroSerieDescrip = Space(15)

iRetorno = Bematech_FI_NumeroSerieDescriptografado(NumeroSerie, NumeroSerieDescrip)

// Exemplo em Delphi

for iConta := 1 to 15 do NumeroSerieDescrip := NumeroSerieDescrip + ' ';

iRetorno := Bematech_FI_NumeroSerieCriptografado( pchar( NumeroSerie ), NumeroSerieDescrip );


Bematech_FI_NumeroSubstituicoesProprietario

Retorna o número de substituições de proprietário.

Parâmetro:

Substituicoes: Variável string com 4 posições para receber o número de substituições.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, este retorno não existe.

Exemplo:

' Exemplo em Visual Basic

Substituicoes = Space(4)

iRetorno = Bematech_FI_NumeroSubstituicoesProprietario(Substituicoes)

// Exemplo em Delphi

for iConta := 1 to 4 do Substituicoes := Substituicoes + ' ';

iRetorno := Bematech_FI_NumeroSubstituicoesProprietario( Substituicoes );


Bematech_FI_RetornoAliquotas

Retorna as alíquotas cadastradas na impressora.

Parâmetro:

Aliquotas: Variável string com o tamanho de 79 posições para receber as alíquotas.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- As alíquotas retornadas estarão separadas por vírgula. Ex.: 1200, 1700, 0500, 1800

Exemplo:

' Exemplo em Visual Basic

Aliquotas = Space(79)

iRetorno = Bematech_FI_RetornoAliquotas(Aliquotas)

// Exemplo em Delphi

for iConta := 1 to 79 do Aliquotas := Aliquotas + ' ';

iRetorno := Bematech_FI_RetornoAliquotas( Aliquotas );


Bematech_FI_SimboloMoeda

Retorna o símbolo da moeda cadastrado na impressora.

Parâmetro:

SimboloMoeda: Variável string com 2 posições para receber o símbolo da moeda.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

SimboloMoeda = Space(2)

iRetorno = Bematech_FI_SimboloMoeda(SimboloMoeda)

// Exemplo em Delphi

for iConta := 1 to 2 do SimboloMoeda := SimboloMoeda + ' ';

iRetorno := Bematech_FI_SimboloMoeda( SimboloMoeda );


Bematech_FI_SubTotal

Retorna o valor do subtotal do cupom.

Parâmetro:

SubTotal: Variável string com o tamanho de 14 posições para receber o subtotal do cupom.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

SubTotal = Space(14)

iRetorno = Bematech_FI_SubTotal(SubTotal)

// Exemplo em Delphi

for iConta := 1 to 14 do SubTotal := SubTotal + ' ';

iRetorno := Bematech_FI_SubTotal( SubTotal );


Bematech_FI_TotalIcmsCupom

Retorna a valor total do ICMS pago no cupom fiscal.

Parâmetro:

ValorICMS: Variável string com 14 posições para receber o valor total do ICMS.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

Para que esta função tenha efeito, a chave CalculoIcmsCupom deve existir no arquivo BemaFI32.ini, na seção [Sistema] e habilitada (CalculoIcmsCupom=1) para que a dll possa atender a solicitação na portaria 40888/07 do RJ.

Exemplo:

' Exemplo em Visual Basic

ValorICMS = Space(14)

iRetorno = Bematech_FI_TotalIcmsCupom(ValorICMS)

// Exemplo em Delphi

for iConta := 1 to 14 do ValorICMS := ValorICMS + ' ';

iRetorno := Bematech_FI_TotalIcmsCupom( ValorICMS );


Bematech_FI_UltimoItemVendido

Retorna o número do último item vendido.

Parâmetro:

UltimoItem: Variável string com 4 posições para receber o número do último item vendido.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, este retorno não existe.

Exemplo:

' Exemplo em Visual Basic

UltimoItem = Space(4)

iRetorno = Bematech_FI_UltimoItemVendido(UltimoItem)

// Exemplo em Delphi

for iConta := 1 to 4 do UltimoItem := UltimoItem + ' ';

iRetorno := Bematech_FI_UltimoItemVendido( UltimoItem );


Bematech_FI_ValorFormaPagamento

Retorna o valor acumulado em uma determinada forma de pagamento.

Parâmetros:

FormaPagamento: Variável STRING com até 16 posições com a descrição da Forma de Pagamento que deseja retornar o seu valor.

Valor: Variável STRING com 14 posições para receber a informação.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-2: Parâmetro inválido na função.

-24: Forma de pagamento não programada.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Valor = Space(14)

iRetorno = Bematech_FI_ValorFormaPagamento("Cheque", Valor)

// Exemplo em Delphi

cFormaPgto := 'Cheque';

for iConta := 1 to 14 do Valor := Valor + ' ';

iRetorno := Bematech_FI_ValorFormaPagamento( pchar( cFormaPgto ), Valor );


Bematech_FI_ValorPagoUltimoCupom

Retorna o valor pago no último cupom.

Parâmetro:

Valor: Variável string com 14 posições para receber o valor pago no último cupom.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- Valor pago no último cupom é diferente do valor total do cupom.

- Na impressora fiscal YANCO, este retorno não existe.

Exemplo:

Imaginemos que o valor do cupom seja R$15,00 e foi pago pelo cliente R$ 20,00. Teve um troco de R$ 5,00. O valor retornado por essa função será R$ 20,00 e não R$ 15,00.

' Exemplo em Visual Basic

Valor = Space(14)

iRetorno = Bematech_FI_ValorPagoUltimoCupom(Valor)

// Exemplo em Delphi

for iConta := 1 to 14 do Valor := Valor + ' ';

iRetorno := Bematech_FI_ValorPagoUltimoCupom( Valor );


Bematech_FI_ValorTotalizadorNaoFiscal

Retorna o valor acumulado em um determinado totalizador não fiscal.

Parâmetros:

Totalizador: Variável STRING com até 19 posições com a descrição do Totalizador.

Valor: Variável STRING com 14 posições para receber a informação.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-2: Parâmetro inválido na função.

-25: Totalizador não fiscal não programado.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Valor = Space(14)

iRetorno = Bematech_FI_ValorTotalizadorNaoFiscal("Rec. Prestacao", Valor)

// Exemplo em Delphi

cDescTot := 'Rec. Prestacao';

for iConta := 1 to 14 do Valor := Valor + ' ';

iRetorno := Bematech_FI_ValorTotalizadorNaoFiscal( pchar( cDescTot ), Valor );


Bematech_FI_VendaBruta

Retorna o valor da venda bruta do dia.

Parâmetros:

Valor: Variável STRING com 18 posições para receber a informação.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-2: Parâmetro inválido na função.

-24: Forma de pagamento não programada.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Valor = Space(18)

iRetorno = Bematech_FI_VendaBruta(Valor)

// Exemplo em Delphi

for iConta := 1 to 18 do Valor := Valor + ' ';

iRetorno := Bematech_FI_VendaBruta( Valor );


Bematech_FI_VerificaAliquotasIss

Retorna as alíquotas de vinculação ao ISS.

Parâmetro:

AliquotasIss: Variável string com 79 posições para receber as alíquotas vinculadas ao Iss.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- As alíquotas retornadas estarão separadas por vírgula. Ex.: 0300, 0500

Exemplo:

' Exemplo em Visual Basic

AliquotasIss = Space(79)

iRetorno = Bematech_FI_VerificaAliquotasIss(AliquotasIss)

// Exemplo em Delphi

for iConta := 1 to 79 do AliquotasIss := AliquotasIss + ' ';

iRetorno := Bematech_FI_VerificaAliquotasIss( AliquotasIss );


Bematech_FI_VerificaDepartamentos

Retorna os departamentos e seus valores acumulados.

Parâmetro:

Departamentos: Variável string com 1019 posições para receber as informações dos departamentos.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, este retorno não existe.

Observações:

- Essa função retorna as informações dos departamentos na seguinte ordem:

Valor acumulado para cada departamento.........................: 20 bytes

Valor com o número de vezes em que o departamento foi utilizado: 20 bytes

Descrição do departamento......................................: 10 bytes

Exemplo:

0000000000000001944800000000000000018548GERAL     ,

0000000000000001644800000000000000015548Vestuario ,

0000000000000015819700000000000000158197Calcados  ,

0000000000000001644800000000000000015548Equipament,

00000000000000101642700000000000001016427Alimentos,

0000000000000000000000000000000000000000          ,

.

.

.

0000000000000000000000000000000000000000          ,

0000000000000000000000000000000000000000

- A impressora permite programar até 20 departamentos, os departamentos que não estiverem programados estarão com os valores zerados e a descrição em branco (veja exemplo acima).

' Exemplo em Visual Basic

Departamentos = Space(1019)

iRetorno = Bematech_FI_VerificaDepartamentos(Departamentos)

// Exemplo em Delphi

for iConta := 1 to 1019 do Departamentos := Departamentos + ' ';

iRetorno := Bematech_FI_VerificaDepartamentos( Departamentos );


Bematech_FI_VerificaEpromConectada

Verifica se a Eprom está conectada.

Parâmetro:

FlagEprom: Variável string com 1 posição para receber o flag de Eprom conectada. Onde:

1 - Eprom conectada

0 - Eprom desconectada.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

FlagEprom = " "

iRetorno = Bematech_FI_VerificaEpromConectada(FlagEprom)

// Exemplo em Delphi

FlagEprom := ' ';

iRetorno := Bematech_FI_VerificaEpromConectada( FlagEprom );


Bematech_FI_VerificaEstadoImpressora

Retorna o estado da impressora.

Parâmetros:

ACK: Variável inteira para receber o primeiro byte.

ST1: Variável inteira para receber o segundo byte.

ST2: Variável inteira para receber o terceiro byte.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Essa função devolve o status da impressora (Retorno da Impressora).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VerificaEstadoImpressora( iAck, iSt1, iSt2 )

// Exemplo em Delphi

iRetorno := Bematech_FI_VerificaEstadoImpressora( iAck, iSt1, iSt2 );


Bematech_FI_VerificaFormasPagamento

Retorna as formas de pagamento e seus valores acumulados.

Parâmetro:

FormasPagamento: Variável string com 3016 posições para receber as formas programadas.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Essa função retorna as informações das formas de pagamento na seguinte ordem:

Descricao 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

do cupom não fiscal vinculado (1 usado, 0 não usado): 1 byte

- São retornadas 50 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 exemplo a seguir:

Dinheiro        00000000000000041558000000000000000015580,

Cartao Credito  00000000000000039470000000000000000000000,

Cheque          00000000000000028940000000000000000000000,

Ticket          00000000000000009000000000000000000000000,

               00000000000000000000000000000000000000000,

               00000000000000000000000000000000000000000,

               .

               .

               .

Valor Recebido  00000000000000118968000000000000000015580,

Troco           00000000000000000000000000000000000000000

- A impressora permite programar até 49 formas de pagamento, sendo que a forma de pagamento "01" é sempre "Dinheiro". As formas de pagamento que não estiverem programadas estarão com os valores zerados e a descrição em branco (veja exemplo acima).

- Na impressora fiscal YANCO só é permitido programar até 30 formas de pagamento, apenas por Interveção Técnica.

- Nas impressoras fiscais MP-25 FI, MP-50 FI e térmicas serão retornadas somente 20 formas de pagamento que é a quantidade permitida, as demais posições serão retornadas com espaços em branco.

Exemplo:

' Exemplo em Visual Basic

FormasPagamento = Space(3016)

iRetorno = Bematech_FI_VerificaFormasPagamento(FormasPagamento)

// Exemplo em Delphi

for iConta := 1 to 3016 do FormasPagamento := FormasPagamento + ' ';

iRetorno := Bematech_FI_VerificaFormasPagamento( FormasPagamento );


Bematech_FI_VerificaIndiceAliquotasIss

Retorna os índices das alíquotas de ISS.

Parâmetro:

IndiceAliquotas: Variável string com o tamanho de 48 posições para receber os índices das alíquotas de ISS.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Os índices retornados estarão separados por vírgula. Ex.: 03, 05.

Exemplo:

' Exemplo em Visual Basic

IndiceAliquotas = Space(48)

iRetorno = Bematech_FI_VerificaIndiceAliquotasIss(IndiceAliquotas)

// Exemplo em Delphi

for iConta := 1 to 48 do IndiceAliquotas := IndiceAliquotas + ' ';

iRetorno := Bematech_FI_VerificaIndiceAliquotasIss( IndiceAliquotas );


Bematech_FI_VerificaModoOperacao

Verifica se a impressora está em modo normal ou em intervenção técnica.

Parâmetro:

ModoOperacao: Variável string com 1 posição para receber o modo de operação da impressora. Onde:

1 - Modo normal

0 - Intervenção técnica.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

ModoOperacao = " "

iRetorno = Bematech_FI_VerificaModoOperacao(ModoOperacao)

// Exemplo em Delphi

ModoOperacao := ' ';

iRetorno := Bematech_FI_VerificaModoOperacao( ModoOperacao );


Bematech_FI_VerificaRecebimentoNaoFiscal

Retorna os recebimentos não fiscais não vinculados programados na impressora.

Parâmetro:

Recebimentos: Variável string com 2200 posições para receber as informações.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Essa função 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

Descrição do recebimento....................................: 19 bytes

Exemplo:

000200000000000000005460Conta de água      ,

001500000000000000145850Conta de Luz       ,

000000000000000000000000Carnê              ,

000000000000000000000000                   ,

000000000000000000000000                   ,

000000000000000000000000Iptu               ,

000500000000000000078437Conta de Telefone  ,

.

.

.

000000000000000000000000Prestacao de contas

- 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 exemplo acima).

- Na impressora fiscal YANCO são retornados apenas 8 totalizadores não fiscais não vinculados.

- Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI serão retornados somente 30 recebimentos não fiscais, que é a quantidade permitida, as demais posições serão retornadas com espaços em branco.

' Exemplo em Visual Basic

Recebimento = Space(2200)

iRetorno = Bematech_FI_VerificaRecebimentoNaoFiscal(Recebimento)

// Exemplo em Delphi

for iConta := 1 to 2200 do Recebimento := Recebimento + ' ';

iRetorno := Bematech_FI_VerificaRecebimentoNaoFiscal( Recebimento );


Bematech_FI_VerificaReducaoZAutomatica

Verifica se a última Redução Z foi executada automáticamente na impressora.

Parâmetro:

Flag: Variável int (short) para receber a informação. Onde 1 (um) é Redução Z automática e 0 (zero) por comando.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Flag = 0

iRetorno = Bematech_FI_VerificaReducaoZAutomatica(Flag)

// Exemplo em Delphi

Flag = 0;

iRetorno := Bematech_FI_VerificaReducaoZAutomatica( Flag );


Bematech_FI_VerificaTipoImpressora

Retorna o tipo de impressora.

Parâmetro:

TipoImpressora: Variável inteira para receber o tipo da impressora (veja abaixo em "Observações" os valores retornados).

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

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.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VerificaTipoImpressora(TipoImpressora)

// Exemplo em Delphi

iRetorno := Bematech_FI_VerificaTipoImpressora( TipoImpressora );


Bematech_FI_VerificaTotalizadoresNaoFiscais

Retorna a descrição dos totalizadores não fiscais programados na impressora.

Parâmetro:

Totalizadores: Variável string com 179 posições para receber a descrição dos totalizadores não fiscais programados.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Os totalizadores virão separados por vírgula.

- A impressora permite a programação de até 50 totalizadores não fiscais, porém essa função retorna somente os 9 primeiros cadastrados.

- Na impressora fiscal YANCO são retornados apenas 8 totalizadores não fiscais.

Exemplo:

' Exemplo em Visual Basic

Totalizadores = Space(179)

iRetorno = Bematech_FI_VerificaTotalizadoresNaoFiscais(Totalizadores)

// Exemplo em Delphi

for iConta := 1 to 179 do Totalizadores := Totalizadores + ' ';

iRetorno := Bematech_FI_VerificaTotalizadoresNaoFiscais( Totalizadores );


Bematech_FI_VerificaTotalizadoresParciais

Retorna os totalizadores parciais cadastrados na impressora com as seguintes informações:

Parâmetro:

Totalizadores: Variável string com o tamanho de 445 posições para receber os totalizadores parciais cadastrados.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- São retornadas as seguintes informações separadas por vírgulas:

Totalizadores parciais tributados..........: 224 bytes

Isenção....................................: 14 bytes

Não incidê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

Exemplo:

' Exemplo em Visual Basic

Totalizadores = Space(445)

iRetorno = Bematech_FI_VerificaTotalizadoresParciais(Totalizadores)

// Exemplo em Delphi

for iConta := 1 to 445 do Totalizadores := Totalizadores + ' ';

iRetorno := Bematech_FI_VerificaTotalizadoresParciais( Totalizadores );


Bematech_FI_VerificaTruncamento

Retorna 1 se a impressora estiver no modo truncamento e 0 se estiver no modo arredondamento.

Parâmetro:

FlagTruncamento: Variável string com 1 posição para receber o flag de truncamento.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Na impressora fiscal YANCO, sempre retornará Arredondamento.

Exemplo:

' Exemplo em Visual Basic

FlagTruncamento = " "

iRetorno = Bematech_FI_VerificaTruncamento(FlagTruncamento)

// Exemplo em Delphi

FlagTruncamento := ' ';

iRetorno := Bematech_FI_VerificaTruncamento( FlagTruncamento );


Bematech_FI_VersaoFirmware

Retorna a versão do firmware da impressora.

Parâmetro:

VersaoFirmware: Variável string com o tamanho de 4 posições para receber a versão do firmware.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Na impressora fiscal YANCO são retornados 2 (dois) bytes.

- Nas impressoras fiscais MP-2000 TH FI, MP-6000 TH FI, MP-25 FI e MP-50 FI serão retornados os 4 primeiros caracteres de sua versão de firmware. A versão de firmware nestas impressoras tem o tamanho de 6 caracteres.

Exemplo:

' Exemplo em Visual Basic

VersaoFirmware = Space(4)

iRetorno = Bematech_FI_VersaoFirmware(VersaoFirmware)

// Exemplo em Delphi

for iConta := 1 to 4 do VersaoFirmware := VersaoFirmware + ' ';

iRetorno := Bematech_FI_VersaoFirmware( VersaoFirmware );


 Bematech_FI_ProgramaMoedaSingular

Bematech_FI_ProgramaMoedaSingular

Programa o nome da moeda no singular para a impressão de cheques. Ex. (Real)

Parâmetro:

MoedaSingular: STRING com o Nome da Moeda no singular com até 19 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Função usada somente na impressora BEMATECH MP-40 FI II e na impressora YANCO 8500.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaMoedaSingula("Real")

// Exemplo em Delphi

cMoedaSingular := 'Real';

iRetorno := Bematech_FI_ProgramaMoedaSingula( pchar( cMoedaSingular ) );


 Bematech_FI_ProgramaMoedaPlural

Bematech_FI_ProgramaMoedaPlural

Programa o nome da moeda no plural para a impressão de cheques. Ex. (Reais)

Parâmetro:

MoedaPlural: STRING com o Nome da moeda no plural com até 22 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Função usada somente na impressora BEMATECH MP-40 FI II ou na YANCO 8500.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaMoedaPlural("Reais")

// Exemplo em Delphi

cMoedaPlural := 'Reais';

iRetorno := Bematech_FI_ProgramaMoedaPlural( pchar( cMoedaPlural ) );


 Bematech_FI_IncluiCidadeFavorecido

Bematech_FI_IncluiCidadeFavorecido

Inclui o nome da cidade e do favorecido no arquivo de configuração BemaFI32.ini.

Parâmetros:

Cidade: STRING com o Nome da cidade com até 27 caracteres.

Favorecido: STRING com o Nome do favorecido com até 45 caracteres.

Possíveis retornos da Função (INTEIRO):

1: OK.

-1: Erro de execução da função.

-2: Parâmetro inválido na função.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Após gravar o nome da cidade e do favorecido no arquivo de configuração não é mais necessário passar essas informações como parâmetros para a função Bematech_FI_ImprimeCheque(), a não ser que seja necessário imprimir uma cidade ou um favorecido diferente aos que estão programados.

- Função usada somente na impressora BEMATECH MP-40 FI II e impressora YANCO 8500.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_IncluiCidadeFavorecido("Londrina", "José")

// Exemplo em Delphi

cCidade     := 'Londrina';

cFavorecido := 'Fulano de Tal';

iRetorno := Bematech_FI_IncluiCidadeFavorecido( pchar( cCidade ),

                                               pchar( cFavorecido ) );


Bematech_FI_VerificaStatusCheque

Verifica o status do cheque.

Parâmetro:

StatusCheque: Variável inteira para receber o status do cheque (veja abaixo em "Observações" os valores de status).

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

Os valores de status são:

1 – Impressora ok.

2 – Cheque em impressão.

3 – Cheque posicionado.

4 – Aguardando o posicionamento do cheque.

- Função usada somente na impressora MP-40 FI II.

- Na impressora fiscal YANCO, esta verificação não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VerificaStatusCheque(iStatusCheque)

// Exemplo em Delphi

iRetorno := Bematech_FI_VerificaStatusCheque( iStatusCheque );


 Bematech_FI_ImprimeCheque

Bematech_FI_ImprimeCheque

Imprime cheque na impressora MP-40 FI II Bematech e na impressora YANCO 8500.

Parâmetros:

NumeroBanco: STRING com o Número do banco com 3 dígitos.

Valor: STRING com o Valor do cheque com até 14 dígitos.

Favorecido: STRING com o Favorecido com até 45 caracteres.

Cidade: STRING com a Cidade com até 27 caracteres.

Data: STRING com a Data no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

Mensagem: STRING com o Comentários até 120 caracteres. A mensagem será impressa 1 (uma) linha após a cidade.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-7: Banco não encontrado no arquivo BemaFI32.ini.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Função usada somente na impressora BEMATECH MP-40 FI II e na impressora YANCO 8500.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImprimeCheque("353", "50,00", "Bematech S/A", "Curitiba", "10/01/02", "")

// Exemplo em Delphi

cCodBanco := '353';

cValor    := '50,00';

cNominal  := 'Bematech S/A';

cCidade   := 'Curitiba';

cData     := '10/01/02';

cMsg      := '';

iRetorno := Bematech_FI_ImprimeCheque( pchar( cCodBanco ),

                                      pchar( cValor ),

                                      pchar( cNominal ),

                                      pchar( cCidade ),

                                      pchar( cData ),

                                      pchar( cMsg ) );


Bematech_FI_ImprimeCopiaCheque

Imprime cópia do último cheque impresso.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-7: Banco não encontrado no arquivo BemaFI32.ini.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Função usada somente na impressora BEMATECH MP-40 FI II e na impressora YANCO 8500.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImprimeCopiaCheque()

// Exemplo em Delphi

iRetorno := Bematech_FI_ImprimeCopiaCheque();


Bematech_FI_CancelaImpressaoCheque

Cancela a impressão do cheque que está sendo aguardado pela impressora. O cheque que está em impressão não pode ser cancelado.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

- Função usada somente na impressora MP-40 FI II.

- Na impressora fiscal YANCO, este cancelamento não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaImpressaoCheque()

// Exemplo em Delphi

iRetorno := Bematech_FI_CancelaImpressaoCheque();


 Bematech_FIR_RegistraVenda

Bematech_FIR_RegistraVenda

Faz um registro de venda na mesa informada e cadastra o item no cardápio com o código informado se ele ainda não existir.

Parâmetros:

Mesa: STRING com o número da Mesa até 4 dígitos.

Codigo: STRING com o código do item até 14 dígitos.

Descricao: STRING com a descrição do item até 17 caracteres.

Aliquota: 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).

Quantidade: STRING com até 6 dígitos (são três casas decimais).

ValorUnitario: STRING com até 8 dígitos (são duas casas decimais).

FlagAcrescimoDesconto: "A" para acréscimo ou "D" para desconto.

ValorAcrescimoDesconto: STRING com até 8 dígitos (são duas casas decimais). Se não tiver acréscimo nem desconto use "0" no valor.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observação:

- Esta função já cadastra o item no cardápio ao ser enviado para a impressora, não existe mais o camando para enviar cardápio para a impressora. A impressora verifica se o item já está cadastrado se não estiver o item será cadastrado no cardápio.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_RegistraVenda("0001", "123", "Coca-Cola", "17,00", "3,000", "1,00", "A", "0")

// Exemplo em Delphi

cMesa           := '0001';

cCodigo         := '123';

cDescricao      := 'Coca-Cola';

cAliquota       := '17,00';

cQtde           := '3,000';

cValor          := '1,00';

cAcresDesc      := 'A';

cValorAcresDesc := '0';

iRetorno := Bematech_FIR_RegistraVenda( pchar( cMesa ),

                                       pchar( cCodigo ),

                                       pchar( cDescricao ),

                                       pchar( cAliquota ),

                                       pchar( cQtde ),

                                       pchar( cValor ),

                                       pchar( cAcresDesc ),

                                       pchar( cValorAcresDesc ) );


 Bematech_FIR_CancelaVenda

Bematech_FIR_CancelaVenda

Essa função cancela um registro de venda da mesa informada.

Parâmetros:

Mesa: STRING com o número da Mesa até 4 dígitos.

Codigo: STRING com o código do item até 14 dígitos.

Descricao: STRING com a descrição do item até 17 caracteres.

Aliquota: 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).

Quantidade: STRING com até 6 dígitos (são três casas decimais).

ValorUnitario: STRING com até 8 dígitos (são duas casas decimais).

FlagAcrescimoDesconto: "A" para acréscimo ou "D" para desconto.

ValorAcrescimoDesconto: STRING com até 8 dígitos (são duas casas decimais). Se não tiver acréscimo nem desconto use "0" no valor.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observação:

- O cancelamento será executado somente se houver um item registrado nessa mesa e se a quantidade cancelada não exeder a quantidade registrada.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_CancelaVenda("0001", "123", "Coca-Cola", "17,00" ,"3", "1,00", "A", "0")

// Exemplo em Delphi

cMesa           := '0001';

cCodigo         := '123';

cDescricao      := 'Coca-Cola';

cAliquota       := '17,00';

cQtde           := '3';

cValor          := '1,00';

cAcresDesc      := 'A';

cValorAcresDesc := '0';

iRetorno := Bematech_FIR_CancelaVenda( pchar( cMesa ),

                                      pchar( cCodigo ),

                                      pchar( cDescricao ),

                                      pchar( cAliquota ),

                                      pchar( cQtde ),

                                      pchar( cValor ),

                                      pchar( cAcresDesc ),

                                      pchar( cValorAcresDesc ) );


 Bematech_FIR_AbreConferenciaMesa

Bematech_FIR_AbreConferenciaMesa

Abre o cupom de conferência de mesa e imprime os itens registrados nessa mesa. Essa função mantém o cupom de conferência aberto permitindo registrar outros itens na mesa. Só são permitidos registros com o mesmo número da mesa a qual foi aberta o cupom de conferência.

Parâmetro:

Mesa: STRING com o número da Mesa com até 4 dígitos.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observação:

- Use a função Bematech_FIR_FechaConferenciaMesa() para fechar o cupom de conferência de mesa.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_AbreConferenciaMesa("0005")

// Exemplo em Delphi

cMesa := '0005';

iRetorno := Bematech_FIR_AbreConferenciaMesa( pchar( cMesa ) );


 Bematech_FIR_FechaConferenciaMesa

Bematech_FIR_FechaConferenciaMesa

Fecha o cupom de conferência de mesa. Essa função permite incluir um acréscimo ou desconto sobre o valor total vendido na mesa.

Parâmetros:

FlagAcrescimoDesconto: "A" para acréscimo ou "D" para desconto.

TipoAcrescimoDesconto: "$" para acréscimo ou desconto por valor e "%" para percentual.

ValorAcrescimoDesconto: 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 (são duas casas decimais).

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observação:

- A função somente será executada se o cupom de conferência estiver aberto.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_FechaConferenciaMesa("A", "%", "1000")

// Exemplo em Delphi

cAcresDesc     := 'A';

cTipoAcresDesc := '%';

cValor         := '1000';

iRetorno := Bematech_FIR_FechaConferenciaMesa( pchar( cAcresDesc ),

                                              pchar( cTipoAcresDesc ),

                                              pchar( cValor ) );


 Bematech_FIR_ConferenciaMesa

Bematech_FIR_ConferenciaMesa

Emite um cupom de conferência de mesa. Essa função reúne as funções Bematech_FIR_AbreConferenciaMesa e Bematech_FIR_FechaConferenciaMesa. Ela abre e fecha o cupom de conferência não permitindo registrar produtos nesse cupom de conferência.

Parâmetros:

Mesa: STRING com o número da Mesa com até 4 dígitos.

FlagAcrescimoDesconto: "A" para acréscimo e "D" para desconto.

TipoAcrescimoDesconto: "$" para acréscimo ou desconto por valor e "%" para percentual.

ValorAcrescimoDesconto: 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 (são duas casas decimais).

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_ConferenciaMesa("0001", "A", "%", "1000")

// Exemplo em Delphi

cMesa          := '0001';

cAcresDesc     := 'A';

cTipoAcresDesc := '%';

cValor         := '1000';

iRetorno := Bematech_FIR_ConferenciaMesa( pchar( cMesa ),

                                         pchar( cAcresDesc ),

                                         pchar( cTipoAcresDesc ),

                                         pchar( cValor ) );


 Bematech_FIR_TransferenciaMesa

Bematech_FIR_TransferenciaMesa

Faz a transferência dos registros de venda da mesa de origem para a mesa de destino, se a mesa de destino já tiver itens registrados os registros serão acrescentados.

Parâmetros:

MesaOrigem: STRING com o código da Mesa de origem com até 4 dígitos.

MesaDestino: STRING com o código da Mesa de destino com até 4 dígitos.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observação:

- Se a mesa de origem não existir o camando não será executado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_TransferenciaMesa("0001", "0005")

// Exemplo em Delphi

cMesaOrigem  := '0001';

cMesaDestino := '0005';

iRetorno := Bematech_FIR_TransferenciaMesa( pchar( cMesaOrigem),

                                           pchar( cMesaDestino ) );


 Bematech_FIR_TransferenciaItem

Bematech_FIR_TransferenciaItem

Permite a transferência parcial ou total dos itens registrados em uma mesa para outra.

Parâmetros:

MesaOrigem: STRING com o número da Mesa de origem com até 4 dígitos.

Codigo: STRING com o código do item com até 14 dígitos.

Descricao: STRING com a Descrição do item com até 17 caracteres.

Aliquota: 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 ).

Quantidade: STRING com até 6 dígitos (são três casas decimais).

ValorUnitario: STRING com até 8 dígitos (são duas casas decimais).

FlagAcrescimoDesconto: "A" para acréscimo e "D" para desconto.

ValorAcrescimoDesconto: STRING com até 8 dígitos (são duas casas decimais). Se não tiver acréscimo nem desconto use "0" no valor.

MesaDestino: STRING com o número da Mesa de destino com até 4 dígitos.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observação:

- Esta função já cadastra o item no cardápio ao ser enviado para a impressora, não existe mais o camando para enviar cardápio para a impressora. A impressora verifica se o item já está cadastrado se não estiver o item será cadastrado no cardápio.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_TransferenciaItem("0001", "123", "Coca-Cola", "17,00", "1", "1,00", "A", "0", "0003")

// Exemplo em Delphi

cMesaOrigem     := '0001';

cCodigo         := '123';

cDescricao      := 'Coca-Cola';

cAliquota       := '17,00';

cQtde           := '1';

cValor          := '1,00';

cAcresDesc      := 'A';

cValorAcresDesc := '0';

cMesaDestino    := '0003';

iRetorno := Bematech_FIR_TransferenciaItem( pchar( cMesaOrigem ),

                                           pchar( cCodigo ),

                                           pchar( cDescricao ),

                                           pchar( cAliquota ),

                                           pchar( cQtde ),

                                           pchar( cValor ),

                                           pchar( cAcresDesc ),

                                           pchar( cValorAcresDesc ),

                                           pchar( cMesaDestino ) );


 Bematech_FIR_AbreCupomRestaurante

Bematech_FIR_AbreCupomRestaurante

Abre o cupom fiscal na impressora restaurante e imprime os itens registrados na mesa. Se a mesa for "0000", abre o cupom e aguarda a venda dos itens.

Parâmetros:

Mesa: STRING com o número da Mesa com até 4 dígitos.

CPF: STRING com até 29 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observação:

- A mesa "0000" pode ser usada para efetuar venda no balcão, de maneira que ao abrir uma mesa com esse número a impressora não busca registros vendidos nessa mesa e sim abre o cabeçalho do cupom fiscal e espera o registro de uma venda no balcão.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_AbreCupomRestaurante("0001", "")

// Exemplo em Delphi

cMesa := '0001';

iRetorno := Bematech_FIR_AbreCupomRestaurante( pchar( cMesa ),

                                              pchar( '' ) );


 Bematech_FIR_FechaCupomRestaurante

Bematech_FIR_FechaCupomRestaurante

Fecha o cupom fiscal na impressora restaurante com acréscimo ou desconto, usando apenas uma forma de pagamento.

Parâmetros:

FormaPagamento: STRING com o nome da forma de pagamento com no máximo 16 caracteres.

AcrescimoDesconto: Indica se haverá acréscimo ou desconto no cupom. "A" para acréscimo ou "D" para desconto.

TipoAcrescimoDesconto: Indica se o acréscimo ou desconto é por valor ou por percentual. "$" para desconto por valor ou "%" para percentual.

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

ValorPago: STRING com o Valor pago com no máximo 14 dígitos.

Mensagem: STRING com a Mensagem promocional com até 490 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observações:

- O cupom deve estar aberto.

- Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado.

- A utilização dessa função elimina a obrigatoriedade de uso das funções Bematech_FI_IniciaFechamentoCupom, Bematech_FI_EfetuaFormaPagamento e Bematech_FI_TerminaFechamentoCupom que estão implementadas internamente na função. Para fechar o cupom usando mais de uma forma de pagamento você deve usar as mesmas funções usadas na impressora fiscal normal: Bematech_FI_IniciaFechamentoCupom para iniciar o fechamento do cupom, a Bematech_FI_EfetuaFormaPagamento várias vezes até usar todas as formas e a Bematech_FI_TerminaFechamentoCupom para fechar o cupom fiscal.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_FechaCupomRestaurante("Dinheiro", "A", "$", "0000", "35,00", "Obrigado, volte sempre !!!")

// Exemplo em Delphi

cFormaPgto      := 'Dinheiro';

cAcresDesc      := 'A';

cTipoAcresDesc  := '%';

cValorAcresDesc := '0000';

cValorPago      := '35,00';

cMsgPromocional := 'Obrigado, volte sempre !!!';

iRetorno := Bematech_FIR_FechaCupomRestaurante( pchar( cFormaPgto ),

                                               pchar( cAcresDesc ),

                                               pchar( cTipoAcresDesc ),

                                               pchar( cValorAcresDesc ),

                                               pchar( cValorPago ),

                                               pchar( cMsgPromocional ) );


 Bematech_FIR_FechaCupomResumidoRestaurante

Bematech_FIR_FechaCupomResumidoRestaurante

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

Parâmetros:

FormaPagamento: STRING com a Forma de pagamento com no máximo 16 caracteres.

Mensagem: STRING com a Mensagem promocional com até 490 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observações:

- O cupom deve estar aberto.

- Pelo menos 1 (um) item deve ter sido vendido e não pode ter sido cancelado.

A utilização dessa função elimina a obrigatoriedade de uso das funções Bematech_FI_IniciaFechamentoCupom, Bematech_FI_EfetuaFormaPagamento e Bematech_FI_TerminaFechamentoCupom que estão implementadas internamente na função.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_FechaCupomResumidoRestaurante("Cheque", "Obrigado, volte sempre !!!")

// Exemplo em Delphi

cFormaPgto      := 'Cheque';

cMsgPromocional := 'Obrigado, volte sempre !!!';

iRetorno := Bematech_FIR_FechaCupomResumidoRestaurante( pchar( cFormaPgto ),

                                                       pchar( cMsgPromocional ) );


 Bematech_FIR_ContaDividida

Bematech_FIR_ContaDividida

Permite que a conta seja dividida por todos os clientes. Essa função termina o fechamento do cupom fiscal e imprime um cupom para cada cliente.

Parâmetros:

NumeroCupons: STRING com até 2 dígitos com o número de cupons em que a conta será divida. O número mínimo de cupons é 2 e o máximo é 20.

ValorPagoCliente: STRING com os valores pagos por cada cliente. Os valores devem ter no máximo 14 dígitos e serem separados por ponto e vírgula ";". Ex.: 10,00; 5,00

CPF: STRING com o CPF dos clientes. Os CPF's devem ter no máximo 29 caracteres e serem separados por ponto e vírgula ";".

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observações:

- Para executar essa função você deve iniciar o fechamento do cupom fiscal usando a função Bematech_FI_IniciaFechamentoCupom() e efetuar as formas de pagamento usando a função Bematech_FI_EfetuaFormaPagamento.

- O fechamento do cupom só será executado caso a soma dos valores passados no parâmetro "ValorPagoCliente" seja exatamente igual ao total do Cupom Fiscal.

- As formas de pagamento aparecerão somente no primeiro cupom fiscal. Ao término do primeiro cupom será feita a emissão dos demais automaticamente.

- Todos os documentos fracionados terão o mesmo COO, o que os diferencia é a informação do número da via do cupom ao lado da inscrição "CUPOM FISCAL". Exemplo: "CUPOM FISCAL 2ª VIA".

- O parâmetro CPF dessa função é opcional e é utilizado a partir do segundo cliente. Para utiliza-lo você, obrigatoriamente, deve informar o CPF para o primeiro cliente, caso contrário a dll irá ignorar o(s) CPF(s) informado(s)s e não irá imprimi-lo(s). Se você quiser usar o CPF por exemplo, para o cliente dois e não quiser usar no cliente 1 você deve passar espaço em branco no parâmetro CPF da função Bematech_FIR_AbreCupomRestaurante.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_ContaDividida("3", "10,00;10,00;10,00", "")

// Exemplo em Delphi

cQuantosCupons := '3';

cValorPago     := '10,00;10,00;10,00';

iRetorno := Bematech_FIR_ContaDividida( pchar( cQuantosCupons ),

                                       pchar( cValorPago ),

                                       pchar( '' ) );


 Bematech_FIR_FechaCupomContaDividida

Bematech_FIR_FechaCupomContaDividida

Essa função permite fechar o cupom fiscal com formas de pagamento e permite dividir a conta por todos os clientes.

Parâmetros:

NumeroCupons: STRING com até 2 dígitos com o número de cupons em que a conta será divida. O número mínimo de cupons é 2 e o máximo é 20.

AcrescimoDesconto: Indica se haverá acréscimo ou desconto no cupom. "A" para acréscimo ou "D" para desconto.

TipoAcrescimoDesconto: Indica se o acréscimo ou desconto é por valor ou por percentual. "$" para desconto por valor ou "%" para percentual.

ValorAcrescimoDesconto: STRING com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto percentual.

FormaPagamento: STRING com as formas de pagamento. As formas devem ser separadas por ponto e vírgula (";") se for utilizada mais de uma, e deve ter no máximo 16 caracteres cada. Ex: Dinheiro;Cartão. É permitido a utilização de até 20 formas.

ValorFormaPagamento: STRING com os valores das formas de pagamento. Os valores devem ter no máximo 14 dígitos e serem separados por ponto e vírgula ";".

ValorPagoCliente: STRING com os valores pagos por cada cliente. Obedecem à mesma situação acima.

CPF: STRING com o CPF dos clientes. Os CPF's devem ter no máximo 29 caracteres e serem separados por ponto e vírgula ";".

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observações:

- O fechamento do cupom somente será executado caso a soma dos valores passados no parâmetro "ValorPagoCliente" seja exatamente igual ao total do Cupom Fiscal.

- O número de formas de pagamento e a quantidade de valores devem ser idênticos, caso contrário a dll retornará "Parâmetro Inválido".

- Se a conta deu R$ 10,00 reais e for dividida em dois clientes cada um pagando com uma forma de pagamento diferente, onde o primeiro pagará R$ 4,00 e o segundo R$ 6,00, deverá ser informado no parâmetro "FormaPagamento" as duas formas, os valores deverão ser informados no parâmetro "ValorFormaPagamento".

- Poderá ser informado uma única forma de pagamento com o valor total do Cupom Fiscal e dividí-la entre os clientes que irão pagar. Por exemplo: se a conta deu R$ 50,00 reais e todos irão pagar em Dinheiro, informe somente a forma de pagamento "Dinheiro" com o valor e em seguida faça a divisão da conta entre os clientes.

- As formas de pagamento aparecerão somente no primeiro cupom fiscal. Ao término do primeiro cupom será feita a emissão dos seguintes automaticamente.

- O cancelamento do cupom em emissão bloqueará a emissão dos demais.

- Todos os documentos fracionados terão o mesmo COO sendo que, o que os diferencia é a informação do número da via do cupom ao lado da inscrição "CUPOM FISCAL". Exemplo: "CUPOM FISCAL 2ª VIA"

- O parâmetro CPF dessa função é opcional e é utilizado a partir do segundo cliente. Para utiliza-lo você, obrigatoriamente, deve informar o CPF para o primeiro cliente, caso contrário a dll irá ignorar o(s) CPF(s) informado(s)s e não irá imprimi-lo(s). Se você quiser usar o CPF por exemplo para o cliente dois e não quiser usar no cliente 1 você deve passar espaço em branco no parâmetro CPF da função Bematech_FIR_AbreCupomRestaurante.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_FechaCupomContaDividida("3", "A", "%", "1000", "Dinheiro;Dinheiro;Cheque", "10,00;10,00;10,00", "10,00;10,00;10,00", "")

// Exemplo em Delphi

cQuantosCupons    := '3';

cAcresDesc        := 'A';

cTipoAcresDesc    := '%';

cValorAcresDesc   := '1000';

cFormaPgto        := 'Dinheiro;Dinheiro;Cheque';

cValorFormaPgto   := '10,00;10,00;10,00';

cValorPagoCliente := '10,00;10,00;10,00';

iRetorno := Bematech_FIR_ContaDividida( pchar( cQuantosCupons ),

                                       pchar( cAcresDesc ),

                                       pchar( cTipoAcresDesc ),

                                       pchar( cValorAcresDesc ),

                                       pchar( cFormaPgto ),

                                       pchar( cValorFormaPgto ),

                                       pchar( cValorPagoCliente ),

                                       pchar( '' ) );


Bematech_FIR_RelatorioMesasAbertas

Imprime um relatório das mesas que estão abertas.

Parâmetro:

TipoRelatorio: INTEIRO, onde: 0 para relatorio parcial ou 1 para relatório completo.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro Inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observações:

- No relatório parcial, para cada registro de venda será impresso apenas uma linha com as seguintes informações:

MESA   CÓDIGO   QTDE   REG/CAN   ACR/DES

- No relatório completo, além das informações anteriores, será impresso para cada registro mais uma linha com as seguintes informações:

DESCRIÇÃO   VLR UNIT   VLR ACR/DES

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_RelatorioMesasAbertas(1)

// Exemplo em Delphi

iRetorno := Bematech_FIR_RelatorioMesasAbertas( 1 );


Bematech_FIR_RelatorioMesasAbertasSerial

Retorna, pela porta serial da impressora, o relatório das mesas que estão abertas.

Parâmetro:

Não há.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observação:

- Essa função retorna o relatório completo no arquivo "RETORNO.TXT" no diretório espacificado no arquivo ini (veja o tópico "Arquivo de Configuração BemaFI32.ini para maiores informações".

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_RelatorioMesasAbertasSerial()

// Exemplo em Delphi

iRetorno := Bematech_FIR_RelatorioMesasAbertasSerial();


Bematech_FIR_ImprimeCardapio

Imprime os itens do cardápio com as seguintes informações: Código, Descrição, Alíquota e Quantidade.

Parâmetro:

Não há.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_ImprimeCardapio()

// Exemplo em Delphi

iRetorno := Bematech_FIR_ImprimeCardapio();


Bematech_FIR_CardapioPelaSerial

Retorna os itens do cardápio pela serial com as seguintes informações: Código, Descrição, Alíquota e Quantidade.

Parâmetro:

Não há.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_CardapioPelaSerial()

// Exemplo em Delphi

iRetorno := Bematech_FIR_CardapioPelaSerial();


 Bematech_FIR_RegistroVendaSerial

Bematech_FIR_RegistroVendaSerial

Retorna os registros de venda da mesa pela porta serial.

Parâmetro:

Mesa: STRING com o número da Mesa com até 4 dígitos.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Observações:

- Essa função retorna as informações dos registros de venda no seguinte formato:

Mesa.............................................................:  4 bytes

Valor unitário...................................................:  8 bytes

Flag de acréscimo ou desconto ("A" - acréscimo "D" - desconto)...:  1 byte

Valor do acréscimo/desconto......................................:  8 bytes

Quantidade.......................................................:  6 bytes

Código...........................................................: 14 bytes

Descrição........................................................: 17 bytes

Alíquota.........................................................:  2 bytes

Flag de registro/cancelamento ("R" – registro "C" - cancelamento):  1 byte

Será retornada a posição onde foi gravada a alíquota, iniciando em "00". Por exemplo:

- para a alíquota T01 será retornada a posição "00";

- para a alíquota T02 será retornada a posição "01";

- para a alíquota T03 será retornada a posição "02";

e, assim, sucessivamente.

- para a alíquota de Isenção (II) será retornada a posição "16";

- para a alíquota de Substituição Tributária (FF) será retornada a posição "17" e;

- para a alíquota de Não Incidência (NN) será retornada a posição "18".

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FIR_RegistroVendaSerial("0001")

// Exemplo em Delphi

cMesa := '0001';

iRetorno := Bematech_FIR_RegistroVendaSerial( pchar( cMesa ) );


Bematech_FIR_VerificaMemoriaLivre

Retorna a quantidade de bytes livres na memória da impressora para registros de venda ou itens de cardápio.

Parâmetro:

Bytes: Variável string com o tamanho de 6 posições para o valor correspondente ao bytes de memória livres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0 (Ack, St1 e St2)

Exemplo:

' Exemplo em Visual Basic

Bytes = Space(6)

iRetorno = Bematech_FI_VerificaMemoriaLivre(Bytes)

// Exemplo em Delphi

for iConta := 1 to 6 do Bytes := Bytes + ' ';

iRetorno := Bematech_FI_VerificaMemoriaLivre( Bytes );


Bematech_FI_IniciaModoTEF

Esta função trava o teclado e o mouse, nas operações de TEF.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

1: OK.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_IniciaModoTEF()

// Exemplo em Delphi

iRetorno := Bematech_FI_IniciaModoTEF();


 Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF

Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF

Imprime o comprovante não fiscal vinculado travando e destravando automaticamente o teclado e o mouse. Esta função pode ser utlizada para a impressão do texto da transação TEF. Não é necessário usar nenhuma outra função ou API do Windows para travar o teclado e o mouse.

Parâmetro:

Texto: STRING com o Texto a ser impresso no comprovante não fiscal vinculado com até 618 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Na impressora fiscal BEMATECH, 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.

- Antes de executar a função Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF, você deverá abrir o comprovante não-fiscal vinculado através da função Bematech_FI_AbreComprovanteNaoFiscalVinculado.

- Após a impressão do texto no comprovante não-fiscal vinculado, use a função Bematech_FI_FechaComprovanteNaoFiscalVinculado para fechá-lo.

- Na impressora fiscal YANCO, não tem limite de tempo, para o fechamento do comprovante.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF("Digite o texto a ser impresso aqui !!!")

// Exemplo em Delphi

cLinha := 'Entre com o texto a ser impresso aqui !!!';

iRetorno := Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF( pchar( cLinha ) );


 Bematech_FI_RelatorioGerencialTEF

Bematech_FI_RelatorioGerencialTEF

Imprime o relatório gerencial travando e destravando automaticamente o teclado e o mouse. Esta função pode ser utlizada para a impressão do texto da transação TEF. Não é necessário usar nenhuma outra função ou API do Windows para travar o teclado e o mouse.

Parâmetro:

Texto: STRING com o Texto a ser impresso no relatório com até 618 caracteres.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O cupom fiscal deve estar fechado.

- Se qualquer função diferente da Bematech_FI_RelatorioGerencialTEF for chamada com o relatorio aberto, efetuará seu fechamento automaticamente.

- Para fechar o relatório gerencial use a função Bematech_FI_FechaRelatorioGerencial.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RelatorioGerencialTEF("Digite o texto a ser impresso aqui !!!")

// Exemplo em Delphi

cLinha := 'Entre com o texto a ser impresso aqui !!!';

iRetorno := Bematech_FI_RelatorioGerencialTEF( pchar( cLinha ) );


Bematech_FI_FinalizaModoTEF

Esta função destrava o teclado e o mouse, nas operações de TEF.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

1: OK.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FinalizaModoTEF()

// Exemplo em Delphi

iRetorno := Bematech_FI_FinalizaModoTEF();


 Bematech_FI_AberturaDoDia

Bematech_FI_AberturaDoDia

Faz a abertura do caixa emitindo um suprimento e uma leitura X. Essa função grava o COO inicial e o Grande Total inicial que serão usados na função Bematech_FI_RelatorioTipo60Mestre. Portanto, se você for emitir o relatório "tipo 60 mestre" é obrigatório o uso dessa função.

Parâmetros:

Valor: STRING com o Valor do suprimento com até 14 dígitos (2 casas decimais). Informe o valor "0" para não fazer suprimento.

FormaPagamento: STRING com a Forma de pagamento com até 16 caracteres. Se não for informado, o suprimento será feito em Dinheiro.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AberturaDoDia("50,00", "Dinheiro")

// Exemplo em Delphi

cValor     := '50,00';

cFormaPgto := 'Dinheiro';

iRetorno := Bematech_FI_AberturaDoDia( pchar( cValor ),

                                      pchar( cFormaPgto ) );


 Bematech_FI_AbreBilhetePassagem

Bematech_FI_AbreBilhetePassagem

Abre o cupom na impressora bilhete de passagem.

Parâmetros:

ImprimeValorFinal: "1" - Imprime o valor pago no final do cupom. "0" - Não Imprime o valor pago no final do cupom.

ImprimeEnfatizado: "1" - Imprime as informações "EMBARQUE, POLTRONA e PLATAFORMA" enfatizadas. "0" - Não Imprime as informações enfatizadas (negrito).

Embarque: STRING com até 40 caracteres com o local de embarque.

Destino: STRING com até 40 caracteres com o local de destino.

Linha: STRING com até 40 caracteres com o nome da linha (Ex. Curitiba x São Paulo - Executivo).

Prefixo: STRING com até 40 caracteres.

Agente: STRING com até 40 caracteres com o nome do agente.

Agencia: STRING com até 40 caracteres com o nome da agência.

Data: STRING com a data de embarque no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

Hora: STIRNG com a hora do embarque no formato hhmmss ou hh:mm:ss.

Poltrona: STRING com até 2 caracteres com o número da poltrona.

Plataforma: STRING com até 3 caracteres com o número da plataforma.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

Para o registro de itens, utilize a função Bematech_FI_VendeItem(), porém valem algumas observações:

- Os campos de código e descrição devem ser informados, porém não serão impressos;

- É obrigatório pelo convênio SINIEF 06/89 no mínimo o registro da tarifa (num totalizador tributado) e do seguro (no totalizador não incidência).

O canhoto do motorista somente será impresso se a emissão do cupom adicional for ativada durante a lacração da impressora.

- Na impressora fiscal YANCO, este comando não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreBilhetePassagem("1", "1", "Curitiba", "São Paulo", "Leito", "123", "Carlos", "Itapemirim", "11/01/02", "23:30:00", "15", "D10")

// Exemplo em Delphi

cImprimeValorFinal := '1';

cImprimeEnfatizado := '1';

Embarque           := 'Curitiba';

Destino            := 'São Paulo';

Linha              := 'Leito';

Prefixo            := '123';

Agente             := 'Carlos';

Agencia            := 'Itapemirim';

Data               := '11/01/02';

Hora               := '23:30:00';

Poltrona           := '15';

Plataforma         := 'D10';

iRetorno := Bematech_FI_AbreBilhetePassagem( pchar( '1' ),

                                            pchar( '1' ),

                                            pchar( 'Curitiba' ),

                                            pchar( 'São Paulo' ),

                                            pchar( 'Leito' ),

                                            pchar( '123' ),

                                            pchar( 'Carlos' ),

                                            pchar( 'Itapemirim' ),

                                            pchar( '11/01/02' ),

                                            pchar( '23:30:00' ),

                                            pchar( '15' ),

                                            pchar( 'D10' ) );


Bematech_FI_ContadoBilhetePassagem

Bematech_FI_ContadorBilhetePassagem

Retorna o número de bilhetes de passagem emitidos.

Parâmetro:

NumeroBilhetes: Variável string com 6 posições para receber o número de passagens emitidas.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- A impressora fiscal YANCO não possui este tipo de contador.

Exemplo:

' Exemplo em Visual Basic

NumeroBilhetes = Space(6)

iRetorno = Bematech_FI_ContadorBilhetePassagem(NumeroBilhetes)

// Exemplo em Delphi

for iConta := 1 to 6 do NumeroBilhetes := NumeroBilhetes + ' ';

iRetorno := Bematech_FI_ContadorBilhetePassagem( NumeroBilhetes );


Bematech_FI_AbrePortaSerial

Abre a porta serial para comunicação entre a impressora e o micro.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

Observação:

- A função lê o nome da porta a ser aberta no arquivo BemaFI32.ini. Se o parâmetro "porta" estiver configurado com a palavra "Default" a função localiza onde a impressora está conectada e configura o arquivo INI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbrePortaSerial()

// Exemplo em Delphi

iRetorno := Bematech_FI_AbrePortaSerial();


 Bematech_FI_DadosSintegra

Bematech_FI_DadosSintegra

Esta função retorna informações da memória fiscal utilizadas na geração do relatório Sintegra.

Parâmetros:

DataInicial: STRING com a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

DataFinal: STRING com a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

O retorno das informações geradas por esta função, serão gravadas no arquivo RETORNO.TXT, na seguinte ordem:

Data | : 8 bytes com o formato AAAAMMDD (esta data refere-se a data em que a Redução Z foi emitida);
Número de Serie | : 20 bytes;
Número Sequencial do ECF | : 3 bytes;
Contador de Redução Z | : 6 bytes;
Cont. de Reinício de Operação | : 6 bytes;
GT Final | : 16 bytes;
GT Inicial | : 16 bytes;
Venda Bruta | : 16 bytes;
Venda Líquida | : 16 bytes;
Cancelamentos | : 12 bytes;
Descontos | : 12 bytes;
F (Substituição Tributária) | : 12 bytes;
I (Isenção) | : 12 bytes;
N (Não Incidência) | : 12 bytes;
ISS | : 12 bytes;
Situação Tributária de ICMS | : 4 bytes e;
Valor acumulado na Situação Tributária | : 12 bytes.

Observações:

- Os campos "Situação Tributária de ICMS" e "Valor acumulado na Situação Tributária" poderão ser repetidos de acordo com o número de alíquotas utilizadas nas vendas.

- Os campos já estão formatados no tamanho que o relatório do Sintegra exige.

- Esta função deve ser utilizada nas impressoras fiscais matriciais (MP-20 FI II e MP-40 FI II). Para as impressoras fiscais térmicas com MFD (Memória de Fita Detalhe), utilize a função Bematech_FI_RelatorioSintegraMFD.

- Cada linha do arquivo RETORNO.TXT corresponde a um dia de movimento na impressora.

Exemplo do conteúdo do arquivo RETORNO.TXT:

20040129470800057185001470043000000001443234300000000144205870000000000011756000000000000539300000000356400000000000000000000099500000000075000000000005000000000279917000000000018101200000000001788

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_DadosSintegra("010104", "310104")

// Exemplo em Delphi

DataInicial := '010104';

DataFinal   := '310104';

iRetorno    := Bematech_FI_DadosSintegra( pchar( DataInicial ),

                                         pchar( DataFinal ) );


Bematech_FI_FechamentoDoDia

Faz o fechamento do dia emitindo uma Redução Z. Essa função grava o COO final e o Grande Total final que serão usados na função Bematech_FI_RelatorioTipo60Mestre.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FechamentoDoDia()

// Exemplo em Delphi

iRetorno := Bematech_FI_FechamentoDoDia();


Bematech_FI_FechaPortaSerial

Fecha a porta serial.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

1: OK.

0: Erro ao fechar a porta.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FechaPortaSerial()

// Exemplo em Delphi

iRetorno := Bematech_FI_FechaPortaSerial();


Bematech_FI_FechaRelatorioXouZ

Esta função realiza o fechamento do Relatório X ou do Relatório Z, quando o mesmo estiver aberto e não finalizado.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FechaRelatorioXouZ()

// Exemplo em Delphi

iRetorno := Bematech_FI_FechaRelatorioXouZ();


 Bematech_FI_ImpressaoCarne

Bematech_FI_ImpressaoCarne

Imprime um carnê de pagamento.

Parâmetros:

Titulo: STRING com o titulo para o carnê, impresso centralizado e expandido em cada parcela. Limitado em 20 caracteres.

Parcelas: STRING com o(s) valor(es) de cada parcela, separadas por ';' (ponto virgula), com duas casas decimais obrigatóriamente. Formatos válidos: "23,23;1.200,00" ou "2323;120000". Ver observações abaixo.

Datas: STRING com a(s) data(s) de vencimento das parcelas separadas por ';'. Formato válidos: "10/10/2003;10112003; ". Ver

observações abaixo.

Quantidade: INTEGER com a quantidade de Parcelas. Deve ser diferente de zero.

Texto: STRING com o texto livre com até 200 caracteres.

Cliente: STRING com o nome do cliente com até 30 caracteres.

RG_CPF: STRING com o número do RG/CPF do cliente. Pode ser nulo ou vazio.

Cupom: STRING com o COO do Cupom Fiscal com 6 caracteres.

Vias: INTEGER com a quantidade de Vias. (1 ou 2 apenas).

Assina: INTEGER para habilitar ou não a assinatura do cliente, onde:

1: Habilita a impressão de uma linha tracejada para a assinatura do cliente.

0: Não habilita a impressão da linha tracejada para a assinatura do cliente.

Possíveis retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução.

-2 - Erro de parâmetros.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Obsevações:

- Para o parâmetro Parcelas, quando passado um número menor de parcelas na string do que passado no parâmetro quantidade, o valor das parcelas não passadas será iguado ao último valor válido na string. Por exemplo, caso seja passado "20,00;12000;340" em parcelas e 6 em quantidade, o valor de cada parcela será impresso da seguinte forma, respectivamente: R$ 20,00 ... R$ 120,00 ... R$ 3,40 ... R$ 3,40 ... R$ 3,40 ... R$ 3,40. Caso o valor passado em quantidade sema menor do que o número de parcelas encontradas em parcelas, a função retorna erro de parâmetros.

- Para o parâmetro Datas, quando passado um número menor de datas do que passado no parâmetro quantidade, as datas ausentes serão calculadas e impressas com acréscimo de um mês, a partir da última data válida. Por exemplo, caso seja passado "20/09/1999;31/12/1999" no parâmetro datas e 5 no parâmetro quantidade, serão impressas no carnê as seguinte datas, respectivamente: 20/09/1999 ... 31/12/1999 ... 31/01/2000 ... 29/02/2000 (ano bissexto) ... 31/03/2000.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImpressaoCarne("Carne de Pgto", "10,00;10,00;10,00", "30/06/03;30/07/03;30/08/03", 3, "Texto a ser impresso no carnê", "Fulano de Tal", "1234567890-12345", "000257", 1, 0)

// Exemplo em Delphi

cTitulo       := 'Carne de Pgto';

cValorParcela := '10,00;10,00;10,00';

cData         := '30/06/03;30/07/03;30/08/03';

iQtdeParcela  := 3;

cTexto        := 'Texto a ser impresso no carnê';

cCliente      := 'Fulano de Tal';

cRGC          := '1234567890-12345';

cCOOCupom     := '000257';

cVia          := 1;

cAssinatura   := 0;

iRetorno := Bematech_FI_ImpressaoCarne( pchar( cTitulo ),

                                       pchar( cValorParcela ),

                                       pchar( cData ),

                                       iQtdeParcela,

                                       pchar( cTexto ),

                                       pchar( cCliente ),

                                       pchar( cRGC ),

                                       pchar( cCOOCupom ),

                                       cVia,

                                       cAssinatura );


Bematech_FI_ImprimeConfiguracoesImpressora

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âmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

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                                     0310

Número de série                               4708991023070

Número da loja                                         0001

Número do caixa                                        0001

Símbolo da moeda                                         R$

Modo de operação                             Arredondamento

Horário de verão                                        Não

Já houve redução Z                                      Não

Memória fiscal                                   Com espaço

Versão da dll                                           1.9

log da dll                                     Desabilitado

Lin. Imp. após pouco papel                                0

Tipo Impressora                fiscal + gaveta+autenticação

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImprimeConfiguracoesImpressora()

// Exemplo em Delphi

iRetorno := Bematech_FI_ImprimeConfiguracoesImpressora();


Bematech_FI_ImprimeDepartamentos

Imprime os departamentos e seus valores acumulados em um relatório gerencial. Será emitida uma leitura X antes. Essas informações eram impressas na leitura X até a versão 3.0 e foram retiradas por solicitação do fisco.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Na impressora fiscal YANCO, este comando não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImprimeDepartamentos()

// Exemplo em Delphi

iRetorno := Bematech_FI_ImprimeDepartamentos();


 Bematech_FI_InfoBalanca

Bematech_FI_InfoBalanca

Retorna informações da balança pela serial.

Parâmetro:

Porta: STRING com a porta serial onde na qual a balança está conectada (Ex: "COM1", "COM2", etc).

Modelo: INTEGER com o modelo da balança, onde:

1: Modelo BP6

2: Modelo CS15

3: SA-110 com protocolo da balança igual a 0 (zero)

4: SA-110 com protocolo da balança igual a 4 (quatro)

Peso: STRING iniciada com 6 espaços para o retorno do peso medido pela balança no formato "KKggg" (Ex: "01200" igual à 1Kg e 200g). Para as balanças da família BP é "SKKggg" (Ex: "013200" igual à 13Kg e 200g e "-00020" igual à –20g).

PrecoKilo: STRING iniciada com 6 espaços para o retorno do preço por kilo, configurado na balança, no formato "RRRCC" (Ex: "01234" igual à R$12,34/Kg). Informação não retornada pelas balanças da família BP.

Total: STRING iniciada com 6 espaços para o retorno do preço total do produto no formato "RRRCCC". Informação NÂO retornada pelas balanças da família BP.

Possíveis retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução.

-2 - erro de parametros.

-33 - Condição de alívio de prato (para modelos CS) ou peso negativo (para modelos BP).

-34 - Peso instável.

-35 - Peso excedido.

Observações:

· É importante verificar o tipo de protocolo que se encontra a balança SA-110 Bematech para que a função possa retornar corretamente as informações.

· O recomendado é usar o protocolo 4 configurado na balança SA-110 Bematech.

Exemplo:

' Exemplo em Visual Basic

cPeso = Space(6)

cPrecoKilo = Space(6)

cTotal = Space(6)

iRetorno = Bematech_FI_InfoBalanca("COM3", 1, cPeso, cPrecoKilo, cTotal)

// Exemplo em Delphi

for iConta := 1 to 6 do begin

   cPeso      := cPeso      + ' ';

   cPrecoKilo := cPrecoKilo + ' ';

   cTotal     := cTotal     + ' ';

end;

cPorta   := 'COM3';

iRetorno := Bematech_FI_InfoBalanca( pchar( cPorta ), 1, cPeso, cPrecoKilo, cTotal );


Bematech_FI_BaudRateBalanca

Configura Baud Rate para a comunicação serial da balança.

Parâmetro:

BaudRate: INTEGER com o valor da velocidade a ser configurado na balança, compreendido entre 2400, 4800, 9600 ou 19200.

Possíveis retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução.

-2 - Erro de parametros.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_BaudRateBalanca(2400)

// Exemplo em Delphi

iRetorno := Bematech_FI_BaudRateBalanca( 2400 );


Bematech_FI_MapaResumo

Gera o relatório "Mapa Resumo" referente ao movimento do dia. As informações serão geradas no arquivo RETORNO.TXT no diretório configurado no parâmetro "path" do arquivo ini. O diretório default configurado é o diretório raiz (C:\).

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

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

COO....................:          000026

Venda Bruta............:           43,73

Venda Líquida..........:           25,50

Cancelamentos..........:           11,14

Acréscimos.............:            2,33

Descontos..............:            7,09

ISS....................:            0,00

Isenção................:            0,00

Não Incidência.........:            1,95

Substituição Tributária:           23,55

1200...................:            0,00

1700...................:            0,00

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

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_MapaResumo()

// Exemplo em Delphi

iRetorno := Bematech_FI_MapaResumo();


Bematech_FI_RegistrosTipo60

Esta função retorna os registro Tipo 60 Mestre e Analítico completos da impressora.

Parâmetro:

não há.

O retorno das informações geradas por esta função, serão gravadas no arquivo RETORNO.TXT, na seguinte ordem:

- para o Registro Tipo 60 Mestre:

Campo | Conteúdo | Tamanho
Tipo | 60 | 2
Subtipo | M | 1
Data de Emissão | Data de Emissão dos Cupons Fiscais | 8
Número de Série do ECF | Número de Série do ECF | 20
Número do ECF | Número do ECF | 3
Modelo do Documento Fiscal | Código do Modelo Documento Fiscal | 2
COO Inicial | Primeiro Cupom Fiscal Emitido | 6
COO Final | Último Cupom Fiscal Emitido | 6
Contador de Redução Z | Reduções Z | 6
Contador de Reinício de Operação | Reinício de Operações | 3
Venda Bruta | Valor da Venda Bruta | 16
Grande Total | Valor do GT | 16
Brancos |  | 37

- para o Registro Tipo 60 Analítico:

Campo | Conteúdo | Tamanho
Tipo | 60 | 2
Subtipo | A | 1
Data de Emissão | Data de Emissão dos Cupons Fiscais | 8
Número de Série do ECF | Número de Série do ECF | 20
Situação Tributária/Alíquota | Identificador da Situação Tributária/Alíquota do ICMS | 4
Valor Acumulado no Totalizador Parcial | Valor acumulado no final do dia no totalizador parcial da situação tributária | 12
Brancos |  | 79

Observações:

- Esta função deve ser utilizada diariamente, após a emissão da Redução Z.

- Os campos já estão formatados no tamanho que o relatório do Sintegra exige.

- Esta função deve ser utilizada nas impressoras fiscais matriciais (MP-20 FI II e MP-40 FI II). Para as impressoras fiscais térmicas com MFD (Memória de Fita Detalhe), utilize a função Bematech_FI_RelatorioSintegraMFD.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RegistrosTipo60()

// Exemplo em Delphi

iRetorno := Bematech_FI_RegistrosTipo60();


Bematech_FI_RelatorioTipo60Analitico

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" do arquivo ini. O diretório default é o diretório raiz (C:\).

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O relatório gerado terá o seguinte layout:

Tipo do relatório.........:                       60

Subtipo...................:                        A

Data de emissão...........:                 12/05/03

Número de série...........:          5708990400028

Cancelamentos.............:                    11,14

Descontos.................:                     7,09

F.........................:                    18,55

I.........................:                     0,00

N.........................:                     1,95

1200......................:                     0,00

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

- 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 essa função após a Redução Z, caso contrário as informações geradas serão referentes ao movimento do dia anterior.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RelatorioTipo60Analitico()

// Exemplo em Delphi

iRetorno := Bematech_FI_RelatorioTipo60Analitico();


Bematech_FI_RelatorioTipo60Mestre

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" do arquivo ini. O diretório default é o diretório raiz (C:\).

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- O relatório gerado terá o seguinte layout:

Tipo do relatório.........:                       60

Subtipo...................:                        M

Data de emissão...........:                 12/05/03

Número de série...........:          5708990400028

Número do equipamento.....:                     0001

Modelo do documento fiscal:                       2D

COO inicial...............:                   000001

COO final.................:                   000012

Contador de reduções......:                     0307

Reinicio de Operacao......:                     0129

Venda Bruta...............:                    38,73

Totalizador geral.........:                 6.169,21

- As informações contidas no relatório Tipo 60 Mestre são alimentadas pelas funções: Bematech_FI_AberturaDoDia e Bematech_FI_FechamentoDoDia (veja essas funções para maiores informações). A função Bematech_FI_RelatorioTipo60Mestre deve ser executada após a função Bematech_FI_FechamentoDoDia() ou após a Redução Z (caso a redução tenha sido executada automaticamente pela impressora).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RelatorioTipo60Mestre()

// Exemplo em Delphi

iRetorno := Bematech_FI_RelatorioTipo60Mestre();


Bematech_FI_ResetaImpressora

Reseta a impressora em caso de erro.

Parâmetro:

Não há

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observação:

- Será executada somente se a impressora estiver em erro.

- Na impressora fiscal YANCO, este comando não existe.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ResetaImpressora()

// Exemplo em Delphi

iRetorno := Bematech_FI_ResetaImpressora();


Bematech_FI_RetornoImpressora

Lê o retorno da impressora referente ao último comando enviado.

Parâmetros:

ACK: Variável INTEIRA para receber o primeiro byte.

ST1: Variável INTEIRA para receber o segundo byte.

ST2: Variável INTEIRA para receber o terceiro byte.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

Observação:

- Essa função deve ser usada após a execução de qualquer outra função da DLL para ler o Retorno da Impressora referente a função executada. Essa função devolve o status da impressora.

- Se o retorno do Ack, St1 e St2 for 0,0,0 corresponde que a impressora não possui nenhum status de execução para retornar. Isso significa que nehuma função foi executada anteriormente

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RetornoImpressora(Ack,St1,St2)

// Exemplo em Delphi

iRetorno := Bematech_FI_RetornoImpressora( Ack, St1, St2 );


Bematech_FI_VerificaImpressoraLigada

Verifica se a impressora está ligada ou conectada no computador.

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: Impressora Ligada.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-6: Impressora desligada ou cabo de comunicação desconectado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VerificaImpressoraLigada()

// Exemplo em Delphi

iRetorno := Bematech_FI_VerificaImpressoraLigada();


Bematech_FI_VersaoDll

Esta função retorna a versão atual da BemaFI32.dll.

Parâmetro:

Versao: variável STRING com o tamanho de 9 bytes, para receber a versão da dll.

Possíveis retornos da Função (INTEIRO):

1 - Ok.

-1 - Erro de execução.

Exemplo:

' Exemplo em Visual Basic

cVersao = Space(9)

iRetorno = Bematech_FI_VersaoDll(cVersao)

// Exemplo em Delphi

for iConta := 1 to 9 do cVersao := cVersao + ' ';

iRetorno := Bematech_FI_VersaoDll( cVersao );


Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional

Esta função retorna a data/hora de gravação do último usuário da impressora, data/hora de gravação do software básico da impressora e a sigla da MF adicional, caso exista.

Parâmetros:

DataHoraUsuario: variável STRING para receber a informação da data e hora de gravação do último usuário da impressora, com o tamanho de 20 bytes.

DataHoraSWBasico: variável STRING para receber a informação da data e hora de gravação do software básico da impressora, com o tamanho de 20 bytes.

MFAdicional: variável STRING para receber a informação de Memória Fiscal adicional, com o tamanho de 5 bytes, caso exista. Se não houver MF adicional, o retorno será NULL.

Possíveis retornos da Função (INTEIRO):

1 - Ok.

-1 - Erro de execução.

Exemplo:

' Exemplo em Visual Basic

dataUsuario = Space(20)

dataSWBasico = space(20)

MFAdicional = Space(5)

iRetorno = Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional(dataUsuario, dataSWBasico, MFAdicional)

// Exemplo em Delphi

SetLength( dataUsuario, 20 );

SetLength( dataSWBasico, 20 );

MFAdicional := '';

iRetorno := Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional( dataUsuario, dataSWBasico, MFAdicional );


Importante

As funções não descritas neste tópico, são funções encontradas nos tópicos acima, como por exemplo:

- para Venda de Item, use a função Bematech_FI_VendeItem;

- para Leitura X, use a função Bematech_FI_LeituraX ou;

- para o retorno do Número do Cupom, use a função Bematech_FI_NumeroCupom.

e assim, sucessivamente.


Bematech_FI_AtivaDesativaAlinhamentoEsquerdaMFD

Ativa ou desativa o alinhamento à esquerda da impressão da descrição do item.

Parâmetro:

iFlag: INTEGER com 1 (um) dígito, onde:

0 (zero): desativa

1 (um): ativa

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a Redução Z.

- Não será necessário sua execução a cada início de dia.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AtivaDesativaAlinhamentoEsquerdaMFD(1)

// Exemplo em Delphi

iFlag := 1;

iRetorno := Bematech_FI_AtivaDesativaAlinhamentoEsquerdaMFD( iFlag );


Bematech_FI_AtivaDesativaCancelamentoCupom2HorasMFD

Ativar ou desativar o cancelamento automático do cupom às duas horas da manhã.

Parâmetro:

iFlag: INTEGER com 1 para habilitar ou 0 para desabilitar o cancelamento automatico do cupom as 2 horas da manhã.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a Redução Z.

- Não será necessário sua execução a cada início de dia.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.03.03 ou MP-2100 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AtivaDesativaCancelamentoCupom2HorasMFD(1)

// Exemplo em Delphi

iRetorno := Bematech_FI_AtivaDesativaCancelamentoCupom2HorasMFD( 1 );


Bematech_FI_AtivaDesativaTratamentoONOFFLineMFD

Ativa ou desativa o tratamento da tecla ON LINE da impressora.

Parâmetro:

iFlag: INTEGER com 1 (um) dígito, onde:

0 (zero): desativa

1 (um): ativa

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- Esta função ativará ou desativará o tratamento da tecla ON LINE da impressora. Se ativada, o ON LINE da impressora é bloqueado, evitando que ela entre em OFF LINE, caso a tecla seja pressionada.

- Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a Redução Z.

- Não será necessário sua execução a cada início de dia.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AtivaDesativaTratamentoONOFFLineMFD(1)

// Exemplo em Delphi

iFlag := 1;

iRetorno := Bematech_FI_AtivaDesativaTratamentoONOFFLineMFD( iFlag );


Bematech_FI_AtivaDesativaVendaUmaLinhaMFD

Ativa ou desativa a venda de item em apenas uma linha.

Parâmetro:

iFlag: INTEGER com 1 (um) dígito, onde:

0 (zero): desativa

1 (um): ativa

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a Redução Z.

- Não será necessário sua execução a cada início de dia.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

- Para que o item possa ser impresso em uma única linha, o seu código e sua descrição (juntos) não podem ultrapassar 16 caracteres; a quantidade deve possuir até 2 dígitos (entre 1 e 99) e o valor unitário deve possuir até 3 dígitos inteiros (entre 0,01 e 999,99).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AtivaDesativaVendaUmaLinhaMFD(1)

// Exemplo em Delphi

iFlag := 1;

iRetorno := Bematech_FI_AtivaDesativaVendaUmaLinhaMFD( iFlag );


Bematech_FI_AtivaDesativaSensorPoucoPapelMFD

Ativa ou desativa o sensor de pouco papel.

Parâmetro:

iFlag: INTEGER com 1 (um) dígito, onde:

0 (zero): desativa

1 (um): ativa

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a Redução Z.

- Não será necessário sua execução a cada início de dia.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AtivaDesativaSensorPoucoPapelMFD(1)

// Exemplo em Delphi

iFlag := 1;

iRetorno := Bematech_FI_AtivaDesativaSensorPoucoPapelMFD( iFlag );


Bematech_FI_AtivaDesativaCorteTotalMFD

Ativa ou desativa o corte total do papel.

Parâmetro:

iFlag: INTEGER com 1 (um) dígito, onde:

0 (zero): desativa

1 (um): ativa

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- Esta função só será executada, caso a impressora não tenha nenhum movimento no dia ou após a Redução Z.

- Não será necessário sua execução a cada início de dia.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AtivaDesativaCorteTotalMFD(1)

// Exemplo em Delphi

iFlag := 1;

iRetorno := Bematech_FI_AtivaDesativaCorteTotalMFD( iFlag );


Bematech_FI_VerificaCancelamentoCupom2HorasMFD

Verificar se o cancelamento automático do cupom às duas horas está habilitado ou desabilitado.

Parâmetro:

cFlag: Variável STRING para receber a informacao, onde:

0: cancelamento desabilitado.

1: cancelamento habilitado.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-8 - Erro ao criar ou gravar no arquivo texto

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.03.03 ou MP-2100 TH FI.

Exemplo:

' Exemplo em Visual Basic

cFlag = " "

iRetorno = Bematech_FI_VerificaCancelamentoCupom2HorasMFD( cFlag )

// Exemplo em Delphi

cFlag := ' ';

iRetorno := Bematech_FI_VerificaCancelamentoCupom2HorasMFD( cFlag );


 Bematech_FI_AbreCupomMFD

Bematech_FI_AbreCupomMFD

Abre o cupom fiscal na impressora MFD.

Parâmetros:

CGC_CPF: STRING até 29 caracteres com o CGC ou CPF do cliente.

Nome: STRING até 30 caracteres com o nome do cliente.

Endereco: STRING até 80 caracteres com o endereço do cliente.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observação:

- O cupom fiscal deve estar fechado.

- Na impressora fiscal Bematech modelo MP-2100 TH FI o tamanho da descrição do endereço, impresso no cabeçalho do cupom fiscal, foi reduzido de 80 para 79 caracteres. Para manter a compatibilidade, será aceito o tamanho de 80 caracteres, mas internamente a impressora registrará apenas os 79 primeiros caracteres.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreCupomMFD("10.123.154-98", "Fulano de Tal", "R. Sem Fim, 1000")

// Exemplo em Delphi

cCPF      := '10.123.154-98';

cNome     := 'Fulano de Tal';

cEndereco := 'R. Sem Fim, 1000';

iRetorno := Bematech_FI_AbreCupomMFD( pchar( cCPF ),

                                     pchar( cNome ),

                                     pchar( cEndereco ) );


 Bematech_FI_AcrescimoDescontoItemMFD

Bematech_FI_AcrescimoDescontoItemMFD

Efetua acréscimo ou desconto em qualquer item enquanto o cupom fiscal não estiver totalizado.

Parâmetros:

Item: STRING numérica até 3 dígitos com o número do item.

AcrescimoDesconto: Indica se é acréscimo ou desconto. 'A' para acréscimo ou 'D' para desconto.

TipoAcrescimoDesconto: Indica se o acréscimo ou desconto é por valor ou por percentual. '$' para desconto por valor e '%' para percentual.

ValorAcrescimoDesconto: STRING com no máximo 14 dígitos para acréscimo ou desconto por valor e 4 dígitos para acréscimo ou desconto percentual.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

- 2 - Parâmetro inválido.

- 4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

- 5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AcrescimoDescontoItemMFD("005", "D", "$", "1000")

// Exemplo em Delphi

cNumeroItem     := '005';

cAcresDesc      := 'D';

cTipoAcresDesc  := '%';

cValorAcresDesc := '1000';

iRetorno := Bematech_FI_AcrescimoDescontoItemMFD( pchar( cNumeroItem ),

                                                 pchar( cAcresDesc ),

                                                 pchar( cTipoAcresDesc ),

                                                 pchar( cValorAcresDesc ) );


 Bematech_FI_AcrescimoDescontoSubtotalMFD

Bematech_FI_AcrescimoDescontoSubtotalMFD

Efetua acréscimo ou desconto em subtotal do cupom.

Parâmetros:

Flag: STRING com "A" para Acréscimo ou "D" para Desconto.

Tipo: STRING com "$" para Acréscimo ou Desconto por valor, ou "%" para Acréscimo ou Desconto percentual.

Valor: STRING com o valor no máximo de 14 dígitos para Acréscimo ou Desconto, ou valor com 4 dígitos para Acréscimo ou Desconto por percentual.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- O cupom deve estar subtotalizado.

- O cupom não pode estar totalizado.

- É permitido o registro de apenas uma operação válida para acréscimo e uma para desconto no subtotal.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AcrescimoDescontoSubtotalMFD("A", "%", "10,00")

// Exemplo em Delphi

cAcresDesc      := 'A';

cTipoAcresDesc  := '%';

cValorAcresDesc := '10,00';

iRetorno := Bematech_FI_AcrescimoDescontoSubtotalMFD( pchar( cAcresDesc ),

                                                     pchar( cTipoAcresDesc ),

                                                     pchar( cValorAcresDesc ) );


 Bematech_FI_CancelaAcrescimoDescontoItemMFD

Bematech_FI_CancelaAcrescimoDescontoItemMFD

Cancela a acréscimo ou a desconto dado no item.

Parâmetros:

Flag: STRING com "A" para cancelar o Acréscimo ou "D" para cancelar o Desconto.

Item: STRING de até 3 dígitos com o número do item a ser cancelado restrito aos 300 últimos registros efetuados.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaAcrescimoDescontoItemMFD("A", "005")

// Exemplo em Delphi

cAcresDesc  := 'A';

cNumeroItem := '005';

iRetorno := Bematech_FI_CancelaAcrescimoDescontoItemMFD( pchar( cAcresDesc ),

                                                        pchar( cNumeroItem ) );


 Bematech_FI_CancelaAcrescimoDescontoSubtotalMFD

Bematech_FI_CancelaAcrescimoDescontoSubtotalMFD

Cancela acréscimo e desconto efetuados em subtotal do cupom.

Parâmetro:

Flag: STRING com "A" para cancelar o Acréscimo ou "D" para cancelar o Desconto, dado no subtotal

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- O cupom deve estar subtotalizado.

- O cupom deve ter operações anteriores de acréscimo ou desconto em subtotal.

- O cupom não pode estar totalizado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaAcrescimoDescontoSubtotalMFD("D")

// Exemplo em Delphi

cAcresDesc := 'D';

iRetorno := Bematech_FI_CancelaAcrescimoDescontoSubtotalMFD( pchar( cAcresDesc ) );


 Bematech_FI_CancelaCupomMFD

Bematech_FI_CancelaCupomMFD

Cancela o último cupom emitido.

Parâmetros:

CGC_CPF: STRING até 29 caracteres com o CGC ou CPF do cliente.

Nome: STRING até 30 caracteres com o nome do cliente.

Endereco: STRING até 80 caracteres com o endereço do cliente.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro Inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaCupomMFD("11.111.111-11", "Fulano de Tal", "R. Sem Fim, 1000")

// Exemplo em Delphi

cCPF             := '11.111.111-11';

cNomeCliente     := 'Fulano de Tal';

cEnderecoCliente := 'R. Sem Fim, 1000';

iRetorno := Bematech_FI_CancelaCupomMFD( pchar( cCPF ),

                                        pchar( cNomeCliente ),

                                        pchar( cEnderecoCliente ) );


Bematech_FI_CupomAdicionalMFD

Emite um cupom adicional com as informações do COO e valor do cupom fiscal.

Parâmetro:

Não há

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CupomAdicionalMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_CupomAdicionalMFD();


 Bematech_FI_EfetuaFormaPagamentoIndiceMFD

Bematech_FI_EfetuaFormaPagamentoIndiceMFD

Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s), através de seu(s) índice(s).

Parâmetros:

IndiceFormaPagamento: STRING com o índice da forma de pagamento com 2 caracteres.

ValorFormaPagamento: STRING com o valor da forma de pagamento com até 14 dígitos.

Parcelas: STRING numérica entre 1 e 24 com o número de parcelas em que o pagamento será realizado.

DescricaoFormaPagto: STRING com a descrição da forma de pagamento com no máximo 80 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-24 - Forma de Pagamento não programada.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- O número de parcelas é utilizado para emissão do comprovante não fiscal vinculado. Poderá ser emitido um comprovante para cada parcela.

- A descrição será impressa uma linha após a forma de pagamento.

- O fechamento do cupom com formas de pagamento deve ter sido iniciado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EfetuaFormaPagamentoIndiceMFD("01", "50,00", "2", "Compra parcelada")

// Exemplo em Delphi

cIndiceFormaPgto := '01';

cValorPago       := '50,00';

cNumeroParcelas  := '2';

cMsg             := 'Compra parcelada';

iRetorno := Bematech_FI_EfetuaFormaPagamentoMFD( pchar( cIndiceFormaPgto ),

                                                pchar( cValorPago ),

                                                pchar( cNumeroParcelas ),

                                                pchar( cMsg ) );


 Bematech_FI_EfetuaFormaPagamentoMFD

Bematech_FI_EfetuaFormaPagamentoMFD

Imprime a(s) forma(s) de pagamento e o(s) valor(es) pago(s) nessa forma.

Parâmetros:

FormaPagamento: STRING com a forma de pagamento com no máximo 16 caracteres.

ValorFormaPagamento: STRING com o valor da forma de pagamento com até 14 dígitos.

Parcelas: STRING numérica entre 1 e 24 com o número de parcelas em que o pagamento será realizado.

DescricaoFormaPagto: STRING com a descrição da forma de pagamento com no máximo 80 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-24 - Forma de Pagamento não programada.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- O número de parcelas é utilizado para emissão do comprovante não fiscal vinculado. Poderá ser emitido um comprovante para cada parcela.

- A descrição será impressa uma linha após a forma de pagamento.

- O fechamento do cupom com formas de pagamento deve ter sido iniciado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EfetuaFormaPagamentoMFD("Cartão VISA", "50,00", "2", "Compra parcelada")

// Exemplo em Delphi

cFormaPgto      := 'Cartão VISA';

cValorPago      := '50,00';

cNumeroParcelas := '2';

cMsg            := 'Compra parcelada';

iRetorno := Bematech_FI_EfetuaFormaPagamentoMFD( pchar( cFormaPgto ),

                                                pchar( cValorPago ),

                                                pchar( cNumeroParcelas ),

                                                pchar( cMsg ) );


 Bematech_FI_IniciaFechamentoCupomMFD

Bematech_FI_IniciaFechamentoCupomMFD

Inicia o fechamento do cupom fiscal. Permite acréscimo e desconto no fechamento do cupom.

Parâmetros:

AcrescimoDesconto: STRING que indica se haverá acréscimo no cupom, desconto ou ambos. "A" para acréscimo, "D" para desconto e "X" para acréscimo e desconto.

TipoAcrescimoDesconto: STRING que indica se o acréscimo ou desconto é por valor ou por percentual. "$" para desconto por valor e "%" para percentual.

ValorAcrescimo: STRING com no máximo 14 dígitos para acréscimo por valor e 4 dígitos para acréscimo percentual.

ValorDesconto: STRING com no máximo 14 dígitos para desconto por valor e 4 dígitos para desconto percentual.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observação:

- Para efetuar a forma de pagamento use a função Bematech_FI_EfetuaFormaPagamentoMFD.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_IniciaFechamentoCupomMFD("X","%","1200","1000")

// Exemplo em Delphi

cAcresDesc     := 'X';

cTipoAcresDesc := '%';

cValorAcres    := '1200';

cValorDesc     := '1000';

iRetorno := Bematech_FI_IniciaFechamentoCupomMFD( pchar( cAcresDesc),

                                                 pchar( cTipoAcresDesc ),

                                                 pchar( cValorAcres ),

                                                 pchar( cValorDesc ) );


 Bematech_FI_ProgramaFormaPagamentoMFD

Bematech_FI_ProgramaFormaPagamentoMFD

Programa as formas de pagamento.

Parâmetros:

FormaPagto: STRING até 16 caracteres com a forma de pagamento.

OperacaoTef: STRING com 0 (zero) ou 1 (um) indicando se a forma de pagamento permite operação TEF ou não, onde:

1 - permite operação TEF

0 - não permite operação TEF.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observação:

- Na impressora fiscal Bematech modelo MP-2100 TH FI o tamanho da descrição das formas de pagamento foi reduzido de 16 para 15 caracteres. Para manter a compatibilidade, será aceito o tamanho de 16 caracteres, mas internamente a impressora registrará apenas os 15 primeiros caracteres.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaFormaPagamentoMFD("Cartão", "1")

// Exemplo em Delphi

cFormaPgto := 'Cartao';

cTef       := '1';

iRetorno := Bematech_FI_ProgramaFormaPagamentoMFD( pchar( cFormaPgto ),

                                                  pchar( cTef ) );


Bematech_FI_SubTotalizaCupomMFD

Subtotaliza o cupom fiscal, ou seja, inicia o fechamento imprimindo o valor total do cupom.

Parâmetro:

Não há

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

Essa função habilita as seguintes operações:

- Acréscimo ou desconto em subtotal.

- Cancelamento de acréscimo ou desconto em subtotal.

- Totalização do cupom fiscal

Restrições:

- O cupom fiscal deve estar aberto e com item vendido.

- Caso o valor total do cupom seja zero, o mesmo será cancelado.

- Para usar essa função você não pode ter iniciado o fechamento do cupom. (Bematech_FI_IniciaFechamentoCupomMFD)

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_SubTotalizaCupomMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_SubTotalizaCupomMFD();


 Bematech_FI_TerminaFechamentoCupomCodigoBarrasMFD

Bematech_FI_TerminaFechamentoCupomCodigoBarrasMFD

Termina o fechamento do cupom com mensagem promocional e impressão de código de barras.

Parâmetros:

cMensagem: STRING com a mensagem promocional com até 384 caracteres (8 linhas X 48 colunas).

cTipoCodigo: STRING com o tipo de codigo que será impresso, exemplos: "EAN13", "PDF417", "ITF", "EAN8", "CODABAR", "CODE128", "CODE39", "ISBN", "MSI", "PLESSEY", "UPCA" e "UPCE".

cCodigo: STRING com o código a ser impresso, respeitando a definição do tipo de código, citado acima (veja o tópico "Impressão de Código de Barras" para verificar as definições).

iAltura: INTEIRO com o valor de altura, entre 1 e 255. O default é 162.

iLargura: INTEIRO com o valor da largura, entre 0 e 2, onde:

0 - barras finas

1 - médias (default)

2 - grossas

iPosicaoCaracteres: INTEIRO com o valor da posição dos caracteres do código, entre 0 e 3, onde:

0 - nao imprime os caracteres

1 - caracteres acima do codigo

2 - caracteres abaixo do codigo

3 - acima e abaixo

iFonte: INTEIRO com o valor da fonte de impressão, entre 0 e 1, onde:

0 - Normal

1 - Condensado

iMargem: INTEIRO com o valor da margem, entre 0 e 575. O valor default é 0.

iCorrecaoErros: INTEIRO com o valor para a correção de erros de impressão do código, entre 0 e 8.

iColunas: INTEIRO com o valor do tamanho da coluna gráfica, entre 0 e 30.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- A forma de pagamento deve ter sido efetuada.

- Esta função só está disponível para as impressoras fiscais térmicas.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_TerminaFechamentoCupomCodigoBarrasMFD("Obrigado, volte sempre !!!", "EAN13", "123456789012", 100, 1, 3, 0, 5, 4, 5)

// Exemplo em Delphi

cMsgPromocional := 'Obrigado, volte sempre !!!';

cTipoCodigo     := 'EAN13';

cCodigo         := '123456789012';

iRetorno := Bematech_FI_TerminaFechamentoCupomCodigoBarrasMFD( pchar( cMsgPromocional, pchar( cTipoCodigo ), pchar( cCodigo ), 100, 1, 3, 0, 5, 4, 5 ) );


Bematech_FI_TotalizaCupomMFD

Totaliza o cupom fiscal habilitando o uso das formas de pagamento

Parâmetro:

Não há

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_TotalizaCupomMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_TotalizaCupomMFD();


 Bematech_FI_VendeItemArredondamentoMFD

Bematech_FI_VendeItemArredondamentoMFD

Vende item com arredondamento ou truncamento.

Parâmetros:

Codigo: STRING com o código do produto com até 14 caracteres.

Descricao: STRING com a descrição do produto com até 200 caracteres.

Aliquota: STRING com o índice (99) ou valor (99,99) da alíquota tributária.

UnidadeMedida: STRING com a unidade de medida com até 2 caracteres.

QtdFracionaria: STRING com a quantidade fracionaria com até 7 caracteres (9.999,999).

VlrUnitario: STRING com o valor unitário com 3 casas decimais com até 8 caracteres (99.999,999).

Acrescimo: STRING com o acréscimo percentual (99,99) ou por valor com 2 casas decimais (999.999,99).

Desconto: STRING com o desconto percentual (99,99) ou por valor com 2 casas decimais (999.999,99).

Arredonda: BOOL com "true" para arredondar ou "false" para truncar o cálculo da quantidade pelo valor unitário.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-3: Alíquota não programada.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Imagine que há duas alíquotas com o valor 12% cadastradas na impressora. A primeira cadastrada na posição 01 como ICMS e a outra na posição 05 como ISS. Se você informar o valor 1200 ou 12,00 no parâmetro "alíquota" a função irá imprimir o item usando a alíquota 01 de ICMS. A função lê as alíquotas da impressora e usa o índice da primeira ocorrência. Para usar a alíquota de ISS você deverá passar o índice 05 e não o valor 1200 ou 12,00. Se você não tiver duas alíquotas com o mesmo valor cadastradas na impressora use sempre o valor no parâmetro alíquota.

- O cupom fiscal deve estar aberto.

- Esta função está disponível apenas para os modelos MP-4000 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VendeItemArredondamentoMFD("123", "Caneta", "1200", "UN", "1,000", "0,250", "00,00", "00,00", true)

// Exemplo em Delphi

cCodigo        := '123';

cDescricao     := 'Caneta';

cAliquota      := '1200';

cUnidade       := 'UN';

cQtde          := '1,000';

cValor         := '0,250';

cValorDesc     := '00,00';

cValorAcre     := '00,00';

iRetorno := Bematech_FI_VendeItemArredondamentoMFD( pchar( cCodigo ), pchar( cDescricao ), pchar( cAliquota ), pchar( cUnidade ), pchar( cQtde ), pchar( cValor ), pchar( cValorDesc ), pchar( cValorAcre ), true );


 Bematech_FI_AbreRelatorioGerencialMFD

Bematech_FI_AbreRelatorioGerencialMFD

Abre Relatório Gerencial, na impressora fiscal MFD.

Parâmetro:

Indice: STRING numérica com o valor entre 1 e 30, com o índice do relatório.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- O relatório deve estar programado.

- O relatório permanecerá aberto por 2 minutos, se não for enviado o comando de fechamento durante esse período, o relatório será fechado automaticamente.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreRelatorioGerencialMFD("05")

// Exemplo em Delphi

cIndice := '5';

iRetorno := Bematech_FI_AbreRelatorioGerencialMFD( pchar( cIndice ) );


 Bematech_FI_LeituraMemoriaFiscalDataMFD

Bematech_FI_LeituraMemoriaFiscalDataMFD

Emite a leitura da memória fiscal da impressora por intervalo de datas.

Parâmetros:

DataInicial: STRING para receber a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

DataFinal: STRING para receber a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

FlagLeitura: STRING com o valor "s" para leitura simplificada e "c" para leitura completa.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraMemoriaFiscalDataMFD("01/04/02", "15/04/02", "c")

// Exemplo em Delphi

cDataInicial := '01/04/02';

cDataFinal   := '15/04/02';

cTipo        := 'c';

iRetorno := Bematech_FI_LeituraMemoriaFiscalDataMFD( pchar( cDataInicial ),

                                                    pchar( cDataFinal ),

                                                    pchar( cTipo ) );


 Bematech_FI_LeituraMemoriaFiscalReducaoMFD

Bematech_FI_LeituraMemoriaFiscalReducaoMFD

Emite a leitura da memória fiscal da impressora por intervalo de reduções.

Parâmetros:

ReducaoInicial: STRING com o Número da reducao inicial com até 4 dígitos.

ReducaoFinal: STRING com o Número da reducao final com até 4 dígitos.

FlagLeitura: STRING com o valor "s" para leitura simplificada e "c" para leitura completa.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraMemoriaFiscalReducaoMFD("0010", "0015", "c")

// Exemplo em Delphi

cReducaoInicial := '0010';

cReducaoFinal   := '0015';

cTipo           := 'c';

iRetorno := Bematech_FI_LeituraMemoriaFiscalReducaoMFD( pchar( cReducaoInicial ),

                                                       pchar( cReducaoFinal ),

                                                       pchar( cTipo ) );


 Bematech_FI_LeituraMemoriaFiscalSerialDataMFD

Bematech_FI_LeituraMemoriaFiscalSerialDataMFD

Recebe os dados da memória fiscal por intervalo de datas pela serial e grava em arquivo texto.

Parâmetros:

DataInicial: STRING para receber a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

DataFinal: STRING para receber a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

FlagLeitura: STRING com o valor "s" para leitura simplificada e "c" para leitura completa.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraMemoriaFiscalSerialDataMFD("01/04/02, "15/04/02", "c")

// Exemplo em Delphi

cDataInicial := '01/04/02';

cDataFinal   := '15/04/02';

cTipo        := 'c';

iRetorno := Bematech_FI_LeituraMemoriaFiscalSerialDataMFD( pchar( cDataInicial ),

                                                          pchar( cDataFinal ),

                                                          pchar( cTipo ) );


 Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD

Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD

Recebe os dados da leitura da memória fiscal por intervalo de reduções pela serial e grava em arquivo texto.

Parâmetros:

ReducaoInicial: STRING com o Número da reducao inicial com até 4 dígitos.

ReducaoFinal: STRING com o Número da reducao final com até 4 dígitos.

FlagLeitura: STRING com o valor "s" para leitura simplificada e "c" para leitura completa.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- O cupom fiscal deve estar fechado.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD("0010", "0015", "c")

// Exemplo em Delphi

cReducaoInicial := '0010';

cReducaoFinal   := '0015';

cTipo           := 'c';

iRetorno := Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD( pchar( cReducaoInicial ),

                                                             pchar( cReducaoFinal ),

                                                             pchar( cTipo ) );


 Bematech_FI_NomeiaRelatorioGerencialMFD

Bematech_FI_NomeiaRelatorioGerencialMFD

Programa Relatório Gerencial. A impressora possui um relatório default pré-programado: "Relatório Gerencial", no índice "01".

Parâmetros:

Indice: STRING numérica com valor entre 2 e 30 para o índice do relatório.

Descricao: STRING com até 17 caracteres com o nome do relatório.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

- 2 - Parâmetro inválido.

- 4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

- 5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- Só será possível nomear um relatório gerencial, caso a impressora ainda não tenha iniciado o seu movimento.

- Não é possível alterar ou apagar um relatório gerencial já gravado.

- Na impressora fiscal Bematech modelo MP-2100 TH FI o tamanho da descrição dos relatórios gerenciais foi reduzido de 17 para 15 caracteres. Para manter a compatibilidade, será aceito o tamanho de 17 caracteres, mas internamente a impressora registrará apenas os 15 primeiros caracteres.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_NomeiaRelatorioGerencialMFD("2","Resumo de Vendas")

// Exemplo em Delphi

cIndice := '2';

cDescricao := 'Resumo de Vendas';

iRetorno := Bematech_FI_NomeiaRelatorioGerencialMFD( pchar( cIndice ),

                                                    pchar( cDescricao ) );


 Bematech_FI_UsaRelatorioGerencialMFD

Bematech_FI_UsaRelatorioGerencialMFD

Imprime as informações do Relatório Gerencial.

Parâmetro:

Texto: STRING Texto a ser impresso no relatório com até 618 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- O relatório permanecerá aberto por 2 minutos, se não for enviado o comando de fechamento durante esse período, o relatório será fechado automaticamente.

- Para abrir o relatório gerencial use a função Bematech_FI_AbreRelatorioGerencialMFD.

- Para fechar o relatório use a função Bematech_FI_FechaRelatorioGerencial.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_UsaRelatorioGerencialMFD("Entre com o texto aqui !!!")

// Exemplo em Delphi

cMsg := 'Entre com o texto aqui !!!';

iRetorno := Bematech_FI_UsaRelatorioGerencialMFD( pchar( cMsg ) );


 Bematech_FI_UsaRelatorioGerencialMFDTEF

Bematech_FI_UsaRelatorioGerencialMFDTEF

Imprime o relatório gerencial travando e destravando automaticamente o teclado e o mouse. Esta função pode ser utlizada para a impressão do texto da transação TEF. Não é necessário usar nenhuma outra função ou API do Windows para travar o teclado e o mouse.

Parâmetro:

Texto: STRING Texto a ser impresso no relatório com até 618 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- O relatório permanecerá aberto por 2 minutos, se não for enviado o comando de fechamento durante esse período, o relatório será fechado automaticamente.

- Para abrir o relatório gerencial use a função Bematech_FI_AbreRelatorioGerencialMFD.

- Para fechar o relatório use a função Bematech_FI_FechaRelatorioGerencial.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_UsaRelatorioGerencialMFDTEF("Entre com o texto aqui !!!")

// Exemplo em Delphi

cLinha := 'Entre com o texto a ser impresso aqui !!!';

iRetorno := Bematech_FI_UsaRelatorioGerencialMFDTEF( pchar( cLinha ) );


 Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD

Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD

Abre o Comprovante Não Fiscal Vinculado.

Parâmetros:

FormaPagamento: STRING com a Forma de Pagamento com até 16 caracteres.

Valor: STRING com o Valor Pago na forma de pagamento do cupom a que se refere o comprovante, com até 14 dígitos (2 casas decimais).

NumeroCupom: STRING com o Número do cupom a que se refere o comprovante com até 6 dígitos.

CGC: STRING com até 29 caracteres com o CGC ou CPF do cliente.

Nome: STRING com até 30 caracteres com o nome do cliente.

Endereco: STRING com até 80 caracteres com o endereço do cliente.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- A forma de pagamento utilizada não pode ser Dinheiro.

- A forma de pagamento deve ter sido utilizada no cupom ao qual se refere o comprovante.

- Poderá ser emitido um comprovante não fiscal para cada parcela informada no cupom fiscal. Os parâmetros "Valor" e "Numero do Cupom" tornam-se obrigatórios se o comprovante emitido não for referente ao último cupom fiscal emitido.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD("Cartao", "50,00", "000165", "1.111.111-1", "Fulano de Tal", "R. Sem Fim, 1000")

// Exemplo em Delphi

cFormaPgto       := 'Cartao';

cValorPgto       := '50,00';

cCOO             := '000165';

cCPF             := '1.111.111-1'

cNomeCliente     := 'Fulano de Tal';

cEnderecoCliente := 'R. Sem Fim, 1000';

iRetorno := Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD( pchar( cFormaPgto ),

                                                             pchar( cValorPgto ),

                                                             pchar( cCOO ),

                                                             pchar( cCPF ),

                                                             pchar( cNomeCliente ),

                                                             pchar( cEnderecoCliente ) );


 Bematech_FI_AbreRecebimentoNaoFiscalMFD

Bematech_FI_AbreRecebimentoNaoFiscalMFD

Abre o comprovante não fiscal não vinculado para que sejam lançados os recebimentos não fiscais.

Parâmetros:

CGC: STRING até 29 caracteres com o CGC ou CPF do cliente.

Nome: STRING até 30 caracteres com o nome do cliente.

Endereco: STRING até 80 caracteres com o endereço do cliente.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreRecebimentoNaoFiscalMFD("1.111.111-1", "Fulano de Tal", "Rua Sem Fim, 1000")

// Exemplo em Delphi

cCPF             := '1.111.111-1';

cNomeCliente     := 'Fulano de Tal';

cEnderecoCliente := 'Rua Sem Fim, 1000';

iRetorno := Bematech_FI_AbreRecebimentoNaoFiscalMFD( pchar( cCPF ),

                                                    pchar( cNomeCliente ),

                                                    pchar( cEnderecoCliente ) );


Bematech_FI_AbreSegundaViaNaoFiscalVinculadoMFD

Abre a segunda via do comprovante não fiscal vinculado para impressão de texto diferente da primeira via já impressa.

Parâmetro:

Não há

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Deve ser executada imediatamente após a emissão da primeira via.

- Para a impressão do texto, use a função Bematech_FI_UsaComprovanteNaoFiscalVinculado.

- Para fechar o comprovante, use a função Bematech_FI_FechaComprovanteNaoFiscalVinculado.

- Esta função está disponível apenas para os modelos MP-4000 TH FI e MP-7000 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreSegundaViaNaoFiscalVinculadoMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_AbreSegundaViaNaoFiscalVinculadoMFD();


 Bematech_FI_AcrescimoDescontoSubtotalRecebimentoMFD

Bematech_FI_AcrescimoDescontoSubtotalRecebimentoMFD

Efetua acréscimo ou desconto em subtotal do recebimento não fiscal.

Parâmetros:

Flag: STRING com "A" para Acréscimo ou "'D" para Desconto.

Tipo: STRING com "$" para acréscimo ou desconto por valor, ou "%" para acréscimo ou desconto por percentual.

Valor: STRING com no máximo 14 dígitos para o valor ou 4 dígitos para o percentual.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- O recebimento não fiscal deve estar subtotalizado.

- O recebimento não fiscal não pode estar totalizado.

- É permitido o registro de apenas uma operação válida para acréscimo e uma para desconto no subtotal.

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AcrescimoDescontoSubtotalRecebimentoMFD("D", "$", "15,00")

// Exemplo em Delphi

cAcresDesc      := 'D';

cTipoAcresDesc  := '$';

cValorAcresDesc := '15,00';

iRetorno := Bematech_FI_AcrescimoDescontoSubtotalRecebimentoMFD( pchar( cAcresDesc ),

                                                                pchar( cTipoAcresDesc ),

                                                                pchar( cValorAcresDesc ) );


 Bematech_FI_AcrescimoItemNaoFiscalMFD

Bematech_FI_AcrescimoItemNaoFiscalMFD

Efetua um acréscimo ou desconto em um item não fiscal na impressora fiscal MFD.

Importante

Esta função só está disponível para a versão 01.00.00, da Impressora Fiscal MFD.

Parâmetros:

NumeroItem: STRING contendo o número do item não fiscal, com até 3 caracteres.

AcrescimoDesconto: STRING com "A" para Acréscimo ou "D" para desconto.

TipoAcrescimoDesconto: STRING com "$" para Acréscimo ou Desconto por valor, ou "%" para percentual.

ValorAcrescimoDesconto: STRING com o valor do desconto ou Acréscimo.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- O cupom não fiscal não pode estar subtotalizado.

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AcrescimoItemNaoFiscalMFD("005", "A", "$", "10,00")

// Exemplo em Delphi

cNumeroItem     := '005';

cAcresDesc      := 'A';

cTipoAcresDesc  := '$';

cValorAcresDesc := '10,00';

iRetorno := Bematech_FI_AcrescimoItemNaoFiscalMFD( pchar( cNumeroItem ),

                                                  pchar( cAcresDesc ),

                                                  pchar( cTipoAcresDesc ),

                                                  pchar( cValorAcresDesc ) );


 Bematech_FI_CancelaAcrescimoDescontoSubtotalRecebimentoMFD

Bematech_FI_CancelaAcrescimoDescontoSubtotalRecebimentoMFD

Cancela acréscimo e desconto efetuados em subtotal do recebimento não fiscal.

Parâmetro:

Flag: STRING com "A" para cancelar o Acréscimo ou "D" para cancelar o Desconto, dado no subtotal do recebimento.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- O recebimento não fiscal deve estar subtotalizado.

- O recebimento não fiscal deve ter operações anteriores de acréscimo ou desconto em subtotal.

- O recebimento não fiscal não pode estar totalizado.

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaAcrescimoDescontoSubtotalRecebimentoMFD("D")

// Exemplo em Delphi

cAcresDesc := 'D';

iRetorno := Bematech_FI_CancelaAcrescimoDescontoSubtotalRecebimentoMFD( pchar( cAcresDesc ) );


 Bematech_FI_CancelaAcrescimoNaoFiscalMFD

Bematech_FI_CancelaAcrescimoNaoFiscalMFD

Cancela o acréscimo ou desconto em um item não fiscal na impressora fiscal MFD.

Importante

Esta função só está disponível para a versão 01.00.00, da Impressora Fiscal MFD.

Parâmetros:

NumeroItem: STRING contendo o número do item não fiscal, com até 3 caracteres.

AcrescimoDesconto: STRING com "A" para o cancelamento do Acréscimo ou "D" para o cancelamento do desconto.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- O cupom não fiscal não pode estar subtotalizado.

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaAcrescimoNaoFiscalMFD("005", "A")

// Exemplo em Delphi

cNumeroItem := '005';

cAcresDesc  := 'A';

iRetorno := Bematech_FI_CancelaAcrescimoNaoFiscalMFD( pchar( cNumeroItem ),

                                                     pchar( cAcresDesc ) );


 Bematech_FI_CancelaItemNaoFiscalMFD

Bematech_FI_CancelaItemNaoFiscalMFD

Cancela um item não fiscal na impressora fiscal MFD.

Importante

Esta função só está disponível para a versão 01.00.00, da Impressora Fiscal MFD.

Parâmetro:

NumeroItem: STRING contendo o número do item não fiscal a ser cancelado, com até 3 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaItemNaoFiscalMFD("005")

// Exemplo em Delphi

cIndice := '005';

iRetorno := Bematech_FI_CancelaItemNaoFiscalMFD( pchar( cIndice ) );


 Bematech_FI_CancelaRecebimentoNaoFiscalMFD

Bematech_FI_CancelaRecebimentoNaoFiscalMFD

Cancela o recebimento não fiscal.

Parâmetros:

CGC: STRING até 29 caracteres com o CGC ou CPF do cliente.

Nome: STRING até 30 caracteres com o nome do cliente.

Endereco: STRING até 80 caracteres com o endereço do cliente.

Retornos da FunçÃo (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CancelaRecebimentoNaoFiscalMFD("11.111.111-11", "Fulano de Tal", "R. Sem Fim, 1000")

// Exemplo em Delphi

cCPF             := '11.111.111-11';

cNomeCliente     := 'Fulano de Tal';

cEnderecoCliente := 'R. Sem Fim, 1000';

iRetorno := Bematech_FI_CancelaRecebimentoNaoFiscalMFD( pchar( cCPF ),

                                                       pchar( cNomeCliente ),

                                                       pchar( cEnderecoCliente ) );


 Bematech_FI_EfetuaRecebimentoNaoFiscalMFD

Bematech_FI_EfetuaRecebimentoNaoFiscalMFD

Efetua o recebimento não fiscal.

Parâmetros:

IndiceTotalizador: STRING com o Índice do Totalizador com até 2 dígitos para o recebimento.

ValorRecebimento: STRING com o Valor do recebimento com até 14 dígitos (duas casas decimais).

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- O comprovante deve ter sido aberto anteriormente.

- O totalizador não fiscal deve estar programado.

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EfetuaRecebimentoNaoFiscalMFD("03", "35,00")

// Exemplo em Delphi

cIndice := '03';

cValor  := '35,00';

iRetorno := Bematech_FI_EfetuaRecebimentoNaoFiscalMFD( pchar( cIndice ),

                                                      pchar( cValor ) );


 Bematech_FI_EstornoNaoFiscalVinculadoMFD

Bematech_FI_EstornoNaoFiscalVinculadoMFD

Estorna os lançamentos de um comprovante de crédito ou débito vinculado. Deve ser executado imediatamente após a impressão do comprovante vinculado.

Parâmetros:

CGC: STRING até 29 caracteres com o CGC ou CPF do cliente

Nome: STRING até 30 caracteres com o nome do cliente.

Endereco: STRING até 80 caracteres com o endereço do cliente.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Pode se usar a função Bematech_FI_UsaComprovanteNaoFiscalVinculado, para imprimir um texto qualquer, dentro deste cupom de estorno.

- Deve-se usar a função Bematech_FI_FechaComprovanteNaoFiscalVinculado, para fechar este cupom de estorno.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EstornoNaoFiscalVinculadoMFD("11.111.111-11", "Fulano de Tal", "R. Sem Fim, 1000")

// Exemplo em Delphi

cCPF             := '11.111.111-11';

cNomeCliente     := 'Fulano de Tal';

cEnderecoCliente := 'R. Sem Fim, 1000';

iRetorno := Bematech_FI_EstornoNaoFiscalVinculadoMFD( pchar( cCPF ),

                                                     pchar( cNomeCliente ),

                                                     pchar( cEnderecoCliente ) );


 Bematech_FI_EstornoNaoFiscalVinculadoPosteriorMFD

Bematech_FI_EstornoNaoFiscalVinculadoPosteriorMFD

Estorna um Comprovante de Débito e Crédito mesmo não imediatamente após o cupom fiscal.

Parâmetros:

FormaPagamento: STRING com até 16 caracteres com a descrição da forma de pagamento.

Valor: STRING com até 14 caracteres com o valor pago.

COOCupom: STRING com até 6 caracteres com o COO do cupom fiscal.

COOCDC: STRING com até 6 caracteres com o COO do Comprovante de Débito e Crédito a ser estornado.

CPF: STRING com até 29 caracteres com o CPF do cliente.

Nome: STRING com até 30 caracteres com o nome do cliente.

Endereco: STRING com até 80 caracteres com o endereco do cliente.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Pode se usar a função Bematech_FI_UsaComprovanteNaoFiscalVinculado, para imprimir um texto qualquer, dentro deste cupom de estorno.

- Deve-se usar a função Bematech_FI_FechaComprovanteNaoFiscalVinculado, para fechar este cupom de estorno.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_EstornoNaoFiscalVinculadoPosteriorMFD("Cartao", "50,00", "000159", "000161", "11.111.111-11", "Fulano de Tal", "R. Sem Fim, 1000")

// Exemplo em Delphi

cFormaPagamento  := 'Cartao';

cValorPago       := '50,00';

cCOOCupom        := '000159';

cCOOCDC          := '000161';

cCPF             := '11.111.111-11';

cNomeCliente     := 'Fulano de Tal';

cEnderecoCliente := 'R. Sem Fim, 1000';

iRetorno := Bematech_FI_EstornoNaoFiscalVinculadoPosteriorMFD( pchar( cFormaPagamento ), pchar( cValorPago ), pchar( cCOOCupom ), pchar( cCOOCDC ), pchar( cCPF ), pchar( cNomeCliente ), pchar( cEnderecoCliente ) );


 Bematech_FI_FechaRecebimentoNaoFiscalMFD

Bematech_FI_FechaRecebimentoNaoFiscalMFD

Termina o fechamento do recebimento não fiscal.

Parâmetro:

Mensagem: STRING com a Mensagem promocional com até 490 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FechaRecebimentoNaoFiscalMFD("Obrigado, volte sempre !!!")

// Exemplo em Delphi

cMsgPromocional := 'Obrigado, volte sempre !!!'';

iRetorno := Bematech_FI_FechaRecebimentoNaoFiscalMFD( pchar( cMsgPromocional ) );


 Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD

Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD

Inicia o fechamento do recebimento não fiscal. Permite acréscimo e desconto no fechamento do recebimento.

Parâmetros:

AcrescimoDesconto: STRING que indica se haverá acréscimo no cupom, desconto ou ambos. "A" para acréscimo, "D" para desconto e "X" para acréscimo e desconto.

TipoAcrescimoDesconto: STRING que indica se o acréscimo ou desconto é por valor ou por percentual. "$" para desconto por valor e "%" para percentual.

ValorAcrescimo: STRING com no máximo 14 dígitos para acréscimo por valor e 4 dígitos para acréscimo percentual.

ValorDesconto: STRING com no máximo 14 dígitos para desconto por valor e 4 dígitos para desconto percentual.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Para efetuar a forma de pagamento use a função Bematech_FI_EfetuaFormaPagamentoMFD.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD("X", "%", "1200", "1000")

// Exemplo em Delphi

cAcresDesc     := 'X';

cTipoAcresDesc := '$';

cValorAcres    := '1200';

cValorDesc     := '1000';

iRetorno := Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD( pchar( cAcresDesc ),

                                                                pchar( cTipoAcresDesc ),

                                                                pchar( cValorAcres ),

                                                                pchar( cValorDesc ) );


Bematech_FI_ReimpressaoNaoFiscalVinculadoMFD

Reimprime o comprovante não fiscal vinculado. Será executado, somente, se o comando for enviado imediatamente após a impressão do comprovante.

Parâmetro:

Não há

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ReimpressaoNaoFiscalVinculadoMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_ReimpressaoNaoFiscalVinculadoMFD();


Bematech_FI_SegundaViaNaoFiscalVinculadoMFD

Imprime a segunda via do comprovante não fiscal vinculado. Deve ser executada imediatamente após a emissão da primeira via.

Parâmetro:

Não há

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_SegundaViaNaoFiscalVinculadoMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_SegundaViaNaoFiscalVinculadoMFD();


Bematech_FI_SubTotalizaRecebimentoMFD

Subtotaliza o recebimento não fiscal (comprovante não fiscal não vinculado), ou seja, inicia o fechamento imprimindo o valor total do recebimento.

Parâmetro:

Não há

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

Essa função habilita as seguintes operações:

- Acréscimo ou desconto em subtotal de recebimento não fical

- Cancelamento de acréscimo ou desconto em subtotal de recebimento não fiscal

- Totalização do recebimento não fiscal

Restrições:

- O recebimento deve estar aberto e com item vendido.

- Caso o valor total do recebimento seja zero, o mesmo será cancelado.

- Para usar essa função você não pode ter iniciado o fechamento do recebimento. (Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD)

Exemplos:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_SubTotalizaRecebimentoMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_SubTotalizaRecebimentoMFD();


Bematech_FI_TotalizaRecebimentoMFD

Totaliza o recebimento não fiscal habilitando o uso das formas de pagamento

Parâmetro:

Não há

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Para efetuar a forma de pagamento use a função Bematech_FI_EfetuaFormaPagamentoMFD.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_TotalizaRecebimentoMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_TotalizaRecebimentoMFD();


 Bematech_FI_AutenticacaoMFD

Bematech_FI_AutenticacaoMFD

Permite a autenticação de documentos.

Parâmetros:

Linhas: STRING numérica com valor entre 1 e 99 com o número de linhas que serão saltadas para imprimir o texto.

Texto: STRING com até 47 caracteres com o texto a ser impresso.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

- 2 - Parâmetro inválido.

- 4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

- 5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Deverá ser executada imediatamente após um recebimento não fiscal ou o término de um cupom fiscal.

- Poderá ser repetido até 5 vezes para cada recebimento, após isso o comando será ignorado

- A impressora irá aguardar 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, a impressora retornará ao seu estado normal, retornando o status de "comando não executado".

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AutenticacaoMFD("5", "Autenticação Mecânica !!!")

// Exemplo em Delphi

cLinhas  := '5';

cMsg     := 'Autenticação Mecânica !!!';

iRetorno := Bematech_FI_AutenticacaoMFD( pchar( cLinhas ),

                                        pchar( cMsg ) );


Bematech_FI_FlagsFiscais3MFD

Retorna os flags fiscais III das impressoras fiscais térmicas.

Parâmetro:

Flag: Variável INT para receber o byte referente aos flags fiscais III.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Discriminação dos valores para o flag fiscal:

Descrição | Valor
Impressora com pouco papel | 1
Sensor de pouco papel habilitado | 2
Cancelamento automático de cupom às duas horas habilitado | 3
NÃO UTILIZADO | 8
0 – desconto em issqn desabilitado 1 – desconto em issqn habilitado | 16
0 – RZ automática desabilita 1 – RZ automática habilitada | 32
0 – impressora ON-LINE 1 – impressora OFF-LINE | 64
NÃO UTILIZADO | 128

- Os valores podem vir somados o que indica mais de um estado.

- Esta função está disponível apenas para os modelos MP-4000 TH FI e MP-7000 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FlagsFiscais3MFD(iFlag)

// Exemplo em Delphi

iRetorno := Bematech_FI_FlagsFiscais3MFD( iFlag );


Bematech_FI_TotalIssCupomMFD

Retorna o valor de ISS recolhido no cupom fiscal.

Parâmetro:

ISS: Variável STRING com o tamanho de 14 posições para receber o valor do ISS.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Esta função está disponível apenas para os modelos MP-4000 TH FI e MP-7000 TH FI.

Exemplo:

' Exemplo em Visual Basic

cISS = space(14)

iRetorno = Bematech_FI_TotalIssCupomMFD(cISS)

// Exemplo em Delphi

for iConta := 1 to 14 do cISS := cISS + ' ';

iRetorno := Bematech_FI_TotalIssCupomMFD( cISS );


Bematech_FI_CNPJMFD

Retorna o CNPJ do cliente cadastrado na impressora.

Parâmetro:

CNPJ: Variável STRING com o tamanho de 20 posições para receber o CNPJ.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sCNPJ = space(20)

iRetorno = Bematech_FI_CNPJMFD(sCNPJ)

// Exemplo em Delphi

for iConta := 1 to 20 do sCNPJ := sCNPJ + ' ';

iRetorno := Bematech_FI_CNPJMFD( sCNPJ );


Bematech_FI_ComprovantesNaoFiscaisNaoEmitidosMFD

Retorna o número de comprovantes não fiscais não emitidos.

Parâmetro:

Comprovantes: Variável STRING com o tamanho de 4 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sComp = space(4)

iRetorno = Bematech_FI_ComprovantesNaoFiscaisNaoEmitidosMFD(sComp)

// Exemplo em Delphi

for iConta := 1 to 4 do sComp := sComp + ' ';

iRetorno := Bematech_FI_ComprovantesNaoFiscaisNaoEmitidosMFD( sComp );


Bematech_FI_ContadorComprovantesCreditoMFD

Retorna o número de comprovantes de crédito emitidos.

Parâmetro:

Comprovantes: Variável STRING com o tamanho de 4 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sComp = space(4)

iRetorno = Bematech_FI_ContadorComprovantesCreditoMFD(sComp)

// Exemplo em Delphi

for iConta := 1 to 4 do sComp := sComp + ' ';

iRetorno := Bematech_FI_ContadorComprovantesCreditoMFD( sComp );


Bematech_FI_ContadorCupomFiscalMFD

Retorna o número de cupons fiscais emitidos.

Parâmetro:

CuponsEmitidos: Variável STRING com o tamanho de 6 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sCupom = space(6)

iRetorno = Bematech_FI_ContadorCupomFiscalMFD(sCupom)

// Exemplo em Delphi

for iConta := 1 to 6 do sCupom := sCupom + ' ';

iRetorno := Bematech_FI_ContadorCupomFiscalMFD( sCupom );


Bematech_FI_ContadoresTotalizadoresNaoFiscaisMFD

Retorna o número de vezes em que os totalizadores não sujeitos ao ICMS foram usados.

Parâmetro:

Contadores: Variável STRING com 149 posições para receber as informações.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- O conteúdo da variável retornada será 120 dígitos separados de 4 em 4 por vírgura que representam os 30 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.

Exemplo:

' Exemplo em Visual Basic

sCont = space(149)

iRetorno = Bematech_FI_ContadoresTotalizadoresNaoFiscaisMFD(sCont)

// Exemplo em Delphi

for iConta := 1 to 149 do sCont := sCont + ' ';

iRetorno := Bematech_FI_ContadoresTotalizadoresNaoFiscaisMFD( sCont );


Bematech_FI_ContadorFitaDetalheMFD

Retorna o número de vezes em que foi impressa a fita detalhe.

Parâmetro:

ContadorFita: Variável STRING com o tamanho de 6 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sCont = space(6)

iRetorno = Bematech_FI_ContadorFitaDetalheMFD(sCont)

// Exemplo em Delphi

for iConta := 1 to 6 do sCont := sCont + ' ';

iRetorno := Bematech_FI_ContadorFitaDetalheMFD( sCont );


Bematech_FI_ContadorOperacoesNaoFiscaisCanceladasMFD

Retorna o número de operações não fiscais canceladas.

Parâmetro:

OperacoesCanceladas: Variável STRING com o tamanho de 4 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sOp = space(4)

iRetorno = Bematech_FI_ContadorOperacoesNaoFiscaisCanceladasMFD(sOp)

// Exemplo em Delphi

for iConta := 1 to 4 do sOp := sOp + ' ';

iRetorno := Bematech_FI_ContadorOperacoesNaoFiscaisCanceladasMFD( sOp );


Bematech_FI_ContadorRelatoriosGerenciaisMFD

Retorna o número de relatórios gerenciais emitidos.

Parâmetro:

Relatorios: Variável STRING com o tamanho de 6 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sRel = space(6)

iRetorno = Bematech_FI_ContadorRelatoriosGerenciaisMFD(sRel)

// Exemplo em Delphi

for iConta := 1 to 6 do sRel := sRel + ' ';

iRetorno := Bematech_FI_ContadorRelatoriosGerenciaisMFD( sRel );


Bematech_FI_DadosUltimaReducaoMFD

Retorna os dados da impressora no momento da última redução Z.

Parâmetro:

DadosReducao: Variável STRING com o tamanho de 1278 posições para receber os dados da última redução.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- São retornados os valores das seguintes informações separados por vírgulas:

Modo de redução Z:                                          2 bytes (se 00 redução por comando se 01 redução automática)

Contador de reinício de operação:                           4 bytes

Contador de redução z:                                      4 bytes

Contador de ordem de operação:                              6 bytes

Contador Geral de operações não fiscais:                    6 bytes

Contador de cupom fiscal:                                   6 bytes

Contador Geral de relatório gerencial:                      6 bytes

Contador de fita detalhe emitida:                           6 bytes

Contador de operação não fiscal cancelada:                  4 bytes

Contador de cupom fiscal cancelado:                         4 bytes

Contadores específicos de operações não fiscais:            120 bytes

Contadores específicos de relatórios gerenciais:            120 bytes

Contador de comprovantes de débito ou crédito:              4 bytes

Contador de comprovantes de débito ou crédito não emitidos: 4 bytes

Contador de comprovantes de débito ou crédito cancelados:   4 bytes

Totalizador geral:                                          18 bytes

Totalizadores Parciais Tributados:                          224 bytes

Totalizador de isenção de ICMS:                             14 bytes

Totalizador de não incidência de ICMS:                      14 bytes

Totalizador de substituição tributária de ICMS:             14 bytes

Totalizador de isenção de ISSQN:                            14 bytes

Totalizador de não incidência de ISSQN:                     14 bytes

Totalizador de substituição tributária de ISSQN:            14 bytes

Totalizador de descontos em ICMS:                           14 bytes

Totalizador de descontos em ISSQN:                          14 bytes

Totalizador de acréscimos em ICMS:                          14 bytes

Totalizador de acréscimos em ISSQN:                         14 bytes

Totalizador de cancelamentos em ICMS                        14 bytes

Totalizador de cancelamentos em ISSQN:                      14 bytes

Totalizadores parciais não sujeitos ao ICMS:                392 bytes

Totalizador de sangria:                                     14 bytes

Totalizador de suprimento:                                  14 bytes

Totalizador de cancelamentos de não fiscais:                14 bytes

Totalizador de descontos de não fiscais:                    14 bytes

Totalizador de acréscimos de não fiscais:                   14 bytes

Alíquotas tributárias:                                      64 bytes

Data do movimento:                                          6 bytes

Exemplo:

' Exemplo em Visual Basic

sDados = space(1278)

iRetorno = Bematech_FI_DadosUltimaReducaoMFD(sDados)

// Exemplo em Delphi

for iConta := 1 to 1278 do sDados := sDados + ' ';

iRetorno := Bematech_FI_DadosUltimaReducaoMFD( sDados );


Bematech_FI_DataHoraUltimoDocumentoMFD

Retorna a data e hora do último documento armazenado na MFD no formato dd/mm/aa hh/mm/ss (sem barras e espaço).

Parâmetro:

DataHora: Variável STRING com o tamanho de 12 posições para receber os dados.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sDataHora = space(12)

iRetorno = Bematech_FI_DataHoraUltimoDocumentoMFD(sDataHora)

// Exemplo em Delphi

for iConta := 1 to 12 do sDataHora := sDataHora + ' ';

iRetorno := Bematech_FI_DataHoraUltimoDocumentoMFD( sDataHora ):


Bematech_FI_DataMovimentoUltimaReducaoMFD

Retorna a data do movimento da última redução Z.

Parâmetro:

cDataMovimento: Variável STRING para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

cDataMovimento = space(6)

iRetorno = Bematech_FI_DataMovimentoUltimaReducaoMFD(cDataMovimento)

// Exemplo em Delphi

for iConta := 1 to 6 do cDataMovimento := cDataMovimento + ' ';

iRetorno   := Bematech_FI_DataMovimentoUltimaReducaoMFD( cDataMovimento );


Bematech_FI_GrandeTotalUltimaReducaoMFD

Retorna o grande total (GT) da última redução Z.

Parâmetro:

cGT: Variável STRING para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

cGT = space(18)

iRetorno = Bematech_FI_GrandeTotalUltimaReducaoMFD(cGT)

// Exemplo em Delphi

for iConta := 1 to 18 do cGT := cGT + ' ';

iRetorno   := Bematech_FI_GrandeTotalUltimaReducaoMFD( cGT );


Bematech_FI_InicioFimCOOsMFD

Retorna o COO (Contador de Ordem de Operação) inicial e final.

Parâmetros:

cCOOInicial: Variável STRING para receber a informação do COO inicial.

cCOOFinal: Variável STRING para receber a informação do COO final.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Esta função deve ser usada após a redução Z para que o COO inicial e final tenha referência ao dia do movimento atual.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

cCOOInicial = space(6)

cCOOFinal = space(6)

iRetorno = Bematech_FI_InicioFimCOOsMFD(cCOOInicial, cCOOFinal)

// Exemplo em Delphi

for iConta := 1 to 6 do

  begin

     cCOOInicial := cCOOInicial + ' ';

     cCOOFinal   := cCOOFinal   + ' ';

  end;

iRetorno := Bematech_FI_InicioFimCOOsMFD( cCOOInicial, cCOOFinal );


Bematech_FI_InicioFimGTsMFD

Retorna o valor do grande total (GT) inicial e final.

Parâmetros:

cGTInicial: Variável STRING para receber a informação do GT inicial.

cGTFinal: Variável STRING para receber a informação do GT final.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Esta função deve ser usada após a redução Z para que o GT inicial e final tenha referência ao dia do movimento atual.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

cGTInicial = space(18)

cGTFinal = space(18)

iRetorno = Bematech_FI_InicioFimGTsMFD(cGTInicial, cGTFinal)

// Exemplo em Delphi

for iConta := 1 to 18 do

  begin

     cGTInicial := cGTInicial + ' ';

     cGTFinal   := cGTFinal   + ' ';

  end;

iRetorno := Bematech_FI_InicioFimGTsMFD( cGTInicial, cGTFinal );


Bematech_FI_InscricaoEstadualMFD

Retorna a incrição estadual do cliente cadatrada na impressora.

Parâmetro:

InscricaoEstadual: Variável STRING com o tamanho de 20 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sInscricaoEstadual = space(20)

iRetorno = Bematech_FI_InscricaoEstadualMFD(sInscricaoEstadual)

// Exemplo em Delphi

for iConta := 1 to 20 do sInscricaoEstadual := sInscricaoEstadual + ' ';

iRetorno := Bematech_FI_InscricaoEstadualMFD( sInscricaoEstadual );


Bematech_FI_InscricaoMunicipalMFD

Retorna a incrição municipal do cliente cadatrada na impressora.

Parâmetro:

InscricaoMunicipal: Variável STRING com o tamanho de 20 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sInscricaoMunicipal = space(20)

iRetorno = Bematech_FI_InscricaoMunicipalMFD(sInscricaoMunicipal)

// Exemplo em Delphi

for iConta := 1 to 20 do sInscricaoMunicipal := sInscricaoMunicipal + ' ';

iRetorno := Bematech_FI_InscricaoMunicipalMFD( sInscricaoMunicipal );


Bematech_FI_MarcaModeloTipoImpressoraMFD

Retorna a marca, o modelo e o tipo da impressora.

Parâmetro:

Marca: Variável STRING com 15 posições para receber a marca da impressora.

Modelo: Variável STRING com 20 posições para receber o modelo.

Tipo: Variável STRING com 7 posições para receber o tipo da impressora.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sMarca = space(15)

sModelo = space(20)

sTipo = space(7)

iRetorno = Bematech_FI_MarcaModeloTipoImpressoraMFD(sMarca,sModelo,sTipo)

// Exemplo em Delphi

for iConta := 1 to 15 do sMarca  := sMarca  + ' ';

for iConta := 1 to 20 do sModelo := sModelo + ' ';

for iConta := 1 to 7  do sTipo   := sTipo   + ' ';

iRetorno := Bematech_FI_MarcaModeloTipoImpressoraMFD( sMarca, sModelo, sTipo );


Bematech_FI_MinutosEmitindoDocumentosFiscaisMFD

Retorna o tempo em que a impressora emitiu documentos fiscais.

Parâmetro:

Minutos: Variável STRING com o tamanho de 4 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sTempo = space(4)

iRetorno = Bematech_FI_MinutosEmitindoDocumentosFiscaisMFD(sTempo)

// Exemplo em Delphi

for iConta := 1 to 4 do sTempo := sTempo + ' ';

iRetorno := Bematech_FI_MinutosEmitindoDocumentosFiscaisMFD( sTempo );


Bematech_FI_NumeroSerieMemoriaMFD

Retorna o número de série da memória de fita detalhe (MFD).

Parâmetro:

NumeroSerieMFD: Variável STRING com o tamanho de 20 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sMFD = space(20)

iRetorno = Bematech_FI_NumeroSerieMemoriaMFD(sMFD)

// Exemplo em Delphi

for iConta := 1 to 20 do sMFD := sMFD + ' ';

iRetorno := Bematech_FI_NumeroSerieMemoriaMFD( sMFD );


Bematech_FI_NumeroSerieMFD

Retorna o número de série da impressora MFD.

Parâmetro:

NumeroSerie: Variável STRING com o tamanho de 20 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sNumeroSerie = space(20)

iRetorno = Bematech_FI_NumeroSerieMFD(sNumeroSerie)

// Exemplo em Delphi

for iConta := 1 to 20 do sNumeroSerie := sNumeroSerie + ' ';

iRetorno := Bematech_FI_NumeroSerieMFD(sNumeroSerie);


Bematech_FI_PercentualLivreMFD

Retorna o percentual livre da Memória Fita Detalhe (MFD) no formato XX,XX% (com a virgula e o %).

Parâmetro:

MemoriaLivre: Variável STRING com o tamanho de 6 posições para receber os dados.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sMemoriaLivre = space(6)

iRetorno = Bematech_FI_PercentualLivreMFD(sMemoriaLivre)

// Exemplo em Delphi

for iConta := 1 to 6 do sMemoriaLivre := sMemoriaLivre + ' ';

iRetorno := Bematech_FI_PercentualLivreMFD( sMemoriaLivre ):


Bematech_FI_ReducoesRestantesMFD

Retorna o número de reduções restantes na impressora.

Parâmetro:

Reduções: Variável STRING com o tamanho de 4 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sRed = space(4)

iRetorno = Bematech_FI_ReducoesRestantesMFD(sRed)

// Exemplo em Delphi

for iConta := 1 to 4 do sRed := sRed + ' ';

iRetorno := Bematech_FI_ReducoesRestantesMFD( sRed );


Bematech_FI_StatusEstendidoMFD

Retorna o status de relatório gerencial ou comprovante não-fiscal aberto.

Parâmetro:

iStatus: Variável INTEGER para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_StatusEstendidoMFD(iStatus)

// Exemplo em Delphi

iRetorno := Bematech_FI_StatusEstendidoMFD( iStatus );

Análise do iStatus:

  ...

  if iStatus >= 128 then

     iStatus = iStatus - 128

  endif

  if iStatus >= 64 then

     iStatus = iStatus -  64

     cMensagem = cMensagem + "Estorno de Comprovante de Débito ou Crédito

                              permitido" + chr(13) + chr(10)

  endif

  if iStatus >= 32 then

     iStatus = iStatus - 32

     cMensagem = cMensagem + "Permite cancelamento do CNF" + chr(13) + chr(10)

  endif

  if iStatus >= 16 then

     iStatus = iStatus - 16

  endif

  if iStatus >= 8 then

     iStatus = iStatus - 8

     cMensagem = cMensagem + "Totalizando Cupom" + chr(13) + chr(10)

  endif

  if iStatus >= 4 then

     iStatus = iStatus - 4

     cMensagem = cMensagem + "Relatório Gerencial Aberto" + chr(13) + chr(10)

  endif

  if iStatus >= 2 then

     iStatus = iStatus - 2

     cMensagem = cMensagem + "Comprovante de Débito ou Crédito

                              Aberto" + chr(13) + chr(10)

  endif

  if iStatus >= 1 then

     iStatus = iStatus - 1

     cMensagem = cMensagem + "Comprovante Não-Fiscal Aberto" + chr(13) + chr(10)

  endif

  ...


Bematech_FI_SubTotalComprovanteNaoFiscalMFD

Retorna o subtotal do comprovante não fiscal não vinculado (recebimento).

Parâmetro:

cSubtotal: Variável STRING para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

cSubtotal = space(14)

iRetorno = Bematech_FI_SubTotalComprovanteNaoFiscalMFD(cSubtotal)

// Exemplo em Delphi

for iConta := 1 to 14 do cSubtotal := cSubtotal + ' ';

iRetorno   := Bematech_FI_SubTotalComprovanteNaoFiscalMFD( cSubtotal );


Bematech_FI_TamanhoTotalMFD

Retorna o tamanho total da MFD em bytes.

Parâmetro:

MemoriaLivre: Variável STRING com o tamanho de 10 posições para receber os dados.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sMemoriaLivre = space(10)

iRetorno = Bematech_FI_TamanhoTotalMFD(sMemoriaLivre)

// Exemplo em Delphi

for iConta := 1 to 10 do sMemoriaLivre := sMemoriaLivre + ' ';

iRetorno := Bematech_FI_TamanhoTotalMFD( sMemoriaLivre ):


Bematech_FI_TempoOperacionalMFD

Retorna o tempo em que a impressora está operacional.

Parâmetro:

TempoOperacional: Variável STRING com o tamanho de 4 posições para receber a informação.

Valores de Retorno:

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sTempo = space(4)

iRetorno = Bematech_FI_TempoOperacionalMFD(sTempo)

// Exemplo em Delphi

for iConta := 1 to 4 do sTempo := sTempo + ' ';

iRetorno := Bematech_FI_TempoOperacionalMFD( sTempo );


Bematech_FI_TempoRestanteComprovanteMFD

Retorna o tempo restante do relatório gerencial ou do comprovante não-fiscal aberto. Este tempo é retornado em segundos e o limite destes comprovantes é de 2 minutos.

Parâmetro:

cTempo: Variável STRING para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

cTempo = space(4)

iRetorno = Bematech_FI_TempoRestanteComprovanteMFD(cTempo)

// Exemplo em Delphi

for iConta := 1 to 4 do cTempo := cTempo + ' ';

iRetorno   := Bematech_FI_TempoRestanteComprovanteMFD( cTempo );


Bematech_FI_TotalLivreMFD

Retorna o quantidade de bytes livres na MFD.

Parâmetro:

MemoriaLivre: Variável STRING com o tamanho de 10 posições para receber os dados.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sMemoriaLivre = space(10)

iRetorno = Bematech_FI_TotalLivreMFD(sMemoriaLivre)

// Exemplo em Delphi

for iConta := 1 to 10 do sMemoriaLivre := sMemoriaLivre + ' ';

iRetorno := Bematech_FI_TotalLivreMFD( sMemoriaLivre );


Bematech_FI_UFProprietarioMFD

Retorna a UF do proprietário cadastrada na impressora.

Parâmetro:

cUF: Variável STRING para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

cUF = space(2)

iRetorno = Bematech_FI_UFProprietarioMFD(cUF)

// Exemplo em Delphi

for iConta := 1 to 2 do cUF := cUF + ' ';

iRetorno   := Bematech_FI_UFProprietarioMFD( cUF );


 Bematech_FI_ValorFormaPagamentoMFD

Bematech_FI_ValorFormaPagamentoMFD

Retorna o valor acumulado em uma determinada forma de pagamento.

Parâmetros:

FormaPagamento: Variável STRING com até 16 posições com a descrição da Forma de Pagamento que deseja retornar o seu valor.

Valor: Variável STRING com 14 posições para receber a informação.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-2: Parâmetro inválido na função.

-24: Forma de pagamento não programada.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Valor = Space(14)

iRetorno = Bematech_FI_ValorFormaPagamentoMFD("Cheque", Valor)

// Exemplo em Delphi

cFormaPgto := 'Cheque';

for iConta := 1 to 14 do Valor := Valor + ' ';

iRetorno := Bematech_FI_ValorFormaPagamentoMFD( pchar( cFormaPgto ), Valor );


 Bematech_FI_ValorTotalizadorNaoFiscalMFD

Bematech_FI_ValorTotalizadorNaoFiscalMFD

Retorna o valor acumulado em um determinado totalizador não fiscal.

Parâmetros:

Totalizador: Variável STRING com até 19 posições com a descrição do Totalizador.

Valor: Variável STRING com 14 posições para receber a informação.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-2: Parâmetro inválido na função.

-25: Totalizador não fiscal não programado.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

Valor = Space(14)

iRetorno = Bematech_FI_ValorTotalizadorNaoFiscalMFD("Rec. Prestacao", Valor)

// Exemplo em Delphi

cTotalizador := 'Cheque';

for iConta := 1 to 14 do Valor := Valor + ' ';

iRetorno := Bematech_FI_ValorTotalizadorNaoFiscalMFD( pchar( cTotalizador ), Valor );


Bematech_FI_VerificaEstadoImpressoraMFD

Retorna o estado da impressora.

Parâmetros:

ACK: Variável inteira para receber o primeiro byte.

ST1: Variável inteira para receber o segundo byte.

ST2: Variável inteira para receber o terceiro byte.

ST3: Variável inteira para receber o quarto byte (caso seja habilitado o retorno estendido).

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0,0 (ACK, ST1, ST2 e ST3).

Observação:

- Essa função devolve o status da impressora.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VerificaEstadoImpressoraMFD( iAck, iSt1, iSt2, St3 )

// Exemplo em Delphi

iRetorno := Bematech_FI_VerificaEstadoImpressoraMFD( iAck, iSt1, iSt2, St3 );


Bematech_FI_VerificaFlagCorteMFD

Retorna o flag de acionamento da guilhotina.

Parâmetro:

iFlag: Variável INTEIRA para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_VerificaFlagCorteMFD(iFlag)

// Exemplo em Delphi

iRetorno := Bematech_FI_VerificaFlagCorteMFD( iFlag );


Bematech_FI_VerificaFormasPagamentoMFD

Retorna as formas de pagamento e seus valores acumulados.

Parâmetro:

FormasPagamento: Variável STRING com 919 posições para receber as formas programadas.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Essa função retorna as informações das formas de pagamento na seguinte ordem:

Descricao da forma de pagamento............................................: 16 bytes

Valor acumulado da forma (duas casas decimais).............................: 14 bytes

Valor recebido no último cupom (duas casas decimais).......................: 14 bytes

Valor indicando se a forma permite operação TEF (1 permite, 0 não permite ):  1 byte

- São retornadas 20 formas de pagamento mais a forma "Valor Recebido" e "Troco" obedecendo a ordem descrita anteriormente. As formas de pagamento vêem separadas por vírgula. Veja exemplo a seguir:

Dinheiro        00000000000000041558000000000000000015580,

Cartao Credito  00000000000000039470000000000000000000000,

Cheque          00000000000000028940000000000000000000000,

Ticket          00000000000000009000000000000000000000000,

.

.

.

Valor Recebido  00000000000000118968000000000000000015580,

Troco           00000000000000000000000000000000000000000

- A impressora MFD permite programar até 19 formas de pagamento, sendo que a forma de pagamento "01" é sempre "Dinheiro", e essas formas não são mais apagadas na redução Z (conforme ocorria na impressora MP-20 FI II). As formas que não estiverem programadas estarão com os valores zerados e a descrição em branco (veja exemplo acima).

Exemplo:

' Exemplo em Visual Basic

sFgto = space(919)

iRetorno = Bematech_FI_VerificaFormasPagamentoMFD(sFgto)

// Exemplo em Delphi

for iConta := 1 to 919 do sFgto := sFgto + ' ';

iRetorno := Bematech_FI_VerificaFormasPagamentoMFD( sFgto );


Bematech_FI_VerificaRecebimentoNaoFiscalMFD

Retorna os recebimentos não fiscais não vinculados programados na impressora.

Parâmetro:

Recebimentos: Variável STRING com 1077 posições para receber as informações.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Essa função retorna as informações para os 30 totalizadores não fiscais não vinculados na seguinte ordem:

Descrição do recebimento...................................: 19 bytes

Valor acumulado para cada recebimento (duas casas decimais): 14 bytes

Exemplo:

Conta de água      00000000005460,

Conta de Luz       00000000145850,

Conta de Telefone  00000000078437,

.

.

.

Sangria            00000000000000,

Suprimento         00000000010000,

- A impressora permite programar até 28 totalizadores não fiscais não vinculados, os totalizadores "Sangria" e "Suprimento" são pré-programados.

Exemplo:

' Exemplo em Visual Basic

sRec = space(1077)

iRetorno = Bematech_FI_VerificaRecebimentoNaoFiscalMFD(sRec)

// Exemplo em Delphi

for iConta := 1 to 1077 do sRec := sRec + ' ';

iRetorno := Bematech_FI_VerificaRecebimentoNaoFiscalMFD( sRec );


Bematech_FI_VerificaRelatorioGerencialMFD

Retorna os relatórios gerenciais programados e seus valores acumulados.

Parâmetro:

Relatorios: Variável STRING com 659 posições para receber as informações.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Essa função retorna as informações para os 30 relatórios gerenciais na seguinte ordem:

Número de vezes que o relatório foi utilizado: 4 bytes

Descrição do relatório.......................: 17 bytes

Exemplo:

0005Relatorio Geral  ,

0002Relatorio 3      ,

0001Relatorio 4      ,

.

.

.

0004Relatorio 30     ,

Exemplo:

' Exemplo em Visual Basic

sRel = space(659)

iRetorno = Bematech_FI_VerificaRelatorioGerencialMFD(sRec)

// Exemplo em Delphi

for iConta := 1 to 659 do sRel := sRel + ' ';

iRetorno := Bematech_FI_VerificaRelatorioGerencialMFD( sRec );


Bematech_FI_VerificaSensorPoucoPapelMFD

Verificar se o sensor de pouco papel está habilitado ou desabilitado.

Parâmetro:

cFlag: Variável STRING para receber a informacao, onde:

0: sensor desabilitado.

1: sensor habilitado.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.03.03 ou MP-2100 TH FI.

Exemplo:

' Exemplo em Visual Basic

cFlag = " "

iRetorno = Bematech_FI_VerificaSensorPoucoPapelMFD( cFlag )

// Exemplo em Delphi

cFlag := ' ';

iRetorno := Bematech_FI_VerificaSensorPoucoPapelMFD( cFlag );


Bematech_FI_VerificaTotalizadoresNaoFiscaisMFD

Retorna a descrição dos totalizadores não fiscais programados na impressora.

Parâmetro:

Totalizadores: Variável STRING com 599 posições para receber a descrição dos totalizadores não fiscais programados.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- A impressora MFD permite programar até 28 totalizadores não fiscais e possui dois (2) pré-programados: Sangria e Suprimento.

- Os totalizadores virão separados por vírgula.

Exemplo:

' Exemplo em Visual Basic

sTot = space(599)

iRetorno = Bematech_FI_VerificaTotalizadoresNaoFiscaisMFD(sTot)

// Exemplo em Delphi

for iConta := 1 to 599 do sTot := sTot + ' ';

iRetorno := Bematech_FI_VerificaTotalizadoresNaoFiscaisMFD( sTot );


Bematech_FI_VerificaTotalizadoresParciaisMFD

Retorna os totalizadores parciais da impressora.

Parâmetro:

Totalizadores: Variável STRING com o tamanho de 889 posições para receber os totalizadores parciais.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- São retornadas as seguintes informações separadas por vírgulas:

Totalizadores parciais tributados:                224 bytes

Isenção de ICMS:                                  14 bytes

Não incidência de ICMS:                           14 bytes

Substitução de ICMS:                              14 bytes

Isenção de ISSQN:                                 14 bytes

Não incidência de ISSQN:                          14 bytes

Substitução de ISSQN:                             14 bytes

Descontos sobre ICMS:                             14 bytes

Acréscimos sobre ICMS:                            14 bytes

Cancelamentos sobre ICMS:                         14 bytes

Descontos sobre ISSQN:                            14 bytes

Acréscimos sobre ISSQN:                           14 bytes

Cancelamentos sobre ISSQN:                        14 bytes

Totalizadores não fiscais + sangria e suprimento: 420 bytes

Descontos sobre não fiscais:                      14 bytes

Acréscimos sobre não fiscais:                     14 bytes

Cancelamentos sobre não fiscais:                  14 bytes

Grande Total:                                     18 bytes

Exemplo:

' Exemplo em Visual Basic

sTot = space(889)

iRetorno = Bematech_FI_VerificaTotalizadoresParciaisMFD(sTot)

// Exemplo em Delphi

for iConta := 1 to 889 do sTot := sTot + ' ';

iRetorno := Bematech_FI_VerificaTotalizadoresParciaisMFD( sTot );


Bematech_FI_VersaoFirmwareMFD

Retorna a versão do firmware da impressora MFD.

Parâmetro:

VersaoFirmware: Variável STRING com o tamanho de 6 posições para receber a informação.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sVersaoFirmware = space(6)

iRetorno = Bematech_FI_VersaoFirmwareMFD(sVersaoFirmware)

// Exemplo em Delphi

for iConta := 1 to 6 do sVersaoFirmware := sVersaoFirmware + ' ';

iRetorno := Bematech_FI_VersaoFirmwareMFD( sVersaoFirmware );


 Bematech_FI_ImprimeChequeMFD

Bematech_FI_ImprimeChequeMFD

Imprime cheque na impressora MFD. Somente na impressora MP 6000.

Parâmetros:

NumeroBanco: STRING com o Número do banco com 3 dígitos.

Valor: STRING com o Valor do cheque com até 14 dígitos.

Favorecido: STRING com o Favorecido com até 45 caracteres.

Cidade: STRING com a Cidade com até 27 caracteres.

Data: STRING com a Data no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

Mensagem: STRING com Comentários até 120 caracteres. A mensagem será impressa uma (1) linha após a cidade caso não tenha sido indicada para impressão no verso.

ImpressaoVerso: STRING com o valor zero (0) para impressão da mensagem na frente do cheque e o valor um (1) para impressão no verso.

Linhas: STRING com um valor entre 0 e 35 com o número de linhas a serem saltadas antes da impressão da mensagem (só é utilizada na impressão da mensagem no verso).

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-7 - Banco não localizado no arquivo de configuração BemaFi32.ini

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImprimeChequeMFD("001", "50,00", "Fulano de Tal", "Curitiba", "18/04/02", "", "0", "0")

// Exemplo em Delphi

cCodigoBanco := '001';

cValor       := '50,00';

cFavorecido  := 'Fulano de Tal';

cCidade      := 'Curitiba';

cData        := '18/04/02';

cMsg         := '';

cVerso       := '0';

cLinhas      := '0';

iRetorno := Bematech_FI_ImprimeChequeMFD( pchar( cCodigoBanco ),

                                         pchar( cValor ),

                                         pchar( cFavorecido ),

                                         pchar( cCidade ),

                                         pchar( cData ),

                                         pchar( cMsg ),

                                         pchar( cVerso ),

                                         pchar( cLinhas ) );


 Bematech_FI_ImprimeChequeMFDEx

Bematech_FI_ImprimeChequeMFDEx

Monta e imprime o cheque na impressora MP-7000 TH FI ou IBM 4610 KN4 de acordo com as coordenadas no arquivo BemaFI32.ini.

Parâmetros:

cNumBanco: variável STRING com o numero do banco até 3 caracteres.

cValor: variável STRING com o Valor do cheque até 14 caracteres.

cFavorecido: variável STRING com o Favorecido até 80 caracteres.

cCidade: variável STRING com a Cidade até 27 caracteres.

cData: variável STRING com a Data no formato DD/MM/AA ou DD/MM/AAAA.

cMsg: variável STRING com a Mensagem até 240 caracteres.

cFonte: variável STRING para definir a fonte de impressão, onde: Fonte normal "0" ou fonte grande "1".

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-7 - Banco não localizado no arquivo de configuração BemaFi32.ini

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImprimeChequeMFDEx("001", "50,00", "Fulano de Tal", "Curitiba", "18/04/02", "Bom para 30/04/02", "0")

// Exemplo em Delphi

cCodigoBanco := '001';

cValor       := '50,00';

cFavorecido  := 'Fulano de Tal';

cCidade      := 'Curitiba';

cData        := '18/04/02';

cMsg         := 'Bom para 30/04/02';

cFonte       := '0';

iRetorno := Bematech_FI_ImprimeChequeMFDEx( pchar( cCodigoBanco ),

                                         pchar( cValor ),

                                         pchar( cFavorecido ),

                                         pchar( cCidade ),

                                         pchar( cData ),

                                         pchar( cMsg ),

                                         pchar( cFonte ) );


 Bematech_FI_ImprimeInformacaoChequeMFD

Bematech_FI_ImprimeInformacaoChequeMFD

Imprime informações adicionais em um cheque já impresso.

Importante

Esta função só está disponível para a versão 01.00.00, da Impressora Fiscal MFD.

Parâmetros:

Posicao: INTEGER com 0 para impressão frontal ou 1 para a impressão no verso.

Linhas: INTEGER com o número de avanços de linha antes da impressão.

Mensagem: STRING com o texto limitado a 240 caracteres ou 3 linhas.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImprimeInformacaoChequeMFD(1, 2, "Teste de impressão no verso do cheque")

// Exemplo em Delphi

cMsg := 'Teste de impressão no verso do cheque';

iRetorno := Bematech_FI_ImprimeInformacaoChequeMFD( 1, 2, pchar( cMsg ) );


Bematech_FI_LeituraChequeMFD

Realiza a leitura do código CMC7 do cheque.

Parâmetro:

CodigoCMC7: Variável STRING com 36 posições para receber o código CMC7.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-8 - Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-9 - Time-out na leitura do cheque.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

sCMC7 = space(36)

iRetorno = Bematech_FI_LeituraChequeMFD(sCMC7)

// Exemplo em Delphi

for iConta := 1 to 36 do sCMC7 := sCMC7 + ' ';

iRetorno := Bematech_FI_LeituraChequeMFD( sCMC7 );


Bematech_FI_ViraChequeMFD

Vira o cheque para impressão de texto no verso.

Parâmetro:

Não há.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Função disponível para as impressoras fiscais térmicas MP-7000 TH FI e IBM 4610-KN4.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ViraChequeMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_ViraChequeMFD();


 Bematech_FI_CodigoBarrasCODABARMFD

Bematech_FI_CodigoBarrasCODABARMFD

Esta função faz a impressão do código de barras CODABAR.

Parâmetro:

Código: STRING do código que será gerado.

O tamanho da string é dada pela tabela abaixo.

Largura das Barras | Quantidade de Caracteres
0 | 20
1 | 12
2 | 8

A Largura das Barras é 1 (default).

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

- Aceita dígitos entre 0 à 9.

- Aceita as letras A, B, C e D (maiúsculas ou minúsculas).

- Aceita os caracteres: "$", "+", "-", ".", "/" e ":".

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasCODABARMFD("123-ABC/001")

// Exemplo em Delphi

cCodigo := '123-ABC/001';

iRetorno := Bematech_FI_CodigoBarrasCODABARMFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasCODE128MFD

Bematech_FI_CodigoBarrasCODE128MFD

Esta função faz a impressão do código de barras CODE128.

Parâmetro:

Código: STRING com o código que será gerado.

O tamanho da string é dada pela tabela abaixo:

Largura das Barras | Quantidade de Caracteres
0 | 42
1 | 28
2 | 16

A Largura das Barras é 1 (default).

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Aceita os caracteres da tabela ASCII, na faixa de valores de 001 à 127.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasCODE128MFD("Bematech")

// Exemplo em Delphi

cCodigo := 'Bematech';

iRetorno := Bematech_FI_CodigoBarrasCODE128MFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasCODE39MFD

Bematech_FI_CodigoBarrasCODE39MFD

Esta função faz a impressão do código de barras CODE39.

Parâmetro:

Código: STRING com o código que será gerado.

O tamanho da string é dada pela tabela abaixo:

Largura das Barras | Quantidade de Caracteres
0 | 15
1 | 9
2 | 6

A Largura das Barras é 1 (default).

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

- Aceita dígitos entre 0 à 9.

- Aceita letras de A à Z (maiúsculas ou minúsculas).

- Aceita os caracteres: "espaço em branco", "$", "%", "+", "-", "." e "/".

- As letras não podem se maiúsculas e minúsculas simultaneamente.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasCODE39MFD("abc-123")

// Exemplo em Delphi

cCodigo := 'abc-123';

iRetorno := Bematech_FI_CodigoBarrasCODE39MFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasCODE93MFD

Bematech_FI_CodigoBarrasCODE93MFD

Esta função faz a impressão do código de barras CODE93.

Parâmetro:

Código: STRING com o código que será gerado.

O tamanho da string é dada pela tabela abaixo:

Largura das Barras | Quantidade de Caracteres
0 | 15
1 | 9
2 | 6

A Largura das Barras é 1 (default).

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

- Aceita os caracteres da tabela ASCII, na faixa de valores de 001 à 127.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasCODE93MFD("123-ABC")

// Exemplo em Delphi

cCodigo := '123-ABC';

iRetorno := Bematech_FI_CodigoBarrasCODE93MFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasEAN13MFD

Bematech_FI_CodigoBarrasEAN13MFD

Esta função faz a impressão do código de barras EAN13.

Parâmetro:

Codigo: STRING com o tamanho de 12 dígitos de 0 à 9.

Observação:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasEAN13MFD("123456789012")

// Exemplo em Delphi

cCodigo := '123456789012';

iRetorno := Bematech_FI_CodigoBarrasEAN13MFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasEAN8MFD

Bematech_FI_CodigoBarrasEAN8MFD

Esta função faz a impressão do código de barras EAN8.

Parâmetro:

Codigo: STRING com o tamanho de 7 dígitos de 0 à 9.

Observação:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasEAN8MFD("1234567")

// Exemplo em Delphi

cCodigo := '1234567';

iRetorno := Bematech_FI_CodigoBarrasEAN8MFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasISBNMFD

Bematech_FI_CodigoBarrasISBNMFD

Esta função faz a impressão do código de barras ISBN.

Parâmetro:

Código: STRING com 9 dígitos, composto por dígitos de 0 à 9, "-" (hifen) e "X". O "-" (hifen) e o "X" não são somados. Após o 9º dígito, podem aparecer ainda hifens seguidos por "X" ou algum número com o tamanho de 5 caracteres, não somando o espaço após o "-X" ou após o número. Exemplo: "1-56592-292-X 9000" ou "1-56592-291-1 900000".

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasISBNMFD("1-56592-292-X 90000")

// Exemplo em Delphi

cCodigo := '1-56592-292-X 90000';

iRetorno := Bematech_FI_CodigoBarrasISBNMFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasITFMFD

Bematech_FI_CodigoBarrasITFMFD

Esta função faz a impressão do código de barras ITF (Intercalado 2/5).

Parâmetro:

Código: STRING com o código que será gerado.

O tamanho da string é dada pela tabela abaixo:

Largura das Barras | Quantidade de Caracteres
0 | 30
1 | 20
2 | 14

A Largura da Barras é 1 (default).

Observaçãos:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Aceita dígitos entre 0 à 9.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasITFMFD("0123456789012345")

// Exemplo em Delphi

cCodigo := '0123456789012345';

iRetorno := Bematech_FI_CodigoBarrasITFMFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasMSIMFD

Bematech_FI_CodigoBarrasMSIMFD

Esta função faz a impressão do código de barras MSI.

Parâmetro:

Código: STRING com o código que será gerado.

O tamanho da string é dada pela tabela abaixo:

Largura das Barras | Quantidade de Caracteres
0 | 16
1 | 10
2 | 7

A Largura da Barras é 1 (default).

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- Aceita dígitos entre 0 à 9.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasMSIMFD("123")

// Exemplo em Delphi

cCodigo := '123';

iRetorno := Bematech_FI_CodigoBarrasMSIMFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasPDF417MFD

Bematech_FI_CodigoBarrasPDF417MFD

Esta função faz a impressão do código de barras PDF417.

Parâmetros:

Nível de Correção de Erros - Inteiro entre 0 à 8.

Quanto mais alto o nível, melhor a leitura do código, maior a impressão e menor o número de informações que poderão ser impressas.

Altura - Inteiro entre 1 à 8.

Altura do caracter do código (pitch). 1 pitch = altura de 0,125 mm.

Largura - Inteiro entre 1 à 4.

Largura do caracter do código (pitch). 1 pitch = altura de 0,125 mm.

Número de Colunas Impressa na Linha - Inteiro entre 0 à 30.

"0" (zero) utiliza o máximo de colunas que o mecanismo permite para a largura informada (pitch). Caso não caiba na linha a impressora ajusta, automaticamente, para o máximo de colunas permitido na linha.

Código - String do código que deseja gerar.

Observação:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasPDF417MFD(4, 3, 2, 0, "Bematech. Sempre presente nas melhores soluções !!!")

// Exemplo em Delphi

cCodigo := 'Bematech. Sempre presente nas melhores soluções !!!';

iRetorno := Bematech_FI_CodigoBarrasPDF417MFD( 4, 3, 2, 0, pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasPLESSEYMFD

Bematech_FI_CodigoBarrasPLESSEYMFD

Esta função faz a impressão do código de barras PLESSEY.

Parâmetro:

Código: STRING com o código que será gerado.

O tamanho da string é dada pela tabela abaixo:

Largura das Barras | Quantidade de Caracteres
0 | 13
1 | 7
2 | 4

A Largura das Barras é 1 (default).

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- Aceita dígitos entre 0 à 9.

- Aceita, somente, as letras ABCDEF (maiúsculas e minúsculas).

- As letras não podem ser maiúsculas e minúsculas simultaneamente.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasPLESSEYMFD("123-ABC")

// Exemplo em Delphi

cCodigo := '123-ABC';

iRetorno := Bematech_FI_CodigoBarrasPLESSEYMFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasUPCAMFD

Bematech_FI_CodigoBarrasUPCAMFD

Esta função faz a impressão do código de barras UPCA.

Parâmetro:

Codigo: STRING com o tamanho de 11 dígitos de 0 à 9.

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasUPCAMFD("12345678901")

// Exemplo em Delphi

cCodigo := '12345678901';

iRetorno := Bematech_FI_CodigoBarrasUPCAMFD( pchar( cCodigo ) );


 Bematech_FI_CodigoBarrasUPCEMFD

Bematech_FI_CodigoBarrasUPCEMFD

Esta função faz a impressão do código de barras UPCE.

Parâmetro:

Código: STRING com o tamanho de 6 dígitos de 0 à 9.

Observação:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Será acrescentado, automaticamente, o dígito verificador.

- A impressão do código de barras só será executado dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_CodigoBarrasUPCEMFD("123456")

// Exemplo em Delphi

cCodigo := '123456';

iRetorno := Bematech_FI_CodigoBarrasUPCEMFD( pchar( cCodigo ) );


Bematech_FI_ConfiguraCodigoBarrasMFD

Esta função configura os códigos de barras definindo Altura, Largura e Posição dos caracteres.

Parâmetros:

Altura - Inteiro entre 1 à 255. (default 162)

Largura - Inteiro entre 0 à 2.

Largura = 0 (barras finas)

Largura = 1 (barras médias) - default

Largura = 2 (barras grossas)

Posição dos Caracteres - Inteiro entre 0 à 3.

Posição = 0 (não imprime os caracteres do código)

Posição = 1 (imprime os caracteres acima do código)

Posição = 2 (imprime os caracteres abaixo do código) - default

Posição = 3 (imprime os caracteres acima e abaixo do código)

Fonte - Inteiro entre 0 à 1.

Fonte = 0 (normal)

Fonte = 1 (condensado)

Margem - Inteiro entre 0 à 575 (dots pitch)

Margem = 0 (sem margem) default

Observação:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- A configuração do código de barras deve ser realizada dentro do Relatório Gerencial ou dentro do Comprovante Não Fiscal Vinculado.

Possíveis retornos da Função (INTEIRO):

0 (zero): Erro de Comunicação.

1 (um): OK.

-2 (menos dois): Parâmetro Inválido.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ConfiguraCodigoBarrasMFD(100, 1, 3, 0, 5)

// Exemplo em Delphi

iRetorno := Bematech_FI_ConfiguraCodigoBarrasMFD( 100, 1, 3, 0, 5 );


 Bematech_FI_AbreBilhetePassagemMFD

Bematech_FI_AbreBilhetePassagemMFD

Abre o cupom na impressora bilhete de passagem MFD.

Parâmetros:

Embarque: STRING com até 40 caracteres com o local de embarque.

Destino: STRING com até 40 caracteres com o local de destino.

Linha: STRING com até 40 caracteres com o nome da linha (Ex. Curitiba x São Paulo – Executivo)

Agencia: STRING com até 40 caracteres com o nome da agência.

Data: STRING com a data de embarque no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

Hora: STRING com a hora do embarque no formato hhmmss ou hh:mm:ss.

Poltrona: STRING com até 2 caracteres com o número da poltrona.

Plataforma: STRING com até 3 caracteres com o número da plataforma.

TipoPassagem: STRING com:

0 (zero) - passagem Rodoviário Intermunicipal;

1 (um) - passagem Ferroviário Intermunicipal;

2 (dois) - passagem Aquaviário Intermunicipal;

3 (três) - passagem Rodoviário Interestadual;

4 (quatro) - passagem Ferroviário Interestadual;

5 (cinco) - passagem Aquaviário Interestadual;

6 (seis) - passagem Rodoviário Internacional;

7 (sete) - passagem Ferroviário Internacional ou;

8 (oito) - passagem Aquaviário Internacional.

RG: STRING até 29 caracteres com o RG do cliente.

Nome: STRING até 30 caracteres com o nome do cliente.

Endereco: STRING até 80 caracteres com o endereço do cliente.

UF: STRING com 2 caracteres com a UF do estado de destino.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Para o registro de itens, utilize a função Bematech_FI_VendeItem.

- O primeiro item a ser vendido deve possuir a descrição "TARIFA".

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AbreBilhetePassagemMFD("Curitiba", "São Paulo", "Curitiba/São Paulo - Leito", "Itapemirim", "22/04/02", "11:30:00", "15", "D10", "3", "5.021.659-66", "Fulano de Tal", "Rua sem Fim, 1000", "SP")

// Exemplo em Delphi

cEmbarque     := 'Curitiba';

cDestino      := 'São Paulo';

cLinha        := 'Curitiba/São Paulo - Leito';

cAgencia      := 'Itapemirim';

cData         := '22/04/02';

cHora         := '11:30:00';

cPoltrona     := '15';

cPlataforma   := 'D10';

cTipoPassagem := '3';

cRG           := '5.021.659-66';

cNome         := 'Fulado de Tal';

cEndereco     := 'Rua sem Fim, 1000';

cUFDestino    := 'SP';

iRetorno := Bematech_FI_AbreBilhetePassagemMFD( pchar( cEmbarque ),

                                               pchar( cDestino ),

                                               pchar( cLinha ),

                                               pchar( cAgencia ),

                                               pchar( cData ),

                                               pchar( cHora ),

                                               pchar( cPoltrona ),

                                               pchar( cPlataforma ),

                                               pchar( cTipoPassagem ),

                                               pchar( cRG ),

                                               pchar( cNome ),

                                               pchar( cEndereco ),

                                               pchar( cUFDestino ) );


Bematech_FI_AcionaGuilhotinaMFD

Aciona a guilhotina para o corte do papel, nas impressoras fiscais térmicas MFD.

Parâmetros:

iTipoCorte: variável INTEIRA para definir o tipo de corte do papel. Onde:

0: para corte parcial ou;

1: para corte total.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- A função só terá efeito dentro do Comprovante Não Fiscal Vinculado e Relatório Gerencial.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01 e MP-2100 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AcionaGuilhotinaMFD(1)

// Exemplo em Delphi

iRetorno := Bematech_FI_AcionaGuilhotinaMFD( 1 );


Bematech_FI_AtivaDesativaCorteProximoMFD

Ativa ou desativa o corte do papel (acionamento da guilhotina) para o documento impresso.

Parâmetros:

iFlag: INTEGER com 1 (um) dígito, onde:

0 (zero): desativa

1 (um): ativa

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observação:

- Esta função ativará ou desativará o corte do papel, do documento que será impresso, retornando ao default que é sempre ativo.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01 e MP-2100 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AtivaDesativaCorteProximoMFD(1)

// Exemplo em Delphi

iRetorno := Bematech_FI_AtivaDesativaCorteProximoMFD( 1 );


Bematech_FI_AtivaDesativaGuilhotinaMFD

Ativa ou desativa a guilhotina, nas impressoras fiscais térmicas MFD que possuem guilhotina.

Parâmetros:

Tipo: variável INTEIRA para ativar ou desativar a guilhotina. Onde:

0: desativa.

1: ativa.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- A função só terá efeito dentro do Comprovante Não Fiscal Vinculado e Relatório Gerencial.

- Esta função está disponível apenas para os modelos MP-4000 TH FI e MP-7000 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AtivaDesativaGuilhotinaMFD(1)

// Exemplo em Delphi

iRetorno := Bematech_FI_AtivaDesativaGuilhotinaMFD( 1 );


Bematech_FI_AvancaPapelAcionaGuilhotinaMFD

Avança a bobina antes de cortar o papel.

Parâmetros:

iLinhas: variável INTEIRA com o número de linhas para avançar bobina antes do corte do papel, compreendido entre 0 e 255.

iTipoCorte: variável INTEIRA para definir o tipo de corte do papel. Onde:

0: para corte parcial ou;

1: para corte total ou;

2: sem corte.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observação:

- Função disponível para as impressoras fiscais térmicas MP-7000 TH FI e IBM 4610-KN4.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_AvancaPapelAcionaGuilhotinaMFD(10, 1)

// Exemplo em Delphi

iRetorno := Bematech_FI_AvancaPapelAcionaGuilhotinaMFD( 10, 1 );


Bematech_FI_ConfiguraCorteGuilhotinaMFD

Configurar o corte parcial na guilhotina, nas impressoras fiscais térmicas MFD.

Parâmetros:

iTempo: variável INTEIRA para definir o tempo de acionamento da guilhotina. Valor compreendido entre 0 e 254 ms

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-8 - Erro ao criar ou gravar no arquivo texto

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- A função só terá efeito dentro do Comprovante Não Fiscal Vinculado e Relatório Gerencial.

- Função disponível para a impressora fiscal térmica MP-2000 TH FI versão 01.00.02 ou 01.01.01 e MP-2100 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ConfiguraCorteGuilhotinaMFD(100)

// Exemplo em Delphi

iRetorno := Bematech_FI_ConfiguraCorteGuilhotinaMFD( 100 );


 Bematech_FI_DadosSintegraMFD

Bematech_FI_DadosSintegraMFD

Esta função retorna informações da memória fiscal utilizadas na geração do relatório Sintegra, para as impressoras no convênio ICMS 85/01.

Parâmetros:

DataInicial: STRING com a Data inicial no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

DataFinal: STRING com a Data final no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

O retorno das informações geradas por esta função, serão gravadas no arquivo RETORNO.TXT, na seguinte ordem:

Data | : 8 bytes com o formato AAAAMMDD (esta data refere-se a data em que a Redução Z foi emitida);
Número de Serie | : 20 bytes;
Número Sequencial do ECF | : 3 bytes;
Contador de Redução Z | : 6 bytes;
Cont. de Reinício de Operação | : 6 bytes;
GT Final | : 16 bytes;
GT Inicial | : 16 bytes;
Venda Bruta | : 16 bytes;
Venda Líquida | : 16 bytes;
Cancelamentos | : 12 bytes;
Cancelamentos ISS | : 12 bytes
Descontos | : 12 bytes;
Descontos ISS | : 12 bytes;
Acréscimos | : 12 bytes;
Acréscimos ISS | : 12 bytes;
Operação Não Fiscal | : 12 bytes;
F (Substituição Tributária) | : 12 bytes;
FI (Substituição ISS) | : 12 bytes;
I (Isenção) | : 12 bytes;
II (Isenção ISS) | : 12 bytes;
N (Não Incidência) | : 12 bytes;
NI (Não Incidência ISS) | : 12 bytes;
ISS | : 12 bytes;
Situação Tributária (valor percentual da alíquota) de ICMS | : 4 bytes e;
Valor acumulado na Situação Tributária | : 12 bytes.

Observações:

- Os campos "Situação Tributária de ICMS" e "Valor acumulado na Situação Tributária" poderão ser repetidos de acordo com o número de alíquotas utilizadas nas vendas.

- Os campos já estão formatados no tamanho que o relatório do Sintegra exige.

- Cada linha do arquivo RETORNO.TXT corresponde a um dia de movimento na impressora.

Exemplo do conteúdo do arquivo RETORNO.TXT:

20040129470800057185001470043000000001443234300000000144205870000000000011756000000000000539300000000356400000000000000000000099500000000075000000000005000000000279917000000000018101200000000001788

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_DadosSintegraMFD("010104", "310104")

// Exemplo em Delphi

DataInicial := '010104';

DataFinal   := '310104';

iRetorno    := Bematech_FI_DadosSintegraMFD( pchar( DataInicial ), pchar( DataFinal ) );


 Bematech_FI_DownloadMF

Bematech_FI_DownloadMF

Realiza o download da MF (Memória Fiscal) das impressoras fiscais do convênio ICMS 85.

Parâmetros:

cArquivo: STRING com o nome do arquivo que será gerado, exemplo: "MFISCAL.MF".

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Não esqueça de copiar a BemaMFD.dll e BemaMFD2.dll para o diretório de sistema de seu Windows.

- No emulador da impressora, para que a função tenha efeito, é obrigatório que a comunicação seja realizada através de um cabo serial fisicamente conectado ao micro (COM1 <-> COM2, por exemplo). A pinagem deste cabo está descrito no arquivo de ajuda do emulador.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_DownloadMF( "MFISCAL.MF" );

// Exemplo em Delphi

cArquivo := 'MFISCAL.MF';

iRetorno := Bematech_FI_DownloadMF( pchar( cArquivo ) );


 Bematech_FI_DownloadMFD

Bematech_FI_DownloadMFD

Realiza o download da MFD (Memória de Fita Detalhe) das impressoras fiscais térmicas Bematech.

Parâmetros:

cArquivo: STRING com o nome do arquivo que será gerado, exemplo: "DOWNLOAD.MFD".

cTipoDownload: STRING com o tipo de download, onde:

"0" (zero): download total.

"1" (um): download por data.

"2" (dois): download por COO.

cDadoInicial: STRING com a data ou o COO inicial (data no formato DDMMAA ou DDMMAAAA, COO com no máximo 6 dígitos).

cDadoFinal: STRING com a data ou o COO final (data no formato DDMMAA ou DDMMAAAA, COO com no máximo 6 dígitos).

cUsuario: STRING com o número de ordem do proprietário do ECF, exemplo: primeiro proprietário "cUsuario = 1". Pois para cada proprietário o COO dos cupons serão diferentes.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-2: Parâmetro inválido.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar o arquivo.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Os parâmetros cDadoInicial e cDadoFinal são obrigatórios se o tipo de download for por data ou por COO.

- O parâmetro cUsuario é obrigatório se o download for por COO.

- Esta função não retornará os status ACK, ST1 e ST2 da impressora, pois ela é utiliza, apenas, para o download da MFD.

- Não esqueça de copiar a BemaMFD.dll e BemaMFD2.dll para o diretório de sistema de seu Windows.

- No emulador da impressora, para que a função tenha efeito, é obrigatório que a comunicação seja realizada através de um cabo serial fisicamente conectado ao micro (COM1 <-> COM2, por exemplo). A pinagem deste cabo está descrito no arquivo de ajuda do emulador.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_DownloadMFD("DOWNLOAD.MFD", "2", "000001", "000010", "1")

// Exemplo em Delphi

cArquivo      := 'DOWNLOAD.MFD';

cTipoDownload := '2';

cCOOInicial   := '000001';

cCOOFinal     := '000010';

cUsuario      := '1';

iRetorno := Bematech_FI_DownloadMFD( pchar( cArquivo ),

                                    pchar( cTipoDownload ),

                                    pchar( cCOOInicial ),

                                    pchar( cCOOFinal ),

                                    pchar( cUsuario ) );


 Bematech_FI_DownloadSB

Bematech_FI_DownloadSB

Realiza o download da Software Básico das impressoras fiscais do convênio ICMS 85.

Parâmetros:

cArquivo: STRING com o nome do arquivo que será gerado, exemplo: "DOWNLOAD.SB".

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Não esqueça de copiar a BemaMFD.dll para o diretório de sistema de seu Windows.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_DownloadSB( "DOWNLOAD.SB" );

// Exemplo em Delphi

cArquivo := 'DOWNLOAD.SB';

iRetorno := Bematech_FI_DownloadSB( pchar( cArquivo ) );


 Bematech_FI_FormatoDadosMFD

Bematech_FI_FormatoDadosMFD

Gera os dados da MFD (Memória de Fita Detalhe) em formato TXT, RTF ou MDB.

Parâmetros:

cArquivoOrigem: STRING com o nome do arquivo MFD que contém a origem dos dados MFD, exemplo: "DOWNLOAD.MFD".

cDestino: STRING com o nome do arquivo que será gerado, exemplo: "SAIDA.MDB".

cFormatoDados: STRING com o tipo do formato de dados, onde:

"0" (zero) para formato .TXT (é criado um arquivo TXT com a imagem dos cupons referentes ao movimento)

"1" (um) para formato .RTF (é criado um arquivo RTF com a imagem dos cupons referentes ao movimento)

"2" (dois) para formato .MDB (é criado um arquivo MDB com tabelas referentes ao movimento)

cTipoDownload: STRING com o tipo de download, onde:

"0" (zero): download total

"1" (um): download por data

"2" (dois): download por COO

cDadoInicial: STRING com a data ou o COO inicial (data no formato DDMMAA ou DDMMAAA, COO com no máximo 6 dígitos).

cDadoFinal: STRING com a data ou o COO final (data no formato DDMMAA ou DDMMAAA, COO com no máximo 6 dígitos).

cUsuario: STRING com o número de ordem do proprietário do ECF, exemplo: primeiro proprietário "cUsuario = 1". Pois para cada proprietário o COO dos cupons serão diferentes.

Possíveis retornos da Função (INTEIRO):

1: OK.

-1: Erro de execução da função.

-2: Parâmetro inválido.

-8: Erro ao criar ou gravar o arquivo.

Observações:

- Esta função é utilizada somente nas impressoras fiscais térmicas.

- Os parâmetros cDadoInicial e cDadoFinal são obrigatórios se o tipo de download for por data ou por COO.

- O parâmetro cUsuario é obrigatório se o download for por COO.

- Esta função não retornará os status ACK, ST1 e ST2 da impressora, pois ela é utiliza, apenas, para gerar o download da MFD nos formatos citados acima.

- Não esqueça de copiar a BemaMFD.dll para o diretório de sistema de seu Windows.

- O arquivo MFD de origem, deve ser gerado através da função Bematech_FI_DownloadMFD.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_FormatoDadosMFD("DOWNLOAD.MFD", "SAIDA.MDB", "2", "2", "000001", "000010", "1")

// Exemplo em Delphi

cArquivoOrigem  := 'DOWNLOAD.MFD';

cArquivoDestino := 'SAIDA.MDB';

cTipoFormato    := '2';

cTipoDownload   := '2';

cCOOInicial     := '000001';

cCOOFinal       := '000010';

cUsuario        := '1';

iRetorno := Bematech_FI_FormatoDadosMFD( pchar( cArquivoOrigem ),

                                    pchar( cArquivoDestino ),

                                    pchar( cTipoFormato ),

                                    pchar( cTipoDownload ),

                                    pchar( cCOOInicial ),

                                    pchar( cCOOFinal ),

                                    pchar( cUsuario ) );


 Bematech_FI_GeraRelatorioSintegraMFD

Bematech_FI_GeraRelatorioSintegraMFD

Gera os relatórios para o Sintegra, somente da impressora fiscal térmica (MFD), a partir de um arquivo .MFD.

Parâmetros:

iRelatorios: variável INTEIRA com o tamanho de um byte, onde:

1: gera o relatório tipo 60M (Mestre);

2: gera o relatório tipo 60A (Analítico);

4: gera o relatório tipo 60D (Diário);

8: gera o relatório tipo 60I (Item);

16: gera o relatório tipo 60R (Resumo Mensal) e;

32: gera o relatório tipo 75.

Observação: Para gerar mais de um relatório, deve-se enviar a soma dos valores citados acima, por exemplo: Se desejar gerar os relatório tipo 60M, tipo 60A e tipo 75, a variável deve ter o valor 34.

cArquivoOrigem: STRING com o path e nome do arquivo .MFD de origem. Exemplo: "C:\DOWNLOAD.MFD"

cArquivoDestino: STRING com o path e nome do arquivo onde o relatorio será gerado. Exemplo: "C:\SINTEGRA.TXT"

cMes: STRING com o mês, no formato MM.

cAno: STRING com o ano, no formato AAAA.

cRazaoSocial: STRING com a razão social, no tamanho de até 35 caracteres.

cEndereco: STRING com o endereço, no tamanho de até 34 caracteres.

cNumero: STRING com o número, no tamanho de até 5 caracteres.

cComplemento: STRING com o complemento, no tamanho de até 22 caracteres.

cBairro: STRING com o bairro, no tamanho de até 15 caracteres.

cCidade: STRING com a cidade, no tamanho de até 30 caracteres.

cCEP: STRING com o CEP, com o tamanho de 8 caracteres.

cTelefone: STRING com o telefone, no tamanho de até 12 caracteres.

cFax: STRING com o fax, no tamanho de até 10 caracteres.

cContato: STRING com o nome do contato, no tamanho de até 18 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução da função.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Os registro tipo 10, tipo 11 e o tipo 90, são gerados automaticamente.

- Não esqueça de registrar as dlls DAO350.dll e MSJET32.dll, e copiar a dll BemaMFD.dll para o diretório de sistema de seu Windows para que esta função seja executada com sucesso (veja o tópico "Gerando os Registros do Sintegra nas Impressoras Fiscais MFD (térmica)" para maiores informações).

Exemplo:

' Exemplo em Visual Basic que gera todos os relatórios do Sintegra

iRetorno = Bematech_FI_GeraRelatorioSintegraMFD(63, "DOWNLOAD.MFD", "SINTEGRA.TXT", "11", "2003", "BEMATECH S/A", "Estrada de Santa Candida", "263", "Industria", "Santa Candida", "Curitiba", "82630490", "41 351-2700", "41 351-2863", "Fulano de Tal" );

// Exemplo em Delphi que gera todos os relatórios do Sintegra

cArqOrigem   := 'DOWNLOAD.MFD';

cArqDestino  := 'SINTEGRA.TXT';

cMes         := '11';

cAno         := '2003';

cRazaoSocial := 'BEMATECH S/A';

cEndereco    := 'Estrada de Santa Candida';

cNumero      := '263';

cComplemento := 'Industria';

cBairro      := 'Santa Candida';

cCidade      := 'Curitiba';

cCEP         := '82630490';

cTelefone    := '41 351-2700';

cFax         := '41 351-2863';

cContato     := 'Fulano de Tal';

iRetorno := Bematech_FI_GeraRelatorioSintegraMFD( 63,

                                                 pchar( cArqOrigem ),

                                                 pchar( cArqDestino ),

                                                 pchar( cMes ),

                                                 pchar( cAno ),

                                                 pchar( cRazaoSocial ),

                                                 pchar( cEndereco ),

                                                 pchar( cNumero ),

                                                 pchar( cComplemento ),

                                                 pchar( cBairro ),

                                                 pchar( cCidade ),

                                                 pchar( cCEP ),

                                                 pchar( cTelefone ),

                                                 pchar( cFax ),

                                                 pchar( cContato ) );


 Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD

Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD

Habilita e desabilita o retorno estendido na MFD. O retorno estendido é ACK, ST1, ST2 e ST3. Caso não seja habilitado, será retornado apenas ACK, ST1 e ST2 como na impressora fiscal matricial MP-20 FI II ou MP-40 FI II.

Parâmetro:

FlagRetorno: STRING com o valor um (1) para habilitar ou zero (0) para desabilitar o retorno estendido.

Retornos da Função (INTEIRO):

1 – Ok

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD("1")

// Exemplo em Delphi

cFlag := '1';

iRetorno := Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD( pchar( cFlag ) );

Tabela de retornos para o ST3:

ST3 Informação de Retorno

0 COMANDO OK

1 COMANDO INVÁLIDO

2 ERRO DESCONHECIDO

3 NÚMERO DE PARÂMETRO INVÁLIDO

4 TIPO DE PARÂMETRO INVÁLIDO

5 TODAS ALÍQUOTAS JÁ PROGRAMADAS

6 TOTALIZADOR NÃO FISCAL JÁ PROGRAMADO

7 CUPOM FISCAL ABERTO

8 CUPOM FISCAL FECHADO

9 ECF OCUPADO

10 IMPRESSORA EM ERRO

11 IMPRESSORA SEM PAPEL

12 IMPRESSORA COM CABEÇA LEVANTADA

13 IMPRESSORA OFF LINE

14 ALÍQUOTA NÃO PROGRAMADA

15 TERMINADOR DE STRING FALTANDO

16 ACRÉSCIMO OU DESCONTO MAIOR QUE O TOTAL DO CUPOM FISCAL

17 CUPOM FISCAL SEM ITEM VENDIDO

18 COMANDO NÃO EFETIVADO

19 SEM ESPAÇO PARA NOVAS FORMAS DE PAGAMENTO

20 FORMA DE PAGAMENTO NÃO PROGRAMADA

21 ÍNDICE MAIOR QUE NÚMERO DE FORMA DE PAGAMENTO

22 FORMAS DE PAGAMENTO ENCERRADAS

23 CUPOM NÃO TOTALIZADO

24 COMANDO MAIOR QUE 7Fh (127d)

25 CUPOM FISCAL ABERTO E SEM ÍTEM

26 CANCELAMENTO NÃO IMEDIATAMENTE APÓS

27 CANCELAMENTO JÁ EFETUADO

28 COMPROVANTE DE CRÉDITO OU DÉBITO NÃO PERMITIDO OU JÁ EMITIDO

29 MEIO DE PAGAMENTO NÃO PERMITE TEF

30 SEM COMPROVANTE NÃO FISCAL ABERTO

31 COMPROVANTE DE CRÉDITO OU DÉBITO JÁ ABERTO

32 REIMPRESSÃO NÃO PERMITIDA

33 COMPROVANTE NÃO FISCAL JÁ ABERTO

34 TOTALIZADOR NÃO FISCAL NÃO PROGRAMADO

35 CUPOM NÃO FISCAL SEM ÍTEM VENDIDO

36 ACRÉSCIMO E DESCONTO MAIOR QUE TOTAL CNF

37 MEIO DE PAGAMENTO NÃO INDICADO

38 MEIO DE PAGAMENTO DIFERENTE DO TOTAL DO RECEBIMENTO

39 NÃO PERMITIDO MAIS DE UMA SANGRIA OU SUPRIMENTO

40 RELATÓRIO GERENCIAL JÁ PROGRAMADO

41 RELATÓRIO GERENCIAL NÃO PROGRAMADO

42 RELATÓRIO GERENCIAL NÃO PERMITIDO

43 MFD NÃO INICIALIZADA

44 MFD AUSENTE

45 MFD SEM NÚMERO DE SÉRIE

46 MFD JÁ INICIALIZADA

47 MFD LOTADA

48 CUPOM NÃO FISCAL ABERTO

49 MEMÓRIA FISCAL DESCONECTADA

50 MEMÓRIA FISCAL SEM NÚMERO DE SÉRIE DA MFD

51 MEMÓRIA FISCAL LOTADA

52 DATA INICIAL INVÁLIDA

53 DATA FINAL INVÁLIDA

54 CONTADOR DE REDUÇÃO Z INICIAL INVÁLIDO

55 CONTADOR DE REDUÇÃO Z FINAL INVÁLIDO

56 ERRO DE ALOCAÇÃO

57 DADOS DO RTC INCORRETOS

58 DATA ANTERIOR AO ÚLTIMO DOCUMENTO EMITIDO

59 FORA DE INTERVENÇÃO TÉCNICA

60 EM INTERVENÇÃO TÉCNICA

61 ERRO NA MEMÓRIA DE TRABALHO

62 JÁ HOUVE MOVIMENTO NO DIA

63 BLOQUEIO POR RZ

64 FORMA DE PAGAMENTO ABERTA

65 AGUARDANDO PRIMEIRO PROPRIETÁRIO

66 AGUARDANDO RZ

67 ECF OU LOJA IGUAL A ZERO

68 CUPOM ADICIONAL NÃO PERMITIDO

69 DESCONTO MAIOR QUE TOTAL VENDIDO EM ICMS

70 RECEBIMENTO NÃO FISCAL NULO NÃO PERMITIDO

71 ACRÉSCIMO OU DESCONTO MAIOR QUE TOTAL NÃO FISCAL

72 MEMÓRIA FISCAL LOTADA PARA NOVO CARTUCHO

73 ERRO DE GRAVAÇÃO NA MF

74 ERRO DE GRAVAÇÃO NA MFD

75 DADOS DO RTC ANTERIORES AO ÚLTIMO DOC ARMAZENADO

76 MEMÓRIA FISCAL SEM ESPAÇO PARA GRAVAR LEITURAS DA MFD

77 MEMÓRIA FISCAL SEM ESPAÇO PARA GRAVAR VERSAO DO SB

78 DESCRIÇÃO IGUAL A DEFAULT NÃO PERMITIDO

79 EXTRAPOLADO NÚMERO DE REPETIÇÕES PERMITIDAS

80 SEGUNDA VIA DO COMPROVANTE DE CRÉDITO OU DÉBITO NÃO PERMITIDO

81 PARCELAMENTO FORA DA SEQUÊNCIA

82 COMPROVANTE DE CRÉDITO OU DÉBITO ABERTO

83 TEXTO COM SEQUÊNCIA DE ESC INVÁLIDA

84 TEXTO COM SEQUÊNCIA DE ESC INCOMPLETA

85 VENDA COM VALOR NULO

86 ESTORNO DE VALOR NULO

87 FORMA DE PAGAMENTO DIFERENTE DO TOTAL DA SANGRIA

88 REDUÇÃO NÃO PERMITIDA EM INTERVENÇÃO TÉCNICA

89 AGUARDANDO RZ PARA ENTRADA EM INTERVENÇÃO TÉCNICA

90 FORMA DE PAGAMENTO COM VALOR NULO NÃO PERMITIDO

91 ACRÉSCIMO E DESCONTO MAIOR QUE VALOR DO ÍTEM

92 AUTENTICAÇÃO NÃO PERMITIDA

93 TIMEOUT NA VALIDAÇÃO

94 COMANDO NÃO EXECUTADO EM IMPRESSORA BILHETE DE PASSAGEM

95 COMANDO NÃO EXECUTADO EM IMPRESSORA DE CUPOM FISCAL

96 CUPOM NÃO FISCAL FECHADO

97 PARÂMETRO NÃO ASCII EM CAMPO ASCII

98 PARÂMETRO NÃO ASCII NUMÉRICO EM CAMPO ASCII NUMÉRICO

99 TIPO DE TRANSPORTE INVÁLIDO

100 DATA E HORA INVÁLIDA

101 SEM RELATÓRIO GERENCIAL OU COMPROVANTE DE CRÉDITO OU DÉBITO ABERTO

102 NÚMERO DO TOTALIZADOR NÃO FISCAL INVÁLIDO

103 PARÂMETRO DE ACRÉSCIMO OU DESCONTO INVÁLIDO

104 ACRÉSCIMO OU DESCONTO EM SANGRIA OU SUPRIMENTO NÃO PERMITIDO

105 NÚMERO DO RELATÓRIO GERENCIAL INVÁLIDO

106 FORMA DE PAGAMENTO ORIGEM NÃO PROGRAMADA

107 FORMA DE PAGAMENTO DESTINO NÃO PROGRAMADA

108 ESTORNO MAIOR QUE FORMA PAGAMENTO

109 CARACTER NUMÉRICO NA CODIFICAÇÃO GT NÃO PERMITIDO

110 ERRO NA INICIALIZAÇÃO DA MF

111 NOME DO TOTALIZADOR EM BRANCO NÃO PERMITIDO

112 DATA E HORA ANTERIORES AO ÚLTIMO DOC ARMAZENADO

113 PARÂMETRO DE ACRÉSCIMO OU DESCONTO INVÁLIDO

114 ÍTEM ANTERIOR AOS TREZENTOS ÚLTIMOS

115 ÍTEM NÃO EXISTE OU JÁ CANCELADO

116 CÓDIGO COM ESPAÇOS NÃO PERMITIDO

117 DESCRICAO SEM CARACTER ALFABÉTICO NÃO PERMITIDO

118 ACRÉSCIMO MAIOR QUE VALOR DO ÍTEM

119 DESCONTO MAIOR QUE VALOR DO ÍTEM

120 DESCONTO EM ISS NÃO PERMITIDO

121 ACRÉSCIMO EM ÍTEM JÁ EFETUADO

122 DESCONTO EM ÍTEM JÁ EFETUADO

123 ERRO NA MEMÓRIA FISCAL CHAMAR CREDENCIADO

124 AGUARDANDO GRAVAÇÃO NA MEMÓRIA FISCAL

125 CARACTER REPETIDO NA CODIFICAÇÃO DO GT

126 VERSÃO JÁ GRAVADA NA MEMÓRIA FISCAL

127 ESTOURO DE CAPACIDADE NO CHEQUE

128 TIMEOUT NA LEITURA DO CHEQUE

129 MÊS INVÁLIDO

130 COORDENADA INVÁLIDA

131 SOBREPOSIÇÃO DE TEXTO

132 SOBREPOSIÇÃO DE TEXTO NO VALOR

133 SOBREPOSIÇÃO DE TEXTO NO EXTENSO

134 SOBREPOSIÇÃO DE TEXTO NO FAVORECIDO

135 SOBREPOSIÇÃO DE TEXTO NA LOCALIDADE

136 SOBREPOSIÇÃO DE TEXTO NO OPCIONAL

137 SOBREPOSIÇÃO DE TEXTO NO DIA

138 SOBREPOSIÇÃO DE TEXTO NO MÊS

139 SOBREPOSIÇÃO DE TEXTO NO ANO

140 USANDO MFD DE OUTRO ECF

141 PRIMEIRO DADO DIFERENTE DE ESC OU 1C

142 NÃO PERMITIDO ALTERAR SEM INTERVENÇÃO TÉCNICA

143 DADOS DA ÚLTIMA RZ CORROMPIDOS

144 COMANDO NÃO PERMITIDO NO MODO INICIALIZAÇÃO

145 AGUARDANDO ACERTO DE RELÓGIO

146 MFD JÁ INICIALIZADA PARA OUTRA MF

147 AGUARDANDO ACERTO DO RELÓGIO OU DESBLOQUEIO PELO TECLADO

148 VALOR FORMA DE PAGAMENTO MAIOR QUE MÁXIMO PERMITIDO

149 RAZÃO SOCIAL EM BRANCO

150 NOME DE FANTASIA EM BRANCO

151 ENDEREÇO EM BRANCO

152 ESTORNO DE CDC NÃO PERMITIDO

153 DADOS DO PROPRIETÁRIO IGUAIS AO ATUAL

154 ESTORNO DE FORMA DE PAGAMENTO NÃO PERMITIDO

155 DESCRIÇÃO FORMA DE PAGAMENTO IGUAL JÁ PROGRAMADA

156 ACERTO DE HORÁRIO DE VERÃO SÓ IMEDIATAMENTE APÓS RZ

157 IT NÃO PERMITIDA MF RESERVADA PARA RZ

158 SENHA CNPJ INVÁLIDA

159 TIMEOUT NA INICIALIZAÇÃO DA NOVA MF

160 NÃO ENCONTRADO DADOS NA MFD

161 SANGRIA OU SUPRIMENTO DEVEM SER ÚNICOS NO CNF

162 ÍNDICE DA FORMA DE PAGAMENTO NULO NÃO PERMITIDO

163 UF DESTINO INVÁLIDA

164 TIPO DE TRANSPORTE INCOMPATÍVEL COM UF DESTINO

165 DESCRIÇÃO DO PRIMEIRO ÍTEM DO BILHETE DE PASSAGEM DIFERENTE DE "TARIFA"

166 AGUARDANDO IMPRESSÃO DE CHEQUE OU AUTENTICAÇÃO

167 NÃO PERMITIDO PROGRAMAÇAO CNPJ IE COM ESPAÇOS EM BRANCO

168 NÃO PERMITIDO PROGRAMAÇÃO UF COM ESPAÇOS EM BRANCO

169 NÚMERO DE IMPRESSÕES DA FITA DETALHE NESTA INTERVENÇÃO TÉCNICA ESGOTADO

170 CF JÁ SUBTOTALIZADO

171 CUPOM NÃO SUBTOTALIZADO

172 ACRÉSCIMO EM SUBTOTAL JÁ EFETUADO

173 DESCONTO EM SUBTOTAL JÁ EFETUADO

174 ACRÉSCIMO NULO NÃO PERMITIDO

175 DESCONTO NULO NÃO PERMITIDO

176 CANCELAMENTO DE ACRÉSCIMO OU DESCONTO EM SUBTOTAL NÃO PERMITIDO

177 DATA INVÁLIDA

178 VALOR DO CHEQUE NULO NÃO PERMITIDO

179 VALOR DO CHEQUE INVÁLIDO

180 CHEQUE SEM LOCALIDADE NÃO PERMITIDO

181 CANCELAMENTO ACRÉSCIMO EM ÍTEM NÃO PERMITIDO

182 CANCELAMENTO DESCONTO EM ÍTEM NÃO PERMITIDO

183 NÚMERO MÁXIMO DE ÍTENS ATINGIDO

184 NÚMERO DE ÍTEM NULO NÃO PERMITIDO

185 MAIS QUE DUAS ALÍQUOTAS DIFERENTES NO BILHETE DE PASSAGEM NÃO PERMITIDO

186 ACRÉSCIMO OU DESCONTO EM ITEM NÃO PERMITIDO

187 CANCELAMENTO DE ACRÉSCIMO OU DESCONTO EM ITEM NÃO PERMITIDO

188 CLICHE JÁ IMPRESSO

189 TEXTO OPCIONAL DO CHEQUE EXCEDEU O MÁXIMO PERMITIDO

190 IMPRESSÃO AUTOMÁTICA NO VERSO NÃO PERMITIDO NESTE EQUIPAMENTO

191 TIMEOUT NA INSERÇÃO DO CHEQUE

192 OVERFLOW NA CAPACIDADE DE TEXTO DO COMPROVANTE DE CRÉDITO OU DÉBITO

193 PROGRAMAÇÃO DE ESPAÇOS ENTRE CUPONS MENOR QUE O MÍNIMO PERMITIDO

194 EQUIPAMENTO NÃO POSSUI LEITOR DE CHEQUE

195 PROGRAMAÇÃO DE ALÍQUOTA COM VALOR NULO NÃO PERMITIDO

196 PARÂMETRO BAUD RATE INVÁLIDO

197 CONFIGURAÇÃO PERMITIDA SOMENTE PELA PORTA DOS FISCO

198 VALOR TOTAL DO ITEM EXCEDE 11 DÍGITOS

199 PROGRAMAÇÃO DA MOEDA COM ESPAÇOS EM BRACO NÃO PERMITIDO

200 CASAS DECIMAIS DEVEM SER PROGRAMADAS COM 2 OU 3

201 NÃO PERMITE CADASTRAR USUÁRIOS DIFERENTES NA MESMA MFD

202 IDENTIFICAÇÃO DO CONSUMIDOR NÃO PERMITIDA PARA SANGRIA OU SUPRIMENTO

203 CASAS DECIMAIS EM QUANTIDADE MAIOR DO QUE A PERMITIDA

204 CASAS DECIMAIS DO UNITÁRIO MAIOR DO QUE O PERMITIDA

205 POSIÇÃO RESERVADA PARA ICMS

206 POSIÇÃO RESERVADA PARA ISS

207 TODAS AS ALÍQUOTAS COM A MESMA VINCULAÇÃO NÃO PERMITIDO

208 DATA DE EMBARQUE ANTERIOR A DATA DE EMISSÃO

209 ALÍQUOTA DE ISS NÃO PERMITIDA SEM INSCRIÇÃO MUNICIPAL

210 RETORNO PACOTE CLICHE FORA DA SEQUÊNCIA

211 ESPAÇO PARA ARMAZENAMENTO DO CLICHE ESGOTADO

212 CLICHE GRÁFICO NÃO DISPONÍVEL PARA CONFIRMAÇÃO

213 CRC DO CLICHE GRÁFICO DIFERENTE DO INFORMADO

214 INTERVALO INVÁLIDO

215 USUÁRIO JÁ PROGRAMADO
217 DETECTADA ABERTURA DO EQUIPAMENTO

218 CANCELAMENTO DE ACRÉSCIMO/DESCONTO NÃO PERMITIDO


Bematech_FI_ImprimeClicheMFD

Imprime as linhas do cliche.

Importante

Esta função só está disponível para a versão 01.00.00, da Impressora Fiscal MFD.

Parâmetro:

Não há.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Este comando permite que as informações fixas do clichê do proprietário sejam impressas antes da definição do tipo do próximo documento a ser impresso. A utilização deste comando associado à programação previa do espaço entre cupons com valor adequado permitira ao usuário diminuir o consumo da bobina de papel.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ImprimeClicheMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_ImprimeClicheMFD();


Bematech_FI_MapaResumoMFD

Gera o relatório "Mapa Resumo" referente ao movimento do dia. As informações serão geradas no arquivo RETORNO.TXT no diretório configurado no parâmetro "path" do arquivo ini. O diretório default configurado é o diretório raiz (C:\).

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- 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:            0312

COO..................:          000026

Venda Bruta..........:           43,73

Venda Líquida........:           25,50

Cancelamentos ICMS...:           11,14

Cancelamentos ISSQN..:            0,00

Acrescimos ICMS......:            2,33

Acrescimos ISSQN.....:            0,00

Descontos ICMS.......:            7,09

Descontos ISSQN......:            0,00

Substituicao ICMS....:           23,55

Substituicao ISSQN...:            0,00

Isencao ICMS.........:            0,00

Isencao ISSQN........:            0,00

Nao incidencia ICMS..:            0,00

Nao incidencia ISSQN.:            0,00

1200.................:            0,00

1700.................:            0,00

ISS..................:            0,00

- Após a linha "Nao incidencia ISSQN" 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.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_MapaResumoMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_MapaResumoMFD();


Bematech_FI_ProgramaIdAplicativoMFD

Programa a identificação do aplicativo no cupom fiscal e comprovante não fiscal.

Importante:

- Esta função também pode ser usada para imprimir a mensagem complementar, conforme exigência do Convênio PAF-ECF.

Parâmetro:

cAplicativo: Variável string com até 84 caracteres, para identificar o nome do aplicativo.

Retornos da Função (INTEIRO):

0 - Erro de comunicação

1 - Ok

-2 - Parâmetro inválido

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta

-5 - Erro ao abrir a porta de comunicação

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3)

Observações:

- Esta função só será executada, caso o cupom fiscal esteja fechado.

- Não será necessário sua execução a cada início de dia.

- Função disponível para a impressora fiscal térmica MP-2100 TH FI.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_ProgramaIdAplicativoMFD("APPTESTE.EXE")

// Exemplo em Delphi

cAplicativo := "APPTESTE.EXE";

iRetorno := Bematech_FI_ProgramaIdAplicativoMFD( pchar( cAplicativo ) );


 Bematech_FI_RelatorioSintegraMFD

Bematech_FI_RelatorioSintegraMFD

Gera os relatórios para o Sintegra, somente da impressora fiscal térmica (MFD).

Parâmetros:

iRelatorios: variável INTEIRA com o tamanho de um byte, onde:

1: gera o relatório tipo 60M (Mestre);

2: gera o relatório tipo 60A (Analítico);

4: gera o relatório tipo 60D (Diário);

8: gera o relatório tipo 60I (Item);

16: gera o relatório tipo 60R (Resumo Mensal) e;

32: gera o relatório tipo 75.

Observação: Para gerar mais de um relatório, deve-se enviar a soma dos valores citados acima, por exemplo: Se desejar gerar os relatório tipo 60M, tipo 60A e tipo 75, a variável deve ter o valor 34.

cArquivo: STRING com o path e nome do arquivo onde o relatorio será gerado. Exemplo: "C:\SINTEGRA.TXT"

cMes: STRING com o mês, no formato MM.

cAno: STRING com o ano, no formato AAAA.

cRazaoSocial: STRING com a razão social, no tamanho de até 35 caracteres.

cEndereco: STRING com o endereço, no tamanho de até 34 caracteres.

cNumero: STRING com o número, no tamanho de até 5 caracteres.

cComplemento: STRING com o complemento, no tamanho de até 22 caracteres.

cBairro: STRING com o bairro, no tamanho de até 15 caracteres.

cCidade: STRING com a cidade, no tamanho de até 30 caracteres.

cCEP: STRING com o CEP, com o tamanho de 8 caracteres.

cTelefone: STRING com o telefone, no tamanho de até 12 caracteres.

cFax: STRING com o fax, no tamanho de até 10 caracteres.

cContato: STRING com o nome do contato, no tamanho de até 18 caracteres.

Retornos da Função (INTEIRO):

0 - Erro de comunicação.

1 - Ok.

-1 - Erro de execução da função.

-2 - Parâmetro inválido.

-4 - Arquivo ini não encontrado ou parâmetro inválido para o nome da porta.

-5 - Erro ao abrir a porta de comunicação.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observação:

- Os registro tipo 10, tipo 11 e o tipo 90, são gerados automaticamente.

- Não esqueça de registrar as dlls DAO350.dll e MSJET32.dll, e copiar as dlls BemaMFD.dll e BemaMFD2.dll para o diretório de sistema de seu Windows para que esta função seja executada com sucesso (veja o tópico "Gerando os Registros do Sintegra nas Impressoras Fiscais MFD (térmica)" para maiores informações).

- No emulador da impressora, para que a função tenha efeito, é obrigatório que a comunicação seja realizada através de um cabo serial fisicamente conectado ao micro (COM1 <-> COM2, por exemplo). A pinagem deste cabo está descrito no arquivo de ajuda do emulador.

Exemplo:

' Exemplo em Visual Basic que gera todos os relatórios do Sintegra

iRetorno = Bematech_FI_RelatorioSintegraMFD(63, "SINTEGRA.TXT", "11", "2003", "BEMATECH S/A", "Estrada de Santa Candida", "263", "Industria", "Santa Candida", "Curitiba", "82630490", "41 351-2700", "41 351-2863", "Fulano de Tal" );

// Exemplo em Delphi que gera todos os relatórios do Sintegra

cArquivo     := 'SINTEGRA.TXT';

cMes         := '11';

cAno         := '2003';

cRazaoSocial := 'BEMATECH S/A';

cEndereco    := 'Estrada de Santa Candida';

cNumero      := '263';

cComplemento := 'Industria';

cBairro      := 'Santa Candida';

cCidade      := 'Curitiba';

cCEP         := '82630490';

cTelefone    := '41 351-2700';

cFax         := '41 351-2863';

cContato     := 'Fulano de Tal';

iRetorno := Bematech_FI_RelatorioSintegraMFD( 63,

                                             pchar( cArquivo ),

                                             pchar( cMes ),

                                             pchar( cAno ),

                                             pchar( cRazaoSocial ),

                                             pchar( cEndereco ),

                                             pchar( cNumero ),

                                             pchar( cComplemento ),

                                             pchar( cBairro ),

                                             pchar( cCidade ),

                                             pchar( cCEP ),

                                             pchar( cTelefone ),

                                             pchar( cFax ),

                                             pchar( cContato ) );


Bematech_FI_RelatorioTipo60AnaliticoMFD

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" do arquivo ini. O diretório default é o diretório raiz (C:\).

Parâmetro:

Não há.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27 - Status da impressora diferente de 6,0,0,0 (Ack, St1, St2 e St3).

Observações:

- O relatório gerado terá o seguinte layout:

Tipo do relatório.........:                       60

Subtipo...................:                        A

Data de emissão...........:               12/05/2003

Número de série...........:          5708990400028

Cancelamentos.............:                    11,14

Descontos.................:                     7,09

F.........................:                    18,55

I.........................:                     0,00

N.........................:                     1,95

1200......................:                     0,00

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

- 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 essa função após a Redução Z, caso contrário as informações geradas serão referentes ao movimento do dia anterior.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RelatorioTipo60AnaliticoMFD()

// Exemplo em Delphi

iRetorno := Bematech_FI_RelatorioTipo60AnaliticoMFD();


Bematech_FI_RetornoImpressoraMFD

Lê o retorno estendido da impressora (ACK, ST1, ST2 e ST3) referente ao último comando enviado.

Parâmetros:

Variáveis INTEIRAS para receber os 4 bytes de status da impressora.

ACK

ST1

ST2

ST3

Retornos da Função (INTEIRO):

1 – Ok

-8 – Erro ao gravar o arquivo STATUS.TXT

Observações:

- Essa função deve ser usada após a execução de qualquer outra função da dll para ler o retorno da impressora referente à função executada. Essa função devolve o status da impressora (pouco papel, comando não executado, tipo de parâmetro de CMD inválido etc.).

- O ST3 só será retornado, caso seja habilita o retorno estendido na impressora.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_RetornoImpressoraMFD( ACK, ST1, ST2, ST3 )

// Exemplo em Delphi

iRetorno := Bematech_FI_RetornoImpressoraMFD( ACK, ST1, ST2, ST3 );


 Gerando os Registros da CAT-52

Gerando os Registros da CAT-52

Implementamos a função Bematech_FI_GeraRegistrosCAT52MFD que permite a geração manual e retroativa dos registros referente à portaria CAT-52.

A geração do arquivo da CAT-52 continua sendo realizada no momento da Redução Z, através da função Bematech_FI_ReducaoZ (executada pela aplicação comercial), automaticamente quando a impressora é ligada no dia seguinte ou automaticamente às 2:00 hrs da manhã quando a impressora permacer ligada, mas caso necessite gerar o arquivo do CAT-52, basta chamar esta função.

Observações:

- No modelo matricial é obrigatório informar o arquivo .rfd como parâmetro. O parâmetro data não é obrigatório e será ignorado caso seja informado. O arquivo da CAT-52 será gerado com as informações contidas no arquivo .rfd.

- No modelo térmico com MFD temos as seguintes possibilidades:

a) se não forem informados o arquivo .mfd e a data, a função fará o download da MFD da data atual e fará a geração do arquivo da CAT-52.

b) se for informado o arquivo .mfd e não for passada a data, a função retornará erro.

c) se for informada apenas a data, a função fará o download da MFD com base na data informada e fará a geração do arquivo da CAT52.

d) se forem informados o arquivo .mfd e a data, a função fará a geração do arquivo da CAT-52 com as informações contidas no arquivo .mfd na data informada.

- No emulador da impressora, para que a função tenha efeito, é obrigatório que a comunicação seja realizada através de um cabo serial fisicamente conectado ao micro (COM1 <-> COM2, por exemplo), pois é realizado o download da MFD na geração do arquivo. A pinagem deste cabo está descrito no arquivo de ajuda do emulador.

Parâmetros:

Arquivo: STRING com o nome do arquivo .mfd ou .rfd de onde os registros serão gerados. Informar o caminho completo.

Data: STRING com a data que os registros serão gerados, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1 - Erro de execucao da função.

-2: Parâmetro inválido na função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Exemplo:

' Exemplo em Visual Basic

iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\download.mfd", "30/07/2007")

ou

iRetorno = Bematech_FI_GeraRegistrosCAT52MFD("C:\BEB00007.M57.rfd", "30/07/2007")

// Exemplo em Delphi

Arquivo := 'C:\download.mfd';

Data := '30/07/2007'

iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( pchar( Arquivo ), pchar( Data ) );

ou

Arquivo := 'C:\BEB00007.M57.rfd';

Data := '30/07/2007'

iRetorno := Bematech_FI_GeraRegistrosCAT52MFD( pchar( Arquivo ), pchar( Data ) );

Importante:

Para que a função Bematech_FI_GeraRegistrosCAT52MFD possa gerar os registros da portaria CAT-52 ou Ato Cotepe 17/04, é necessário que as dlls BemaMFD.dll e BemaMFD2.dll estejam presentes em seu computador, juntamente com a BemaFI32.dll e o BemaFI32.ini previamente configurado (ver tópico "Configurando a DLL").

Copie estes arquivos para o diretório de sistema do Windows (exemplo: \WINDOWS\SYSTEM32).

Também criamos a função Bematech_FI_GeraRegistrosCat52MFDEx que possui um terceiro parâmetro, onde retorna o nome do arquivo gerado.

Os parâmetros desta função, são:

Arquivo: STRING com o nome do arquivo .mfd ou .rfd de onde os registros serão gerados. Informar o caminho completo.

Data: STRING com a data que os registros serão gerados, no formato ddmmaa, dd/mm/aa, ddmmaaaa ou dd/mm/aaaa.

ArqDestino: variável STRING com 512 bytes para retornar o path+nome do arquivo gerado.

' Exemplo em Visual Basic

cArqDestino = space(512)

iRetorno = Bematech_FI_GeraRegistrosCAT52MFDEx("C:\download.mfd", "30/07/2007", cArqDestino)

ou

cArqDestino = space(512)

iRetorno = Bematech_FI_GeraRegistrosCAT52MFDEx("C:\BEB00007.M57.rfd", "30/07/2007", cArqDestino)

// Exemplo em Delphi

Arquivo := 'C:\download.mfd';

Data := '30/07/2007'

for iConta := 1 to 512 do cArqDestino := cArqDestino + ' ';

iRetorno := Bematech_FI_GeraRegistrosCAT52MFDEx( pchar( Arquivo ), pchar( Data ), cArqDestino );

ou

Arquivo := 'C:\BEB00007.M57.rfd';

Data := '30/07/2007'

for iConta := 1 to 512 do cArqDestino := cArqDestino + ' ';

iRetorno := Bematech_FI_GeraRegistrosCAT52MFDEx( pchar( Arquivo ), pchar( Data ), cArqDestino );


Gerando os Registros do Sintegra nas Impressoras Fiscais MFD (térmica)

Através da função Bematech_FI_RelatorioSintegraMFD é possível gerar os registros:

- tipo 60M (Mestre);

- tipo 60A (Analítico);

- tipo 60D (Diário);

- tipo 60I (Item);

- tipo 60R (Resumo Mensal) e;

- tipo 75.

Os registro tipo 10, tipo 11 e o tipo 90, são gerados automaticamente.

Importante:

Para que a função Bematech_FI_RelatorioSintegraMFD possa gerar este registros com sucesso, através das impressoras fiscais MFD (somente), é necessário que as dlls BemaMFD.dll e BemaMFD2.dll estejam presentes em seu computador, juntamente com os arquivos DAO2535.tlb, DAO350.dll e MSJET32.dll.

Copie os arquivos BemaFI32.dll, BemaMFD.dll, BemaMFD2.dll, BemaFI32.ini, DAO2535.tlb, DAO350.dll e MSJET32.dll para o diretório de sistema do Windows (exemplo: \WINNT\SYSTEM32) e registre a DAO350.dll e MSJET32.dll executando o REGSVR32 /S para cada uma, respectivamente. Exemplo:

REGSVR32 /S DAO350.DLL

REGSVR32 /S MSJET35.DLL


Gerando os Registro Tipo E (Ato Cotepe 17/04)

É possível gerar os registro do Ato Copete 17/04 por intervalo de datas, a partir da função BemaGeraRegistrosTipoE da BemaMFD.dll e BemaMFD2.dll.

Uma das exigências da legislação do PAF-ECF é gerar o arquivo do Ato Cotepe 17/04 por intervalo, ou seja, de um período específico. Então, a Bematech disponibilizou uma função para realizar isso.

Importante:

· Para os modelos de impressoras fiscais MP-2000 TH FI e MP-6000 TH FI, a função BemaGeraRegistrosTipoE deve ser chamada da dll BemaMFD.

· Para os modelos de impressoras fiscais MP-2100 TH FI, MP-3000 TH FI, MP-4000 TH FI, MP-6100 TH FI ou MP-7000 TH FI, a função BemaGeraRegistrosTipoE deve ser chamada da dll BemaMFD2.

Protótipo da função:

typedef int (__stdcall *BemaGeraRegistrosTipoE) (char * szMemFileName, char * szReportFileName, char * szDataInicial, char * szDataFinal, char * szRazaoSocial, char * szEndereco, char * szModelo, char * szCmd, char * szCRZ, char * szCRO, char * szCOO, char * szGNF, char * szCCF, char * szCVC, char * szCBP, char * szGRG, char * szCMV, char * szCFD, char * szGT, char * szNECF, char * szBP);

Parâmetros:

ArqMFD: STRING com o nome + caminho do arquivo .mfd, previamente capturado da impressora. Ex: C:\Download.mfd".

ArqTXT: STRING com o nome + caminho do arquivo .txt de destino. Ex: "Cotep1704.txt".

DataInicio: STRING com a data inicial do intervalo, no formato "DDMMAAAA"

DataFim: STRING com a data final do intervalo, no formato "DDMMAAAA"

RazaoSocial: STRING com a razão social do contribuinte.

Endereco: STRING com o endereço do contribuinte.

Par1: STRING nula.

CMD: STRING com o comando de geração dos registros, fixo em "2".

Par2: STRING nula.

Par3: STRING nula.

Par4: STRING nula.

Par5: STRING nula.

Par6: STRING nula.

Par7: STRING nula.

Par8: STRING nula.

Par9: STRING nula.

Par10: STRING nula.

Par11: STRING nula.

Par12: STRING nula.

Par13: STRING nula.

Par14: STRING nula.

Declaração em VB:

Public Declare Function BemaGeraRegistrosTipoE Lib "BEMAMFD2.DLL" (ByVal cArqMFD As String, ByVal cArqTXT As String, ByVal cDataInicial As String, ByVal cDataFim As String, ByVal cRazao As String, ByVal cEndereco As String, ByVal cPAR1 As String, ByVal cCMD As String, ByVal cPAR2 As String, ByVal cPAR3 As String, ByVal cPAR4 As String, ByVal cPAR5 As String, ByVal cPAR6 As String, ByVal cPAR7 As String, ByVal cPAR8 As String, ByVal cPAR9 As String, ByVal cPAR10 As String, ByVal cPAR11 As String, ByVal cPAR12 As String, ByVal cPAR13 As String, ByVal cPAR14 As String) As Integer

ou

Public Declare Function BemaGeraRegistrosTipoE Lib "BEMAMFD.DLL" (ByVal cArqMFD As String, ByVal cArqTXT As String, ByVal cDataInicial As String, ByVal cDataFim As String, ByVal cRazao As String, ByVal cEndereco As String, ByVal cPAR1 As String, ByVal cCMD As String, ByVal cPAR2 As String, ByVal cPAR3 As String, ByVal cPAR4 As String, ByVal cPAR5 As String, ByVal cPAR6 As String, ByVal cPAR7 As String, ByVal cPAR8 As String, ByVal cPAR9 As String, ByVal cPAR10 As String, ByVal cPAR11 As String, ByVal cPAR12 As String, ByVal cPAR13 As String, ByVal cPAR14 As String) As Integer

Declaração em Delphi:

function BemaGeraRegistrosTipoE( cArqMFD: string; cArqTXT: string; cDataInicial: string; cDataFinal: string; cRazao: string; cEndereco: string; cPAR1: string; cCMD: string; cPAR2: string; cPAR3: string; cPAR4: string; cPAR5: string; cPAR6: string; cPAR7: string; cPAR8: string; cPAR9: string; cPAR10: string; cPAR11: string; cPAR12: string; cPAR13: string; cPAR14: string ): Integer; StdCall; External 'BemaMFD2.dll';

ou

function BemaGeraRegistrosTipoE( cArqMFD: string; cArqTXT: string; cDataInicial: string; cDataFinal: string; cRazao: string; cEndereco: string; cPAR1: string; cCMD: string; cPAR2: string; cPAR3: string; cPAR4: string; cPAR5: string; cPAR6: string; cPAR7: string; cPAR8: string; cPAR9: string; cPAR10: string; cPAR11: string; cPAR12: string; cPAR13: string; cPAR14: string ): Integer; StdCall; External 'BemaMFD.dll';

Exemplos:

' em Visual Basic

cArqMFD = "Downlaod.mfd"

cArqTXT = "Cotep1704.txt"

cRazao = "Bematech S/A"

cEndereco = "Rua ABCDEF, 1234"

cCMD = "2"

cDataIni = "01062009" ' DDMMAAAA

cDataFim = "30062009" ' DDMMAAAA

iRetorno = BemaGeraRegistrosTipoE(cArqMFD, cArqTXT, cDataIni, cDataFim, cRazao, cEndereco, "", cCMD, "", "", "", "", "", "", "", "", "", "", "", "", "")

// em Delphi

cArqMFD   := 'Download.mfd';

cArqTXT   := 'Cotep1704.txt';

cRazao    := 'Bematech S/A';

cEndereco := 'Rua ABCDEF, 1234';

cCMD      := '2';

cDataIni  := 01062009; // DDMMAAAA

cDataFim  := 30062009; // DDMMAAAA

iRetorno := BemaGeraRegistrosTipoE(pchar(cArqMFD), pchar(cArqTXT), pchar(cDataIni), pchar(cDataFim), pchar(cRazao), pchar(cEndereco), '', pchar(cCMD), '', '', '', '', '', '', '', '', '', '', '', '', '');


Linguagem de Programação JAVA

Com o objetivo de integrar as impressoras fiscais Bematech com aplicações de automação comercial, desenvolvidas na linguagem de programação Java, compatibilizamos nossa dll BemaFI32 para que seja possível acessá-la através de métodos nativos do Java, utilizando JNI (Java Native Interface).

O JNI permite que um código escrito em Java utilize a implementação de uma biblioteca escrita em C/C++, assembly ou outras linguagens de programação. Além disso, ele serve para interagir entre programas Java e outros programas escritos em linguagens diferentes. A figura abaixo demonstra isso:

Existe um pacote chamado Bematech.jar, o qual contém todas as classes utilizadas para realizar as operações com as impressoras fiscais. Mas, para poder utilizá-lo, é necessário possuir instalado o J2SDK versão 1.4 ou superior e, alem disso, as variáveis de ambiente path, classpath e java_home configuradas corretamente.

· Configurando as variáveis path, classpath e java_home

Para configurar as variáveis, proceda da seguinte forma:

1) Clique com o botão direito em "Meu Computador" e escolha "Propriedades";

2) Clique na aba "Avançado" e no botão "Variáveis de Ambiente";

3) Nas variáveis de usuário, procure a variável chamada path, se não existir crie-a, definindo path como seu nome e o diretório onde estão os arquivos binários do java, por exemplo:

Nome da variável: path

Valor da variável: C:\Arquivos de programas\Java\jre1.5.0_05\bin

4) Procure a variável JAVA_HOME. Caso ela não exista, crie-a, atribuindo-lhe como valor o local onde o JRE está instalado, por exemplo:

Valor da variável: C:\Arquivos de programas\Java\jre1.5.0_05

5) A variável CLASSPATH deve ser configurada com o seguinte valor:

Valor da variável: .;JAVA_HOME

· Entendendo os métodos da classe Bematech

A utilização dos métodos nativos que acessam as funções da BemaFI32.dll é feita da seguinte forma:

1) Adicionar no projeto Java o arquivo Bematech.jar, do pacote da BemaFI32.dll disponível no site.

2) Adicionar a seguinte linha de código à classe do projeto:

import bemajava.*;

Observação:

- No pacote Bematech.jar existem duas classes para tratamento de retornos da impressora. Uma para tratar os retornos tipo Integer e outra para String. Estas classes são:

BemaInteger

BemaString

- A classe BemaInteger armazena um valor inteiro e a classe BemaString armazena uma string de caracteres. Elas servem para ser passadas como parâmetro nos métodos que retornam informações da impressora, por exemplo o método Bematech.NumeroCupom:

BemaString numerocupom;

numerocupom = new BemaString();

Bematech.NumeroCupom( numerocupom );

System.out.println( "Número do Cupom: " + numerocupom.getBuffer() );

- Os nomes dos atributos (buffer e number) não podem ser modificados.

Exemplo:

import bemajava.*;

class TesteBematech

{

  public static void main(String[] args)

  {

     int iRetorno;

     BemaInteger ACK, ST1, ST2, ST3;

     ACK = new BemaInteger();

     ST1 = new BemaInteger();

     ST2 = new BemaInteger();

     ST3 = new BemaInteger();

     // Habilitando o retorno estendido da impressora MFD

     iRetorno = Bematech.HabilitaDesabilitaRetornoEstendidoMFD( "1" );

     // Emitindo uma Leitura X

     iRetorno = Bematech.LeituraX();

     System.out.println( "Retorno: " + iRetorno );

     // Pegando o retorno da impressora MFD

     iRetorno = Bematech.RetornoImpressoraMFD( ACK, ST1, ST2, ST3 );

     String retorno = "ACK: " + ACK.number

     retorno += "\nST1: " + ST1.number

     retorno += "\nST2: " + ST2.number

     retorno += "\nST3: " + ST3.number;

     System.out.println( "Retorno Impressora MFD: \n" + retorno );

  }

}


Conceito

IMPORTANTE

O Bematech Monitor só está disponível na versão 3.0 da BemaFI32.dll ou superior.

A Bematech desenvolveu em sua DLL BEMAFI32, opções de acesso remoto à sua impressora fiscal, utilizando o conceito "Client/Server" (baseado na lógica do Windows Terminal Server e do Citrix Metaframe).

A sua aplicação ficará instalada no servidor e os terminais (Cliente), com as suas respectivas impressoras, faram acesso à impressora através da aplicação executada a partir do servidor.

A aplicação, rodando nos terminais (Cliente), utilizará as funções normais da BemaFI32.dll. No servidor, o arquivo BemaFI32.ini, estará habilitado para trabalhar em rede e configurado para receber os arquivos de comandos, criados pela DLL, através da chave PATH.

Nos terminais (Cliente), o arquivo BemaFI32.ini estará configurado com o PATH (origem do mapeamento do servidor) e com as chaves de STATUS e RETORNO habilitados, para a criação de arquivos.


Configuração do BemaFI32.ini para o Bematech MONITOR

No servidor (Server):

O arquivo BemaFI32.dll e o arquivo BemaFI32.ini deverão estar presentes. Ambos, no diretório de sistema do Windows.

Configuração da seção Sistema, do arquivo BemaFI32.ini, para o servidor:

[Sistema]

Porta=DEFAULT

Path=X:\

Status=0

Retorno=0

StatusFuncao=0

ControlePorta=1

ModeloImp=BEMATECH

ConfigRede=1

Log=0

.

.

.

- A chave Path, deve ser configurada com a unidade dos terminais (Cliente), mapeada pelo servidor. Exemplo: Path=X:\

- A chave ConfigRede, deve estar configurada para 1 (um), indicando que a sua utilização será realizada pelo servidor.

No terminal (Client):

O arquivo BemaFI32.dll e o arquivo BemaFI32.ini deverão estar presentes. Ambos, no diretório de sistema do Windows.

Configuração da seção Sistema, do arquivo BemaFI32.ini, para o terminal (Cliente):

[Sistema]

Porta=DEFAULT

Path=C:\REDE

Status=1

Retorno=1

StatusFuncao=0

ControlePorta=1

ModeloImp=BEMATECH

ConfigRede=2

Log=0

.

.

.

- A chave Path, deve ser configurada com o caminho compartilhado, para o servidor. Exemplo: Path=C:\REDE

- A chave Status, deve ser habilitada para que a DLL crie o arquivo STATUS.TXT.

- A chave Retorno, deve ser habilitada para que a DLL crie o arquivo RETORNO.TXT.

- A chave ConfigRede, deve estar configurada para 2 (dois), indicando que a sua utilização será realizada pelo terminal (Cliente).

IMPORTANTE

Para utilizar a DLL em modo não remoto, instalada sem o uso da rede

(Windows Terminal Server ou Citrix Metaframe),

a chave ConfigRede dever estar configurada para 0 (zero). Exemplo: ConfigRede=0.


Como utilizar o executável Bematech MONITOR

A aplicação usará as funções da BemaFI32.dll, normalmente (conforme é mostrado no tópico "Funções da DLL").

IMPORTANTE

Após a execução de qualquer função da DLL, é necessário utilizar a função Bematech_FI_RetornoImpressora( iACK, iST1, iST2 ), para verifcar o retorno da função executada. Se a função não foi executada corretamente, o retorno será ACK=0, ST1=0 e ST2=0. Isto significa que houve algum erro, como por exemplo: Parâmetro Inválido, Erro de Comunicação, etc.

Para as funções que solicitam informação da impressora, por exemplo: Número do Cupom, Número do Caixa, Retorno de Alíquotas, etc. O procedimento é o seguinte:

- Executar a função que retorna a informação da impressora, exemplo: Bematech_FI_NumeroCupom( sRetorno ).

- Executar a função que retorna o status da impressora: Bematech_FI_RetornoImpressora( iACK, iST1, iST2 ). Verificar se o retorno foi OK.

- Executar a função que retornará para a aplicação a informação solicitada: Bematech_FI_LeArquivoRetorno( sRetorno ). Onde, sRetorno é a variável inicializada com o tamanho do retorno, que armazenará a informação solicitada.

Nos terminais (Cliente), deverá ser executado o aplicativo "BematechMonitor.exe".

Observação: Este aplicativo aparecerá no relógio do Windows (barra de tarefas), aguardando a sua execução.

Para abrir a janela do Bematech Monitor, basta dar um duplo-clique sobre o seu ícone ou clicar com o botão direito do mouse e escolher a opção desejada.

Ao dar um duplo-clique, aparecerá a tela:

Configuração do Bematech Monitor

Para configurar o Bematech Monitor, clique na opção "Configurações". Aparecerá a seguinte tela:

Onde:

- Executar quando o WINDOWS for iniciado: Ao selecionar esta opção, o Bematech Monitor será executado toda a vez que o Windows iniciar.

- Start automático ao executar o driver: Quando o Bematech Monitor for executado, o processo de monitoramente será iniciado.

- Gerar Arquivo de Log: Ao selecionar esta opção, o Bematech MONITOR criará um arquivo de log contendo informações sobre a troca de arquivos entre sua aplicação. O nome do arquivo de log será BematechMONITOR.log e será criado no mesmo diretório configurado nesta tela.

- Diretório onde se encontra o arquivo BEMAFI32.CMD: Nesta linha deverá ser inserido o diretório (caminho) mapeado para o Servidor. Clique no botão botaoLocalizar , para localizar este diretório.

- Porta de comunicação: Deverá ser selecionada a porta de comunicação onde a impressora está conectada.

- Modo de execução: Você poderá escolher entre exibir o Bematech Monitor ao lado do relógio do Windows ou em forma de janela.

Você poderá testar a comunincação com a impressora clicando na opção "Testar Impressora". O Bematech Monitor irá retornar algumas informações, caso a comunicação esteja OK.

Para iniciar o monitoramente, basta clicar na opção "start". Para parar o monitoramente, basta clicar na opção "stop".


Como Utilizar

É possível, através de linguagens de programação 16 bits, linguagens de programação que possuem dificuldades em declarar e usar DLLs ou em aplicações MS-DOS, utilizar a DLL BemaFI32.dll e acessar a impressora fiscal normalmente.

Este recurso é controlado por um aplicativo chamado "BematechMonitor.exe" que tem como objetivo, ficar monitorando um diretório do computador a procura de arquivos e enviá-los para a impressora, através das funções da BemaFI32.dll.

A linguagem de programação deverá criar o arquivo "BemaFI32.cmd", com o código do comando que deseja executar e salvar este arquivo no diretório, onde o Bematech Monitor estará monitorando (este diretório é configurado no Bematech Monitor).

Após a execução do comando recebido pelo Bematech Monitor, será criado o arquivo "STATUS.TXT" com o status de execução da impressora e o arquivo "RETORNO.TXT" com informações da impressora, caso seja solicitado.

Observação: O arquivo "RETORNO.TXT" só será criado, caso tenha sido enviado um comando de solicitação de informação da impressora, como por exemplo: Número do Cupom, Alíquotas programadas, Número de Série e etc.

Os arquivos que compõem o pacote do Bematech Monitor, são:

- BemaFI32.dll (dll de comunicação)

- BemaFI32.ini (arquivo de configuração da dll)

- BematechMonitor.exe (executável de comunicação)

Onde:

- Os arquivos BemaFI32.dll e BemaFI32.ini devem ser salvos no diretório de sistema do Windows, exemplo: "C:\Windows\System" ou "C:\WinNT\System32".

- O arquivo BematechMonitor.exe pode ser salvo, juntamente com a aplicação.


Como Configurar

Após executar o BematechMonitor.exe, o mesmo será exibido ao lado do relógio do Windows.

Dando um duplo clique sobre o seu ícone, será exibida a tela:

Clique em "Configurações" para a configuração do Bematech Monitor.

Nesta tela, deverá ser configurado:

- Diretório onde o arquivo BemaFI32.cmd será salvo pela linguagem de programação;

- Porta de comunicação, onde a impressora fiscal estará conectada e;

e os opcionais:

- Executar quando o WINDOWS for iniciado;

- Start automático ao executar o driver e;

- Modo de execução.

Importante:

Além destas configurações, a DLL BemaFI32.dll deve estar preparada para trabalhar com o Bematech Monitor. Para isso, abra o arquivo BemaFI32.ini (arquivo de configuração da dll) e configure:

- A chave "Porta" com o nome da porta serial, onde a impressora está conectada.

- A chave "Path" com o diretório onde serão gravados os arquivo "STATUS.TXT" e "RETORNO.TXT";

- A chave "Status" para 1 (um) e;

- A chave "Retorno" para 1 (um).

Exemplo:

[Sistema]

Porta=COM1

Path=C:\REDE\

Status=1

Retorno=1

StatusFuncao=0

ControlePorta=1

ModeloImp=BEMATECH

ConfigRede=0

ModoGaveta=0

Log=0

Após estas configurações, o Bematech Monitor estará pronto para iniciar o monitoramento e receber o arquivo BemaFI32.cmd com o comando a ser executado. Para isso, clique na opção "start".


Tabela de Código dos Comandos

Cada comando executado na impressora fiscal, possui um código que deve ser gravado no arquivos BemaFI32.cmd (conforme explicado anteriormente).

Observação: Alguns comandos possuem parâmetros. Cada um destes parâmetros, devem ser separados pelo símbolo "|" (pipe). Os comandos que não possuírem parâmetros, deve-se apenas finalizar com o "|" (pipe).

Os códigos destes comandos, são:

- para Comandos de Inicialização

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
006 | Bematech_FI_AlteraSimboloMoeda | 006| R|
025 | Bematech_FI_EspacoEntreLinhas | 025|008|
033 | Bematech_FI_ForcaImpactoAgulhas | 033|2|
047 | Bematech_FI_LinhasEntreCupons | 047|001|
053 | Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms | 053|15|Rec. Prestacao|
063 | Bematech_FI_ProgramaAliquota | 063|1700|0|
064 | Bematech_FI_ProgramaArredondamento | 064|
066 | Bematech_FI_ProgramaHorarioVerao | 066|
069 | Bematech_FI_ProgramaTruncamento | 069|

- para Comandos de Cupom Fiscal

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
003 | Bematech_FI_AbreCupom | 003|
007 | Bematech_FI_AumentaDescricaoItem | 007|Produto 123/776 - 001 abc|
009 | Bematech_FI_CancelaCupom | 009|
011 | Bematech_FI_CancelaItemAnterior | 011|
012 | Bematech_FI_CancelaItemGenerico | 012|005|
023 | Bematech_FI_EfetuaFormaPagamento | 023|Dinheiro|25,00|
024 | Bematech_FI_EfetuaFormaPagamentoDescricaoForma | 024|Cheque|50,00|Bom p/ 30 dias|
026 | Bematech_FI_EstornoFormasPagamento | 026|Dinheiro|Contra-Vale|30,00|
028 | Bematech_FI_FechaCupom | 028|Dinheiro|A|$|0000|35,00|Obrigado, volte sempre !!!|
029 | Bematech_FI_FechaCupomResumido | 029|Dinheiro|Obrigado, volte sempre !!!|
040 | Bematech_FI_IniciaFechamentoCupom | 040|D|%|10,00|
082 | Bematech_FI_TerminaFechamentoCupom | 082|Obrigado, volte sempre !!!|
085 | Bematech_FI_UsaUnidadeMedida | 085|Kg|
089 | Bematech_FI_VendeItem | 089|123|Caneta|1200|I|10|2|0,25|%|0000|
090 | Bematech_FI_VendeItemDepartamento | 090|123|Caneta|1200|0,100|1,000|0|0|03|UN|
260 | Bematech_FI_EfetuaFormaPagamentoIndice | 260|01|100,00|
281 | Bematech_FI_EfetuaFormaPagamentoIndiceDescricaoForma | 281|01|00000000000100|DescriçãoOpcional|

- para Comandos de Operações Não Fiscais

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
002 | Bematech_FI_AbreComprovanteNaoFiscalVinculado | 002|Cartao|||
027 | Bematech_FI_FechaComprovanteNaoFiscalVinculado | 027|
031 | Bematech_FI_FechaRelatorioGerencial | 031|
070 | Bematech_FI_RecebimentoNaoFiscal | 070|05|30,00|Dinheiro|
072 | Bematech_FI_RelatorioGerencial | 072|Digite o texto a ser impresso aqui !!!|
078 | Bematech_FI_Sangria | 078|50,00|
081 | Bematech_FI_Suprimento | 081|100,00|Dinheiro|
084 | Bematech_FI_UsaComprovanteNaoFiscalVinculado | 084|Digite o texto a ser impresso aqui !!!|

- para Comandos de Relatórios Fiscais

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
045 | Bematech_FI_LeituraX | 045|
046 | Bematech_FI_LeituraXSerial | 046|
041 | Bematech_FI_LeituraMemoriaFiscalData | 041|01/01/2002|05/01/2001|
042 | Bematech_FI_LeituraMemoriaFiscalReducao | 042|0100|0250|
043 | Bematech_FI_LeituraMemoriaFiscalSerialData | 043|01/01/2002|05/01/2001|
044 | Bematech_FI_LeituraMemoriaFiscalSerialReducao | 044|0100|0250|
071 | Bematech_FI_ReducaoZ | 071|
238 | Bematech_FI_FechaRelatorioXouZ | 238|

- para Comandos de Autenticação e Gaveta de Dinheiro

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
004 | Bematech_FI_AcionaGaveta | 004|
008 | Bematech_FI_Autenticacao | 008|
065 | Bematech_FI_ProgramaCaracterAutenticacao | 065|001,002,004,008,016,032,064,128,064,032,016,008,004,002,129,129,129,129|
094 | Bematech_FI_VerificaEstadoGaveta | 094|

- para Comandos de Informações da Impressora

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
005 | Bematech_FI_Acrescimos | 005|
013 | Bematech_FI_Cancelamentos | 013|
014 | Bematech_FI_CGC_IE | 014|
015 | Bematech_FI_ClicheProprietario | 015|
017 | Bematech_FI_ContadoresTotalizadoresNaoFiscais | 017|
018 | Bematech_FI_DadosUltimaReducao | 018|
019 | Bematech_FI_DataHoraImpressora | 019|
020 | Bematech_FI_DataHoraReducao | 020|
021 | Bematech_FI_DataMovimento | 021|
022 | Bematech_FI_Descontos | 022|
032 | Bematech_FI_FlagsFiscais | 032|
034 | Bematech_FI_GrandeTotal | 034|
050 | Bematech_FI_MinutosImprimindo | 050|
049 | Bematech_FI_MinutosLigada | 049|
051 | Bematech_FI_MonitoramentoPapel | 051|
054 | Bematech_FI_NumeroCaixa | 054|
055 | Bematech_FI_NumeroCupom | 055|
056 | Bematech_FI_NumeroCuponsCancelados | 056|
057 | Bematech_FI_NumeroIntervencoes | 057|
058 | Bematech_FI_NumeroLoja | 058|
059 | Bematech_FI_NumeroOperacoesNaoFiscais | 059|
060 | Bematech_FI_NumeroReducoes | 060|
061 | Bematech_FI_NumeroSerie | 061|
062 | Bematech_FI_NumeroSubstituicoesProprietario | 062|
076 | Bematech_FI_RetornoAliquotas | 076|
079 | Bematech_FI_SimboloMoeda | 079|
080 | Bematech_FI_SubTotal | 080|
083 | Bematech_FI_UltimoItemVendido | 083|
086 | Bematech_FI_ValorFormaPagamento | 086|Dinheiro|
088 | Bematech_FI_ValorPagoUltimoCupom | 088|
087 | Bematech_FI_ValorTotalizadorNaoFiscal | 087|Conta de Luz|
091 | Bematech_FI_VerificaAliquotasIss | 091|
093 | Bematech_FI_VerificaDepartamentos | 093|
092 | Bematech_FI_VerificaEpromConectada | 092|
095 | Bematech_FI_VerificaEstadoImpressora | 095|
096 | Bematech_FI_VerificaFormasPagamento | 096|
098 | Bematech_FI_VerificaIndiceAliquotasIss | 098|
099 | Bematech_FI_VerificaModoOperacao | 099|
100 | Bematech_FI_VerificaRecebimentoNaoFiscal | 100|
102 | Bematech_FI_VerificaTipoImpressora | 102|
103 | Bematech_FI_VerificaTotalizadoresNaoFiscais | 103|
104 | Bematech_FI_VerificaTotalizadoresParciais | 104|
105 | Bematech_FI_VerificaTruncamento | 105|
106 | Bematech_FI_VersaoFirmware | 106|
262 | Bematech_FI_FlagsVinculacaoIss | 262|
263 | Bematech_FI_VerificaReducaoZAutomatica | 263|
266 | Bematech_FI_ModeloImpressora | 266|
279 | Bematech_FI_NumeroSerieCriptografado | 279|
280 | Bematech_FI_NumeroSerieDescriptografado | 280|<número de série criptografado pelo comando 279>|

- para Comandos de Impressão de Cheques

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
010 | Bematech_FI_CancelaImpressaoCheque | 010|
035 | Bematech_FI_ImprimeCheque | 035|353|50,00|André|Curitiba|10/01/02|Bom p/ 30 dias|
037 | Bematech_FI_ImprimeCopiaCheque | 037|
039 | Bematech_FI_IncluiCidadeFavorecido | 039|Londrina|José|
067 | Bematech_FI_ProgramaMoedaPlural | 067|Reais|
068 | Bematech_FI_ProgramaMoedaSingular | 068|Real|
101 | Bematech_FI_VerificaStatusCheque | 101|

- para Comandos da Impressora Fiscal Restaurante

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
164 | Bematech_FIR_AbreConferenciaMesa | 164|0001|
165 | Bematech_FIR_AbreCupomRestaurante | 165|0001|
166 | Bematech_FIR_CancelaVenda | 166|0001|123-ABC|Coca-Cola|17,00|3|1,00|A|0|
169 | Bematech_FIR_CardapioPelaSerial | 169|
167 | Bematech_FIR_ConferenciaMesa | 167|0001|A|%|1000|
168 | Bematech_FIR_ContaDividida | 168|3|10,00;10,00;10,00||
170 | Bematech_FIR_FechaConferenciaMesa | 170|A|%|1000|
171 | Bematech_FIR_FechaCupomContaDividida | 171|3|A|%|1000|Dinheiro;Dinheiro;Cheque|10,00;10,00;10,00|10,00;10,00;10,00||
172 | Bematech_FIR_FechaCupomRestaurante | 172|Dinheiro|A|$|0000|35,00|Obrigado, volte sempre !!!|
173 | Bematech_FIR_FechaCupomResumidoRestaurante | 173|Cheque|Obrigado, volte sempre !!!|
174 | Bematech_FIR_ImprimeCardapio | 174|
175 | Bematech_FIR_RegistraVenda | 175|0001|123-ABC|Coca-Cola|17,00|3|1,00|A|0|
176 | Bematech_FIR_RegistroVendaSerial | 176|0001|
177 | Bematech_FIR_RelatorioMesasAbertas | 177|1|
178 | Bematech_FIR_RelatorioMesasAbertasSerial | 178|
179 | Bematech_FIR_TransferenciaItem | 179|0001|123-ABC|Coca-Cola|17,00|1|1,00|A|0|0003|
180 | Bematech_FIR_TransferenciaMesa | 180|0001|0005|
181 | Bematech_FIR_VerificaMemoriaLivre | 181|

- para Comandos de TEF

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
198 | Bematech_FI_IniciaModoTEF | 198|
200 | Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF | 200|Digite o texto a ser impresso aqui !!!|
201 | Bematech_FI_RelatorioGerencialTEF | 201|Digite o texto a ser impresso aqui !!!|
199 | Bematech_FI_FinalizaModoTEF | 199|

- para outros Comandos da Impressora

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
001 | Bematech_FI_AberturaDoDia | 001|50,00|Dinheiro|
030 | Bematech_FI_FechamentoDoDia | 030|
036 | Bematech_FI_ImprimeConfiguracoesImpressora | 036|
038 | Bematech_FI_ImprimeDepartamentos | 038|
048 | Bematech_FI_MapaResumo | 048|
073 | Bematech_FI_RelatorioTipo60Analitico | 073|
074 | Bematech_FI_RelatorioTipo60Mestre | 074|
075 | Bematech_FI_ResetaImpressora | 075|
077 | Bematech_FI_RetornoImpressora | 077|
097 | Bematech_FI_VerificaImpressoraLigada | 097|
195 | Bematech_FI_DadosSintegra | 195|01/12/04|01/12/04|
197 | Bematech_FI_RegistrosTipo60 | 197|

- para Comandos da Impressora Fiscal Bilhete de Passagem

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
107 | Bematech_FI_AbreBilhetePassagem | 107|1|1|CTBA|SP|Leito|123|Carlos|Itapemirim|11/01/02|23:30:00|15|D10|
016 | Bematech_FI_ContadorBilhetePassagem | 016|

- para Comandos da Impressora Fiscal MFD (térmica), MP-25 FI ou MP-50 FI

Código | Função que será executada na Impressora | Exemplo de conteúdo do arquivo BEMAFI32.CMD
108 | Bematech_FI_AbreBilhetePassagemMFD | 108|Curitiba|São Paulo|Curitiba/São Paulo - Leito|Itapemirim|22/04/02|11:30:00|1|5.021.659-66|José da Silva|Rua sem Fim, 1000|PR|
109 | Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD | 109|Cartao|50,00|000165|5.930.015-7|Carlos Gomes|R. ABC, 1000|
110 | Bematech_FI_AbreCupomMFD | 110|10.123.154-98|José da Silva|R. Sem Fim, 1000|
111 | Bematech_FI_AbreRecebimentoNaoFiscalMFD | 111|5.966.011-4|José da Silva|Rua XYZ, 5|
112 | Bematech_FI_AbreRelatorioGerencialMFD | 112|05|
113 | Bematech_FI_AcrescimoDescontoItemMFD | 113|005|D|$|1000|
114 | Bematech_FI_AutenticacaoMFD | 114|5|Autenticação Mecânica !!!|
115 | Bematech_FI_CancelaCupomMFD | 115|10.123.154-98|Carlos da Silva|R. XXXYYYZZZ, 1|
116 | Bematech_FI_CancelaRecebimentoNaoFiscalMFD | 116|5.922.012-5|José da Silva|R. XYZ, 1000|
117 | Bematech_FI_ComprovantesNaoFiscaisNaoEmitidosMFD | 117|
118 | Bematech_FI_CNPJMFD | 118|
119 | Bematech_FI_ContadorComprovantesCreditoMFD | 119|
120 | Bematech_FI_ContadorCupomFiscalMFD | 120|
124 | Bematech_FI_ContadoresTotalizadoresNaoFiscaisMFD | 124|
121 | Bematech_FI_ContadorFitaDetalheMFD | 121|
122 | Bematech_FI_ContadorOperacoesNaoFiscaisCanceladasMFD | 122|
123 | Bematech_FI_ContadorRelatoriosGerenciaisMFD | 123|
125 | Bematech_FI_CupomAdicionalMFD | 125|
126 | Bematech_FI_DadosUltimaReducaoMFD | 126|
127 | Bematech_FI_EfetuaFormaPagamentoMFD | 127|Cartao|50,00|2|Compra parcelada|
128 | Bematech_FI_EfetuaRecebimentoNaoFiscalMFD | 128|03|35,00|
129 | Bematech_FI_EstornoNaoFiscalVinculadoMFD | 129|3.879.154-02|Carlos de Souza|Rua da Esquina,222|
130 | Bematech_FI_FechaRecebimentoNaoFiscalMFD | 130|Obrigado, volte sempre !!!|
131 | Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD | 131|1|
132 | Bematech_FI_ImprimeChequeMFD | 132|001|50,00|José da Silva|Curitiba|18/04/02||0|0|
133 | Bematech_FI_IniciaFechamentoCupomMFD | 133|X|%|1200|1000|
134 | Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD | 134|X|%|1200|1000|
135 | Bematech_FI_InscricaoEstadualMFD | 135|
136 | Bematech_FI_InscricaoMunicipalMFD | 136|
137 | Bematech_FI_LeituraChequeMFD | 137|
138 | Bematech_FI_LeituraMemoriaFiscalDataMFD | 138|01/04/02|15/04/02|c|
139 | Bematech_FI_LeituraMemoriaFiscalReducaoMFD | 139|0010|0015|c|
140 | Bematech_FI_LeituraMemoriaFiscalSerialDataMFD | 140|01/12/04|15/12/04|c|
141 | Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD | 141|0001|0010|c|
142 | Bematech_FI_MapaResumoMFD | 142|
143 | Bematech_FI_MarcaModeloTipoImpressoraMFD | 143|
144 | Bematech_FI_MinutosEmitindoDocumentosFiscaisMFD | 144|
145 | Bematech_FI_NomeiaRelatorioGerencialMFD | 145|02|Troca Operador|
146 | Bematech_FI_NumeroSerieMFD | 146|
147 | Bematech_FI_NumeroSerieMFDMFD | 147|
148 | Bematech_FI_ProgramaFormaPagamentoMFD | 148|Cartao|1|
149 | Bematech_FI_ReducoesRestantesMFD | 149|
150 | Bematech_FI_ReimpressaoNaoFiscalVinculadoMFD | 150|
151 | Bematech_FI_RelatorioTipo60AnaliticoMFD | 151|
152 | Bematech_FI_RetornoImpressoraMFD | 152|
153 | Bematech_FI_SegundaViaNaoFiscalVinculadoMFD | 153|
154 | Bematech_FI_TempoOperacionalMFD | 154|
155 | Bematech_FI_UsaRelatorioGerencialMFD | 155|Entre com o texto aqui !!!|
156 | Bematech_FI_ValorFormaPagamentoMFD | 156|Dinheiro|cVarRetorno|
157 | Bematech_FI_ValorTotalizadorNaoFiscalMFD | 157|Rec. Prestacao|cVarRetorno|
158 | Bematech_FI_VerificaFormasPagamentoMFD | 158|
159 | Bematech_FI_VerificaRecebimentoNaoFiscalMFD | 159|
160 | Bematech_FI_VerificaRelatorioGerencialMFD | 160|
196 | Bematech_FI_RelatorioSintegraMFD | 196|63|SINTEGRA.TXT|11|2003|BEMATECH S/A|Estrada de Santa Candida|263|Industria|Santa Candida|Curitiba|82630490|41 351-2700|41 351-2863|Fulano de Tal|
202 | Bematech_FI_UsaRelatorioGerencialMFDTEF | 202|Entre com o texto aqui !!!|
203 | Bematech_FI_CancelaItemNaoFiscalMFD | 203|005|
204 | Bematech_FI_AcrescimoItemNaoFiscalMFD | 204|005|A|%|10,00|
205 | Bematech_FI_CancelaAcrescimoNaoFiscalMFD | 205|005|A|
206 | Bematech_FI_ImprimeClicheMFD | 206|
207 | Bematech_FI_ImprimeInformacaoChequeMFD | 207|1|2|Teste de Impressão no Verso do Cheque|
208 | Bematech_FI_CancelaAcrescimoDescontoItemMFD | 208|D|005|
210 | Bematech_FI_AcrescimoDescontoSubtotalMFD | 210|A|%|10,00|
212 | Bematech_FI_TotalizaCupomMFD | 212|
216 | Bematech_FI_TotalizaRecebimentoMFD | 216|
235 | Bematech_FI_TerminaFechamentoCupomCodigoBarrasMFD | 235|Obrigado, volte sempre !!!|EAN13|123456789012|100|1|3|0|5|4|5|
239 | Bematech_FI_VerificaEstadoImpressoraMFD | 239|
242 | Bematech_FI_DownloadMFD | 242|DOWNLOAD.MFD|2|000001|000010|1|
243 | Bematech_FI_DownloadMF | 243|DOWNLOAD.MF|

244 | Bematech_FI_FormatoDadosMFD | 244|DOWNLOAD.MFD|SAIDA.MDB|2|2|000001|000010|1|
245 | Bematech_FI_SubTotalComprovanteNaoFiscalMFD | 245|
246 | Bematech_FI_DataMovimentoUltimaReducaoMFD | 246|
247 | Bematech_FI_GrandeTotalUltimaReducaoMFD | 247|
248 | Bematech_FI_UFProprietarioMFD | 248|
249 | Bematech_FI_GeraRelatorioSintegraMFD | 249|63|DOWNLOAD.MFD|SINTEGRA.TXT|11|2003|BEMATECH S/A|Estrada de Santa Candida|263|Industria|Santa Candida|Curitiba|82630490|41 351-2700|41 351-2863|Fulano de Tal|
250 | Bematech_FI_TempoRestanteComprovanteMFD | 250|
251 | Bematech_FI_InicioFimCOOsMFD | 251|
252 | Bematech_FI_StatusEstendidoMFD | 252|
253 | Bematech_FI_AtivaDesativaTratamentoONOFFLineMFD | 253|1|
254 | Bematech_FI_AtivaDesativaCorteProximoMFD | 254|1|
255 | Bematech_FI_AtivaDesativaAlinhamentoEsquerdaMFD | 255|1|
256 | Bematech_FI_AtivaDesativaVendaUmaLinhaMFD | 256|1|
257 | Bematech_FI_InicioFimGTsMFD | 257|
258 | Bematech_FI_VerificaFlagCorteMFD | 258|
259 | Bematech_FI_DownloadSB | 259|DOWNLOAD.SB|
261 | Bematech_FI_EfetuaFormaPagamentoIndiceMFD | 261|02|100,00|2|Em 30 e 60 dias|
262 | Bematech_FI_FlagsVinculacaoIss | 262|
267 | Bematech_FI_ProgramaIdAplicativoMFD | 267|APPTESTE.EXE|
269 | Bematech_FI_AcionaGuilhotinaMFD | 269|1|
271 | Bematech_FI_AtivaDesativaCancelamentoCupom2HorasMFD | 271|1|
272 | Bematech_FI_VerificaSensorPoucoPapelMFD | 272|
273 | Bematech_FI_VerificaCancelamentoCupom2HorasMFD | 273|
282 | Bematech_FI_DadosSintegraMFD | 282|01/01/07|30/01/07|
283 | Bematech_FI_ConfiguraCorteGuilhotinaMFD | 283|100|
284 | Bematech_FI_VendaBruta | 284|
285 | Bematech_FI_AtivaDesativaSensorPoucoPapelMFD | 285|1|
286 | Bematech_FI_AtivaDesativaCorteTotalMFD | 286|1|
287 | Bematech_FI_GeraRegistrosCAT52MFD | 287|download.mfd|30/07/2007|
287 | Bematech_FI_GeraRegistrosCAT52MFDEx | 287|download.mfd|30/07/2007|
288 | Bematech_FI_TotalIcmsCupom | 288|
290 | Bematech_FI_ViraChequeMFD | 290|
291 | Bematech_FI_AvancaPapelAcionaGuilhotinaMFD | 291|10|1|
292 | Bematech_FI_ImprimiChequeMFDEx | 292|001|50,00|José da Silva|Curitiba|18/04/02|Bom para 30/04/02|1|
293 | Bematech_FI_EstornoCDCPosteriorMFD | 293|Cartao|50,00|000159|000161|11.111.111-11|Fulano de Tal|R. Sem Fim, 1000|
294 | Bematech_FI_AtivaDesativaGuilhotinaMFD | 294|1|
295 | Bematech_FI_TotalIssCupomMFD | 295|
296 | Bematech_FI_VendeItemArredondamentoMFD | 296|123|Caneta|1200|UN|1,000|0,250|00,00|00,00|true|
297 | Bematech_FI_FlagsFiscais3MFD | 297|


Assinatura Digital (registro EAD)

A Bematech disponibiliza uma dll chamada "sign_bema.dll" que permite gerar as chaves pública e privada, além de assinar o arquivo com o registro EAD, conforme exigências do Convênio PAF-ECF.

Importante saber:

- O Fisco possui um programa chamado "eECFc" que faz a validação do arquivo com base na chave pública informada.

- A software-house deverá criar um arquivo XML com o seguinte conteúdo:

<?xml version="1.0" ?>

<empresa_desenvolvedora>

<nome></nome>

   <chave>

     <modulo></modulo>

     <expoente_publico>03</expoente_publico>

   </chave>

</empresa_desenvolvedora>

Onde:

- Na TAG <nome> deve ser informado o nome da software-house.

- Na TAG <modulo> deve ser informada a chave pública gerada.

- Na TAG <expoente_publico> deve ser informado o expoente de validação. Para Bematech o expoente é 03.

- A nomenclatura do arquivo é formada pelo nome da sofware-house mais a extensão ".xml", exemplo: "TESTE.xml".

- O arquivo .xml deve ser salvo na pasta "SHOUSE", localizada onde o "eECFc" foi instalado.

Observação:

- A "libeay32.dll" deve estar junta com a "sign_bema.dll" na pasta da aplicação para que as funções possam ser executadas corretamente.

A "sign_bema.dll" possui as seguintes funções:

· setLibType
· genkkey
· generateEAD
· validateFile

A declaração destas funções em VB é:

Private Declare Function genkkey Lib "sign_bema.dll" (ByVal cChavePublica As String, ByVal cChavePrivada As String) As Integer

Private Declare Function setLibType Lib "sign_bema.dll" (iTipo as Integer) As Integer

Private Declare Function generateEAD Lib "sign_bema.dll" (ByVal cNomeArquivo As String, ByVal cChavePublica As String, ByVal cChavePrivada As String, ByVal cEAD As String, ByVal iSign As Integer) As Integer

Private Declare Function validateFile Lib "sign_bema.dll" (ByVal cNomeArquivo As String, ByVal cChavePublica As String, ByVal cChavePrivada As String) As Integer

A declaração destas funções em Delphi é:

function genkkey( cChavePublica: String; cChavePrivada: String ): integer; stdcall; external 'sign_bema.dll';

function setLibType( iTipo: integer ): integer; stdcall; external 'sign_bema.dll';

function generateEAD( cNomeArquivo: String; cChavePublica: String; cChavePrivada: String; cEAD:String; iSign: Integer): integer; stdcall; external 'sign_bema.dll';

function validateFile( cNomeArquivo: String; cChavePublica: String; cChavePrivada: String ): integer; stdcall; external 'sign_bema.dll';


Sobre

Este arquivo de ajuda foi desenvolvido pela área de Marketing de Parcerias Bematech com o objetivo de auxiliá-lo no desenvolvimento de seu aplicativo com a BemaFI32.dll (DLL de alto-nível padrão Bematech para Windows) para as impressoras fiscais Bematech.

Neste arquivo você encontrará todas as funções de acesso à sua impressora fiscal, basicamente explicados, incluindo exemplos em Visual Basic e Delphi.

Qualquer dúvida, que por ventura você venha a ter, poderá esclarece-la através de nosso Suporte Técnico, nos contatos:

fone | 0800 644 SBSP (7277)
email | suporte@bematech.com.br
forum | http://partners.bematech.com.br/forum

logoBematech

LogoPartnerPequeno

· Visite nossa home-page: http://www.bematech.com.br
· Acesse nosso BemaCast e fique por dentro das novidades Bematech!
· http://twitter.com/partnerbematech este é o TWITTER da Bematech. Siga-nos!


Conceito

IMPORTANTE

O Bematech Monitor só está disponível na versão 3.0 da BemaFI32.dll ou superior.

A Bematech desenvolveu em sua DLL BEMAFI32, opções de acesso remoto à sua impressora fiscal, utilizando o conceito "Client/Server" (baseado na lógica do Windows Terminal Server e do Citrix Metaframe).

A sua aplicação ficará instalada no servidor e os terminais (Cliente), com as suas respectivas impressoras, faram acesso a impressora através da aplicação executada a partir do servidor.

A aplicação, rodando nos terminais (Cliente), utilizará as funções normais da BemaFI32.dll. No servidor, o arquivo BemaFI32.ini, estará habilitado para trabalhar em rede e configurado para o protocolo TCP/IP.

Nos terminais (Cliente), o arquivo BemaFI32.ini estará configurado também para o protocolo TCP/IP.

Detalhe: Pode-se usar somente a dll configurada para trabalhar remotamente por TCP/IP, sem a necessidade de executar o Bematech Monitor na máquina Cliente. As dlls Cliente e Servidor irão se comunicar entre si via Socket.


Configuração do BemaFI32.ini para o Bematech MONITOR

No servidor:

O arquivo BemaFI32.dll e o arquivo BemaFI32.ini deverão estar presentes. Ambos, no diretório de sistema do Windows.

Configuração da seção Sistema, do arquivo BemaFI32.ini, para o servidor:

[Sistema]

Porta=DEFAULT

Path=C:\

Status=0

Retorno=0

StatusFuncao=0

ControlePorta=1

ModeloImp=BEMATECH

ConfigRede=5

Log=0

.

.

.

[ModoRemoto]

IP=

Porta=7000

.

.

.

- A chave ConfigRede na seção [Sistema], deve estar configurada para 5 (cinco), indicando que a sua utilização será realizada pelo servidor.

- A chave Porta na seção [ModoRemoto], deve possuir a porta do servidor.

No terminal (Cliente):

O arquivo BemaFI32.dll e o arquivo BemaFI32.ini deverão estar presentes. Ambos, no diretório de sistema do Windows.

Configuração da seção Sistema, do arquivo BemaFI32.ini, para o terminal (Cliente):

[Sistema]

Porta=DEFAULT

Path=C:\

Status=0

Retorno=0

StatusFuncao=0

ControlePorta=1

ModeloImp=BEMATECH

ConfigRede=4

Log=0

.

.

.

[ModoRemoto]

IP=192.168.1.15

Porta=7000

.

.

.

- A chave ConfigRede, deve estar configurada para 4 (quatro), indicando que a sua utilização será realizada pelo terminal (Cliente).

- A chave IP na seção [ModoRemoto], deve possuir o IP do servidor.

- A chave Porta na seção [ModoRemoto], deve possuir a porta do servidor.

IMPORTANTE

Para utilizar a DLL em modo não remoto, instalada sem o uso da rede

(Windows Terminal Server ou Citrix Metaframe),

a chave ConfigRede dever estar configurada para 0 (zero). Exemplo: ConfigRede=0.


Configurando a DLL para trabalhar com YANCO

Para configurar a DLL para utilizar as impressoras fiscais da YANCO, basta alterar a chave "ModeloImp" para YANCO. Esta chave se localiza na seção "Sistema", no tópico "Configurando a DLL".


Declaração em C# (C Sharp)

Declaração das Funções da BemaFI32.dll em C# (C Sharp)

 Retorna ao Início

using System;

using System.Runtime.InteropServices;

namespace FiscalPrinterBematech

{

/// <summary>

/// Classe com a declaração das funções da bemafi32.dll

/// </summary>

public class BemaFI32

{

public BemaFI32()

{

}

#region DECLARAÇÃO DAS FUNÇÕES DA BEMAFI32.DLL

#region Funções de Inicialização

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AlteraSimboloMoeda(string SimboloMoeda);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ProgramaAliquota(string Aliquota, int ICMS_ISS);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NomeiaDepartamento(int Indice, string Departamento);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms(int Indice, string Totalizador);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LinhasEntreCupons(int Linhas);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_EspacoEntreLinhas(int Dots);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ForcaImpactoAgulhas(int ForcaImpacto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ProgramaHorarioVerao();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ProgramaArredondamento();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ProgramaTruncamento();

#endregion

#region Funções do Cupom Fiscal

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbreCupom(string CGC_CPF);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VendeItem(string Codigo, string Descricao, string Aliquota, string TipoQuantidade, string Quantidade, int CasasDecimais, string ValorUnitario, string TipoDesconto, string Desconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VendeItemDepartamento(string Codigo, string Descricao, string Aliquota, string ValorUnitario, string Quantidade, string Acrescimo, string Desconto, string IndiceDepartamento, string UnidadeMedida);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaItemAnterior();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaItemGenerico(string NumeroItem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaCupom();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_FechaCupomResumido(string FormaPagamento, string Mensagem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_FechaCupom(string FormaPagamento, string AcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimoDesconto, string ValorPago, string Mensagem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_IniciaFechamentoCupom(string AcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimoDesconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_EfetuaFormaPagamento(string FormaPagamento, string ValorFormaPagamento);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_EfetuaFormaPagamentoDescricaoForma(string FormaPagamento, string ValorFormaPagamento, string Descricao);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_TerminaFechamentoCupom(string Mensagem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_EstornoFormasPagamento(string FormaOrigem, string FormaDestino, string Valor);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AumentaDescricaoItem(string Descricao);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_UsaUnidadeMedida(string UnidadeMedida);

#endregion

#region Funções dos Relatórios Fiscais

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraX();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraXSerial();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ReducaoZ(string Data, string Hora);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_RelatorioGerencial(string Texto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_FechaRelatorioGerencial();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraMemoriaFiscalData(string DataInicial,string DataFinal);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraMemoriaFiscalReducao(string ReducaoInicial, string ReducaoFinal);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraMemoriaFiscalSerialData(string DataInicial, string DataFinal);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraMemoriaFiscalSerialReducao(string ReducaoInicial, string ReducaoFinal);

#endregion

#region Funções das Operações Não Fiscais

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_RecebimentoNaoFiscal(string IndiceTotalizador, string Valor, string FormaPagamento);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbreComprovanteNaoFiscalVinculado(string FormaPagamento, string Valor, string NumeroCupom);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_UsaComprovanteNaoFiscalVinculado(string Texto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_FechaComprovanteNaoFiscalVinculado();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_Sangria(string Valor);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_Suprimento(string Valor, string FormaPagamento);

#endregion

#region Funções de Informações da Impressora

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_Acrescimos([MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorAcrescimos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_Cancelamentos([MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorCancelamentos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CGC_IE([MarshalAs(UnmanagedType.VBByRefStr)] ref string CGC,[MarshalAs(UnmanagedType.VBByRefStr)] ref string IE);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ClicheProprietario([MarshalAs(UnmanagedType.VBByRefStr)] ref string Cliche);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ContadorBilhetePassagem(string ContadorPassagem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ContadoresTotalizadoresNaoFiscais([MarshalAs(UnmanagedType.VBByRefStr)] ref string Contadores);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_DadosUltimaReducao([MarshalAs(UnmanagedType.VBByRefStr)] ref string DadosReducao);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_DataHoraImpressora([MarshalAs(UnmanagedType.VBByRefStr)] ref string Data, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Hora);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_DataHoraReducao([MarshalAs(UnmanagedType.VBByRefStr)] ref string Data, [MarshalAs(UnmanagedType.VBByRefStr)] ref string Hora);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_DataMovimento([MarshalAs(UnmanagedType.VBByRefStr)] ref string Data);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_Descontos([MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorDescontos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_FlagsFiscais(ref int Flag);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_GrandeTotal([MarshalAs(UnmanagedType.VBByRefStr)] ref string GrandeTotal);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_MinutosLigada([MarshalAs(UnmanagedType.VBByRefStr)] ref string Minutos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_MinutosImprimindo([MarshalAs(UnmanagedType.VBByRefStr)] ref string Minutos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_MonitoramentoPapel(ref int Linhas);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroCaixa([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroCaixa);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroCupom([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroCupom);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroCuponsCancelados([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroCancelamentos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroIntervencoes([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroIntervencoes);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroLoja([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroLoja);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroOperacoesNaoFiscais([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroOperacoes);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroReducoes([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroReducoes);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroSerie([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroSerie);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroSubstituicoesProprietario([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroSubstituicoes);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_RetornoAliquotas([MarshalAs(UnmanagedType.VBByRefStr)] ref string Aliquotas);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_SimboloMoeda([MarshalAs(UnmanagedType.VBByRefStr)] ref string SimboloMoeda);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_SubTotal([MarshalAs(UnmanagedType.VBByRefStr)] ref string SubTotal);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_UltimoItemVendido([MarshalAs(UnmanagedType.VBByRefStr)] ref string NumeroItem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ValorFormaPagamento(string Forma, [MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorForma);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ValorPagoUltimoCupom([MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorCupom);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ValorTotalizadorNaoFiscal(string Totalizador, [MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorTotalizador);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaAliquotasIss([MarshalAs(UnmanagedType.VBByRefStr)] ref string Flag);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaEpromConectada([MarshalAs(UnmanagedType.VBByRefStr)] ref string Flag);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaDepartamentos([MarshalAs(UnmanagedType.VBByRefStr)] ref string Departamentos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaEstadoImpressora(ref int ACK, ref int ST1, ref int ST2);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaFormasPagamento([MarshalAs(UnmanagedType.VBByRefStr)] ref string Formas);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaIndiceAliquotasIss([MarshalAs(UnmanagedType.VBByRefStr)] ref string Flag);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaModoOperacao([MarshalAs(UnmanagedType.VBByRefStr)] ref string Modo);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaRecebimentoNaoFiscal([MarshalAs(UnmanagedType.VBByRefStr)] ref string Recebimentos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaTipoImpressora(ref int TipoImpressora);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaTotalizadoresNaoFiscais([MarshalAs(UnmanagedType.VBByRefStr)] ref string Totalizadores);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaTotalizadoresParciais([MarshalAs(UnmanagedType.VBByRefStr)] ref string Totalizadores);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaTruncamento([MarshalAs(UnmanagedType.VBByRefStr)] ref string Flag);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VersaoFirmware([MarshalAs(UnmanagedType.VBByRefStr)] ref string VersaoFirmware);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_TotalIcmsCupom([MarshalAs(UnmanagedType.VBByRefStr)] ref string ValorIcms);

#endregion

#region Funções de Autenticação e Gaveta de Dinheiro

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AcionaGaveta();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_Autenticacao();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ProgramaCaracterAutenticacao(string Parametros);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaEstadoGaveta(out int EstadoGaveta);

#endregion

#region Funções de Impressão de Cheques

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaImpressaoCheque();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ImprimeCheque(string Banco, string Valor, string Favorecido, string Cidade, string Data, string Mensagem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ImprimeCopiaCheque();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_IncluiCidadeFavorecido(string Cidade, string Favorecido);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ProgramaMoedaPlural(string MoedaPlural);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ProgramaMoedaSingular(string MoedaSingular);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaStatusCheque(ref int StatusCheque);

#endregion

#region Outras Funções

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AberturaDoDia(string Valor, string FormaPagto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbrePortaSerial();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_FechamentoDoDia();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_FechaPortaSerial();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ImprimeConfiguracoesImpressora();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ImprimeDepartamentos();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_MapaResumo();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_RelatorioTipo60Analitico();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_RelatorioTipo60Mestre();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_RetornoImpressora(ref int ACK, ref int ST1, ref int ST2);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaImpressoraLigada();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ResetaImpressora();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbreBilhetePassagem(string ImprimeValorFinal, string ImprimeEnfatizado, string Embarque, string Destino, string Linha, string Prefixo, string Agente, string Agencia, string Data, string Hora, string Poltrona, string Plataforma);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ImpressaoCarne(string Titulo, string Parcelas, string Datas, int Quantidade, string Texto, string Cliente, string RG_CPF, string Cupom, int Vias, int Assina);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeArquivoRetorno([MarshalAs(UnmanagedType.VBByRefStr)] ref string Retorno);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_GeraRegistrosCAT52MFD(string cArquivo, string cData);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_GeraRegistrosCAT52MFDEx(string cArquivo, string cData, ref string cArqDestino);

#endregion

#region Funções para a Impressora Restaurante

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_AbreConferenciaMesa(string Mesa);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_AbreCupomRestaurante(string Mesa, string CGC_CPF);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_CancelaVenda(string Mesa, string Codigo, string Descricao, string Aliquota, string Quantidade, string ValorUnitario, string FlagAcrescimoDesconto, string ValorAcrescimoDesconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_ConferenciaMesa(string Mesa, string FlagAcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimoDesconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_ContaDividida(string NumeroCupons, string ValorPago, string CGC_CPF);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_CardapioPelaSerial();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_FechaConferenciaMesa(string FlagAcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimoDesconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_FechaCupomContaDividida(string NumeroCupons, string FlagAcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimoDesconto, string FormasPagamento, string ValorFormasPagamento, string ValorPagoCliente, string CGC_CPF);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_FechaCupomRestaurante(string FormaPagamento, string FlagAcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimoDesconto, string ValorFormaPagto, string Mensagem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_ImprimeCardapio();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_RegistraVenda(string Mesa, string Codigo, string Descricao, string Aliquota, string Quantidade, string ValorUnitario, string FlagAcrescimoDesconto, string ValorAcrescimoDesconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_RegistroVendaSerial(string Mesa);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_RelatorioMesasAbertas(int TipoRelatorio);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_RelatorioMesasAbertasSerial();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_TransferenciaItem(string MesaOrigem, string Codigo, string Descricao, string Aliquota, string Quantidade, string ValorUnitario, string FlagAcrescimoDesconto, string ValorAcrescimoDesconto, string MesaDestino);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_TransferenciaMesa(string MesaOrigem, string MesaDestino);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_VerificaMemoriaLivre(string Bytes);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FIR_FechaCupomResumidoRestaurante(string FormaPagamento, string Mensagem);

#endregion

#region Funções da Impressora Fiscal MFD

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbreBilhetePassagemMFD(string Embarque, string Destino, string Linha, string Agencia, string Data, string Hora, string Poltrona, string Plataforma, string TipoPassagem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD(string FormaPagamento, string Valor, string NumeroCupom, string CGC, string nome, string Endereco);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbreCupomMFD(string CGC, string Nome, string Endereco);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbreRecebimentoNaoFiscalMFD(string CGC, string Nome, string Endereco);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AbreRelatorioGerencialMFD(string Indice);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AcrescimoDescontoItemMFD(string Item, string AcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimoDesconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AcrescimoDescontoSubtotalRecebimentoMFD(string cFlag, string cTipo, string cValor);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AcrescimoDescontoSubtotalMFD(string cFlag, string cTipo, string cValor);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_AutenticacaoMFD(string Linhas, string Texto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaAcrescimoDescontoItemMFD(string cFlag, string cItem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaAcrescimoDescontoSubtotalMFD(string cFlag);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaAcrescimoDescontoSubtotalRecebimentoMFD(string cFlag);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaCupomMFD(string CGC, string Nome, string Endereco);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CancelaRecebimentoNaoFiscalMFD(string CGC, string Nome, string Endereco);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ComprovantesNaoFiscaisNaoEmitidosMFD(string Comprovantes);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CNPJMFD(string CNPJ);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ContadorComprovantesCreditoMFD(string Comprovantes);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ContadorCupomFiscalMFD(string CuponsEmitidos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ContadorFitaDetalheMFD(string ContadorFita);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ContadorOperacoesNaoFiscaisCanceladasMFD(string OperacoesCanceladas);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ContadorRelatoriosGerenciaisMFD (string Relatorios);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ContadoresTotalizadoresNaoFiscaisMFD(string Contadores);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_CupomAdicionalMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_DadosUltimaReducaoMFD(string DadosReducao);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_DataHoraUltimoDocumentoMFD(string cDataHora);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_EfetuaFormaPagamentoMFD(string FormaPagamento, string ValorFormaPagamento, string Parcelas, string DescricaoFormaPagto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_EfetuaRecebimentoNaoFiscalMFD(string IndiceTotalizador, string ValorRecebimento);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_EstornoNaoFiscalVinculadoMFD(string CGC, string Nome, string Endereco);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_FechaRecebimentoNaoFiscalMFD(string Mensagem);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD(string FlagRetorno);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ImprimeChequeMFD(string NumeroBanco, string Valor, string Favorecido, string Cidade, string Data, string Mensagem, string ImpressaoVerso, string Linhas);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_IniciaFechamentoCupomMFD(string AcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimo, string ValorDesconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD(string AcrescimoDesconto, string TipoAcrescimoDesconto, string ValorAcrescimo, string ValorDesconto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_InscricaoEstadualMFD(string InscricaoEstadual);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_InscricaoMunicipalMFD(string InscricaoMunicipal);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraChequeMFD(string CodigoCMC7);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraMemoriaFiscalDataMFD(string DataInicial, string DataFinal, string FlagLeitura);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraMemoriaFiscalReducaoMFD(string ReducaoInicial, string ReducaoFinal, string FlagLeitura);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraMemoriaFiscalSerialDataMFD(string DataInicial, string DataFinal, string FlagLeitura);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD(string ReducaoInicial, string ReducaoFinal, string FlagLeitura);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_MapaResumoMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_MarcaModeloTipoImpressoraMFD(string Marca, string Modelo, string Tipo);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_MinutosEmitindoDocumentosFiscaisMFD(string Minutos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NomeiaRelatorioGerencialMFD(string Indice, string Descricao);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroSerieMFD(string NumeroSerie);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_NumeroSerieMemoriaMFD(string NumeroSerieMFD);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_PercentualLivreMFD(string cMemoriaLivre);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ProgramaFormaPagamentoMFD(string FormaPagto, string OperacaoTef);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ReducoesRestantesMFD(string Reducoes);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ReimpressaoNaoFiscalVinculadoMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_RelatorioTipo60AnaliticoMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_RetornoImpressoraMFD(ref int ACK, ref int ST1, ref int ST2, ref int ST3);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_SegundaViaNaoFiscalVinculadoMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_SubTotalizaCupomMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_SubTotalizaRecebimentoMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_TotalLivreMFD(string cMemoriaLivre);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_TamanhoTotalMFD(string cTamanhoMFD);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_TempoOperacionalMFD(string TempoOperacional);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_TotalizaCupomMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_TotalizaRecebimentoMFD();

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_UsaRelatorioGerencialMFD(string Texto);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ValorFormaPagamentoMFD(string Forma, string ValorForma);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_ValorTotalizadorNaoFiscalMFD(string Totalizador, string ValorTotalizador);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaEstadoImpressoraMFD(ref int ACK, ref int ST1, ref int ST2, ref int ST3);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaFormasPagamentoMFD(string FormasPagamento);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaRecebimentoNaoFiscalMFD(string Recebimentos);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaRelatorioGerencialMFD(string Relatorios);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaTotalizadoresNaoFiscaisMFD(string Totalizadores);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VerificaTotalizadoresParciaisMFD(string Totalizadores);

[DllImport("BemaFi32.dll")]public static extern int Bematech_FI_VersaoFirmwareMFD(string VersaoFirmware);

#endregion

#endregion

}

}


Declaração em Delphi

Declaração das Funções da BemaFI32.dll em Delphi

// Funções de Inicialização

function Bematech_FI_AlteraSimboloMoeda( SimboloMoeda: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ProgramaAliquota( Aliquota: String; ICMS_ISS: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ProgramaHorarioVerao: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NomeiaDepartamento( Indice: Integer; Departamento: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms( Indice: Integer; Totalizador: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ProgramaArredondamento: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ProgramaTruncamento: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_ProgramaTruncamento';

function Bematech_FI_LinhasEntreCupons( Linhas: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_EspacoEntreLinhas( Dots: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ForcaImpactoAgulhas( ForcaImpacto: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções do Cupom Fiscal

function Bematech_FI_AbreCupom( CGC_CPF: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VendeItem( Codigo: String; Descricao: String; Aliquota: String; TipoQuantidade: String; Quantidade: String; CasasDecimais: Integer; ValorUnitario: String; TipoDesconto: String; Desconto: String): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VendeItemDepartamento( Codigo: String; Descricao: String; Aliquota: String; ValorUnitario: String; Quantidade: String; Acrescimo: String; Desconto: String; IndiceDepartamento: String; UnidadeMedida: String): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaItemAnterior: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaItemGenerico( NumeroItem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaCupom: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_FechaCupomResumido( FormaPagamento: String; Mensagem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_FechaCupom( FormaPagamento: String; AcrescimoDesconto: String; TipoAcrescimoDesconto: String; ValorAcrescimoDesconto: String; ValorPago: String; Mensagem: String): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ResetaImpressora: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_IniciaFechamentoCupom( AcrescimoDesconto: String; TipoAcrescimoDesconto: String; ValorAcrescimoDesconto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_EfetuaFormaPagamento( FormaPagamento: String; ValorFormaPagamento: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_EfetuaFormaPagamentoDescricaoForma( FormaPagamento: string; ValorFormaPagamento: string; DescricaoFormaPagto: string ): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TerminaFechamentoCupom( Mensagem: String): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_EstornoFormasPagamento( FormaOrigem: String; FormaDestino: String; Valor: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_UsaUnidadeMedida( UnidadeMedida: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AumentaDescricaoItem( Descricao: String ): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções dos Relatórios Fiscais

function Bematech_FI_LeituraX: Integer; StdCall; External 'BEMAFI32.DLL' ;

function Bematech_FI_ReducaoZ( Data: String; Hora: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_RelatorioGerencial( Texto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_RelatorioGerencialTEF( Texto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_FechaRelatorioGerencial: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraMemoriaFiscalData( DataInicial: String; DataFinal: String ):

Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraMemoriaFiscalReducao( ReducaoInicial: String; ReducaoFinal: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraMemoriaFiscalSerialData( DataInicial: String; DataFinal: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraMemoriaFiscalSerialReducao( ReducaoInicial: String; ReducaoFinal: String ): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções das Operações Não Fiscais

function Bematech_FI_RecebimentoNaoFiscal( IndiceTotalizador: String; Valor: String; FormaPagamento: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AbreComprovanteNaoFiscalVinculado( FormaPagamento: String; Valor: String; NumeroCupom: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_UsaComprovanteNaoFiscalVinculado( Texto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF( Texto: String ): Integer; StdCall; External 'BEMAFI32.DLL'

function Bematech_FI_FechaComprovanteNaoFiscalVinculado: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_Sangria( Valor: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_Suprimento( Valor: String; FormaPagamento: String ): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções de Informações da Impressora

function Bematech_FI_NumeroSerie( NumeroSerie: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroSerieCriptografado( NumeroSerie: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroSerieDescriptografado( NumeroSerieCriptografado: String; NumeroSerieDescriptografado: String): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_SubTotal( SubTotal: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroCupom( NumeroCupom: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraXSerial: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VersaoFirmware( VersaoFirmware: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CGC_IE( CGC: String; IE: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_GrandeTotal( GrandeTotal: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_Cancelamentos( ValorCancelamentos: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_Descontos( ValorDescontos: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroOperacoesNaoFiscais( NumeroOperacoes: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroCuponsCancelados( NumeroCancelamentos: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroIntervencoes( NumeroIntervencoes: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroReducoes( NumeroReducoes: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroSubstituicoesProprietario( NumeroSubstituicoes: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_UltimoItemVendido( NumeroItem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ClicheProprietario( Cliche: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroCaixa( NumeroCaixa: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroLoja( NumeroLoja: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_SimboloMoeda( SimboloMoeda: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_MinutosLigada( Minutos: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_MinutosImprimindo( Minutos: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaModoOperacao( Modo: string ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaEpromConectada( Flag: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_FlagsFiscais( Var Flag: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ValorPagoUltimoCupom( ValorCupom: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DataHoraImpressora( Data: String; Hora: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ContadoresTotalizadoresNaoFiscais( Contadores: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaTotalizadoresNaoFiscais( Totalizadores: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DataHoraReducao( Data: String; Hora: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DataMovimento( Data: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaTruncamento( Flag: string ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_Acrescimos( ValorAcrescimos: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ContadorBilhetePassagem( ContadorPassagem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaAliquotasIss( Flag: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaFormasPagamento( Formas: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaRecebimentoNaoFiscal( Recebimentos: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaDepartamentos( Departamentos: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaTipoImpressora( Var TipoImpressora: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaTotalizadoresParciais( Totalizadores: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_RetornoAliquotas( Aliquotas: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaEstadoImpressora( Var ACK: Integer; Var ST1: Integer; Var ST2: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DadosUltimaReducao( DadosReducao: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_MonitoramentoPapel( Var Linhas: Integer): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaIndiceAliquotasIss( Flag: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ValorFormaPagamento( FormaPagamento: String; Valor: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ValorTotalizadorNaoFiscal( Totalizador: String; Valor: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TotalIcmsCupom( ValorIcms: String ): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções de Autenticação e Gaveta de Dinheiro

function Bematech_FI_Autenticacao:Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_Autenticacao';

function Bematech_FI_ProgramaCaracterAutenticacao( Parametros: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AcionaGaveta:Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_AcionaGaveta';

function Bematech_FI_VerificaEstadoGaveta( Var EstadoGaveta: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções para a Impressora Restaurante

function Bematech_FIR_AbreCupomRestaurante( Mesa: String; CGC_CPF: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_RegistraVenda( Mesa: String; Codigo: String; Descricao: String; Aliquota: String; Quantidade: String; ValorUnitario: String; FlagAcrescimoDesconto: String; ValorAcrescimoDesconto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_CancelaVenda( Mesa: String; Codigo: String; Descricao: String; Aliquota: String; Quantidade: String; ValorUnitario: String; FlagAcrescimoDesconto: String; ValorAcrescimoDesconto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_ConferenciaMesa( Mesa: String; FlagAcrescimoDesconto: String; TipoAcrescimoDesconto: String; ValorAcrescimoDesconto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_AbreConferenciaMesa( Mesa: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_FechaConferenciaMesa( FlagAcrescimoDesconto: String; TipoAcrescimoDesconto: String; ValorAcrescimoDesconto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_TransferenciaMesa( MesaOrigem: String; MesaDestino: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_ContaDividida( NumeroCupons: String; ValorPago: String; CGC_CPF: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_FechaCupomContaDividida( NumeroCupons: String; FlagAcrescimoDesconto: String; TipoAcrescimoDesconto: String; ValorAcrescimoDesconto: String; FormasPagamento: String; ValorFormasPagamento: String; ValorPagoCliente: String; CGC_CPF: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_TransferenciaItem( MesaOrigem: String; Codigo: String; Descricao: String; Aliquota: String; Quantidade: String; ValorUnitario: String; FlagAcrescimoDesconto: String; ValorAcrescimoDesconto: String; MesaDestino: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_RelatorioMesasAbertas( TipoRelatorio: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_ImprimeCardapio: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_RelatorioMesasAbertasSerial: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_CardapioPelaSerial: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_RegistroVendaSerial( Mesa: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_VerificaMemoriaLivre( Bytes: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_FechaCupomRestaurante( FormaPagamento: String; FlagAcrescimoDesconto: String; TipoAcrescimoDesconto: String; ValorAcrescimoDesconto: String; ValorFormaPagto: String; Mensagem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FIR_FechaCupomResumidoRestaurante( FormaPagamento: String; Mensagem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

// Função para a Impressora Bilhete de Passagem

function Bematech_FI_AbreBilhetePassagem( ImprimeValorFinal: string; ImprimeEnfatizado: string; Embarque: string; Destino: string; Linha: string; Prefixo: string; Agente: string; Agencia: string; Data: string; Hora: string; Poltrona: string; Plataforma: string ): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções de Impressão de Cheques

function Bematech_FI_ProgramaMoedaSingular( MoedaSingular: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ProgramaMoedaPlural( MoedaPlural: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaImpressaoCheque: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaStatusCheque( Var StatusCheque: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ImprimeCheque( Banco: String; Valor: String; Favorecido: String; Cidade: String; Data: String; Mensagem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_IncluiCidadeFavorecido( Cidade: String; Favorecido: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ImprimeCopiaCheque: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_ImprimeCopiaCheque';

// Outras Funções

function Bematech_FI_AbrePortaSerial: Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_RetornoImpressora( Var ACK: Integer; Var ST1: Integer; Var ST2: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_FechaPortaSerial: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_FechaPortaSerial';

function Bematech_FI_MapaResumo:Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_MapaResumo';

function Bematech_FI_AberturaDoDia( ValorCompra: string; FormaPagamento: string ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_FechamentoDoDia: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_FechamentoDoDia';

function Bematech_FI_ImprimeConfiguracoesImpressora:Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_ImprimeConfiguracoesImpressora';

function Bematech_FI_ImprimeDepartamentos: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_ImprimeDepartamentos';

function Bematech_FI_RelatorioTipo60Analitico: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_RelatorioTipo60Analitico';

function Bematech_FI_RelatorioTipo60Mestre: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_RelatorioTipo60Mestre';

function Bematech_FI_VerificaImpressoraLigada: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_VerificaImpressoraLigada';

function Bematech_FI_ImpressaoCarne( Titulo, Percelas, Datas: string; Quantidade: integer; Texto, Cliente, RG_CPF, Cupom: string; Vias, Assina: integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_InfoBalanca( Porta: string; Modelo: integer; Peso, PrecoKilo, Total: string ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DadosSintegra( DataInicio: string; DataFinal: string ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_IniciaModoTEF: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_IniciaModoTEF';

function Bematech_FI_FinalizaModoTEF: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_FinalizaModoTEF';

function Bematech_FI_VersaoDll( Versao: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_RegistrosTipo60: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_RegistrosTipo60';

function Bematech_FI_LeArquivoRetorno( Retorno: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_GeraRegistrosCAT52MFD( cArquivo: String; cData: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_GeraRegistrosCAT52MFDEx( cArquivo: String; cData: String; cArqDestino: String): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional( dataUsuario, dataSoftwareBasico: String; var letraAdicional: char ): integer; stdcall; external 'BEMAFI32.DLL';

// Funções da Impressora Fiscal MFD

function Bematech_FI_AbreCupomMFD(CGC: string; Nome: string; Endereco : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaCupomMFD(CGC, Nome, Endereco: string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ProgramaFormaPagamentoMFD(FormaPagto, OperacaoTef: String) : Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_EfetuaFormaPagamentoMFD(FormaPagamento, ValorFormaPagamento, Parcelas, DescricaoFormaPagto: string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CupomAdicionalMFD(): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AcrescimoDescontoItemMFD (Item, AcrescimoDesconto,TipoAcrescimoDesconto, ValorAcrescimoDesconto: string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NomeiaRelatorioGerencialMFD (Indice, Descricao : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AutenticacaoMFD(Linhas, Texto : string) : Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD(FormaPagamento, Valor, NumeroCupom, CGC, nome, Endereco : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ReimpressaoNaoFiscalVinculadoMFD() : Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AbreRecebimentoNaoFiscalMFD(CGC, Nome, Endereco : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_EfetuaRecebimentoNaoFiscalMFD(IndiceTotalizador, ValorRecebimento : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD(AcrescimoDesconto,TipoAcrescimoDesconto, ValorAcrescimo, ValorDesconto : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_FechaRecebimentoNaoFiscalMFD(Mensagem : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaRecebimentoNaoFiscalMFD(CGC, Nome, Endereco : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AbreRelatorioGerencialMFD(Indice : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_UsaRelatorioGerencialMFD(Texto : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_UsaRelatorioGerencialMFDTEF(Texto : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_SegundaViaNaoFiscalVinculadoMFD(): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_EstornoNaoFiscalVinculadoMFD(CGC, Nome, Endereco : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroSerieMFD(NumeroSerie : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VersaoFirmwareMFD(VersaoFirmware : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CNPJMFD(CNPJ : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_InscricaoEstadualMFD(InscricaoEstadual : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_InscricaoMunicipalMFD(InscricaoMunicipal : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TempoOperacionalMFD(TempoOperacional : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_MinutosEmitindoDocumentosFiscaisMFD(Minutos : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ContadoresTotalizadoresNaoFiscaisMFD(Contadores : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaTotalizadoresNaoFiscaisMFD(Totalizadores : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaFormasPagamentoMFD(FormasPagamento : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaRecebimentoNaoFiscalMFD(Recebimentos : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaRelatorioGerencialMFD(Relatorios : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ContadorComprovantesCreditoMFD(Comprovantes : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ContadorOperacoesNaoFiscaisCanceladasMFD(OperacoesCanceladas : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ContadorRelatoriosGerenciaisMFD (Relatorios : String): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ContadorCupomFiscalMFD(CuponsEmitidos : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ContadorFitaDetalheMFD(ContadorFita : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ComprovantesNaoFiscaisNaoEmitidosMFD(Comprovantes : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_NumeroSerieMemoriaMFD(NumeroSerieMFD : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_MarcaModeloTipoImpressoraMFD(Marca, Modelo, Tipo : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ReducoesRestantesMFD(Reducoes : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaTotalizadoresParciaisMFD(Totalizadores : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DadosUltimaReducaoMFD(DadosReducao : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraMemoriaFiscalDataMFD(DataInicial, DataFinal, FlagLeitura : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraMemoriaFiscalReducaoMFD(ReducaoInicial, ReducaoFinal, FlagLeitura : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraMemoriaFiscalSerialDataMFD(DataInicial, DataFinal, FlagLeitura : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD(ReducaoInicial, ReducaoFinal, FlagLeitura : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_LeituraChequeMFD(CodigoCMC7 : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ImprimeChequeMFD(NumeroBanco, Valor, Favorecido, Cidade, Data, Mensagem, ImpressaoVerso, Linhas : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD(FlagRetorno : string): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_RetornoImpressoraMFD( Var ACK: Integer; Var ST1: Integer; Var ST2: Integer; Var ST3: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AbreBilhetePassagemMFD(Embarque, Destino, Linha, Agencia, Data, Hora, Poltrona, Plataforma, TipoPassagem, RGCliente, NomeCliente, EnderecoCliente, UFDetino: string ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaAcrescimoDescontoItemMFD( cFlag, cItem: string ): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_SubTotalizaCupomMFD: integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_SubTotalizaRecebimentoMFD: integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TotalLivreMFD( cMemoriaLivre: string ): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TamanhoTotalMFD( cTamanhoMFD: string ): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AcrescimoDescontoSubtotalRecebimentoMFD( cFlag, cTipo, cValor: string ): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AcrescimoDescontoSubtotalMFD( cFlag, cTipo, cValor: string): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaAcrescimoDescontoSubtotalMFD( cFlag: string): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaAcrescimoDescontoSubtotalRecebimentoMFD( cFlag: string ): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TotalizaCupomMFD: integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TotalizaRecebimentoMFD: integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_PercentualLivreMFD( cMemoriaLivre: string ): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DataHoraUltimoDocumentoMFD( cDataHora: string ): integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_MapaResumoMFD:Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_MapaResumoMFD';

function Bematech_FI_RelatorioTipo60AnaliticoMFD: Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_RelatorioTipo60AnaliticoMFD';

function Bematech_FI_ValorFormaPagamentoMFD( FormaPagamento: String; Valor: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ValorTotalizadorNaoFiscalMFD( Totalizador: String; Valor: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaEstadoImpressoraMFD( Var ACK: Integer; Var ST1: Integer; Var ST2: Integer; Var ST3: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_IniciaFechamentoCupomMFD( AcrescimoDesconto: String; TipoAcrescimoDesconto: String; ValorAcrescimo: String; ValorDesconto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TerminaFechamentoCupomCodigoBarrasMFD( cMensagem: String; cTipoCodigo: String; cCodigo: String; iAltura: Integer; iLargura: Integer; iPosicaoCaracteres: Integer; iFonte: Integer; iMargem: Integer; iCorrecaoErros: Integer; iColunas: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaItemNaoFiscalMFD( NumeroItem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AcrescimoItemNaoFiscalMFD( NumeroItem: String; AcrescimoDesconto: String; TipoAcrescimoDesconto: String; ValorAcrescimoDesconto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CancelaAcrescimoNaoFiscalMFD( NumeroItem: String; AcrescimoDesconto: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_ImprimeClicheMFD:Integer; StdCall; External 'BEMAFI32.DLL' Name 'Bematech_FI_ImprimeClicheMFD';

function Bematech_FI_ImprimeInformacaoChequeMFD( Posicao: Integer; Linhas: Integer; Mensagem: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_RelatorioSintegraMFD( iRelatorios : Integer;

                                          cArquivo    : String;

                                          cMes        : String;

                                          cAno        : String;

                                          cRazaoSocial: String;

                                          cEndereco   : String;

                                          cNumero     : String;

                                          cComplemento: String;

                                          cBairro     : String;

                                          cCidade     : String;

                                          cCEP        : String;

                                          cTelefone   : String;

                                          cFax        : String;

                                          cContato    : String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_GeraRelatorioSintegraMFD( iRelatorios : Integer;

                                              cArquivoOrigem : String;

                                              cArquivoDestino: String;

                                              cMes           : String;

                                              cAno           : String;

                                              cRazaoSocial   : String;

                                              cEndereco      : String;

                                              cNumero        : String;

                                              cComplemento   : String;

                                              cBairro        : String;

                                              cCidade        : String;

                                              cCEP           : String;

                                              cTelefone      : String;

                                              cFax           : String;

                                              cContato       : String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DownloadMF( Arquivo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DownloadMFD( Arquivo: String; TipoDownload: String; ParametroInicial: String; ParametroFinal: String; UsuarioECF: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_FormatoDadosMFD( ArquivoOrigem: String; ArquivoDestino: String; TipoFormato: String; TipoDownload: String; ParametroInicial: String; ParametroFinal: String; UsuarioECF: String ): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções disponíveis somente na impressora fiscal MP-2000 TH FI versão 01.01.01 ou 01.00.02

function Bematech_FI_AtivaDesativaVendaUmaLinhaMFD( iFlag: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AtivaDesativaAlinhamentoEsquerdaMFD( iFlag: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AtivaDesativaCorteProximoMFD(): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_AtivaDesativaTratamentoONOFFLineMFD( iFlag: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_StatusEstendidoMFD( Var iStatus: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_VerificaFlagCorteMFD( Var iStatus: Integer ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_TempoRestanteComprovanteMFD( cTempo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_UFProprietarioMFD( cUF: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_GrandeTotalUltimaReducaoMFD( cGT: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_DataMovimentoUltimaReducaoMFD( cData: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_SubTotalComprovanteNaoFiscalMFD( cSubTotal: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_InicioFimCOOsMFD( cCOOIni, cCOOFim: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_InicioFimGTsMFD( cGTIni, cGTFim: String ): Integer; StdCall; External 'BEMAFI32.DLL';

// Função para Configuração dos Códigos de Barras

function Bematech_FI_ConfiguraCodigoBarrasMFD( Altura: Integer; Largura: Integer; PosicaoCaracteres: Integer; Fonte: Integer; Margem: Integer): Integer; StdCall; External 'BEMAFI32.DLL';

// Funções para Impressão dos Códigos de Barras

function Bematech_FI_CodigoBarrasUPCAMFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasUPCEMFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasEAN13MFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasEAN8MFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasCODE39MFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasCODE93MFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasCODE128MFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasITFMFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasCODABARMFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasISBNMFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasMSIMFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasPLESSEYMFD( Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';

function Bematech_FI_CodigoBarrasPDF417MFD( NivelCorrecaoErros: Integer; Altura: Integer; Largura: Integer; Colunas: Integer; Codigo: String ): Integer; StdCall; External 'BEMAFI32.DLL';


Declaração em FOXPRO

Declaração das Funções da BemaFI32.dll em Visual Fox Pro

* Funções de Inicialização

DECLARE INTEGER Bematech_FI_AlteraSimboloMoeda IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_ProgramaAliquota IN BemaFI32.DLL STRING, INTEGER

DECLARE INTEGER Bematech_FI_ProgramaHorarioVerao IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms IN BemaFI32.DLL INTEGER, STRING

DECLARE INTEGER Bematech_FI_ProgramaArredondamento  IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_ProgramaTruncamento IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_NomeiaDepartamento IN BemaFI32.DLL INTEGER, STRING

DECLARE INTEGER Bematech_FI_LinhasEntreCupons IN BemaFI32.DLL INTEGER

DECLARE INTEGER Bematech_FI_EspacoEntreLinhas IN BemaFI32.DLL INTEGER

DECLARE INTEGER Bematech_FI_ForcaImpactoAgulhas IN BemaFI32.DLL INTEGER

DECLARE INTEGER Bematech_FI_ResetaImpressora IN BemaFI32.DLL

* Funções do Cupom Fiscal

DECLARE INTEGER Bematech_FI_AbreCupom IN BemaFI32.DLL STRING @CNPJ_CPF

DECLARE INTEGER Bematech_FI_VendeItem IN BemaFI32.DLL STRING, STRING, STRING, STRING, STRING , short, STRING, STRING ,STRING

DECLARE INTEGER Bematech_FI_VendeItemDepartamento IN BemaFI32.DLL STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING, STRING

DECLARE INTEGER Bematech_FI_CancelaItemAnterior IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_CancelaItemGenerico IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_IniciaFechamentoCupom IN BemaFI32.DLL STRING , STRING ,STRING

DECLARE INTEGER Bematech_FI_EfetuaFormaPagamento IN BemaFI32.DLL STRING ,STRING

DECLARE INTEGER Bematech_FI_EfetuaFormaPagamentoDescricaoForma IN BemaFI32.DLL STRING, STRING , STRING

DECLARE INTEGER Bematech_FI_TerminaFechamentoCupom IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_FechaCupom IN BemaFI32.DLL STRING , STRING, STRING, STRING, STRING

DECLARE INTEGER Bematech_FI_FechaCupomResumido IN BemaFI32.DLL STRING, STRING

DECLARE INTEGER Bematech_FI_CancelaCupom IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_AumentaDescricaoItem IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_UsaUnidadeMedida IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_EstornoFormasPagamento IN BemaFI32.DLL STRING, STRING, STRING

* Funções dos Relatórios Fiscais

DECLARE INTEGER Bematech_FI_ReducaoZ IN BemaFI32.DLL STRING, STRING

DECLARE INTEGER Bematech_FI_LeituraX IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_LeituraXSerial IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_LeituraMemoriaFiscalData IN BemaFI32.DLL STRING, STRING

DECLARE INTEGER Bematech_FI_LeituraMemoriaFiscalReducao IN BemaFI32.DLL STRING, STRING

DECLARE INTEGER Bematech_FI_LeituraMemoriaFiscalSerialData IN BemaFI32.DLL STRING, STRING

DECLARE INTEGER Bematech_FI_LeituraMemoriaFiscalSerialReducao IN BemaFI32.DLL STRING, STRING

* Funções de Operações Não Fiscais

DECLARE INTEGER Bematech_FI_RelatorioGerencial IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_RelatorioGerencialTEF IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_FechaRelatorioGerencial IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_RecebimentoNaoFiscal IN BemaFI32.DLL STRING, STRING, STRING

DECLARE INTEGER Bematech_FI_AbreComprovanteNaoFiscalVinculado IN BemaFI32.DLL STRING, STRING, STRING

DECLARE INTEGER Bematech_FI_UsaComprovanteNaoFiscalVinculado IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_FechaComprovanteNaoFiscalVinculado IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_Sangria IN BemaFI32.DLL STRING

DECLARE INTEGER Bematech_FI_Suprimento IN BemaFI32.DLL STRING, STRING

* Funções de informações da impressora

DECLARE INTEGER Bematech_FI_VerificaEstadoImpressora IN BemaFI32.DLL INTEGER @n_ack, INTEGER @n_st1, INTEGER @n_st2

DECLARE INTEGER Bematech_FI_RetornoAliquotas IN BemaFI32.DLL STRING @ aliquotas

DECLARE INTEGER Bematech_FI_VerificaTotalizadoresParciais IN BemaFI32.DLL STRING @ c_totalizadores

DECLARE INTEGER Bematech_FI_SubTotal IN BemaFI32.DLL STRING @ csub

DECLARE INTEGER Bematech_FI_DadosUltimaReducao IN BemaFI32.DLL STRING @ c_dadosreducao

DECLARE INTEGER Bematech_FI_MonitoramentoPapel IN BemaFI32.DLL INTEGER @ c_linhasimpressas

DECLARE INTEGER Bematech_FI_MinutosLigada IN BemaFI32.DLL STRING @ c_minutosligada

DECLARE INTEGER Bematech_FI_MinutosImprimindo IN BemaFI32.DLL STRING @ c_minutosimprimindo

DECLARE INTEGER Bematech_FI_NumeroSerie IN BemaFI32.DLL STRING @ c_nserie

DECLARE INTEGER Bematech_FI_NumeroCupom IN BemaFI32.DLL STRING @ nf

DECLARE INTEGER Bematech_FI_NumeroOperacoesNaoFiscais IN BemaFI32.DLL STRING @ c_operacoes

DECLARE INTEGER Bematech_FI_NumeroCuponsCancelados IN BemaFI32.DLL STRING @ c_cuponscancelados

DECLARE INTEGER Bematech_FI_NumeroReducoes IN BemaFI32.DLL STRING @ c_reducoes

DECLARE INTEGER Bematech_FI_NumeroIntervencoes IN BemaFI32.DLL STRING @ c_intervencoes

DECLARE INTEGER Bematech_FI_NumeroSubstituicoesProprietario IN BemaFI32.DLL STRING @ c_substituicoes

DECLARE INTEGER Bematech_FI_NumeroCaixa IN BemaFI32.DLL STRING @ c_numerocaixa

DECLARE INTEGER Bematech_FI_NumeroLoja IN BemaFI32.DLL STRING @ c_numeroloja

DECLARE INTEGER Bematech_FI_VersaoFirmware IN BemaFI32.DLL STRING @ c_versaofirmware

DECLARE INTEGER Bematech_FI_CGC_IE IN BemaFI32.DLL STRING @ c_cgc, STRING @ c_ie

DECLARE INTEGER Bematech_FI_GrandeTotal IN BemaFI32.DLL STRING @ c_grandetotal

DECLARE INTEGER Bematech_FI_Descontos IN BemaFI32.DLL STRING @ c_descontos

DECLARE INTEGER Bematech_FI_Cancelamentos IN BemaFI32.DLL STRING @ c_cancelamentos

DECLARE INTEGER Bematech_FI_UltimoItemVendido IN BemaFI32.DLL STRING @ c_ultimoitem

DECLARE INTEGER Bematech_FI_ClicheProprietario IN BemaFI32.DLL STRING @ c_clicheproprietario

DECLARE INTEGER Bematech_FI_SimboloMoeda IN BemaFI32.DLL STRING @ c_simbolomoeda

DECLARE INTEGER Bematech_FI_FlagsFiscais IN BemaFI32.DLL INTEGER @ n_flagfiscal

DECLARE INTEGER Bematech_FI_VerificaModoOperacao IN BemaFI32.DLL STRING @ c_modooperacao

DECLARE INTEGER Bematech_FI_VerificaEpromConectada IN BemaFI32.DLL STRING @ c_flageprom

DECLARE INTEGER Bematech_FI_ValorPagoUltimoCupom IN BemaFI32.DLL STRING @ c_valor

DECLARE INTEGER Bematech_FI_DataHoraImpressora IN BemaFI32.DLL STRING @ c_data, STRING @ c_hora

DECLARE INTEGER Bematech_FI_ContadoresTotalizadoresNaoFiscais IN BemaFI32.DLL STRING @ c_contadores

DECLARE INTEGER Bematech_FI_VerificaTotalizadoresNaoFiscais IN BemaFI32.DLL STRING @ c_totalizadores

DECLARE INTEGER Bematech_FI_DataHoraReducao IN BemaFI32.DLL STRING @ c_datareducao, STRING @ c_horareducao

DECLARE INTEGER Bematech_FI_DataMovimento IN BemaFI32.DLL STRING @ c_datamovimento

DECLARE INTEGER Bematech_FI_VerificaTruncamento IN BemaFI32.DLL STRING @ c_flagtruncamento

DECLARE INTEGER Bematech_FI_VerificaAliquotasIss IN BemaFI32.DLL STRING @ aliquotasiss

DECLARE INTEGER Bematech_FI_Acrescimos IN BemaFI32.DLL STRING @ c_valoracrescimo

DECLARE INTEGER Bematech_FI_ContadorBilhetePassagem IN BemaFI32.DLL STRING @ c_numerobilhetes

DECLARE INTEGER Bematech_FI_VerificaFormasPagamento IN BemaFI32.DLL STRING @ c_formaspagamento

DECLARE INTEGER Bematech_FI_VerificaRecebimentoNaoFiscal IN BemaFI32.DLL STRING @ c_recebimentos

DECLARE INTEGER Bematech_FI_VerificaDepartamentos IN BemaFI32.DLL STRING @ c_departamentos

DECLARE INTEGER Bematech_FI_VerificaTipoImpressora IN BemaFI32.DLL INTEGER @  n_tipoimpressora

DECLARE INTEGER Bematech_FI_VerificaIndiceAliquotasIss IN BemaFI32.DLL STRING @ c_indicealiquotasiss

DECLARE INTEGER Bematech_FI_ValorFormaPagamento IN BemaFI32.DLL STRING @ c_formapagamento, STRING @ c_valor

DECLARE INTEGER Bematech_FI_ValorTotalizadorNaoFiscal IN BemaFI32.DLL STRING @ c_totalizador, STRING @ c_valor

DECLARE INTEGER Bematech_FI_TotalIcmsCupom IN BemaFI32.DLL STRING @ c_valoricms

* Funções de Gaveta de Dinheiro

DECLARE INTEGER Bematech_FI_AcionaGaveta IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_VerificaEstadoGaveta IN BemaFI32.DLL INTEGER

* Outras Funções

DECLARE INTEGER Bematech_FI_AbrePortaSerial IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_FechaPortaSerial IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_VerificaImpressoraLigada IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_RetornoImpressora IN BemaFI32.DLL INTEGER @n_ack, INTEGER @n_st1, INTEGER @n_st2

DECLARE INTEGER Bematech_FI_AbreBilhetePassagem IN BemaFI32.DLL STRING, STRING, STRING, STRING, STRING, STRING, STRING

DECLARE INTEGER Bematech_FI_MapaResumo IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_AberturaDoDia IN BemaFI32.DLL STRING, STRING

DECLARE INTEGER Bematech_FI_FechamentoDoDia IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_RelatorioTipo60Analitico IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_RelatorioTipo60Mestre IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_ImprimeDepartamentos IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_ImprimeConfiguracoesImpressora IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_DadosSintegra IN BemaFI32.DLL STRING, STRING

DECLARE INTEGER Bematech_FI_IniciaModoTEF IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_FinalizaModoTEF IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_VersaoDll IN BemaFI32.DLL STRING @ Versao

DECLARE INTEGER Bematech_FI_RegistrosTipo60 IN BemaFI32.DLL

DECLARE INTEGER Bematech_FI_LeArquivoRetorno IN BemaFI32.DLL STRING @ Retorno

DECLARE INTEGER Bematech_FI_GeraRegistrosCAT52MFD IN BemaFI32.DLL STRING, STRING

DECLARE INTEGER Bematech_FI_GeraRegistrosCAT52MFDEx IN BemaFI32.DLL STRING, STRING, @ STRING


Declaração em JAVA

Declaração das Funções da BemaFI32.dll em JAVA

class Bematech

{

   // Funções de Inicialização

   public static native int AlteraSimboloMoeda( String cSimboloMoeda );

   public static native int EspacoEntreLinhas( int iDots );

   public static native int ForcaImpactoAgulhas( int iValorImpacto );

   public static native int LinhasEntreCupons( int iLinhas );

   public static native int NomeiaDepartamento( int iIndice, String cDepartamento );

   public static native int NomeiaTotalizadorNaoSujeitoIcms( int iIndice, String cTotalizador );

   public static native int ProgramaAliquota( String cAliquota, int iVinculo );

   public static native int ProgramaArredondamento();

   public static native int ProgramaTruncamento();

   public static native int ProgramaHorarioVerao();

   // Funções do Cupom Fiscal

   public static native int AbreCupom( String CPF_CGC );

   public static native int AumentaDescricaoItem( String cDescricao );

   public static native int VendeItem( String cCodigo, String cDescricao, String cAliquota, String cTipoQuantidade, String cQuantidade, int iCasasDecimais, String cUnitario,String cTipoDesconto, String cDesconto );

   public static native int VendeItemDepartamento( String cCodigo, String cDescricao, String cAliquota, String cValorUnitario, String cQuantidade, String cValorAcrescimo, String cValorDesconto, String cIndiceDepartamento, String cUnidadeMedida);

   public static native int CancelaItemAnterior();

   public static native int CancelaItemGenerico( String cNumeroItem );

   public static native int CancelaCupom();

   public static native int FechaCupom( String formaPagamento,String cAcrescimoDesconto, String cTipoAcrescimoDesconto,String cValorAcrescimoDesconto, String cValorPago,String cMensagem );

   public static native int FechaCupomResumido( String formaPagamento,String cMensagem );

   public static native int IniciaFechamentoCupom( String cAcrescimoDesconto,String cTipoAcrescimoDesconto, String cValorAcrescimoDesconto );

   public static native int EfetuaFormaPagamento( String formaPagamento, String valorFormaPagamento );

   public static native int EfetuaFormaPagamentoDescricaoForma( String formaPagamento, String valorFormaPagamento, String cDescricaoForma );

   public static native int EstornoFormasPagamento( String cFormaOrigem, String cFormaDestino, String cValor );

   public static native int TerminaFechamentoCupom( String cMensagem );

   public static native int UsaUnidadeMedida( String cUnidadeMedida );

   // Funções de Relatórios Fiscais

   public static native int LeituraMemoriaFiscalData( String cDataInicial, String cDataFinal );

   public static native int LeituraMemoriaFiscalReducao( String cReducaoInicial, String cReducaoFinal );

   public static native int LeituraMemoriaFiscalSerialData( String cDataInicial, String cDataFinal );

   public static native int LeituraMemoriaFiscalSerialReducao( String cReducaoInicial, String cReducaoFinal );

   public static native int LeituraX();

   public static native int LeituraXSerial();

   public static native int ReducaoZ( String cData, String cHora );

   // Funções de Operações Não Fiscais

   public static native int AbreComprovanteNaoFiscalVinculado( String formaPagamento, String cValor, String cNumeroCupom );

   public static native int UsaComprovanteNaoFiscalVinculado( String cTexto );

   public static native int FechaComprovanteNaoFiscalVinculado();

   public static native int FechaRelatorioGerencial();

   public static native int RelatorioGerencial( String cTexto );

   public static native int RecebimentoNaoFiscal( String cIndiceTotalizador, String cValorRecebimento, String formaPagamento );

   public static native int Sangria( String cValor );

   public static native int Suprimento( String cValor, String formaPagamento );

   // Funções de Autenticação

   public static native int Autenticacao();

   public static native int ProgramaCaracterAutenticacao( String cCaracter );

   // Função de Gaveta

   public static native int VerificaEstadoGaveta( BemaInteger estado );

   // Funções de Cheque

   public static native int CancelaImpressaCheque();

   public static native int ImprimeCheque( String cNumeroBanco, String cValor, String cFavorecido,String cCidade,String cData, String cMensagem );

   public static native int ImprimeCopiaCheque();

   public static native int IncluiCidadeFavorecido( String cCidade, String cFavorecido );

   public static native int ProgramaMoedaPlural( String cMoedaPlural );

   public static native int ProgramaMoedaSingular( String cMoedaSingular );

   public static native int VerificaStatusCheque( BemaInteger status );

   // Outras Funções

   public static native int AberturaDoDia( String cValorAux, String formaPagamento );

   public static native int AbrePortaSerial();

   public static native int AbrePorta( int numero );

   public static native int FechamentoDoDia();

   public static native int FechaPortaSerial();

   public static native int ImprimeConfiguracoesImpressora();

   public static native int ImprimeDepartamentos();

   public static native int MapaResumo();

   public static native int RelatorioTipo60Analitico();

   public static native int RelatorioTipo60Mestre();

   public static native int ResetaImpressora();

   public static native int RetornoImpressora( BemaInteger ACK, BemaInteger ST1, BemaInteger ST2 );

   public static native int VerificaImpressoraLigada();

   // Funções de Bilhete de Passagem

   public static native int AbreBilhetePassagem( String cImprimeValorFim, String cImprimeEnfatizado, String cEmbarque, String cDestino, String cLinha, String cPrefixo, String cAgente, String cAgencia, String cData, String cHora, String cPoltrona, String cPlataforma );

   public static native int ContadorBilhetePassagem( BemaString contador );

   public static native int ImpressaoCarne( String cTitulo, String cParcela, String cDatas, int iQuantidade, String cTexto, String cCliente, String cRGCPF, String cCupom, int iVias, int iAssina );

   //        Funções de Informação da Impressora

   public static native int Acrescimos( BemaString valorAcrescimo );

   public static native int Cancelamentos( BemaString cancelamentos );

   public static native int CGC_IE( BemaString CGC, BemaString IE );

   public static native int ClicheProprietario( BemaString clicheProprietario );

   public static native int ContadoresTotalizadoresNaoFiscais( BemaString Contadores );

   public static native int DadosUltimaReducao( BemaString dadosReducao );

   public static native int DataHoraImpressora( BemaString data, BemaString hora );

   public static native int DataHoraReducao( BemaString data, BemaString hora );

   public static native int DataMovimento( BemaString dataMovimento );

   public static native int Descontos( BemaString descontos );

   public static native int FlagsFiscais( BemaInteger flagFiscal );

   public static native int FlagsVinculacaoIss( BemaInteger flag1, BemaInteger flag2 );

   public static native int GrandeTotal( BemaString grandeTotal );

   public static native int MinutosImprimindo( BemaString minutosImprimindo );

   public static native int MinutosLigada( BemaString minutosLigada );

   public static native int ModeloImpressora( BemaString modeloImpressora );

   public static native int MonitoramentoPapel( BemaInteger linhasImpressas );

   public static native int NumeroCaixa( BemaString numeroCaixa );

   public static native int NumeroCupom( BemaString numeroCupom );

   public static native int NumeroCuponsCancelados( BemaString numeroCuponsCancelados );

   public static native int NumeroIntervencoes( BemaString numeroIntervencoes );

   public static native int NumeroLoja( BemaString numeroLoja );

   public static native int NumeroOperacoesNaoFiscais( BemaString operacoes );

   public static native int NumeroReducoes( BemaString numeroReducoes );

   public static native int NumeroSerie( BemaString numeroSerie );

   public static native int NumeroSubstituicoesProprietario( BemaString substituicoes );

   public static native int RetornoAliquotas( BemaString aliquotas );

   public static native int SimboloMoeda( BemaString simboloMoeda );

   public static native int SubTotal( BemaString subTotal );

   public static native int UltimoItemVendido( BemaString ultimoItemVendido );

   public static native int VendaBruta( BemaString valor );

   public static native int ValorFormaPagamento( String forma, BemaString valorForma );

   public static native int ValorPagoUltimoCupom( BemaString valorUltimoCupom );

   public static native int ValorTotalizadorNaoFiscal( String totalizador, BemaString valor );

   public static native int VerificaAliquotasISS( BemaString aliquotasISS );

   public static native int VerificaDepartamentos( BemaString departamentos );

   public static native int VerificaEpromConectada( BemaString flagEprom );

   public static native int VerificaEstadoImpressora( BemaInteger ACK,BemaInteger ST1,BemaInteger ST2 );

   public static native int VerificaFormasPagamento( BemaString formasPagamento );

   public static native int VerificaIndiceAliquotasIss( BemaString indiceAliquotas );

   public static native int VerificaModoOperacao( BemaString modoOperacao );

   public static native int VerificaRecebimentoNaoFiscal( BemaString recebimentos );

   public static native int VerificaReducaoZAutomatica( BemaInteger flag );

   public static native int VerificaTipoImpressora( BemaInteger tipo );

   public static native int VerificaTotalizadoresNaoFiscais( BemaString totalizadores );

   public static native int VerificaTotalizadoresParciais( BemaString totalizadores );

   public static native int VerificaTruncamento( BemaString flagTruncamento );

   public static native int VersaoFirmware( BemaString versaoFirmware );

   // Funções para a Impressora Fiscal Restaurante

   public static native int AbreConferenciaMesa( String cMesa );

   public static native int AbreCupomRestaurante( String cMesa,String cCPF );

   public static native int CancelaVenda( String cMesa,String cCodigo, String cDescricao,String cAliqTributaria, String cQtde,String cValor, String cFlagAcrescimoDesconto, String cValorAcreDesc );

   public static native int ConferenciaMesa( String cMesa,String cFlagAcrescimoDesconto, String cTipoAcrescimoDesconto, String cValorAcrescimoDesconto );

   public static native int ContaDividida( String cNumeroCupons, String cValorPago, String cCPF );

   public static native int CardapioPelaSerial();

   public static native int FechaConferenciaMesa( String cFlagAcrescimoDesconto, String cTipoAcrescimoDesconto, String cValorAcreDesc );

   public static native int FechaCupomContaDividida( String cNumeroCupons,String cAcrescimoDesconto, String cTipoAcrescimoDesconto,String cValorAcrescimoDesconto, String formaPagamento,String valorFormaPagamento, String cValorPagoConta, String cCPF );

   public static native int FechaCupomRestaurante( String formaPagamento, String cAcrescimoDesconto, String cTipoAcrescimoDesconto, String cValorAcrescimoDesconto, String cValorPago, String cMensagem );

   public static native int FechaCupomResumidoRestaurante(String formaPagamento,String cMensagem);

   public static native int ImprimeCardapio();

   public static native int RegistraVenda( String cMesa, String cCodigo, String cDescricao, String cAliquota, String cQuantidade, String cValorUnitario, String FlagAcrescimoDesconto, String ValorAcrescimoDesconto );

   public static native int RegistroVendaSerial( String cMesa );

   public static native int RelatorioMesasAbertas( int iTipoRelatorio );

   public static native int RelatorioMesasAbertasSerial();

   public static native int TransferenciaItem( String cMesaOrigem, String cCodigo, String cDescricao, String cAliquota, String cQuantidade, String cValorUnitario, String cFlagAcrescimoDesconto, String cValorAcrescimoDesconto, String cMesaDestino );

   public static native int TransferenciaMesa( String cMesaOrigem, String cMesaDestino );

   public static native int VerificaMemoriaLivre( BemaString bytesLivres );

   // Funções da Impressora Fiscal Convênio ICMS 85/01 (matriciais e térmicas)

   public static native int AbreBilhetePassagemMFD( String cEmbarque, String cDestino, String cLinha, String cAgencia, String cData, String cHora, String cPoltrona, String cPlataforma, String cTipoPassagem, String cRG, String cNome, String cEndereco, String cUF );

   public static native int AbreComprovanteNaoFiscalVinculadoMFD( String formaPagamento, String cValor, String cNumeroCupom, String cCPF, String cNome, String cEndereco );

   public static native int AbreCupomMFD( String cCPF, String cNome, String cEndereco );

   public static native int AbreRecebimentoNaoFiscalMFD( String cCPF, String cNome, String cEndereco );

   public static native int AbreRelatorioGerencialMFD( String cTotalizador );

   public static native int AcionaGuilhotinaMFD( int modo );

   public static native int AcrescimoDescontoItemMFD( String cItem, String cAcrescimoDesconto, String cTipoAcrescimoDesconto, String cValorAcrescimoDesconto );

   public static native int AcrescimoDescontoSubtotalRecebimentoMFD( String cFlag, String cTipo, String cValor );

   public static native int AcrescimoDescontoSubtotalMFD( String cFlag, String cTipo, String cValor );

   public static native int AutenticacaoMFD( String cLinhas, String cTexto );

   public static native int CancelaAcrescimoDescontoItemMFD( String cFlag, String cItem );

   public static native int CancelaAcrescimoDescontoSubtotalMFD( String cFlag );

   public static native int CancelaAcrescimoDescontoSubtotalRecebimentoMFD( String cFlag );

   public static native int CancelaCupomMFD( String cCPF, String cNome, String cEndereco );

   public static native int CancelaRecebimentoNaoFiscalMFD( String cCPF, String cNome, String cEndereco );

   public static native int ComprovantesNaoFiscaisNaoEmitidosMFD( BemaString cComprovantes );

   public static native int CNPJMFD( BemaString cCNPJ );

   public static native int ContadorComprovantesCreditoMFD( BemaString cContador );

   public static native int ContadorCupomFiscalMFD( BemaString cContador );

   public static native int ContadorFitaDetalheMFD( BemaString cContador );

   public static native int ContadorOperacoesNaoFiscaisCanceladasMFD( BemaString cContador );

   public static native int ContadorRelatoriosGerenciaisMFD( BemaString cContador );

   public static native int ContadoresTotalizadoresNaoFiscaisMFD( BemaString cContador );

   public static native int CupomAdicionalMFD();

   public static native int DadosUltimaReducaoMFD( BemaString cDadosUltReducao );

   public static native int DataHoraUltimoDocumentoMFD( BemaString cDataHora );

   public static native int EfetuaFormaPagamentoMFD( String formaPagamento, String valorFormaPagamento, String cParcelas, String cDescricaoFormaPagto );

   public static native int EfetuaRecebimentoNaoFiscalMFD( String cIndiceTotalizador, String cValorRecebimento );

   public static native int EstornoNaoFiscalVinculadoMFD( String cCPF, String cNome, String cEndereco );

   public static native int FechaRecebimentoNaoFiscalMFD( String cMensagem );

   public static native int HabilitaDesabilitaRetornoEstendidoMFD( String cFlagRetorno );

   public static native int ImprimeChequeMFD( String cNumeroBanco, String cValor, String cFavorecido, String cCidade, String cData,String cMsg,String cImpressaoVerso, String cLinhas );

   public static native int IniciaFechamentoCupomMFD( String cAcrescimoDesconto, String cTipoAcrescimoDesconto, String cValorAcrescimo, String cValorDesconto );

   public static native int IniciaFechamentoRecebimentoNaoFiscalMFD( String cAcrescimoDesconto, String cTipoAcrescimoDesconto, String cValorAcrescimo, String cValorDesconto );

   public static native int InscricaoEstadualMFD( BemaString IE );

   public static native int InscricaoMunicipalMFD( BemaString IM );

   public static native int LeituraChequeMFD( BemaString cCMC7 );

   public static native int LeituraMemoriaFiscalDataMFD( String cDataInicial,String cDataFinal,String cFlagLeitura );

   public static native int LeituraMemoriaFiscalReducaoMFD( String cReducaoInicial,String cReducaoFinal,String cFlagLeitura );

   public static native int LeituraMemoriaFiscalSerialDataMFD( String cDataInicial,String cDataFinal,String cFlagLeitura );

   public static native int LeituraMemoriaFiscalSerialReducaoMFD( String cReducaoInicial,String cReducaoFinal,String cFlagLeitura );

   public static native int MapaResumoMFD();

   public static native int MarcaModeloTipoImpressoraMFD( BemaString marca, BemaString modelo, BemaString tipo );

   public static native int MinutosEmitindoDocumentosFiscaisMFD( BemaString cMinutos );

   public static native int NomeiaRelatorioGerencialMFD( String indice, String descricao );

   public static native int NumeroSerieMFD( BemaString cNumeroSerie );

   public static native int NumeroSerieMemoriaMFD( BemaString cNumeroSerie );

   public static native int PercentualLivreMFD( BemaString cValor );

   public static native int ProgramaFormaPagamentoMFD( String formaPagamento, String cOperacaoTef );

   public static native int ReducoesRestantesMFD( BemaString cValor );

   public static native int ReimpressaoNaoFiscalVinculadoMFD();

   public static native int RetornoImpressoraMFD( BemaInteger ACK,BemaInteger ST1,BemaInteger ST2,BemaInteger ST3 );

   public static native int SegundaViaNaoFiscalVinculadoMFD();

   public static native int SubTotalizaCupomMFD();

   public static native int SubTotalizaRecebimentoMFD();

   public static native int TotalLivreMFD( BemaString cTamanho );

   public static native int TamanhoTotalMFD( BemaString cTamanho );

   public static native int TempoOperacionalMFD( BemaString cTempo );

   public static native int TotalizaCupomMFD();

   public static native int TotalizaRecebimentoMFD();

   public static native int UsaRelatorioGerencialMFD( String cTexto );

   public static native int ValorFormaPagamentoMFD( String formaPagamento, BemaString cValorForma );

   public static native int ValorTotalizadorNaoFiscalMFD( String cTotalizador, BemaString cValor );

   public static native int VerificaFormasPagamentoMFD( BemaString formasPagamento );

   public static native int VerificaRecebimentoNaoFiscalMFD( BemaString recebimentoNaoFiscal );

   public static native int VerificaRelatorioGerencialMFD( BemaString relatorio );

   public static native int VerificaTotalizadoresNaoFiscaisMFD( BemaString totalizadores );

   public static native int VerificaTotalizadoresParciaisMFD( BemaString totalizadores );

   public static native int VersaoFirmwareMFD( BemaString versao );

   public static native int CodigoBarrasCODABARMFD( String codigo );

   public static native int CodigoBarrasCODE39MFD( String codigo );

   public static native int CodigoBarrasCODE93MFD( String barcode );

   public static native int CodigoBarrasCODE128MFD( String barcode );

   public static native int CodigoBarrasEAN13MFD( String barcode );

   public static native int CodigoBarrasEAN8MFD( String barcode );

   public static native int CodigoBarrasISBNMFD( String barcode );

   public static native int CodigoBarrasITFMFD( String barcode );

   public static native int CodigoBarrasMSIMFD( String barcode );

   public static native int CodigoBarrasPDF417MFD( int NCE, int altura,int largura,int numColunas,String barcode );

   public static native int CodigoBarrasPLESSEYMFD( String barcode );

   public static native int CodigoBarrasUPCAMFD( String barcode );

   public static native int CodigoBarrasUPCEMFD( String barcode );

   public static native int ConfiguraCodigoBarrasMFD( int altura, int largura,int posicaoCaracteres,int fonte,int margem );

   public static native int DadosSintegra( String dataInicial ,String dataFinal );

   public static native int DownloadMF( String nomeArquivo );

   public static native int DownloadMFD( String nomeArquivo,String tipoDownload,String dadoInicial,String dadoFinal,String usuario );

   public static native int DownloadSB( String nomeArquivo );

   public static native int EfetuaFormaPagamentoImpAntiga( String formaPagamento, String valorFormaPagamento );

   public static native int EfetuaFormaPagamentoIndice( String cIndice,String cValorFormaPagamento );

   public static native int EfetuaFormaPagamentoIndiceMFD( String cIndice,String cValorFormaPagamento,String cParcelas, String cDescricaoForma);

   public static native int FechaRelatorioXouZ();

   public static native int FormatoDadosMFD( String cArquivoMFD,String cDestino,String cFormato,String cTipoDownload,String cDadoInicial,String cDadoFinal,String cUsuario);

   public static native int GeraRelatorioSintegraMFD( int iRelatorios,String cOrigem,String cDestino, String cMes,String cAno,String cRazaoSocial,String cEndereco,String cNumero,String cComplemento,String cBairro,String cCidade,String cCEP,String cTelefone,String cFax,String cContato);

   public static native int ImpressaoFitaDetalhe( String tipo, String dadoInicial, String dadoFinal, String usuario );

   public static native int LeArquivoRetorno( BemaString retorno);

   public static native int ProgramaIdAplicativoMFD( String cIdAplicativo);

   public static native int ReducaoZImpAntiga();

   public static native int RegistrosTipo60();

   public static native int RelatorioGerencialImpAntiga( String texto );

   public static native int RelatorioSintegraMFD( int relatorios, String arquivo,String mes,String ano,String razaoSocial,String endereco,String numero,String complemento,String bairro,String cidade,String CEP,String telefone,String fax,String contato );

   public static native int TerminaFechamentoCupomCodigoBarrasMFD( String cMensagem,String cTipoCodigo,String cCodigo,int iAltura,int iLargura,int iPosicaoCaracteres,int iFonte,int iMargem,int iCorrecaoErros,int iColunas );

   public static native int VersaoDll( BemaString versao );

   public static native int AtivaDesativaVendaUmaLinhaMFD( int flag );

   public static native int AtivaDesativaAlinhamentoEsquerdaMFD( int flag );

   public static native int AtivaDesativaTratamentoONOFFLineMFD( int flag );

   public static native int StatusEstendidoMFD( BemaInteger status );

   public static native int TempoRestanteComprovanteMFD( BemaString tempo );

   public static native int UFProprietarioMFD( BemaString UF );

   public static native int GrandeTotalUltimaReducaoMFD( BemaString grandeTotal );

   public static native int DataMovimentoUltimaReducaoMFD( BemaString dataMovimento );

   public static native int SubTotalComprovanteNaoFiscalMFD( BemaString subTotal );

   public static native int InicioFimCOOsMFD( BemaString COOInicial, BemaString COOFinal );

   public static native int InicioFimGTsMFD( BemaString GTInicial, BemaString GTFinal );

   public static native int VerificaFlagCorteMFD( BemaInteger flag );

   public static native int SelecionaIniLocal();

   public static native int CancelaItemNaoFiscalMFD( String numeroItem );

   public static native int AcrescimoItemNaoFiscalMFD( String numeroItem , String acrDesc , String tipoAcrDesc , String valorAcrDesc );

   public static native int CancelaAcrescimoNaoFiscalMFD( String numeroItem,String acrDesc );

   public static native int ImprimeClicheMFD();

   public static native int ImprimeInformacaoChequeMFD( int posicao, int linhas, String mensagem );

   public static native int VerificaAliquotasIssImpAntiga( BemaString aliquotasIss );

   public static native int VerificaIndiceAliquotasIssImpAntiga( BemaString indices );

   public static native int InfoBalanca( BemaString porta, BemaInteger modelo, BemaString peso,BemaString precoKg, BemaString total );

   public static native int IniciaModoTEF();

   public static native int FinalizaModoTEF();

   public static native int UsaRelatorioGerencialMFDTEF( String texto );

   public static native int RelatorioGerencialTEF( String texto );

   public static native int UsaComprovanteNaoFiscalVinculadoTEF( String texto );

   public static native int VerificaEstadoImpressoraMFD( BemaInteger ACK,BemaInteger ST1,BemaInteger ST2,BemaInteger ST3 );

   public static native int RelatorioTipo60AnaliticoMFD();

   static

   {

          System.loadLibrary( "BemaFI32" );

   }

}

class BemaInteger

{

   public int number;

}

class BemaString

{

   public String buffer;

}


Declaração em VB

Declaração das Funções da BemaFI32.dll em Visual Basic

' Funções de Inicialização

Public Declare Function Bematech_FI_AlteraSimboloMoeda Lib "BEMAFI32.DLL" (ByVal SimboloMoeda As String) As Integer

Public Declare Function Bematech_FI_ProgramaAliquota Lib "BEMAFI32.DLL" (ByVal Aliquota As String, ByVal ICMS_ISS As Integer) As Integer

Public Declare Function Bematech_FI_ProgramaHorarioVerao Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_NomeiaDepartamento Lib "BEMAFI32.DLL" (ByVal Indice As Integer, ByVal Departamento As String) As Integer

Public Declare Function Bematech_FI_NomeiaTotalizadorNaoSujeitoIcms Lib "BEMAFI32.DLL" (ByVal Indice As Integer, ByVal Totalizador As String) As Integer

Public Declare Function Bematech_FI_ProgramaArredondamento Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_ProgramaTruncamento Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_LinhasEntreCupons Lib "BEMAFI32.DLL" (ByVal Linhas As Integer) As Integer

Public Declare Function Bematech_FI_EspacoEntreLinhas Lib "BEMAFI32.DLL" (ByVal Dots As Integer) As Integer

Public Declare Function Bematech_FI_ForcaImpactoAgulhas Lib "BEMAFI32.DLL" (ByVal ForcaImpacto As Integer) As Integer

' Funções do Cupom Fiscal

Public Declare Function Bematech_FI_AbreCupom Lib "BEMAFI32.DLL" (ByVal CGC_CPF As String) As Integer

Public Declare Function Bematech_FI_VendeItem Lib "BEMAFI32.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 Bematech_FI_CancelaItemAnterior Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_CancelaItemGenerico Lib "BEMAFI32.DLL" (ByVal NumeroItem As String) As Integer

Public Declare Function Bematech_FI_CancelaCupom Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_FechaCupomResumido Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal Mensagem As String) As Integer

Public Declare Function Bematech_FI_FechaCupom Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal DiscontoAcrecimo As String, ByVal TipoDescontoAcrecimo As String, ByVal ValorAcrecimoDesconto As String, ByVal ValorPago As String, ByVal Mensagem As String) As Integer

Public Declare Function Bematech_FI_VendeItemDepartamento Lib "BEMAFI32.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 Bematech_FI_AumentaDescricaoItem Lib "BEMAFI32.DLL" (ByVal Descricao As String) As Integer

Public Declare Function Bematech_FI_UsaUnidadeMedida Lib "BEMAFI32.DLL" (ByVal UnidadeMedida As String) As Integer

Public Declare Function Bematech_FI_EstornoFormasPagamento Lib "BEMAFI32.DLL" (ByVal FormaOrigem As String, ByVal FormaDestino As String, ByVal Valor As String) As Integer

Public Declare Function Bematech_FI_IniciaFechamentoCupom Lib "BEMAFI32.DLL" (ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String) As Integer

Public Declare Function Bematech_FI_EfetuaFormaPagamento Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String) As Integer

Public Declare Function Bematech_FI_EfetuaFormaPagamentoDescricaoForma Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String, ByVal DescricaoOpcional As String) As Integer

Public Declare Function Bematech_FI_TerminaFechamentoCupom Lib "BEMAFI32.DLL" (ByVal Mensagem As String) As Integer

' Funções dos Relatórios Fiscais

Public Declare Function Bematech_FI_LeituraX Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_LeituraXSerial Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_ReducaoZ Lib "BEMAFI32.DLL" (ByVal Data As String, ByVal Hora As String) As Integer

Public Declare Function Bematech_FI_RelatorioGerencial Lib "BEMAFI32.DLL" (ByVal cTexto As String) As Integer

Public Declare Function Bematech_FI_RelatorioGerencialTEF Lib "BEMAFI32.DLL" (ByVal cTexto As String) As Integer

Public Declare Function Bematech_FI_FechaRelatorioGerencial Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_LeituraMemoriaFiscalData Lib "BEMAFI32.DLL" (ByVal cDataInicial As String, ByVal cDataFinal As String) As Integer

Public Declare Function Bematech_FI_LeituraMemoriaFiscalReducao Lib "BEMAFI32.DLL" (ByVal cReducaoInicial As String, ByVal cReducaoFinal As String) As Integer

Public Declare Function Bematech_FI_LeituraMemoriaFiscalSerialData Lib "BEMAFI32.DLL" (ByVal cDataInicial As String, ByVal cDataFinal As String) As Integer

Public Declare Function Bematech_FI_LeituraMemoriaFiscalSerialReducao Lib "BEMAFI32.DLL" (ByVal cReducaoInicial As String, ByVal cReducaoFinal As String) As Integer

' Funções das Operações Não Fiscais

Public Declare Function Bematech_FI_RecebimentoNaoFiscal Lib "BEMAFI32.DLL" (ByVal IndiceTotalizador As String, ByVal Valor As String, ByVal FormaPagamento As String) As Integer

Public Declare Function Bematech_FI_AbreComprovanteNaoFiscalVinculado Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal Valor As String, ByVal NumeroCupom As String) As Integer

Public Declare Function Bematech_FI_UsaComprovanteNaoFiscalVinculado Lib "BEMAFI32.DLL" (ByVal Texto As String) As Integer

Public Declare Function Bematech_FI_UsaComprovanteNaoFiscalVinculadoTEF Lib "BEMAFI32.DLL" (ByVal Texto As String) As Integer

Public Declare Function Bematech_FI_FechaComprovanteNaoFiscalVinculado Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_Sangria Lib "BEMAFI32.DLL" (ByVal Valor As String) As Integer

Public Declare Function Bematech_FI_Suprimento Lib "BEMAFI32.DLL" (ByVal Valor As String, ByVal FormaPagamento As String) As Integer

' Funções de Informação da Impressora

Public Declare Function Bematech_FI_NumeroSerie Lib "BEMAFI32.DLL" (ByVal NumeroSerie As String) As Integer

Public Declare Function Bematech_FI_NumeroSerieCriptografado Lib "BEMAFI32.DLL" (ByVal NumeroSerie As String) As Integer

Public Declare Function Bematech_FI_NumeroSerieDescriptografado Lib "BEMAFI32.DLL" (ByVal NumeroSerieCriptografado As String, ByVal NumeroSerieDescriptografado As String) As Integer

Public Declare Function Bematech_FI_SubTotal Lib "BEMAFI32.DLL" (ByVal SubTotal As String) As Integer

Public Declare Function Bematech_FI_NumeroCupom Lib "BEMAFI32.DLL" (ByVal NumeroCupom As String) As Integer

Public Declare Function Bematech_FI_VersaoFirmware Lib "BEMAFI32.DLL" (ByVal VersaoFirmware As String) As Integer

Public Declare Function Bematech_FI_CGC_IE Lib "BEMAFI32.DLL" (ByVal CGC As String, ByVal IE As String) As Integer

Public Declare Function Bematech_FI_GrandeTotal Lib "BEMAFI32.DLL" (ByVal GrandeTotal As String) As Integer

Public Declare Function Bematech_FI_Cancelamentos Lib "BEMAFI32.DLL" (ByVal ValorCancelamentos As String) As Integer

Public Declare Function Bematech_FI_Descontos Lib "BEMAFI32.DLL" (ByVal ValorDescontos As String) As Integer

Public Declare Function Bematech_FI_NumeroOperacoesNaoFiscais Lib "BEMAFI32.DLL" (ByVal NumeroOperacoes As String) As Integer

Public Declare Function Bematech_FI_NumeroCuponsCancelados Lib "BEMAFI32.DLL" (ByVal NumeroCancelamentos As String) As Integer

Public Declare Function Bematech_FI_NumeroIntervencoes Lib "BEMAFI32.DLL" (ByVal NumeroIntervencoes As String) As Integer

Public Declare Function Bematech_FI_NumeroReducoes Lib "BEMAFI32.DLL" (ByVal NumeroReducoes As String) As Integer

Public Declare Function Bematech_FI_NumeroSubstituicoesProprietario Lib "BEMAFI32.DLL" (ByVal NumeroSubstituicoes As String) As Integer

Public Declare Function Bematech_FI_UltimoItemVendido Lib "BEMAFI32.DLL" (ByVal NumeroItem As String) As Integer

Public Declare Function Bematech_FI_ClicheProprietario Lib "BEMAFI32.DLL" (ByVal Cliche As String) As Integer

Public Declare Function Bematech_FI_NumeroCaixa Lib "BEMAFI32.DLL" (ByVal NumeroCaixa As String) As Integer

Public Declare Function Bematech_FI_NumeroLoja Lib "BEMAFI32.DLL" (ByVal NumeroLoja As String) As Integer

Public Declare Function Bematech_FI_SimboloMoeda Lib "BEMAFI32.DLL" (ByVal SimboloMoeda As String) As Integer

Public Declare Function Bematech_FI_MinutosLigada Lib "BEMAFI32.DLL" (ByVal Minutos As String) As Integer

Public Declare Function Bematech_FI_MinutosImprimindo Lib "BEMAFI32.DLL" (ByVal Minutos As String) As Integer

Public Declare Function Bematech_FI_VerificaModoOperacao Lib "BEMAFI32.DLL" (ByVal Modo As String) As Integer

Public Declare Function Bematech_FI_VerificaEpromConectada Lib "BEMAFI32.DLL" (ByVal Flag As String) As Integer

Public Declare Function Bematech_FI_FlagsFiscais Lib "BEMAFI32.DLL" (ByRef Flag As Integer) As Integer

Public Declare Function Bematech_FI_ValorPagoUltimoCupom Lib "BEMAFI32.DLL" (ByVal ValorCupom As String) As Integer

Public Declare Function Bematech_FI_DataHoraImpressora Lib "BEMAFI32.DLL" (ByVal Data As String, ByVal Hora As String) As Integer

Public Declare Function Bematech_FI_ContadoresTotalizadoresNaoFiscais Lib "BEMAFI32.DLL" (ByVal Contadores As String) As Integer

Public Declare Function Bematech_FI_VerificaTotalizadoresNaoFiscais Lib "BEMAFI32.DLL" (ByVal Totalizadores As String) As Integer

Public Declare Function Bematech_FI_DataHoraReducao Lib "BEMAFI32.DLL" (ByVal Data As String, ByVal Hora As String) As Integer

Public Declare Function Bematech_FI_DataMovimento Lib "BEMAFI32.DLL" (ByVal Data As String) As Integer

Public Declare Function Bematech_FI_VerificaTruncamento Lib "BEMAFI32.DLL" (ByVal Flag As String) As Integer

Public Declare Function Bematech_FI_Acrescimos Lib "BEMAFI32.DLL" (ByVal ValorAcrescimos As String) As Integer

Public Declare Function Bematech_FI_ContadorBilhetePassagem Lib "BEMAFI32.DLL" (ByVal ContadorPassagem As String) As Integer

Public Declare Function Bematech_FI_VerificaAliquotasIss Lib "BEMAFI32.DLL" (ByVal AliquotasIss As String) As Integer

Public Declare Function Bematech_FI_VerificaFormasPagamento Lib "BEMAFI32.DLL" (ByVal Formas As String) As Integer

Public Declare Function Bematech_FI_VerificaRecebimentoNaoFiscal Lib "BEMAFI32.DLL" (ByVal Recebimentos As String) As Integer

Public Declare Function Bematech_FI_VerificaDepartamentos Lib "BEMAFI32.DLL" (ByVal Departamentos As String) As Integer

Public Declare Function Bematech_FI_VerificaTipoImpressora Lib "BEMAFI32.DLL" (ByRef TipoImpressora As String) As Integer

Public Declare Function Bematech_FI_VerificaTotalizadoresParciais Lib "BEMAFI32.DLL" (ByVal cTotalizadores As String) As Integer

Public Declare Function Bematech_FI_RetornoAliquotas Lib "BEMAFI32.DLL" (ByVal cAliquotas As String) As Integer

Public Declare Function Bematech_FI_DadosUltimaReducao Lib "BEMAFI32.DLL" (ByVal DadosReducao As String) As Integer

Public Declare Function Bematech_FI_MonitoramentoPapel Lib "BEMAFI32.DLL" (ByRef Linhas As String) As Integer

Public Declare Function Bematech_FI_ValorFormaPagamento Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal Valor As String) As Integer

Public Declare Function Bematech_FI_ValorTotalizadorNaoFiscal Lib "BEMAFI32.DLL" (ByVal Totalizador As String, ByVal Valor As String) As Integer

Public Declare Function Bematech_FI_TotalIcmsCupom Lib "BEMAFI32.DLL" (ByVal ValorIcms As String) As Integer

Public Declare Function Bematech_FI_DataHoraGravacaoUsuarioSWBasicoMFAdicional  Lib"BEMAFI32.DLL" (ByVal dataUsuario As String, ByVal dataSWBasico As String,  ByValMFAdicional As String) As Integer

' Funções de Autenticação

Public Declare Function Bematech_FI_Autenticacao Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_ProgramaCaracterAutenticacao Lib "BEMAFI32.DLL" (ByVal Parametros As String) As Integer

' Funções de Gaveta de Dinheiro

Public Declare Function Bematech_FI_AcionaGaveta Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_VerificaEstadoGaveta Lib "BEMAFI32.DLL" (ByRef EstadoGaveta As Integer) As Integer

' Funções de Impressão de Cheques

Public Declare Function Bematech_FI_ProgramaMoedaSingular Lib "BEMAFI32.DLL" (ByVal MoedaSingular As String) As Integer

Public Declare Function Bematech_FI_ProgramaMoedaPlural Lib "BEMAFI32.DLL" (ByVal MoedaPlural As String) As Integer

Public Declare Function Bematech_FI_CancelaImpressaoCheque Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_VerificaStatusCheque Lib "BEMAFI32.DLL" (ByRef StatusCheque As Integer) As Integer

Public Declare Function Bematech_FI_ImprimeCheque Lib "BEMAFI32.DLL" (ByVal Banco As String, ByVal Valor As String, ByVal Favorecido As String, ByVal Cidade As String, ByVal Data As String, ByVal Mensagem As String) As Integer

Public Declare Function Bematech_FI_IncluiCidadeFavorecido Lib "BEMAFI32.DLL" (ByVal Cidade As String, ByVal Favorecido As String) As Integer

' Funções da Impressora Restaurante

Public Declare Function Bematech_FIR_RegistraVenda Lib "BEMAFI32.DLL" (ByVal Mesa As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal ValorUnitario As String, ByVal FlagAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String) As Integer

Public Declare Function Bematech_FIR_CancelaVenda Lib "BEMAFI32.DLL" (ByVal Mesa As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal ValorUnitario As String, ByVal FlagAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String) As Integer

Public Declare Function Bematech_FIR_ConferenciaMesa Lib "BEMAFI32.DLL" (ByVal Mesa As String, ByVal FlagAcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String) As Integer

Public Declare Function Bematech_FIR_AbreConferenciaMesa Lib "BEMAFI32.DLL" (ByVal Mesa As String) As Integer

Public Declare Function Bematech_FIR_FechaConferenciaMesa Lib "BEMAFI32.DLL" (ByVal FlagAcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String) As Integer

Public Declare Function Bematech_FIR_TransferenciaMesa Lib "BEMAFI32.DLL" (ByVal MesaOrigem As String, ByVal MesaDestino As String) As Integer

Public Declare Function Bematech_FIR_AbreCupomRestaurante Lib "BEMAFI32.DLL" (ByVal Mesa As String, ByVal CGC_CPF As String) As Integer

Public Declare Function Bematech_FIR_ContaDividida Lib "BEMAFI32.DLL" (ByVal NumeroCupons As String, ByVal ValorPago As String, ByVal CGC_CPF As String) As Integer

Public Declare Function Bematech_FIR_FechaCupomContaDividida Lib "BEMAFI32.DLL" (ByVal NumeroCupons As String, ByVal FlagAcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String, ByVal FormasPagamento As String, ByVal ValorFormasPagamento As String, ByVal ValorPagoCliente As String, ByVal CGC_CPF As String) As Integer

Public Declare Function Bematech_FIR_TransferenciaItem Lib "BEMAFI32.DLL" (ByVal MesaOrigem As String, ByVal Codigo As String, ByVal Descricao As String, ByVal Aliquota As String, ByVal Quantidade As String, ByVal ValorUnitario As String, ByVal FlagAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String, ByVal MesaDestino As String) As Integer

Public Declare Function Bematech_FIR_RelatorioMesasAbertas Lib "BEMAFI32.DLL" (ByVal TipoRelatorio As String) As Integer

Public Declare Function Bematech_FIR_ImprimeCardapio Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FIR_RelatorioMesasAbertasSerial Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FIR_CardapioPelaSerial Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FIR_RegistroVendaSerial Lib "BEMAFI32.DLL" (ByVal Mesa As String) As Integer

Public Declare Function Bematech_FIR_VerificaMemoriaLivre Lib "BEMAFI32.DLL" (ByVal Bytes As String) As Integer

Public Declare Function Bematech_FIR_FechaCupomRestaurante Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal DiscontoAcrecimo As String, ByVal TipoDescontoAcrecimo As String, ByVal ValorAcrecimoDesconto As String, ByVal ValorPago As String, ByVal Mensagem As String) As Integer

Public Declare Function Bematech_FIR_FechaCupomResumidoRestaurante Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal Mensagem As String) As Integer

' Funções de Bilhete de Passagem

Public Declare Function Bematech_FI_AbreBilhetePassagem Lib "BEMAFI32.DLL" (ByVal ImprimeValorFinal As String, ByVal ImprimeEnfatizado As String, ByVal LocalEmbarque As String, ByVal Destino As String, ByVal Linha As String, ByVal Prefixo As String, ByVal Agente As String, ByVal Agencia As String, ByVal Data As String, ByVal Hora As String, ByVal Poltrona As String, ByVal Plataforma As String) As Integer

' Outras Funções

Public Declare Function Bematech_FI_ResetaImpressora Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_AbrePortaSerial Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_VerificaEstadoImpressora Lib "BemaFi32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer

Public Declare Function Bematech_FI_RetornoImpressora Lib "BEMAFI32.DLL" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer) As Integer

Public Declare Function Bematech_FI_FechaPortaSerial Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_VerificaImpressoraLigada Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_MapaResumo Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_RelatorioTipo60Analitico Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_RelatorioTipo60Mestre Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_ImprimeConfiguracoesImpressora Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_ImprimeDepartamentos Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_AberturaDoDia Lib "BEMAFI32.DLL" (ByVal Valor As String, ByVal FormaPagamento As String) As Integer

Public Declare Function Bematech_FI_FechamentoDoDia Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_ImpressaoCarne Lib "BEMAFI32.DLL" (ByVal Titulo As String,  ByVal Percelas As String, ByVal Datas As String, ByVal Quantidade As Integer, ByVal Texto As String, ByVal Cliente As String, ByVal RG_CPF As String, ByVal Cupom As String, ByVal Vias As Integer, ByVal Assina As Integer) As Integer

Public Declare Function Bematech_FI_InfoBalanca Lib "BEMAFI32.DLL" (ByVal Porta As String,  ByVal Modelo As Integer, ByVal Peso As String, ByVal PrecoKilo As String, ByVal Total As String) As Integer

Public Declare Function Bematech_FI_DadosSintegra Lib "BEMAFI32.DLL" (ByVal DataInicial As String, ByVal DataFinal As String) As Integer

Public Declare Function Bematech_FI_IniciaModoTEF Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_FinalizaModoTEF Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_VersaoDll Lib "BEMAFI32.DLL" (ByVal Versao As String) As Integer

Public Declare Function Bematech_FI_RegistrosTipo60 Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_LeArquivoRetorno Lib "BEMAFI32.DLL" (ByVal Retorno As String) As Integer

Public Declare Function Bematech_FI_GeraRegistrosCAT52MFD Lib "BEMAFI32.DLL" (ByVal cArquivo As String, ByVal cData As String) As Integer

Public Declare Function Bematech_FI_GeraRegistrosCAT52MFDEx Lib "BEMAFI32.DLL" (ByVal cArquivo As String, ByVal cData As String, ByVal cArqDestino As String) As Integer

' Funções da Impressora Fiscal MFD

Public Declare Function Bematech_FI_AbreCupomMFD Lib "BEMAFI32.DLL" (ByVal CGC As String, ByVal Nome As String, ByVal Endereco As String) As Integer

Public Declare Function Bematech_FI_CancelaCupomMFD Lib "BEMAFI32.DLL" (ByVal CGC As String, ByVal Nome As String, ByVal Endereco As String) As Integer

Public Declare Function Bematech_FI_ProgramaFormaPagamentoMFD Lib "BEMAFI32.DLL" (ByVal FormaPagto As String, ByVal OperacaoTef As String) As Integer

Public Declare Function Bematech_FI_EfetuaFormaPagamentoMFD Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal ValorFormaPagamento As String, ByVal Parcelas As String, ByVal DescricaoFormaPagto As String) As Integer

Public Declare Function Bematech_FI_CupomAdicionalMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_AcrescimoDescontoItemMFD Lib "BEMAFI32.DLL" (ByVal Item As String, ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String) As Integer

Public Declare Function Bematech_FI_NomeiaRelatorioGerencialMFD Lib "BEMAFI32.DLL" (ByVal Indice As String, ByVal Descricao As String) As Integer

Public Declare Function Bematech_FI_AutenticacaoMFD Lib "BEMAFI32.DLL" (ByVal Linhas As String, ByVal Texto As String) As Integer

Public Declare Function Bematech_FI_AbreComprovanteNaoFiscalVinculadoMFD Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal Valor As String, ByVal NumeroCupom As String, ByVal CGC As String, ByVal Nome As String, ByVal Endereco As String) As Integer

Public Declare Function Bematech_FI_ReimpressaoNaoFiscalVinculadoMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_AbreRecebimentoNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal CGC As String, ByVal Nome As String, ByVal Endereco As String) As Integer

Public Declare Function Bematech_FI_EfetuaRecebimentoNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal IndiceTotalizador As String, ByVal ValorRecebimento As String) As Integer

Public Declare Function Bematech_FI_IniciaFechamentoRecebimentoNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimo As String, ByVal ValorDesconto As String) As Integer

Public Declare Function Bematech_FI_FechaRecebimentoNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal Mensagem As String) As Integer

Public Declare Function Bematech_FI_CancelaRecebimentoNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal CGC As String, ByVal Nome As String, ByVal Endereco As String) As Integer

Public Declare Function Bematech_FI_AbreRelatorioGerencialMFD Lib "BEMAFI32.DLL" (ByVal Indice As String) As Integer

Public Declare Function Bematech_FI_UsaRelatorioGerencialMFD Lib "BEMAFI32.DLL" (ByVal Texto As String) As Integer

Public Declare Function Bematech_FI_UsaRelatorioGerencialMFDTEF Lib "BEMAFI32.DLL" (ByVal Texto As String) As Integer

Public Declare Function Bematech_FI_SegundaViaNaoFiscalVinculadoMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_EstornoNaoFiscalVinculadoMFD Lib "BEMAFI32.DLL" (ByVal CGC As String, ByVal Nome As String, ByVal Endereco As String) As Integer

Public Declare Function Bematech_FI_NumeroSerieMFD Lib "BEMAFI32.DLL" (ByVal NumeroSerie As String) As Integer

Public Declare Function Bematech_FI_VersaoFirmwareMFD Lib "BEMAFI32.DLL" (ByVal VersaoFirmware As String) As Integer

Public Declare Function Bematech_FI_CNPJMFD Lib "BEMAFI32.DLL" (ByVal CNPJ As String) As Integer

Public Declare Function Bematech_FI_InscricaoEstadualMFD Lib "BEMAFI32.DLL" (ByVal InscricaoEstadual As String) As Integer

Public Declare Function Bematech_FI_InscricaoMunicipalMFD Lib "BEMAFI32.DLL" (ByVal InscricaoMunicipal As String) As Integer

Public Declare Function Bematech_FI_TempoOperacionalMFD Lib "BEMAFI32.DLL" (ByVal TempoOperacional As String) As Integer

Public Declare Function Bematech_FI_MinutosEmitindoDocumentosFiscaisMFD Lib "BEMAFI32.DLL" (ByVal Minutos As String) As Integer

Public Declare Function Bematech_FI_ContadoresTotalizadoresNaoFiscaisMFD Lib "BEMAFI32.DLL" (ByVal Contadores As String) As Integer

Public Declare Function Bematech_FI_VerificaTotalizadoresNaoFiscaisMFD Lib "BEMAFI32.DLL" (ByVal Totalizadores As String) As Integer

Public Declare Function Bematech_FI_VerificaFormasPagamentoMFD Lib "BEMAFI32.DLL" (ByVal FormasPagamento As String) As Integer

Public Declare Function Bematech_FI_VerificaRecebimentoNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal Recebimentos As String) As Integer

Public Declare Function Bematech_FI_VerificaRelatorioGerencialMFD Lib "BEMAFI32.DLL" (ByVal Relatorios As String) As Integer

Public Declare Function Bematech_FI_ContadorComprovantesCreditoMFD Lib "BEMAFI32.DLL" (ByVal Comprovantes As String) As Integer

Public Declare Function Bematech_FI_ContadorOperacoesNaoFiscaisCanceladasMFD Lib "BEMAFI32.DLL" (ByVal OperacoesCanceladas As String) As Integer

Public Declare Function Bematech_FI_ContadorRelatoriosGerenciaisMFD Lib "BEMAFI32.DLL" (ByVal Relatorios As String) As Integer

Public Declare Function Bematech_FI_ContadorCupomFiscalMFD Lib "BEMAFI32.DLL" (ByVal CuponsEmitidos As String) As Integer

Public Declare Function Bematech_FI_ContadorFitaDetalheMFD Lib "BEMAFI32.DLL" (ByVal ContadorFita As String) As Integer

Public Declare Function Bematech_FI_ComprovantesNaoFiscaisNaoEmitidosMFD Lib "BEMAFI32.DLL" (ByVal Comprovantes As String) As Integer

Public Declare Function Bematech_FI_NumeroSerieMemoriaMFD Lib "BEMAFI32.DLL" (ByVal NumeroSerieMFD As String) As Integer

Public Declare Function Bematech_FI_ReducoesRestantesMFD Lib "BEMAFI32.DLL" (ByVal Reducoes As String) As Integer

Public Declare Function Bematech_FI_MarcaModeloTipoMFD Lib "BEMAFI32.DLL" (ByVal Marca As String, ByVal Modelo As String, ByVal Tipo As String) As Integer

Public Declare Function Bematech_FI_VerificaTotalizadoresParciaisMFD Lib "BEMAFI32.DLL" (ByVal Totalizadores As String) As Integer

Public Declare Function Bematech_FI_DadosUltimaReducaoMFD Lib "BEMAFI32.DLL" (ByVal DadosReducao As String) As Integer

Public Declare Function Bematech_FI_LeituraMemoriaFiscalDataMFD Lib "BEMAFI32.DLL" (ByVal DataInicial As String, ByVal DataFinal As String, ByVal FlagLeitura As String) As Integer

Public Declare Function Bematech_FI_LeituraMemoriaFiscalReducaoMFD Lib "BEMAFI32.DLL" (ByVal ReducaoInicial As String, ByVal ReducaoFinal As String, ByVal FlagLeitura As String) As Integer

Public Declare Function Bematech_FI_LeituraMemoriaFiscalSerialDataMFD Lib "BEMAFI32.DLL" (ByVal DataInicial As String, ByVal DataFinal As String, ByVal FlagLeitura As String) As Integer

Public Declare Function Bematech_FI_LeituraMemoriaFiscalSerialReducaoMFD Lib "BEMAFI32.DLL" (ByVal ReducaoInicial As String, ByVal ReducaoFinal As String, ByVal FlagLeitura As String) As Integer

Public Declare Function Bematech_FI_LeituraChequeMFD Lib "BEMAFI32.DLL" (ByVal CodigoCMC7 As String) As Integer

Public Declare Function Bematech_FI_ImprimeChequeMFD Lib "BEMAFI32.DLL" (ByVal NumeroBanco As String, ByVal Valor As String, ByVal Favorecido As String, ByVal Cidade As String, ByVal Data As String, ByVal Mensagem As String, ByVal ImpressaoVerso As String, ByVal Linhas As String) As Integer

Public Declare Function Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD Lib "BEMAFI32.DLL" (ByVal FlagRetorno As String) As Integer

Public Declare Function Bematech_FI_RetornoImpressoraMFD Lib "BEMAFI32.DLL" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer, ByRef ST3 As Integer) As Integer

Public Declare Function Bematech_FI_AbreBilhetePassagemMFD Lib "BEMAFI32.DLL" (ByVal Embarque As String, ByVal Destino As String, ByVal Linha As String, ByVal Agencia As String, ByVal Data As String, ByVal Hora As String, ByVal Poltrona As String, ByVal Plataforma As String, ByVal TipoPassagem As String, ByVal RGCliente As String, ByVal NomeCliente As String, ByVal EnderecoCliente As String, ByVal UFDetino As String) As Integer

Public Declare Function Bematech_FI_CancelaAcrescimoDescontoItemMFD Lib "BEMAFI32.DLL" (ByVal cFlag As String, ByVal cItem As String) As Integer

Public Declare Function Bematech_FI_SubTotalizaCupomMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_SubTotalizaRecebimentoMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_TotalLivreMFD Lib "BEMAFI32.DLL" (ByVal cMemoriaLivre As String) As Integer

Public Declare Function Bematech_FI_TamanhoTotalMFD Lib "BEMAFI32.DLL" (ByVal cTamMFD As String) As Integer

Public Declare Function Bematech_FI_AcrescimoDescontoSubtotalRecebimentoMFD Lib "BEMAFI32.DLL" (ByVal cFlag As String, ByVal cTipo As String, ByVal cValor As String) As Integer

Public Declare Function Bematech_FI_AcrescimoDescontoSubtotalMFD Lib "BEMAFI32.DLL" (ByVal cFlag As String, ByVal cTipo As String, ByVal cValor As String) As Integer

Public Declare Function Bematech_FI_CancelaAcrescimoDescontoSubtotalMFD Lib "BEMAFI32.DLL" (ByVal cFlag As String) As Integer

Public Declare Function Bematech_FI_CancelaAcrescimoDescontoSubtotalRecebimentoMFD Lib "BEMAFI32.DLL" (ByVal cFlag As String) As Integer

Public Declare Function Bematech_FI_TotalizaCupomMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_TotalizaRecebimentoMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_PercentualLivreMFD Lib "BEMAFI32.DLL" (ByVal cMemoriaLivre As String) As Integer

Public Declare Function Bematech_FI_DataHoraUltimoDocumentoMFD Lib "BEMAFI32.DLL" (ByVal cDataHora As String) As Integer

Public Declare Function Bematech_FI_MapaResumoMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_RelatorioTipo60AnaliticoMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_ValorFormaPagamentoMFD Lib "BEMAFI32.DLL" (ByVal FormaPagamento As String, ByVal Valor As String) As Integer

Public Declare Function Bematech_FI_ValorTotalizadorNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal Totalizador As String, ByVal Valor As String) As Integer

Public Declare Function Bematech_FI_MarcaModeloTipoImpressoraMFD Lib "BEMAFI32.DLL" (ByVal Marca As String, ByVal Modelo As String, ByVal Tipo As String) As Integer

Public Declare Function Bematech_FI_VerificaEstadoImpressoraMFD Lib "BemaFi32.dll" (ByRef ACK As Integer, ByRef ST1 As Integer, ByRef ST2 As Integer, ByRef ST3 As Integer) As Integer

Public Declare Function Bematech_FI_IniciaFechamentoCupomMFD Lib "BEMAFI32.DLL" (ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimo As String, ByVal ValorDesconto As String) As Integer

Public Declare Function Bematech_FI_RelatorioSintegraMFD Lib "BEMAFI32.DLL" (ByVal Relatorios As Integer, ByVal Arquivo As String, ByVal Mes As String, ByVal cAno As String, ByVal RazaoSocial As String, ByVal Endereco As String, ByVal Numero As String, ByVal Complemento As String, ByVal Bairro As String, ByVal Cidade As String, ByVal CEP As String, ByVal Telefone As String, ByVal Fax As String, ByVal Contato As String) As Integer

Public Declare Function Bematech_FI_GeraRelatorioSintegraMFD Lib "BEMAFI32.DLL" (ByVal Relatorios As Integer, ByVal ArquivoOrigem As String, ByVal ArquivoDestino As String, ByVal Mes As String, ByVal cAno As String, ByVal RazaoSocial As String, ByVal Endereco As String, ByVal Numero As String, ByVal Complemento As String, ByVal Bairro As String, ByVal Cidade As String, ByVal CEP As String, ByVal Telefone As String, ByVal Fax As String, ByVal Contato As String) As Integer

Public Declare Function Bematech_FI_CancelaItemNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal NumeroItem As String) As Integer

Public Declare Function Bematech_FI_AcrescimoItemNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal NumeroItem As String, ByVal AcrescimoDesconto As String, ByVal TipoAcrescimoDesconto As String, ByVal ValorAcrescimoDesconto As String)  As Integer

Public Declare Function Bematech_FI_CancelaAcrescimoNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal NumeroItem As String, ByVal AcrescimoDesconto As String)  As Integer

Public Declare Function Bematech_FI_TerminaFechamentoCupomCodigoBarrasMFD Lib "BEMAFI32.DLL" (ByVal cMensagem As String, ByVal cTipoCodigo As String, ByVal cCodigo As String, ByVal iAltura As Integer, ByVal iLargura As Integer, ByVal iPosicaoCaracteres As Integer, ByVal iFonte As Integer, ByVal iMargem As Integer, ByVal iCorrecaoErros As Integer, ByVal iColunas As Integer) As Integer

Public Declare Function Bematech_FI_ImprimeClicheMFD Lib "BEMAFI32.DLL" () As Integer

Public Declare Function Bematech_FI_ImprimeInformacaoChequeMFD Lib "BEMAFI32.DLL" (ByVal Posicao As Integer, ByVal Linhas As Integer, ByVal Mensagem As String) As Integer

Public Declare Function Bematech_FI_DownloadMF Lib "BEMAFI32.DLL" (ByVal Arquivo As String) As Integer

Public Declare Function Bematech_FI_DownloadMFD Lib "BEMAFI32.DLL" (ByVal Arquivo As String, ByVal TipoDownload As String, ByVal ParametroInicial As String, ByVal ParametroFinal As String, ByVal UsuarioECF As String) As Integer

Public Declare Function Bematech_FI_FormatoDadosMFD Lib "BEMAFI32.DLL" (ByVal ArquivoOrigem As String, ByVal ArquivoDestino As String, ByVal TipoFormato As String, ByVal TipoDownload As String, ByVal ParametroInicial As String, ByVal ParametroFinal As String, ByVal UsuarioECF As String) As Integer

' Funções disponíveis somente na impressora fiscal MP-2000 TH FI versão 01.01.01 ou 01.00.02

Public Declare Function Bematech_FI_AtivaDesativaVendaUmaLinhaMFD Lib "BEMAFI32.DLL" (ByVal iFlag As Integer) As Integer

Public Declare Function Bematech_FI_AtivaDesativaAlinhamentoEsquerdaMFD Lib "BEMAFI32.DLL" (ByVal iFlag As Integer) As Integer

Public Declare Function Bematech_FI_AtivaDesativaCorteProximoMFD Lib "BEMAFI32.DLL" As Integer

Public Declare Function Bematech_FI_AtivaDesativaTratamentoONOFFLineMFD Lib "BEMAFI32.DLL" (ByVal iFlag As Integer) As Integer

Public Declare Function Bematech_FI_StatusEstendidoMFD Lib "BEMAFI32.DLL" (ByRef iStatus As Integer) As Integer

Public Declare Function Bematech_FI_VerificaFlagCorteMFD Lib "BEMAFI32.DLL" (ByRef iFlag As Integer) As Integer

Public Declare Function Bematech_FI_TempoRestanteComprovanteMFD Lib "BEMAFI32.DLL" (ByVal cTempo As String) As Integer

Public Declare Function Bematech_FI_UFProprietarioMFD Lib "BEMAFI32.DLL" (ByVal cUF As String) As Integer

Public Declare Function Bematech_FI_GrandeTotalUltimaReducaoMFD Lib "BEMAFI32.DLL" (ByVal cGT As String) As Integer

Public Declare Function Bematech_FI_DataMovimentoUltimaReducaoMFD Lib "BEMAFI32.DLL" (ByVal cData As String) As Integer

Public Declare Function Bematech_FI_SubTotalComprovanteNaoFiscalMFD Lib "BEMAFI32.DLL" (ByVal cSubTotal As String) As Integer

Public Declare Function Bematech_FI_InicioFimCOOsMFD Lib "BEMAFI32.DLL" (ByVal cCOOIni As String, ByVal cCOOFim As String) As Integer

Public Declare Function Bematech_FI_InicioFimGTsMFD Lib "BEMAFI32.DLL"(ByVal cGTIni As String, ByVal cGTFim As String) As Integer

' Função para Configuração dos Códigos de Barras

Public Declare Function Bematech_FI_ConfiguraCodigoBarrasMFD Lib "BEMAFI32.DLL" (ByVal Altura As Integer, ByVal Largura As Integer, ByVal PosicaoCaracteres As Integer, ByVal Fonte As Integer, ByVal Margem As Integer) As Integer

' Funções para Impressão dos Códigos de Barras

Public Declare Function Bematech_FI_CodigoBarrasUPCAMFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasUPCEMFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasEAN13MFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasEAN8MFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasCODE39MFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasCODE93MFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasCODE128MFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasITFMFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasCODABARMFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasISBNMFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasMSIMFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasPLESSEYMFD Lib "BEMAFI32.DLL" (ByVal Codigo As String) As Integer

Public Declare Function Bematech_FI_CodigoBarrasPDF417MFD Lib "BEMAFI32.DLL" (ByVal NivelCorrecaoErros As Integer, ByVal Altura As Integer, ByVal Largura As Integer, ByVal Colunas As Integer, ByVal Codigo As String) As Integer


Bematech_FI_FlagsFiscaisStr

Retorna um número referente ao flag fiscal da impressora.

Parâmetro:

FlagFiscal: Variável STRING para receber um número representando o flag fiscal da impressora. Veja discriminação abaixo.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observações:

- Discriminação dos valores para o flag fiscal:

Descrição                                    Valor

Cupom fiscal aberto                            1

Fechamento de formas de pagamento 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.

- Para a impressora fiscal YANCO, os flags "Fechamento de formas de pagamento iniciado" e "Permite cancelar cupom fiscal" não existem.

Exemplo:

Se o retorno for 37, as estado da impressora será: Cupom fiscal aberto, Horário de verão selecionado e Permite cancelar o cupom fiscal.


generateEAD

Gera a assinatura EAD do arquivo a partir das chaves pública e privada informadas.

Parâmetros:

cNomeArquivo: Variável STRING com o cominho+nome do arquivo que será usado na geração do registro EAD.

cChavePublica: Variável STRING com a chave pública gerada.

cChavePrivada: Variável STRING com a chave privada gerada.

cRegistroEAD: Variável STRING com o tamanho de 256 bytes para receber o registro EAD criado

iGrava: Variável INTEGER para indicar se o registro EAD será ou não incluído ao final do arquivo informado, onde:

0: não incluir.

1: incluir.

Possíveis retornos da Função (INTEIRO):

0: Erro de execução.

1: OK.

Observações:

- No arquivo informado deve existir uma linha em branco ao seu final para que a assinatura EAD (registro EAD) seja incluído, caso o parâmetro iGrava esteja igual a 1 na função.

- As chaves pública e privada devem ser geradas pela função genkkey antes de serem passadas como parâmetro na função generateEAD.

- A variável que receberá a assinatura EAD (registro EAD) deve ser inicializada com 256 espaços antes de usá-la.

Exemplo:

' Exemplo em Visual Basic

(...)

cRegistroEAD = Space(256)

cNomeArquivo = "C:\Espelho.txt"

iRetorno = generateEAD( cNomeArquivo, cChavePublica, cChavePrivada, cRegistroEAD, 1 )

If ( iRetorno = 0 ) Then

MsgBox "Erro de execução!", vbInformation + vbOKOnly, "Atenção"

Else

MsgBox "Sucesso!", vbInformation + vbOKOnly, "Atenção"

End If

(...)

// Exemplo em Delphi

(...)

setlength( cRegistroEAD, 256 );

cNomeArquivo := "C:\Espelho.txt";

iRetorno := generateEAD( cNomeArquivo, cChavePublica, cChavePrivada, cRegistroEAD, 1 );

if ( iRetorno = 0) then

application.MessageBox( 'Erro de execução!', 'ERRO', MB_ICONINFORMATION + MB_OK )

else

application.MessageBox( 'Sucesso!', 'ERRO', MB_ICONINFORMATION + MB_OK );

(...)


genkkey

Gera as chaves pública e privada.

Parâmetro:

cChavePublica: Variável STRING com o tamanho de 256 bytes para receber a chave pública gerada.

cChavePrivada: Variável STRING com o tamanho de 256 bytes para receber a chave privada gerada.

Possíveis retornos da Função (INTEIRO):

0: Erro de execução.

1: OK.

Observações:

- As variáveis devem ser inicializadas com 256 espaços antes de usá-las.

Exemplo:

' Exemplo em Visual Basic

(...)

cChavePublica = Space(256)

cChavePrivada = Space(256)

iRetorno = genkkey(cChavePublica, cChavePrivada)

If (iRetorno = 0) Then

MsgBox "Erro de execução!", vbInformation + vbOKOnly, "Atenção"

End If

(...)

// Exemplo em Delphi

(...)

setlength( cChavePublica, 256 );

setlength( cChavePrivada, 256 );

iRetorno := genkkey( cChavePublica, cChavePrivada );

if ( iRetorno = 0 ) then

application.MessageBox( 'Erro de execução!', 'ERRO', MB_ICONINFORMATION + MB_OK );

(...)


Funções Incompatíveis com a Impressora Fiscal YANCO

Aqui estam listadas as funções da BemaFI32.dll incompatíveis com a impressora fiscal YANCO.

- Bematech_FI_AbreBilhetePassagem

- Bematech_FI_AlteraSimboloMoeda

- Bematech_FI_AumentaDescricaoItem

- Bematech_FI_CancelaImpressaoCheque

- Bematech_FI_ContadorBilhetePassagem

- Bematech_FI_EfetuaFormaPagamentoDescricaoForma

- Bematech_FI_EspacoEntreLinhas

- Bematech_FI_EstornoFormasPagamento

- Bematech_FI_ForcaImpactoAgulhas

- Bematech_FI_ImprimeDepartamentos

- Bematech_FI_LinhasEntreCupons

- Bematech_FI_MinutosLigada

- Bematech_FI_MinutosImprimindo

- Bematech_FI_NomeiaDepartamento

- Bematech_FI_NumeroOperacoesNaoFiscais

- Bematech_FI_NumeroSubstituicaoProprietario

- Bematech_FI_ProgramaAliquota

- Bematech_FI_ProgramaArredondamento

- Bematech_FI_ProgramaCaracterAutenticacao

- Bematech_FI_ProgramaTruncamento

- Bematech_FI_ResetaImpressora

- Bematech_FI_UltimoItemVendido

- Bematech_FI_ValorPagoUltimoCupom

- Bematech_FI_VendeItemDepartamento

- Bematech_FI_VerificaDepartamentos

- Bematech_FI_VerificaStatusCheque


Bematech_FI_LeArquivoRetorno

Le o conteúdo do arquivo RETORNO.TXT, com a informação solicitada da impressora, e grava na variável de retorno.

Parâmetro:

sRetorno: Variável do tipo STRING, com o mesmo tamanho da variável usada pela função anterior (função que solicitou a informação).

Possíveis retornos da Função (INTEIRO):

0: Erro de execução da função.

1: OK.

Observações:

- Esta função só deverá ser usada, caso esteja trabalhando com "Cliente/Servidor" (Windows Terminal Server ou Frame-Relay).

- Está função deve ser usada logo após a função que originou o retorno da informação da impressora.

- Está função é compatível com as impressoras fiscais da YANCO.

Exemplo:

' Exemplo em Visual Basic para retornar o Número do Cupom

Dim sCupom as String

Dim iACK, iST1, iST2 as Integer

sCupom = Space(6)

iRetorno = Bematech_FI_NumeroCupom(sCupom)

iRetorno = Bematech_FI_RetornoImpressora(iACK, iST1, iST2)

iRetorno = Bematech_FI_LeArquivoRetorno(sCupom)

// Exemplo em Delphi para retornar o Número do Cupom

procedure ...

Var

sCupom: String;

iACK, iST1, iST2: Integer;

begin

for iConta := 1 to 6 do begin sCupom := sCupom + ' '; end;

iRetorno := Bematech_FI_NumeroCupom( sCupom );

iRetorno := Bematech_FI_RetornoImpressora( iACK, iST1, iST2 );

iRetorno := Bematech_FI_LeArquivoRetorno( sCupom );

end;


Linguagem de Programação MAGIC

Este tópico, descreve as funções que sofreram compatibilização, para o uso com a Linguagem de Programação MAGIC. Estas funções passaram a usar os seus parâmetros de SHORT INT para INT.

- Bematech_FI_FlagsFiscais para Bematech_FI_FlagsFiscaisStr

- Bematech_FI_VerificaTipoImpressora para Bematech_FI_VerificaTipoImpressoraStr

- Bematech_FI_VerificaEstadoGaveta para Bematech_FI_VerificaEstadoGavetaStr

- Bematech_FI_VerificaStatusCheque para Bematech_FI_VerificaStatusChequeStr

- Bematech_FI_RetornoImpressora para Bematech_FI_RetornoImpressoraStr

- Bematech_FI_EstadoImpressora para Bematech_FI_VerificaEstadoImpressoraStr


Variável do Tipo PCHAR

iconeLampada2

STRING terminada em nulo (#0), usada geralmente

nas funções da API do Windows.


Bematech_FI_RetornoImpressoraStr

Lê o retorno da impressora referente ao último comando enviado.

Parâmetros:

ACK: Variável STRING, com o tamanho 3, para receber o primeiro byte.

ST1: Variável STRING, com o tamanho 3, para receber o segundo byte.

ST2: Variável STRING, com o tamanho 3, para receber o terceiro byte.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

Observação:

- Essa função deve ser usada após a execução de qualquer outra função da DLL para ler o Retorno da Impressora referente a função executada. Essa função devolve o status da impressora.


Análise do Retorno (ACK, ST1 e ST2)

Retorno da Impressora (ACK, ST1 e ST2)

 Retorna ao Início

Todos as funções, executadas na impressora, possuem bytes de retorno, que significam o estado atual após o envio. Cada byte é tratado da seguinte maneira:

ACK (06h ou 6d) : Byte indicativo de recebimento correto.

ST1 e ST2 : Bytes de estado da impressora.

NAK (15h ou 21d) : Byte indicativo de recebimento incorreto.

Observação:

- Nas impressoras fiscais Matriciais, os retornos de execução são obtidos, apenas, pelos bytes ACK, ST1 e ST2.

- Nas impressoras fiscal MFD (somente), existe um outro retorno chamado ST3 (retorno estendido), onde informações mais detalhadas podem ser obtidas, mas este retorno só é habilitado pela função Bematech_FI_HabilitaDesabilitaRetornoEstendidoMFD.

ST1

ST2

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 e/ou ST2 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 "setados":

Codificando o ST1

If St1 >= 128 Then                                                // bit 7

  St1 = St1 - 128

  sMsg = "Fim de Papel"

End If

If St1 >= 64 Then                                                // bit 6

  St1 = St1 - 64

  sMsg = "Pouco Papel"

End If

If St1 >= 32 Then                                                // bit 5

  St1 = St1 - 32

  sMsg = "Erro no Relógio"

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 = "Comando não iniciado com ESC"

End If

If St1 >= 4 Then                                                // bit 2

  St1 = St1 - 4

  sMsg = "Comando Inexistente"

End If

If St1 >= 2 Then                                                // bit 1

  St1 = St1 - 2

  sMsg = "Cupom 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 de Comando Inválido"

End If

If St2 >= 64 Then                                                // bit 6

  St2 = St2 - 64

  sMsg = "Memória Fiscal Lotada"

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 Programada"

End If

If St2 >= 8 Then                                                // bit 3

  St2 = St2 - 8

  sMsg = "Capacidade de Alíquotas Lotada"

End If

If St2 >= 4 Then                                                // bit 2

  St2 = St2 - 4

  sMsg = "Cancelamento Não Permitido"

End If

If St2 >= 2 Then                                                // bit 1

  St2 = St2 - 2

  sMsg = "CNPJ/IE do Proprietário Não Programado"

End If

If St2 >= 1 Then                                                // bit 0

  St2 = St2 - 1

  sMsg = "Comando Não Executado"

End If

Teste o exemplo acima com ST1 = 66, e repare que você terá dois erros, pouco papel (64) e cupom aberto (2).


setLibType

Seleciona o tipo de bliblioteca a ser aplicada na geração das chaves.

Parâmetro:

iTipo: Variável INTEGER com o tipo de biblioteca, onde:

0: usa a biblioteca OpenSSL
1: usa a biblioteca Miracl

Possíveis retornos da Função (INTEIRO):

0: Erro de execução.

1: OK.

Observações:

- É recomendado o uso da biblioteca OpenSSL (iTipo=0).

Exemplo:

' Exemplo em Visual Basic

(...)

iRetorno = setLibType( 0 )

(...)

// Exemplo em Delphi

(...)

iRetorno := setLibType( 0 );

(...)


validateFile

Valida o arquivo com o registro EAD gravado em seu final. Se o registro EAD estiver OK, a função retornará 1 (um), caso contrário retornará 0 (zero).

Parâmetros:

cNomeArquivo: Variável STRING com o cominho+nome do arquivo que será usado na geração do registro EAD.

cChavePublica: Variável STRING com a chave pública gerada.

cChavePrivada: Variável STRING com a chave privada gerada.

Possíveis retornos da Função (INTEIRO):

0: Erro de execução.

1: OK.

Observações:

- As chaves pública e privada devem ser geradas pela função genkkey antes de serem passadas como parâmetro na função validateFile.

Exemplo:

' Exemplo em Visual Basic

(...)

cNomeArquivo = "C:\Espelho.txt"

iRetorno = validateFile(cNomeArquivo, cChavePublica, cChavePrivada)

If (iRetorno = 0) Then

MsgBox "Erro na chave !", vbInformation + vbOKOnly, "Atenção"

Else

MsgBox "Chave correta!", vbInformation + vbOKOnly, "Atenção"

End If

(...)

// Exemplo em Delphi

(...)

cNomeArquivo := "C:\Espelho.txt";

iRetorno := validateFile( cNomeArquivo, cChavePublica, cChavePrivada );

if ( iRetorno = 0 ) then

application.MessageBox( 'Erro na chave !', 'ERRO', MB_ICONINFORMATION + MB_OK )

else

application.MessageBox( 'Chave correta!', 'ERRO', MB_ICONINFORMATION + MB_OK );

(...)


Bematech_FI_VerificaEstadoGavetaStr

Retorna se a gaveta está fechada ou aberta.

Parâmetros:

Estado: STRING com a Variável para receber o estado da gaveta, onde:

Estado = 1 sensor em nível 1 (aberta)

Estado = 0 sensor em nível 0 (fechada)

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).


Bematech_FI_VerificaEstadoImpressoraStr

Retorna o estado da impressora.

Parâmetros:

ACK: Variável STRING, com o tamanho 3, para receber o primeiro byte.

ST1: Variável STRING, com o tamanho 3, para receber o segundo byte.

ST2: Variável STRING, com o tamanho 3, para receber o terceiro byte.

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

Observação:

- Essa função devolve o status da impressora (Retorno da Impressora).


Bematech_FI_VerificaStatusChequeStr

Verifica o status do cheque.

Parâmetro:

StatusCheque: Variável STRING para receber o status do cheque (veja abaixo em "Observações" os valores de status).

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

-30: Função não compatível com a impressora YANCO.

Observações:

Os valores de status são:

1 – Impressora ok.

2 – Cheque em impressão.

3 – Cheque posicionado.

4 – Aguardando o posicionamento do cheque.

- Função usada somente na impressora MP-40 FI II.

- Na impressora fiscal YANCO, esta verificação não existe.


Bematech_FI_VerificaTipoImpressoraStr

Retorna o tipo de impressora.

Parâmetro:

TipoImpressora: Variável STRING para receber o tipo da impressora (veja abaixo em "Observações" os valores retornados).

Possíveis retornos da Função (INTEIRO):

0: Erro de comunicação.

1: OK.

-1: Erro de execução da função.

-4: O arquivo de inicialização BemaFI32.ini não foi encontrado no diretório de sistema do Windows.

-5: Erro ao abrir a porta de comunicação.

-8: Erro ao criar ou gravar no arquivo STATUS.TXT ou RETORNO.TXT.

-27: Status da impressora diferente de 6,0,0 (ACK, ST1 e ST2).

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.