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

Last change on this file since 250 was 225, checked in by roby, 10 years ago

client: ulteriore modifica della funzione di proiezione del consiglio comunale

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