PC SOFT
ONLINE REPOSITORY
FOR WINDEVWEBDEV AND WINDEV MOBILE

Home |  | Sign in | English US
Exemplo Urna Eletronica feita com WINDEV 27
Published by Boller
in the category Tools
New features



Description
Exemplo Urna Eletronica feita com WINDEV 27


Esse exemplo é para demonstrar como fazer um aplicativo de votacao para associacao de clubes para escolher um presidente para uma associação de moradores, clubes, diretores de colegios e outras finalidades.

O codigo é open source e tem tecnicas que garante que o documento nao seja lido para saber quem votou em quem, estando criptografado o titulo, o campo do tipo PASSWORD É ILEGIVEL E NAO TEM COMO DESCRIPTOGRAFAR, sendo algo incrivel e altamente seguro para garantir o anonimato do voto.

Pode ser usado em eleições de síndico, associação de moradores, presidente de clubes... so alterar o gonte como achar mrlhor

https://youtu.be/p6laSZwOogc

Prezados,

Se você usa e gosta do nosso atendimento e pode contribuir com as nossas atividades de suporte aqui no grupo de forma expontanea e mensal e queira fazer uma contribuição de qualquer valor para melhorarmos o nosso atendimento e manutenção dos nossos servidores, segue abaixo o link para fazer a sua doação:

https://www.paypal.com/donate/?hosted_button_id=JU7GAW6Q8YY42
Illustrations, screen shots
none
none
User reviews
(To evaluate this resource, click 'Write a review')
Boller
CODIGO FONTE

// Summary: <specify the procedure action>
// Syntax:
// EVENTO_VOTACAO ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE EVENTO_VOTACAO()

LOC_ZONA = EDT_Zona
LOC_SESSAO = EDT_Sessao
LOC_CANDIDATO = EDT_Candidato
LOC_TITULOELITOR = EDT_Titulo

IF contador = 0
IF (LOC_CANDIDATO = "") OR (LOC_CANDIDATO = 0) OR (LOC_CANDIDATO = 0) OR (LOC_CANDIDATO <> 13 AND LOC_CANDIDATO <> 22)
LOC_CANDIDATO = 1 //NULLO É UM 1
contador+=1
MyWindow..Plane = NULLO_EMBRANCO_PLANE
EVENTO_SOM_ERRO()
RETURN
END
END

IF GLO_COM_TITULO = True
IF LOC_TITULOELITOR = "" OR Length(LOC_TITULOELITOR) < 9 THEN
Info("TITULO INVÁLIDO, TENTE NOVAMENTE")
LOC_TITULOELITOR = ""
EVENTO_SOM_ERRO()
RETURN
END
ELSE
GLO_COM_TITULO = DateSys()+TimeSys() //USA A DATA E HORA E SEGUNDO PARA REGISTRAR O TITULO AUTOMATICAMENTE
END

IF LOC_ZONA = "" OR Length(LOC_ZONA) <= 0 THEN
Info("ZONA INVÁLIDA, TENTE NOVAMENTE")
LOC_ZONA = ""
EVENTO_SOM_ERRO()
RETURN
END

IF LOC_SESSAO = "" OR Length(LOC_SESSAO) <= 0 THEN
Info("SESSAO INVÁLIDA, TENTE NOVAMENTE")
LOC_SESSAO = ""
EVENTO_SOM_ERRO()
RETURN
END

GLO_VALIDA_ZONA_SESSAO = INIRead("CONFIG","VALIDAR_ZONA_SESSAO","",fCurrentDir()+fSep()+"Config.ini")

IF GLO_VALIDA_ZONA_SESSAO = True THEN

IF EVENTO_VALIDA_ZONA_SESSAO() = False THEN

MyWindow..Plane = ZONA_SESSAO_INVALIDA_PLANE

EVENTO_SOM_ERRO()

RETURN

END

END

// SE TUDO OK ENTAO....

Votacao.REGISTRO_VOTO = GetUUID()
Votacao.DataHora = DateSys()+TimeSys()
Votacao.NumTitulo = LOC_TITULOELITOR
Votacao.Zona = LOC_ZONA
Votacao.Sessao = LOC_SESSAO
Votacao.Candidato = LOC_CANDIDATO

IF HAdd(Votacao) = True THEN

VOTOS is int = 0

