Página 1 de 1

Sistema de Sorteio

Enviado: 14 Fev 2011 10:05
por raposo
Prezados, bom dia

Sou novato em Clipper e estou tentando adptar um sistema que já possuímos, porém necessito desenvolver um sistema de sorteio, o qual consiste:

1) Pegar o número lançado no sistema no dia anterior, ou seja a somatória de vendas deu 120.

2) Eu pego esses 120 e sorteio pelos horários já definidos, ou seja :
8:00 - 10:00 - Sorteio 10% das 120
10:00 - 13:00 - Sorteio 80% das 120
16:00 - 17:00 - Sorteio 10% das 120

Alguém pode me ajudar para que eu possa começar o sistema.

Desde já agradeço.

Sistema de Sorteio

Enviado: 14 Fev 2011 10:28
por Pablo César
Seja bem vindo ao fórum, raposo !

1. Como você quer que o sistema aja conforme período de horário, você primeiramente deverá montar um tabela que guarde esses limite de horários, assim você não tem que mudar seu código se no futuro precisar mudar algum horário.
2. Eu transformaria cada horário em segundos, assim você consegue ter exatidão no calculo, não que venha a precisar utilizar segundos mas que precisamente existe uma função chamada TIMETOSEC() da CT.LIB.
3. Imagino que você ja tem a rotina para verificar quantos registros existem de determinado dia. Essa informação irá precisar.

Re: Sistema de Sorteio

Enviado: 14 Fev 2011 10:32
por raposo
Prezado Pablo Cesar, primeiramente muito obrigado pela resposta.

Essa tabela eu já possuo, o que não estou conseguindo realizar é o passo dois.

Abraços e novamente obrigado.

Sistema de Sorteio

Enviado: 14 Fev 2011 10:51
por Pablo César
Bom se você ja tem a tabela, espero que possua também um campo valor_em_porcentagem a ser aplicado para cada período, então vou me referir como se ela fosse em dbf.

Primeiro se posicione no período em que se encontra o horário em questão (no exemplo como cHora). Eu faço assim:

Código: Selecionar todos

SELE 28
USE TABELA
LOCATE FOR (28->INI)<=cHORA .AND. (28->FIM)>=cHORA
IF !FOUND()
   nPerct:=0
ELSE
   nPerct:=(28->PERCENTO)
ENDIF
Na propria tabela, você pode gravar cada horário em segundos e o cHora também em segundos. Pois o TIMETOSEC() irá retornar um número inteiro que começa da meia noite até às 23:59