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

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