Clipper On Line • Ver Tópico - TRAVA MENSAL DO SISTEMA E LIBERA COM SENHA MUTANTE

TRAVA MENSAL DO SISTEMA E LIBERA COM SENHA MUTANTE

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

TRAVA MENSAL DO SISTEMA E LIBERA COM SENHA MUTANTE

Mensagempor heveraldo » 10 Ago 2006 12:54

* Protecao do sistema e bloqueio por inadimplencia
* Function Bloqueio(FLAG)
* Variaveis de protecao do sistema e bloqueio por inadimplencia
*
Privat memo_Diario := if(type("memo_Diario" ) = "U", ctod(" / / "), memo_Diario )
Privat memo_Vencimento := if(type("memo_Vencimento") = "U", ctod(" / / "), memo_Vencimento )
Privat memo_Executa := if(type("memo_Executa" ) = "U", 0 , memo_Executa )

If File("MEMO.MEM") // Arquivo memoria configuracoes de variaveis do sistema
Restore From MEMO Additive
endif

* Verifica se contador
*
if senha1 = "ZERA" + STRZERO(DAY(DATE()) + MONTH(DATE()) - 1, 2) //.and. file("SCG1000.DBF") .and. file("PROTECAO.MEM") .and. date() < ctod("01/06/2003") // Contador para versoes demonstrativas
memo_Executa := 0
* Save all like memo_* to MEMO
elseif memo_Executa >= 365 //.or. date() > ctod("10/06/2004") .or. !file("SCG1000.DBF") .or. !file("PROTECAO.MEM")
cls
@ 00,00 say "Programa muito grande para ser alocado na mem¢ria" // MENSAGEM DO MSDOS
inkey(0)
Inicia("finaliza")
quit
elseif memo_Executa <= 365
memo_Executa ++
* Save all like memo_* to MEMO
endif


* Inicia variavel de vencimento e diario e grava arquivo
*
* if senha1 == "ZERA" + STRZERO(DAY(DATE()) + MONTH(DATE()) - 1, 2) .and. memo_Vencimento < memo_Diario
* memo_Vencimento := if(empty(memo_Vencimento), addmonth(date(),+1), addmonth(memo_Vencimento,+1))
* memo_Diario := date()
* save all like memo_* to MEMO.mem
* endif

* Atualiza data diario e grava arquivo
*
if empty(memo_Diario) .or. memo_Diario < date() //.and. (memo_Diario+1 == date() .or. memo_Diario+2 == date() .or. memo_Diario+3 == date())
memo_Diario := date()
save all like memo_* to MEMO.mem
endif

* Verifica se data compitador foi alterada para data inferior a diario
*
if memo_Diario # date()
Aviso("Verifique a data do computador.",05)
QUIT
endif

