para poder baixar.
Código: Selecionar todos
////////////////////////////////////////////////////////////////////////////////
// tele0000.prg - modulo principal do sistema de tele-entrega //
// Programa da Visual Lib 2.0 - Adaptado para Harbour
// programador : Daniel Halon //
// data : 05/07/2007 //
////////////////////////////////////////////////////////////////////////////////
#include "INKEY.CH"
#include 'FILEIO.CH'
#include "FISCAL.CH"
#include "visual2.ch"
// LOCAL aEnv := SavEnv( 0, 0, 24, 79 )
// RstEnv( aEnv )
Function main(entrada)
Memvar porta
LOCAL a_menu := {}
LOCAL m_opcao := ''
LOCAL cCont := 1
LOCAL aEnv
PUBLIC a_cargos := {}
PUBLIC a_impre := {}
PUBLIC a_cartao := {}
PUBLIC a_zzdat := {}
PUBLIC a_tprod := {}
PUBLIC a_color := {}
PUBLIC a_Vales := {}
PUBLIC a_Ende := {}
PUBLIC cNom := ''
PUBLIC Netlpt := '1'
//
// configuracao
//
set date to french
set wrap on
set deleted on
set century on
set color to
set scoreboard off
set softseek on
set epoch to 1960
set confirm on
//
// cores do sistema
//
if iscolor()
aadd(a_color,{'15/0','15/3','15/2','15/7'}) // menus
else
aadd(a_color,{'15/3','15/5','15/1*','15/7'}) // menus
endif
set key K_F10 to Saida //Funcao utilizar VLExit() da Visual Lib
SetKeyMouse( K_F1, { 24, 24, 00, 07 } ) //VL-Associa tecla de fun‡Æo … uma
SetKeyMouse( K_F10, { 24, 24, 72, 79 } ) //regiao da tela - uso do mouse
check_files()
open_files()
Public Pro_dia := open_promo() // definindo o valor do desconto para a promocao de hoje
IF Alltrim( Netname() ) == alltrim( tele0050->( a_maqfis50 ) )
//
// DECLARO PUBLICA A VARIAVEL PARA A PORTA DE COMUNICACAO SERIAL para impressora fiscal
//
Public Porta := FOpen( tele0050->A_COM___50, FO_READWRITE + FO_COMPAT )
//
// VERIFICO A PORTA DE COMUNICACAO DA SERIAL
//
IF tele0050->a_cupom_50 == TRUE
Progra_pgto() // Programo as formas de pagamento na impressora fiscal
ELSE
MsgBox3D1( {"ATENCAO!!!","","Impressora Fiscal DESATIVADA","" },"Impressora Fiscal" )
ENDIF
ENDIF
Desktop(empresa()[2] + space(5) + 'Atend.' + cNom + space(2) + 'Ter: ['+ IIF( empty( alltrim( netname() ) ), 'Single', alltrim(netname() ) ) + ']' + space(3) + 'Versao Vl 07.07') //Fun‡Æo que inicializa a Visual Lib - Sempre deve ser chamada no inicio
DrawFn( 01, "Sobre" ) //VL-Desenha fun‡Æo na linha 24
DrawFn( 10, "Sa¡da" ) //VL-Desenha fun‡Æo na linha 24
Auditor( 'Entrada ao sistema por: ' + cNom,'Tele0000',0 )
//
// Cartoes de Credito
//
aadd(a_cartao,'CREDICARD ')
aadd(a_cartao,'MASTERCARD ')
aadd(a_cartao,'DINNERS CLUB ')
aadd(a_cartao,'REDE SHOP ')
aadd(a_cartao,'MAESTRO ')
aadd(a_cartao,'VISA ')
aadd(a_cartao,'VISA ELECTRON ')
aadd(a_cartao,'AMERICAN EXPRESS')
asort(a_cartao)
//
// tamanhos de pizzas
//////////////////////
// a_zzdat //
// 1 - codigo //
// 2 - sufixo //
// 3 - coeficiente //
// 4 - descricao //
//////////////////////
select tele0050
aadd( a_zzdat, {'ZZ' , '',0 ,'' } )
aadd( a_zzdat, {'ZZF','F',a_zzc1__50,' F - Familia '} )
aadd( a_zzdat, {'ZZG','G',a_zzc2__50,' G - Grande '} )
aadd( a_zzdat, {'ZZM','M',a_zzc3__50,' M - Media '} )
aadd( a_zzdat, {'ZZP','P',a_zzc4__50,' P - Pequena '} )
aadd( a_zzdat, {'ZZB','B',a_zzc5__50,' B - Brotinho '} )
aadd( a_zzdat, {'ZZC','C',a_zzc6__50,' C - Calzone '} )
aadd( a_zzdat, {'ZZX','X',a_zzc7__50,' X - Prom.Gde. '} )
aadd( a_zzdat, {'ZZW','W',a_zzc8__50,' W - Prom.Broto '} )
// Cria um "Menu de Barra" na tela principal, atribuindo-o a vari vel "mBar"
mBar := NewBarMenu()
mPara := NewDownMenu() //(VL) Cria Menu Down vinculado a mBar
mCada := NewDownMenu() //(VL) Cria Menu Down vinculado a mBar
mOper := NewDownMenu() //(VL) Cria Menu Down vinculado a mBar
mManu := NewDownMenu() //(VL) Cria Menu Down vinculado a mBar
mSupe := NewDownMenu() //(VL) Cria Menu Down vinculado a mBar
mDire := NewDownMenu() //(VL) Cria Menu Down vinculado a mBar
mCada1 := NewDownMenu() //(VL) Cria Sub-Menu vinculado a mCada
mCada2 := NewDownMenu() //(VL) Cria Sub-Menu vinculado a mCada
mCada3 := NewDownMenu() //(VL) Cria Sub-Menu vinculado a mCada
mCada31 := NewDownMenu() //(VL) Cria Sub-Menu vinculado a mCada3
mCada5 := NewDownMenu() //(VL) Cria Sub-Menu vinculado a mCada
// Adiciona os itens (prompts)
AddBarItem( mBar, "&Parametros" , "Parametros do sistema" , mPara ) //{ || Menu_Parametros() } )
AddBarItem( mBar, "&Cadastros" , "Cadastros varios" , mCada ) //{ || Cadastros() } )
AddBarItem( mBar, "&Operativo" , "Opera‡äes referentes ao turno" , mOper ) //{ || Pedidos() } )
AddBarItem( mBar, "&Manuten‡Æo" , "Manuten‡Æo do sistema" , mManu ) //{ || Servicos() } )
AddBarItem( mBar, "&SupervisÆo" , "Area exclusiva da supervisÆo" , mSupe ) //{ || Supervisor() } )
AddBarItem( mBar, "&Dire‡Æo" , "Area privativa da Dire‡Æo" , mDire ) //{ || Gerente() } )
// Sub menus
// mPara - Defini‡Æo dos itens dos paramentros
//
AddDownItem( mPara, "&Gerais" , "Parametros Gerais", { || Parametros() } )
AddDownItem( mPara, "&Troca de Turno" , "Troca de Data e Turno", { || Para_data() } )
AddDownItem( mPara, "&Promo‡äes" , "Promo‡äes", { || Para_promo() } )
AddDownSep ( mPara ) // Linha de separa‡Æo
AddDownItem( mPara, "Sai&r", "Encerra o programa", { || Saida() } )
// Sub menus
// mCada - Defini‡Æo dos itens dos Cadastros
//
AddDownItem( mCada, "&Clientes", "Cadastro de Clientes", mCada1 )
AddDownItem( mCada, "&Entregadores", "Cadastro de Entregadores", mCada2 )
AddDownItem( mCada, "&Produtos", "Cadastro de Produtos", mCada3 )
AddDownItem( mCada, "&Sicredi", "Cadastro de Fun. Sicredi", )
AddDownItem( mCada, "&Funcionarios", "Cadastro de Funcion rios", mCada5 )
AddDownItem( mCada, "&Bairros", "Cadastro de Bairros" )
AddDownItem( mCada, "&Tipos de Venda", "Cadastro de tipos de Venda" )
AddDownItem( mCada, "S&abores em Prom.", "Cadastro Promo‡äes" )
AddDownItem( mCada, "Cartä&es de Cr‚dito", "Cadastro Cartäes de Credito" )
AddDownItem( mCada, "Ba&ncos", "Cadastro de Bancos" )
// Sub menus
// mCada1 - Sub menus de clientes
//
AddDownItem( mCada1, "&Telefone", "Digite o telefone com o tra‡o ap¢s o 4§ n£mero", { || Cli_browtel(1) } )
AddDownItem( mCada1, "&Endere‡o", "Digite o endere‡o, o sistema aproximar ", { || Cli_browtel(2) } )
AddDownItem( mCada1, "&Bairro", "Digite o bairro", { || Cli_browtel(3) } )
AddDownItem( mCada1, "&Nome", "Digite o Nome do cliente", { || Cli_browtel(4) } )
// Sub menus
// mCada2 - Sub menus de Entregadores
//
AddDownItem( mCada2, "Cad.&C¢digo", "Digite o c¢digo do entregador", { || Fun_brow_mot(1) } )
AddDownItem( mCada2, "Cad.&Nome", "Digite o nome do entregador", { || Fun_brow_mot(2) } )
AddDownItem( mCada2, "Cad.&Telefone", "Digite o telefone do entregador com o tra‡o ap¢s o 4§ n£mero", { || Fun_brow_mot(3) } )
AddDownItem( mCada2, "&Ativar Ent.", "Ativar um entregador", { || Ativo_mot() } )
// Sub menus
// mCada3 - Sub menus de Produtos
//
AddDownItem( mCada3, "&Ent.de Mercadorias", "Digite o c¢digo do produto a lan‡ar", { || Ent_mercad() } )
AddDownItem( mCada3, "&Cad.de Mercadorias", "Menu de Cadastros de produtos", mCada31 )
// Sub menus
// mCada31 - Sub menus de Cadastro de Produtos
//
AddDownItem( mCada31, "&C¢digo", "Digite o c¢digo do produto", { || Produto_brow(1) } )
AddDownItem( mCada31, "&Descri‡Æo","Digite a descri‡Æo do produto", { || Produto_brow(2) } )
//AddDownItem( mPdn, "Op‡Æo &2", "Segunda Op‡Æo - Sem fun‡Æo vinculada" )
//AddDownItem( mPdn, "Op‡Æo &3", "Terceira Op‡Æo - Com Sub-Menu", mPdn1 )
//AddDownSep ( mPdn ) // Linha de separa‡Æo
//AddDownItem( mPdn, "&ChkDownItem", "Marca/Desmarca um item do menu", mPdnChk )
//AddDownItem( mPdn, "&SetDownItem", "Habilita/Desabilita um item do menu", mPdnSet )
//AddDownSep ( mPdn ) // Linha de separa‡Æo
//AddDownItem( mPdn, "Sai&r", "Encerra o programa", { || Saida() } )
Do while .t. // Loop principal
BarMenu( mBar ) //VL-Ap¢s a definicao dos menus, BarMenu( mBar ) controla tudo
set key K_F10 to // Desligamos set key
SetKeyMouse( K_F10, {} ) //VL-Desativamos o Mouse para F10
VLExit() //VL-Pede confirmacao para sair
set key K_F10 to saida // Se chegou aqui, significa que nao saiu...
SetKeyMouse( K_F10, { 24, 24, 72, 79 } ) //VL-Define novamente F10 p/ mouse
Enddo
Return
////////////////////////////////////////
function Help
local aKM := SetKeyMouse( K_F1, {} ) //VL-Salvamos e desativamos F1 p/ mouse
set key K_F1 to
// Observe que a mensagem passada para MsgBox3d1() e um array com 6 elementos.
// Cada elemento representa uma linha na janela de mensagem que sera exibida
MsgBox3D1( { "Infowork Sistemas de inform tica",;
"",;
"Av. Prot sio Alves, 822 - Rio Branco",;
"CEP: 90410-004 Porto Alegre - RS",;
"",;
"PABX/FAX: (51) 3023-5081",;
"",;
replicate(chr(196),19),;
Version(),;
'Running on ' + OS() },;
"Sobre o Sistema de Tele-entrega" ) // segundo parametro (titulo)
set key K_F1 to help
SetKeyMouse( K_F1, aKM ) //VL-Reativamos F1 para o mouse
return nil
///////////////////////////////////////
Function saida
local aKM := SetKeyMouse( K_F10, {} ) //VL-Salvamos e desativamos F10 p/ mouse
set key K_F10 to
VLExit() //VL-Sa¡da da Visual Lib
set key K_F10 to saida
SetKeyMouse( K_F10, aKM ) //VL-Reativamos F10 para o mouse
return nil
///////////////////////////////////////////////////////////////////////////////
//
// Funcoes...
//
////////////////////////////////////////////////////////////////////////////////
// check_pedido() //
////////////////////////////////////////////////////////////////////////////////
Static function check_pedido( N_ped )
LOCAL m_key, m_y, m_x
m_y := 10
m_x := 15
select tele0060
dbsetorder(1)
m_key := strzero( N_ped,6,0)
if !dbseek(m_key)
msg('Pedido nao encontrado!',.t.)
msg()
return .f.
else
IF Tele0060->( a_fatura60 == TRUE )
IF !Sino(17,0,2,' Este pedido ja foi faturado ',' Deseja faturar novamente? ')
Return .f.
ENDIF
ENDIF
IF Tele0060->( a_total_60 == 0 )
msg('ESTE CUPOM NAO PODE SER EMITIDO, O VALOR DO PEDIDO E 0.00 !!!',.t.)
msg()
Return FALSE
ENDIF
if a_turno_60 # tele0050->a_turno_50 .or. a_dtped_60 # tele0050->a_dtmov_50
msg('Atencao !!!',.t.)
if sino(17,0,2,' Este pedido nao corresponde a esta ',' Data ou Turno, deseja continuar? ')
else
return .f.
endif
msg()
endif
@m_y+2, m_x+26 say a_nome__60 color '15/5'
endif
return .t.
///////////////////////////////////////////////////////////////////////////////
Function check_telefono( nPedido )
LOCAL cTeleaux := ' - '
LOCAL m_key
LOCAL m_y
LOCAL m_x
LOCAL cAchado := FALSE
m_y := 10
m_x := 15
tele0010->( dbsetorder( 1 ) )
tele0060->( dbsetorder( 1 ) )
tele0060->( dbseek( nPedido ) )
IF tele0010->( !dbseek( substr( tele0060->( a_cli___60 ), 1, 9 ) ) )
IF sino(17,0,0,' O telefone deste pedido nao consta no cadastro ',' de clientes, deseja procurar outro numero de telefone? ')
@m_y+3, m_x+12 get cTeleaux picture '9999-9999'
Read
IF lastkey() == 27
Return( cAchado )
ENDIF
cTeleAux += space( 4 )
IF tele0010->( !dbseek( tele0060->( cTeleAux ) ) )
msg( 'Este numero de telefone nao pertence a nehum cliente!!!', TRUE )
inkey( 0 )
msg()
Return( cAchado )
ELSE
@m_y+3, m_x+12 say Tele0010->( a_fone__10 ) color '15/5'
@m_y+4, m_x+12 say Substr( Tele0010->( a_ende__10 ), 1,43 ) color '15/5'
cAchado := TRUE
ENDIF
ELSE
Return( cAchado )
ENDIF
ELSE
@m_y+3, m_x+12 say Tele0010->( a_fone__10 ) color '15/5'
@m_y+4, m_x+12 say Substr( Tele0060->( a_ende__60 ), 1,43 ) color '15/5'
cAchado := TRUE
ENDIF
Return( cAchado )