Index: /trunk/admin/modules/Elezioni/ele_controlli.php
===================================================================
--- /trunk/admin/modules/Elezioni/ele_controlli.php	(revision 302)
+++ /trunk/admin/modules/Elezioni/ele_controlli.php	(revision 303)
@@ -237,9 +237,44 @@
 }
 
+function controllo_votic($id_cons,$id_sez,$id_lista){
+	global $prefix,$dbi,$id_sede,$id_cons_gen,$validi;
+		##############################
+	$err=0;
+	$sql="SELECT preferenze,disgiunto,solo_gruppo,id_fascia FROM ".$prefix."_ele_cons_comune where id_cons='$id_cons'";
+	$res = $dbi->prepare("$sql");
+	$res->execute();
+	list($prefs,$disg,$solog,$fascia)=$res->fetch(PDO::FETCH_NUM);
+
+	if($fascia){
+		$sql="select id_gruppo from ".$prefix."_ele_lista where id_lista='$id_lista'";
+		$res = $dbi->prepare("$sql");
+		$res->execute(); 
+		list($id_gruppo)=$res->fetch(PDO::FETCH_NUM);
+		$sql="select voti from ".$prefix."_ele_voti_gruppo where id_gruppo='$id_gruppo' and id_sez='$id_sez'";		
+	} else 	$sql="select voti from ".$prefix."_ele_voti_lista where id_lista='$id_lista' and id_sez='$id_sez'";
+	$res = $dbi->prepare("$sql");
+	$res->execute(); 
+	list($votil)=$res->fetch(PDO::FETCH_NUM);
+	$sql="SELECT sum(voti),max(voti) FROM ".$prefix."_ele_voti_candidati where id_sez='$id_sez' and id_cand in (select id_cand from ".$prefix."_ele_candidati where id_lista='$id_lista')";
+	$res = $dbi->prepare("$sql");
+	$res->execute();
+	list($votic,$mvc)=$res->fetch(PDO::FETCH_NUM);
+	if(($votic)>($votil*$prefs) || $mvc>$votil) 
+	{$err=1;}
+
+	return $err;
+}
+
+
 
 function controllo_votil($id_cons,$id_sez,$id_lista){
 	global $prefix,$dbi,$id_sede,$id_cons_gen,$validi;
 		##############################
-	$err=0; $err2=0;
+	$err=0;
+	$tipo='lista';
+	$sql="SELECT genere FROM ".$prefix."_ele_tipo as t1 left join ".$prefix."_ele_consultazione as t2 on t1.tipo_cons=t2.tipo_cons where id_cons_gen='$id_cons_gen'";
+	$res = $dbi->prepare("$sql");
+	$res->execute();
+	list($genere)=$res->fetch(PDO::FETCH_NUM);
 	$sql="SELECT preferenze,disgiunto,solo_gruppo,id_fascia FROM ".$prefix."_ele_cons_comune where id_cons='$id_cons'";
 	$res = $dbi->prepare("$sql");
@@ -247,26 +282,12 @@
 	list($prefs,$disg,$solog,$fascia)=$res->fetch(PDO::FETCH_NUM);
 	if($id_lista){
-		if($fascia){
-			$sql="select id_gruppo from ".$prefix."_ele_lista where id_lista='$id_lista'";
-			$res = $dbi->prepare("$sql");
-			$res->execute(); 
-			list($id_gruppo)=$res->fetch(PDO::FETCH_NUM);
-			$sql="select voti from ".$prefix."_ele_voti_gruppo where id_gruppo='$id_gruppo' and id_sez='$id_sez'";		
-		} else 	$sql="select voti from ".$prefix."_ele_voti_lista where id_lista='$id_lista' and id_sez='$id_sez'";
-		$res = $dbi->prepare("$sql");
-		$res->execute(); 
-		list($votil)=$res->fetch(PDO::FETCH_NUM);
-		$sql="SELECT sum(voti),max(voti) FROM ".$prefix."_ele_voti_candidati where id_sez='$id_sez' and id_cand in (select id_cand from ".$prefix."_ele_candidati where id_lista='$id_lista')";
-		$res = $dbi->prepare("$sql");
-		$res->execute();
-		list($votic,$mvc)=$res->fetch(PDO::FETCH_NUM);
-		if(($votic)>($votil*$prefs) || $mvc>$votil) 
-			$err=1;
+		$err=controllo_votic($id_cons,$id_sez,$id_lista);
+		$tipo='lista';
 	}else{
-		$sql="select id_gruppo from ".$prefix."_ele_lista where id_lista='$id_lista'";
-		$res = $dbi->prepare("$sql");
-		$res->execute();
-		list($idg)=$res->fetch(PDO::FETCH_NUM);
-		$sql="SELECT id_gruppo, voti, solo_gruppo FROM ".$prefix."_ele_voti_gruppo where id_sez='$id_sez'";
+
+		if($genere==4)
+			$sql="SELECT id_lista, voti, '0' FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez'";
+		else
+			$sql="SELECT id_gruppo, voti, solo_gruppo FROM ".$prefix."_ele_voti_gruppo where id_sez='$id_sez'";
 		$resref = $dbi->prepare("$sql");
 		$resref->execute();
@@ -276,46 +297,64 @@
 		$totsl=0;
 		$tnl=0;
-        $sql="SELECT sum(voti),sum(nulli_lista),sum(solo_lista) FROM ".$prefix."_ele_voti_lista where id_cons='$id_cons' and id_sez='$id_sez'";
-		$resl = $dbi->prepare("$sql");
-		$resl->execute();
+
         $sql="SELECT validi,validi_lista,contestati_lista,voti_nulli_lista,solo_lista FROM ".$prefix."_ele_sezioni where id_cons='$id_cons' and id_sez='$id_sez'";
 		$res = $dbi->prepare("$sql");
 		$res->execute();
     	list($votiv,$validil,$contestatil,$nullil,$solol) = $res->fetch(PDO::FETCH_NUM);
-		while (list($idg,$votig,$svg)=$resref->fetch(PDO::FETCH_NUM)) {
-			$sql="SELECT sum(voti), sum(nulli_lista),sum(solo_lista) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez' and id_lista in (select id_lista from ".$prefix."_ele_lista where id_gruppo='$idg')";
-			$res2 = $dbi->prepare("$sql");
-			$res2->execute();
-			$totgru+=$votig;
-			$totsg+=$svg;
-			if($res2->rowCount()){
-				list($votil,$nl,$svl)=$res2->fetch(PDO::FETCH_NUM);
-				$totlis+=$votil;
-				$totsl+=$svl;
-				$tnl+=$nl;
-				if(($votig+$svl)<($votil+$svg+$nl))
-					$err=1; 
+		if($genere==4)
+			while (list($idg,$votig,$svg)=$resref->fetch(PDO::FETCH_NUM)) {
+				$err=controllo_votic($id_cons,$id_sez,$idg);
+				if($err){ $tipo='lista'; $id_lista=$idg; break; }
+					$sql="SELECT sum(voti), sum(nulli_lista),sum(solo_lista) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez' and id_lista='$idg'";
+				$res2 = $dbi->prepare("$sql");
+				$res2->execute();
+				$totgru+=$votig;
+				$totsg+=$svg;
+				if($res2->rowCount()){
+					list($votil,$nl,$svl)=$res2->fetch(PDO::FETCH_NUM);
+					$totlis+=$votil;
+					$totsl+=$svl;
+					$tnl+=$nl;
+					if(($votig+$svl)<($votil+$svg+$nl))
+					{ $err=1; $tipo='lista';$id_lista=$idg; break; }
+				}				
 			}
-			
-		}
-		if ($validil+$contestatil+$nullil+$totsg!=$votiv and $validil+$contestatil+$nullil+$solol>0) $err=1;
-		if(($solog && !$disg && $tnl!=$nullil) || $totsl!=$solol) $err=1;
-	}
-
-	$tipo='lista';
-	$sql="select id from ".$prefix."_ele_controlli where tipo='$tipo' and id_sez='$id_sez'";
-	$res = $dbi->prepare("$sql");
-	$res->execute();
-	$righe=$res->rowCount();
-	if($righe){
+		else
+			while (list($idg,$votig,$svg)=$resref->fetch(PDO::FETCH_NUM)) {
+				$sql="SELECT id_lista FROM ".$prefix."_ele_lista where id_sez='$id_sez' and id_gruppo='$idg'";
+				$res2 = $dbi->prepare("$sql");
+				$res2->execute();
+				while(list($id_lista)=$res2->fetch(PDO::FETCH_NUM)){
+					$err=controllo_votic($id_cons,$id_sez,$id_lista);
+					if($err){ $tipo='lista'; break; }				
+				}
+				$sql="SELECT sum(voti), sum(nulli_lista),sum(solo_lista) FROM ".$prefix."_ele_voti_lista where id_sez='$id_sez' and id_lista in (select id_lista from ".$prefix."_ele_lista where id_gruppo='$idg')";
+				$res2 = $dbi->prepare("$sql");
+				$res2->execute();
+				$totgru+=$votig;
+				$totsg+=$svg;
+				if($res2->rowCount()){
+					list($votil,$nl,$svl)=$res2->fetch(PDO::FETCH_NUM);
+					$totlis+=$votil;
+					$totsl+=$svl;
+					$tnl+=$nl;
+					if(($votig+$svl)<($votil+$svg+$nl))
+					{ $err=1; $tipo=$lista; break; }
+				}
+				
+			}
+		if ($validil+$contestatil+$nullil+$totsg!=$votiv and $validil+$contestatil+$nullil+$solol>0) {$err=1;$tipo='lista';}
+		if(($solog && !$disg && $tnl!=$nullil) || $totsl!=$solol) {$err=1;$tipo='lista';}
+		
+	}
+
 		if(!$err){ 
-			$sql="delete from ".$prefix."_ele_controlli where tipo='$tipo' and id='$id_sez' ";
+			$sql="delete from ".$prefix."_ele_controlli where tipo='lista' and id_sez='$id_sez' "; include("$sql");
 			$res = $dbi->prepare("$sql");
 			$res->execute();
-		}
-		$err=0;
-	}
+		} 
+
 	if($err){
-		$sql="insert into ".$prefix."_ele_controlli value('$id_cons','$id_sez','$tipo','$id_sez')";
+		$sql="insert into ".$prefix."_ele_controlli value('$id_cons','$id_sez','$tipo','$id_lista')";
 		$res = $dbi->prepare("$sql");
 		$res->execute();		
