Changeset 383


Ignore:
Timestamp:
Nov 15, 2022, 4:26:53 PM (2 years ago)
Author:
roby
Message:
  • Admin:
  • aggiornamento del campo num_gruppo nella tabella ele_lista
  • modifica della funzione di aggiornamento
  • Client
  • Aggiunta la funzione di calcolo dell'assegnazione dei seggi secondo la legge regionale siciliana (da completare, non gestisce tutti i casi particolari)
Location:
trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/modules/Elezioni/aggiornadb.php

    r379 r383  
    33#imposta il charset su utf8, qualsiasi altro valore per cambiarlo in latin1;
    44$newcs='utf8';
    5 
    6 @require_once("config.php");
     5/*
     6@require_once("..\..\config.php");
    77        try{
    88                $dbi = new PDO("mysql:host=$dbhost", $dbuname, $dbpass, array(PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_ERRMODE=>PDO::ERRMODE_EXCEPTION));
     
    1414            die( $sql . "<br>" . $e->getMessage());
    1515        }
    16 
     16*/
    1717
    1818###############
     
    4747        return $ret;
    4848}
     49
    4950function aggiorna_index($tab,$ind,$dbi,$sql2,$num){
    5051        $ret=0;
     
    173174{
    174175        $sql="ALTER TABLE `".$prefix."_ele_lista` ADD `num_gruppo` INT(2) UNSIGNED NOT NULL AFTER `id_gruppo`";
    175         $ret=aggiorna($sql,$dbi,'',$num);
    176 }else echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_lista non richiede questo aggiornamento</span><br>";
    177 
     176        $sql2="update `".$prefix."_ele_lista` as t1 set t1.num_gruppo=(select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) where t1.num_gruppo=0";
     177        $ret=aggiorna($sql,$dbi,$sql2,$num);
     178}else{
     179        $sql="update `".$prefix."_ele_lista` as t1 set t1.num_gruppo=(select t2.num_gruppo from `".$prefix."_ele_gruppo` as t2 where t2.id_gruppo=t1.id_gruppo) where t1.num_gruppo=0";
     180        $ret=aggiorna($sql,$dbi,'',$num);
     181echo "<br><span style=\"color: green;\">- La tabella ".$prefix."_ele_lista non richiede questo aggiornamento</span><br>";
     182}
    178183if(!controllo($prefix.'_ele_lista','num_circ',++$num))
    179184{
  • trunk/admin/modules/Elezioni/aggiornamento.php

    r382 r383  
    5959        ele();
    6060        echo "<hr><br><h2 style=\"text-align:center;\">Revisione installata: $myrev<br>Revisione disponibile: $newrev</h2><br><hr>";
     61#####   
     62        echo "<style>
     63        body
     64        {
     65         width:100%;
     66         margin:0 auto;
     67         padding:0px;
     68         font-family:helvetica;
     69         background-color:#A9D0F5;
     70        }
     71        #wrapper
     72        {
     73         text-align:center;
     74         margin:0 auto;
     75         padding:0px;
     76         width:995px;
     77        }
     78        #wrapper h1
     79        {
     80         margin-top:100px;
     81         font-size:40px;
     82        }
     83        #wrapper h1 p
     84        {
     85         font-size:17px;
     86        }
     87        #wrapper #feed_div
     88        {
     89         background-color:white;
     90         width:550px;
     91         height:320px;
     92         overflow-y:scroll;
     93         margin-left:220px;
     94         margin-top:20px;
     95         text-align:left;
     96         border:1px solid silver;
     97         padding:10px;
     98        }
     99        #wrapper #feed_div h2
     100        {
     101         font-size:17px;
     102        }
     103        #wrapper #feed_div .title a
     104        {
     105         text-decoration:none;
     106         color:#0080FF;
     107        }
     108        </style>";
     109        echo "<div id=\"wrapper\">";
     110        echo "<br><br><p>Log delle modifiche (massimo 100 righe)</p>";
     111        echo "<div id=\"feed_div\">";
     112        $rss = simplexml_load_file("$host/ele3/log?format=rss&mode=stop_on_copy&rev=$newrev&stop_rev=$myrev&format=rss&max=100&verbose=on#");
     113        #$rss = simplexml_load_file("$host/ele3/log?action=follow_copy&mode=stop_on_copy&rev=$newrev&stop_rev=$myrev&limit=100&verbose=on#");
     114
     115        echo '<h2>'. $rss->channel->title . '</h2>';   
     116        foreach ($rss->channel->item as $item)
     117        {
     118         echo '<p class="title"><a href="'. $item->link .'">' . $item->title . "</a></p>";
     119        #$str=preg_replace("--", "<br>--", $item->description );
     120        $str=preg_replace('/\s\--/','<br>--',$item->description);
     121        #$str=preg_replace("[^A-Za-z0-9\-]", "<br>", $item->description );
     122        # $str=preg_replace('/\s\`echo "\040"`/','<br>--',$item->description);
     123        # $str=htmlentities($item->description);
     124         echo "<p class='desc'>" . $str . "</p>";
     125        }
     126        echo "</div>";
     127        echo "</div>"; 
     128#####   
    61129        $file = file("$host/ele3/log/?format=changelog&limit=100&mode=stop_on_copy&rev=$newrev&stop_rev=$myrev&verbose=off");   
    62130#       echo "<br>Procedo con l'aggiornamento? ";
     
    64132        echo "<input type=\"hidden\" name=\"id_cons_gen\" value=\"$id_cons_gen\"><input type=\"hidden\" name=\"procedi\" value=\"1\">";
    65133        echo "<br><table align=\"center\"><tr><td><h3>Procedo con l'aggiornamento?</h3></td><td><input type=\"submit\" name=\"vai\" value=\""._OK."\"></td></tr></table></form>";
    66         echo "<br><br><p>Log delle modifiche (massimo 100 righe)</p>";
    67         echo "<br><textarea name=\"log\" rows=\"15\" cols=\"150\">";
     134/*      echo "<br><textarea name=\"log\" rows=\"15\" cols=\"150\">";
    68135        foreach ($file as $line_num => $line) echo "$line";
    69136
    70137        echo "</textarea>";
    71         ############à
     138        ############à */
    72139        $filename = "$host/ele3/changeset?format=zip&new=$newrev&new_path=%2F&old=$myrev&old_path=%2F";
    73140
     
    86153                mkdir($path, 0777, true);
    87154        }
    88         $newfile=$path."aggiornamento".$newrev;
     155/*      $newfile=$path."aggiornamento".$newrev;
    89156        copy($filename,$newfile);
    90157        $za->open($newfile);
     
    95162                print_r( $stat['name'] . PHP_EOL );
    96163        }
    97                 ############
    98                 include("footer.php");die();
    99         }
    100         $admin =  '../admin';
    101         $client = '../client';
     164        */      ############
     165        include("footer.php");die();
     166}
     167$admin =  '../admin';
     168$client = '../client';
    102169#       $path = "/tmp/files";
    103         $backup = "./backup".$myrev;
    104         $path = "./files/";
    105         $righe='';
     170$backup = "./backup".$myrev;
     171$path = "./files/";
     172$righe='';
    106173/*      if(file_exists($path)) {
    107                 $i=1;
    108                 $ispath=$path;
    109                 while(file_exists($ispath))
    110                         $ispath=$path.$i++;
    111                 $path.=--$i.'/';
    112         }else $path.='/';
    113                 if (!is_dir($path)) {
    114                         if(false===rename($path,$path."_da_".$myrev."_a_".$newrev)) {
    115                                 $errmex="E' presente un file di nome $path nella cartella admin, va cancellato per poter aggiornare";
    116                                 Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
    117                         }
    118                         $righe.= "<br>La cartella $path non Ú presente, procedo con la creazione";
    119                         mkdir($path, 0777, true);
    120                 }
    121                 else
    122                         $righe.= "<br>La cartella $path Ú già presente, procedo con l'aggiornamento";
    123         }else{
    124         $righe.= "<br>Creo la cartella $path";
    125         mkdir($path, 0777, true);*/
    126         $trunk=$path.'trunk';
    127         $trunkadm=$trunk.'/admin';
    128         $trunkcli=$trunk.'/client';
    129         #       }
    130         #       if(!file_exists($trunk)) if (false === mkdir($trunk)) { die("Impossibile creare la cartella trunk, il programma viene interrotto");}
    131         #       if(!copy($file,$trunkadm)){ $righe.= "<br>Errore durante la copia del pacchetto di aggiornamento<br>";}         
    132         // Nome del file zip : https://trac.eleonline.it/ele3/changeset?format=zip&new=377&new_path=%2F&old=360&old_path=%2F
    133         # https://trac.eleonline.it/ele3/browser/trunk?format=zip&rev=377
    134        
    135         $filename = "$host/ele3/changeset?format=zip&new=$newrev&new_path=%2F&old=$myrev&old_path=%2F";
    136         $newfile=$path."aggiornamento".$newrev;
    137         if(!copy($filename,$newfile)){
    138                 $errmex="Errore durante la copia del pacchetto $newfile - aggiornamento interrotto";
    139                 Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
    140         }
    141         $zip = new ZipArchive;
    142         $res = $zip->open($newfile);
     174        $i=1;
     175        $ispath=$path;
     176        while(file_exists($ispath))
     177                $ispath=$path.$i++;
     178        $path.=--$i.'/';
     179}else $path.='/';
     180        if (!is_dir($path)) {
     181                if(false===rename($path,$path."_da_".$myrev."_a_".$newrev)) {
     182                        $errmex="E' presente un file di nome $path nella cartella admin, va cancellato per poter aggiornare";
     183                        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
     184                }
     185                $righe.= "<br>La cartella $path non Ú presente, procedo con la creazione";
     186                mkdir($path, 0777, true);
     187        }
     188        else
     189                $righe.= "<br>La cartella $path Ú già presente, procedo con l'aggiornamento";
     190}else{
     191$righe.= "<br>Creo la cartella $path";
     192mkdir($path, 0777, true);*/
     193$trunk=$path.'trunk';
     194$trunkadm=$trunk.'/admin';
     195$trunkcli=$trunk.'/client';
     196#       }
     197#       if(!file_exists($trunk)) if (false === mkdir($trunk)) { die("Impossibile creare la cartella trunk, il programma viene interrotto");}
     198#       if(!copy($file,$trunkadm)){ $righe.= "<br>Errore durante la copia del pacchetto di aggiornamento<br>";}         
     199// Nome del file zip : https://trac.eleonline.it/ele3/changeset?format=zip&new=377&new_path=%2F&old=360&old_path=%2F
     200# https://trac.eleonline.it/ele3/browser/trunk?format=zip&rev=377
     201
     202$filename = "$host/ele3/changeset?format=zip&new=$newrev&new_path=%2F&old=$myrev&old_path=%2F";
     203$newfile=$path."aggiornamento".$newrev;
     204if(!copy($filename,$newfile)){
     205        $errmex="Errore durante la copia del pacchetto $newfile - aggiornamento interrotto";
     206        Header("Location: admin.php?op=aggiorna&id_cons_gen=$id_cons_gen&errmex=$errmex"); exit;
     207}
     208$zip = new ZipArchive;
     209$res = $zip->open($newfile);
    143210############
    144211#$za = new ZipArchive();
     
    216283}
    217284$righedb='';
    218 if(file_exists('./files/trunk/admin/modules/Elezioni/aggiornadb.php')) {
     285if(file_exists("$trunkadm/modules/Elezioni/aggiornadb.php")) {
    219286        $righe.= "<br><br><b>Aggiornamento del database</b>";
    220287        ob_start();
     
    225292$righe.=$righedb;
    226293$righe.= "<br><br><b>Operazioni di aggiornamento concluse.</b>";
    227 $dir = "./files/";
    228 if(file_exists($dir)){
    229     $di = new RecursiveDirectoryIterator($dir, FilesystemIterator::SKIP_DOTS);
     294#$dir = "./files/";
     295if(file_exists($path)){
     296    $di = new RecursiveDirectoryIterator($path, FilesystemIterator::SKIP_DOTS);
    230297    $ri = new RecursiveIteratorIterator($di, RecursiveIteratorIterator::CHILD_FIRST);
    231298    foreach ( $ri as $file ) {
  • trunk/admin/modules/Elezioni/ele_lista.php

    r360 r383  
    217217
    218218function lista($ok, $do,$id_lista, $num_lista, $id_gruppo,$id_circ, $descr_lista, $simbolo,$stemma) {
    219 global $param,$bgcolor1, $bgcolor2, $prefix, $dbi, $descr_cons, $id_cons,$simbolo2,$tipo_cons,$min,$genere,$id_cons_gen;
    220 $aid=$_SESSION['aid'];
    221 $perms=ChiSei($id_cons_gen);
    222 if (!$id_gruppo) $id_gruppo=0;
    223 if ($perms >16) {
    224         if ($do == "delete") {
    225                 if ($ok !="1") {
    226                         ele();
    227                         echo "<center><br><br>"._DOMCANCELLA." "._LISTA." $descr_lista ?<br>";
    228                         echo "[ <a href=\"admin.php?op=lista&amp;id_cons_gen=$id_cons_gen&amp;min=$min&amp;id_circ=$id_circ\">"._NO."</a> ] - [<a href=\"admin.php?op=lista&amp;do=delete&amp;id_lista=$id_lista&amp;id_gruppo=$id_gruppo&amp;id_circ=$id_circ&amp;ok=1&amp;min=$min&amp;id_cons_gen=$id_cons_gen\">"._YES."</a> ]";exit;
    229                 }else{
    230                         $sql="delete from ".$prefix."_ele_lista where id_lista='$id_lista'";
    231                         $result = $dbi->prepare("$sql");
    232                         $result->execute();                                             
    233                         Header("Location: admin.php?op=lista&id_circ=$id_circ&id_cons_gen=$id_cons_gen&min=$min");
    234                 }
    235         }elseif ($do == "add") {
    236                 if ($descr_lista and ($id_gruppo or ($genere!=3 and $genere!=5))) {
     219        global $param,$bgcolor1, $bgcolor2, $prefix, $dbi, $descr_cons, $id_cons,$simbolo2,$tipo_cons,$min,$genere,$id_cons_gen;
     220        $aid=$_SESSION['aid'];
     221        $perms=ChiSei($id_cons_gen);
     222        if (!$id_gruppo) $id_gruppo=0;
     223        $sql="select num_gruppo from ".$prefix."_ele_gruppo where id_gruppo='$id_gruppo'";
     224        $result1 = $dbi->prepare("$sql");
     225        $result1->execute();                                           
     226        list($num_gruppo)=$result1->fetch(PDO::FETCH_NUM);
     227        if ($perms >16) {
     228                if ($do == "delete") {
     229                        if ($ok !="1") {
     230                                ele();
     231                                echo "<center><br><br>"._DOMCANCELLA." "._LISTA." $descr_lista ?<br>";
     232                                echo "[ <a href=\"admin.php?op=lista&amp;id_cons_gen=$id_cons_gen&amp;min=$min&amp;id_circ=$id_circ\">"._NO."</a> ] - [<a href=\"admin.php?op=lista&amp;do=delete&amp;id_lista=$id_lista&amp;id_gruppo=$id_gruppo&amp;id_circ=$id_circ&amp;ok=1&amp;min=$min&amp;id_cons_gen=$id_cons_gen\">"._YES."</a> ]";exit;
     233                        }else{
     234                                $sql="delete from ".$prefix."_ele_lista where id_lista='$id_lista'";
     235                                $result = $dbi->prepare("$sql");
     236                                $result->execute();                                             
     237                                Header("Location: admin.php?op=lista&id_circ=$id_circ&id_cons_gen=$id_cons_gen&min=$min");
     238                        }
     239                }elseif ($do == "add") {
     240                        if ($descr_lista and ($id_gruppo or ($genere!=3 and $genere!=5))) {
     241                                $stemmablob='';
     242                                $stemmanome='';
     243                                $STEMM=$_FILES['stemma'];
     244                                $filestemma=$STEMM['tmp_name'];
     245                                $nomestemma=$STEMM['name'];
     246                                $sqlset='';
     247                                if ($filestemma){
     248                                        $fdstemma = fopen ("$filestemma", "rb");
     249                                        $stemmacontents = fread ($fdstemma, filesize ("$filestemma"));
     250                                        fclose ($fdstemma);
     251                                        $stemmablob=addslashes($stemmacontents);
     252                                        $stemmanome=addslashes($nomestemma);
     253                                }
     254                                $sql="insert into ".$prefix."_ele_lista (id_cons,num_lista,id_gruppo,num_gruppo,id_circ,descrizione,simbolo,stemma) values ('$id_cons','$num_lista','$id_gruppo','$num_gruppo','$id_circ','$descr_lista','$stemmanome','$stemmablob')";
     255                                $result = $dbi->prepare("$sql");
     256                                $result->execute();                                             
     257                                Header("Location: admin.php?op=lista&id_circ=$id_circ&min=$min&id_cons_gen=$id_cons_gen");
     258                        } else {
     259                                $mex="";
     260                                if (!$id_gruppo) $mex.="- Devi collegare la lista ad un gruppo! -";
     261                                if (!$descr_lista) $mex.="- Devi inserire il nome della lista! -";
     262                                Header("Location: admin.php?op=lista&id_circ=$id_circ&min=$min&id_cons_gen=$id_cons_gen&descr_lista=$descr_lista&id_gruppo=$id_gruppo&mex=$mex");
     263                        }
     264                }elseif ($do == "update") {
    237265                        $stemmablob='';
    238266                        $stemmanome='';
     
    242270                        $sqlset='';
    243271                        if ($filestemma){
    244                                 $fdstemma = fopen ("$filestemma", "rb");
    245                                 $stemmacontents = fread ($fdstemma, filesize ("$filestemma"));
    246                                 fclose ($fdstemma);
    247                                 $stemmablob=addslashes($stemmacontents);
    248                                 $stemmanome=addslashes($nomestemma);
    249                         }
    250                         $sql="insert into ".$prefix."_ele_lista (id_cons,num_lista,id_gruppo,id_circ,descrizione,simbolo,stemma) values ('$id_cons','$num_lista','$id_gruppo','$id_circ','$descr_lista','$stemmanome','$stemmablob')";
     272                        $fdstemma = fopen ("$filestemma", "rb");
     273                        $stemmacontents = fread ($fdstemma, filesize ("$filestemma"));
     274                        fclose ($fdstemma);
     275                        $stemmablob=addslashes($stemmacontents);
     276                        $stemmanome=($nomestemma);
     277                        $cond=", simbolo='$stemmanome', stemma='$stemmablob'";
     278                        } else {$cond='';}
     279                        $sql="update  ".$prefix."_ele_lista set  num_lista='$num_lista' , id_gruppo='$id_gruppo',num_gruppo='$num_gruppo',descrizione='$descr_lista' $cond  where id_lista='$id_lista'";
     280        #die("TEST: $sql");             
    251281                        $result = $dbi->prepare("$sql");
    252282                        $result->execute();                                             
    253283                        Header("Location: admin.php?op=lista&id_circ=$id_circ&min=$min&id_cons_gen=$id_cons_gen");
    254                 } else {
    255                         $mex="";
    256                         if (!$id_gruppo) $mex.="- Devi collegare la lista ad un gruppo! -";
    257                         if (!$descr_lista) $mex.="- Devi inserire il nome della lista! -";
    258                         Header("Location: admin.php?op=lista&id_circ=$id_circ&min=$min&id_cons_gen=$id_cons_gen&descr_lista=$descr_lista&id_gruppo=$id_gruppo&mex=$mex");
    259                 }
    260         }elseif ($do == "update") {
    261                 $stemmablob='';
    262                 $stemmanome='';
    263                 $STEMM=$_FILES['stemma'];
    264                 $filestemma=$STEMM['tmp_name'];
    265                 $nomestemma=$STEMM['name'];
    266                 $sqlset='';
    267                 if ($filestemma){
    268                 $fdstemma = fopen ("$filestemma", "rb");
    269                 $stemmacontents = fread ($fdstemma, filesize ("$filestemma"));
    270                 fclose ($fdstemma);
    271                 $stemmablob=addslashes($stemmacontents);
    272                 $stemmanome=($nomestemma);
    273                 $cond=", simbolo='$stemmanome', stemma='$stemmablob'";
    274                 } else {$cond='';}
    275                 $sql="update  ".$prefix."_ele_lista set  num_lista='$num_lista' , id_gruppo='$id_gruppo',descrizione='$descr_lista' $cond  where id_lista='$id_lista'";
    276 #die("TEST: $sql");             
    277                 $result = $dbi->prepare("$sql");
    278                 $result->execute();                                             
    279                 Header("Location: admin.php?op=lista&id_circ=$id_circ&min=$min&id_cons_gen=$id_cons_gen");
    280         }
    281 
    282 
    283 }
     284                }
     285
     286
     287        }
    284288}
    285289
  • trunk/admin/modules/Elezioni/restore.php

    r362 r383  
    103103                                        #       if(!$res_del->rowCount()) die ("delete $tbs where id_cons=$idcns--- errore di cancellazione");
    104104                                        }else $valori.= ",'".addslashes(base64_decode($val))."'";
    105                                         if($tab=='soraldo_ele_cons_comune') $valori.=",'0'";
     105#                                       else $valori.= ",''"; if($key!=9 and $tab!='soraldo_ele_gruppo')
     106#                                       if($tab=='soraldo_ele_cons_comune') $valori.=",'0'";
    106107                                $sql="insert into $tab values($valori)";
    107108                        try {                           
  • trunk/admin/versione.php

    r382 r383  
    11<?php
    22
    3 $versione = "3.0 rev 382";
     3$versione = "3.0 rev 383";
    44$version_number = $versione;
    5 $datarel = "28 ottobre 2022";
     5$datarel = "15novembre 2022";
    66$version = "Eleonline $version_number (<i>Data Release: $datarel</i>)";
    77
  • trunk/client/modules/Elezioni/consiglieri.php

    r371 r383  
    2424$result->execute();
    2525list($id_conf,$fascia) = $result->fetch(PDO::FETCH_NUM);
    26 $sql = "SELECT limite,consin,infpremio,supsbarramento,suppremio,listinfsbar,listinfconta,listsupconta,supminpremio,infminpremio from ".$prefix."_ele_conf where id_conf='$id_conf'";
     26$sql = "SELECT limite,consin,infpremio,supsbarramento,suppremio,listinfsbar,listinfconta,listsupconta,supminpremio,infminpremio,inffisso from ".$prefix."_ele_conf where id_conf='$id_conf'";
    2727$res = $dbi->prepare("$sql");
    2828$res->execute();
    29 list($limite,$consin,$infpremio,$supsbarramento,$suppremio,$listinfsbar,$listinfconta,$listsupconta,$supminpremio,$infminpremio) = $res->fetch(PDO::FETCH_NUM);
     29list($limite,$consin,$infpremio,$supsbarramento,$suppremio,$listinfsbar,$listinfconta,$listsupconta,$supminpremio,$infminpremio,$inffisso) = $res->fetch(PDO::FETCH_NUM);
    3030$numcons=0;
    3131echo "<table><tr><td align=\"center\">"._PROIEZCONS."</td></tr></table>";
     
    3333
    3434function consiglio(){
    35 global $param,$id_cons_gen, $dbi, $prefix, $id_comune, $gruppo, $numgruppo, $listecol, $id_comune, $limite,$numcons,$id_conf,$fascia,$id_cons;
     35global $param,$id_cons_gen, $dbi, $prefix, $id_comune, $gruppo, $numgruppo, $listecol, $id_comune, $limite,$numcons,$id_conf,$fascia,$id_cons,$validi;
    3636$collegate= array();
    3737$collperd= array();
     
    5454
    5555        list($capoluogo) = $result->fetch(PDO::FETCH_NUM);
    56         $sql = "select fascia_capoluogo from ".$prefix."_ele_conf where id_conf='$conf'";
     56        $sql = "select inffisso,fascia_capoluogo from ".$prefix."_ele_conf where id_conf='$conf'";
    5757$result = $dbi->prepare("$sql");
    5858$result->execute();
    5959
    60         list($fascia2) = $result->fetch(PDO::FETCH_NUM);
     60        list($inffisso,$fascia2) = $result->fetch(PDO::FETCH_NUM);
    6161        if($fascia<$fascia2 and $capoluogo) $fascia=$fascia2;
    6262
     
    122122                        $numgruppo=$num_gruppo1;
    123123        }
    124         if ($fascia<=$limite and $numgruppo) consmin($fascia,$numgruppo);
    125         elseif ($gruppo>0) conssup($fascia,$gruppo,$collegate,$collperd,$primoturno);
     124        if ($fascia<=$limite and $numgruppo) {
     125                if($inffisso)
     126                        consmin4($fascia,$numgruppo);
     127                else
     128                        consmin($fascia,$numgruppo);
     129        }elseif ($gruppo>0) conssup($fascia,$gruppo,$collegate,$collperd,$primoturno);
    126130        elseif ($numgruppo>0){
    127131                $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'].")";
     
    204208}
    205209
     210function consmin4($fascia,$grp) {
     211global $id_cons, $prefix,$dbi,$num_candlst,$PNE,$CSEC,$validi,$consin,$numcons,$inffisso;
     212global $infpremio,$fisso,$sincons, $votol;
     213if (!isset($fisso)) $fisso=0; #se fisso=1 il premio di maggioranza Ú fisso
     214if (isset($votol)) {$votolista=$votol; $fisso=$votol;} #se votolista=1 c'e' voto di lista
     215if (!isset($sincons)) $sincons=0; #se sincons=1 il sindaco eletto occupa un posto di consigliere
     216$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";
     217$res = $dbi->prepare("$sql");
     218$res->execute();
     219$numgruppi=$res->rowCount();
     220$PNE=_PRIMONON;
     221$CSEC=_SINDCONS;
     222$sorteggio=0;
     223$sindel=0;
     224$num_candlst=array();
     225$listagruppo=array();
     226#funzione di calcolo per comuni fino a 15.000 abitanti (più esattamente fino al valore di $limite)
     227$grpcond='';
     228if($grp) $grpcond="and t1.num_gruppo='$grp'";
     229if ($sincons) $numcons--;
     230#$numcons--;
     231#carica numero di liste e voti, i voti sono quelli del gruppo se non c'e' voto di lista
     232$seggimag=array();
     233##########
     234#       $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,2";
     235
     236 ################
     237        #seleziona il sindaco (gruppo con più voti) e lista collegata
     238        $sql = "SELECT t1.descrizione,t1.num_gruppo,sum(t3.voti) as voti from ".$prefix."_ele_gruppo as t1, ".$prefix."_ele_voti_gruppo as t3 where t1.id_cons='$id_cons' and t1.id_gruppo=t3.id_gruppo group by t1.descrizione, t1.num_gruppo order by voti desc limit 0,2";
     239        $res_per = $dbi->prepare("$sql");
     240        $res_per->execute();
     241        $votig=0;
     242        $gruppo=array();
     243        $conselcsne=array();
     244        $lisvin=0;
     245        $gruvin=0;
     246        while(list($descr,$num_gruppo,$voti)= $res_per->fetch(PDO::FETCH_NUM))
     247        {
     248                $sql = "SELECT t2.id_lista,t2.num_lista,t2.descrizione,sum(t3.voti) from ".$prefix."_ele_lista as t2, ".$prefix."_ele_voti_lista as t3 where t2.id_cons='$id_cons' and t2.id_lista=t3.id_lista and t2.num_gruppo=$num_gruppo group by t2.id_lista,t2.num_lista,t2.descrizione order by voti desc limit 0,1";
     249                $res_lis = $dbi->prepare("$sql");
     250                $res_lis->execute();
     251                list($id_lista1,$num_lista,$descr_lista,$votil)= $res_lis->fetch(PDO::FETCH_NUM);
     252               
     253                $desgruppi[$num_gruppo]=$descr;
     254                $listagruppo[$num_lista]=$num_gruppo;
     255                if($voti>=$votig and (!$grp or $grp==$num_gruppo))
     256                {
     257                        if(!$lisvin ) {$lisvin=$num_lista; $gruvin=$num_gruppo;}
     258                        $votig=$voti;
     259                        if ($grp)
     260                                $votig++;
     261                        $gruppo[$num_gruppo]=array($descr,$num_gruppo,$id_lista1,$num_lista,$descr_lista,$voti);
     262                }else{
     263                        if($voti>=$validi/5) {$sindel=1;$conselcsne[]=array("$CSEC","","",$descr,"","");}
     264                }
     265        }
     266        #seleziona la lista (o liste) con più voti
     267        $sql = "SELECT t1.descrizione, t2.id_lista,t2.num_lista, sum(t2.voti) as voti from ".$prefix."_ele_voti_lista as t2 left join ".$prefix."_ele_lista as t1 on t1.id_lista=t2.id_lista where t2.id_cons='$id_cons' group by t2.id_lista,t2.num_lista, t1.descrizione order by voti desc";
     268        $res_per = $dbi->prepare("$sql");
     269        $res_per->execute();
     270        $seggi=array();
     271        $idlst= array();
     272        $desliste=array();
     273        $lists=array();
     274#       $votimax=0;
     275        $contalst=0;
     276        $mag=intval($validi/2)+1;
     277        $lim5=intval($validi/20);
     278        $varmag=0;
     279        $prevoti=0;
     280        $lav=0;
     281        while(list($descr_lista,$id_lista2,$num_lista,$voti)= $res_per->fetch(PDO::FETCH_NUM)){
     282                if($voti<$prevoti)
     283                        if($num_lista!=$lisvin)
     284                        {
     285                                if($lav) break;
     286                                else continue;
     287                        }
     288                if($voti<=$lim5) break;
     289                if($voti>=$mag) {
     290                        $desliste[$num_lista]=$num_lista.") ".$descr_lista;
     291                        $quozienti[$num_lista]=$voti;
     292                        $lists[$num_lista]=$voti;
     293                        $idlst[$num_lista]=$id_lista2;
     294                        if($num_lista===$lisvin) {
     295                                $seggi[$num_lista]=number_format($numcons/3*2);
     296                                $varmag=1;
     297                                continue;
     298                        }else{
     299                                $seggimin[$num_lista]=number_format($numcons*0.6,0);
     300                                $seggi[$lisvin]=number_format($numcons*0.4,0);
     301                                $prevoti=$voti;
     302                                $varmag=1;
     303                                continue;
     304                        }
     305                }else{
     306                        if($num_lista!=$lisvin) $contalst++;
     307                        $quozienti[$num_lista]=$voti;
     308                        $desliste[$num_lista]=$num_lista.") ".$descr_lista;
     309                        $lists[$num_lista]=$voti;
     310                        $idlst[$num_lista]=$id_lista2;
     311                                if($num_lista==$lisvin and !$varmag)
     312                                        $seggi[$num_lista]=number_format($numcons/3*2);
     313                                elseif($num_lista!=$lisvin)
     314                                        $seggimin[$num_lista]=number_format($numcons/3);
     315                }
     316                if($num_lista!=$lisvin) $prevoti=$voti;
     317                else $lav=1;
     318        }
     319        if(!isset($seggi[$lisvin])) $seggi[$lisvin]=number_format($numcons/3*2,0);
     320$consel=array();
     321$conselmin=array();
     322$consel[]=array(_LISTA,_VOTI,_SEGGI,_CANDIDATO,_CIFRAELE,_QUOZIENTI);
     323foreach ($idlst as $lista=>$id_lista){
     324    $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,descr";
     325        $res_can = $dbi->prepare("$sql");
     326        $res_can->execute();
     327    $num_candlst[$lista]=$res_can->rowCount();
     328    $pos=0;
     329    while(list($cand,$pre)=$res_can->fetch(PDO::FETCH_NUM)){
     330        if(!isset($lists[$lista])) $lists[$lista]=0;
     331        $cifra[$lista][$pos]=$lists[$lista]+$pre;
     332        $arvin[$lista][$pos++]=$cand;
     333    }       
     334}
     335        if(isset($mex))
     336    echo "$mex";
     337        foreach ($seggi as $lista=>$val){
     338        for ($z=0;$z<$val;$z++){
     339                        if ($z) $consel[]=array("","","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista]/($z+1),2,',','.'));
     340                        else $consel[]=array($desliste[$lista],$lists[$lista],$val,$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista]/($z+1),2,',','.'));
     341                }
     342        }
     343    if($arvin[$lista][($z)]) $consel[]=array($desliste[$lista],"$PNE","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista]/($z+1),2,',','.'));
     344        $assegnato=0;
     345        $sorteggio=0;
     346    foreach ($seggimin as $lista=>$val){
     347        if ($consin and $val>0 and $sindel){
     348                $val--;
     349        }
     350                $val=number_format($val/$contalst);
     351                if($val%$contalst) $sorteggio=1;
     352      for ($z=0;$z<$val;$z++){
     353                if ($z) $conselmin[]=array("","","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista]/($z+1),2,',','.'));
     354                else $conselmin[]=array($desliste[$lista],$lists[$lista],$val,$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista]/($z+1),2,',','.'));
     355                }
     356                if($arvin[$lista][($z)]) $conselmin[]=array($desliste[$lista],"$PNE","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista]/($z+1),2,',','.'));
     357    }
     358        foreach($conselcsne as $key=>$val)
     359        {
     360                $consel[]=array($val[0],$val[3]);
     361        }
     362        foreach($conselmin as $key=>$val)
     363        {
     364                $consel[]=array($val[0],$val[1],$val[2],$val[3],$val[4],$val[5]);
     365        }
     366       
     367   
     368#   echo "<br> lisvin: $lisvin";
     369    echo "<table summary=\"Tabella dei consiglieri eletti\" class=\"table-docs\" cellspacing=\"0\" cellpadding=\"2\" border=\"1\" rules=\"all\">";
     370    echo "<tr class=\"bggray\"><td scope=\"row\">";
     371    echo _SINDACO.": ".$desgruppi[$listagruppo[$lisvin]]."</td></tr></table>";
     372    stampalista($consel);
     373}
     374#####################
     375
    206376function consmin($fascia,$grp) {
    207 global $id_cons, $prefix,$dbi,$num_candlst,$quozienti,$PNE,$CSEC,$consin,$numcons;
     377global $id_cons, $prefix,$dbi,$num_candlst,$quozienti,$PNE,$CSEC,$consin,$numcons,$inffisso;
    208378global $infpremio,$fisso,$sincons, $votol;
    209379if (!isset($fisso)) $fisso=0; #se fisso=1 il premio di maggioranza Ú fisso
     
    228398$consel[]=array(_LISTA,_VOTI,_SEGGI,_CANDIDATO,_CIFRAELE,_QUOZIENTI);
    229399#carica numero di liste e voti, i voti sono quelli del gruppo se non c'e' voto di lista
    230 if($votolista=='0')
     400if($inffisso=='1')
     401        $sql = "SELECT sum(validi+contestati) from ".$prefix."_ele_sezioni where id_cons='$id_cons'";
     402elseif($votolista=='0')
    231403        $sql = "SELECT sum(validi) from ".$prefix."_ele_sezioni where id_cons='$id_cons'";
    232404else
     
    234406$res_val = $dbi->prepare("$sql");
    235407$res_val->execute();
    236 
    237408list($validi) = $res_val->fetch(PDO::FETCH_NUM);
    238 #se votolista==1, Ú abilitato il voto di lista ed Ú quello su cui si calcola l'assegnazione dei seggi 
     409#se votolista==1, Ú abilitato il voto di lista ed Ú quello su cui si calcola l'assegnazione dei seggi
    239410if ($fisso==1){
    240         #seleziona il sindaco
    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 limit 0,1";
    242 $res_per = $dbi->prepare("$sql");
    243 $res_per->execute();
    244 
     411        #seleziona il sindaco (gruppo con più voti) e lista collegata
     412        $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";
     413        $res_per = $dbi->prepare("$sql");
     414        $res_per->execute();
    245415        list($descr,$num_gruppo,$id_lista1,$num_lista,$descr_lista,$voti)= $res_per->fetch(PDO::FETCH_NUM);
    246 $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";
    247 $res_per = $dbi->prepare("$sql");
    248 $res_per->execute();
    249 
     416        #seleziona la lista di minoranza con più voti
     417        $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";
     418        $res_per = $dbi->prepare("$sql");
     419        $res_per->execute();
    250420        list($id_lista2,$voti)= $res_per->fetch(PDO::FETCH_NUM);
    251421      #e la lista di minoranza
    252422        $ordine= $id_lista1>$id_lista2 ? "desc":"";
    253 $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";
    254 $res_per = $dbi->prepare("$sql");
    255 $res_per->execute();
    256 
    257         }else{
    258 $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.id_lista,t2.num_lista,t2.descrizione order by voti desc";
    259 $res_per = $dbi->prepare("$sql");
    260 $res_per->execute();
    261 
     423        $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";
     424        $res_per = $dbi->prepare("$sql");
     425        $res_per->execute();
     426}else{
     427        $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.id_lista,t2.num_lista,t2.descrizione order by voti desc";
     428        $res_per = $dbi->prepare("$sql");
     429        $res_per->execute();
    262430
    263431$groups=array();
     
    281449    $x++;
    282450    }#controllo del premio di maggioranza
    283 //    if ($gruppo[$listagruppo[$lisvin]]>($validi*2/3))
     451        //    if ($gruppo[$listagruppo[$lisvin]]>($validi*2/3))
    284452        if($numgruppi==1) $fisso=1;
    285     if ($gruppo[$listagruppo[$lisvin]]>($validi*$infpremio/100) and $fisso==1)
    286     {
    287 $seggimag[$lisvin]=number_format($numcons*($gruppo[$listagruppo[$lisvin]]*100/$validi)/100);
    288 ##echo "<br> seggimag:".$seggimag[$lisvin];
    289 $num_cons=number_format($numcons-$seggimag[$lisvin]);
    290 #       $num_cons=$numcons;
    291     } else {   
     453        if ($gruppo[$listagruppo[$lisvin]]>($validi*$infpremio/100) and $fisso==1)
     454        {
     455                $seggimag[$lisvin]=number_format($numcons*($gruppo[$listagruppo[$lisvin]]*100/$validi)/100);
     456                ##echo "<br> seggimag:".$seggimag[$lisvin];
     457                $num_cons=number_format($numcons-$seggimag[$lisvin]);
     458                #       $num_cons=$numcons;
     459        } else {   
    292460//      $seggimag[$lisvin]=number_format($numcons*2/3);
    293461//      $num_cons=number_format($numcons/3);
    294         $seggimag[$lisvin]=number_format($numcons*$infpremio/100);
    295         $num_cons=number_format($numcons-$seggimag[$lisvin]);
    296     }
     462                $seggimag[$lisvin]=number_format($numcons*$infpremio/100);
     463                $num_cons=number_format($numcons-$seggimag[$lisvin]);
     464        }
    297465    foreach ($listagruppo as $lista=>$val){
    298     $id_lista=$idlst[$lista];
    299     $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,descr";
    300 $res_can = $dbi->prepare("$sql");
    301 $res_can->execute();
    302 
    303    
    304     $num_candlst[$lista]=$res_can->rowCount();
    305     $pos=0;
    306     while(list($cand,$pre)=$res_can->fetch(PDO::FETCH_NUM)){
    307         if(!isset($lists[$lista])) $lists[$lista]=0;
    308         $cifra[$lista][$pos]=$lists[$lista]+$pre;
    309         $arvin[$lista][$pos++]=$cand;
    310     }       
     466                $id_lista=$idlst[$lista];
     467                $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,descr";
     468                $res_can = $dbi->prepare("$sql");
     469                $res_can->execute();
     470                $num_candlst[$lista]=$res_can->rowCount();
     471                $pos=0;
     472                while(list($cand,$pre)=$res_can->fetch(PDO::FETCH_NUM)){
     473                        if(!isset($lists[$lista])) $lists[$lista]=0;
     474                        $cifra[$lista][$pos]=$lists[$lista]+$pre;
     475                        $arvin[$lista][$pos++]=$cand;
     476                }           
    311477    }
    312478    if ($num_candlst[$lisvin]<$seggimag[$lisvin]) {
     
    324490                if($arvin[$lista][($z)]) $consel[]=array($desliste[$lista],"$PNE","",$arvin[$lista][($z)],$cifra[$lista][($z)],number_format($quozienti[$lista][$z],2));
    325491    $seggimin=array();
     492        $assegnato=0;
    326493    $seggimin=calcoloseggi($listemin,$num_cons,1);
    327494    foreach ($seggimin as $lista=>$val){
    328         if ($consin and $val>0){
     495        if ($consin and $val>0 and (!$assegnato or !$inffisso)){
    329496                $conselcsne[]=array("$CSEC","","",$desgruppi[$listagruppo[$lista]],"","");
    330497                $val--;
     498                        $assegnato=1;
    331499        }
    332500      for ($z=0;$z<$val;$z++){
     
    450618                                }
    451619                        }
     620                        $z=0;
    452621                        foreach ($riga as $cella) {
    453622                         if ($e==1){
     
    455624                        }else{
    456625                                $t="<td scope=\"row\"";$f="</td>";     
    457                         }                                       
     626                        }
     627                        if($z==0 or $z==3)
    458628                                echo "$t $i align=\"left\">$cella $f";
    459                                         $i='';
    460                                
     629                        else
     630                                echo "$t $i align=\"right\">$cella $f";
     631                        $i='';
     632                        $z++;   
    461633                        }
    462634                        if ($y) $y=0;
  • trunk/client/versione.php

    r382 r383  
    11<?php
    22
    3 $versione = "3.0 rev 382";
     3$versione = "3.0 rev 383";
    44$version_number = $versione;
    5 $datarel = "28 ottobre 2022";
     5$datarel = "15 novembre 2022";
    66$version = "Eleonline $version_number (<i>Data Release: $datarel</i>)";
    77
Note: See TracChangeset for help on using the changeset viewer.