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