Index: trunk/admin/modules/Elezioni/ele_voti.php
===================================================================
--- trunk/admin/modules/Elezioni/ele_voti.php	(revision 220)
+++ trunk/admin/modules/Elezioni/ele_voti.php	(revision 221)
@@ -165,36 +165,52 @@
 			list($votil) = mysql_fetch_row($res3);
 			if($votil) {
-						
-					$query="SELECT sum(voti) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez'";
+					$query="SELECT sum(voti) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez'";	
 					$res4 = mysql_query("$query", $dbi);
 					list($votils)=mysql_fetch_row($res4);
-					if($votils>0) {
-						$query="SELECT id_lista FROM ".$prefix."_ele_lista where id_cons='$id_cons'";
+#					if($votils>0) {
+					if(mysql_num_rows($res4)>0) {
+						$query="SELECT stato_aff, stato_val,stato_gru,stato_lis,stato_can FROM ".$prefix."_ele_controllosez where id_sez='$id_sez' and id_cons='$id_cons'";
 						$res3 = mysql_query("$query", $dbi);
-						$testcand=0;
-						$tutte=1;
-						while(list($testlista)=mysql_fetch_row($res3)){
-							$res4= mysql_query("SELECT sum(voti) FROM ".$prefix."_ele_voti_lista where id_cons='$id_cons' and id_sez='$id_sez' and id_lista='$testlista'", $dbi);
-							if($res4) list($testvotil)=mysql_fetch_row($res4); else $testvotil=0;
-							$res4= mysql_query("SELECT sum(t1.voti) FROM ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on t1.id_cand=t2.id_cand where t1.id_cons='$id_cons' and  t1.id_sez='$id_sez' and t2.id_lista='$testlista'", $dbi);
-							if($res4) list($testvotic)=mysql_fetch_row($res4); else $testvotic=0;
+							$res4= mysql_query("SELECT count(0) FROM ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on t1.id_cand=t2.id_cand where t1.id_cons='$id_cons' and  t1.id_sez='$id_sez' and t2.id_lista='$testlista'", $dbi);
+							list($contains)=mysql_fetch_row($res4);
+							if($contains==0) $tutte=1; else $tutte=0;
+						if(mysql_num_rows($res3)){
+							list($aff,$val,$gru,$lis,$can)=mysql_fetch_row($res3); 
+						}else{
+							$query="SELECT id_lista FROM ".$prefix."_ele_lista where id_cons='$id_cons'";
+							$res3 = mysql_query("$query", $dbi); 
+							$testcand=0;
+							
 							$res4= mysql_query("SELECT preferenze FROM ".$prefix."_ele_cons_comune where id_cons='$id_cons'", $dbi);
 							if($res4) list($testpref)=mysql_fetch_row($res4); else $testpref=0;
-							$res4= mysql_query("SELECT count(0) FROM ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on t1.id_cand=t2.id_cand where t1.id_cons='$id_cons' and  t1.id_sez='$id_sez' and t2.id_lista='$testlista'", $dbi);
-							list($contains)=mysql_fetch_row($res4);
-                                			if($contains==0) $tutte=0;
-
-							if(($testvotil*$testpref)<$testvotic) { $testcand=1;break;}
-							$res4= mysql_query("SELECT t1.voti FROM ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on t1.id_cand=t2.id_cand where t1.id_cons='$id_cons' and  t1.id_sez='$id_sez' and t2.id_lista='$testlista'", $dbi);
-							while(list($testvotic)=mysql_fetch_row($res4))
-								if($testvotil<$testvotic) { $testcand=1;break;}
+							while(list($testlista)=mysql_fetch_row($res3)){
+								$res4= mysql_query("SELECT sum(voti) FROM ".$prefix."_ele_voti_lista where id_cons='$id_cons' and id_sez='$id_sez' and id_lista='$testlista'", $dbi);
+								if($res4) list($testvotil)=mysql_fetch_row($res4); else $testvotil=0;
+								$res4= mysql_query("SELECT sum(t1.voti) FROM ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on t1.id_cand=t2.id_cand where t1.id_cons='$id_cons' and  t1.id_sez='$id_sez' and t2.id_lista='$testlista'", $dbi);
+								if($res4) list($testvotic)=mysql_fetch_row($res4); else $testvotic=0;
+
+								if(($testvotil*$testpref)<$testvotic) { $testcand=1;break;}
+								$res4= mysql_query("SELECT t1.voti FROM ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on t1.id_cand=t2.id_cand where t1.id_cons='$id_cons' and  t1.id_sez='$id_sez' and t2.id_lista='$testlista'", $dbi);
+								while(list($testvotic)=mysql_fetch_row($res4))
+									if($testvotil<$testvotic) { $testcand=1;break;}
+							}
 						}
+						if(!isset($can)){ 
+							$can=($testcand==0) ? 1:-1;
+							if($genere==4 or $votog) $contestatilista=0;
+							$val=(($votils+$sologruppo+$contestatilista+$votinullilista)==($validi+$sololista))?1:-1;
+							$lis=($validilista==$votils) ? 1:-1;
+							$res4=mysql_query("insert into ".$prefix."_ele_controllosez values('$id_sez','$id_cons','0','$val','0','$lis','$can')",$dbi);
+						}
+						#		$res4= mysql_query("SELECT sum(voti) FROM ".$prefix."_ele_voti_lista where  id_sez='$id_sez' and id_lista='$testlista' and id_cons='$id_cons' ", $dbi);
+				#		$res4= mysql_query("SELECT sum(t1.voti) FROM ".$prefix."_ele_voti_candidati as t1 left join ".$prefix."_ele_candidati as t2 on t1.id_cand=t2.id_cand where t1.id_cons='$id_cons' and  t1.id_sez='$id_sez' and t2.id_lista='$testlista'", $dbi);
 						if($genere==4 or $votog) $contestatilista=0;
-						if (($votils+$sologruppo+$contestatilista+$votinullilista)==($validi+$sololista) and $validilista==$votils and $testcand==0)
+#						if (($votils+$sologruppo+$contestatilista+$votinullilista)==($validi+$sololista) and $validilista==$votils and $testcand==0)
+						if ($val==1 and $lis==1 and $can==1)
 							{$status=$tutte;$ops=-3;}
 						else {return 3;}
 					} #else return 0;
 			}elseif($genere==5 and $fascia<=$limite){
-				$testcand=0;
+/*				$testcand=0;
 				$query="SELECT id_lista,id_gruppo FROM ".$prefix."_ele_lista where id_cons='$id_cons'";
 				$res3 = mysql_query("$query", $dbi);
@@ -214,5 +230,5 @@
 				while( list($testvotic)=mysql_fetch_row($res4))
 					if(($testvotit)<$testvotic) {$testcand=1;break;}
-				}
+				}*/
 				if($testcand==0)
 					{$status=$tutte;$ops=-3;}
@@ -823,5 +839,6 @@
 	}
 	if ((($genere==3) OR ($genere==5)) and !$id_lista and !$votog and ($fascia>$limite or !$id_conf)) $y = (count($arg)-4);
-	else $y=count($arg);
+	else $y=count($arg);#die ("delete from ".$prefix."_ele_controllosez where id_cons='$id_cons' and id_sez='$id_sez'");
+	mysql_query("delete from ".$prefix."_ele_controllosez where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
 	if($do==1) {
 			mysql_query("delete from ".$prefix."_ele_voti_lista where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
@@ -1037,4 +1054,5 @@
     $data=date("Y/m/d");
 	$tempo=date("H:i:s");
+	mysql_query("delete from ".$prefix."_ele_controllosez where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
 	$query="select * from ".$prefix."_ele_voti_parziale where data='$giorno' and orario='$ora' and id_sez='$id_sez'";
 	if ($genere==0){
@@ -1167,4 +1185,5 @@
 $log_ora=getdate(time());	
 $orario=($log_ora['hours'].":".$log_ora['minutes'].":".$log_ora['seconds']);
+mysql_query("delete from ".$prefix."_ele_controllosez where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
 
 $result= mysql_query("select voti_complessivi from ".$prefix."_ele_voti_parziale where id_cons='$id_cons' and id_sez='$id_sez' order by id_parz desc", $dbi);
@@ -1392,4 +1411,5 @@
 $do = intval($arg[5]);
 $y=count($arg)-1; 
+	mysql_query("delete from ".$prefix."_ele_controllosez where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
 	if($do==1) {
 			mysql_query("delete from ".$prefix."_ele_voti_gruppo where id_cons='$id_cons' and id_sez='$id_sez'", $dbi);
Index: trunk/admin/versione.php
===================================================================
--- trunk/admin/versione.php	(revision 220)
+++ trunk/admin/versione.php	(revision 221)
@@ -1,3 +1,3 @@
 <?php
-$versione="2.0 rev 220";
+$versione="2.0 rev 221";
 ?> 
Index: trunk/client/modules/Elezioni/consiglieri.php
===================================================================
--- trunk/client/modules/Elezioni/consiglieri.php	(revision 220)
+++ trunk/client/modules/Elezioni/consiglieri.php	(revision 221)
@@ -210,5 +210,5 @@
     {
 $seggimag[$lisvin]=number_format($numcons*($gruppo[$listagruppo[$lisvin]]*100/$validi)/100);
-echo "<br> seggimag:".$seggimag[$lisvin];
+##echo "<br> seggimag:".$seggimag[$lisvin];
 $num_cons=number_format($numcons-$seggimag[$lisvin]);
 #    	$num_cons=$numcons;
@@ -435,10 +435,17 @@
   }
 }   
-###################
+################### carica array ... 25  maggio 2014
+foreach($collegate as $key=>$val){	
+	$res = mysql_query("SELECT id_gruppo from ".$prefix."_ele_lista where num_lista='$val' and id_cons='$id_cons'",$dbi);
+		list($tempig)=mysql_fetch_row($res);
+		$res = mysql_query("SELECT num_gruppo from ".$prefix."_ele_gruppo where id_gruppo='$tempig' and id_cons='$id_cons'",$dbi);
+		list($tempng)=mysql_fetch_row($res);
+		$grpinc[$val]=$tempng;
+}
 	$elencog=array();
 	$sindseggiopre=array();
 	foreach($groups as $testk=>$valk) if($testk!=$gruppo) {$elencog[$testk]=$valk;}
 	$testseggio=calcoloseggi($elencog,floor($numcons*(100-$suppremio)/100),0);
-	foreach($testseggio as $testk=>$valk) if($valk) {$sindseggiopre[]=$testk;}
+	foreach($testseggio as $testk=>$valk) {if($valk) $sindseggiopre[]=$testk; }
 #foreach ($gruppomin as $key=>$val) {if (($numcons*60/100)<$val) $nopremio=0;if($key!=$gruppo){echo "<br>gruppomin: $key -- $val";}}
 ##################
@@ -486,4 +493,5 @@
 $groupsappo=$groups;
 $candidati=array();
+$grpperd=$gruppoperd;
 //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% 
 //maggio 2011: da qui
@@ -502,11 +510,21 @@
 if ($premio) {
 #########
+################### carica array ...
+/*	$elencog=array();
+	$sindseggiopre=array();
+	foreach($groups as $testk=>$valk) if($testk!=$grpperd) {$elencog[$testk]=$valk;}
+	$testseggio=calcoloseggi($elencog,ceil($numcons*($suppremio)/100),0);
+	foreach($testseggio as $testk=>$valk) {if($valk) $sindseggio[]=$testk; echo "<br>testkpre: $testk - $valk";}
+*/#foreach ($gruppomin as $key=>$val) {if (($numcons*60/100)<$val) $nopremio=0;if($key!=$gruppo){echo "<br>gruppomin: $key -- $val";}}
+##################
 ################### nell'array sindseggio vengono inseriti i candidati sindaco che restano senza seggio per gli apparentamenti
 	$elencog=array();
 	$testseggio=array();
 	$sindseggio=array();
-	foreach($groups as $testk=>$valk) if($testk!=$gruppo) {$elencog[$testk]=$valk;}
-	$testseggio=calcoloseggi($elencog,floor($numcons*(100-$suppremio)/100),0);
-	foreach($sindseggiopre as $testk=>$valk) {if(!$testseggio[$valk]) $sindseggio[$valk]=$valk;}
+	foreach($groups as $testk=>$valk) {if($testk!=$gruppo) $elencog[$testk]=$valk;}
+	$perdente[$gruppoperd]=$groups[$gruppoperd];
+	$testseggio=calcoloseggi($perdente,floor($numcons*($suppremio)/100),0);
+#	foreach($testseggio as $testk=>$valk) echo "<br>testgruppo: $valk - $testk - $gruppoperd";
+	foreach($sindseggiopre as $testk=>$valk){ if(!$testseggio[$valk]) $sindseggio[$valk]=$valk;}
 ########### 
     $sindaco[$gruppo]=$groups[$gruppo]; $groups[$gruppo]=0;
@@ -532,44 +550,63 @@
 		$percliste[$x]="<br/>$y (".number_format($y*100/$validi,2)."%)";
 		$z++;
-	}
+##	}
 	$seggimag=array();
-	$x=0;
+	$x=0;#foreach($listemag as $kkk=>$vvv) echo "<br> listemag: $kkk - $vvv - $grp - $gruppo -val=$val";
 #####25 maggio 2014 - il candidato sindaco non eletto ha diritto al seggio anche se di maggioranza
 ### individua ultimi seggi assegnati a liste collegate
-	$listdec =array();
-	$seggitmp=calcoloseggi($listemag,$val,1);
-	foreach ($seggitmp as $keyl=>$vall){ #echo "<br>sindseggio: $key - $val";
+if($grp==$gruppo){
+	$listdec =array(); 
+	$seggitmp=calcoloseggi($listemag,$val,1); ## foreach ($grpinc as $keyl=>$vall) echo "<br> seggi: $keyl - $vall";
+	foreach ($seggitmp as $keyl=>$vall){#echo "<br> lista: $vall - $keyl - $grp - $gruppo";
+	if($vall==0) continue; 
 #	foreach ($sindseggio as $key=>$val){
-		if (in_array($keyl,$collegate) and ! isset($tempo[$keyl])) $tempo[$keyl]=number_format($quozienti[$keyl][$vall-1],2);
-#		echo "<br>lista:$key";
+#		if (in_array($keyl,$collegate) and ! isset($tempo[$keyl])) $tempo[$keyl]=number_format($quozienti[$keyl][$vall-1],2);
+
 		$res = mysql_query("SELECT id_gruppo from ".$prefix."_ele_lista where num_lista='$keyl' and id_cons='$id_cons'",$dbi);
 		list($tempig)=mysql_fetch_row($res);
 		$res = mysql_query("SELECT num_gruppo from ".$prefix."_ele_gruppo where id_gruppo='$tempig' and id_cons='$id_cons'",$dbi);
-		list($tempng)=mysql_fetch_row($res);
-		if (in_array($tempng,$sindseggio)) $listdec[]=$keyl;
-}
-
-		/*		while(){
+		list($tempng)=mysql_fetch_row($res); 
+		if (in_array($tempng,$grpinc)) {$listdec[$tempng][]=$keyl;}
+} 
+}
+}		/*		while(){
 			if(isset($tempo[$tempnl])) echo "<br> tempnl: $tempnl -- key:$key".$tempo[$key];
 		}
 */
 ##########
-	$seggimag=calcoloseggi($listemag,$val,1);
-
-	foreach ($seggimag as $key=>$val){
-	## condizione per esclusione di un seggio da destinare al sindaco non eletto
-		if(in_array($key,$listdec)) $val--;
+#echo "<br> key: $key2 - $val2";
+	$seggimag=calcoloseggi($listemag,$val,1);#foreach ($grpinc as $keyl=>$vall) 
+
+####cerca ultimo seggio assegnato per gruppo di liste collegate al primo turno
+	foreach ($seggimag as $key2=>$val2){ if($val2==0) continue;
+#	echo "<br>quozienti - $key2:".$quozienti[$key2][($val2)];
+	if(!isset($ultquoz[($grpinc[$key2])]) and $grpinc[$key2]) {$ultquoz[($grpinc[$key2])]=$quozienti[$key2][($val2-1)];$lastlist[($grpinc[$key2])]=$key2;}
+	elseif ($ultquoz[($grpinc[$key2])]>$quozienti[$key2][($val2-1)]) {$ultquoz[($grpinc[$key2])]=$quozienti[$key2][($val2-1)];$lastlist[($grpinc[$key2])]=$key2;}
+	#	if(in_array($key,$listdec)) $val--;
+} #foreach($lastlist as $keyl=>$vall) echo "<br> seggi: $keyl - $vall";
+	#####
+	foreach ($seggimag as $key2=>$val2){
+	## condizione per esclusione di un seggio da destinare al sindaco non eletto    in_array($key2,$lastlist)
+		foreach($lastlist as $key3=>$val3){
+		if($key2==$val3) { 
+			$arappo=array_shift($arvin[$key2]);
+			foreach($listdec as $kk=>$vv) {foreach($vv as $vvk=>$vvv) if ($vvv==$key2) $tmpgrp=$kk; }
+			if($tmpgrp){
+			array_unshift($arvin[$key2],$desgruppi[$tmpgrp]); array_unshift($arvin[$key2],$arappo);array_unshift($cifra[$key2],"--");array_unshift($cifra[$key2],"--");
+			} 
+			}}
+		#$val--;
 	## fine condizione - impostare variabile in db per differenziare il comportamento per consultazioni diverse
-		for ($z=0;$z<$val;$z++){ 
-			if ($z) $consel[]=array("","","",$arvin[$key][($z+1)],$cifra[$key][($z+1)],number_format($quozienti[$key][$z],2));
+		for ($z=0;$z<$val2;$z++){ 
+			if ($z) $consel[]=array("","","",$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
 			else
 			{
-			$consel[]=array($arvin[$key][0],$percliste[$key],$val,$arvin[$key][($z+1)],$cifra[$key][($z+1)],number_format($quozienti[$key][$z],2));
-			$arlisdesv[]=$arvin[$key][0];$arlissegv[]=$val;$arlisnumv[]=$key;
+			$consel[]=array($arvin[$key2][0],$percliste[$key2],$val2,$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
+			$arlisdesv[]=$arvin[$key2][0];$arlissegv[]=$val2;$arlisnumv[]=$key2;
 			}
 		}
 	$x++;
-	if($val)
-	$consel[]=array($arvin[$key][0],"$PNE","",$arvin[$key][($z+1)],$cifra[$key][($z+1)],number_format($quozienti[$key][$z],2));
+	if($val2)
+	$consel[]=array($arvin[$key2][0],"$PNE","",$arvin[$key2][($z+1)],$cifra[$key2][($z+1)],number_format($quozienti[$key2][$z],2));
 	}
 }
@@ -724,8 +761,4 @@
 		}
 	}
-#### condizione di aggiunta candidato sindaco non eletto in elenco consiglieri	
-	foreach($sindseggio as $key=>$val) 	if ($consin) {$conselsin[]=array("$CSEC",$desgruppi[$key]); $arcansin[]=$desgruppi[$key];}
-####
-
 	
 	if (isset($conselsin)) foreach($conselsin as $key=>$val) 
Index: trunk/client/versione.php
===================================================================
--- trunk/client/versione.php	(revision 220)
+++ trunk/client/versione.php	(revision 221)
@@ -1,3 +1,3 @@
 <?php
-$versione="2.0 rev 220";
+$versione="2.0 rev 221";
 ?> 
Index: trunk/install/sql/eleonline.sql
===================================================================
--- trunk/install/sql/eleonline.sql	(revision 220)
+++ trunk/install/sql/eleonline.sql	(revision 221)
@@ -107,4 +107,18 @@
 -- Table structure for table `soraldo_doc_cons`
 --
+
+DROP TABLE IF EXISTS `soraldo_ele_controllosez`;
+create table soraldo_ele_controllosez (
+id_sez int(11),
+ id_cons int(11),
+ stato_aff int(1),
+ stato_val int(1),
+ stato_gru int(1),
+ stato_lis int(1),
+ stato_can int(1),
+ primary key (id_sez)
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin1;
+
+
 
 DROP TABLE IF EXISTS `soraldo_doc_cons`;
