source: trunk/admin/modules/Elezioni/controllo_voti.php@ 382

Last change on this file since 382 was 364, checked in by roby, 3 years ago

adeguamento di alcune query alla direttiva sql_mode=only_full_group_by di mysql, sistemazione di alcuni bug.

File size: 15.6 KB
Line 
1<?php
2
3/************************************************************************/
4/* Eleonline - Raccolta e diffusione dei dati elettorali */
5/* by Roberto Gigli & Luciano Apolito */
6/* http://www.eleonline.it */
7/* info@eleonline.it luciano@aniene.net rgigli@libero.it */
8/************************************************************************/
9/* Modulo Controllo dei voti */
10/* Amministrazione */
11/************************************************************************/
12
13if (!defined('ADMIN_FILE')) {
14 die ("You can't access this file directly...");
15}
16
17$aid=$_SESSION['aid'];
18global $dbi;
19$prefix=$_SESSION['prefix'];
20$currentlang=$_SESSION['lang'];
21$id_comune=$_SESSION['id_comune'];
22$id_cons_gen=$_GET['id_cons_gen'];
23$bgcolor1=$_SESSION['bgcolor1'];
24$bgcolor2=$_SESSION['bgcolor2'];
25
26$perms=ChiSei($id_cons_gen);
27if ($perms<16 or !$id_cons_gen) die("$perms Non hai i permessi per inserire dati, o non hai scelto la consultazione!");
28 $sql="SELECT t1.tipo_cons,t2.id_cons,t2.solo_gruppo,t2.disgiunto FROM ".$prefix."_ele_consultazione as t1, ".$prefix."_ele_cons_comune as t2 where t1.id_cons_gen=t2.id_cons_gen and t2.id_cons_gen='$id_cons_gen' and t2.id_comune='$id_comune'";
29 $sth = $dbi->prepare("$sql");
30 $sth->execute();
31 list($tipo_cons,$id_cons,$dettnulli,$disgiunto) = $sth->fetch(PDO::FETCH_BOTH);
32 $sql="SELECT genere,voto_g,voto_l FROM ".$prefix."_ele_tipo where tipo_cons='$tipo_cons'";
33 $sth = $dbi->prepare("$sql");
34 $sth->execute();
35 $row =
36 list($genere,$votog,$votol) = $sth->fetch(PDO::FETCH_NUM);
37include("modules/Elezioni/funzionidata.php");
38include("modules/Elezioni/ele.php");
39if (isset($param['ops'])) $ops=addslashes($param['ops']); else $ops='';
40if (isset($param['pag'])) $pag=intval($param['pag']); else $pag=0;
41if (isset($param['num_ref'])) $num_ref=intval($param['num_ref']);
42if (isset($param['num_refs'])) $num_refs=intval($param['num_refs']);
43ele();
44//**************************************************************************
45// ELE
46//**************************************************************************
47
48 global $prefix, $dbi,$fascia,$limite;
49 $sql="SELECT sum(maschi),sum(femmine) FROM ".$prefix."_ele_sezioni where id_cons='$id_cons'";
50 $sth = $dbi->prepare("$sql");
51 $sth->execute();
52# $row = $sth->fetch(PDO::FETCH_BOTH);
53 list($totm,$totf) = $sth->fetch(PDO::FETCH_NUM);
54 $totel=$totm+$totf;
55 if (!IsSet($pag)) {$pag=0;} //inizializza il numero di pagina
56 if (!IsSet($num_ref)) {
57 $num_ref=1;
58 $sql="SELECT id_gruppo from ".$prefix."_ele_gruppo where id_cons=$id_cons";
59 $sth = $dbi->prepare("$sql");
60 $sth->execute();
61 $num_refs= $sth->rowCount(); //quante pagine?
62# $row = $sth->fetch(PDO::FETCH_BOTH);
63 }
64 if((($genere!=4) and $pag==0 and !$votog) or $genere==1 or $genere==2){ //diverso da liste a piu' candidati
65 $ops=4; //gestione gruppi (anche liste uninominali)
66 }else{
67 $ops=3; //gestione liste
68 }
69 OpenTable();
70 $sql="SELECT id_gruppo,num_gruppo from ".$prefix."_ele_gruppo where id_cons=$id_cons and num_gruppo=$num_ref";
71 $sth = $dbi->prepare("$sql");
72 $sth->execute();
73# $row = $sth->fetch(PDO::FETCH_BOTH);
74 list($idg,$numg) = $sth->fetch(PDO::FETCH_BOTH);
75 $sql="SELECT id_sez,num_sez,t1.id_sede as id_sede,t2.id_circ as id_circ FROM ".$prefix."_ele_sezioni as t1,".$prefix."_ele_sede as t2 where t1.id_cons='$id_cons' and t1.id_sede=t2.id_sede order by num_sez";
76 $sth = $dbi->prepare("$sql");
77 $sth->execute();
78 $num_sez = $sth->rowCount(); //quante sezioni?
79 $sezione=array();
80for ($i=1;$i<=$num_sez;$i++){
81 $sezione[$i]=array();
82 $sezione[$i]= $sth->fetch(PDO::FETCH_BOTH); //inizializza l'array delle sezioni
83 $ar[$i]=0;
84 }
85 $tab3="_ele_voti_lista";
86// if ($genere==3) {$tab3="_ele_voti_candidati";} else {$tab3="_ele_voti_lista";} //i voti di lista per le uninominali sono memorizzati in ele_voti_candidati altrimenti in ele_voti_lista.
87if ($genere==1 or $genere==2) $tab3="_ele_voti_gruppo";
88 if ($genere>0) { //se non e' un referendum
89 if (!($genere==4) and $pag==0){ //se non e' una lista uninominale ed e' la prima pagina
90 $tab="SELECT 0,t2.id_sez,t2.num_sez,t2.validi,'0',t2.validi,t2.nulli,t2.bianchi,t2.contestati, t4.id_circ,t2.id_sede,'0',t2.voti_nulli,t2.validi_lista,t2.voti_nulli_lista,t2.contestati_lista,t2.solo_gruppo,t2.solo_lista FROM ".$prefix."_ele_sezioni as t2 left join ".$prefix."_ele_sede as t4 on (t2.id_sede=t4.id_sede) where t2.id_cons='$id_cons' and t2.validi+t2.nulli+t2.bianchi+t2.contestati>0 order by t2.num_sez";
91 }else{ // e' una lista uninominale o la seconda pagina
92 $tab="SELECT '0',t1.id_sez,t1.num_sez,sum(t2.voti),t1.solo_gruppo,t1.validi,t1.nulli,t1.bianchi,t1.contestati, t4.id_circ,t1.id_sede,'0',t1.voti_nulli,t1.validi_lista,t1.voti_nulli_lista,t1.contestati_lista,t1.solo_gruppo,t1.solo_lista
93 FROM ".$prefix."_ele_sezioni as t1 left join ".$prefix.$tab3." as t2 on (t1.id_sez=t2.id_sez)
94 left join ".$prefix."_ele_sede as t4 on (t1.id_sede=t4.id_sede)
95 where t1.id_cons='$id_cons' and t1.id_cons=t2.id_cons group by t1.id_sez,t1.num_sez,t1.solo_gruppo,t1.validi,t1.nulli,t1.bianchi,t1.contestati, t4.id_circ,t1.id_sede,t1.voti_nulli,t1.validi_lista,t1.voti_nulli_lista,t1.contestati_lista,t1.solo_gruppo,t1.solo_lista order by t1.num_sez";
96 }
97 $riga1="<tr><td>\n<table border=\"0\" width=\"100%\" bgcolor=\"$bgcolor1\" ><tr><td align=\"center\">"._SEZSCR." "._CONSULTAZIONE."</td></tr></table></td></tr>\n";
98 }else{ // e' un referendum
99 $tab="SELECT t1.id_gruppo,t1.id_sez,t2.num_sez,t1.si,t1.no,t1.validi,t1.nulli,t1.bianchi,t1.contestati, t4.id_circ,t2.id_sede,t3.num_gruppo,'0','0','0','0','0','0'
100 FROM ".$prefix."_ele_voti_ref as t1 left join ".$prefix."_ele_sezioni as t2 on (t1.id_sez=t2.id_sez)
101 left join ".$prefix."_ele_gruppo as t3 on (t1.id_gruppo=t3.id_gruppo) left join ".$prefix."_ele_sede as t4 on (t2.id_sede=t4.id_sede)
102 where t1.id_cons='$id_cons' and t1.id_gruppo='$idg' order by t2.num_sez";
103 $riga1= "<tr><td>\n<table border=\"0\" width=\"100%\" bgcolor=\"$bgcolor1\" ><tr><td align=\"center\">"._SEZSCR." "._CONSULTAZIONE." N. ".$numg."</td></tr></table></td></tr>\n";
104 }
105 $sth = $dbi->prepare("$tab ");
106 $sth->execute();
107 $num_scr = $sth->rowCount();
108 $riga2= "<tr><td>\n<table border=\"0\" width=\"100%\" bgcolor=\"$bgcolor1\" ><tr><td align=\"center\">"._SEZIONI." $num_scr "._SU." $num_sez</td></tr></table></td></tr>\n";//sezioni scrutinate
109 $riga2 .= "<tr><td>\n<table border=\"0\" width=\"100%\" align=\"center\">";
110 $riga3 = "<tr bgcolor=\"$bgcolor2\" align=\"center\"><td width=\"5%\"><b>"._SEZIONI."</b></td>"
111 ."<td><b>"._VOTIU."</b></td>"."<td><b>"._VOTID."</b></td>"."<td><b>"._VOTIE."</b></td>"; //testata con nomi dei campi
112 if ($genere==0) { //se e' un referendum
113 $riga3 .= "<td><b>"._SI."</b></td><td><b>"._NO."</b></td>";
114 } elseif ((($genere==5) or ($genere==3)) and $pag==1){
115 $riga3 .= "<td><b>"._ASOLA_LISTA."</b></td>";
116 if (!$votog) $riga3 .= "<td><b>"._ASOLO_GRUPPO."</b></td>";
117 }
118 $riga3 .= "<td><b>"._VALIDI."</b></td><td><b>"._NULLI."</b></td><td><b>"._BIANCHI."</b></td><td><b>"._CONTESTATI."</b></td>";
119// if (($genere==2 or $genere==3 or $genere==5) and !$votog)
120// $riga3 .= "<td><b>"._PREFGRU."</b></td>";
121// if ($genere>1 and !$votol)
122// $riga3 .= "<td><b>"._PREFLIS."</b></td>";
123 $riga3 .= "<td><b>"._STATO."</b></td></tr>\n";
124 $righe= "";
125 $scrutinate=1;
126// if ($genere>1 and $pag==1) $ops=3;
127 $tot_u=0;$tot_d=0;$tot_voti=0; $tot_si=0;$tot_no=0;$tot_validi=0;$tot_nulli=0;$tot_bianchi=0;$tot_contestati=0;$tgrup_pref=0;$tot_voti_nulli=0;$tot_val_lista=0;$tot_vot_nul_lis=0;$tot_cont_lis=0;$tot_solog=0;$tot_solol=0;$errors=0;
128 while ( list($id_gruppo,$id,$num,$si,$no,$validi,$nulli,$bianchi,$contestati,$id_circ,$id_sede,$gruppo,$voti_nulli,$val_lista,$vot_nul_lis,$cont_lis,$solog,$solol) = $sth->fetch(PDO::FETCH_NUM)){
129//controllare
130 // inserimento numeri di sez non scrutinate
131 while ($scrutinate < $num) {
132 $righe.= "<tr align=\"center\"><td><a href=\"admin.php?op=voti&amp;id_cons_gen=$id_cons_gen&amp;id_sez=".$sezione[$scrutinate]['id_sez']."&amp;id_circ=".$sezione[$scrutinate]['id_circ']."&amp;id_sede=".$sezione[$scrutinate]['id_sede']."&amp;do=spoglio&amp;ops=$ops\"><span style=\"color: rgb(255, 0, 0);\">$scrutinate</span></a></td></tr>\n";
133 $scrutinate++;
134 }
135 $scrutinate++;
136 // fine inserimento
137 if (($genere==2 or $genere==3 or $genere==5) and !$votog and !$dettnulli) {
138 $sql="select sum(voti) from ".$prefix."_ele_voti_gruppo where id_sez='$id'";
139 $sth2 = $dbi->prepare("$sql");
140 $sth2->execute();
141 list ($gruppref) = $sth2->fetch(PDO::FETCH_NUM);
142 $tgrup_pref += $gruppref;
143 }
144 $tab2="SELECT max(voti_donne),max(voti_uomini),max(voti_complessivi) FROM ".$prefix."_ele_voti_parziale where id_cons='$id_cons' and id_sez='$id'";
145 if ($genere==0) $tab2 .= " and id_gruppo=$id_gruppo";
146 $sth2 = $dbi->prepare("$tab2");
147 $sth2->execute();
148 list($votid,$votiu,$voti) = $sth2->fetch(PDO::FETCH_NUM);
149// $voti=$votiu+$votid;
150
151 $tot_u+=$votiu;
152 $tot_d+=$votid;
153 $tot_voti+=$voti;
154 $tot_si+=$si;
155 $tot_no+=$no;
156 $tot_validi+=$validi;
157 $tot_nulli+=$nulli;
158 $tot_bianchi+=$bianchi;
159 $tot_contestati+=$contestati;
160 $tot_voti_nulli+=$voti_nulli;
161 $tot_val_lista+=$val_lista;
162 $tot_vot_nul_lis+=$vot_nul_lis;
163 $tot_cont_lis+=$cont_lis;
164 $tot_solog+=$solog;
165 $tot_solol+=$solol;
166 $righe .= "<tr bgcolor=\"$bgcolor2\" align=\"center\"><td>$num</td><td>".number_format($votiu,0,',','.')."</td><td>".number_format($votid,0,',','.')."</td><td>".number_format($voti,0,',','.')."</td>";
167 if ($genere==0 or ((($genere==5) or ($genere==3)) and $pag==1)){$righe .= "<td>".number_format($si,0,',','.')."</td>";}
168 if ($genere==0 or ((($genere==5) or ($genere==3)) and $pag==1 and !$votog)){$righe .= "<td>".number_format($no,0,',','.')."</td>";}
169 $righe .= "<td>".number_format($validi,0,',','.')."</td><td>$nulli</td><td>$bianchi</td><td>$contestati</td>";
170 $g_err=0;
171 if (($genere==2 or $genere==3 or $genere==5) and $pag==1 and !$votog and !$dettnulli) {
172 if ($gruppref!=$validi) {
173 $g_err=1;
174 $ops=4;
175 }
176 }
177 $controllo1=$validi+$nulli+$bianchi+$contestati+$voti_nulli; #prova
178 if($pag==0) $controllo2=$si+$no; else $controllo2=$si+$no+$vot_nul_lis+$cont_lis;
179 if($genere==5 and !$votog) #$validi+$nulli+$bianchi+$vcont+$vn
180 if($pag==0 and !$votog or $fascia<=$limite) {$controllo1=$validi+$nulli+$bianchi+$contestati+$voti_nulli;} else { $controllo1=$val_lista+$nulli+$bianchi+$contestati+$voti_nulli+$cont_lis+$vot_nul_lis+$solog;$controllo2=$si+$no-$solol+$cont_lis+$vot_nul_lis;}
181 $sth2 = $dbi->prepare("select count(0) from ".$prefix."_ele_controlli where id_cons='$id_cons' and id_sez='$id'");
182 $sth2->execute();
183 list($crlis) = $sth2->fetch(PDO::FETCH_NUM);
184
185 if ($voti==$controllo1 and $validi==$controllo2 and !$g_err and !$crlis){
186 $righe .= "<td>"._OK."</td></tr>\n";
187 }else{
188 $righe .= "<td><a href=\"admin.php?op=voti&amp;id_cons_gen=$id_cons_gen&amp;id_sez=$id&amp;id_circ=$id_circ&amp;id_sede=$id_sede&amp;do=spoglio&amp;ops=$ops\"><span style=\"color: rgb(255, 0, 0);\">"._ERRORE."</span></a></td></tr>\n";$errors=1;
189 if ($ops==4) $ops=3;
190 }
191 }
192 if ($num<$num_sez) {
193 for (;$scrutinate<=$num_sez;$scrutinate++) {
194 $righe .= "<tr align=\"center\"><td><a href=\"admin.php?op=voti&amp;id_cons_gen=$id_cons_gen&amp;id_sez=".$sezione[$scrutinate]['id_sez']."&amp;id_circ=".$sezione[$scrutinate]['id_circ']."&amp;id_sede=".$sezione[$scrutinate]['id_sede']."&amp;do=spoglio&amp;ops=$ops\"><span style=\"color: rgb(255, 0, 0);\">$scrutinate</span></td></tr>\n";
195 }
196 }
197 if($num_scr){
198 $righet = "<tr align=\"center\"><td><b>"._TOT."</b></td><td><b>".number_format($tot_u,0,',','.')."</b><br><i>(".number_format($tot_u*100/$totm,2)." %)</i></td><td><b>".number_format($tot_d,0,',','.')."</b><br><i>(".number_format($tot_d*100/$totf,2)." %)</i></td><td><b>".number_format($tot_voti,0,',','.')."</b><br><i>(".number_format($tot_voti*100/$totel,2)." %)</i></td>";
199 // se e' un referendum o una consultazione con raggruppamenti
200 if($tot_validi){
201 if ($genere==0 or ((($genere==5) or ($genere==3)) and $pag==1)){$righet .= "<td><b>".number_format($tot_si,0,',','.')."</b><br><i>(".number_format($tot_si*100/$tot_validi,2)." %)</i></td>";}
202 if ($genere==0 or ((($genere==5) or ($genere==3)) and $pag==1 and !$votog)){$righet .= "<td><b>".number_format($tot_no,0,',','.')."</b><br><i>(".number_format($tot_no*100/$tot_validi,2)." %)</i></td>";}
203 $righet .= "<td><b>".number_format($tot_validi,0,',','.')."</b><br><i>(".number_format($tot_validi*100/$tot_voti,2)." %)</i></td><td><b>"
204 .number_format($tot_nulli,0,',','.')."</b><br><i>(".number_format($tot_nulli*100/$tot_voti,2)." %)</i></td><td><b>".number_format($tot_bianchi,0,',','.')."</b><br><i>(".number_format($tot_bianchi*100/$tot_voti,2)." %)</i></td><td><b>".number_format($tot_contestati,0,',','.')."</b><br><i>(".number_format($tot_contestati*100/$tot_voti,2)." %)</i></td>";
205 }else{
206 if ($genere==0 or ((($genere==5) or ($genere==3)) and $pag==1)){$righet .= "<td><b>".number_format($tot_si,0,',','.')."</b><br><i>(0.00 %)</i></td>";}
207 if ($genere==0 or ((($genere==5) or ($genere==3)) and $pag==1 and !$votog)){$righet .= "<td><b>".number_format($tot_no,0,',','.')."</b><br><i>(0.00 %)</i></td>";}
208 $righet .= "<td><b>".number_format($tot_validi,0,',','.')."</b><br><i>(0.00 %)</i></td><td><b>"
209 .number_format($tot_nulli,0,',','.')."</b><br><i>(".number_format($tot_nulli*100/$tot_voti,2)." %)</i></td><td><b>".number_format($tot_bianchi,0,',','.')."</b><br><i>(".number_format($tot_bianchi*100/$tot_voti,2)." %)</i></td><td><b>".number_format($tot_contestati,0,',','.')."</b><br><i>(".number_format($tot_contestati*100/$tot_voti,2)." %)</i></td>";
210 }
211 $g_err=0;
212 if (($genere==2 or $genere==3 or $genere==5) and $pag==1 and !$votog) {
213 if ($tgrup_pref!=$tot_validi) {
214 $g_err=1;
215 }
216 }
217# if ($tot_voti==$tot_validi+$tot_nulli+$tot_bianchi+$tot_contestati and
218# $tot_validi==$tot_si+$tot_no and !$g_err) {
219 if (! $errors) {
220 $righet .= "<td>"._OK."</td></tr>\n";
221 }else{
222 $righet .= "<td><span style=\"color: rgb(255, 0, 0);\">"._ERRORE."</span></td></tr>\n";
223 }
224 }else $righet='';
225 //$righe .= "</table></td></tr>\n";
226
227 echo "$riga1";
228 echo $riga2;
229 echo $righet;
230 echo $riga3;
231 echo $righe;
232 CloseTable();
233
234 echo"<table align=\"center\" width=\"100%\" bgcolor=\"$bgcolor1\"><tr>\n";
235 if($genere==0){ //se e' referendum
236 #'Pagina precedente' e 'Pagina Successiva'
237 $cur=$num_ref;
238 if ($cur>1) {
239 $num_ref--;
240 echo "<td colspan=\"5\" align=\"center\" bgcolor=\"$bgcolor1\"><a href=\"admin.php?op=controllo_voti&amp;id_cons_gen=$id_cons_gen&amp;num_ref=$num_ref&amp;num_refs=$num_refs\">";
241 echo "<b>"._PREV_MATCH."</b></a></td>";
242 }
243 if ($cur<$num_refs) {
244 $cur++;
245 echo "<td colspan=\"5\" align=\"center\" bgcolor=\"$bgcolor1\"><a href=\"admin.php?op=controllo_voti&amp;id_cons_gen=$id_cons_gen&amp;num_ref=$cur&amp;num_refs=$num_refs\">";
246 echo "<b>"._NEXT_MATCH."</b></a></td>";
247 }
248 }elseif(($genere==5 and ($fascia>=$limite or $dettnulli)) or ($genere==3) or ($genere==2) or $genere==1){ //se vi sono raggruppamenti
249 $pag=($pag==0 ? 1:0);
250 echo "<td colspan=\"5\" align=\"center\" bgcolor=\"$bgcolor1\"><a href=\"admin.php?op=controllo_voti&amp;id_cons_gen=$id_cons_gen&amp;pag=$pag\"><b>";
251 if($pag) echo _CONTR_PREF;
252 else echo _CONTR_ESPR;
253 echo "</b></a></td>";
254
255 }/* elseif ($genere==1){
256 $pag=($pag==0 ? 1:0);
257 echo "<td colspan=\"5\" align=\"center\" bgcolor=\"$bgcolor1\"><a href=\"admin.php?op=controllo_voti&amp;id_cons_gen=$id_cons_gen&amp;pag=$pag\"><b>";
258 if($pag) echo _CONTR_GRUP;
259 else echo _CONTR_ESPR;
260 echo "</b></a></td>";
261 }*/
262 echo "</tr></table><br>\n";
263echo "</table>\n</td></tr></table>\n";
264
265 include ("footer.php");
266
267?>
Note: See TracBrowser for help on using the repository browser.