Changeset 100


Ignore:
Timestamp:
May 19, 2011, 10:12:43 PM (13 years ago)
Author:
roby
Message:
  • modifiche alla funzione di calcolo d'hondt
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/client/modules/Elezioni/consiglieri.php

    r94 r100  
    417417
    418418#$res_val = mysql_query("SELECT sum(validi_lista) from ".$prefix."_ele_sezioni where id_cons='$id_cons'",$dbi);
    419 $res_val = mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_lista where id_cons='$id_cons'",$dbi);
     419$res_val = mysql_query("SELECT sum(voti) from ".$prefix."_ele_voti_gruppo where id_cons='$id_cons'",$dbi);
    420420list($validi) = mysql_fetch_row($res_val);
    421421
     
    435435    $lists[$num_lista]=$voti;
    436436    $groups[($num_gruppo)]+=$voti;
    437   }else $validi-=$voti;
     437  }else $validi-=$voti; //maggio 2011: verificare questa sottrazione, non mi convince
    438438}   
    439439$descrsind=$desgruppi[$gruppo];
     
    465465                 $groups[$gruppo]+=$lists[$lst];
    466466        }
    467  ////da qui     
    468 
    469     foreach ($collperd as $lst)
    470         if (isset($lists[$lst])){
    471                 $oldlstgrp[$lst]=$listagruppo[$lst];
    472                  $listagruppo[$lst]=$gruppoperd;
    473                  $oldlists[$lst]=$lists[$lst];
    474                  $groups[$gruppoperd]+=$lists[$lst];
    475                  $groups[$oldlstgrp[$lst]]-=$lists[$lst];
    476         }   
    477 
    478 ////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.
    479 
    480 #controlla se la percentuale del gruppo vincente e' tra il 40 e il 60% o il sindaco e' eletto al secondo turno
    481 #e se nessun altro gruppo ha superato il 50% assegna il premio di maggioranza
    482 #e se nessun altro gruppo ha superato il 50% e nessuno ha ottenuto piu' del 60% dei seggi, assegna il premio di maggioranza
    483 
     467 ////maggio 2011: da qui       
    484468$consmin=$numcons;
    485469$gruppomin=calcoloseggi($groups,$consmin,0);
     
    493477
    494478$candidati=array();
     479//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%
     480//maggio 2011: da qui
     481if(!isset($groups[$gruppoperd])) $groups[$gruppoperd]=0;
     482    foreach ($collperd as $lst)
     483        if (isset($lists[$lst])){
     484                $oldlstgrp[$lst]=$listagruppo[$lst];
     485                 $listagruppo[$lst]=$gruppoperd;
     486                 $oldlists[$lst]=$lists[$lst];
     487                 $groups[$gruppoperd]+=$lists[$lst];
     488                 $groups[$oldlstgrp[$lst]]-=$lists[$lst];
     489        }   
     490
     491////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.
     492
     493#controlla se la percentuale del gruppo vincente e' tra il 40 e il 60% o il sindaco e' eletto al secondo turno
     494#e se nessun altro gruppo ha superato il 50% assegna il premio di maggioranza
     495#e se nessun altro gruppo ha superato il 50% e nessuno ha ottenuto piu' del 60% dei seggi, assegna il premio di maggioranza
     496
     497
    495498if ($premio) {
    496499    $sindaco[$gruppo]=$groups[$gruppo]; $groups[$gruppo]=0;
     
    598601                        foreach($oldlists as $lst=>$vot)
    599602                        {               
    600                                 if ($oldlstgrp[$lst]!= $key or $oldseggi[$lst]==0) continue;
     603                                if ($oldlstgrp[$lst]!= $key or !isset($oldseggi[$lst]) or $oldseggi[$lst]==0) continue;
    601604                                if($ultimo=='') $ultimo=$lst;   
    602605                                if($quozienti[$ultimo][($val-1)]==$last[$lst])
     
    634637        {
    635638                $tt[$lista]=(count($conselb)-1);
    636                 $last[$lista]=$quozienti[$lista][($z-1)];
     639                if($z) $last[$lista]=$quozienti[$lista][($z-1)]; else $last[$lista]=0;
    637640               
    638641        }
Note: See TracChangeset for help on using the changeset viewer.