QRY_Totalizacao.ParamCandidato = Votacao.Candidato
QRY_Totalizacao.ParamZona = Votacao.Zona
QRY_Totalizacao.ParamSessao = Votacao.Sessao

IF HExecuteQuery(QRY_Totalizacao,hQueryDefault) = True THEN
FOR EACH QRY_Totalizacao
VOTOS = QRY_Totalizacao.Total_Votacao
END
END

ACAO is string
HReset(Totalizacao)
IF HReadSeek(Totalizacao,KeyUnico,[EDT_Zona,EDT_Sessao,EDT_Candidato],hIdentical) = False THEN
ACAO = "INCLUIR"
ELSE
ACAO = "ALTERAR"
END

Totalizacao.REGISTRO_TOTALIZACAO = GetUUID()
Totalizacao.DataHora = DateSys()+TimeSys()
Totalizacao.Zona = Votacao.Zona
Totalizacao.Sessao = Votacao.Sessao
Totalizacao.Votos = VOTOS
Totalizacao.Candidado = Votacao.Candidato

IF ACAO = "INCLUIR"
HAdd(Totalizacao)

EVENTO_SOM_GRAVOU_VOTO()

ELSE IF ACAO = "ALTERAR"
HModify(Totalizacao)

EVENTO_SOM_GRAVOU_VOTO()

END

MyWindow..Plane = FIM_PLANE

ELSE
Info(HErrorInfo()+ErrorInfo())
END

contador=0


//-------------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] EVENTO_VERIFICA_JA_VOTOU ()
//
// Parameters:
// None
// Example:
// <Specify a usage example>
//
// Return value:
PROCEDURE EVENTO_VERIFICA_JA_VOTOU()

HReset(Votacao)

IF HReadSeek(Votacao,NumTitulo,EDT_Titulo,hIdentical) = True THEN

RESULT True

ELSE

RESULT False

END

//------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] EVENTO_VALIDA_ZONA_SESSAO ()
//
// Parameters:
// None
// Example:
// <Specify a usage example>
//
// Return value:
PROCEDURE EVENTO_VALIDA_ZONA_SESSAO()

IF GLO_VALIDA_ZONA_SESSAO = True THEN

HReset(ZonasSessoes)

IF HReadSeek(ZonasSessoes,KeyUnico,[EDT_Zona,EDT_Sessao],hIdentical) = True THEN

RESULT True

ELSE

RESULT False

END


END

//-----------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
//EVENTO_SOM_GRAVOU_VOTO ()
//
// Parameters:
// None
// Example:
// <Specify a usage example>
//
// Return value:
PROCEDURE EVENTO_SOM_GRAVOU_VOTO()

IF GLO_COM_SOM = True

MyFileMp3 is string = fCurrentDir()+fSep()+"UrnaDigitouConfirma.wav"
IF fFileExist(MyFileMp3) = True
IF MultimediaPlay(MM_Play_urna, MyFileMp3) = False THEN
Error("Error arquivo UrnaDigitouConfirma.wav não localizado")
END
ELSE
Error("Error arquivo UrnaDigitouConfirma.wav não localizado")
END

END

//------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// EVENTO_SOM_ERRO ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE EVENTO_SOM_ERRO()

IF GLO_COM_SOM = True THEN

MyFileMp3 is string = fCurrentDir()+fSep()+"Erro.mp3"
IF fFileExist(MyFileMp3) = True
IF MultimediaPlay(MM_Play_urna, MyFileMp3) = False THEN
Error("Error arquivo Erro.mp3 não localizado")
END
ELSE
Error("Error arquivo Erro.mp3 não localizado")
END

END

//------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// EVENTO_SOM_DIGITACAO ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE EVENTO_SOM_DIGITACAO()

IF GLO_COM_SOM = True THEN

MyFileMp3 is string = fCurrentDir()+fSep()+"UrnaDigitacao.wav"
IF fFileExist(MyFileMp3) = True
IF MultimediaPlay(MM_Play_urna, MyFileMp3) = False THEN
Error("Error arquivo UrnaDigitacao.wav não localizado")
END
ELSE
Error("Error arquivo UrnaDigitacao.wav não localizado")
END

END

//---------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// EVENTO_NOVO_VOTO ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE EVENTO_NOVO_VOTO()

