Ignore:
Timestamp:
Jun 1, 2014, 10:33:56 PM (10 years ago)
Author:
roby
Message:

admin: aggiunta tabella per i controlli di stato della congruenza dei voti inseriti - evita il ricalcolo per tutte le sezioni ad ogni inserimento (da completare ma funzionante)

client: rivista la funzione di proiezione dell'attribuzione seggi

File:
1 edited

Legend:

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

    r220 r221  
    210210    {
    211211$seggimag[$lisvin]=number_format($numcons*($gruppo[$listagruppo[$lisvin]]*100/$validi)/100);
    212 echo "<br> seggimag:".$seggimag[$lisvin];
     212##echo "<br> seggimag:".$seggimag[$lisvin];
    213213$num_cons=number_format($numcons-$seggimag[$lisvin]);
    214214#       $num_cons=$numcons;
     
    435435  }
    436436}   
    437 ###################
     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}
    438445        $elencog=array();
    439446        $sindseggiopre=array();
    440447        foreach($groups as $testk=>$valk) if($testk!=$gruppo) {$elencog[$testk]=$valk;}
    441448        $testseggio=calcoloseggi($elencog,floor($numcons*(100-$suppremio)/100),0);
    442         foreach($testseggio as $testk=>$valk) if($valk) {$sindseggiopre[]=$testk;}
     449        foreach($testseggio as $testk=>$valk) {if($valk) $sindseggiopre[]=$testk; }
    443450#foreach ($gruppomin as $key=>$val) {if (($numcons*60/100)<$val) $nopremio=0;if($key!=$gruppo){echo "<br>gruppomin: $key -- $val";}}
    444451##################
     
    486493$groupsappo=$groups;
    487494$candidati=array();
     495$grpperd=$gruppoperd;
    488496//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%
    489497//maggio 2011: da qui
     
    502510if ($premio) {
    503511#########
     512################### carica array ...
     513/*      $elencog=array();
     514        $sindseggiopre=array();
     515        foreach($groups as $testk=>$valk) if($testk!=$grpperd) {$elencog[$testk]=$valk;}
     516        $testseggio=calcoloseggi($elencog,ceil($numcons*($suppremio)/100),0);
     517        foreach($testseggio as $testk=>$valk) {if($valk) $sindseggio[]=$testk; echo "<br>testkpre: $testk - $valk";}
     518*/#foreach ($gruppomin as $key=>$val) {if (($numcons*60/100)<$val) $nopremio=0;if($key!=$gruppo){echo "<br>gruppomin: $key -- $val";}}
     519##################
    504520################### nell'array sindseggio vengono inseriti i candidati sindaco che restano senza seggio per gli apparentamenti
    505521        $elencog=array();
    506522        $testseggio=array();
    507523        $sindseggio=array();
    508         foreach($groups as $testk=>$valk) if($testk!=$gruppo) {$elencog[$testk]=$valk;}
    509         $testseggio=calcoloseggi($elencog,floor($numcons*(100-$suppremio)/100),0);
    510         foreach($sindseggiopre as $testk=>$valk) {if(!$testseggio[$valk]) $sindseggio[$valk]=$valk;}
     524        foreach($groups as $testk=>$valk) {if($testk!=$gruppo) $elencog[$testk]=$valk;}
     525        $perdente[$gruppoperd]=$groups[$gruppoperd];
     526        $testseggio=calcoloseggi($perdente,floor($numcons*($suppremio)/100),0);
     527#       foreach($testseggio as $testk=>$valk) echo "<br>testgruppo: $valk - $testk - $gruppoperd";
     528        foreach($sindseggiopre as $testk=>$valk){ if(!$testseggio[$valk]) $sindseggio[$valk]=$valk;}
    511529###########
    512530    $sindaco[$gruppo]=$groups[$gruppo]; $groups[$gruppo]=0;
     
    532550                $percliste[$x]="<br/>$y (".number_format($y*100/$validi,2)."%)";
    533551                $z++;
    534         }
     552##      }
    535553        $seggimag=array();
    536         $x=0;
     554        $x=0;#foreach($listemag as $kkk=>$vvv) echo "<br> listemag: $kkk - $vvv - $grp - $gruppo -val=$val";
    537555#####25 maggio 2014 - il candidato sindaco non eletto ha diritto al seggio anche se di maggioranza
    538556### individua ultimi seggi assegnati a liste collegate
    539         $listdec =array();
    540         $seggitmp=calcoloseggi($listemag,$val,1);
    541         foreach ($seggitmp as $keyl=>$vall){ #echo "<br>sindseggio: $key - $val";
     557if($grp==$gruppo){
     558        $listdec =array();
     559        $seggitmp=calcoloseggi($listemag,$val,1); ## foreach ($grpinc as $keyl=>$vall) echo "<br> seggi: $keyl - $vall";
     560        foreach ($seggitmp as $keyl=>$vall){#echo "<br> lista: $vall - $keyl - $grp - $gruppo";
     561        if($vall==0) continue;
    542562#       foreach ($sindseggio as $key=>$val){
    543                 if (in_array($keyl,$collegate) and ! isset($tempo[$keyl])) $tempo[$keyl]=number_format($quozienti[$keyl][$vall-1],2);
    544 #               echo "<br>lista:$key";
     563#               if (in_array($keyl,$collegate) and ! isset($tempo[$keyl])) $tempo[$keyl]=number_format($quozienti[$keyl][$vall-1],2);
     564
    545565                $res = mysql_query("SELECT id_gruppo from ".$prefix."_ele_lista where num_lista='$keyl' and id_cons='$id_cons'",$dbi);
    546566                list($tempig)=mysql_fetch_row($res);
    547567                $res = mysql_query("SELECT num_gruppo from ".$prefix."_ele_gruppo where id_gruppo='$tempig' and id_cons='$id_cons'",$dbi);
    548                 list($tempng)=mysql_fetch_row($res);
    549                 if (in_array($tempng,$sindseggio)) $listdec[]=$keyl;
    550 }
    551 
    552                 /*              while(){
     568                list($tempng)=mysql_fetch_row($res); 
     569                if (in_array($tempng,$grpinc)) {$listdec[$tempng][]=$keyl;}
     570} 
     571}
     572}               /*              while(){
    553573                        if(isset($tempo[$tempnl])) echo "<br> tempnl: $tempnl -- key:$key".$tempo[$key];
    554574                }
    555575*/
    556576##########
    557         $seggimag=calcoloseggi($listemag,$val,1);
    558 
    559         foreach ($seggimag as $key=>$val){
    560         ## condizione per esclusione di un seggio da destinare al sindaco non eletto
    561                 if(in_array($key,$listdec)) $val--;
     577#echo "<br> key: $key2 - $val2";
     578        $seggimag=calcoloseggi($listemag,$val,1);#foreach ($grpinc as $keyl=>$vall)
     579
     580####cerca ultimo seggio assegnato per gruppo di liste collegate al primo turno
     581        foreach ($seggimag as $key2=>$val2){ if($val2==0) continue;
     582#       echo "<br>quozienti - $key2:".$quozienti[$key2][($val2)];
     583        if(!isset($ultquoz[($grpinc[$key2])]) and $grpinc[$key2]) {$ultquoz[($grpinc[$key2])]=$quozienti[$key2][($val2-1)];$lastlist[($grpinc[$key2])]=$key2;}
     584        elseif ($ultquoz[($grpinc[$key2])]>$quozienti[$key2][($val2-1)]) {$ultquoz[($grpinc[$key2])]=$quozienti[$key2][($val2-1)];$lastlist[($grpinc[$key2])]=$key2;}
     585        #       if(in_array($key,$listdec)) $val--;
     586} #foreach($lastlist as $keyl=>$vall) echo "<br> seggi: $keyl - $vall";
     587        #####
     588        foreach ($seggimag as $key2=>$val2){
     589        ## condizione per esclusione di un seggio da destinare al sindaco non eletto    in_array($key2,$lastlist)
     590                foreach($lastlist as $key3=>$val3){
     591                if($key2==$val3) {
     592                        $arappo=array_shift($arvin[$key2]);
     593                        foreach($listdec as $kk=>$vv) {foreach($vv as $vvk=>$vvv) if ($vvv==$key2) $tmpgrp=$kk; }
     594                        if($tmpgrp){
     595                        array_unshift($arvin[$key2],$desgruppi[$tmpgrp]); array_unshift($arvin[$key2],$arappo);array_unshift($cifra[$key2],"--");array_unshift($cifra[$key2],"--");
     596                        }
     597                        }}
     598                #$val--;
    562599        ## fine condizione - impostare variabile in db per differenziare il comportamento per consultazioni diverse
    563                 for ($z=0;$z<$val;$z++){
    564                         if ($z) $consel[]=array("","","",$arvin[$key][($z+1)],$cifra[$key][($z+1)],number_format($quozienti[$key][$z],2));
     600                for ($z=0;$z<$val2;$z++){
     601                        if ($z) $consel[]=array("","","",$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
    565602                        else
    566603                        {
    567                         $consel[]=array($arvin[$key][0],$percliste[$key],$val,$arvin[$key][($z+1)],$cifra[$key][($z+1)],number_format($quozienti[$key][$z],2));
    568                         $arlisdesv[]=$arvin[$key][0];$arlissegv[]=$val;$arlisnumv[]=$key;
     604                        $consel[]=array($arvin[$key2][0],$percliste[$key2],$val2,$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
     605                        $arlisdesv[]=$arvin[$key2][0];$arlissegv[]=$val2;$arlisnumv[]=$key2;
    569606                        }
    570607                }
    571608        $x++;
    572         if($val)
    573         $consel[]=array($arvin[$key][0],"$PNE","",$arvin[$key][($z+1)],$cifra[$key][($z+1)],number_format($quozienti[$key][$z],2));
     609        if($val2)
     610        $consel[]=array($arvin[$key2][0],"$PNE","",$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
    574611        }
    575612}
     
    724761                }
    725762        }
    726 #### condizione di aggiunta candidato sindaco non eletto in elenco consiglieri 
    727         foreach($sindseggio as $key=>$val)      if ($consin) {$conselsin[]=array("$CSEC",$desgruppi[$key]); $arcansin[]=$desgruppi[$key];}
    728 ####
    729 
    730763       
    731764        if (isset($conselsin)) foreach($conselsin as $key=>$val)
Note: See TracChangeset for help on using the changeset viewer.