PC SOFT
DEPOT EN LIGNE
POUR WINDEVWEBDEV ET WINDEV MOBILE

Exemplo Urna Eletronica feita com WINDEV 27
Publié par Boller
dans la catégorie Outils
Nouveautés



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, copies d'écran
none
none
Avis des utilisateurs
(Pour noter la ressource, cliquez sur Ecrire un avis)
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