Código: Selecionar todos
Set Status Off
Set Score Off
Set Talk Off
Set Wrap On
USE MULT ALIAS MUL NEW
*----------------------------------------------------------------------------
* ABRE CUPOM.
*----------------------------------------------------------------------------
CGC_CPF := Space( 29 )
Comando := Chr( 27 ) + Chr( 251 ) + "00|" + CGC_CPF + "|" + Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
*----------------------------------------------------------------------------
* VENDE ITEM.
*----------------------------------------------------------------------------
SELE MUL
DBGOTOP()
WhiLe .Not. Eof()
Codigo := Cpr
Descricao := Left(Des,29)
Aliquota := "04"
Qtde_Frac := Qtd
Valor := Prv
Desc_Valor := 0
Qtde_Frac := Qtde_Frac * 1000
Qtde_Frac := StrZero( Qtde_Frac, 7, 0 )
Valor := Valor * 100
Valor := StrZero( Valor, 8, 0 )
Desc_Valor := Desc_Valor * 100
Desc_Valor := StrZero( Desc_Valor, 8, 0 )
Comando := Chr( 27 ) + Chr( 251 ) + "09|" + Codigo + "|" + Descricao + "|" + Aliquota + "|" + Qtde_Frac + "|" + Valor + "|" + Desc_Valor + "|" + Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
DbSkip()
Enddo
*----------------------------------------------------------------------------
* INICIA FECHAMENTO.
*----------------------------------------------------------------------------
ad := "D"
valor := 0
valor := valor * 100
valor := strzero( valor, 14, 0 )
comando := chr( 27 ) + chr( 251 ) + "32|" + lower( ad ) + "|" + valor + "|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
*----------------------------------------------------------------------------
* PROGRAMA FORMA DE PAGAMENTO.
*----------------------------------------------------------------------------
forma := "A PRAZO"+space( 09 ) //TEM DE TER 16 ESPA€OS.
comando := chr( 27 ) + chr( 251 ) + "71|" + forma + "|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
*----------------------------------------------------------------------------
* EFETUA FORMA DE PAGAMENTO.
*----------------------------------------------------------------------------
i_forma := 4
valor_pago := 5
i_forma := strzero( i_forma, 2, 0 )
valor_pago := valor_pago * 100
valor_pago := strzero( valor_pago, 14, 0 )
comando := chr( 27 ) + chr( 251 ) + "72|" + i_forma + "|" + valor_pago + "|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
*----------------------------------------------------------------------------
* TERMINA O FECHAMENTO.
*----------------------------------------------------------------------------
msg1 := msg2 := msg3 := msg4 := msg5 := space( 48 )
mensagem := alltrim( msg1 + msg2 + msg3 + msg4 + msg5 )
comando := chr( 27 ) + chr( 251 ) + "34|" + mensagem + "|" + chr( 13 ) + chr( 10 ) + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
*----------------------------------------------------------------------------
* CUPOM ADICIONAL.
*----------------------------------------------------------------------------
/*
Comando := Chr( 27 ) + Chr( 251 ) + "85|" + "|" + Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
*/
////////////////
Function QOpc3()
////////////////
Save Screen To Tela_Venda
Codigo := "1234567890123"
Descricao := "Venda com 3 Casas Decimais "
Aliquota := "FF"
Qtde_Int := 1
Qtde_Frac := 1
Valor := 1
Desc_Perc := 0
Desc_Valor := 0
Set Color To
@ 06,25 Clear To 16,79
SetColor( "W+/GR" )
@ 05,24 Clear To 15,78
@ 05,24 To 15,78
@ 07,25 Say "C¢digo...:" Get Codigo Pict "@"
@ 08,25 Say "Descri‡Æo:" Get Descricao Pict "@"
@ 09,25 Say "Al¡quota.:" Get Aliquota Pict "@!"
Read
Resp := " "
@ 10,25 Say "Qtde. Inteira ou Fracion ria? (I/F):" Get Resp Pict "@!"
Read
// Quantidade Interia e Desconto Percentual
If Resp = "I"
Resp := " "
@ 11,25 Say "Qtde. Inteira:" Get Qtde_Int Pict "9999"
@ 12,25 Say "Valor:" Get Valor Pict "@e 99,999.999"
Read
Opc := " "
@ 13,25 Say "Desconto Percentual ou por Valor? (P/V):" Get Opc Pict "@!" valid(opc$"PV")
Read
If Opc = "P"
Opc := " "
@ 14,25 Say "Desc. Percentual:" Get Desc_Perc Pict "@e 99.99"
Read
Valor := Valor * 1000
Valor := StrZero( Valor, 8, 0 )
Desc_Perc := Desc_Perc * 100
Desc_Perc := StrZero( Desc_Perc, 4, 0 )
Comando := Chr( 27 ) + Chr( 251 ) + "56|" + Codigo + "|" + Descricao + "|" + Aliquota + "|" + StrZero( Qtde_Int, 4, 0 ) + "|" + Valor + "|" + Desc_Perc + "|" + Chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
Restore Screen From Tela_Venda
else
@ 14,25 Say "Desconto Valor..:" Get Desc_Valor Pict "@e 999,999.99"
Read
Valor := Valor * 1000
Valor := StrZero( Valor, 8, 0 )
Desc_Valor := Desc_Valor * 100
Desc_Valor := StrZero( Desc_Valor, 8, 0 )
Comando := Chr( 27 ) + Chr( 251 ) + "56|" + Codigo + "|" + Descricao + "|" + Aliquota + "|" + StrZero( Qtde_Int, 4, 0 ) + "|" + Valor + "|" + Desc_Valor + "|" + Chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
Restore Screen From Tela_Venda
EndIf
EndIf
// Quantidade Fracionaria e Desconto Percentual
If Resp = "F"
Resp := " "
@ 11,25 Say "Qtde. Frac...:" Get Qtde_Frac Pict "@e 9,999.999"
@ 12,25 Say "Valor:" Get Valor Pict "@e 99,999.999"
Read
Opc := " "
@ 13,25 Say "Desconto Percentual ou por Valor? (P/V):" Get Opc Pict "@!"
Read
If Opc = "P"
@ 14,25 Say "Desc. Percentual:" Get Desc_Perc Pict "@e 99.99"
Read
Qtde_Frac := Qtde_Frac * 1000
Qtde_Frac := StrZero( Qtde_Frac, 7, 0 )
Valor := Valor * 1000
Valor := StrZero( Valor, 8, 0 )
Desc_Perc := Desc_Perc * 100
Desc_Perc := StrZero( Desc_Perc, 4, 0 )
Comando := Chr( 27 ) + Chr( 251 ) + "56|" + Codigo + "|" + Descricao + "|" + Aliquota + "|" + Qtde_Frac + "|" + Valor + "|" + Desc_Perc + "|" + Chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
Restore Screen From Tela_Venda
else
@ 14,25 Say "Desconto Valor..:" Get Desc_Valor Pict "@e 999,999.99"
Read
Qtde_Frac := Qtde_Frac * 1000
Qtde_Frac := StrZero( Qtde_Frac, 7, 0 )
Valor := Valor * 1000
Valor := StrZero( Valor, 8, 0 )
Desc_Valor := Desc_Valor * 100
Desc_Valor := StrZero( Desc_Valor, 8, 0 )
Comando := Chr( 27 ) + Chr( 251 ) + "56|" + Codigo + "|" + Descricao + "|" + Aliquota + "|" + Qtde_Frac + "|" + Valor + "|" + Desc_Valor + "|" + Chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
Restore Screen From Tela_Venda
EndIf
EndIf
Return
//////////////////
Function Qopc_11()
//////////////////
set color to
@ 16,26 clear to 24,60
setcolor( "W+/GR" )
@ 15,25 clear to 23,59
@ 15,25 to 23,59
forma1 := forma2 := forma3 := space( 16 )
forma4 := forma5 := space( 16 )
@ 16,26 say "Entre com 5 Formas de Pagamento."
@ 18,26 say "Forma 1:" get forma1 pict "@"
@ 19,26 say "Forma 2:" get forma2 pict "@"
@ 20,26 say "Forma 3:" get forma3 pict "@"
@ 21,26 say "Forma 4:" get forma4 pict "@"
@ 22,26 say "Forma 5:" get forma5 pict "@"
read
forma1 := upper( subs( forma1, 1, 1 ) ) + lower( subs( forma1, 2, 15 ) )
forma2 := upper( subs( forma2, 1, 1 ) ) + lower( subs( forma2, 2, 15 ) )
forma3 := upper( subs( forma3, 1, 1 ) ) + lower( subs( forma3, 2, 15 ) )
forma4 := upper( subs( forma4, 1, 1 ) ) + lower( subs( forma4, 2, 15 ) )
forma5 := upper( subs( forma5, 1, 1 ) ) + lower( subs( forma5, 2, 15 ) )
comando := chr( 27 ) + chr( 251 ) + "73|" + forma1 + "|";
+ forma2 + "|" + forma3 + "|" + forma4 + "|";
+ forma5 + "|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
Return
Functio Qopc_15()
set color to
@ 20,05 clear to 22,76
set color to w+/gr
@ 19,04 clear to 21,75
@ 19,04 to 21,75
descricao := space( 50 )
@ 20,05 say "Descri‡„o do Item:" get descricao pict "@"
read
comando := chr( 27 ) + chr( 251 ) + "62|52|" + alltrim( descricao ) + "|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
return
Function Relatorios()
Do While .T.
If LastKey() = 27
Exit
Endif
SetColor( "N/BG,W+/R,,,,BG/N" )
@ 06,19 Clear To 11,62
@ 05,19 To 11,62 Double
@ 06,20 Prompt " Leitura X "
@ 07,20 Prompt " Redu‡„o Z "
@ 08,20 Prompt " Leitura da Mem¢ria Fiscal Via Arquivo "
@ 09,20 Prompt " Leitura da Mem¢ria Fiscal Via Impressora "
@ 10,20 Prompt " Leitura X pela Serial "
Tela = SaveScreen( 00, 00, 25, 80 )
Menu To Opcao_Relat
do case
case opcao_relat = 1
// Leitura X
comando := chr( 27 ) + chr( 251 ) + "06|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
case opcao_relat = 2
// Reducao Z
tone( 650, 8 )
set color to
set color to w/b
@ 07,14 clear to 14,69
@ 07,14 to 14,69
set color to w+*/b
@ 08,33 say "A T E N € Ž O !!!"
set color to w+/b
@ 10,15 say "Caso a impressora n„o esteja em MODO TREINAMENTO, a"
@ 11,15 say "Redu‡„o Z, impossibilitar vendas ap¢s a sua execu‡„o."
resp := " "
@ 13,15 say "Confirma mesmo assim? (S/N):" get resp pict "@!" valid( resp$"SN" )
read
if resp = "S"
comando := chr( 27 ) + chr( 251 ) + "05|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
else
return
endif
case opcao_relat = 3
// Leitura da Memoria Fiscal via Arquivo
setcolor( "N/BG,W+/R,,,,BG/N" )
@ 09,28 clear to 12,42
@ 09,28 to 12,42 Double
@ 10,29 prompt " Por Data "
@ 11,29 prompt " Por Redu‡„o "
menu to opcao
do case
case opcao = 1
// Leitura Mem. Fiscal via Arquivo Por Data
data_inicial := data_final := space( 08 )
set color to
set color to w+/gr
@ 11,33 clear to 14,57
@ 11,33 to 14,57
@ 12,34 say "Data Inicial:" get data_inicial pict "99/99/99"
@ 13,34 say "Data Final..:" get data_final pict "99/99/99"
read
if ( LastKey() = 27 )
exit
Endif
set color to w*
@ 16,31 say "Recebendo dados da Impressora. Arguarde..."
data_inicial := substr( data_inicial, 1, 2 )+substr( data_inicial, 4, 2 )+substr( data_inicial, 7, 2 )
data_final := substr( data_final, 1, 2 )+substr( data_final, 4, 2 )+substr( data_final, 7, 2 )
Comando := Chr( 27 )+Chr( 251 )+"08|"+data_inicial+"|"+data_final+"|R|"+Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao = 2
// Leitura Mem. Fiscal Via Arquivo Por Reducao
Reducao_inicial := Reducao_final := space( 4 )
set color to
set color to w+/gr
@ 11,33 clear to 14,56
@ 11,33 to 14,56
@ 12,34 say "Redu‡„o Inicial:" get Reducao_inicial pict "9999"
@ 13,34 say "Redu‡„o Final..:" get Reducao_final pict "9999"
read
if ( LastKey() = 27 )
exit
Endif
set color to w*
@ 16,31 say "Recebendo dados da Impressora. Arguarde..."
Comando := Chr( 27 )+Chr( 251 )+"08|"+Reducao_inicial+"|"+Reducao_final+"|R|"+Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
endcase
case opcao_relat = 4
// Leitura da Memoria Fiscal Via Impressora por Data
setcolor( "N/BG,W+/R,,,,BG/N" )
@ 09,28 clear to 12,42
@ 09,28 to 12,42 Double
@ 10,29 prompt " Por Data "
@ 11,29 prompt " Por Redu‡„o "
menu to opcao
do case
case opcao = 1
data_inicial := data_final := space( 08 )
set color to
set color to w+/gr
@ 11,33 clear to 14,57
@ 11,33 to 14,57
@ 12,34 say "Data Inicial:" get data_inicial pict "99/99/99"
@ 13,34 say "Data Final..:" get data_final pict "99/99/99"
read
if ( LastKey() = 27 )
exit
Endif
data_inicial := substr( data_inicial, 1, 2 )+substr( data_inicial, 4, 2 )+substr( data_inicial, 7, 2 )
data_final := substr( data_final, 1, 2 )+substr( data_final, 4, 2 )+substr( data_final, 7, 2 )
Comando := Chr( 27 )+Chr( 251 )+"08|"+data_inicial+"|"+data_final+"|I|"+Chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
case opcao = 2
Reducao_inicial := Reducao_final := space( 4 )
set color to
set color to w+/gr
@ 11,33 clear to 14,56
@ 11,33 to 14,56
@ 12,34 say "Redu‡„o Inicial:" get Reducao_inicial pict "9999"
@ 13,34 say "Redu‡„o Final..:" get Reducao_final pict "9999"
read
if ( LastKey() = 27 )
exit
Endif
set color to w*
@ 16,31 say "Recebendo dados da Impressora. Arguarde..."
Comando := Chr( 27 )+Chr( 251 )+"08|"+Reducao_inicial+"|"+Reducao_final+"|I|"+Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
endcase
case opcao_relat = 5
// Leitua X pela Serial
set color to w*
@ 16,10 say "Aguarde... o arquivo est sendo criado."
Comando := Chr( 27 ) + Chr( 251 ) + "69|" + Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
endcase
RestScreen( 00, 00, 25, 80, Tela )
EndDo
return
// Menu de Operacoes nao fiscais
Function Oper_Nao_Fiscal()
Do While .T.
If LastKey() = 27
Exit
Endif
SetColor( "N/BG,W+/R,,,,BG/N" )
@ 07,19 Clear To 13,64
@ 06,19 To 13,64 Double
@ 07,20 Prompt " Emite Relat¢rio Gerencial "
@ 08,20 Prompt " Fecha Relat¢rio Gerencial "
@ 09,20 Prompt " Emite Comprovante N„o Fiscal N„o Vinculado "
@ 10,20 Prompt " Abre Comprovante N„o Fiscal Vinculado "
@ 11,20 prompt " Usa Comprovante N„o Fiscal Vinculado "
@ 12,20 prompt " Fecha Comprovante N„o Fiscal Vinculado "
Tela = SaveScreen( 00, 00, 25, 80 )
Menu To Opcao_Nao_Fiscal
do case
case opcao_nao_fiscal = 1
// Emite Relatorio Gerencial
texto1 := texto2 := texto3 := texto4 := texto5 := space( 50 )
texto6 := texto7 := texto8 := texto9 := texto10 := space( 50 )
set color to
set color to w+/gr
@ 08,25 clear to 19,77
@ 08,25 to 19,77
@ 08,28 say " Entre com o texto "
@ 09,26 get texto1 pict "@"
@ 10,26 get texto2 pict "@"
@ 11,26 get texto3 pict "@"
@ 12,26 get texto4 pict "@"
@ 13,26 get texto5 pict "@"
@ 14,26 get texto6 pict "@"
@ 15,26 get texto7 pict "@"
@ 16,26 get texto8 pict "@"
@ 17,26 get texto9 pict "@"
@ 18,26 get texto10 pict "@"
read
texto_todo := texto1 + texto2 + texto3 + texto4 + texto5;
+ texto6 + texto7 + texto8 + texto9 + texto10
comando := chr( 27 ) + chr( 251 ) + "20|" + texto_todo + "|";
+ chr( 13 ) + chr( 10 ) + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
case opcao_nao_fiscal = 2
// Fecha Relatorio Gerencial
comando := chr( 27 ) + chr( 251 ) + "21|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
case opcao_nao_fiscal = 3
// Emite Comprovante Nao Fiscal Nao Vinculado
set color to
set color to w+/gr
@ 09,25 clear to 14,75
@ 09,25 to 14,75
tp := space( 02 )
valor := 0
forma := space( 16 )
@ 10,26 say "Öndice do Totalizador Parcial:" get tp pict "@!"
@ 11,26 say "Valor recebindo..............:" get valor pict "@e 999,999,999,999.99"
read
resp := " "
@ 12,26 say "Usar forma de Pagamento? (S/N):" get resp pict "@!" valid(resp$"SN")
read
if resp = "S"
@ 13,26 say "Forma de Pgto.........:" get forma pict "@"
read
valor := valor * 100
valor := strzero( valor, 14, 0 )
forma := upper( left( forma, 1 ) ) + lower( subs( forma, 2, 15 ) )
comando := chr( 27 ) + chr( 251 ) + "25|" + tp + "|";
+ valor + "|" + forma + "|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
else
valor := valor * 100
valor := strzero( valor, 14, 0 )
comando := chr( 27 ) + chr( 251 ) + "25|" + tp + "|";
+ valor + "|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
endif
case opcao_nao_fiscal = 4
// Abre Comprovante Nao Fiscal Vinculado
set color to
@ 11,26 clear to 13,77
set color to w+/gr
@ 10,25 clear to 12,76
@ 10,25 to 12,76
forma_pgto := space( 16 )
@ 11,26 say "Descri‡„o da Forma de Pagamento:" get forma_pgto pict "@"
read
forma_pgto := upper( left( forma_pgto, 1 ) ) + lower( subs( forma_pgto, 2, 15 ) )
comando := chr( 27 ) + chr( 251 ) + "66|" + forma_pgto + "|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
case opcao_nao_fiscal = 5
// Usa Comprovante Nao Fiscal Vinculado
texto1 := texto2 := texto3 := texto4 := texto5 := space( 48 )
texto6 := texto7 := texto8 := texto9 := texto10 := space( 48 )
set color to
set color to w+/gr
@ 11,25 clear to 22,75
@ 11,25 to 22,75
@ 11,28 say " Entre com o texto "
@ 12,26 get texto1 pict "@"
@ 13,26 get texto2 pict "@"
@ 14,26 get texto3 pict "@"
@ 15,26 get texto4 pict "@"
@ 16,26 get texto5 pict "@"
@ 17,26 get texto6 pict "@"
@ 18,26 get texto7 pict "@"
@ 19,26 get texto8 pict "@"
@ 20,26 get texto9 pict "@"
@ 21,26 get texto10 pict "@"
read
texto_todo := texto1 + texto2 + texto3 + texto4 + texto5;
+ texto6 + texto7 + texto8 + texto9 + texto10
comando := chr( 27 ) + chr( 251 ) + "67|" + texto_todo + "|";
+ chr( 13 ) + chr( 10 ) + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
case opcao_nao_fiscal = 6
// Fecha Relatorio Gerencial
comando := chr( 27 ) + chr( 251 ) + "21|" + chr( 27 )
*
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
* Delete File( "BEMAFI.CMD" )
endcase
RestScreen( 00, 00, 25, 80, Tela )
EndDo
return
Function Infor_Impressora()
Do While .T.
If LastKey() = 27
Exit
Endif
SetColor( "N/BG,W+/R,,,,BG/N" )
@ 07,19 Clear To 17,58
@ 07,19 To 17,58 Double
@ 08,20 Prompt " Leitura do Estado da Impressora "
@ 09,20 Prompt " Leitura das Al¡quotas "
@ 10,20 Prompt " Leitura dos Totalizadores Parciais "
@ 11,20 Prompt " Leitura do Subtotal "
@ 12,20 Prompt " Leitura do N£mero do Cupom "
@ 13,20 Prompt " Leitura do Estado do Papel "
@ 14,20 Prompt " Leitura dos Dados da éltima Redu‡„o "
@ 15,20 Prompt " Retorno de Vari veis (35|00 … 35|17) "
@ 16,20 Prompt " Retorno de Vari veis (35|18 … 35|34) "
Tela = SaveScreen( 00, 00, 25, 80 )
Menu To Opcao_Retorno
do case
case opcao_retorno = 1
// Leitura do Estado da Impressora
Comando := Chr(27) + Chr(251) + "19|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 2
// Leitura das Aliquotas
comando := chr( 27 ) + chr( 251 ) + "26|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 3
// Leitura dos Totalizadores Parciais
comando := chr( 27 ) + chr( 251 ) + "27|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 4
// Leitura dos Subtotal
comando := chr( 27 ) + chr( 251 ) + "29|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 5
// Leitura do numero do Cupom
comando := chr( 27 ) + chr( 251 ) + "30|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 6
// Leitura do estado do Papel na condicao de "Pouco Papel"
comando := chr( 27 ) + chr( 251 ) + "62|54|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 7
// Leitura dos Dados da ultima Reducao Z
comando := chr( 27 ) + chr( 251 ) + "62|55|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 8
// Retorno de Variaveis (Comando 35)
RetVar1()
case opcao_retorno = 9
// Continuacao do Retorno de Variaveis (Comando 35)
RetVar2()
endcase
RestScreen( 00, 00, 25, 80, Tela )
EndDo
return
Function RetVar1()
Do While .T.
If LastKey() = 27
Exit
Endif
SetColor( "N/BG,W+/R,,,,BG/N" )
@ 03,19 Clear To 22,61
@ 03,19 To 22,61 Double
@ 04,20 Prompt " N£mero de S‚rie "
@ 05,20 Prompt " Vers„o do Firmware "
@ 06,20 Prompt " CGC/IE "
@ 07,20 Prompt " Grande Total "
@ 08,20 Prompt " Cancelamentos "
@ 09,20 Prompt " Descontos "
@ 10,20 Prompt " Contador Sequencial "
@ 11,20 Prompt " N£mero de Opera‡”es n„o Fiscais "
@ 12,20 Prompt " N£mero de Cupons Cancelados "
@ 13,20 Prompt " N£mero de Redu‡”es "
@ 14,20 Prompt " N£mero de Interven‡”es T‚cnicas "
@ 15,20 Prompt " N£mero de Substitui‡”es de Propriet rio "
@ 16,20 Prompt " N£mero do Ultimo Item Vendido "
@ 17,20 Prompt " Clichˆ do Propriet rio "
@ 18,20 Prompt " N£mero do Caixa "
@ 19,20 Prompt " N£mero da Loja "
@ 20,20 Prompt " Moeda "
@ 21,20 Prompt " Flags Fiscais "
Tela = SaveScreen( 00,00,25,80 )
Menu To Opcao_Retorno
do case
case opcao_retorno = 1
// Numero de Serie
Comando := Chr(27) + Chr(251) + "35|00|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 2
// Versao do Firmware
Comando := Chr(27) + Chr(251) + "35|01|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 3
// CGC/IE
Comando := Chr(27) + Chr(251) + "35|02|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 4
// Grande Total
Comando := Chr(27) + Chr(251) + "35|03|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 5
// Cancelamentos
Comando := Chr(27) + Chr(251) + "35|04|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 6
// Descontos
Comando := Chr(27) + Chr(251) + "35|05|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 7
// Contador Sequencial
comando := chr( 27 ) + chr( 251 ) + "35|06|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 8
// Numero de Operacoes Fiscais
comando := chr( 27 ) + chr( 251 ) + "35|07|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 9
// Cupons Cancelados
comando := chr( 27 ) + chr( 251 ) + "35|08|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 10
// Numero de Reducoes
comando := chr( 27 ) + chr( 251 ) + "35|09|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 11
// Intervencoes Tecnicas
comando := chr( 27 ) + chr( 251 ) + "35|10|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 12
// Substituicoes de Proprietario
comando := chr( 27 ) + chr( 251 ) + "35|11|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 13
// Ultimo Item Vendido
comando := chr(27) + chr(251) + "35|12|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 14
// Cliche do Proprietario
Comando := Chr(27) + Chr(251) + "35|13|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 15
// Numero do Caixa
Comando := Chr(27) + Chr(251) + "35|14|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 16
// Numero da Loja
Comando := Chr(27) + Chr(251) + "35|15|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 17
// Moeda
Comando := Chr(27) + Chr(251) + "35|16|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 18
// Flags Fiscais
Comando := Chr(27) + Chr(251) + "35|17|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
endcase
RestScreen( 00,00,25,80, Tela )
EndDo
return
Function RetVar2()
Do While .T.
If LastKey() = 27
Exit
Endif
SetColor( "N/BG,W+/R,,,,BG/N" )
@ 03,19 Clear To 22,62
@ 03,19 To 22,62 Double
@ 04,20 Prompt " Minutos Ligada "
@ 05,20 Prompt " Minutos Imprimindo "
@ 06,20 Prompt " Flag de Interven‡„o T‚cnica "
@ 07,20 Prompt " Flag de Eprom Conectada "
@ 08,20 Prompt " Valor Pago no Ultimo Cupom "
@ 09,20 Prompt " Data e Hora Atual "
@ 10,20 Prompt " Contadores dos Tot. n„o Sujeitos ao ICMS "
@ 11,20 Prompt " Descri‡„o dos Tot. n„o Sujeitos ao ICMS "
@ 12,20 Prompt " Data da Ultima Redu‡„o "
@ 13,20 Prompt " Data do Movimento "
@ 14,20 Prompt " Flag de Truncamento "
@ 15,20 Prompt " Flags de Vincula‡„o ao ISS "
@ 16,20 Prompt " Totalizador de Acr‚scimos "
@ 17,20 Prompt " Contador de Bilhete de Passagem "
@ 18,20 Prompt " Formas de Pagamento "
@ 19,20 Prompt " Recebimentos (CNF n„o Vinculado) "
@ 20,20 Prompt " Departamentos "
@ 21,20 Prompt " Tipo de Impressora "
Tela = SaveScreen( 00, 00, 25, 80 )
Menu To Opcao_Retorno
do case
case opcao_retorno = 1
// Minutos Ligada
Comando := Chr(27) + Chr(251) + "35|18|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 2
// Minutos Imprimindo
Comando := Chr(27) + Chr(251) + "35|19|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 3
// Flag de Intervencao Tecnica
Comando := Chr(27) + Chr(251) + "35|20|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 4
// Flag de Eprom Conectada
Comando := Chr(27) + Chr(251) + "35|21|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 5
// Valor Pago no Ultimo Cupom
Comando := Chr(27) + Chr(251) + "35|22|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 6
// Data e Hora Atual
Comando := Chr(27) + Chr(251) + "35|23|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 7
// Contadores dos Totalizadores nao Sujeitos ICMS
comando := chr( 27 ) + chr( 251 ) + "35|24|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 8
// Descricao dos Tot. nao Sujeitos ICMS
comando := chr( 27 ) + chr( 251 ) + "35|25|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 9
// Data da Ultima Reducao
comando := chr( 27 ) + chr( 251 ) + "35|26|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 10
// Data do Movimento
comando := chr( 27 ) + chr( 251 ) + "35|27|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 11
// Flag de Truncamento
comando := chr( 27 ) + chr( 251 ) + "35|28|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 12
// Flags de Vinculacao
comando := chr( 27 ) + chr( 251 ) + "35|29|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 13
// Totalizador de Acrescimos
comando := chr(27) + chr(251) + "35|30|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 14
// Contador de Bilhete de Passagem
Comando := Chr(27) + Chr(251) + "35|31|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 15
// Formas de Pagto
Comando := Chr(27) + Chr(251) + "35|32|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 16
// Recebimentos (CNF nao Vinculado)
Comando := Chr(27) + Chr(251) + "35|33|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 17
// Departamentos
Comando := Chr(27) + Chr(251) + "35|34|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 18
// Tipo da Impressora
Comando := Chr(27) + Chr(251) + "35|253|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
endcase
RestScreen( 00, 00, 25, 80, Tela )
EndDo
return
Function Autentica()
Do While .T.
If LastKey() = 27
Exit
Endif
SetColor( "N/BG,W+/R,,,,BG/N" )
@ 08,19 Clear To 11,57
@ 08,19 To 11,57 Double
@ 09,20 Prompt " Autentica‡„o de Documentos "
@ 10,20 Prompt " Programa Caracter para Autentica‡„o "
Tela = SaveScreen( 00, 00, 25, 80 )
Menu To Opcao_Retorno
do case
case opcao_retorno = 1
// Autenticacao
Comando := Chr(27) + Chr(251) + "16|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 2
// Programa Caracter para Autenticacao
comando := chr( 27 ) + chr( 251 ) + "64|255|017|049|081|159|000|255|017|049|081|159|000|255|129|129|129|255|000|" + chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
endcase
RestScreen( 00, 00, 25, 80, Tela )
EndDo
return
Function Gaveta()
Do While .T.
If LastKey() = 27
Exit
Endif
SetColor( "N/BG,W+/R,,,,BG/N" )
@ 10,19 Clear To 13,49
@ 10,19 To 13,49 Double
@ 11,20 Prompt " Acionamento da Gaveta "
@ 12,20 Prompt " Leitura do Estado da Gaveta "
Tela = SaveScreen( 00, 00, 25, 80 )
Menu To Opcao_Retorno
do case
case opcao_retorno = 1
// Acionamento da Gaveta
Comando := Chr(27) + Chr(251) + "22|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 2
// Leitura do Estado da Gaveta
Comando := Chr(27) + Chr(251) + "23|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
endcase
RestScreen( 00, 00, 25, 80, Tela )
EndDo
return
Function Cheque()
Do While .T.
If LastKey() = 27
Exit
Endif
SetColor( "N/BG,W+/R,,,,BG/N" )
@ 10,19 Clear To 13,54
@ 10,19 To 16,54 Double
@ 11,20 Prompt " Programa‡„o da Moeda no Singular "
@ 12,20 Prompt " Programa‡„o da Moeda no Plural "
@ 13,20 Prompt " Impress„o de Cheque "
@ 14,20 Prompt " Status do Cheque "
@ 15,20 Prompt " Cancela Impress„o do Cheque "
Tela = SaveScreen( 00, 00, 25, 80 )
Menu To Opcao_Retorno
do case
case opcao_retorno = 1
// Programacao da moeda no singular
MoedaSingular := Space( 19 )
Set Color To
@ 11,25 Clear To 13,62
SetColor( "W+/GR" )
@ 11,22 Clear To 13,61
@ 11,22 To 13,61
@ 12,23 Say "Moeda no Singular:" Get MoedaSingular pict "@!"
Read
Comando := Chr( 27 ) + Chr( 251 ) + "58|" + MoedaSingular + "|" + Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 2
// Programacao da moeda no plural
MoedaPlural := Space( 19 )
Set Color To
@ 12,25 Clear To 14,60
SetColor( "W+/GR" )
@ 12,22 Clear To 14,59
@ 12,22 To 14,59
@ 13,23 Say "Moeda no Plural:" Get MoedaPlural pict "@!"
Read
Comando := Chr( 27 ) + Chr( 251 ) + "59|" + MoedaPlural + "|" + Chr( 27 )
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 3
// Impressao do cheque
Banco := Space( 3 )
Valor := 0
Favor := Space( 45 )
Cidad := Space( 27 )
Data := Space( 10 )
Set Color To
@ 13,23 Clear To 19,80
SetColor( "W+/GR" )
@ 13,20 Clear To 19,79
@ 13,20 To 19,79
@ 14,21 Say "Banco.....:" Get Banco pict "@!"
@ 15,21 Say "Valor.....:" Get Valor Pict "@e 999,999.99"
@ 16,21 Say "Favorecido:" Get Favor pict "@!"
@ 17,21 Say "Cidade....:" Get Cidad pict "@!"
@ 18,21 Say "Data......:" Get Data pict "99/99/9999"
Read
if LastKey() == 27
exit
Endif
Valor := Valor * 100
Valor := StrZero( Valor, 14, 0 )
Data := substr( Data, 1, 2 ) + "|" + substr( Data, 4, 2 ) + "|" + substr( Data, 7, 4 )
Comando := Chr(27) + Chr(251) + "57|" + Banco + "|" + Valor + "|" + Favor + "|" + Cidad + "|" + Data + "|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 4
// Status do cheque
Comando := Chr(27) + Chr(251) + "62|48|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
case opcao_retorno = 5
// Cancela impressao do cheque
Comando := Chr(27) + Chr(251) + "62|49|" + Chr(27)
GravaArquivo( Comando )
!BEMAFI.EXE
MostraStatus()
endcase
RestScreen( 00, 00, 25, 80, Tela )
EndDo
return
/////////
Function Sombra_Transparente
////////////////////////////
Parameters nTopo, nEsquerda, nBase, nDireita
RestScreen( ( nTopo + 1 ) , ( nDireita + 1 ) , nBase , ( nDireita + 1 ) , ;
Transform( SaveScreen( ( nTopo + 1 ) , ( nDireita + 1 ) , nBase , ( nDireita + 1 ) ) , ;
Replicate( "X",( nBase - nTopo + 1 ) * 2 ) ) )
If nBase < 24
RestScreen( ( nBase + 1 ) , ( nEsquerda + 1 ) , ( nBase + 1 ) , ( nDireita + 1 ) , ;
Transform( SaveScreen( ( nBase + 1) , ( nEsquerda + 1 ) ,( nBase + 1 ) , ( nDireita + 1 ) ) , ;
Replicate( "X" , ( nDireita - nEsquerda + 2 ) ) ) )
EndIf
//////
Return
//////
/////////////////////
Function GravaArquivo
/////////////////////
Parameters Comando
Delete File( "BEMAFI.CMD" )
Delete File( "STATUS.TXT" )
Delete File( "RETORNO.TXT" )
iArquivo := FCreate( "BEMAFI.CMD" )
FWrite( iArquivo, @Comando, Len( Comando ) )
FClose( iArquivo )
//////
Return
//////
/////////////////////
Function MostraStatus
/////////////////////
Do While .T.
If .Not. File( "STATUS.TXT" )
Loop
Else
iArqStatus := FOpen( "STATUS.TXT" )
iTamArqStatus := FSeek( iArqStatus, 0, 2 )
FClose( iArqStatus )
iArqStatus := FOpen( "STATUS.TXT" )
sRetorno := " "
sDadosStatus := ""
For x := 1 to iTamArqStatus
FRead( iArqStatus, @sRetorno, 1 )
sDadosStatus = sDadosStatus + sRetorno
Next
Set Colo To
Clear
@ 05,05 Say "Conteudo do Arquivo STATUS.TXT"
@ 07,05 Say sDadosStatus
if File ("RETORNO.TXT")
iArqRetorno := FOpen( "RETORNO.TXT" )
iTamArqRetorno := FSeek( iArqRetorno, 0, 2 )
FClose( iArqRetorno )
iArqRetorno := FOpen( "RETORNO.TXT" )
sRetorno := " "
sDadosRetorno := ""
For x := 1 to iTamArqRetorno
FRead( iArqRetorno, @sRetorno, 1 )
sDadosRetorno = sDadosRetorno + sRetorno
Next
@ 10,05 Say "Conteudo do Arquivo RETORNO.TXT"
@ 12,05 Say sDadosRetorno
FClose( iArqRetorno )
ENDIF
@ 14,05 Say "Pressione qualquer tecla..."
Inkey( 0 )
Exit
EndIf
EndDo
FClose( iArqStatus )
//////
Return
//////