* Verifica se data ultrapassou vencimento
*
* if memo_Vencimento+15 < memo_Diario .or. (memo_Vencimento < memo_Diario .and. FLAG # NIL) //.or. memo_Diario # date()
if memo_Vencimento < memo_Diario .or. (memo_Vencimento < memo_Diario .and. FLAG # NIL) //.or. memo_Diario # date()

* Apos 10 dias do vencimento, mostra mensagem de bloqueio total
* E BLOQUEAR TOTALMENTE O SISTEMA

blo_nAno := val(right(dtoc(date()),2))
blo_nMes := month(date())
blo_nL1 := asc(subs(UPPER(MesAtu()),1,1))
blo_nL2 := asc(subs(UPPER(MesAtu()),2,1))
blo_nL3 := asc(subs(UPPER(MesAtu()),3,1))

blo_Senha1 := strzero(blo_nL1 * (blo_nMes * blo_nAno), 4) + strzero(blo_nL1 * (blo_nAno+1) * (blo_nMes+1), 4)
blo_Senha2 := strzero(blo_nL2 * (blo_nMes * blo_nAno), 4) + strzero(blo_nL2 * (blo_nAno+2) * (blo_nMes+2), 4)
blo_Senha3 := strzero(blo_nL3 * (blo_nMes * blo_nAno), 4) + strzero(blo_nL3 * (blo_nAno+3) * (blo_nMes+3), 4)

blo_D1 := Digito(blo_Senha1)
blo_D2 := Digito(blo_Senha2)
blo_D3 := Digito(blo_Senha3)

blo_Crip1 := space(08)
blo_Crip2 := space(08)
blo_Crip3 := space(08)
blo_DCri1 := space(01)
blo_DCri2 := space(01)
blo_DCri3 := space(01)

jan(11,10,38,70,"w+/w","n+/w",.T.)
@ 11,12 say "DESBLOQUEIO" color "gr/w"
Aviso(" SISTEMA BLOQUEADO ! ",10)

Quadro(21,20,08,"Senha:")
* Quadro(21,35,08,"")
* Quadro(21,50,08,"")
Quadro(21,30,01,"")
* Quadro(21,45,01,"")
* Quadro(21,60,01,"")

@ 28,12 say "þ Sistema Bloqueado. " color "w+/w"
@ 30,12 say " Entre em contato com o suporte, para solitita‡„o de" color "w+/w"
@ 31,12 say " senha para desbloqueio. " color "w+/w"
@ 34,12 say " ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ" color "w+/w"
@ 35,12 say " Suporte: (85)8859.9770 (85)9941.1991 (85)3279.7006" color "w+/w"

@ 22,21 get blo_Crip1 pict "@!"
@ 22,31 get blo_DCri1 pict "!"
* @ 22,36 get blo_Crip2 pict "@!"
* @ 22,46 get blo_DCri2 pict "!"
* @ 22,51 get blo_Crip3 pict "@!"
* @ 22,61 get blo_DCri3 pict "!"

if senha1 == "SUPERVISOR" + STRZERO(DAY(DATE()) + MONTH(DATE()) - 1, 2) + "èëì"
@ 24,21 say blo_Senha1 pict "@!"
@ 24,36 say blo_Senha2 pict "@!"
@ 24,51 say blo_Senha3 pict "@!"
@ 24,31 say blo_D1 pict "@!"
@ 24,46 say blo_D2 pict "@!"
@ 24,61 say blo_D3 pict "@!"
endif
read

* if blo_Crip1 = blo_Senha1 .and. blo_Crip2 = blo_Senha2 .and. blo_Crip3 = blo_Senha3 .and. ;
* blo_DCri1 = blo_D1 .and. blo_DCri2 = blo_D2 .and. blo_DCri3 = blo_D3

if blo_Crip1 = blo_Senha1 .and. blo_DCri1 = blo_D1

memo_Vencimento := if(empty(memo_Vencimento), addmonth(date(),+1), addmonth(memo_Vencimento,+1))
memo_Diario := date()
memo_Executa := 0

save all like memo_* to MEMO.mem
else
aviso(" Senha incorreta ! ",5)
setcolor("bg+/b")
cls
@ 04,02 say "Sistema Bloqueado no dia " + dtoc(memo_Diario) color "bg+/b"
@ 05,02 to 05,77 color "bg+/b"
@ 06,02 say "Entre em contato com o suporte, para solitita‡„o de senha para desbloqueio." color "bg+/b"
@ 44,02 to 44,77 color "bg+/b"
@ 45,02 say "Suporte: (85)8859.9770 (85)3279.7006" color "bg+/b"
inkey(0)
Inicia("finaliza")
QUIT
endif
elseif memo_Vencimento+10 < memo_Diario // Apos 10 dias do vencimento, mostra mensagem de bloqueio total
* Desloca(" Faltam " + str(memo_Vencimento + 15 - memo_Diario,1) + " dias para o bloqueio total do sistema." ,46,"r/w")
elseif memo_Vencimento+05 < memo_Diario // Apos 05 dias do vencimento, mostra mensagem de bloqueio parcial
* Desloca(" Faltam " + str(memo_Vencimento + 10 - memo_Diario,1) + " dias para o bloqueio parcial do sistema." ,46,"gr*/w")
endif

* Retira variaveis da memoria
* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Release all like memo_*
Release all like blo_*
Return (.T.)

* Digito
* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
Function Digito(m_codigo,m_digito)
privat m_digver,d,df1,df2,df3,resto
m_codigo := m_codigo + repl("0",12-len(trim(m_codigo)))
for I := 1 to 12
d := StrZero(I,2)
d1&d. := val(subs(m_codigo,I,1))
next
df1 := 0
for I := 5 to 2 step -1
D := STRZERO(5-I+1,2)
DF1 := DF1 + I * D1&D.
next
for I := 9 to 2 STEP -1
D := StrZero(9-I+5,2)
DF1 := DF1 + I * D1&D.
next
DF2 := DF1 / 11 ; DF3 := INT(DF2) * 11 ; resto := DF1 - DF3
m_digver := iif(resto=0.OR.resto=1,str(0,1),str(11-resto,1))
if m_digito # NIL
if m_digver # m_digito
aviso("Digito n„o confere...",3)
return(.F.)
else
return(.T.)
endif
endif
if m_digito = NIL
Return m_digver
endif
Return(.F.)
heveraldo
Usuário Nível 2

Usuário Nível 2
 
Mensagens: 72
Data de registro: 16 Jun 2006 17:15
Curtiu: 0 vez
Mens.Curtidas: 0 vez

Dá erro

Mensagempor Pablo César » 11 Ago 2006 08:40

Holá Heveraldo !

Corrí até pensando que você iria postar aquela solução em USB...

Tentei compilar "TRAVA MENSAL DO SISTEMA E LIBERA COM SENHA MUTANTE" mas dá seguinte erros por falta de:

'INICIA'
'AVISO'
'MESATU'
'JAN'
'QUADRO'
'ADDMONTH'

Aguardo seus comentários,

:'(
Avatar de usuário

Pablo César
Usuário Nível 7

Usuário Nível 7
 
Mensagens: 5312
Data de registro: 31 Mai 2006 10:22
Cidade/Estado: Curitiba - Paraná
Curtiu: 142 vezes
Mens.Curtidas: 152 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 21 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro