source: trunk/client/modules/Elezioni/consiglieri.php@ 281

Last change on this file since 281 was 281, checked in by roby, 5 years ago
File size: 39.1 KB
Line 
1<?php
2/************************************************************************/
3/* Eleonline - Raccolta e diffusione dei dati elettorali */
4/* by Roberto Gigli & Luciano Apolito */
5/* http://www.eleonline.it */
6/* info@eleonline.it luciano@aniene.net rgigli@libero.it */
7/************************************************************************/
8/* Modulo previsione seggi */
9/* Amministrazione */
10/************************************************************************/
11if (!defined('MODULE_FILE')) {
12 die ("You can't access this file directly...");
13}
14# controllo
15if ($hondt<=0){ Header("Location: index.php");
16 die();
17}
18
19$param=strtolower($_SERVER['REQUEST_METHOD']) == 'get' ? $_GET : $_POST;
20
21if (isset($param['gruppo'])) $gruppo=intval($param['gruppo']); else $gruppo='';
22if (isset($param['numgruppo'])) $numgruppo=intval($param['numgruppo']); else $numgruppo='';
23if (isset($param['listecol'])) $listecol=intval($param['listecol']); else $listecol=0;
24
25$result = mysql_query("select id_conf,id_fascia from ".$prefix."_ele_cons_comune where id_cons='$id_cons'", $dbi);
26list($id_conf,$fascia) = mysql_fetch_row($result);
27
28$res = mysql_query("SELECT limite,consin,infpremio,supsbarramento,suppremio,listinfsbar,listinfconta,listsupconta,supminpremio,infminpremio from ".$prefix."_ele_conf where id_conf='$id_conf'",$dbi);
29list($limite,$consin,$infpremio,$supsbarramento,$suppremio,$listinfsbar,$listinfconta,$listsupconta,$supminpremio,$infminpremio) = mysql_fetch_row($res);
30$numcons=0;
31
32echo "<table><tr><td align=\"center\">"._PROIEZCONS."</td></tr></table>";
33
34
35function consiglio(){
36global $param,$id_cons_gen, $dbi, $prefix, $id_comune, $gruppo, $numgruppo, $listecol, $id_comune, $limite,$numcons,$id_conf,$fascia,$id_cons;
37$collegate= array();
38$collperd= array();
39$x=1;
40$primoturno=0;
41while (isset($param['num_lista'.$x])) {
42 if ($param['num_lista'.$x]==$gruppo) array_push($collegate,$_SESSION['num_lista'.$x]);
43 elseif ($param['num_lista'.$x]!=0) array_push($collperd,$_SESSION['num_lista'.$x]);
44 $x++;
45}
46$res = mysql_query("SELECT t1.tipo_cons,t2.id_cons,t2.id_fascia,t2.id_conf 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'" , $dbi);
47if (mysql_num_rows($res)){
48 list($tipo_cons,$id_cons,$fascia,$conf) = mysql_fetch_row($res);
49 $result = mysql_query("select capoluogo from ".$prefix."_ele_comuni where id_comune='$id_comune'", $dbi);
50 list($capoluogo) = mysql_fetch_row($result);
51 $result = mysql_query("select fascia_capoluogo from ".$prefix."_ele_conf where id_conf='$conf'", $dbi);
52 list($fascia2) = mysql_fetch_row($result);
53 if($fascia<$fascia2 and $capoluogo) $fascia=$fascia2;
54
55 $result = mysql_query("SELECT seggi from ".$prefix."_ele_fasce where id_fascia='$fascia' and id_conf=$id_conf",$dbi);
56 list($numcons) = mysql_fetch_row($result);
57$res_val= mysql_query("SELECT id_cand, sum(voti) from ".$prefix."_ele_voti_candidati where id_cons='$id_cons' group by id_cand",$dbi);
58$num_cons= mysql_num_rows($res_val);
59if ($num_cons<$numcons){
60 echo "Il numero di candidati al consiglio inseriti con preferenza ($num_cons) e' inferiore al numero di seggi previsti ($numcons). Non e' possibile procedere con il calcolo";
61 include("footer.php");
62 die();
63}
64 if (!$gruppo){
65 $res_val = mysql_query("SELECT sum(validi) from ".$prefix."_ele_sezioni where id_cons='$id_cons'",$dbi);
66 list($validi) = mysql_fetch_row($res_val);
67 $res_lis = mysql_query("SELECT t1.num_gruppo,sum(t2.voti) as voti from ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_voti_gruppo as t2 where t1.id_cons='$id_cons' and t1.id_gruppo=t2.id_gruppo group by t1.num_gruppo order by voti desc limit 0,2",$dbi);
68 $test=0;$flag=0;
69 while (list($num_gruppo,$voti)= mysql_fetch_row($res_lis)){
70 if ($voti>($validi/2)) {$gruppo=$num_gruppo;$primoturno=1;}
71 if ($voti==$test) $flag=1; else $test=$voti;
72 }
73 }
74 if ($fascia<=$limite){
75 $res_lis = mysql_query("SELECT t1.num_gruppo,sum(t2.voti) as voti from ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_voti_gruppo as t2 where t1.id_cons='$id_cons' and t1.id_gruppo=t2.id_gruppo group by t1.num_gruppo order by voti desc limit 0,2",$dbi);
76 if(mysql_num_rows($res_lis)==1)
77 {
78 list($num_gruppo1,$voti1)= mysql_fetch_row($res_lis);
79 $voti2=0;
80 $res_lis = mysql_query("SELECT sum(maschi+femmine) from ".$prefix."_ele_sezioni where id_cons='$id_cons'",$dbi);
81 list($elettori)=mysql_fetch_row($res_lis);
82 $res_lis = mysql_query("select sum(voti_complessivi) from ".$prefix."_ele_voti_parziale where id_cons='$id_cons' group by data,orario order by data desc, orario desc limit 0,1",$dbi);
83 list($votanti)=mysql_fetch_row($res_lis);
84 if($votanti<($elettori/2) || $voti1<($votanti/2))
85 {
86 include(ele.php);
87 echo "<div>Non Ú possibile assegnare i seggi, la consultazione Ú nulla</div>";
88 include(footer.php);
89 die();
90 }
91 }else{
92 list($num_gruppo1,$voti1)= mysql_fetch_row($res_lis);
93 list($num_gruppo2,$voti2)= mysql_fetch_row($res_lis);
94 }
95 if ($voti1>$voti2)
96 $numgruppo=$num_gruppo1;
97 }
98 if ($fascia<=$limite and $numgruppo) consmin($fascia,$numgruppo);
99 elseif ($gruppo>0) conssup($fascia,$gruppo,$collegate,$collperd,$primoturno);
100 elseif ($numgruppo>0){
101 $res_lis = mysql_query("SELECT t1.id_lista,t1.num_lista,t1.descrizione,t1.id_gruppo from ".$prefix."_ele_lista as t1, ".$prefix."_ele_gruppo as t2 where t1.id_cons='$id_cons' and t1.id_gruppo=t2.id_gruppo and t2.num_gruppo not in (".$_SESSION['ballo1'].",".$_SESSION['ballo2'].")",$dbi);
102 $yy=mysql_num_rows($res_lis);
103 $res_voti = mysql_query("select sum(voti) from ".$prefix."_ele_voti_lista where id_cons='$id_cons'",$dbi);
104 list($validilista) = mysql_fetch_row($res_voti);
105 if ($yy){
106while(list($id_lista,$num_lista,$descr,$pgrup) = mysql_fetch_row($res_lis)) {
107 $res_voti = mysql_query("select sum(voti) from ".$prefix."_ele_voti_lista where id_lista='$id_lista'",$dbi);
108 list($votilista) = mysql_fetch_row($res_voti);
109 if(!isset($voti[$pgrup])) $voti[$pgrup]=0;
110 $voti[$pgrup]+=$votilista;
111}
112 foreach ($voti as $key=>$val){if($val<($validilista*3/100)) unset($voti[$key]);} ##################################################
113 mysql_data_seek($res_lis,0);
114 echo "<br/>";
115 echo "<form id=\"gruppo\" action=\"modules.php\">";
116 echo "<table cellspacing=\"0\" cellpadding=\"2\" border=\"1\"><tr class=\"bggray\"><td colspan=\"4\">"._COLLEGAMENTI."</td></tr><tr class=\"bggray\"><td>";
117 echo "<input type=\"hidden\" name=\"op\" value=\"consiglieri\"/>";
118 echo "<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\"/>";
119 echo "<input type=\"hidden\" name=\"id_comune\" value=\"$id_comune\"/></td>";
120
121echo "<td><b>".$_SESSION['grp1']."</b></td>";
122 echo "<td><b>".$_SESSION['grp2']."</b></td>";
123 echo "<td><b>"._NONCOLLE."</b></td></tr>";
124
125 $z=1;
126 while(list($id_lista,$num_lista,$descr,$pgrup) = mysql_fetch_row($res_lis)) {
127 if(!isset($voti[$pgrup])) continue;
128 $x=$_SESSION['ballo1'];
129 echo "<tr><td>$descr</td><td><input type=\"radio\" name=\"num_lista$z\" value=\"$x\"/></td>";
130 $x=$_SESSION['ballo2'];
131 $_SESSION['num_lista'.$z]=$num_lista;
132 echo "<td><input type=\"radio\" name=\"num_lista$z\" value=\"$x\"/></td>";
133 echo "<td><input type=\"radio\" name=\"num_lista$z\" value=\"0\" checked=\"checked\"/></td></tr>";
134 $z++;
135 }
136
137 echo "<tr><td colspan=\"4\"><input type=\"hidden\" name=\"listecol\" value=\"$x\"/><input type=\"hidden\" name=\"gruppo\" value=\"$numgruppo\"/>";
138 echo "<input type=\"submit\" name=\"invia\" value=\""._OK."\"/></td></tr></table></form>";
139 }else conssup($fascia,$numgruppo,$collegate,$collperd,$primoturno);
140 }else {
141 echo "<br/>";
142 echo "<form id=\"numgruppo\" action=\"modules.php\">";
143 echo "<table><tr class=\"bggray\"><td>"._SCELTASIN.":</td><td align=\"left\">";
144 echo "<input type=\"hidden\" name=\"op\" value=\"consiglieri\"/>";
145 echo "<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\"/>";
146 echo "<input type=\"hidden\" name=\"id_comune\" value=\"$id_comune\"/>";
147 $res = mysql_query("SELECT t1.id_gruppo,t1.num_gruppo,t1.descrizione, sum(t2.voti) as pref FROM ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_voti_gruppo as t2 where t1.id_gruppo=t2.id_gruppo and t1.id_cons='$id_cons' group by t1.num_gruppo,t1.descrizione order by pref desc limit 0,2", $dbi);
148 while(list($id_gruppo,$num_gruppo, $descr_gruppo,$pref) = mysql_fetch_row($res)) {
149 if (!isset($_SESSION['ballo1'])) {
150 $_SESSION['ballo1']=$num_gruppo;
151 $_SESSION['grp1']=$descr_gruppo;
152 $_SESSION['idgrp1']=$id_gruppo;
153 }else{
154 $_SESSION['ballo2']=$num_gruppo;
155 $_SESSION['grp2']=$descr_gruppo;
156 $_SESSION['idgrp2']=$id_gruppo;
157 }
158 echo "<input type=\"radio\" name=\"numgruppo\" value=\"$num_gruppo\"/>$descr_gruppo<br/>";
159 }
160 echo "</td>";
161 echo "<td><input type=\"submit\" name=\"invia\" value=\""._OK."\"/></td></tr></table></form>";
162
163 }
164 }
165}
166
167function consmin($fascia,$grp) {
168global $id_cons, $prefix,$dbi,$num_candlst,$quozienti,$PNE,$CSEC,$consin,$numcons;
169global $infpremio,$fisso,$sincons, $votol;
170if (!isset($fisso)) $fisso=0; #se fisso=1 il premio di maggioranza Ú fisso
171if (isset($votol)) {$votolista=$votol; $fisso=$votol;} #se votolista=1 c'e' voto di lista
172if (!isset($sincons)) $sincons=0; #se sincons=1 il sindaco eletto occupa un posto di consigliere
173$res = mysql_query("SELECT t1.num_gruppo,sum(t2.voti) as voti from ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_voti_gruppo as t2 where t1.id_cons='$id_cons' and t1.id_gruppo=t2.id_gruppo group by t1.num_gruppo order by voti desc limit 0,2",$dbi);
174$numgruppi=mysql_num_rows($res);
175$PNE=_PRIMONON;
176$CSEC=_SINDCONS;
177$sorteggio=0;
178$num_candlst=array();
179#funzione di calcolo per comuni fino a 15.000 abitanti (più esattamente fino al valore di $limite)
180
181if ($sincons) $numcons--;
182#$numcons--;
183$consel=array();
184$conselcsne=array();
185$conselmin=array();
186$listemin=array();
187//$consel[]=array("Lista","Voti","Seggi","Nominativo","Cifra Elettorale","Quoziente");
188$consel[]=array(_LISTA,_VOTI,_SEGGI,_CANDIDATO,_CIFRAELE,_QUOZIENTI);
189#carica numero di liste e voti, i voti sono quelli del gruppo se non c'e' voto di lista
190if($votolista=='0')
191 $res_val = mysql_query("SELECT sum(validi) from ".$prefix."_ele_sezioni where id_cons='$id_cons'",$dbi);
192else
193 $res_val = mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_lista where id_cons='$id_cons'",$dbi);
194list($validi) = mysql_fetch_row($res_val);
195#se votolista==1, Ú abilitato il voto di lista ed Ú quello su cui si calcola l'assegnazione dei seggi
196if ($fisso==1){
197 #seleziona il sindaco
198$res_per = mysql_query("SELECT t1.descrizione,t1.num_gruppo,t2.id_lista,t2.num_lista,t2.descrizione,sum(t3.voti) as voti from ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_lista as t2, ".$prefix."_ele_voti_gruppo as t3 where t1.id_cons='$id_cons' and t1.id_gruppo=t2.id_gruppo and t1.id_gruppo=t3.id_gruppo group by t1.descrizione, t1.num_gruppo,t2.num_lista,t2.descrizione order by voti desc limit 0,1",$dbi);
199 list($descr,$num_gruppo,$id_lista1,$num_lista,$descr_lista,$voti)= mysql_fetch_row($res_per);
200$res_per = mysql_query("SELECT t2.id_lista, sum(t2.voti) as voti from ".$prefix."_ele_voti_lista as t2 where t2.id_cons='$id_cons' and t2.id_lista!='$id_lista1' group by t2.id_lista order by voti desc limit 0,1",$dbi);
201 list($id_lista2,$voti)= mysql_fetch_row($res_per);
202 #e la lista di minoranza
203 $ordine= $id_lista1>$id_lista2 ? "desc":"";
204$res_per = mysql_query("SELECT t1.descrizione,t1.num_gruppo,t2.id_lista,t2.num_lista,t2.descrizione,sum(t3.voti) as voti from ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_lista as t2, ".$prefix."_ele_voti_lista as t3 where (t2.id_lista='$id_lista1' or t2.id_lista='$id_lista2') and t1.id_gruppo=t2.id_gruppo and t2.id_lista=t3.id_lista group by t1.descrizione,t1.num_gruppo,t2.num_lista,t2.descrizione order by t2.id_lista $ordine",$dbi);
205 }else{
206$res_per = mysql_query("SELECT t1.descrizione,t1.num_gruppo,t2.id_lista,t2.num_lista,t2.descrizione,sum(t3.voti) as voti from ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_lista as t2, ".$prefix."_ele_voti_gruppo as t3 where t1.id_cons='$id_cons' and t1.id_gruppo=t2.id_gruppo and t1.id_gruppo=t3.id_gruppo group by t1.descrizione,t1.num_gruppo,t2.num_lista,t2.descrizione order by voti desc",$dbi);
207}
208$groups=array();
209$seggimag=array();
210$premio=0;
211$x=0;
212#carica l'array dei gruppi e della cifra di gruppo
213while (list($descr,$num_gruppo,$id_lista,$num_lista,$descr_lista,$voti)= mysql_fetch_row($res_per)){
214 $desgruppi[$num_gruppo]=$descr;
215 $desliste[$num_lista]=$num_lista.") ".$descr_lista;
216 $idlst[$num_lista]=$id_lista;
217 $listagruppo[$num_lista]=$num_gruppo;
218 $lists[$num_lista]=$voti;
219 if ($grp){
220 if ($grp!=$num_gruppo) {$groups[($num_gruppo)]=$voti;$listemin[$num_lista]=$voti;}
221 else {$gruppo[($num_gruppo)]=$voti;$listemag[$num_lista]=$voti;$lisvin=$num_lista;}
222 }else{
223 if ($x) {$groups[($num_gruppo)]=$voti;$listemin[$num_lista]=$voti;}
224 else {$gruppo[($num_gruppo)]=$voti;$listemag[$num_lista]=$voti;$lisvin=$num_lista;}
225 }
226 $x++;
227 }#controllo del premio di maggioranza
228// if ($gruppo[$listagruppo[$lisvin]]>($validi*2/3))
229 if($numgruppi==1) $fisso=1;
230 if ($gruppo[$listagruppo[$lisvin]]>($validi*$infpremio/100) and $fisso==1)
231 {
232$seggimag[$lisvin]=number_format($numcons*($gruppo[$listagruppo[$lisvin]]*100/$validi)/100);
233##echo "<br> seggimag:".$seggimag[$lisvin];
234$num_cons=number_format($numcons-$seggimag[$lisvin]);
235# $num_cons=$numcons;
236 } else {
237// $seggimag[$lisvin]=number_format($numcons*2/3);
238// $num_cons=number_format($numcons/3);
239 $seggimag[$lisvin]=number_format($numcons*$infpremio/100);
240 $num_cons=number_format($numcons-$seggimag[$lisvin]);
241 }
242 foreach ($listagruppo as $lista=>$val){
243 $id_lista=$idlst[$lista];
244 $res_can = mysql_query("SELECT concat(substring(concat('0',t1.num_cand),-2),') ',t1.cognome,' ',substring(t1.nome from 1 for 1),'.') as descr,sum(t2.voti) as voti from ".$prefix."_ele_candidati as t1, ".$prefix."_ele_voti_candidati as t2 where t1.id_lista='$id_lista' and t1.id_cand=t2.id_cand GROUP BY descr order by voti desc,t1.num_cand",$dbi);
245
246 $num_candlst[$lista]=mysql_num_rows($res_can);
247 $pos=0;
248 while(list($cand,$pre)=mysql_fetch_row($res_can)){
249 if(!isset($lists[$lista])) $lists[$lista]=0;
250 $cifra[$lista][$pos]=$lists[$lista]+$pre;
251 $arvin[$lista][$pos++]=$cand;
252 }
253 }
254 if ($num_candlst[$lisvin]<$seggimag[$lisvin]) {
255 $num_cons+=$seggimag[$lisvin]-$num_candlst[$lisvin];
256 $seggimag[$lisvin]=$num_candlst[$lisvin];
257 }
258 if (isset($gruppo[$listagruppo[$lisvin]])) $seggimag=calcoloseggi($listemag,$seggimag[$lisvin],1);
259 if(isset($mex))
260 echo "$mex";
261 foreach ($seggimag as $lista=>$val)
262 for ($z=0;$z<$val;$z++){
263 if ($z) $consel[]=array("","","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista][$z],2));
264 else $consel[]=array($desliste[$lista],$lists[$lista],$val,$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista][$z],2));
265 }
266 if($arvin[$lista][($z)]) $consel[]=array($desliste[$lista],"$PNE","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista][$z],2));
267 $seggimin=array();
268 $seggimin=calcoloseggi($listemin,$num_cons,1);
269 foreach ($seggimin as $lista=>$val){
270 if ($consin and $val>0){
271 $conselcsne[]=array("$CSEC","","",$desgruppi[$listagruppo[$lista]],"","");
272 $val--;
273 }
274 for ($z=0;$z<$val;$z++){
275 if ($z) $conselmin[]=array("","","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista][$z],2));
276 else $conselmin[]=array($desliste[$lista],$lists[$lista],$val,$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista][$z],2));
277 }
278 if($arvin[$lista][($z)]) $conselmin[]=array($desliste[$lista],"$PNE","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista][$z],2));
279 }
280 foreach($conselcsne as $key=>$val)
281 {
282 $consel[]=array($val[0],$val[3]);
283 }
284 foreach($conselmin as $key=>$val)
285 {
286 $consel[]=array($val[0],$val[1],$val[2],$val[3],$val[4],$val[5]);
287 }
288
289
290
291 echo "<table summary=\"Tabella dei consiglieri eletti\" class=\"table-docs\" cellspacing=\"0\" cellpadding=\"2\" border=\"1\" rules=\"all\">";
292 echo "<tr class=\"bggray\"><td scope=\"row\">";
293 echo _SINDACO.": ".$desgruppi[$listagruppo[$lisvin]]."</td></tr></table>";
294 stampalista($consel);
295
296
297}
298
299
300
301function calcoloseggi($gruppi,$num_cons,$flag){
302global $ultimo,$mex,$sorteggio,$quozienti,$num_cand,$num_candlst;
303
304#carica le preferenze
305$pref = array();
306$ultimo=0;
307$mex='';
308$sorteggio=0;
309$eletti = array();
310$ele = array();
311$quozienti = array();
312$num_quoz= $num_cons;
313#inizializza l'array degli eletti
314foreach ($gruppi as $x=>$val){
315 $eletti[$x]=0;
316 }
317#carica gli array dei quozienti
318foreach($gruppi as $y=>$tmp){
319
320 if($flag) $num_quoz= $num_cons<$num_candlst[$y] ? $num_cons:$num_candlst[$y];
321 if(!isset($ele[$y][0])) $ele[$y][0]=0;
322 for ($x=0;$x<=$num_quoz;$x++){
323 $ele[$y][$x]= $tmp/($x+1);
324 $quozienti[$y][$x]= $tmp/($x+1); ###echo "<br>[$y][$x]=".$tmp/($x+1);
325 }
326}
327#estrae i quozienti piu' alti
328for ($y=0;$y<$num_cons;$y++){
329 $temp=0;
330 $cand=0;
331 if(! isset($pref['0'])) $pref['0']='';
332 if(! isset($pref['1'])) $pref['1']='';
333 foreach($gruppi as $x=>$tmp){
334 if(!isset($ele[$x][0])) $ele[$x][0]=0;
335 if(!isset($pref[$x])) $pref[$x]=0;
336 if ($ele[$x][0]==$temp and $pref[$x]==$pref[$cand] and ($y+1)==$num_cons) {$sorteggio=1; $mex="Per attribuire l'ultimo seggio ᅵ necessario un sorteggio tra la lista n. ".($x+1)." e la lista n. ".($cand+1);}
337 if ($ele[$x][0]>$temp or ($ele[$x][0]==$temp and $pref[$x]>$pref[$cand])) {
338 $temp=$ele[$x][0];
339 $cand=$x;
340 $sorteggio=0;$mex='';
341 }
342 }
343 if (!$sorteggio and $cand){
344 $eletti[$cand]++;
345 $ultimo=$cand;
346 array_shift($ele[$cand]);
347 }
348}
349return ($eletti);
350}
351
352function stampalista($ar) {
353global $PNE,$CSEC;
354$cmin=_SEGGIMIN;
355$csin="";
356 $bg='bgw';
357
358 $tmpbg='bggray2';
359 $tmpbg1='bgw';
360 $tmpbg2='bggray';
361 $tmpbg3='bggray2';
362 $fmin=2;
363 echo "<table summary=\"Tabella dei consiglieri eletti\" class=\"table-docs\" cellspacing=\"0\" cellpadding=\"2\" border=\"1\" rules=\"all\">";
364 $y=1;$i='';$e=0;
365 foreach ($ar as $riga) {
366 $e++;
367 if($riga[0]==$CSEC and $fmin==2)
368 {
369 { $fmin=1;
370 echo "</table>";
371 echo "<table summary=\"Tabella dei candidati sindaco eletti consigliere\" class=\"table-docs\" cellspacing=\"0\" cellpadding=\"2\" border=\"1\" rules=\"all\">";
372 echo "<tr class=\"bggray\"><td scope=\"row\" colspan=\"3\"><b>";
373 echo $csin;
374 echo "</b></td></tr>";
375 echo "<tr class=\"bggray\"><td scope=\"row\"><b>"._CANDIDATO."</b></td><td scope=\"row\"><b>"._NOMINATIVO."</b></td></tr>";
376 }
377 }
378 if($riga[0]!=$CSEC and $fmin==1)
379 { $fmin=0;
380 echo "</table>";
381 echo "<table summary=\"Tabella dei consiglieri di minoranza\" class=\"table-docs\" cellspacing=\"0\" cellpadding=\"2\" border=\"1\" rules=\"all\">";
382 echo "<tr class=\"bggray\"><td scope=\"row\" colspan=\"6\"><b>";
383 echo $cmin;
384 echo "</b></td></tr>";
385 echo "<tr class=\"bggray\"><td scope=\"row\"><b>"._LISTA."</b></td><td scope=\"row\"><b>"._VOTI."</b></td><td scope=\"row\"><b>"._SEGGI."</b></td><td scope=\"row\"><b>"._NOMINATIVO."</b></td><td scope=\"row\"><b>"._CIFRAELE."</b></td><td scope=\"row\"><b>"._QUOZIENTI."</b></td></tr>";
386 }
387 if($riga[1]==$PNE) echo "<tr class=\"red\">";
388 else{
389 $bg= ($riga[1]) ? $tmpbg3:$tmpbg1;
390 if($y) {
391 echo "<tr class=\"bggray\">";
392 }else{
393 echo "<tr class=\"$bg\">";
394 }
395 }
396 foreach ($riga as $cella) {
397 if ($e==1){
398 $t="<th scope=\"colgroup\"";$f="</th>";
399 }else{
400 $t="<td scope=\"row\"";$f="</td>";
401 }
402 echo "$t $i align=\"left\">$cella $f";
403 $i='';
404
405 }
406 if ($y) $y=0;
407 echo "</tr>";
408 }
409 echo "</table>";
410
411}
412
413function conssup($fascia,$gruppo,$collegate,$collperd,$primoturno) {
414global $id_cons, $id_cons_gen, $id_comune, $prefix,$dbi;
415global $groups,$lists,$eletti,$ultimo,$quozienti,$num_candlst,$mex,$PNE,$CSEC,$consin;
416global $supsbarramento, $supminpremio, $suppremio;
417global $listsupconta,$numcons;
418#funzione di calcolo per comuni oltre 15.000 abitanti
419#carica il numero di consiglieri da eleggere$groups=array();
420$PNE=_PRIMONON;
421$CSEC=_SINDCONS;
422$lists=array();
423$eletti=array();
424$num_candlst=array();
425#$quozienti = array();
426$oldlists=array();
427$oldlstgrp=array();
428$premio=0;
429/* "Ai fini della determinazione nel secondo turno, della cifra elettorale complessiva delle liste collegate deve tenersi conto anche del collegamento intervenuto in vista del ballottaggio" (Cons. St. Sez. V 4 maggio 2001 n. 2519; 20 settembre 2000 n. 4894; 19 marzo 1996 n. 290)
430 */
431
432if (!isset($_SESSION['ballo1'])) $_SESSION['ballo1']='';
433if (!isset($_SESSION['ballo2'])) $_SESSION['ballo2']='';
434$gruppoperd= ($gruppo==$_SESSION['ballo1']) ? $_SESSION['ballo2'] : $_SESSION['ballo1'];
435
436#per voti validi non si intendono i voti validi alle liste ma i voti validi espressi
437#$res_val = mysql_query("SELECT sum(validi_lista) from ".$prefix."_ele_sezioni where id_cons='$id_cons'",$dbi);
438$res_val = mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_gruppo where id_cons='$id_cons'",$dbi);
439list($validi) = mysql_fetch_row($res_val);
440
441$sbarra=($validi*$supsbarramento)/100;
442$res_per = mysql_query("SELECT t1.descrizione,t1.num_gruppo,t2.id_lista,t2.num_lista,t2.descrizione,sum(t3.voti) as voti from ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_lista as t2, ".$prefix."_ele_voti_lista as t3 where t1.id_cons='$id_cons' and t1.id_gruppo=t2.id_gruppo and t2.id_lista=t3.id_lista group by t1.descrizione,t1.num_gruppo,t2.num_lista,t2.descrizione order by voti desc",$dbi);
443$groups=array();
444$premio=0;
445//10-05-2009 gestione differenziata delle norme elettorali
446#carica l'array dei gruppi e della cifra di gruppo
447while (list($descr,$num_gruppo,$id_lista,$num_lista,$descr_lista,$voti)= mysql_fetch_row($res_per)){
448 if ($listsupconta or $voti>=$sbarra){
449 if (! isset($groups[($num_gruppo)])) $groups[($num_gruppo)]=0;
450 $desgruppi[$num_gruppo]=$descr;
451 $desliste[$num_lista]=$num_lista.") ".$descr_lista;
452 $idlst[$num_lista]=$id_lista;
453 $listagruppo[$num_lista]=$num_gruppo;
454 $lists[$num_lista]=$voti;
455 $groups[($num_gruppo)]+=$voti;
456 }
457}
458################### carica array ... 25 maggio 2014
459foreach($collegate as $key=>$val){
460 $res = mysql_query("SELECT id_gruppo from ".$prefix."_ele_lista where num_lista='$val' and id_cons='$id_cons'",$dbi);
461 list($tempig)=mysql_fetch_row($res);
462 $res = mysql_query("SELECT num_gruppo from ".$prefix."_ele_gruppo where id_gruppo='$tempig' and id_cons='$id_cons'",$dbi);
463 list($tempng)=mysql_fetch_row($res);
464 $grpinc[$val]=$tempng;
465}
466 $elencog=array();
467 $sindseggiopre=array();
468 foreach($groups as $testk=>$valk) if($testk!=$gruppo) {$elencog[$testk]=$valk;}
469 $testseggio=calcoloseggi($elencog,floor($numcons*(100-$suppremio)/100),0);
470 foreach($testseggio as $testk=>$valk) { $sindseggiopre[]=$testk;}
471##################
472$descrsind=$desgruppi[$gruppo];
473foreach ($groups as $key=>$val){
474 #controlla se un gruppo di liste, tra quelle perdenti, ha superato il 50%
475 if ($key!=$gruppo and $val> $validi/2) $premio=2;
476 #elimina gruppi che non hanno superato lo sbarramento
477 if ($val<$sbarra){
478 foreach ($listagruppo as $lst=>$grp)
479 if ($grp==$key){
480 unset($listagruppo[$lst]);
481 unset($desliste[$lst]);
482 unset($lists[$lst]);
483 }
484 unset($groups[($key)]);
485 unset($desgruppi[($key)]);
486
487 }
488}
489
490 foreach ($collegate as $lst)
491 if (isset($lists[$lst])){
492 if($premio){
493 $oldlstgrp[$lst]=$listagruppo[$lst];
494 $oldlists[$lst]=$lists[$lst];
495 }
496 $groups[$listagruppo[$lst]]-=$lists[$lst];
497 $listagruppo[$lst]=$gruppo;
498 $groups[$gruppo]+=$lists[$lst];
499 }
500 ////maggio 2011: da qui
501
502#controlla se la percentuale del gruppo vincente e' tra il 40 e il 60% o il sindaco e' eletto al secondo turno
503#e se nessun altro gruppo ha superato il 50% assegna il premio di maggioranza
504#e se nessun altro gruppo ha superato il 50% e nessuno ha ottenuto piu' del 60% dei seggi, assegna il premio di maggioranza
505$consmin=$numcons;
506$gruppomin=calcoloseggi($groups,$consmin,0);
507$nopremio=1;
508#die("qui:".($numcons*60/100)."<$val");
509if (($groups[$gruppo]>=(($validi*$supminpremio)/100) or ! $primoturno) and $groups[$gruppo]<(($validi*$suppremio)/100) and !$premio and $nopremio) $premio=1;
510else $premio=0;
511 $consel=array();
512 $consel[]=array(_LISTA,_VOTI,_SEGGI,_CANDIDATO,_CIFRAELE,_QUOZIENTI);
513$groupsappo=$groups;
514$candidati=array();
515$grpperd=$gruppoperd;
516//maggio 2011: a qui viene spostato in modo da aggiungere i voti di lista delle collegate per il perdente solo dopo aver controllato se supera il 50%, in questo modo si evita che il collegamento tra perdenti faccia decadere il premio di maggioranza se solo insieme superano il 50%
517//maggio 2011: da qui
518if(!isset($groups[$gruppoperd])) $groups[$gruppoperd]=0;
519 foreach ($collperd as $lst)
520 if (isset($lists[$lst])){
521 $oldlstgrp[$lst]=$listagruppo[$lst];
522 $listagruppo[$lst]=$gruppoperd;
523 $oldlists[$lst]=$lists[$lst];
524 $groups[$gruppoperd]+=$lists[$lst];
525 $groups[$oldlstgrp[$lst]]-=$lists[$lst];
526 }
527
528////maggio 2011: a qui (mettendolo dopo Ú come se l'avessi tolto ma possono esserci altre implicazioni visto che si modificano le percentuali del gruppo, così per ora non lo tolgo) va tolto se non vanno sommati i voti delle liste collegate al secondo turno con quelli del gruppo che perde il ballottaggio, se non si collegano viene favorita l'elezione del candidato sindaco con cui era collegata al primo turno mentre se si collegano viene favorito il principio di aggregazione. Per ora i perdenti sono considerati con la situazione al primo turno. Implementiamo cosᅵ: il 50% deve essere superato dalla minoranza nel primo turno, quindo senza somma dei voti delle liste aggiunte nel secondo turno - la suddivisione dei seggi viene fatta considerando i collegamenti al secondo turno, le liste collegate partecipano alla suddivisione dei seggi con questo gruppo quindi si confronta con le liste del gruppo in cui era al primo turno e valutando i coefficienti si stabilisce quale lista cede il seggio al candidato sindaco non acceduto al ballottaggio.
529
530if ($premio) {
531#########
532################### carica array ...
533/* $elencog=array();
534 $sindseggiopre=array();
535 foreach($groups as $testk=>$valk) if($testk!=$grpperd) {$elencog[$testk]=$valk;}
536 $testseggio=calcoloseggi($elencog,ceil($numcons*($suppremio)/100),0);
537 foreach($testseggio as $testk=>$valk) {if($valk) $sindseggio[]=$testk; echo "<br>testkpre: $testk - $valk";}
538*/#foreach ($gruppomin as $key=>$val) {if (($numcons*60/100)<$val) $nopremio=0;if($key!=$gruppo){echo "<br>gruppomin: $key -- $val";}}
539##################
540################### nell'array sindseggio vengono inseriti i candidati sindaco che restano senza seggio per gli apparentamenti
541 $elencog=array();
542 $testseggio=array();
543 $sindseggio=array();
544 foreach($groups as $testk=>$valk) {if($testk!=$gruppo) $elencog[$testk]=$valk;}
545 $perdente[$gruppoperd]=$groups[$gruppoperd];
546 $testseggio=calcoloseggi($elencog,floor($numcons-$numcons*($suppremio)/100),0);
547 foreach($testseggio as $testk=>$valk)
548 foreach($sindseggiopre as $testk=>$valk){ if(isset($testseggio[$valk]) and $testseggio[$valk]) continue; $sindseggio[$valk]=$valk;} #foreach ($sindseggiopre as $keyl=>$vall) echo "<br> seggi: $keyl - $vall";
549###########
550 $sindaco[$gruppo]=$groups[$gruppo]; $groups[$gruppo]=0;
551 $gruppomag=calcoloseggi($sindaco,ceil($numcons*$suppremio/100),0);
552#######calcola i seggi per lista
553foreach ($gruppomag as $key=>$val){
554 foreach($listagruppo as $lst=>$grp){
555 if($grp!=$key) continue;
556 $id_lista=$idlst[$lst];
557 $x=$lst;
558 $y=$lists[$x];
559 $pos=0;
560 $z=0;
561 $arvin[$x][$pos++]=$desliste[$lst];
562 $res_can = mysql_query("SELECT concat(substring(concat('0',t1.num_cand),-2),') ',t1.cognome,' ',substring(t1.nome from 1 for 1),'.') as descr,sum(t2.voti) as voti from ".$prefix."_ele_candidati as t1, ".$prefix."_ele_voti_candidati as t2 where t1.id_lista='$id_lista' and t1.id_cand=t2.id_cand GROUP BY descr order by voti desc,num_cand",$dbi);
563 $num_candlst[$x]=mysql_num_rows($res_can);
564 while(list($cand,$pre)=mysql_fetch_row($res_can)){
565 $cifra[$x][$pos]=$y+$pre;
566 $arvin[$x][$pos++]=$cand;
567 }
568 $listemag[$x]=$y;
569 $desliste[$x]=$descr;
570 $percliste[$x]="<br/>$y (".number_format($y*100/$validi,2)."%)";
571 $z++;
572## }
573 $seggimag=array();
574 $x=0;#foreach($listemag as $kkk=>$vvv) echo "<br> listemag: $kkk - $vvv - $grp - $gruppo -val=$val";
575#####25 maggio 2014 - il candidato sindaco non eletto ha diritto al seggio anche se di maggioranza
576### individua ultimi seggi assegnati a liste collegate
577if($grp==$gruppo){
578 $listdec =array();
579 $seggitmp=calcoloseggi($listemag,$val,1);
580 foreach ($seggitmp as $keyl=>$vall){#echo "<br> lista: $vall - $keyl - $grp - $gruppo";
581 if($vall==0) continue;
582
583 $res = mysql_query("SELECT id_gruppo from ".$prefix."_ele_lista where num_lista='$keyl' and id_cons='$id_cons'",$dbi);
584 list($tempig)=mysql_fetch_row($res);
585 $res = mysql_query("SELECT num_gruppo from ".$prefix."_ele_gruppo where id_gruppo='$tempig' and id_cons='$id_cons'",$dbi);
586 list($tempng)=mysql_fetch_row($res); #foreach ($sindseggio as $keyl=>$vall) echo "<br> listdecseggi: $keyl - $vall - $tempng";
587 if (isset($sindseggio[$tempng])) {$listdec[$tempng][]=$keyl;}
588# if (in_array($tempng,$sindseggio)) {$listdec[$tempng][]=$keyl;}
589}
590}
591}
592##########
593 $seggimag=calcoloseggi($listemag,$val,1);
594
595####cerca ultimo seggio assegnato per gruppo di liste collegate al primo turno
596 foreach ($seggimag as $key2=>$val2){ if($val2==0) continue;
597 if(isset($grpinc[$key2])) { $tempng=$grpinc[$key2];}
598if(isset($listdec[$tempng]))
599foreach($listdec[$tempng] as $ark=>$arv) {
600 if(!isset($ultquoz[($sindseggio[$tempng])]) and $sindseggio[$tempng]) {$ultquoz[($sindseggio[$tempng])]=$quozienti[$arv][($val2-1)];$lastlist[$tempng]=$arv;}
601 elseif ($ultquoz[($sindseggio[$tempng])]>$quozienti[$arv][($val2-1)]) {$ultquoz[($sindseggio[$tempng])]=$quozienti[$arv][($val2-1)];$lastlist[($sindseggio[$tempng])]=$arv;
602 }
603 }}
604
605 foreach ($seggimag as $key2=>$val2){
606 ## condizione per esclusione di un seggio da destinare al sindaco non eletto in_array($key2,$lastlist)
607 if(isset($lastlist))
608 foreach($lastlist as $key3=>$val3){
609 if($key2==$val3) {
610 $arappo=array_shift($arvin[$key2]);$tpmgrp=0;
611 array_unshift($arvin[$key2],$desgruppi[$key3]); array_unshift($arvin[$key2],$arappo);array_unshift($cifra[$key2],"--");array_unshift($cifra[$key2],"--");
612 }
613 }
614 ## fine condizione - impostare variabile in db per differenziare il comportamento per consultazioni diverse
615 for ($z=0;$z<$val2;$z++){
616 if ($z) $consel[]=array("","","",$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
617 else
618 {
619 $consel[]=array($arvin[$key2][0],$percliste[$key2],$val2,$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
620 $arlisdesv[]=$arvin[$key2][0];$arlissegv[]=$val2;$arlisnumv[]=$key2;
621 }
622 }
623 $x++;
624 if($val2)
625 $consel[]=array($arvin[$key2][0],"$PNE","",$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
626 }
627}
628}
629if ($premio) $consmin=floor($numcons*(100-$suppremio)/100);
630else $consmin=$numcons;
631
632#####calcolo per la minoranza o in caso non ci sia premio di maggioranza
633$gruppomin=calcoloseggi($groups,$consmin,0);
634$ordinati[$gruppo]=$gruppomin[$gruppo];
635foreach ($gruppomin as $key=>$val){
636 if($key!=$gruppo) $ordinati[$key]=$val;
637}
638$gruppomin=$ordinati;
639foreach ($gruppomin as $key=>$val){
640 if($premio and $key==$gruppo) continue;
641 $listemin=array();
642 $cifra=array();
643 foreach($listagruppo as $lst=>$grp){
644 if($grp!=$key) continue;
645
646 $id_lista=$idlst[$lst];
647 $x=$lst;
648 $y=$lists[$x];
649 $pos=0;
650 $z=0;
651 $pos=0;$z=0;
652 if(!$premio and $key==$gruppo) $arvin[$x][$pos++]=$desliste[$lst];
653 else $arper[$x][$pos++]=$desliste[$lst];
654 $res_can = mysql_query("SELECT concat(substring(concat('0',t1.num_cand),-2),') ',t1.cognome,' ',substring(t1.nome from 1 for 1),'.') as descr,sum(t2.voti) as voti from ".$prefix."_ele_candidati as t1, ".$prefix."_ele_voti_candidati as t2 where t1.id_lista='$id_lista' and t1.id_cand=t2.id_cand GROUP BY descr order by voti desc,num_cand",$dbi);
655 $num_candlst[$x]=mysql_num_rows($res_can);
656 while(list($cand,$pre)=mysql_fetch_row($res_can)) {
657 $cifra[$x][$pos]=$y+$pre;
658 if(!$premio and $key==$gruppo)
659 $arvin[$x][$pos++]=$cand;
660 else
661 $arper[$x][$pos++]=$cand;
662 }
663 $listemin[$x]=$y;
664 $desliste[$x]=$descr;
665 $percliste[$x]="<br/>$y (".number_format($y*100/$validi,2)."%)";
666 }
667 $seggimin=array();
668 echo "$mex";
669 $ultimo='';
670
671 $seggimin=calcoloseggi($listemin,$val,1);
672 echo "$mex";#foreach ($seggimin as $lista=>$valc) echo $seggimin[$lista]." key:$lista -val:$valc<br/>";
673 if(!$premio and $key==$gruppo)
674 foreach ($seggimin as $lista=>$valc){
675 $arper[$lista]=$arvin[$lista];
676}
677/* for ($z=0;$z<$valc;$z++){
678 if ($z) $consel[]=array("","","",$arvin[$lista][($z+1)],$cifra[$lista][($z+1)],$quozienti[$lista][$z]);
679 else $consel[]=array($arvin[$lista][0],$percliste[$lista],$valc,$arvin[$lista][($z+1)],$cifra[$lista][($z+1)],$quozienti[$lista][$z]);
680 }
681 }
682 $consel[]=array($arvin[$lista][0],"$PNE","",$arvin[$lista][($z+1)],$cifra[$lista][($z+1)],$quozienti[$lista][$z]);
683 }//else{
684*/
685
686 if ($val and $key!=$gruppo and $consin) {$conselsin[]=array("$CSEC",$desgruppi[$key]); $arcansin[]=$desgruppi[$key];}
687foreach ($seggimin as $lista=>$val)
688 if(isset($oldlstgrp[$lista]) and !isset($oldseggi[$lista])) {$oldseggi[$lista]=$val;
689}
690 if($val==0){
691 if($ultimo==''){
692 foreach($oldlists as $lst=>$vot)
693 {
694if (!isset($quozienti[$lst][($val)])) $quozienti[$lst][($val)]=$vot;
695 if ($oldlstgrp[$lst]!= $key or !isset($oldseggi[$lst]) or $oldseggi[$lst]==0) continue;
696 if($ultimo=='') $ultimo=$lst;
697 if($quozienti[$ultimo][($val)]==$last[$lst])
698 {
699 if($lists[$ultimo]==$lists[$lst]) $mex="Per attribuire l'ultimo seggio ᅵ necessario un sorteggio tra la lista n. $ultimo e la lista n. $lst";
700 elseif($lists[$ultimo]>$lists[$lst]) {$ultimo=$lst;$mex="";}
701 }
702 if ($quozienti[$ultimo][($val)]> $last[$lst]) {$ultimo=$lst;$mex="";}
703 }$lst=$ultimo;
704 if($ultimo and $consin){
705# if($conselb[$ttl[($lst-1)]][2]>1) $conselb[$ttl[($lst-1)]][2]--;else $conselb[$ttl[($lst-1)]][2]='';
706# $daunset[]=$tt[($lst-1)];
707 if($conselb[$ttl[($lst)]][2]>1) $conselb[$ttl[($lst)]][2]--;else $conselb[$ttl[($lst)]][2]='';
708 $daunset[]=$tt[($lst)];
709 $conselsin[]=array("$CSEC",$desgruppi[$key]);
710 $arcansin[]=$desgruppi[$key];
711 }
712 }
713 }
714#if($key!=$gruppo){
715###############
716#foreach($collegate
717 foreach ($seggimin as $lista=>$val){
718 if($ultimo==$lista and $key!=$gruppo and $consin) $val--;
719 }
720################
721 foreach ($seggimin as $lista=>$val){
722 if($ultimo==$lista and $key!=$gruppo and $consin) $val--;
723
724
725 for ($z=0;$z<$val;$z++){
726 if ($z) $conselb[]=array("","","",$arper[$lista][($z+1)],$cifra[$lista][($z+1)],number_format($quozienti[$lista][$z],2));
727 else{
728 if(!isset($arper[$lista][($z+1)])) $arper[$lista][($z+1)]=0;
729 if(!isset($cifra[$lista][($z+1)])) $cifra[$lista][($z+1)]=0;
730 $conselb[]=array($arper[$lista][0],$percliste[$lista],$val,$arper[$lista][($z+1)],$cifra[$lista][($z+1)],number_format($quozienti[$lista][$z],2));
731 $ttl[$lista]=(count($conselb)-1);
732########
733# echo "<br>".$tt[$lista]." arper --- $gruppo --$ultimo--$key--".$arper[$lista][0];
734 }
735 }
736 if (isset($oldlists[$lista]))
737 {
738 $tt[$lista]=(count($conselb)-1);
739 if($z) $last[$lista]=$quozienti[$lista][($z-1)]; else $last[$lista]=0;
740
741 }
742 if($val){
743 if(!isset($arper[$lista][($z+1)])) $arper[$lista][($z+1)]=0;
744 if(!isset($cifra[$lista][($z+1)])) $cifra[$lista][($z+1)]=0;
745 if(!isset($quozienti[$lista][$z])) $quozienti[$lista][$z]=0;
746 $conselb[]=array($arper[$lista][0],"$PNE","",$arper[$lista][($z+1)],$cifra[$lista][($z+1)],number_format($quozienti[$lista][$z],2));
747 }
748 }
749# }//chiude if $key
750 }//chiude foreach gruppomin
751# }
752 echo "<table summary=\"Tabella dei consiglieri eletti\" class=\"table-docs\" cellspacing=\"0\" cellpadding=\"2\" border=\"1\" rules=\"all\">";
753 echo "<tr class=\"bggray\"><td scope=\"row\"><b>";
754 echo _SINDACO.": ".$desgruppi[$gruppo]."</b></td></tr></table>";
755 if(isset($daunset)){
756 if ((sort($daunset,SORT_NUMERIC))==false) echo "Errore di programma!";
757 ELSE {
758 $tmpda=array_reverse($daunset);
759 foreach($tmpda as $key=>$val) {
760 $conselb[$val][0]=$conselb[($val+1)][0];$conselb[$val][1]=$conselb[($val+1)][1];
761 unset($conselb[($val+1)]);
762 }
763 }
764 }#foreach($conselb as $key=>$val) if($val[2]) echo "$x) ".$val[0]."--".$val[2]."<br/>"; else echo "passa".$x++;
765 if (!$premio)
766 {
767 foreach($conselb as $key=>$val)
768 {
769 if ($val[2]){
770 $nlst=intval($val[0]);
771 $arlisdesv[]=$val[0];
772 $arlissegv[]=$val[2];
773 }
774 if($listagruppo[$nlst]!=$gruppo) continue;
775 $consel[]=array($val[0],$val[1],$val[2],$val[3],$val[4],$val[5]);
776 }
777 }
778
779 if (isset($conselsin)) foreach($conselsin as $key=>$val)
780 {
781 $consel[]=array($val[0],$val[1]);
782 }
783 foreach($conselb as $key=>$val)
784 {
785 if ($val[2]){
786 $nlst=intval($val[0]);
787 $arlisdesp[]=$val[0];
788 $arlissegp[]=$val[2];
789 }
790 if($listagruppo[$nlst]==$gruppo) continue;
791 $consel[]=array($val[0],$val[1],$val[2],$val[3],$val[4],$val[5]);
792 }
793
794// plotgraf($descrsind,$arlisdesv,$arlissegv,$arlisdesp,$arlissegp,$arcansin); // per grafico
795 stampalista($consel);
796 unset($_SESSION['ballo1']);unset($_SESSION['ballo2']);unset($_SESSION['grp1']);unset($_SESSION['grp2']);
797}
798// Grafico
799function plotgraf($descrsind,$arlisdes,$arlisseg,$arlisdesp,$arlissegp,$arcansin){
800 //echo "sindaco: $descrsind<br/>";
801/* foreach($arlisdes as $key=>$val){
802 echo "key:$key -- val:$val seggi:".$arlisseg[$key]."<br/>";
803 }
804 echo "<br/><br/>";
805 foreach($arlisdesp as $key=>$val){
806 echo "key:$key -- val:$val seggi:".$arlissegp[$key]."<br/>";
807 } */
808 foreach($arlisdes as $key=>$val){
809 if($arlisseg[$key]=='1') $vocale="o"; else $vocale='';
810
811 $lista[]="$val \n [ ".$arlisseg[$key]." seggi".$vocale." ]";
812 $seggin[]=$arlisseg[$key]." seggi".$vocale."";
813 //echo "La lista $val ottiene ".$arlisseg[$key]." seggi.<br/>";
814 }
815 foreach($arcansin as $val) {
816 $seggin[]="1 seggio";
817 $arlisseg[]=1;
818 $lista[]=$val ."\n [ 1 seggio ]" ;
819 //echo "Il candidato sindaco $val e' eletto consigliere.<br/>";
820}
821$sindaco=urlencode($descrsind);
822
823$seggi=serialize($arlisseg);
824$seggi=urlencode($seggi);
825$seggin=serialize($seggin);
826$seggin=urlencode($seggin);
827$lista=serialize($lista);
828$lista=urlencode($lista);
829$title="Proiezione Composizione Consiglio Comunale";
830echo "<table><tr><td>
831 <img src='modules/Elezioni/grafici/consiglio.php?title=$title&amp;seggi=$seggi&amp;seggin=$seggin&amp;lista=$lista&amp;sindaco=$sindaco' alt=\"Grafico\" /></td></tr></table>";
832
833
834
835}
836?>
Note: See TracBrowser for help on using the repository browser.