DECLARE TABERRO[99999]
TABERRO[1 ] :="Não foi possÃvel alocar mais memória."
TABERRO[2 ] :="Memória RAM foi corrompida."
TABERRO[1000 ] :="Memória Fiscal foi desconectada."
TABERRO[1001 ] :="Erro de leitura na Memória Fiscal."
TABERRO[1002 ] :="Memória está setada apenas para leitura."
TABERRO[1003 ] :="Registro fora dos padrões (erro interno)."
TABERRO[1004 ] :="Memória Fiscal está lotada."
TABERRO[1005 ] :="Número máximo de cartuchos excedidos."
TABERRO[1006 ] :="Tentativa de gravar novo modelo de ECF."
TABERRO[1007 ] :="Tentativa de gravação de qualquer dado antes da inicialização da Memória Fiscal."
TABERRO[1008 ] :="Número máximo de usuários foi atingido."
TABERRO[1009 ] :="Número máximo de intervenções foi atingido."
TABERRO[1010 ] :="Número máximo de versões foi atingido."
TABERRO[1011 ] :="Número máximo de reduções foi atingido."
TABERRO[1012 ] :="Erro na gravação de registro na memória fiscal"
TABERRO[2000 ] :="Erro de leitura no dispositivo fÃsico."
TABERRO[2001 ] :="Erro de leitura no dispositivo."
TABERRO[2002 ] :="Dispositivo de transações foi desconectado."
TABERRO[3000 ] :="Tipo de registro a ser gravado inválido."
TABERRO[3001 ] :="Registro de transações está esgotado."
TABERRO[3002 ] :="Tentativa de abrir nova transação com transação já aberta."
TABERRO[3003 ] :="Tentativa de fechar uma transação que não se encontrava"
TABERRO[4000 ] :="Erro de leitura no dispositivo fÃsico."
TABERRO[4001 ] :="Erro de escrita no dispositivo."
TABERRO[4002 ] :="Dispositivo de contexto foi desconectado."
TABERRO[4003 ] :="Leitura após final do arquivo."
TABERRO[4004 ] :="Escrita após final do arquivo."
TABERRO[5000 ] :="Versão de contexto fiscal no dispositivo não foi reconhecida."
TABERRO[5001 ] :="CRC do dispositivo está incorreto."
TABERRO[5002 ] :="Tentativa de escrita fora da área de contexto."
TABERRO[6000 ] :="Relógio do ECF inconsistente."
TABERRO[6001 ] :="Data/hora informadas não estão consistentes."
TABERRO[7000 ] :="Nenhum mecanismo de impressão presente."
TABERRO[7001 ] :="Atual mecanismo de impressão está desconectado."
TABERRO[7002 ] :="Mecanismo não possui capacidade suficiente para realizar esta operação."
TABERRO[7003 ] :="Impressora está sem papel para imprimir."
TABERRO[7004 ] :="Faltou papel durante a impressão do comando."
TABERRO[8000 ] :="Comando fora de seqüência."
TABERRO[8001 ] :="Código mercadoria não válido."
TABERRO[8002 ] :="Descrição inválida."
TABERRO[8003 ] :="Quantidade não inválida."
TABERRO[8004 ] :="Ãndice da alÃquota não válido."
TABERRO[8005 ] :="AlÃquota não carregada."
TABERRO[8006 ] :="Valor contém caracter inválido."
TABERRO[8007 ] :="Total da operação igual a 0 (zero)."
TABERRO[8008 ] :="AlÃquota não disponÃvel para carga."
TABERRO[8009 ] :="Valor da alÃquota não válido."
TABERRO[8010 ] :="Troca de situação tributária somente após Redução Z."
TABERRO[8011 ] :="Ãndice do Meio de Pagamento não válido."
TABERRO[8012 ] :="Meio de Pagamento indisponÃvel para carga."
TABERRO[8013 ] :="Cupom totalizado em 0 (zero)."
TABERRO[8014 ] :="Meio de Pagamento não definido."
TABERRO[8015 ] :="Carga de usuário permitido somente após Redução Z."
TABERRO[8016 ] :="Dia sem movimento."
TABERRO[8017 ] :="Total pago inferior ao total do cupom."
TABERRO[8018 ] :="Gerencial não definido."
TABERRO[8019 ] :="Ãndice do Gerencial fora da faixa."
TABERRO[8020 ] :="Gerencial não disponÃvel para carga."
TABERRO[8021 ] :="Nome do Gerencial inválido."
TABERRO[8022 ] :="Esgotado número de Gerenciais."
TABERRO[8023 ] :="Acerto do horário de verão somente após a Redução Z."
TABERRO[8024 ] :="Já acertou horário de verão."
TABERRO[8025 ] :="Sem AlÃquotas disponÃveis para carga."
TABERRO[8026 ] :="Item não vendido no cupom."
TABERRO[8027 ] :="Quantidade a ser cancelada maior do que a quantidade vendida."
TABERRO[8028 ] :="Cabeçalho possui campo(s) inválido(s)."
TABERRO[8029 ] :="Nome do Departamento não válido."
TABERRO[8030 ] :="Departamento não encontrado."
TABERRO[8031 ] :="Departamento não definido."
TABERRO[8032 ] :="Não há Meio de Pagamento disponÃvel."
TABERRO[8033 ] :="Alteração de Meio de Pagamento somente após a Redução Z."
TABERRO[8034 ] :="Nome do Documento Não Fiscal não pode ser vazio."
TABERRO[8035 ] :="Não há mais Documentos Não Fiscais disponÃveis."
TABERRO[8036 ] :="Documento Não Fiscal indisponÃvel para carga."
TABERRO[8037 ] :="Número da redução inicial inválida."
TABERRO[8038 ] :="Cabeçalho do documento já foi impresso."
TABERRO[8039 ] :="Número máximo de linhas de propaganda excedidas."
TABERRO[8040 ] :="Relógio já está no estado desejado."
TABERRO[8041 ] :="Valor do acréscimo inconsistente."
TABERRO[8042 ] :="Não há meio de pagamento definido."
TABERRO[8043 ] :="COO do documento vinculado inválido."
TABERRO[8044 ] :="Ãndice do item inexistente no contexto."
TABERRO[8045 ] :="Código de item não encontrado no cupom atual."
TABERRO[8046 ] :="Percentual do desconto ultrapassou 100%."
TABERRO[8047 ] :="Desconto do item inválido."
TABERRO[8048 ] :="Falta definir valor percentual ou absoluto em operação de desconto/acréscimo."
TABERRO[8049 ] :="Tentativa de operação sobre item cancelado."
TABERRO[8050 ] :="Cancelamento de acréscimo/desconto inválidos."
TABERRO[8051 ] :="Operação de acréscimo/desconto inválida."
TABERRO[8052 ] :="Número de Departamentos esgotados."
TABERRO[8053 ] :="Ãndice de Documento Não Fiscal fora da faixa."
TABERRO[8054 ] :="Troca de Documento Não Fiscal somente após a Redução Z."
TABERRO[8055 ] :="CNPJ e/ou Inscrição Estadual inválida(s)."
TABERRO[8056 ] :="Falta(m) parâmetro(s) no comando de abertura de Comprovante Crédito ou Débito."
TABERRO[8057 ] :="Código e Nome do Documento Não Fiscal indefinidos."
TABERRO[8058 ] :="AlÃquota não definida no comando de venda."
TABERRO[8059 ] :="Código e Nome do Meio de Pagamento não definidos."
TABERRO[8060 ] :="Parâmetro de comando não informado."
TABERRO[8061 ] :="Não há Documentos Não Fiscais definidos."
TABERRO[8062 ] :="Acréscimo/Desconto de item já cancelado."
TABERRO[8063 ] :="Não há acréscimo/desconto em item."
TABERRO[8064 ] :="Item já possui acréscimo."
TABERRO[8065 ] :="Operação de acréscimo em item ou subtotal só é valido para ICMS"
TABERRO[8066 ] :="Valor do Comprovante Crédito ou Débito não informado."
TABERRO[8067 ] :="COO inválido."
TABERRO[8068 ] :="Ãndice do Meio de Pagamento no cupom inválido."
TABERRO[8069 ] :="Documento Não Fiscal não encontrado."
TABERRO[8070 ] :="Seqüência de pagamento não encontrada no cupom."
TABERRO[8071 ] :="Meio de pagamento não permite CDC."
TABERRO[8072 ] :="Valor insuficiente para pagar o cupom."
TABERRO[8073 ] :="Meio de pagamento origem ou destino não encontrado no último cupom emitido"
TABERRO[8074 ] :="Valor do estorno não pode exceder o valor do pagamento no meio origem."
TABERRO[8075 ] :="Meios de pagamento origem e destino devem ser diferentes no estorno."
TABERRO[8076 ] :="Percentual da alÃquota inválido."
TABERRO[8077 ] :="Não houve operação em subtotal para ser cancelada."
TABERRO[8078 ] :="Só é permitida uma operação de acréscimo em subtotal por cupom."
TABERRO[8079 ] :="Texto adicional do meio de pagamento deve ter no máximo 2 linhas"
TABERRO[8080 ] :="Preço unitário ultrapassou o número máximo de dÃgitos permitido"
TABERRO[8081 ] :="Código do departamento fora da faixa."
TABERRO[8082 ] :="O valor do desconto não pode zerar o valo do cupom ou ser maior que o item."
TABERRO[8083 ] :="Percentual de acréscimo não pode ser superior a 999,99%"
TABERRO[8084 ] :="Valor do acréscimo ultrapassa o número máximo de dÃgitos permitido (13 dÃgitos)"
TABERRO[8085 ] :="Cupom sem venda em alÃquota de ICMS."
TABERRO[8086 ] :="Cancelamento inválido."
TABERRO[8087 ] :="Texto de cliche do usuário deve ter no máximo três linhas."
TABERRO[8088 ] :="Não houve venda de item não fiscal"
TABERRO[8089 ] :="A data não pode ser inferior a data do último documento emitido."
TABERRO[8090 ] :="A hora informada no comando não pode ser inferior ao horário do último documento"
TABERRO[8091 ] :="Sem função"
TABERRO[8092 ] :="Estado inválido para ajuste de relogio ou horário de verão"
TABERRO[8093 ] :="A operação de CDC deve preceder as operações de estorno de meio de pagamento."
TABERRO[8094 ] :="Senha inválida para inicialização do proprietário."
TABERRO[8095 ] :="Erro gerado pelo mecanismo de cheques"
TABERRO[8096 ] :="Comando válido somente após a abertura do dia"
TABERRO[9000 ] :="Não foi encontrado nenhum cartucho de dados vazio para ser inicializado."
TABERRO[9001 ] :="Cartucho com o número de série informado não foi encontrado."
TABERRO[9002 ] :="Número de série do ECF é inválido na inicialização."
TABERRO[9003 ] :="Cartucho de MFD desconectado ou com problemas."
TABERRO[9004 ] :="Erro de escrita no dispositivo de MFD."
TABERRO[9005 ] :="Erro na tentativa de posicionar ponteiro de leitura."
TABERRO[9006 ] :="Endereço do Bad Sector informado é inválido."
TABERRO[9007 ] :="Erro de leitura na MFD."
TABERRO[9008 ] :="Tentativa de leitura além dos limites da MFD."
TABERRO[9009 ] :="MFD não possui mais espaço para escrita."
TABERRO[9010 ] :="Leitura da MFD serial é interrompida por comando diferente de LeImpressao"
TABERRO[10000] :="Estado inválido para registro sendo codificado."
TABERRO[10001] :="Inconsistência nos parâmetros lidos no Logger."
TABERRO[10002] :="Registro inválido detectado no Logger."
TABERRO[10003] :="Erro interno."
TABERRO[11000] :="Parâmetro repassado ao comando é inválido."
TABERRO[11001] :="Erro de sintaxe na lista de parâmetros."
TABERRO[11002] :="Valor inválido para parâmetro do comando."
TABERRO[11003] :="String contém seqüência de caracteres inválidos."
TABERRO[11004] :="Parâmetro foi declarado 2 ou mais vezes na lista."
TABERRO[11005] :="Parâmetro obrigatório ausente na lista."
TABERRO[11006] :="Não existe o comando no protocolo."
TABERRO[11007] :="Estado atual não permite a execução deste comando."
TABERRO[11008] :="Sinalização indicando que comando aborta a impressão da segunda via."
TABERRO[11009] :="Sinalização indicando que comando não possui retorno."
TABERRO[11010] :="Tempo de execução esgotado."
TABERRO[11011] :="Nome de registrador inválido."
TABERRO[11012] :="Tipo de registrador inválido."
TABERRO[11013] :="Tentativa de escrita em registrador de apenas leitura."
TABERRO[11014] :="Tentativa de leitura em registrador de apenas escrita."
TABERRO[11015] :="Comando recebido diferente do anterior no buffer de recepção."
TABERRO[11016] :="Fila de comandos cheia."
TABERRO[11017] :="Ãndice de registrador indexado fora dos limites."
TABERRO[11018] :="Número de emissões do Logger foi excedido na Intervenção Técnica."
TABERRO[11019] :="Divisão por 0 (zero) nas rotinas de BDC."
TABERRO[15001] :="Comando aceito apenas em modo de Intervencao Técnica."
TABERRO[15002] :="Comando não pode ser executado em modo de Intervenção Técnica."
TABERRO[15003] :="Já existe MFD presente neste ECF."
TABERRO[15004] :="Não existe MFD neste ECF."
TABERRO[15005] :="Memória RAM do ECF não está consistente."
TABERRO[15006] :="Memória fiscal não encontrada."
TABERRO[15007] :="Dia já fechado."
TABERRO[15008] :="Dia aberto."
TABERRO[15009] :="Falta reducao Z."
TABERRO[15010] :="Mecanismo impressor não selecionado."
TABERRO[15011] :="Sem bobina de papel na estação de documento fiscal."
TABERRO[15012] :="Tentativa de finalizar documento já encerrado."
TABERRO[15013] :="Não há sinal de DTR."
TABERRO[15014] :="Sem inscrições do usuário no ECF."
TABERRO[15015] :="Sem dados do proprietário no ECF."
TABERRO[15016] :="ECF encontra-se indevidamente em linha."
TABERRO[15017] :="ECF não encontra-se em linha para executar o comando."
TABERRO[15018] :="Mecanismo está indisponÃvel para impressão."
DLLURANO := LOADLIB32( "DLLG2.DLL" )
Porta = DLLG2_IniciaDriver(CPORTA)
DLLG2_DefineTimeout(Porta, 9600)
DLLG2_LimpaParams(Porta )
DLLG2_AdicionaParam(Porta, "NomeInteiro", "EstadoFiscal", 7)
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
if DLLG2_ExecutaComando(Porta, "LeInteiro") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
msginfo(TABERRO[codeRRO],"Aviso")
FREELIB32( DLLURANO )
close database
CANCEL
endif
endif
DLLG2_LimpaParams(Porta )
// adiciona parametros // pega numero de serie da ecf
DLLG2_AdicionaParam(Porta, "NomeTexto", "NumeroSerieECF", 7)
// executa comando
if DLLG2_ExecutaComando(Porta, "LeTexto") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
msginfo(TABERRO[codeRRO],"Aviso")
FREELIB32( DLLURANO )
close database
CANCEL
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)
endif
xSerie := Retorno
DLLG2_LimpaParams(Porta)
// adiciona parametros Retorna o Numero do Caixa
DLLG2_AdicionaParam(Porta, "NomeInteiro", "ECF", 7)
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
If DLLG2_ExecutaComando(Porta, "LeInteiro") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
msginfo(TABERRO[codeRRO],"Aviso")
FREELIB32( DLLURANO )
close database
CANCEL
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno =substr(DLLG2_ObtemRetornos(Porta, Retorno, 100 ),14)
endif
xnumcx := strzero(val(retorno),3,0)
//adiciona parametros Pega o Numero do coo
DLLG2_AdicionaParam(Porta, "NomeInteiro", "COO", 7)
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
//executa comando
If DLLG2_ExecutaComando(Porta, "LeInteiro") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
msginfo(TABERRO[codeRRO],"Aviso")
FREELIB32( DLLURANO )
close database
CANCEL
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno = DLLG2_ObtemRetornos(Porta, Retorno, 5000)
EndIf
xxxcoo := STRZERO(VAL(substr(Retorno, 14) ),6,0)
**********************************
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
DLLG2_LimpaParams(Porta)
DLLG2_AdicionaParam(Porta, "Operador",xnomusu,7)
IF DLLG2_ExecutaComando(Handle , "CancelaCupom") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
CDESCR:= TABERRO[codeRRO]
Od:update()
return nil
ENDIF
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)
ENDIF
*******************************************
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
if DLLG2_ExecutaComando(Porta , "AbreCupomFiscal") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0 .AND. CODERRO # 11007
* trataerro(codErro)
CDESCR:= TABERRO[codeRRO]
if coderro #15009
// xean := 0
CDESCR :=TABERRO[codeRRO]
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)
Od:update()
return(.f.)
else
reducaoz(cimpresora,.f.)
sysrefresh()
// xean := 0
Od:update()
return nil
endif
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)
endif
DLLG2_LimpaParams(Porta)
DLLG2_AdicionaParam(Porta, "NomeInteiro", "COO", 7)
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
//executa comando
If DLLG2_ExecutaComando(Porta, "LeInteiro") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
* trataerro(codErro)
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno = DLLG2_ObtemRetornos(Porta, Retorno, 5000)
EndIf
xxxcoo := STRZERO(VAL(substr(Retorno, 14) ),6,0)
***********************************************************************
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
DLLG2_LimpaParams(Porta)
DLLG2_AdicionaParam(Porta, "CodAliquota", xalqfit,9)
DLLG2_AdicionaParam(Porta, "CodProduto", xcodigo,7)
DLLG2_AdicionaParam(Porta, "NomeProduto", xdescricao,7)
DLLG2_AdicionaParam(Porta, "PrecoUnitario", transform(XPRECO,"@e 9,999.99"),6)
DLLG2_AdicionaParam(Porta, "Quantidade", transform(XQUANTIDADE,"@e 999.999"),6)
DLLG2_AdicionaParam(Porta, "Unidade", XUNID,7)
if DLLG2_ExecutaComando(Porta, "VendeItem") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
CDESCR:= TABERRO[codeRRO]
Od:update()
return nil
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)
endif
****************************************
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
if DLLG2_ExecutaComando(Porta , "AbreCupomFiscal") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0 .AND. CODERRO # 11007
CDESCR:= TABERRO[codeRRO]
if coderro #15009
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)
sysrefresh()
Od:update()
return(.f.)
else
reducaoz(cimpresora,.f.)
sysrefresh()
Od:update()
return nil
endif
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno =SUBSTR(DLLG2_ObtemRetornos(Porta, Retorno, 5000),13,20)
endif
DLLG2_LimpaParams(Porta)
DLLG2_AdicionaParam(Porta, "NomeInteiro", "COO", 7)
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
//executa comando
If DLLG2_ExecutaComando(Porta, "LeInteiro") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
* trataerro(codErro)
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
Retorno = DLLG2_ObtemRetornos(Porta, Retorno, 5000)
EndIf
xxxcoo := STRZERO(VAL(substr(Retorno, 14) ),6,0)
*****************************************
DLLG2_LimpaParams(Porta )
DLLG2_AdicionaParam(Porta, "NumItem",strzero(cupom->item,3,0), 9)
DLLG2_AdicionaParam(Porta, "Quantidade", transform(cupom->quantidade,"@e 999.999"), 6)
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
if DLLG2_ExecutaComando(Porta, "CancelaItemFiscal") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
MSGINFO(CODERRO)
if codErro#0
CDESCR:= TABERRO[codeRRO]
od:update()
return nil
endif
endif
*****************************
DLLG2_LimpaParams(Porta)
IF VAL(XCD) = 1
xcd := str(VAL(xcd) - 3)
ELSE
xcd := strZERO(VAL(xcd) - 2,2,0)
ENDIF
XVLRx := MATRIZ[XXX,1]
XVLR := transform(xvlrX,"@e 9999.99")
XDESCONT := transform(xdesc,"@e 9,999.99")
DLLG2_AdicionaParam(Porta, "CodMeioPagamento",xcd, 9)
DLLG2_AdicionaParam(Porta , "Valor", xvlr, 6)
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
if DLLG2_ExecutaComando(Porta, "PagaCupom") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
MSGINFO( TABERRO[codeRRO])
od:update()
return nil
endif
endif
******************************
DLLG2_ExecutaComando(Porta, "EncerraDocumento")
DLLG2_LimpaParams(Porta)
//adiciona parametros
DLLG2_AdicionaParam( Porta, "Avanco", "300", 9)
//'executa comando
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
If DLLG2_ExecutaComando(Porta, "AvancaPapel") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
msginfo(TABERRO[codeRRO],"Aviso")
endif
Circunstancia = DLLG2_ObtemCircunstancia(Porta, Circunstancia, 200)
EndIf
********************************
DLLG2_LimpaParams(Porta)
DLLG2_AdicionaParam(Handle , "Operador",xnomusU ,7)
NomeErro = SPACE(20)
CodErro = SPACE(5)
Circunstancia := 0
RETORNO := 0
if DLLG2_ExecutaComando(Handle , "EmiteLeituraX") > 0
NomeErro = DLLG2_ObtemNomeErro(Porta, NomeErro, 0)
CodErro = DLLG2_ObtemCodErro(Porta)
if codErro#0
CDESCR:= TABERRO[codeRRO]
od:update()
return nil
endif
endif
DLL32 FUNCTION DLLG2_Versao(VERSAO AS STRING, TAMVERSAO AS LONG) AS STRING PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_IniciaDriver(PORTA AS STRING) AS LONG PASCAL LIB "DLLG2.DLL"
DLL32 FUNCTION DLLG2_EncerraDriver(PORTA AS LONG) AS LONG PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_ConfiguraDriver(PORTA AS LONG, VELOCIDADE AS LONG) AS LONG PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_SetaArquivoLog( NOMEARQUIVO AS STRING) AS VOID PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_ObtemNomeLog( NOMEARQUIVO AS STRING, TAMNOMEARQUIVO AS LONG) AS STRING PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_DefineTimeout( PORTA AS LONG, TEMPOMAXIMO AS LONG) AS VOID PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_LeTimeout( PORTA AS LONG) AS LONG PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_LimpaParams(PORTA AS LONG) AS VOID PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_AdicionaParam( PORTA AS LONG, NOMEPARAMETRO AS STRING,VALORPARAMETRO AS STRING, TIPOPARAMETRO AS LONG) AS VOID PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_ListaParams(PORTA AS LONG, LISTAPARAMETROS AS STRING, TAMLISTAPARAMETROS AS LONG) AS STRING PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_LeRegistrador( PORTA AS LONG, NOMEREGISTRADOR AS STRING, NOMECOMANDO AS STRING, TAMNOMECOMANDO AS LONG) AS LONG PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_ExecutaComando( PORTA AS LONG, COMANDO AS STRING) AS LONG PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_ObtemCodErro( PORTA AS LONG) AS LONG PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_ObtemNomeErro( PORTA AS LONG, NOMEERRO AS STRING, TAMNOMEERRO AS LONG) AS STRING PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_ObtemCircunstancia(PORTA AS LONG, CIRCUNSTANCIA AS STRING, TAMNOMECIRCUNSTANCIA AS LONG) AS STRING PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_ObtemRetornos( PORTA AS LONG, RETORNOS AS STRING, TAMRETORNO AS LONG) AS STRING PASCAL LIB DLLURANO
DLL32 FUNCTION DLLG2_TotalRetornos( PORTA AS LONG) AS LONG PASCAL LIB DLLURANO