Archivage",
"archivage",
"archivage"
);
}
// Si aucune élection n'est en cours
if (!isset($_SESSION['election'])
|| (isset($_SESSION['election'])
&& trim($_SESSION['election']['election']) == "")
) {
// Message
$msg = "Vous ne travaillez sur aucune élection.";
$f->showMessage($msg, "error");
// Arrêt du script
die();
}
// Ouverture du conteneur spécifique de la page
echo "\t
\n";
// On initialise la variable $DEBUG avec la valeur 0
// pour ne pas afficher les messages trop verbeux du traitement.
// Pour afficher les messages il faut initialiser la variable à 1.
$DEBUG = 0;
// On initialise la variable $validation avec la valeur 0
// et si elle est passée en GET alors on la récupère
$validation = 0;
if (isset($_GET['validation'])) {
$validation = $_GET['validation'];
}
//
if ($validation == 1) {
// On récupère l'identifiant de l'élection en cours.
$idx = $election = $_SESSION['election']['election'];
//
if ($DEBUG == 1) {
echo "
Traitement d'archivage => Election : ".$idx."";
}
// On commence la transaction
$f->db->autoCommit(false);
///////////////////////////////////////////////////////////////////////////////
// Table election : nbcandidat
///////////////////////////////////////////////////////////////////////////////
//
$sql = "SELECT
election_nbcandidat
FROM election
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
$row =& $res->fetchRow();
$nbcandidat = $row[0];
unset($res);
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Table election : election
// XXX Si la première centaine et/ou la seconde centaine n'existe pas
// la seconde requête UPDATE va échouée
///////////////////////////////////////////////////////////////////////////////
//
$elections = array($idx, $idx."C", $idx."D");
//
foreach ($elections as $election) {
//
$sql = "SELECT
sum(inscrit),
sum(votant),
sum(exprime),
sum(blanc),
sum(nul)
FROM resultat
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
$row =& $res->fetchRow();
$inscrit = $row[0];
$votant = $row[1];
$exprime = $row[2];
$blanc = $row[3];
$nul = $row[4];
unset($res);
unset($row);
//
$cloture = -1;
$sql = "UPDATE election SET
election_cloture = ".$cloture.",
election_nbinscrit = ".$inscrit.",
election_nbvotant = ".$votant.",
election_nbblanc = ".$blanc.",
election_nbnul = ".$nul.",
election_nbexprime = ".$exprime."
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
if ($DEBUG == 1) {
echo "
Table election : election ".$election." => OK
";
}
unset($res);
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Table election_candidat : election
// XXX Si la première centaine et/ou la seconde centaine n'existe pas
// la seconde requête UPDATE va échouée
///////////////////////////////////////////////////////////////////////////////
//
$elections = array($idx, $idx."C", $idx."D");
//
foreach ($elections as $election) {
//
for ($i = 1; $i <= $nbcandidat; $i++) {
//
$sql = "SELECT
sum(exprime),
sum(candidat".$i.")
FROM resultat
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
$row =& $res->fetchRow();
$voix = $row[1];
if ($row[0] > 0) {
$tx = round($row[1] / $row[0], 4);
} else {
$tx = 0;
}
unset($res);
unset($row);
//
$sql = "UPDATE election_candidat SET
election_candidat_resultat = ".$voix.",
election_candidat_tx = ".$tx."
WHERE election = '".$election."'
AND election_candidat_ordre = ".$i."";
$res1 = $f->db->query($sql);
$f->databaseError($res1);
unset($res1);
}
//
if ($DEBUG == 1) {
echo "
Table election_candidat : election ".$election." => OK
";
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Table election_ resultat : election
// XXX Si la première centaine et/ou la seconde centaine n'existe pas
// la seconde requête INSERT va échouée
///////////////////////////////////////////////////////////////////////////////
//
$elections = array($idx, $idx."C", $idx."D");
//
foreach ($elections as $election) {
//
foreach ($_SESSION ['election']['bureaux'] as $bureau) {
//
for ($ordre = 1; $ordre <= $nbcandidat; $ordre++) {
//
$sql = "SELECT
exprime,
candidat".$ordre."
FROM resultat
WHERE election = '".$election."'
AND bureau = ".$bureau ['code']."";
$res = $f->db->query($sql);
$f->databaseError($res);
$row =& $res->fetchRow();
$resultat = $row[1];
if ($row[0] > 0) {
$tx = round($row[1] / $row[0], 4);
} else {
$tx = 0;
}
unset($res);
unset($row);
//
$sql = "INSERT INTO
election_resultat
VALUES (
'".$election."',
".$bureau ['code'].",
".$ordre.",
".$_SESSION ['candidat'][$ordre]['candidat'].",
".$resultat.",
".$tx."
)";
$res1 = $f->db->query($sql);
$f->databaseError($res1);
unset($res1);
}
}
//
if ($DEBUG == 1) {
echo "
Table election_resultat : election ".$election." => OK
";
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Table election_ bureau : election
// XXX Si la première centaine et/ou la seconde centaine n'existe pas
// la seconde requête INSERT va échouée
///////////////////////////////////////////////////////////////////////////////
//
$elections = array($idx, $idx."C", $idx."D");
//
foreach ($elections as $election) {
//
foreach ($_SESSION ['election']['bureaux'] as $bureau) {
//
$sql = "SELECT
inscrit,
votant,
blanc,
nul,
exprime
FROM resultat
WHERE election = '".$election."'
AND bureau = ".$bureau ['code']."";
$res = $f->db->query($sql);
$f->databaseError($res);
$row =& $res->fetchRow();
$inscrit = $row[0];
$votant = $row[1];
$blanc = $row[2];
$nul = $row[3];
$exprime = $row[4];
if ($row[1] > 0){
$tx = round($row[4] / $row[1], 4);
} else {
$tx = 0;
}
$message = "ok";
if ($votant != $blanc + $nul + $exprime) {
$message = "votant!=nul+blanc+exprime => ".($votant - ($blanc + $nul + $exprime))."";
}
unset($res);
unset($row);
//
$sql = "INSERT INTO
election_bureau (
election,
bureau,
election_bureau_nbinscrit,
election_bureau_nbvotant,
election_bureau_nbblanc,
election_bureau_nbnul,
election_bureau_nbexprime,
election_bureau_txexprime,
election_bureau_message
)
VALUES (
'".$election."',
".$bureau ['code'].",
".$inscrit.",
".$votant.",
".$blanc.",
".$nul.",
".$exprime.",
".$tx.",
'".$message."'
)";
$res1 = $f->db->query($sql);
$f->databaseError($res1);
unset($res1);
}
//
if ($DEBUG == 1) {
echo "
Table election_bureau : election ".$election." => OK
";
}
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Table participation_bureau : election
///////////////////////////////////////////////////////////////////////////////
$election = $idx;
//
$sql = "SELECT
bureau,
inscrit
FROM resultat
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
$k = 0;
while ($row =& $res->fetchRow()) {
$bur[$k]['code'] = $row[0];
$bur[$k]['inscrit'] = $row[1];
$k++;
}
unset($res);
unset($row);
//
foreach ($bur as $value) {
$sql = "SELECT
tranche,
b".$value ['code']."
FROM participation
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
while ($row =& $res->fetchRow()) {
//
$tranche = $row[0];
$b = $row[1];
//
$sql = "INSERT INTO
participation_bureau (
election,
bureau,
tranche,
participation_bureau_nbvotant,
participation_bureau_tx
) VALUES (
'".$election."',
".$value['code'].",
".$tranche.",
".$b.",
".round($b / $value['inscrit'], 4)."
)";
$res1 = $f->db->query($sql);
$f->databaseError($res1);
unset($res1);
}
unset($res);
}
//
if ($DEBUG == 1) {
echo "
Table participation_bureau : election => OK
";
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Table participation_election : election
///////////////////////////////////////////////////////////////////////////////
$election = $idx;
//
$sql = "SELECT sum(inscrit)
FROM resultat
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
$row =& $res->fetchRow();
$inscrit = $row[0];
unset($res);
unset($row);
//
$sql = "SELECT tranche, total
FROM participation
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
while ($row =& $res->fetchRow()) {
//
$tranche = $row[0];
$total = $row[1];
//
$sql = "INSERT INTO
participation_election (
election,
tranche,
participation_election_nbvotant,
participation_election_tx
) VALUES (
'".$election."',
".$tranche.",
".$total.",
".round($total / $inscrit, 4)."
)";
$res1 = $f->db->query($sql);
$f->databaseError($res1);
unset($res1);
}
unset ($res);
//
if ($DEBUG == 1) {
echo "
Table participation_election : election => OK
";
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Suppression table RESULTAT
///////////////////////////////////////////////////////////////////////////////
// Depuis la version 1.04, on ne supprime plus la table resultat
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Suppression table PARTICIPATION
///////////////////////////////////////////////////////////////////////////////
$election = $idx;
$sql = "DELETE
FROM participation
WHERE election = '".$election."'";
$res = $f->db->query($sql);
$f->databaseError($res);
if ($DEBUG == 1) {
echo "
Suppresion enregistrements Table participation => OK
";
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Suppression table REGROUPEMENT
// XXX Qu'en est-il du regroupement et de la seconde centaine ?
///////////////////////////////////////////////////////////////////////////////
$election = $idx;
$sql = "DELETE
FROM regroupement
WHERE election = '".$election."'
OR election = '".$election."C'";
$res = $f->db->query($sql);
$f->databaseError($res);
if ($DEBUG == 1) {
echo "
Suppresion enregistrements Table regroupement => OK
";
}
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
// Suppression des variables de session pour que l'élection en cours qui vient
// d'être archivée ne soit plus en cours
///////////////////////////////////////////////////////////////////////////////
unset($_SESSION['election']);
unset($_SESSION['candidat']);
///////////////////////////////////////////////////////////////////////////////
// On commite la transaction
$f->db->commit();
// Affichage du message de réussite du traitement
$msg = "Election archivée.";
$f->showMessage($msg, "valid");
} else {
// On récupère les information sur l'élection
$sql = "SELECT *
FROM election
WHERE election='".$_SESSION ['election']['election']."'";
$res = $f->db->query($sql);
$f->databaseError($res);
while ($row =& $res->fetchRow()) {
//
//echo "
";
echo "ATTENTION ! ";
echo "L'EDITION DE L'ETAT RESULTAT SERA IMPOSSIBLE APRES L'ARCHIVAGE.";
echo "
";
//
echo "Cliquer sur le lien suivant pour lancer le traitement d'archivage :";
//
echo "
";
//
echo "
";
echo $_SESSION ['election']['election']." - ".$row[3];
echo "";
}
$res->free();
}
// Fermeture du conteneur spécifique de la page
echo "\t
\n";
?>