source: trunk/admin/modules/Elezioni/ele_controlli.php@ 282

Last change on this file since 282 was 262, checked in by roby, 6 years ago
File size: 11.5 KB
Line 
1<?php
2/************************************************************************/
3/* Eleonline - Raccolta e diffusione dei dati elettorali */
4/************************************************************************/
5/* Modulo controlla affluenze */
6/* Amministrazione */
7/************************************************************************/
8
9function controllo_aff($id_cons,$id_sez,$id_parz){
10 global $prefix,$dbi,$id_sede,$id_con_gen,$genere;
11
12 $err=0;
13 $sql="select maschi,femmine from ".$prefix."_ele_sezioni where id_sez='$id_sez'";
14 $res = $dbi->prepare("$sql");
15 $res->execute();
16 list($maschi,$femmine)=$res->fetch(PDO::FETCH_NUM);
17
18 $sql="select voti_uomini,voti_donne,voti_complessivi from ".$prefix."_ele_voti_parziale where id_sez='$id_sez' and id_parz='$id_parz'";
19 $res = $dbi->prepare("$sql");
20 $res->execute();
21 while(list($voti_u,$voti_d,$voti_t)=$res->fetch(PDO::FETCH_NUM))
22 if((($voti_u+$voti_d!=$voti_t && $voti_u+$voti_d>0) || $voti_u>$maschi || $voti_d>$femmine || $voti_t>$maschi+$femmine) ) {$err=1; break;}
23
24 $tipo='affluenze';
25 $sql="select id from ".$prefix."_ele_controlli where tipo='$tipo' and id_sez='$id_sez' ";
26 $res = $dbi->prepare("$sql");
27 $res->execute();
28 $righe=$res->rowCount();
29 if($righe){
30 while(list($id)=$res->fetch(PDO::FETCH_NUM)){
31 if($id==$id_parz){
32 if(!$err){
33 $sql="delete from ".$prefix."_ele_controlli where tipo='$tipo' and id='$id_parz' ";
34 $res = $dbi->prepare("$sql");
35 $res->execute();
36
37 }
38 $err=0;
39 break;
40 }
41 }
42 }
43 if($err){
44 $sql="insert into ".$prefix."_ele_controlli value('$id_cons','$id_sez','$tipo','$id_parz')";
45 $res = $dbi->prepare("$sql");
46 $res->execute();
47 }
48
49 $sql="SELECT validi,nulli,bianchi,contestati,voti_nulli FROM ".$prefix."_ele_sezioni as t1 where t1.id_sez='$id_sez'";
50 $res = $dbi->prepare("$sql");
51 $res->execute();
52 list($validi, $nulli, $bianchi,$contestati,$votinulli)=$res->fetch(PDO::FETCH_NUM);
53 if (($validi+$nulli+$bianchi+$contestati+$votinulli)>0)
54 if($genere==0) controllo_votir($id_cons,$id_sez,'aff');
55 else controllo_voti($id_cons,$id_sez);
56
57}
58
59
60
61function controllo_voti($id_cons,$id_sez){
62 global $prefix,$dbi,$id_sede,$id_con_gen,$genere;
63 ##############################
64 $err=0;
65 $sql="SELECT id_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons'";
66 $resref = $dbi->prepare("$sql");
67 $resref->execute();
68 if($genere==0){
69 $numscru=$resref->rowCount(); $rifscru=0;
70 while(list($idrefgruppo)=$resref->fetch(PDO::FETCH_NUM)) {
71 $sql="SELECT si,no,validi,nulli,bianchi,contestati FROM ".$prefix."_ele_voti_ref where id_sez='$id_sez' and id_gruppo='$idrefgruppo'";
72 $res2 = $dbi->prepare("$sql");
73 $res2->execute();
74 $refscru=$res2->rowCount();
75 $sql="SELECT max(voti_complessivi) FROM ".$prefix."_ele_voti_parziale where id_sez='$id_sez' and id_gruppo='$idrefgruppo'";
76 $res3 = $dbi->prepare("$sql");
77 $res3->execute();
78 list($voti)=$res3->fetch(PDO::FETCH_NUM);
79 $rifscru++;
80 list($si,$no,$validi,$nulli,$bianchi,$contestati)=$res2->fetch(PDO::FETCH_NUM);
81 if(($si+$no==$validi) and ($validi+$nulli+$bianchi+$contestati==$voti))
82 continue;
83 else {$err=1; break;}
84 }
85 }else{
86 #per le altre consultazione
87 $sql="SELECT max(voti_complessivi) FROM ".$prefix."_ele_voti_parziale where id_sez='$id_sez'";
88 $res3 = $dbi->prepare("$sql");
89 $res3->execute();
90 list($voti)=$res3->fetch(PDO::FETCH_NUM);
91 $sql="SELECT validi FROM ".$prefix."_ele_sezioni where id_sez='$id_sez' and id_cons='$id_cons' ";
92 $res2 = $dbi->prepare("$sql");
93 $res2->execute();
94 list($validi) = $res2->fetch(PDO::FETCH_NUM);
95 if($validi) {
96 $status=0;
97 $query="SELECT validi,nulli,bianchi,contestati,voti_nulli,solo_gruppo,validi_lista,contestati_lista,voti_nulli_lista,solo_lista FROM ".$prefix."_ele_sezioni as t1 where t1.id_sez='$id_sez'";
98 $sql="$query";
99 $res4 = $dbi->prepare("$sql");
100 $res4->execute();
101 list($validi, $nulli, $bianchi,$contestati,$votinulli)=$res4->fetch(PDO::FETCH_NUM);
102 if (($validi+$nulli+$bianchi+$contestati+$votinulli)!=$voti)
103 {$err=1;}
104 }
105 }
106 $tipo='votanti';
107 $sql="select id from ".$prefix."_ele_controlli where tipo='$tipo' and id_sez='$id_sez' ";
108 $res = $dbi->prepare("$sql");
109 $res->execute();
110 $righe=$res->rowCount();
111 if($righe){
112 if(!$err){
113 $sql="delete from ".$prefix."_ele_controlli where tipo='$tipo' and id='$id_sez' ";
114 $res = $dbi->prepare("$sql");
115 $res->execute();
116 }
117 $err=0;
118 }
119 if($err){
120 $sql="insert into ".$prefix."_ele_controlli value('$id_cons','$id_sez','$tipo','$id_sez')";
121 $res = $dbi->prepare("$sql");
122 $res->execute();
123 }
124 if ($genere==4){
125 $sql="select id_lista from ".$prefix."_ele_voti_lista where id_cons='$id_cons' and id_sez='$id_sez'";
126 $res = $dbi->prepare("$sql");
127 $res->execute();
128 if($res->rowCount()) controllo_votil($id_cons,$id_sez,'0');
129 }else{
130 $sql="select id_gruppo from ".$prefix."_ele_voti_gruppo where id_cons='$id_cons' and id_sez='$id_sez'";
131 $res = $dbi->prepare("$sql");
132 $res->execute();
133 if($res->rowCount()) controllo_votig($id_cons,$id_sez,$genere);
134 }
135
136}
137
138
139function controllo_votig($id_cons,$id_sez){
140 global $prefix,$dbi,$id_sede,$id_cons_gen,$genere;
141 ##############################
142 $err=0; $err2=0;
143 $sql="SELECT id_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons'";
144 $resref = $dbi->prepare("$sql");
145 $resref->execute();
146 $sql="SELECT max(voti_complessivi) FROM ".$prefix."_ele_voti_parziale where id_sez='$id_sez'";
147 $res3 = $dbi->prepare("$sql");
148 $res3->execute();
149 list($voti)=$res3->fetch(PDO::FETCH_NUM);
150 $sql="SELECT validi FROM ".$prefix."_ele_sezioni where id_sez='$id_sez' and id_cons='$id_cons' ";
151 $res2 = $dbi->prepare("$sql");
152 $res2->execute();
153 list($validi) = $res2->fetch(PDO::FETCH_NUM);
154 if($validi) {
155 $status=0;
156 $query="SELECT validi,nulli,bianchi,contestati,voti_nulli,solo_gruppo,validi_lista,contestati_lista,voti_nulli_lista,solo_lista FROM ".$prefix."_ele_sezioni as t1 where t1.id_sez='$id_sez'";
157 $sql="$query";
158 $res4 = $dbi->prepare("$sql");
159 $res4->execute();
160 list($validi, $nulli, $bianchi,$contestati,$votinulli)=$res4->fetch(PDO::FETCH_NUM);
161 if (($validi+$nulli+$bianchi+$contestati+$votinulli)!=$voti)
162 {$err=1;}
163 }
164 $tipo='gruppo';
165 $sql="select id from ".$prefix."_ele_controlli where tipo='$tipo' and id_sez='$id_sez'";
166 $res = $dbi->prepare("$sql");
167 $res->execute();
168 $righe=$res->rowCount();
169 if($righe){
170 if(!$err){
171 $sql="delete from ".$prefix."_ele_controlli where tipo='$tipo' and id='$id_sez' ";
172 $res = $dbi->prepare("$sql");
173 $res->execute();
174 }
175 $err=0;
176 }
177 if($err){
178 $sql="insert into ".$prefix."_ele_controlli value('$id_cons','$id_sez','$tipo','$id_sez')";
179 $res = $dbi->prepare("$sql");
180 $res->execute();
181 }
182 $sql="select id_lista from ".$prefix."_ele_voti_lista where id_cons='$id_cons' and id_sez='$id_sez'";
183 $res = $dbi->prepare("$sql");
184 $res->execute();
185 if($res->rowCount()) controllo_votil($id_cons,$id_sez,'0');
186
187}
188
189
190function controllo_votir($id_cons,$id_sez){
191 global $prefix,$dbi,$id_sede,$id_cons_gen,$genere;
192 ##############################
193 $err=0; $err2=0;
194 $sql="SELECT id_gruppo FROM ".$prefix."_ele_gruppo where id_cons='$id_cons'";
195 $resref = $dbi->prepare("$sql");
196 $resref->execute();
197 $numscru=$resref->rowCount(); $rifscru=0;
198 while(list($idrefgruppo)=$resref->fetch(PDO::FETCH_NUM)) {
199 $sql="SELECT si,no,validi,nulli,bianchi,contestati FROM ".$prefix."_ele_voti_ref where id_sez='$id_sez' and id_gruppo='$idrefgruppo'";
200 $res2 = $dbi->prepare("$sql");
201 $res2->execute();
202 $refscru=$res2->rowCount();
203 $sql="SELECT max(voti_complessivi) FROM ".$prefix."_ele_voti_parziale where id_sez='$id_sez' and id_gruppo='$idrefgruppo'";
204 $res3 = $dbi->prepare("$sql");
205 $res3->execute();
206 list($voti)=$res3->fetch(PDO::FETCH_NUM);
207 $rifscru++;
208 list($si,$no,$validi,$nulli,$bianchi,$contestati)=$res2->fetch(PDO::FETCH_NUM);
209 if(($si+$no==$validi) and ($validi+$nulli+$bianchi+$contestati==$voti))
210 continue;
211 else {$err=1; break;}
212
213
214
215#############
216 $tipo='referendum';
217 $sql="select id from ".$prefix."_ele_controlli where tipo='$tipo' and id_sez='$id_sez' and id='$idrefgruppo' ";
218 $res = $dbi->prepare("$sql");
219 $res->execute();
220 $righe=$res->rowCount();
221 if($righe){
222 if(!$err){
223 $sql="delete from ".$prefix."_ele_controlli where tipo='$tipo' and id='$id_sez' ";
224 $res = $dbi->prepare("$sql");
225 $res->execute();
226 }
227 $err=0;
228 }
229 if($err){
230 $sql="insert into ".$prefix."_ele_controlli value('$id_cons','$id_sez','$tipo','$id_sez')";
231 $res = $dbi->prepare("$sql");
232 $res->execute();
233 }
234#############
235 }
236
237}
238
239
240function controllo_votil($id_cons,$id_sez,$id_lista){
241 global $prefix,$dbi,$id_sede,$id_cons_gen,$validi;
242 ##############################
243 $err=0; $err2=0;
244 if($id_lista){
245 $sql="SELECT preferenze FROM ".$prefix."_ele_cons_comune where id_cons='$id_cons'";
246 $res = $dbi->prepare("$sql");
247 $res->execute();
248 list($prefs)=$res->fetch(PDO::FETCH_NUM);
249 $sql="select voti from ".$prefix."_ele_voti_lista where id_lista='$id_lista' and id_sez='$id_sez'";
250 $res = $dbi->prepare("$sql");
251 $res->execute();
252 list($votil)=$res->fetch(PDO::FETCH_NUM);
253 $sql="SELECT sum(voti),max(voti) FROM ".$prefix."_ele_voti_candidati where id_sez='$id_sez' and id_cand in (select id_cand from ".$prefix."_ele_candidati where id_lista='$id_lista')";
254 $res = $dbi->prepare("$sql");
255 $res->execute();
256 list($votic,$mvc)=$res->fetch(PDO::FETCH_NUM);
257 if(($votic*$prefs)>$votil || $mvc>$votil)
258 $err=1;
259 }else{
260 $sql="select id_gruppo from ".$prefix."_ele_lista where id_lista='$id_lista'";
261 $res = $dbi->prepare("$sql");
262 $res->execute();
263 list($idg)=$res->fetch(PDO::FETCH_NUM);
264 $sql="SELECT id_gruppo, voti, solo_gruppo FROM ".$prefix."_ele_voti_gruppo where id_sez='$id_sez'";
265 $resref = $dbi->prepare("$sql");
266 $resref->execute();
267 $totlis=0;
268 $totgru=0;
269 $totsg=0;
270 $totsl=0;
271 $sql="SELECT validi,validi_lista,contestati_lista,voti_nulli_lista,solo_lista FROM ".$prefix."_ele_sezioni where id_cons='$id_cons' and id_sez='$id_sez'";
272 $res = $dbi->prepare("$sql");
273 $res->execute();
274 list($votiv,$validil,$contestatil,$nullil,$solol) = $res->fetch(PDO::FETCH_NUM);
275 while (list($idg,$votig,$svg)=$resref->fetch(PDO::FETCH_NUM)) {
276 $sql="SELECT sum(voti), sum(solo_lista) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez' and id_lista in (select id_lista from ".$prefix."_ele_lista where id_gruppo='$idg')";
277 $res2 = $dbi->prepare("$sql");
278 $res2->execute();
279 $totgru+=$votig;
280 $totsg+=$svg;
281 if($res2->rowCount()){
282 list($votil,$svl)=$res2->fetch(PDO::FETCH_NUM);
283 $totlis+=$votil;
284 $totsl+=$svl;
285 if(($votig+$svl)<($votil+$svg))
286 $err=1;
287 }
288
289 }
290 if ($validil+$contestatil+$nullil+$solol+$totsg!=$votiv and $validil+$contestatil+$nullil+$solol>0) $err=1;
291 }
292
293 $tipo='lista';
294 $sql="select id from ".$prefix."_ele_controlli where tipo='$tipo' and id_sez='$id_sez'";
295 $res = $dbi->prepare("$sql");
296 $res->execute();
297 $righe=$res->rowCount();
298 if($righe){
299 if(!$err){
300 $sql="delete from ".$prefix."_ele_controlli where tipo='$tipo' and id='$id_sez' ";
301 $res = $dbi->prepare("$sql");
302 $res->execute();
303 }
304 $err=0;
305 }
306 if($err){
307 $sql="insert into ".$prefix."_ele_controlli value('$id_cons','$id_sez','$tipo','$id_sez')";
308 $res = $dbi->prepare("$sql");
309 $res->execute();
310 }
311
312}
313?>
Note: See TracBrowser for help on using the repository browser.