HReset(Votacao)
HReset(Totalizacao)

GLO_VALIDA_ZONA_SESSAO = INIRead("CONFIG","VALIDAR_ZONA_SESSAO","",fCurrentDir()+fSep()+"Config.ini")

GLO_COM_SOM = INIRead("CONFIG","COM_SOM","",fCurrentDir()+fSep()+"Config.ini")

GLO_COM_TITULO = INIRead("CONFIG","COM_TITULO","",fCurrentDir()+fSep()+"Config.ini")

EDT_Titulo = ""
EDT_Zona = ""
EDT_Sessao = ""
EDT_Candidato = ""

LOC_ZONA = 0
LOC_SESSAO = 0
LOC_CANDIDATO = 0
LOC_TITULOELITOR = 0

IMG_CANDIDATO = IMG_PEOPLE
STC_NOME_PRESIDENTE = ""

IF GLO_COM_TITULO = True
MyWindow..Plane = INICIAR_PLANE
SetFocus(EDT_Titulo)
ELSE
MyWindow..Plane = VOTAR_PLANE
SetFocus(EDT_Zona)
END

//----------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// EVENTO_INICIALIZAR ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE EVENTO_INICIALIZAR()

GLO_VALIDA_ZONA_SESSAO = INIRead("CONFIG","VALIDAR_ZONA_SESSAO","",fCurrentDir()+fSep()+"Config.ini")

GLO_COM_SOM = INIRead("CONFIG","COM_SOM","",fCurrentDir()+fSep()+"Config.ini")

GLO_COM_TITULO = INIRead("CONFIG","COM_TITULO","",fCurrentDir()+fSep()+"Config.ini")

IF GLO_COM_TITULO = True
MyWindow..Plane = INICIAR_PLANE
SetFocus(EDT_Titulo)
ELSE
MyWindow..Plane = VOTAR_PLANE
SetFocus(EDT_Zona)
END

STC_NOME_PRESIDENTE = ""


//--------------------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// EVENTO_FOTO ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE EVENTO_FOTO()

IF EDT_Candidato = 13 THEN
IMG_CANDIDATO = IMG_LULA
STC_NOME_PRESIDENTE = "LUIS INACIO LULA DA SILVA"
ELSE IF EDT_Candidato = 22
IMG_CANDIDATO = IMG_BOLSONARO
STC_NOME_PRESIDENTE = "JAIR MESSIAS BOLSONARO"
ELSE
IMG_CANDIDATO = IMG_PEOPLE
STC_NOME_PRESIDENTE = "VOTO NULO"
END

//--------------------------------------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// EVENTO_DADOS_INVALIDOS ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE EVENTO_DADOS_INVALIDOS()

EDT_Zona = ""
EDT_Sessao = ""
EDT_Candidato = ""

LOC_ZONA = 0
LOC_SESSAO = 0
LOC_CANDIDATO = 0

IMG_CANDIDATO = IMG_PEOPLE

STC_NOME_PRESIDENTE = ""

SetFocus(EDT_Zona)

MyWindow..Plane = VOTAR_PLANE


//---------------------------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
// EVENTO_CORRIGE ()
//
// Parameters:
// None
// Return value:
// None
//
// Example:
// <Specify a usage example>
//
PROCEDURE EVENTO_CORRIGE()

EDT_Zona = ""
EDT_Sessao = ""
EDT_Candidato = ""

LOC_ZONA = 0
LOC_SESSAO = 0
LOC_CANDIDATO = 0

IMG_CANDIDATO = IMG_PEOPLE

STC_NOME_PRESIDENTE = ""

SetFocus(EDT_Zona)

//--------------------------------------------------------------------

// Summary: <specify the procedure action>
// Syntax:
//DATA_HORA_ATUAL ()
//
// Parameters:
// None
// Example:
// <Specify a usage example>
//// Automatic procedure:
// The procedure is executed manually, during a call in the code
// It will be repeated in a loop, with a timeout set to 1 second between each call
// Each following call runs the procedure once, without timer
//

PROCEDURE DATA_HORA_ATUAL()

STC_DATAHORAATUAL = DateSys() + TimeSys()

//---------------------------------------------------------------------------------

OS DEMAIS COIDOGOS ESTAO NO FONTE NO BOTAO AMARELO DOWNLOAD / TELECHARGER